图4 GEL程序流程
GEL程序在C程序每次执行前设定正确的环境变量并初始化缓冲区。例如,数据文件的长度usercode_length1就是需要根据实际的数据文件长度进行设定的环境变量;而在进行连续编程之前,需要GEL程序重新加载MEM_BASE缓冲区。
3 运行结果
在CCS环境下选择File/Load GEL,装载以上GEL程序,选择GEL/ PROGRAMMING/FlashFiring,即可实现Flash烧写。拔掉仿真器,给系统重新上电,可以看到液晶显示器上QQ企鹅的动画。
4 结论
通过函数地址可以进行Flash的全空间访问;采用C语言编写Flash擦除和编程函数,增强了程序的可读性;将引导表作成多个数据文件,一方面适于大引导表的加载,另一方面使Flash编程算法与编程数据完全分离,提高了算法的通用性;仅在GEL程序中修改参数即可实现另一用户程序的烧写,体现了方法的灵活性。
参考文献
[1] 张勇.C/C++语言硬件程序设计——基于TMS320C5000系列DSP[M].西安:西安电子科技大学出版社,2003(5):206-230.
[2] Texas Instruments. TMS320C54x Assembly Language Tools User's Guide. SPRUF102,200-210.
[3] David M Alter. Using C to Access Data Stored in Program Memory on the TMS320C54x DSP[R]. SPRA177A, Texas Instruments Application Report,2005-08.
[4] 北京合众达电子技术有限公司. SEED——MMI5402用户指南. 2004-06.
王海涛(硕士),主要研究方向为机器视觉、焊接自动控制;
张文明(教授),主要研究方向为焊接自动控制;
王滨(教授),主要研究方向为机器视觉。