- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6讲 DSP的C语言编程_1.PPT
第6讲 DSP的C语言编程 1.使用汇编语言开发DSP程序的优缺点 优点: -更能发挥DSP系统特点。由于汇编语言掌控系统硬件的能力强于C语言,设计出来的程序更加贴近硬件特性,往往能将硬件效能发挥到极致。 -代码精练,效率高。用汇编语言设计的程序,代码短、不容易产生冗余。 -代码量小。 缺点: -可读性差。不利于复杂算法的开发和实现。 -可移植性差。 -容易产生流水线冲突。由于排除冲突需要靠人来辅助完成,这要求编程人员有较为丰富的开发经验和对硬件工作机制的深刻理解。 2.使用C语言开发DSP程序的优缺点 优点: -易于开发和维护。由于用C语言书写接近自然语言,其可读性强、利于理解,在编制、修改、实现算法方面比用汇编语言开发容易。 -可移植性强。 -不容易发生流水线冲突。编译器能提供完善的解决流水线冲突的结果。 -有大量现存的算法可利用。 -适用于人机界面的开发。 缺点: -代码量大。 -程序效率较低。 -优化代码存在一定困难。 DSP的C语言同主机C语言的主要区别? 1)DSP的C语言是标准的ANSI C,但它不包括同外设联系的扩展部分,如屏幕绘图等。不过在CCS中,为了方便调试,可以将数据通过printf命令虚拟输出到主机的屏幕上。 2)DSP的C语言的编译过程为,C编译为ASM,再由ASM汇编为OBJ。因此C和ASM的对应关系非常明确,非常便于人工优化。 3)DSP的代码需要绝对定位;主机的C的代码由操作系统定位。 4)DSP的C的效率较高,非常适合于嵌入式系统。 不涉及硬件的语法和ANSI C语法一样。 需要注意的是,有些ANSI C标准中的函数在DSP的编译器中不提供,读者可以参考DSP编译器的C语言手册: 《TMS320C2x/C2xx/C5x Optimizing C Compiler User’s Guide》(SPRU024E) 有关嵌入式系统的C语言编程可参考《单片机与嵌入式系统应用》2001年1~6期《嵌入式C编程技术》 C语言编程使用方法 ——查阅C编译器用户手册 5 TMS320C2x/C2xx/C5x C Language 6 Runtime Environment 7 Runtime-Support Functions 1、内部寄存器的定义与使用 每一个寄存器都有一个专有名字供开发者使用,它们被定义在一个头文件(例如F206.h)中,程序员只需在程序的开始部分用#include “F206 .h”语句将该文件包含进来即可。注意:这些寄存器的名字不能用作变量名。 寄存器头文件用C语言定义如下: 例如:存储器映射寄存器的定义: #define IMR (volatile unsigned int *)0x0004 或 volatile unsigned int * IMR= (volatile unsigned int *)0x0004 ; I/O映射寄存器的定义: ioport unsigned portFFFF; #define WSGR portFFFF 在DSP的C语言程序中使用刚才定义的寄存器。例如: 对存储器映射寄存器的访问: *IMR=0x0004;/*将十六进制数4H赋给IMR寄存器,即允许TINT中断*/ 对I/O映射寄存器的访问: WSGR=0x00;/*将十六进制数0H赋给WSGR寄存器*/ 寄存器头文件用汇编语言定义如下: 例如:存储器映射寄存器的定义: IMR .set 0004h ;中断屏蔽寄存器地址定义 I/O映射寄存器的定义: WSGR .set 0FFFFh FCMR .set 0FF0Fh ;Flash模式控制寄存器 程序员在汇编程序中使用这些寄存器时只需在程序的开始部分用 .include “F206 .h”语句将该文件包含进来即可。 在DSP的汇编语言程序中使用刚才定义的寄存器。例如: 对存储器映射寄存器的访问: splk #0002h,IMR 对I/O映射寄存器的访问: ldp #0h splk #0000h, 60h out 60h, WSGR ; Set zero wait states C编译器生成的块(段) 所有的块分为两大类:已初始化块和未初始化块。已初始化块包含程序代码和数据表,未初始化块是为未初始化的数据在存储器中保留存储器空间。程序运行时,利用这些空
您可能关注的文档
最近下载
- 2025年海南社区《网格员》典型题题库(含答案).docx VIP
- 叁桥通(2017)4360(32+48+32)m双线连续梁圆端形实体桥墩.pdf VIP
- 抹灰工程施工方案 - 抹灰工程施工方案.doc VIP
- 2023高三数学高考第一轮复习计划(10篇).pdf VIP
- 苏教版心理健康三年级上册第7课《课堂学习有妙招》课件.pptx VIP
- 考研英语二真题高频词汇汇总.pdf VIP
- GB50427-2015 高炉炼铁工程设计规范.pdf VIP
- 学堂在线 自我认知与情绪管理 章节测试答案.docx VIP
- KUKA机器人KRC4培训_原创精品文档.pptx VIP
- rotax582活塞航空发动机基本培训手册.pdf.pdf VIP
文档评论(0)