您当前的位置:五五电子网电子知识单片机-工控设备嵌入式系统-技术应用于DM648的FLASH自动加载实现分析 正文
应用于DM648的FLASH自动加载实现分析

应用于DM648的FLASH自动加载实现分析

点击数:7458 次   录入时间:03-04 12:02:19   整理:http://www.55dianzi.com   嵌入式系统-技术

    Section Load是数据段复制命令,以命令代码0x58535901开始,之后的数据以32位为长度,分别是复制的目的地址、数据长度和要复制的数据。当所有需要下载的数据段都已复制完成后,需要以Jump_Close命令结束。Jump_Close命令的数据部分提供了一个32位的入口地址,该地址为应用程序的入口地址。程序会跳转到该入口地址运行应用程序。

    COFF到AIS文件格式转换的过程首先就是读取COFF文件头数据,获得文件中数据段的数量,然后根据段信息表来判断该数据段是否需要下载、下载的目的地址、数据长度和数据在COFF文件中起始地址。然后将段起始地址、数据长度和数据(ROW DATA格式)填写到Section Load指令的数据部分,每个数据段对应一条Section Load指令。这一过程中只处理需要下载的数据段,因为不需要下载的数据段即未初始化数据段是在程序运行过程中被赋值的。下载的各个数据段按照目的地址由低到高的顺序填写到AIS文件中,直到所有数据段都处理完成,最后以Jump_Close命令结束,便得到了可用于烧写的AIS文件。软件流程如图4所示。

应用于DM648的FLASH自动加载实现方法

    4 一个完整的自动加载实现过程

    基于DM648的核心板原理框图如图5所示。核心板上的主要资源包括:TMS320DM648处理器,最高工作频率为1.1 GHz;256 MB的DDR2存储器,工作频率为533 MHz;32 MB的NOR FLASH,型号为S29GL256N,每个扇区大小为128 KB。

应用于DM648的FLASH自动加载实现方法

    1)准备工作

    在CCS环境中使用C语言编写UBL和应用程序,编泽生成.out文件,使用3.2节提到的转换程序将.out文件转换为AIS文件。后缀为.ais。

    2)启动模式选择及下载环境创建

    配置DM648芯片引脚BOOTMODE[0:3]全部为低电平,FASTBOOT为高电平,选择芯片的启动方式为仿真器启动。连接仿真器、DM648核心板和PC机,配置仿真器驱动保证CCS可以配合硬件环境完成程序调试。

    3)烧写UBL及应用程序AIS文件

    在CCS环境下打开TI公司的DVSDK中的DM648_NORWriter.pjt,该工程实现将UBL及应用程序AIS文件烧写到FLASH中。首先通过CFI接口读取FLASH芯片的参数并自动选择操作FLASH所用的命令字是AMD模式或是Intel模式。在实际开发时所选FLASH芯片可能不支持CFI接口,此时需要使用者参考自己使用的硬件系统中FLASH芯片数据手册,指定操作FLASH所用的指令字。

    由于烧写程序需要将AIS镜像文件完全烧写到FLASH中而不需要对内容作解析,因此在CCS环境下以文件操作的形式,使用二进制格式将镜像文件打开,获得文件指针并读取文件内容。文件操作代码如下:

    //输入UBL.ais文件路径

    DEBUG_printString(“Enter thc binary AIS file name:

    \r\n”);

    DEBUG_readString(fileName);

    fflush(stdin);

    //以二进制形式打开UBL.ais文件,获取文件指针FPtr

    fPtr=fopen(fileName,“rb”);

    //读取AIS文件的长度(字节数)

    fseek(fPtr,0,SEEK_END);

    ublFileSize=ftell(fPtr);

    程序运行后会弹出对话框要求输入AIS文件路径。在CCS环境中连接DM648核心板,编译并运行DM648_NORWriter.pjt工程完成烧写。

    4)重新配置启动模式实现系统自启动

    烧写完成后,断开CCS连接,DM648核心板断电并且重新设置引脚BOOTMODE[0:3]状态为0100,FASTBOOT为高电平,以此选择芯片的启动模式为EMIFA ROM快速启动。DM648核心板重新上电后自动运行UBL程序实现应用程序的自动加载。可以使用串口线连接DM648和PC机,UBL会在执行过程中将启动信息通过串行接口发送到PC机。

 5 结论

    实现DM648系统的自动加载需要经过编写二次引导程序,将二次引导程序和应用程序编译结果转换为可用于烧写的AIS文件,最终将AIS烧写到FLASH中。整个过程有一定的复杂性。本文给出的方法和程序为实现这一功能提供了简明的方法,通过在DM648核心板上实现FLASH烧写和自启动过程证明了该方法有效,同时文中提出的格式转换方法可以推广到DM648的其他启动方式中。



上一页  [1] [2] 


本文关键字:FLASH  嵌入式系统-技术单片机-工控设备 - 嵌入式系统-技术

《应用于DM648的FLASH自动加载实现分析》相关文章>>>