Uboot的用法?

Uboot的用法?,第1张

1.一个很复杂的问题,Uboot的移植时候修改的参数,跟你开发板硬件有关,比如开发板上有NorFlash,那么你就需要移植NorFlash驱动代码,如果你的开发板上面连NorFlash都没有,那么就根本不需要移植了。所以要想知道修改题的参数,首先需要把平台列一下。

2.第二个问题是关于Uboot的NandFlash问题,这个问题比较大,设计到DRAM问题、ARM11初始化问题,一般流程是使用NandFlash Control的Steppinstone,先执行启动代码,然后再从Nand搬运到DDR SDRAM中(ARM11一般都用DDR了,所以默认为DDR)。

3.Uboot退出,这个简单,直接把利用Uboot go命令就行了。直接赋值PC寄存器也可以。

1、nor flash工作原理:其核心就是读、写、擦除 *** 作,以及对应的命令 *** 作时序,见数据手册。(但是EN29LV160AB没有块 *** 作时序和命令,也没有提到有多少块)

2、SST39VF1601移植参考文件是SST39VF160,在uboot/board/dave/common/flash.c 文件,但是EN29LV160AB移植参考文件也是可以用这个文件吗??

3、国嵌中SST39VF1601,移植修改如下

(1)先读取nor flash ID,即要吻合software ID Entry命令 *** 作序列。(在函数flash_init中,先修改函数flash_get_size())

(2)函数中不识别device ID为234BH的SST39VF1601的片子,所以在flash.c中添加相应的宏定义

(3)在函数flash_get_size()的device ID匹配中添加代码,使初始化时能够识别芯片

(4)建立flash的block分区的地址表,驱动按照每块64kb来建立分区的

(5)修改flash的擦除函数flash_erase(),实验时可以选择按块方式擦除

(6)修改法拉盛写函数write_word函数

(7)修改函数write_buff

(8)修改函数flash_print_info

(9)此时去编译uboot的时候会报一些错误,因为没有CFG_FLASH_ADDR0没有定义,参考include/configs/B2.h,在board/mini2440/flash.c添加宏定义的代码

(10)屏蔽原来flash有关的宏定义

(11)添加有关新的flash宏定义(CONFIG_ENV_ADDR定义了环境变量的起始地址为0x30000,环境变量的大小为64k)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11583662.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存