微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 应用于DM648的FLASH自动加载实现方法

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

时间:09-12 来源:互联网 点击:

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的其他启动方式中。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top