- 1、本文档共76页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 C/C++程序编写基础
3.1 C/C++编辑器概述
TMS320X28xx的C编译器是一个功能齐全的优化
编译器,可以利用该编译器将标准的ANSI C/C++
程序直接转换成TMS320X28xx处理器的汇编代码。
ANSI:
American National Standards Institute 美国国家标准学会
3.1.1 C/C++语言的主要特征
1.标准的ANSI C/C++语言
2. ANSI标准实时运行支持
TMS320X28xx编译器工具为各种处理器提供完整的实时
运行库,库中包括标准输入/输出函数、字符串操作函数、动
态分配存储空间函数、数据格式转换函数、时间记录函数、
三角运算函数、指数运算函数和双曲线运算函数等。在实时
运行库中不提供信号处理函数,因为这些函数是与目标系统
有关的。扩展的实时运行库还包含rts函数,可以利用这些函
数访问大范围(far)的存储空间。
3.1.2 输出文件
TMS320X28xx编译器输出下列代码:
(1) 汇编源代码输出
TMS320X28xx编译器可以产生汇编语言源码文件,
方便用户查看由C/C++产生的汇编源代码。
(2) COFF 目标文件
通过 目标文件格式(COFF)允许用户在连接时定义系
统的存储器映射 (Memory Map)。这样能够把C/C++的代
码和数据对象连接到指定的存储器区域,最大限度地提
高代码的效率。COFF文件还支持源文件级调试。
(3) ROM数据格式转换。
对于独立 (Stand-alone)的嵌入式应用系统,编译
器能够把所有代码和初始化数据写入ROM中,使C/C++代
码能够在系统复位完成后运行。
3.1.3 编译器接口
l.编译器shell程序
编译器包含一个shell程序(c12000-v28) ,可以
用来单步完成程序的编译、汇编和链接。
C编译器(C Compiler):产生汇编语言源代码。
汇编器(Assembler):把汇编语言源文件翻译成机器语
言目标文件,机器语言格式为公用目标格式(COFF)。
链接器(Linker):把多个目标文件组合成单个可运行目
标模块。它一边创建可运行模块,一边完成重定位以
及决定外部参考。链接器输入的是可重定位的目标文
件和目标库文件。
2.灵活的汇编语言接口
编译器为用户提供了灵活方便的函数调用接口,可以
非常方便地实现C/C++函数和汇编语言的相互调用。通常
情况下,程序的主架构采用C/C++编写,对于代码的效率
要求较高的程字段采用汇编语言。在C/C++程序中调用汇
编主要有以下3种实现方法。
(1) 使用独立的汇编语言模块或文件,在目标代
码链接过程中将汇编代码链接到C/C++程序模块中,这
种方法也是最通用的方法。
(2) 直接在C/C++程序中嵌入汇编程序。
(3) 直接在C/C++程序中调用汇编函数。
3.1.4 编译器操作
1. 集成的预处理器(Integrated Preprocessor)
TMS320X28xx的C/C + +编译器包含标准的预
处理功能,这些功能主要完成下列预处理任务:
宏定义和扩展;
#include文件处理;
条件编译处理;
其他预处理标识 。
2.代码优化
编译器采用先进的优化技术对C/C++源代码进行优化,
如下图所示,从而减小代码的尺寸,提高代码的效率和
运行速度。C28x优化器充分利用C28x的结构特点对其代
码进行优化,生成更高效率的代码。优化器是位于分析
器和代码产生器中间的优化工具,最简单的方法就是使
用c12000- v28 shell程序,并通过-O选项确定优化级别。
3.1.5 编译器工具
源代码交叠工具(Source Interlist Feature)。编译器
工具中包含一个源代码交叠工具,它把C/C++语句和编译
后的汇编语句对应交叠在一起,用户可以使用这个工具观
察与C/C++语句相关的汇编代码。
创建库工具
文档评论(0)