网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: 61IC中国电子在线 >> DSP >> C5000文章 >> C54X系列 >> 文章正文
  用C语言设计TMS320C2X/C5X应用程序(五)         ★★★ 【字体:
用C语言设计TMS320C2X/C5X应用程序(五)
作者:W003    文章来源:本站原创    点击数:    更新时间:2007-2-1    

六、TMS320C2X/C5X C语言程序开发举例

本节我们以TMS320C2X为例,说明定点DSP芯片C程序的开发过程。软件开发过程与浮点DSP芯片的开发过程相类似,主要分以下几个步骤:

1.  用编辑器(如EDITPE2等)编辑一个或多个C程序,如example1.cexample2.c

2.  用一步编译程序dspcl.exeC程序编译汇编形成目标文件,如example1.objexample2.obj

dspcl_v25_g_mn_o2 example1.c

dspc_v25_g_mn_o2 example2.c

命令选项中的_v25表示是TMS320C2X,若是TMS320C5X,则选项为_v50

3.  根据实际应用编辑一个链接命令文件,如example.cmd。下面是一个典型的TMS320C25的链接命令文件:

2.3  TMS320C25链接命令文件

example.cmd                         /* 命令文件名*/

-c                                  /*ROM初始化*/

-o example.out                        /*输出文件名为example.out*/

-m example.map                       /*同时产生映象文件example.map*/

example1.obj                         /*第一个C目标文件*/

example2.obj                         /*第二个C目标文件*/

-l rts25.lib                            /*链入TMS320C25运行支持库*/

-l flib25.lib                           /*链入TMS320C25浮点库*/

MEMORY

PAGE0:VECS:  origin=0h  len=30h

PAGE0ROG:  orgin=30h  len=0EFDOh    /*程序空间*/

PAGE1ATA:  origin=800h  len=OE800h    /*数据空间*/

SECTIONS

vecs:{}>VECS                            /*中断矢量*/

.text:{}>PROG PAGE0                     /*代码*/

.cinit:{}> PROG PAGE0                    /*C初始化表*/

.switch:{}>PROG PAGE0                   /*switch语句表*/

.bss:{}>DATA PAGE1                      /*变量*/

.const:{}>DATA PAGE1                    /*常数变量*/

.stack:{}>DATA PAGE1                    /*系统堆栈*/

.sysmem:{}>DATA PAGE1                  /*动态存储器*/

4.  链接形成example.out

dsplnk example.cmd

5.  C源码调试器进行调试(模拟器、硬件仿真器等)。

2.4  C语言编写一个TMS320C5X的输入输出程序,并用simulator进行调试。

/*本程序是TMS320C5X的一个I/O口输入和输出程序,程序从I/O口地址0x0读人8位数据并存人数组中,同时将另一数组的数值写至I/O口地址0x1*/

include  "ioports.h"            /*包含ioports.h头文件*/

define  RD_PORT  Ox00;      /*定义输入I/O*/

define  WR_PORT  Ox01;      /*定义输出I/O*/

1nt indata[5],outdata[5];            /*定义全局数组*/

main()

int i;

for(i=0;i<5;i++) outdata=i<<2;     /*初始化outdata数组*/

for(i=0;i<5;i++)                  /*循环5*/

inport(RD_PORT,&indata);       /*I/O*/

outport(WR_PORT,outdata);       /*I/O*/

TMS320C5X  simulator调试I/O口时,将I/O口与一文件相关联。这里我们建立两个文件RD.DATWR.DAT,并将RD.DAT文件初始化为:

0x0011

0x0022

0x0033

0x0044

0x0055

上述程序运行结束后,可以观察数组indata及文件WR.DAT。正确的结果应为indata[5]={0x11,0x22,0x33,0x44,0x55},文件WR.DAT应为

0x0000

0x0004

0x0008

0x00C0

0x0010

2.5  C语言编写一个具有中断功能的TMS320C50程序,用硬件仿真器进行调试。

/*本程序是TMS320C50的一个串行口输入输出程序。TMS320C50PCM编译码器MC14LC5480通过串行口相接。中断程序从串行口读人8位数据,并将它写回串行口*/

#define VEC_ADDR(volatile int * )0x00;       /*矢量地址*/

Fvolatile int * RCV_ADD=(volatile int *)0x20;   /*C50串行口接收寄存器地址*/

volatile int * XMT_ADD=(volatile int *)0x21;    /*C50串行口发送寄存器地址*/

int indata;                                  /*定义全局变量*/

main()

{

volatile int * INTVEC=VEC_ADDR;       /*矢量指针*/

INTVEC[]=(volatile int)c_int5;            /*置串行口接收中断矢量*/

/*初始化串行口*/

asm("SPLK #0CH,SPC ";                /*F0=FSM=1,DLB=MCM=TXM=0*/

asm("OPL #0C0H,SPC ";                 /*XRST=RRST=1*/

for(;;                               /*等待中断*/

}

void c_int5()                          /*串行口接收中断*/

{

indata=RCV_ADD[0];

XMT_ADD[0]=indata;

 

以上附录中我们介绍了用C语言开发DSP芯片的方法。用C语言开发DSP芯片缩短了开发周期,提高了程序开发的效率,也使程序的可读性和可移植性大大提高,对于系统的改进和升级换代也带来了极大的便利。当然,用目前的C编译器生成的程序代码,其效率还不能完全与手工编写的效率相比拟“,因此实际DSP应用系统中往往采用C和汇编的混合编写方法.

               欢迎点击进入:TI德州中文网   (国内唯一针对TI应用的中文技术网站)    文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    用C语言设计TMS320C2X/C5X应…
    用C语言设计TMS320C2X/C5X应…
    用C语言设计TMS320C2X/C5X应…
    用C语言设计TMS320C2X/C5X应…
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    站长:61IC 湘ICP备05002478号