- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第13章DSP程序设计
第13章 DSP程序设计
主要内容:
(1)DSP C语言程序设计
(2)C语言与汇编语言混合编程
(3)DSP程序烧写
13.1 DSP C语言程序设计
DSP支持使用ANCI C进行程序设计,并提供了相应的编
译器和C优化编译工具,利用这些优化编译工具可以
产生可与手工编写相比的汇编语言程序。
13.1.1 DSP C语言的特征
DSP C语言以ANSI C为基础,并对ANSI C进行了相应的
限定和扩展。
以下是LF2407 C语言的一些不同于一般标准C的特征:
标识符和常量
所有标识符的前100个字符是有效的,区分大小写。
不允许多字节字符。
多字符的字符常数按序列中的最后一个字符来编码。
例如:’abc’ ’c’。
数据类型
整型、双精度型等数据类型长度与常见编译器中数据
类型不同,所有的浮点型都是由MS320C2x/C2xx/C5x的
32位的二进制浮点格式来表示。
size_t(sizeof操作符的结果)定义为unsigned int。
ptrdiff_t(指针加减的结果)定义为int。
类型转换
浮点数转换为整型数为向零取整转换。
指针和整型数可以自由转换。
表达式
当两个有符号整型数相除,如果两个数中任一个为负
数,则商为负数,并且余数的符号与被除数的符号相同。
用斜线符号(/)可以得到商,用百分号(%)可以得到
余数。
例如:10 / -3 = -3; -10 / 3 = -3;
10 % -3 = 1; -10 % 3 = -1;
有符号型数的右移是算术移位,符号被保留。
声明
寄存器变量(register)声明对
short,integer,pointer等所有类型的变量都有
效。
预处理指令(#pragma)
预处理器会忽略所有不支持的预处理指令。
支持下列预处理指令:CODE_SECTION,
DATA_SECTION和FUNC_EXT_CALLED。
13.1.2 数据类型
所有整数类型(char,short,int以及对应的无符号
类型)都是相同的,都是由16位的二进制数来表示。
长整型(long)和无符号长整型(unsigned
long)都是由32位的二进制数来表示。
有符号类型都是由基2的补码来表示。
字符型是有符号类型,等同于整型。
枚举(enum)类型的对象用16位数来表示;在表
达上与整型相似。
所有浮点型(float,double和long double)相
似,在TMS320C2x/C2xx/C5x中都是用32位浮点格
式来表示。
long和float类型以低有效字存储在低端的存储
地址。
注:在TMS320C2x/C2xx/C5x C语言中,字节长度为16位,sizeof操作符返
回的对象长度是以16位为字节长度的字节数。例如sizeof(int) = 1。
13.1.3 寄存器变量
C编译器在一个函数中最多只能用两个寄存器变量,
而且必须在参数表或函数的开始处声明。在嵌套块
中的寄存器变量定义被认为是一般的变量。
编译器用AR6和AR7作寄存器变量:
□ AR6被指定为第一个寄存器变量。
□ AR7被指定为第二个寄存器变量。
变量的地址放在指定的寄存器中,访问起来更加容
易。16位的字节变量(char,short,int和pointer)
可以用作寄存器变量。
在运行时,设置每一个寄存器变量需要四条指令。
为了有效地利用这种方式,只有在一个变量被多次
访问时,才使用寄存器变量。
程序优化编译器也会定义寄存器变量,但使用方式
不同。编译器会自己决定哪些变量作为寄存器变量,
程序中声明的寄存器变量会全部被忽略。
13.1.4 asm语句
TMS320C2x/C2xx/C5x的C编译器可以在编译器输出的汇编
语言中直接嵌入汇编语言指令。这种能力是C语言的扩展—
—asm语句。asm语句能够实现一些C无法实现的功能。
/*****************
您可能关注的文档
最近下载
- 2023年重庆第二外国语学校(二外)小升初试卷附详细答案.pdf VIP
- 2025年黑龙江省辅警招聘考试试题带解析附答案.docx
- 《真菌性鼻窦炎》课件:深入了解真菌性鼻窦炎的病因、症状及治疗方法.ppt VIP
- 3.5跨学科实践:探索厨房中的物态变化问题 人教版(2024)物理八年级上册.pptx VIP
- 21起典型火灾案例及消防安全知识专题培训(2025年).ppt
- 禁毒预防教育主题班会.ppt VIP
- 六国论理解性默写[共3页].doc VIP
- 超星尔雅学习通《高校实验室安全基础课(实验室准入教育)》章节测试含答案 .pdf
- 索尼彩监特丽珑trinitron_pvm14m2u维修电路图手册.pdf VIP
- 2024年十八项医疗核心制度(最新).docx VIP
文档评论(0)