本帖最后由 xzp114 于 2017-1-19 19:42 编辑
关于AM335x的启动,相信很多从嵌入式走过来的朋友都知道一个大概的流程,基本思路就是boot来引导系统的启动。之前使用的是2416+Nor+nand,有Nor就一切都好办,烧写boot到Nor偏移0,则系统从Nor开始读入8K的内容到内部的Sram,这段boot就是完成将系统的代码读入到ddr上运行这个功能。但是AM335x在没有Nor只有Nand的时候,这就有点麻烦,nand的寻址方式比较复杂,此时系统的启动流程如下:
芯片到uboot启动流程 :ROM → MLO(SPL)→ uboot.img
AM335x 中bootloader被分成了 3 个部分:
第一级 bootloader:引导加载程序,板子上电后会自动执行这些代码,如选择哪种方式启动(NAND,SDcard,UART。。。),然后跳转转到第二级 bootloader。这些代码应该是存放在 176KB 的 ROM 中。
第二级 bootloader:MLO(SPL),用以硬件初始化:关闭看门狗,关闭中断,设置 CPU 时钟频率、速度等操作。然后会跳转到第三级bootloader。MLO文件应该会被映射到 64 KB的 Internal SRAM 中。
第三级 bootloader:uboot.img,C代码的入口。
其中第一级 bootloader 是板子固化的,第二级和第三级是通过编译 uboot 所得的。
关于启动的一些说明和工具,在下面的固件中,希望能帮到大家!
AM335X StarterWare Booting And Flashing.rar
(864.23 KB)
|