- 1、本文档共35页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4、C语言混合编程【荐】.ppt
4、C语言DSP程序设计 提纲 一、存储器模式 二、寄存器规则 三、函数调用规则 四、中断函数 五、表达式分析 DSP中增加的C关键字 p280 Const:定义常量,保证不被改变 例:int * const p = x; const int * q = x; Volatile:定义一个变量,保证其不被优化掉 例:unsigned int * ctrl while(*ctrl!=0xFF) ?volatile unsigned int * ctrl Ioport:定义端口 例子:ioport unsigned port10 Interrupt:定义一个中断服务函数 例子:interrupt void int_handler() Near/far:定义函数的调用方式 例子: near foo()——用call来调用 far int foo()——用fcall远程调用 定点DSP芯片C程序的开发过程主要分以下几个步骤: 1.? 用编辑器(如EDIT、ccs等)编辑一个或多个C程 序,如example1.c,example2.c。2.? 编译C程序,形成目标文件,如example1.obj,example2.obj: dspcl_v25_g_mn_o2 example1.c dspc_v50_g_mn_o2 example1.c 命令选项中的_v25表示是TMS320C2X,若是 TMS320C5X,则选项为_v50。 3.? 根据实际应用编辑一个链接命令文件,如example.cmd。 MEMORY{ PAGE0:VECS:? origin=0h? len=30h PAGE0:PROG:? orgin=30h? len=0EFDOh??? /*程序 空间*/ PAGE1:DATA:? origin=800h? len=OE800h??? /*数据 空间*/} SECTIONS{ .vectors:{}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.cmd5.? 用C源码调试器进行调试(模拟器、硬件仿真器等)。 例: 用C语言编写一个TMS320C5X的输入输出程序,并用simulator进行调试。 /*本程序是TMS320C5X的一个I/O口输入和输出程序,程序从I/O口地址0x0读入8位数据并存入数组中,同时将另一数组的数值写至I/O口地址0x1*/ #include? ioports.h??????????? /*包含ioports.h头文件*/#define? RD_PORT? 0x00;????? /*定义输入I/O口*/#define? WR_PORT? 0x01;????? /*定义输出I/O口*/int indata[5],outdata[5];??????????? /*定义全局数组*/ main() int i; for(i=0;i5;i++) outdata=i2;?? /*初始化outdata数组*/ for(i=0;i5;i++)????????????????? /*循环5次*/ inport(RD_PORT,indata);?????? /*读I/O口*/ outport(WR_PORT,outdata);?????? /*写I/O口*/ 用TMS320C5X? simulator调试I/O口时,将I/O口与一文件相关联。这里我们建立两个文件RD.DAT和WR.DAT,并将RD.DAT文件初始化为:0x00110x00220x00330x
文档评论(0)