十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
参考文件:Sitara AM335x Bootload的流程分析
创新互联是一家专业提供田阳企业网站建设,专注与网站制作、网站建设、H5响应式网站、小程序制作等业务。10年已为田阳众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。
am335x上电后从Rom code开始运行,Rom code 地址0x4000_0000。
Rom code 是固化在芯片的一个引导程序,具体参见《AM335x and AMIC110 Sitara. Processors Technical Reference Manual》第26章。
Rom code运行后,根据sysboot引进配置,去遍历启动列表,寻找启动Image。启动列表主要分为存储器件和外设。从存储器件启动,启动Image需要有Image标头,标头含有入口地址和Image大小。
sysboot配置,SYSBOOT[4:0] = 10011,那么启动顺序为 NAND->NANDI2C->MMMC0->UART0。
上电后,串口输出8个“C”,即是Rom code程序跳转到UART启动了。
AM335X中内部RAM的大小为128KB,其中最后18KB由ROM代码使用。此外,启动时1 KB(0x402f0000 - 0x402f0400)无法访问,所以限制了U-Boot的大小为109KB以内。无法再109KB完成U-Boot的所有功能,那就将u-boot分成2部分。
MLO文件——初始化所需的引导设备(NAND,MMC,I2C等)。
U-Boot.img——初始化所有其他设备。U-boot.img在u-boot.bin基础上添加头信息后,可用被MLO引导。