C54x高级C语言程序设计 - 山东大学课程中心0.ppt
第5章 C54x高级C语言程序设计
C54x的程序设计有两种语言:汇编语言和C语言。
汇编语言程序效率高,硬件定时准确,但不够直观 ,设计周期较长,可移植性和可维护性差
参考:TMS320C54x Optimizing C_C++ Compiler User‘s Guide.pdf, SPRU103G,2002 ,TI官网
1
山东大学生物医学工程刘忠国
第5章 C54x高级C语言程序设计
C语言,可移植性好,可维护性好 ,可生成代码执行效率较高的可执行程序。
2
山东大学生物医学工程刘忠国
第5章 C54x高级C语言程序设计
一般代码用高级语言编写,缩短开发周期,还可使汇编语言编写的程序被高级语言所调用。
3
山东大学生物医学工程刘忠国
第5章 C54x高级C语言程序设计
目录:
5.1 C54x C语言介绍
5.2 C54x C语言编程
5.3 C54x C代码优化
4
山东大学生物医学工程刘忠国
第5章 C54x高级C语言程序设计
5.1 C54x C语言介绍
1. C54x C编译器支持开发的C语言标准,继承了大多数的ANSI的语法规则 。
2. ANSI C和C54x C也有许多不同之处 。
5
山东大学生物医学工程刘忠国
第5章 C54x高级C语言程序设计
5.1 C54x C语言介绍
5.1.1 C54x C与ANSI C的相同点
只要与硬件不是特别相关的部分都是它们的相同点。
6
山东大学生物医学工程刘忠国
5.1 C54x C语言介绍
5.1.1 C54x C与ANSI C的相同点
以函数作为基本单位。
函数的定义和引用方式完全一致。
大部分变量、常量、数组、结构体、枚举、联合体、指针的定义语法结构也完全一致。
7
山东大学生物医学工程刘忠国
5.1 C54x C语言介绍
5.1.1 C54x C与ANSI C的相同点
局部变量、全局变量、静态变量、动态变量等基本定义也一致。
宏定义、宏展开、宏调用的基本思想甚至语法规则上基本一致。
8
山东大学生物医学工程刘忠国
5.1.1 C54x C与ANSI C的相同点
1.常量定义
格式: const 类型 符号=数值 ;
例5-1:const short d1=8 ;
C54x C也可以用下面的方法定义符号常量:
#define Vmax 1; //程序中出现Vmax时均会以1来代替
9
山东大学生物医学工程刘忠国
5.1 C54x C语言介绍
5.1.1 C54x C与ANSI C的相同点
2.变量定义
1) 一般变量的定义:
格式: 类型 符号 ;
2) 扩展变量的定义: struct, enum
3) 自定义变量的定义:
格式: typedef 已有类型 新数据类型 ;
char ch_1
10
山东大学生物医学工程刘忠国
5.1 C54x C语言介绍
1) 一般变量的定义:
例5-2:
char ch_1 ;//定义一个字符变量,名字为ch_1
short sh_1;//定义了一个短整型变量,名字为sh_1
long l_dat1;//定义了一个长整型变量,名字为l_dat1
int *pi_1 ;//定义了一个指向整型数据的指针变量,名字为pi_1
short sh_a[10] ; //定义了一个短整型数组,数组的长度为10
11
山东大学生物医学工程刘忠国
5.1 C54x C语言介绍
2) 扩展变量的定义:
struct str_t //定义一个结构类型str_t
{ short sh_a;
long l_b;
float f_c; };
struct str_t str_a; //定义一个str_t型结构变量str_a。
enum TorF{false,true};//定义一个枚举变量TorF
union un_v{char c;short s;int i;long l};//定义了一个联合体变量un_v。
12
山东大学生物医学工程刘忠国
5.1 C54x C语言介绍
3) 自定义变量的定义:
例5-3:
typedef unsigned short US_DATA ;
US_DATA ush_t;
等同于:
unsigned short ush_t;
13
山东大学生物医学工程刘忠国
5.1 C54x C语言介绍
5.1.1 C54x C与ANSI C的相同点
3.函数的定义和组织
C54x C和ANSI C一样,整个程序有一个主函数(main函数