- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章_C语言程序设计讲解
第5章 C/C++语言程序设计 内容提要: C55x C/C++语言概述 C55x C/C++语言编程基础 C55x C/C++编译器的使用 TMS320C55x的C代码优化 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 数据类型 C55x C语言支持的数据类型: 定义数据类型时应注意: 对定点算法(特别是乘法)尽量使用int数据类型。 用long类型作乘法操作数会调用运行时间库的程序 使用int或unsigned int类型而非long类型来循环计数 避免设char为8位或long为64位 5.2.2 关键字 (1) const C55x C编译器支持标准C语言的const关键字。 const关键字可以定义常数表并将它们分配到系统ROM存储空间中。 (2) ioport ioport关键字 : 用于I/O寻址模式 ioport类型限定词可以和标准类型(数组、结构体、共用体和枚举)一起使用 Ioport 单独使用时,默认int类型 ioport类型限定词只能用于全局或静态变量。 局部变量不能用ioport限制,除非变量是个指针 例5-1,ioport关键字的使用。 ioport int k ; /*正确* / void foo(void) { ioport int i ; /*错误* / ioport int *j ; /*正确* / } (3) interrupt interrupt关键字,指定某个函数为中断函数。 ( 4) onchip Onchip :定义变量只能存储在DSP片上存储器中,不能在存储在外部存储空间。 定义的变量可用作双MAC指令的操作数。 例, onchip int x[100] ; /* 数组声明 */ onchip int *p ; /* 指针声明 */ (5) volatile 防止编译器对代码进行优化. 如果程序一定要对存储器访问,则必须使用volatile关键字来指明这些访问。 5.2.3 寄存器变量和参数 寄存器变量就是用register关键字声明的变量。 5.2.4 asm指令 asm指令可将汇编语言指令嵌入到编译后输出的汇编语言中, 像做asm函数的调用。 指令格式: asm (“assembler text”); 例 asm (“nop”); 插入一条汇编指令nop 5.2.5 Pragma指令 Pragma指令:告诉编译器的预处理器如何处理函数。 必须在函数体外确定pragma,且必须出现在任何声明、定义或对函数和符号引用之前。否则,编译器会输出警告。 CODE_SECTION指令及其用法 语法: #pragma CODE_SECTION(func_name,”section_name”) 作用: 把C函数func_name的代码配置到由section_name定义的程序段中 5.2.6 标准ANSI C语言模式的改变 (-pk、-pr和-ps选项) 编译源代码有如下的模式: Normal ANSI模式:编译器默认的模式在此模式下: 大多数违反ANSI标准的语句都报错 违反严格ANSI标准的语句给出警告 允许扩展的语句. KR C模式 (–pk) :兼容老版本的代码. 宽松ANSI模式(-pr ): 忽略违反严格的ANSI标准的情况,不发送警告消息或错误消息 编译接受对ANSI C标准的扩展,甚至是和ANSI C冲突的时候。 严格ANSI模式(-ps): 在违反ANSI规则的时候报错。 可能影响程序严格形式的语言扩展不可用. 如: asm关键字 5.2.7存储器模式 编译器支持两种存储器模型: 小
您可能关注的文档
最近下载
- Unit 1 Fun numbers and letters (说课稿)-2024-2025学年人教PEP版(一起)(2024)英语二年级上册.docx VIP
- 印刷成本核算方式.docx VIP
- 森林防火教学课件.ppt VIP
- 二级保密资格档案目录(24盒)优质材料.doc VIP
- 2025水利工程五大员专业题库(含答案).docx VIP
- 图书馆业务知识培训ppt课件.pptx VIP
- 传感器智能传感器与无线传感器网络技术.pptx VIP
- 中国共产党基层组织选举工作条例学习宣贯ppt课件.pptx VIP
- 游消费者行为学(第二版)孙九霞全套PPT课件.pptx
- 东芝 e-STUDIO 2000AC 2500AC 彩色复印机维修手册(拆卸安装篇).pdf VIP
文档评论(0)