Omap138开发板下以uboot2012.04.01为例分析uboot执行(一)

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根据启动参数加载根文件系统。

猜你喜欢

转载自blog.csdn.net/qq_40788950/article/details/83956660