Board logo

标题: 如何用C语言开发DSP嵌入式系统引言(2) [打印本页]

作者: yuyang911220    时间: 2016-10-24 19:42     标题: 如何用C语言开发DSP嵌入式系统引言(2)

(2)TMS320F240链接时所需的中断矢量表文件

  TMS320F240的目标文件在链接时要用到中断矢量表。中断矢量表用汇编语言编写,和具体的DSP芯片有关。假设TMS320F240的中断矢量表对应的汇编程序为BOOT.ASM,汇编后的文件名为BOOT.OBJ。

  下面是一个典型的矢量表文件。(假设程序名为BOOT.ASM。)

  .port /*定义中断函数的名字*/

  .globl_c_int0 /*中断0对应的函数名*/

  .globl_c_int1 /*中断1对应的函数名,以下语句的意义相同*/

  .globl_c_int2 /*可以将中断函数名看作中断入口地址*/

  .globl_c_int3 /*矢量表的存放不需程序员干预*/

  .globl_c_int4

  .globl_c_int5

  .globl_c_int6

  .globl_c_int7

  .globl_c_int8

  ·sect“.vectors”/*用.sect命令自定义一个块,用于存放中断矢量表*/

  RSVE CT B _c_int0 /*中断0发生后,程序的跳转目的地址*/

  INT1 B _c_int1 /*中断1发生后,则跳到c_int1()函数处*/

  INT2 B _c_int2 /*意义同上,下同*/

  INT3 B _c_int3

  INT4 B _c_int4

  INT5 B _c_int5

  INT6 B _c_int6

  用汇编器汇编该程序,命令形式:DSPABOOT.ASM-V2XX生成BOOT.OBJ文件供链接器使用。这样,就可以按如下形式在C源程序中编写中断函数:

  voidc_inx() /*x为1~8中之一*/

  {

  中断程序的C语句系列;

  }

  注意事项:c_int0()是系统入口函数,用户不能编写。

  经过上面对命令文件(CMD文件)和中断矢量表的介绍,接下来可以链接命令文件来生成所需要的OUT文件供DSP芯片执行或进行软仿真。

  命令形式:DSPLNK CMD文件名

  例如:DSPLNK EX1.CMD

  另一种情况是,不使用CMD文件,使用缺省配置,简单介绍如下:

  命令形式:DSPLNK OBJ文件名参数

  例如:DSPLNK EX1.OBJ BOOT.OBJ-O XX1.OUT-M XX1.MAP

  以上三步可以用图1描述。

  2.4程序的仿真

  用EMURST仿真器复位命令

  EMU2XXW EX1.OUT

  载入COFF格式的二进制代码仿真运行。有关调试器的使用略。

  2.5程序的固化

  程序仿真运行正确后,需要固化到Flash ROM中。TMS320F240内部有16K字的Flash ROM可以用来固化程序,而不需要外扩EPROM(程序不大于16K字的情况下)。

  TI公司提供有固化程序的软件,可以通过仿真器经JTAG口将程序写入芯片内、目前发展了一种新的固化技术,可以通过串口写入DSP芯片,特别适合于现场调试。下面介绍通过JTAG口的固化方法。

  首先用EMURST命令复位调试器,然后执行下面三个批处理文件。

  第一步,执行BCO.BAT批处理文件,将FlashROM清除(CLEAR),使全为0。

  第二步,执行BE0.BAT批处理文件,将FlashROM擦除(ERASE),使全为1。

  (以上两步不需要修改软件包中自带的这两个BAT文件。)

  第三步,执行BP16K.BAT批处理文件,将自己的OUT文件写入到DSP内部的Flash ROM中。执行这一步之前,要先修改BP16K,BAT,将待写入的OUT文件替换成自己的OUT文件。下面看一下这个批处理文件。假设软件包的安装目录为C:DSP,该目录下有一个子目录SRC。

  prg2xx-p240-m0x0006-w6srcc2xx_bpx.out要写入的OUT文件

  如果要将EX1.OUT写入到DSP的Flash中,则执行下面的命令:

  prg2xx-p240-m0x0006-w6srcc2xx_bpX.out c:dspEX1.out

  经过以上步骤即完成了程序固化,可以将系统放到现场实验了。

  注意:固化程序时,CPU一定要工作在20MHz的频率下。在SRC子目录下有一个配置文件C240_CFG.I,读者可以根据程序说明并结合自己系统的外部晶振频率将CPU的工作频率设为20MHz(写入时的频率)。

  本文以TMS320F240的开发为例,介绍了怎样用C语言开发DSP系统的全过程。希望对读者会有所启发和帮助。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0