UBOOT//DDR内存原理及时序

这里使用的是2012.10版本的uboot ,来看一下如何将uboot 改为自己开发板可以使用的

第四阶段22课开始UBOOT完全理解课程

Uboot的异常向量表,V210的启动机制原理

在这里插入图片描述
上图是启动uboot的一段汇编指令,其中ldr pc,XXX //表示把XX寄存器中的地址值给pc指针
在这里插入图片描述
CPU启动过程,首先运行IROM(里面主要是配置时钟,看门狗等),然后把flash/SD卡中的头4K代码(BL1)放到CPU里运行,然后将flash/SD卡中剩下的内容加载到SDRAM中运行,然后通过调节指针最终运行OS

不同板子启动步骤不一样,有的是将BL1与BL2都放到CPU中运行

pv210中的UBOOT版本会先把一个叫做 uboot_spl 的很小的文件放到片内sram中运行,然后再将后面的uboot放到sdram中

cpsr寄存器设置,
用mrs 取出来 cpsr中的数,然后用bic orr两个指令来清零和置一,然后在把取出来的数放回去

cash 高速缓存,会缓存某些数据,然后在运行代码时会去cash 里面找是否有这个数据,如果没有这个数据再去内存找

GPIO输入输出电路分析

上拉电阻: 一般外面的输入设备都是用一个三极管或者MOS管,用开集或开漏的方式。 发射极接地,基级接通,三极管导通给到引脚低电平。三极管不导通的时候给到的单片机的电平就是上拉电阻上接的电平,这种设计可以将输入电平的大小交给外围设计者去做,上拉电阻可以接1.8 3 或5V 任意的VCC

推挽级输出:使用一对互补的NPN加PNP
在这里插入图片描述
当基极为高电平,上边的管子导通,输出为高电平,基极为低电平,下边的pnp导通,输出为低电平

大小端模式

小端:低位放到低地址
在内存中表示没问题(内存低地址在下高地址在上),但是在硬盘中 表示出来就是 相反的
比如 ea000014 硬盘中是从低位到高位,然后形成一个扇区,因此在硬盘中显示为14 00 00 ea 为什么14反过来不是41呢, 因为一个数字用4位二进制表示,14是一个字节表示,字节是不能反过来的。因为一个地址对应的一个字节。

小端用硬盘里打开就不太符合我们的阅读习惯,因此有了大端模式

大端:高位放到低地址
与小端相反 给、

编译,链接、汇编

预编译:precompile 展开头文件和宏定义
编译:conpile main.c变成main.s
汇编 assembly main.s变成main.o
链接:link 把各个.o 文件拼接起来,把实际的地址值都装进去,变成一个不带后缀的main文件(ELF

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值