数字多媒体处理器TMS320DM355启动分析
扫描二维码
随时随地手机看文章
摘 要: 分析了TI公司的TMS320DM355的启动方式和NAND启动流程,使开发者能够根据实际需求改动DVSDK中的UBL与编译U-Boot,并排除开发过程中出现的错误。使开发者通过各种方式下载操作系统内核映像至DM355的Flsah,并建立NFS文件系统,从而建立一个完整的开发环境。
关键词: DM355;启动方式;NAND Flash;视频监控
TMS320DM355(以下简称DM355)处理器是TI公司推出的面向便携高清视频应用的基于ARM9+协处理器架构的新型低成本DaVinci平台[1-2],主要应用于媒体播放器、数码相机、数码相框、IP网络摄像机、视频婴儿监视器等[3]。该处理器具有独特的启动方式,其启动方式的选择和硬件设置是开发的关键问题之一[4]。本文基于DM355的嵌入式目标板和TI公司的DVSDK,介绍了DM355的启动方式设置、启动并引导U-Boot的过程。
1 总体启动流程
1.1 启动方式设置
DM355的ARM可以从异步外部存储器接口(AEMIF)上的OneNAND或者从ARM的内部ROM启动,这是由管脚BTSEL[1:0]的配置决定的[5]。BTSEL[1:0]也可以进一步设置ROM启动方式,即在芯片重置之后,除了当BTSEL[1:0]=01表明AEMIF已启动外,ARM一定从内部ROM的0x00008000处开始启动,ARM内部ROM中的这部分程序称作ROM Boot Loader(简称RBL)。因是TI公司嵌在DM355的内部ROM里面的,用户不能更改。
BTSEL[1:0]共有如下4种设置[6]:
(1)BTSEL[1:0]=01时,为AEMIF启动方式,这种模式由硬件控制,启动不包含ARM内部ROM(即RBL不运行)。在由OneNAND启动的情况下,用户必须自己在OneNAND的启动页中放入必要的启动代码,这些代码必须为OneNAND设备设置AEMIF模块。在AEMIF被设置之后,启动会紧跟OneNAND启动页中的AEMIF管理页而继续。
(2)BTSEL[1:0]=00时,RBL运行,NAND启动。
(3)BTSEL[1:0]=10时,RBL运行,MMC/SD启动。
(4)BTSEL[1:0]=11时,RBL运行,UART启动。
由此可见,不经由RBL的启动方式只有BTSEL[1:0]=01一种,而经由RBL的启动方式有3种(此时BTSEL[1:0]≠01)。
当芯片被设置成NAND启动模式时,如果启动失败,则DM355会尝试MMC/SD 启动;如果MMC/SD 启动失败,则DM355会再次尝试这种启动方式;如果UART启动失败,DM355会再次尝试这种启动方式。
DM355的总体启动流程如图1所示。
NAND启动与OneNAND启动适用于系统参数和功能固定的应用场合,二者在价格和读写速度上的差异也使得设计者可以根据需求做出权衡。而MMC/SD启动适用于系统参数和功能经常需要改变的场合。UART启动一般应用于调试阶段而非实际应用。
在设计系统选择启动方式时,可以根据各种方式的特点,选择合适的方式启动系统。
1.2 启动中的状态标志
DM355的RBL会用GIO61来指示启动状态(可以用来驱动LED),这可以帮助开发者更直观地观察系统的状态。重启之后,GIO61被初始化为低电平。
(1)如系统上电时通过NAND启动,未成功后会尝试通过MMC/SD启动,在此期间GIO61以4 Hz的频率切换高低电平。
(2)如系统被上电时通过MMC/SD启动,在尝试启动期间GIO61以4 Hz的频率切换高低电平。
(3)如系统上电时通过UART启动,在尝试启动期间GIO61以2 Hz的频率切换高低电平。
当启动成功之后,在程序被移交给UBL之前,GIO61被设置为高电平。其过程如图2所示。