您的位置:首页 > 其它

随想录(我们从uboot学什么)

2017-02-28 22:32 169 查看
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

    uboot的基本结构不复杂,主要就是一个裸循环的结构。但是,uboot包含的东西很多,有很多我们值得学习的东西。下面,我们就按照arm基本上电流程,看看一个soc芯片初始化到运行,需要完成哪些工作。

(1)cpu/arm920t/start.S
    start.S包含了uboot进入c之间进行操作的地方,相关工作主要是关开门狗、关中断、设置pll、清cache、关mmu、初始化ddr寄存器、relocate code、准备sp、清bss,为进入start_armboot做准备。

(2)board/smdk2410/lowlevel_init.S
    这个文件非常重要,它直接决定了ddr是否可以初始化成功,关系到后面是否把代码从norflash或者nandflash搬到ddr中继续运行。

(3)lib_arm/board.c
    这是所有arm体系的soc最终都要到达的文件,也就是所有的soc初始化好之后都需要进入这个文件。除了进行一些设备的初始化之后,后面它就是等待命令、执行命令了。

(4)common/cmd_*.c
    此处为command解析执行的地方,如果需要添加自己的命令,也是在这里完成的。

(5)drivers/*.c
    这里是uboot驱动设置的地方,如果需要uboot识别自己额外添加的硬件,可以在这里添加自己的驱动代码。

补充:
    所有uboot代码中,个人觉得最难以理解的代码就是pll和ddr初始化代码,基本没什么技巧,直接看着手册硬编。大家只能靠自己慢慢体会了。:-)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: