自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (2)
  • 收藏
  • 关注

原创 tiny4412开发板的串口介绍与操作

UART原理说明:通用异步收发器简称UART,即"Universal Asynchronous Receiver Transmitter",它用来传输串行数据:发送数据时,CPU将并行数据写入UART,UART按照一定的格式在一根电线上串行发出;接收数据时,UART检测另一根电线上的信号,将串行收集放在缓冲区中,CPU即可读取UART获得这些数据。UART之间以全双工方式传输数据,最精简的连线...

2018-11-26 20:20:35 2044 2

原创 tiny4412开发板icache操作程序

首先,来介绍关于cache的概念。cache的作用:基于程序访问的局限性,在主存和CPU通用寄存器之间设置了一个高速的、容量相对较小的存储器,把正在执行的指令地址附近的一部分指令或数据从主存调入这个存储器,供CPU在一段时间内使用,这对提高程序的运行速度有很大的作用。这个介于主存和CPU之间的高速小容量存储器称作高速缓存存储器(Cache)。启用Cache后,CPU读取数据时,如果Ca...

2018-11-25 15:59:50 276

原创 tiny4412开发板时钟操作示例

在上一节总我们介绍了《Exynos4412芯片的时钟管理单元》,有了上一节的基础知识我们就可以写程序操作CPU的时钟了。通过操作led来感受时钟速率的变化。本文总共有三个示例,第一个是写一个LED循环点亮的程序;第二个是将iROM中设置的时钟禁止掉,观察LED变化速率;第三个就是设置CPU的时钟速率为1.4GHz,观察LED的变化速率。第一个程序很简单,有两个文件start.S和main.c。...

2018-11-24 22:10:50 790

原创 Exynos4412芯片的时钟管理单元

本章介绍Exynos4412芯片的时钟管理单元(CMU)。CMU控制锁相环(PLL)并为Exynos4412芯片中的各个IP、总线和模块产生时钟。它们还与电源管理单元(PMU)通信,以便在进入某个低功耗模式之前停止时钟,以通过时钟切换来降低功耗。1.Exynos4412芯片的时钟体系介绍对于PC机来说,CPU、内存、主板、声卡、显卡等等,这些功能部件由不同的芯片组成,在实体上是相互独立的。...

2018-11-24 09:10:55 1426

原创 Exynos4412的启动过程

做实验时我们是把bin文件烧入SD卡。是谁把这些指令从SD卡读出来执行?是固化在芯片内部ROM上的代码──它被称为iROM,iROM是厂家事先烧写在芯片上的,无源码。iROM把启动设备上特定位置处的程序读入片内内存(iRAM),并执行它。这个程序被称为BL1(Bootloader 1),BL1是三星公司提供的,无源码。BL1又把启动设备上另一个特定位置处的程序读入片内内存,并执行它。这个程...

2018-11-18 21:03:46 1048

原创 tiny4412开发板GPIO试验

GPIO(General Purpose I/O Ports)意思为通用输入/输出端口,通俗地说,就是一些引脚,可以通过它们输出高低电平、或者通过它们读入引脚的状态——是高电平还是低电平。三星Exynos4412,它有304个 GPIO,分为GPA0、GPA1、GPB、GPC0、GPC1等共37组。可以通过设置寄存器来确定某个引脚用于输入、输出还是其它特殊功能。比如可以设置GPC0、GPC1作...

2018-11-18 18:14:31 1684

原创 常用ARM汇编指令及ATPCS规则

在嵌入式开发中,汇编程序常常用于非常关键的地方,比如系统启动时的初始化,进出中断时的环境保存、恢复,对性能要求非常苛刻的函数等。只在必要情况下使用汇编指令,只涉及几条汇编指令。1.相对跳转指令:b、bl这两条指令的不同之处在于bl指令除了跳转之外,还将返回地址(bl的下一条指令的地址)保存在lr寄存器中。这两条指令的可跳转范围是当前指令的前后32M:-32M~+32M。它们是位置无...

2018-11-18 10:59:45 3412 1

原创 常用的汇编指令介绍

注意:此文档会根据学习过程中遇到的ARM汇编指令,持续更新。LDR汇编指令:LDR指令的格式为:LDR{条件}  目的寄存器,<存储器地址>LDR指令用于从存储器中将一个32位的字数据传送到目的寄存器中。该指令通常用于从存储器中读取32位的字数据到通用寄存器,然后对数据进行处理。当程序计数器PC作为目的寄存器时,指令从存储器中读取的字数据被当作目的地址,从而可以实现程序...

2018-11-17 20:36:26 686

原创 汇编代码、机器码和存储器的关系以及数据的表示

即使使用C/C++或者其他高级语言编程,最后也会被编译工具转换为汇编代码,并最终作为机器码存储在内存、硬盘或者其他存储器上。在调试程序时,经常需要阅读它的汇编代码,以下面的汇编代码为例:2023404: e5901000 ldr r1, [r0]2023408: e3c110ff bic r1, r1, #255 ;...

2018-11-17 19:59:48 2626

原创 交叉编译工具的使用说明

写在前面的话,由于已经学习了JZ2440V3开发板的裸机程序。想检验下学习成果,所以从今天开始把以前学的知识点在tiny4412开发板上面做个检验。裸机部分学习到把uboot移植完成就结束;然后,学习内核的驱动和其他子系统框架。言归正传,现在开始学习交叉编译工具链的使用。源文件需要经过编译才能生成可执行文件。在Windows下进行开发时,只需要点几个按钮即可编译,集成开发环境(比如 Visua...

2018-11-17 11:11:06 11356 2

原创 设备树规范翻译

1.介绍为了初始化和引导计算机系统,需要各种软件组件进行交互。在将控制权交给软件(如操作系统,引导加载程序或虚拟机监控程序)之前,固件可能会执行系统硬件的低级初始化。bootloader程序或管理程序可以加载和转移控制全给操作系统。而一致的接口和约定有助于这些软件组件之间的交互。在该文档中,引导加载程序一般是指初始化系统状态并将程序执行控制器交给操作系统的软件。引导程序的示例包括:固件,boo...

2018-11-11 18:30:20 2049

原创 Linux设备树使用

本页面介绍了如何为新machine编写设备树文件。它旨在提供设备树概念的概述以及它们如何用于描述machine。有关设备树数据格式的完整技术说明,请参阅ePAPR v1.1规范。ePAPR规范比本页面介绍的基本主题包含更多详细信息,请参阅此页面以获取本页未涵盖的更高级用法。ePAPR目前正在使用Devicetree规范文档的新名称进行更新。1.基本数据格式设备树是由节点和属性组成的树型...

2018-11-05 20:14:36 560

原创 Linux和设备树

设备树数据的Linux使用模型作者:Grant Likely <grant.likely@secretlab.ca>本文介绍Linux如何使用设备树。可以在下面的网址设备树使用页面上找到设备树数据格式的概述。https://elinux.org/Device_Tree_Usage"Open Firmware Device Tree"或简称设备树(DT)是用于描述硬件的...

2018-11-04 16:18:09 577

Keil.S32_SDK_DFP.1.2.0.pack

S32K14X系列Pack包,使用Keil时可以按照成功,方便项目开发。

2019-08-25

DDR3 SDRAM Standard_JESD79-3D

官员DDR3的详细介绍,里面有关于DDR的详细资料,时序和命令等等

2018-03-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除