- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章 C/C++语言程序设计;内容提要:; C/C++语言基本特点:;C55x C/C++编译器全面支持ANSI C/C++语言标准,能够把按照标准ANSI C/C++规范编写的源程序进行全面优化,编译成C55x 汇编语言源程序。
C55x C/C++编译器工具拥有完整的运行库,所有的库函数均符合ANSI库标准。;C55x C/C++编译器输出文件的特性。;数据类型
关键字
寄存器变量和参数
asm指令
Pragma指令
标准ANSIC语言模式的改变(-pk,-pr和-ps选项)
存储器模式
存储器分配
中断处理
运行时间支持算法及转换程序
系统初始化; 5.2.1 数据类型;类型;定义数据类型时应注意:
对定点算法(特别是乘法)尽量使用int数据类型。
用long类型作乘法操作数会调用运行时间库的程序
使用int或unsigned int类型而非long类型来循环计数
避免设char为8位或long为64位;5.2.2 关键字;(2) ioport;例5-1,ioport关键字的使用。;(3) interrupt;( 4) onchip;(5) volatile;5.2.3 寄存器变量和参数;5.2.4 asm指令;5.2.5 Pragma指令; CODE_SECTION指令及其用法;5.2.6 标准ANSI C语言模式的改变 (-pk、-pr和-ps选项) ;5.2.7存储器模式;(1) 小存储器模式(默认模式);(2) 大存储器模式;5.2.8 存储器分配;未初始化段:
.bss段,为全局和静态变量保留了空间。
在启动和装载的时候,C启动程序或装载程序从.cinit段(通常在ROM中)复制数据并用这些数据来初始化.bss段中的变量
.stack段:为C系统堆栈分配存储空间。;表5-2 段及其存储位置;(2) 堆栈;5.2.9运行时间支持算法及转换程序;5.2.10 系统初始化;(1) 运行时间变量初始化;(2) 装载时间变量初始化;5.3 C55x C/C++编译器的使用;编译器外壳程序cl55的调用:
cl55[options][filenames][–z[link_options][object files]]
;表5–3 编译器和链接器的常用选项;注意:;5.3.3 编译器和CCS (Code Composer Studio);5.4 TMS320C55x的C代码优化;5.4.1编译器的基本优化选项;5.4.1编译器的优化选项;–o3:最大优化级别。在–o2级优化的基础上,进一步优化:
移除从未调用的函数代码
删除从未使用返回值函数的返回代码
把小函数代码自动嵌入到程序中
重新安排函数声明的次序等。
-oi size:当采用–o3级优化时,优化器自动嵌入被调用
的小函数, 只有小于size的函数才能被嵌入。;5.4.2嵌入函数(Inline Function);表5-5 C55x C/C++编译器的本征函数;;;;5.5 C和汇编语言的接口;习题
5.1 C55X C语言支持的数据类型有哪些?
5.2 关键字interrupt有什么作用?
5.3 如何在C语言程序中嵌入汇编语言语句?
5.4 如何用C语言访问DSP的I/O空间?
5.5 小存储器模式和大存储器模式有何区别?
5.6 C编译器生成的段有哪些?各段的作用是什么?
5.7 为什么要对程序进行优化?
5.8 C编译器优化选项o0、o1、o2、o3各有什么特点?
文档评论(0)