1 54x DSP的开发
CCS集成开发环境是TI公司针对其全系列DSP开发的仿真编译器,可开发目前TI公司几乎所有类型的DSP芯片。在CCS集成开发环境下,54x DSP的开发一般分为以下几个步骤:程序编写、程序编译、COFF文件生成、仿真运行、HEX文件生成、程序存储器烧写和上机运行等,具体流程如图1所示。
在源程序正确的情况下,可编译生成COFF(common()bject File Format)文件,其后缀为.out,可用于进行硬件仿真运行,但不能直接作为程序烧写。如果要将程序写入DSP的外部程序存储器,首先要根据.out文件生成HEX文件。
HEX文件的生成需要调用专用的生成程序HEX500,在WIN32环境下执行HEX500*.cmd命令,生成需要的*.hex文件。按照命令文件*.cmd中的选项,可设置存储器的类型、位数、起始地址,程序的人口地址、引导方式和hex文件的格式等。下面是一段用串口对8位串行EOPROM进行引导的命令文件的例子。
123.out /*输入文件名*/
-i /*INTEL格式*/
-map 123.mxp
-o 123.hex /*输出文件名*/
-memwidth 8 /*8位存储器*/
-romwidth 8 /*输出文件为字节*/
-bcrotorg 0x0000 /*外部存储器开始地址*/
-bootorg serial /*串口装载*/
-e_main /*主程序人口*/
SECTI()NS
{.text;boot
} /*整个程序作为一段引导*/
2 HEX文件
CCS的编译器和链接器生成COFF目标文件。COFF目标文件是二进制格式,有利于模块化编程和更高效的程序片断和目标系统存储器管理。但是大多数的编程器不接受COFF文件。可以用HEX转化程序将其转换为以下5种标准的ASCII十六进制格式:
◇ASCII-HEX,支持16位地址}
◇扩展的TeKtronix;
◇Intel MCS-86;
◇Motorola-s,支持16位、24位、32位地址;
◇TI Tagged,支持16位地址。
仍然用前面的例子,命令文件生成的HEX文件片断如图2所示(用UltraEdit-32打开)。
在命令文件中,也可以根据具体应用情况的不同规定不同的参数,例如,当使用并行存储器作为程序存储器时,则引导装载命令就要改为parallel。具体参数设置见参考文献[1]。
3 硬件编程接口
为仿真调试的方便,54x DSP器件都具有仿真编程用的JTAG接口,其引脚定义如图3所示。
通过JTAG口,可以与DSP建立通信联系,并通过特定的程序,控制DSP的内部单元,让DSP执行预定的操作.这是DSP实现现场可编程的硬件基础,如图4所示。
4 现场可编程的实现方法
由于DSP的程序一般存储在外部存储器之中,因此,现场可编程的实现就是要将新程序通过DSP写入存储器。在以前,由于存储器的烧写电压普遍高于其工作电压,只能通过编程器烧写.随着技术的发展,现在许多E2PROM、Flash存储器等都可进行电擦写,擦写电压和工作电压一致,因此完全可以进行工作电压下的编程。
对DSP进行现场编程,需要用到的器材有计算机和DSP仿真器;需要用到的软件有CCS集成开发平台、UltraEdit-32程序和DSP现场编程程序。具体操作步骤如下:
①在CCS集成开发环境下,将程序编译完成,并在目标板上运行通过。
②打开程序存储器窗口,根据程序的起始、结束地址,将整个程序代码存储为一个数据文件(dat文件)。
③生成hex文件。
④用UltraEdit-32程序打开hex文件,找出程序人口值和程序长度值以及程序开始地址值.
⑤调入烧写程序,并装载入系统芯片.
⑥将程序入口值、程序长度值、程序开始地址值填人现场编程程序中并编译通过。
⑦将存储的程序代码调入数据空间的适当位置(存放位置自定)。
⑧运行现场编程程序,通过DSP将代码写入外部程序存储器。
以上步骤仅在编程开始时进行,一旦编程开始,就可以连续对多个器件现场编程。
DSP现场编程程序的编制也很简单。下面的参考程序是根据前面的命令文件参数编写的,并经仿真验证通过。设定Mc·BSP2口以SPI方式引导串行E2PROM。
.text
…… ;McBSP2口SPI初始化,主动方式
STM #1000H,ARl;从1000H开始10个字为程序
;代码前的数据
ST #08AAH,* ARl+ ;引导头
ST #0018H,* ARl+
ST #O003H,* ARl+
ST #0800H,* ARl+
ST #D010H,* ARl+ ;不重要
ST #000lH,* ARl+
ST #0C428H,* ARl+ ;主程序人口为1C428H
ST #2340H,* ARl+ ;程序代码总字数2340H
ST #000lH,* ARI+
ST #0C000H,* ARl+;程序开始地址1C000H
STM #(1000H+0AH+2340H),ARl
ST #O,* ARl;最后放结束标志#0000H
STM #O,ADDRESS ;地址寄存器清零
STM #1000H,AR2 ;程序代码开始地址
STM #(0AH+2340H+1),BRC
RPTB LOOP ;写循环
LDM ADDRESS,A
SFTL A,-8
AND #OOFFH,A
OR #0200H,A
STLM A,AR3 ;写指令+地址高位
LDM ADDRESS,A
SFTL A,8
AND #OFF00H,A
LD * AR2,B
SFTL B.-8
AND #0FFH,B
ADD B.A
STLM A,AR4 ;地址低位+数据字节
LDM ADDRESS.A
ADD #1.A
STLM A,ADDRESS ;E2PROM地址+1
CALL WRITE ;写E2PROM子程序
LDM ADDRESS,A
SFTL A,-8
AND #00FFH,A
OR #0200H,A
STLM A,AR3 ;写指令+地址高位
LDM ADDRESS,A
SFTL A,8
AND #0FFOOH,A
LD *AR2+.B;程序代码地址+1
AND #0FFH,B
ADD B.A
STLM A,AR4 ;地址低位+数据字节
LDM ADDRESS,A
ADD #1,A
STLM A,ADDRESS ;EOPROM地址+1
CALL WRITE;写EOPROM子程序
LOOP:NOP
.end
结 语
本文介绍的DSP现场可编程方法,经实际应用效果良好,其方便灵活的特点增强了现场处理问题的能力。由于其完全由软件实现,因此这种方法同样也适用于其他品牌的DSP产品。
上一篇:基于软件无线电的发信机原理及实现
下一篇:CDMA 870 ~ 880MHz 频段的结环行器设计
推荐阅读最新更新时间:2024-05-07 15:53
- 热门资源推荐
- 热门放大器推荐
- 汽车碰撞模拟仿真分析
- 汽车铝轮毂的试验仿真分析
- 汽车电源系统的分析及仿真
- 汽车电磁兼容仿真解决方案
An error occurred.
Sorry, the page you are looking for is currently unavailable.
Please try again later.
If you are the system administrator of this resource then you should check the error log for details.
Faithfully yours, OpenResty.
- Wi-Fi 8规范已在路上:2.4/5/6GHz三频工作
- 治理混合多云环境的三大举措
- Microchip借助NVIDIA Holoscan平台加速实时边缘AI部署
- 是德科技 FieldFox 手持式分析仪配合 VDI 扩频模块,实现毫米波分析功能
- 高通推出其首款 RISC-V 架构可编程连接模组 QCC74xM,支持 Wi-Fi 6 等协议
- Microchip推出广泛的IGBT 7 功率器件组合,专为可持续发展、电动出行和数据中心应用而设计
- 英飞凌推出新型高性能微控制器AURIX™ TC4Dx
- Rambus宣布推出业界首款HBM4控制器IP,加速下一代AI工作负载
- 恩智浦FRDM平台助力无线连接
- Allegro MicroSystems 在 2024 年德国慕尼黑电子展上推出先进的磁性和电感式位置感测解决方案
- 左手车钥匙,右手活体检测雷达,UWB上车势在必行!
- 狂飙十年,国产CIS挤上牌桌
- 神盾短刀电池+雷神EM-i超级电混,吉利新能源甩出了两张“王炸”
- 浅谈功能安全之故障(fault),错误(error),失效(failure)
- 智能汽车2.0周期,这几大核心产业链迎来重大机会!
- 美日研发新型电池,宁德时代面临挑战?中国新能源电池产业如何应对?
- Rambus推出业界首款HBM 4控制器IP:背后有哪些技术细节?
- 村田推出高精度汽车用6轴惯性传感器
- 福特获得预充电报警专利 有助于节约成本和应对紧急情况