一、DM6446的启动模式
系统加电或复位后,CPU都要从某个预定的地址上取得指令,执行Bootloader程序。DM6446处理器ARM端(ARM-Side)提供两种启动模式:
★
从异步的外部存储器接口AEMIF(Asynchronous External Memory Interface)/NOR Flash引导启动
★
从ARM内部ROM(AIROM,ARM Inner ROM)引导启动
这两者由Boot Selection(BTSEL[1:0])引脚的设置状态决定。如下:
★
BTSEL[1:0]=01时,系统加电或复位后ARM处理器从AEMIF或NOR Flash的零地址(0x02000000)执行引导启动代码,这些代码是由用户生成并烧写的,即从外部存储器启动
★
BTSEL[1:0]≠01时,系统加电或复位后,ARM处理器从AIROM的地址(0x00004000)执行RBL(ROM Boot Loader),即从片内ROM的RBL开始运行
而RBL程序根据BTSEL[1:0]状态(BTSEL[0-3]管脚的电平)来区分不同引导启动模式:
★
BTSEL[1:0]=00,NAND Flash引导启动模式:发送控制信息到UBL(User Boot Loader),并从Flash中拷贝UBL到ARM的内部RAM(AIRAM),并转到UBL执行
★
BTSEL[1:0]=11,UART引导启动模式:通过UART下载串口UBL并发送控制信息到用户软件
★
BTSEL[1:0]=10,保留未用
因此,DM6446在上电或复位后,存在四种启动方式。如下图。
DM6446引导启动流程
二、AIROM启动模式
AIROM启动模式受两个限制:1)、AIRAM的空间只有16KB;2)、NAND Flash不支持XIP(eXecute-In-Place,片内执行)技术。因此,AIROM启动模式可以划分为三个阶段:
▲
Stage1:加电或复位后,执行RBL。RBL是TI内嵌的程序,其内部实现不向用户公开;但提供了一个编程接口,以便设计人员据此编写UBL代码。
▲
Stage2:将UBL拷贝到AIRAM中并执行。UBL被烧写在NAND Flash的从Block1开始的5个存储块上,因此UBL的尺寸小于AIRAM的空间大小,即14K。
▲
Stage3:U-Boot。它被烧写在NAND Flash中的UBL后,由UBL读到DDR2中执行。
NAND Flash启动阶段划分
注:虚线部分为NAND引导启动核心
|