一、devmem
devmem的方式是提供给驱动开发人员,在应用层能够侦测内存地址中的数据变化,以此来检测驱动中对内存或者相关配置的正确性验证。
[用法]
Usage: devmem ADDRESS [WIDTH [VALUE]]
读取:在地址0x8000_0000读取32bit值(WIDTH默认等于32, 可选值为[8, 16, 32, 64])
/dev # devmem 0x80000000
0x11111111
读取:在地址0x80000000读取16bit值
/dev # devmem 0x80000000 16
0x1111
写入:在地址0x80000000写入32bit值0x12345678
/dev # devmem 0x80000000 32 0x12345678
/dev # devmem 0x80000000
0x12345678
二、BootLoader(BL0、BL1、BL2)
BL是BootLoader的缩写。
一般会把uboot分为两个部分:BL1和BL2,BL1和BL2各有分工,两者相加就是整个uboot。
BL0 文件是存放在CPU内部IROM中的一段固化代码,CPU 上电之后,首先去运行BL0文件。
BL1 文件是一段外部代码,存放在SD卡或者 nandflash上,大小为 8K;
BL2 文件是完整的 U-Boot 代码。
这三个文件之间的关系就是:BL0运行时会将BL1拷贝到CPU的IRAM中,然后执行BL1;BL1文件执行起来之后会先进行内存的初始化,之后将BL2文件拷贝到外部内存中,也就是DDR中。
1、BL1阶段的功能
(1)硬件设备初始化
(2)加载BL2阶段代码到RAM空间
(3)设置好栈
(4)跳转到第二阶段代码入口
2、第二阶段的功能
(1)初始化本阶段使用的硬件设备
(2)检测系统内存映射
(3)将内核从Flash读取到RAM中
(4)为内核设置启动参数
(5)调用内核
版权声明:本文为weixin_45270982原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。