刚接触Uboot,便应为一个chip出了意外而导致学习进度的狂飙,速度使用起来,并且添加pre-boot给自己的板子,自定义命令并且boot up kernel,发现其实Uboot没什么好学或者研究的,因为这个东西实在很规范,有规范的文档,是学习的入门,但不是研究深入的东西。
说点别的,编译生成的执行bin文件,有可以分别由几个独立模块组成,就是可以各自在不同的ddr 空间运行,但是如果你需要知道某一模块内某一部分的代码起始地址和长度,这样你需要在代码中引用外部变量,但是这个变量是有链接脚本在链接整个模块时定义并且赋值的。
关于NAND的速度问题,不同的chip有不同的属性,这里说的是诸多tWB,tBUY,tRE等等,是否支持 ONFI之类的,有时候为了速度,又会有不同的NAND controller,在速度更换中涉及到clock的设置,要注意代码运行的情况,此时cpu的频率多少,代码的编写是否会被编译器优化成指令无序化,这个对硬件可是有影响的,是否需要额外的delay来稳定硬件或者说对于NAND,是否需要额外的reset。