第6章c/C++语言程序设计 61C55Xc/C++语言概述 62c55XC/C++语言编程基础 63C55Xc/C++编译器的使用 64TMs320c55X的C代码优化 65C55XC和汇编语言混合编程
第6章 C/C++语言程序设计 3 ◼6.1 C55x C/C++语言概述 ◼6.2 C55x C/C++语言编程基础 ◼6.3 C55x C/C++编译器的使用 ◼6.4 TMS320C55x的C代码优化 ◼6.5 C55x C和汇编语言混合编程
61C55Xc/C++语言概述 611c/C++语言概况 61.2C55XC/C++语言概况
6.1 C55x C/C++语言概述 ◼ 6.1.1 C/C++语言概况 ◼ 6.1.2 C55x C/C++语言概况 4
61.1C/C++语言概况 ●汇编语言依赖于计算机硬件,程序的可读性和 可移植性比较差。一般高级语言具有很好的可 移植性,但是难以实现汇编语言的某些功能 (如对内存地址的操作、位操作等)。 Cc/C++语言作为一种高级语言,既可以访问物 理地址又可以进行位操作,能直接对硬件进行 操作,适合用作DSP开发语言
6.1.1 C/C++语言概况 5 ⚫ 汇编语言依赖于计算机硬件,程序的可读性和 可移植性比较差。一般高级语言具有很好的可 移植性,但是难以实现汇编语言的某些功能 (如对内存地址的操作、位操作等)。 ⚫ C/C++语言作为一种高级语言,既可以访问物 理地址又可以进行位操作,能直接对硬件进行 操作,适合用作DSP开发语言
c/C++语言具有如下基本特点 ◆语言简洁、紧凑,使用方便、灵活 ◆运算符丰富,表达式类型多样化 数据结构类型丰富 ◆具有结构化的控制语句 ◆语法限制不太严格,程序设计自由度大 ◆c/C++语言允许访问物理地址,能进行位操 作,能实现汇编语言的大部分功能,能直接对 硬件进行操作
⚫ C/C++语言具有如下基本特点: ◆ 语言简洁、紧凑,使用方便、灵活 ◆ 运算符丰富,表达式类型多样化 ◆ 数据结构类型丰富 ◆ 具有结构化的控制语句 ◆ 语法限制不太严格,程序设计自由度大 ◆ C/C++语言允许访问物理地址,能进行位操 作,能实现汇编语言的大部分功能,能直接对 硬件进行操作 6
61.2c55XC/C++语言概况 C55XC/C++编译器全面支持 ANSI C/C++语言标 准能够把按照标准 ANSI C/C++规范编写的源程序 进行全面优化编译成C55X汇编语言源程序。 c55XC/C++编译器工具拥有完整的实时运行库所 有的库函数均符合ANS库标准。 库函数包括标准输入 °c55Kc/C++编译器输出文件的特性。输出、串操作、动态 CCC+编译器生成的汇编语言便于查内存分配、数据转换 看,用户能看到产生自C/C+源程序的代码。三角函数、指数函数、 双曲函数等,但是不 COFF文件允许用户在链接时定义自己的系包含信号处理函数, 统存储器配置,使用户可把代码和数据链接 进特定的内存区域,提高程序性能。 因为它们涉及到目标 系统的具体特性。 COFF文件支持源程序级的调试
库函数包括标准输入 输出、串操作、动态 内存分配、数据转换、 三角函数、指数函数、 双曲函数等,但是不 包含信号处理函数, 因为它们涉及到目标 系统的具体特性。 6.1.2 C55x C/C++语言概况 ⚫C55x C/C++编译器全面支持ANSI C/C++语言标 准, 能够把按照标准ANSI C/C++规范编写的源程序 进行全面优化, 编译成C55x 汇编语言源程序。 ⚫C55x C/C++编译器工具拥有完整的实时运行库, 所 有的库函数均符合ANSI库标准。 ⚫C55x C/C++编译器输出文件的特性。 ◆C55x C/C++编译器生成的汇编语言便于查 看, 用户能看到产生自C/C++源程序的代码。 ◆COFF文件允许用户在链接时定义自己的系 统存储器配置, 使用户可把代码和数据链接 进特定的内存区域, 提高程序性能。 ◆COFF文件支持源程序级的调试。 7
第6章C/C++语言程序设计 61C55Xc/C++语言概述 62C55XC/C++语言编程基础 63C55Xc/C++编译器的使用 64TMs320c55X的C代码优化 65C55XC和汇编语言混合编程
第6章 C/C++语言程序设计 8 ◼6.1 C55x C/C++语言概述 ◼6.2 C55x C/C++语言编程基础 ◼6.3 C55x C/C++编译器的使用 ◼6.4 TMS320C55x的C代码优化 ◼6.5 C55x C和汇编语言混合编程
62c55Xc/C++语言编程基础 C55Xc/C++编译器全面支持ANsI c/C++语言标准 ●本节介绍反映C55XC语言基本特性的 有关编程基础知识
6.2 C55x C/C++语言编程基础 ⚫ C55x C/C++编译器全面支持ANSI C/C++语言标准 ⚫ 本节介绍反映C55x C语言基本特性的 有关编程基础知识 9
62C55Xc/C++语言编程基础 62.1数据类型 622关键字 623寄存器变量和参数 624asm指令 625 Pragma指令 626标准 ANSIO语言模式的改变(pk-pr和-ps选项) ■62.7存储器模式 628存储器分配 629中断处理 ■6210运行时间支持算法及转换程序 ■62.11系统初始化
◼ 6.2.1 数据类型 ◼ 6.2.2 关键字 ◼ 6.2.3 寄存器变量和参数 ◼ 6.2.4 asm指令 ◼ 6.2.5 Pragma指令 ◼ 6.2.6标准ANSIC语言模式的改变(-pk,-pr和-ps选项) ◼ 6.2.7 存储器模式 ◼ 6.2.8 存储器分配 ◼ 6.2.9 中断处理 ◼ 6.2.10 运行时间支持算法及转换程序 ◼ 6.2.11 系统初始化 6.2 C55x C/C++语言编程基础 10
621数据类型 ●C55XC语言支持的数据类型 类型 伥度(位内容最小值最大值 带符号)字符型( signed) char16ASCⅢ码-3276832767 无符号字符型 unsigned char 16ASCI码065535 带符号短整型 signed)short I162补码-3276832767 无符号短整型 unsigned]short16二进制数06535 (带符号)整型( signed)int 162补码|-3276832767 无符号整型 unsigned int 16二进制数06555 带符号长整型 signed) long32补码21472147 483648483647 无符号长整型 unsigned long 32 进制数0 4294 967295 11
6.2.1 数据类型 ⚫ C55x C语言支持的数据类型: 类型 长度(位) 内容 最小值 最大值 (带符号)字符型(signed) char 16 ASCII码 -32 768 32 767 无符号字符型unsigned char 16 ASCII码 0 65 535 (带符号)短整型(signed) short 16 2补码 -32 768 32 767 无符号短整型unsigned short 16 二进制数 0 65 535 (带符号)整型(signed) int 16 2补码 -32 768 32 767 无符号整型unsigned int 16 二进制数 0 65 535 (带符号)长整型(signed) long 32 2补码 -2 147 483 648 2 147 483 647 无符号长整型unsigned long 32 二进制数 0 4 294 967 295 11
●C55XC语言支持的数据类型: 类型度(位)内容最小值最大值 带符号特长整型 ong long402补码 549755549755 813888813888 无符号特长整型 unsigned long long 40二进制数0 1099511 627775 枚举enum 162补码-3276832767 浮点foat 3232位IEEE118E-38340E+38 双精度 double 3232位EEE18E-38340E+38 长双精度 long double 3232位IEEE18E38340E+38 数据指针(小存储器模式)16二进制数00xFF 数据指针(大存储器模式)23二进制数007FFF 程序指针 pointers (function)24二进制数00FFF
类型 长度(位) 内容 最小值 最大值 带符号特长整型long long 40 2补码 −549 755 813 888 549 755 813 888 无符号特长整型 unsigned long long 40 二进制数 0 1 099 511 627 775 枚举enum 16 2补码 -32 768 32 767 浮点float 32 32位IEEE 1.18E-38 3.40E+38 双精度 double 32 32位IEEE 1.18E-38 3.40E+38 长双精度long double 32 32位IEEE 1.18E-38 3.40E+38 数据指针(小存储器模式) 16 二进制数 0 0xFFFF 数据指针(大存储器模式) 23 二进制数 0 0x7FFFFF 程序指针pointers (function) 24 二进制数 0 0xFFFFFF 12 ⚫ C55x C语言支持的数据类型: