u-boot编译
正确编译U-boot的代码的过程如下:
1.首先是编译器的问题,确保GNU交叉编译工具链环境变量的设置生效。
2.为特定的板子建立配置文件。
输入:make
CROSS_COMPILE=arm-none-linux-gnueabi- da850sdi_tl_cofig .可以从boards.cfg中找到支持开发板的配置名称,配置好后,显示如下:
3.执行以下命令编译U-Boot。
make CROSS_COMPILE=arm-none-linux-gnueabi- u-boot.ais -j4
OMAP-L138启动机制
1.
开机上电,用户在boot管脚上配置的启动方式被锁定采样到SYSCFG模块的BOOTCFG寄存器,从而确定处理器的启动方式
2.
PSC模块中的启动默认值是:ARM核休眠,DSP核使能,这时候DSP启动,DSP从片内DSP L2 ROM 处读取指令执行,这里有TI已经固化的仅DSP核可以访问的ROM
bootloader,简称DSP RBL。
3.
DSP的RBL做一些简单的初始化后,就通过PSC模块使能ARM核,休眠自己。然后ARM就从片内的RAM LOCAL ROM处读取指令并执行,这里有TI已经固化好的ARM bootloader.
4.
ARM的RBL做一些初始化后,根据BOOTCFG寄存器的设定,从指定的地方读取用于启动u-boot的Boot loader,简称UBL。UBL可以放在Nandflash,或者通过串口下载等方式取得,这里的UBL是(AIS Application Image Script)格式,而不是通常的bin格式。
5.
当ARM RBL 读取到boot.ais 后根据AIS格式中的命令初始化、加载并运行UBL。然后就是UBL加载运行u-Boot,u-Boot根据启动参数启动Linux,Linux根据启动参数加载根文件系统。