配套课件-嵌入式系统基础项目化教程.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《配套课件-嵌入式系统基础项目化教程.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 配套 课件 嵌入式 系统 基础 项目 教程
- 资源描述:
-
1、嵌入式系统基础项目化教程项目1 初识嵌入式系统1.1 项目内容与要求1.2 项目背景知识1.2.1 1.2.1 嵌入式系统定义嵌入式系统定义1.2.2 1.2.2 嵌入式系统的发展与现嵌入式系统的发展与现状状1.2.3 1.2.3 嵌入式系统的嵌入式系统的特点特点1.2.4 1.2.4 嵌入式系统的嵌入式系统的应用领域应用领域1.2.5 1.2.5 嵌入式系统的嵌入式系统的开发流程开发流程项目1 初识嵌入式系统1.1 项目内容与要求(1)了解嵌入式系统定义、发展进程。(2)了解嵌入式系统微处理器特点。(3)了解嵌入式系统相关术语。项目1 初识嵌入式系统1.2 项目背景知识 嵌入式系统是以应用为
2、中心,以计算机技术为基础,并且软硬件可裁减,适用于应用系统,对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序四个部分组成,用于实现对其他设备的控制、监视或管理等目标。1.2.1 1.2.1 嵌入式系统定嵌入式系统定义义项目1 初识嵌入式系统 1960年,在通信系统上,首次采用存储式程序控制系统(Stored Program Control)对电子机械电话交换进行控制,这种控制系统就是嵌入式系统的雏形。嵌入式系统的概念是在1970年左右出现的,当时大部分软件设计都是由汇编语言完成的,而且这些汇编程序只能用于某一种固
3、定的微处理器,因此嵌入式系统的发展和应用受到了一定的约束。随着集成电路技术的发展,嵌入式系统的体系结构经历了由CISC(复杂指令集计算机)到RISC(精减指令集计算机)和Compact RISC的转变。在处理字长上由4位发展到8位、16位、32位、64位;寻址范围不断扩大,从64KB发展到16MB,直至4GB;指令执行速度也由最初的0.1MIPS提高到2000MIPS。1.2.2 1.2.2 嵌入式系统的发展与现嵌入式系统的发展与现状状项目1 初识嵌入式系统 嵌入式系统的核心是处理器,主要有嵌入式微处理器(EMPU,Embedded MicroProcessor Unit)、嵌入式DSP处理器
4、(EDSP,Embedded Digital Signal Processor)、嵌入式片上系统(ESoC,EmbeddedSystem on Chip)、嵌入式微控制器(EMCU,Embedded、System-MicroController Unit)等几种类型。可以预见,嵌入式系统将朝着以下趋势发展:(1)系统化。(2)微控制器功能越来越强大。(3)网络化。项目1 初识嵌入式系统1.2.3 1.2.3 嵌入式系统的嵌入式系统的特特点点(1)嵌入式系统通常是面向用户、面向产品、面向特定应用的。(2)嵌入式系统是先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合的产物。嵌入式系
5、统产品一旦进入市场,就具有较长的生命周期。(3)嵌入式系统对于程序的质量,特别是可靠性,有着较高的要求。项目1 初识嵌入式系统 嵌入式系统本身不具备自主开发能力,必须有一套开发工具和环境才能对其进行开发。目前的开发工具平台主要分为以下几类:(1)实时在线仿真系统ICE(2)高级语言编译器源(3)程序模拟器(Simulator)(4)实时多任务操作系统RTOS其中,RTOS是嵌入式系统的软件开发平台,它的引入解决了随着嵌入式系统中软件比重不断上升、应用程序越来越大而带来的嵌入式软件开发标准化的难题。项目1 初识嵌入式系统1.2.4 1.2.4 嵌入式系统的嵌入式系统的应用应用领域领域嵌入式系统技
6、术具有非常广阔的应用前景,其应用领域如下:(1)工业控制(2)交通运输(3)信息家电(4)POS网络和电子商务(5)环境监测(6)机器人项目1 初识嵌入式系统1.2.5 1.2.5 嵌入式系统的嵌入式系统的开发开发流程流程 嵌入式系统开发的一般流程主要包括系统需求分析(要求有严格规范的技术要求)、体系结构设计、软硬件协同设计、系统集成和系统测试,最后得到最终产品。1.系统需求分析 系统需求分析是指确定设计任务和设计目标,提炼出设计规格说明书,作为正式设计的指导和验收的标准。系统的需求一般分功能性需求和非功能性需求两方面。功能性需求是系统的基本功能,如输入/输出信号、操作方式等;非功能性需求则是
7、对系统性能、成本、功耗、体积、重量等的要求。项目1 初识嵌入式系统 2.体系结构设计 体系结构设计是指描述系统如何实现所述的功能和非功能的需求,包括对硬件、软件和执行装置的功能划分,以及系统的软件、硬件选型等。一个好的体系结构是设计成功与否的关键。3.软硬件协同设计 软硬件协同设计是指基于体系结构,对系统的软件、硬件进行详细设计。为了缩短产品开发周期,设计往往是并行的。嵌入式系统的设计工作大部分都集中在软件设计上,面向对象技术、软件组件技术、模块化设计是现代软件工程经常采用的方法。项目1 初识嵌入式系统 4系统集成 系统集成是指把系统的软件、硬件和执行装置集成在一起,进行调试,发现并改进单元设
8、计过程中的错误。5系统测试 系统测试是指对设计好的系统进行测试,看其是否满足规格说明书中给定的功能要求。嵌入式系统基础项目化教程项目2 嵌入式系统C语言知识要点2.1 项目内容与要求2.2 嵌入式系统C语言数据类型2.2.1 2.2.1 基本数据类型基本数据类型2.2.2 2.2.2 构造类型构造类型2.2.3 2.2.3 运算符运算符2.2.4 2.2.4 流程控制流程控制2.2.5 2.2.5 函数函数2.2.6 2.2.6 编译预处理编译预处理项目2 嵌入式系统C语言知识要点2.1 项目内容与要求(1)了解嵌入式系统定义、发展进程及特点。(2)了解嵌入式系统相关术语。(3)熟悉嵌入式系统
9、开发常用C语言语法概要。2.2 嵌入式系统C语言数据类型项目2 嵌入式系统C语言知识要点 数据类型本质上是规定数据在内存中占据多少个字节。嵌入式系统C语言的数据类型有基本类型和构造类型两大类。(1)signed char,有符号字节型,位长为8位,字节数为1,数据范围为-128+127。(2)unsigned char,无符号字节型,位长为8位,字节数为1,数据范围为0255。(3)signed short,有符号短整型,位长为16位,字节数为2,数据范围为-32768+32767。(4)unsigned short,无符号短整型,位长为16位,字节数为2,数据范围为065535。(5)sig
10、ned int,有符号短整型,位长为16位,字节数为2,数据范围为-32768+32767。(6)unsigned int,无符号短整型,位长为16位,字节数为2,数据范围为065535。(7)signed long,有符号长整型,位长为32位,字节数为4,数据范围为-2147483648+2147483647。(8)unsigned long,无符号长整型,位长为32位,字节数为4,数据范围为04294967295。(9)float,浮点型,位长为32位,字节数为4,数据范围为约为-3.410-38+3.410+38)。(10)double,双精度型,位长为64位,字节数为8,数据范围约为-
11、1.710-308+1.710+308)。2.2.1 2.2.1 基本数据类型基本数据类型项目2 嵌入式系统C语言知识要点1.1.数组数组1)1)数组的定义数组的定义定义格式:类型说明符类型说明符 数组名数组名 常量表达式常量表达式11常量表达式常量表达式22 常量常量表达式表达式nn;其中,类型说明符是任一种基本数据类型或构造数据类型。数组名是用户定义的数组标识符。方括号中的常量表达式表示每一维中数据元素的个数,一维数组中也称为数组的长度。2.2.2 2.2.2 构造类型构造类型项目2 嵌入式系统C语言知识要点2)2)数组的初始化数组的初始化数组可以在定义的时候初始化。int array5=
12、1,2,3,4,5;在定义数组时,可以用放在一对大括号中的初始化表对其进行初始化。初始化值的个数可以和数组元素个数一样多。如果初始化的个数多于元素个数,将产生编译错误;如果少于元素个数,后续的元素被初始化为0。3)3)数组元素访问数组元素访问数组元素的访问一般都是通过下标。【例】int a;a=arry0;则a的值为数组arry的第一个元素。需要注意的是,数组的第一个元素下标从0开始,在赋值的时候,还可以使用变量作为数组下标。项目2 嵌入式系统C语言知识要点4)4)字符数组字符数组 用来存放字符量的数组称为字符数组。其定义的一般形式是:char char 数组名数组名 字符长度字符长度 【例】
13、char array5=H,E,L,L,O;对于单个字符,必须要用单引号括起来。由于字符和整型是等价的,所以上面的字符型数组也可以这样表示:char array5=72,69,76,76,79;/*用对应的ASCII码*/但是字符型数组和整型数组也有不同的地方。项目2 嵌入式系统C语言知识要点2.2.结构体结构体 结构体是一种构造类型,它是由若干“成员”组成。每一个成员可以是一个基本数据类型或者是一个构造类型。既然结构体是一种“构造”而成的数据类型,那么在说明和使用之前就必须先定义。1)1)结构的定义结构的定义定义一个结构的一般形式为:struct结构名 类型说明符 变量名1;类型说明符 变量
14、名2;项目2 嵌入式系统C语言知识要点如;struct student char name8;int age;char sex2;char depart20;float wage1,wage2;wang;上面定义了一个结构名为student的结构变量wang,如果省略变量名wang,则该定义是对结构的说明。用已说明的结构名也可定义结构变量,如struct student ding;项目2 嵌入式系统C语言知识要点2)2)结构体访问结构体访问 依据结构体变量类型的不同,对于结构体成员一般有两种访问方式,一种为直接访问,一种为间接访问。直接访问应用于普通的结构体变量,间接访问应用于指向结构体变量的
15、指针。直接访问使用“结构体变量名.成员名”,间接访问使用“(*结构体指针名).成员名”或者使用“结构体指针名-成员名”。项目2 嵌入式系统C语言知识要点3 3.联合联合 共用体(Union)也叫“联合”,表示几个变量共用一个内存位置,在不同的时间保存不同的数据类型和不同长度的变量。在union中,所有的共用体成员共用一个空间,并且同一时间只能储存其中一个成员变量的值。共用体的声明和共用体变量定义都使用关键字union,其形式与结构体十分相似。具体为:union共用体名 数据类型 成员名;数据类型 成员名;变量名;访问共用体成员的方法与结构体相同,即采用“.”号和“-”访问。同样普通共用体变量用
16、“.”访问成员变量,指向共用体体变量的指针用“-”访问成员变量。项目2 嵌入式系统C语言知识要点4.4.枚举类型枚举类型 在程序设计中,有时会用到由若干个有限数据元素组成的集合,将这些有限可列的数据集合定义为枚举类型。1)1)枚举类型变量定义枚举类型变量定义(1)先定义类型后定义变量 enum;格式:,;例如:enum colors red=5,blue=1,green,black,white,yellow;colors c1,c2;c1、c2 为colors类型的枚举变量。项目2 嵌入式系统C语言知识要点(2)定义类型的同时定义变量格式:enum ,;例如:enum colors red=5
17、,blue=1,green,black,white,yellowc1,c2;(3)直接定义枚举变量格式:enum ,;例如:enum red=5,blue=1,green,black,white,yellow c1=red,c2=blue;由上例可以看出,定义枚举变量时,可对变量进行初始化赋值,c1的初始值为red,c2的初始值为blue。项目2 嵌入式系统C语言知识要点 enum ;其中,关键词enum表示定义的是枚举类型,枚举类型名由标识符组成,而枚举元素表由枚举元素或枚举常量组成。例如:enum weekdays Sun,Mon,Tue,Wed,Thu,Fri,Sat;在定义枚举类型时,
18、也可指定元素对应的整型常量值。例如,描述逻辑值集合TRUE、FALSE的枚举类型boolean可定义如下:enum boolean TRUE=1,FALSE=0;该定义规定:TRUE的值为1,而FALSE的值为0。项目2 嵌入式系统C语言知识要点2)枚举类型变量的引用 对枚举类型变量只能使用两类运算:赋值运算与关系运算。(1)赋值运算。枚举类型的元素可直接赋给枚举变量,且同类型枚举变量之间可以相互赋值。【例】enum weekdays Sun,Mon,Tue,Wed,Thu,Fri,Sat;/定义星期日到星期六为枚举类型weekdays void main(void)weekdays day1
19、,day2;/定义两个枚举型变量day1、day2 day1=Sun;/将元素Sun赋给枚举变量day1 day2=day1;/枚举变量day1赋给day2 该例定义了两个类型为weekdays的枚举类型变量day1与day2,这两个枚举型变量只能取集合 Sun,Mon,Tue,Wed,Thu,Fri,Sat 中的一个元素,可用赋值运算符将元素Sun赋给day1。枚举变量day1的值可赋给同类枚举变量day2。项目2 嵌入式系统C语言知识要点(2)关系运算。枚举变量可与元素常量进行关系比较运算,同类枚举变量之间也可以进行关系比较运算,但枚举变量之间的关系运算比较是对其序号值进行的。【例】day
20、1=Sun;/day1中元素Sun的序号值为0day2=Mon;/day2中元素Mon的序号值为1if(day2day1)day2=day1;/day2day1的比较就是序号值关系式:10的比较if(day1Sat)da1=Sat;/day1Sat的比较就是序号值关系式:06的比较 day2与day1的比较,实际上是其元素Mon与Sun序号值1与0的比较,由于10成立,所以day2day1条件为真,day2=day1=Sun。同样由于day1中元素Sun的序号值0小于Sat的序号值6,所以day1Sat条件为假,day1的值不变。项目2 嵌入式系统C语言知识要点5.5.指针指针 指针是一个特殊
21、的变量,它存储的是内存里的一个地址。指针的要素包括:指针的类型,即指针所指向的数据类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。指针根据所指的变量类型不同,可以是整型指针(int*)、浮点型指针(float*)、字符型指针(char*)、结构指针(struct*)和联合指针(union*)。1)指针变量的定义 指针变量定义的一般形式为:类型说明符*变量名;其中,*表示这是一个指针变量,变量名即为定义的指针变量名,类型说明符表示本指针变量所指向的变量的数据类型。【例】int*p1;/表示p1是指向整型数的指针变量,p1的值是整型变量的地址项目2 嵌入式系统C语言知识要点2)
22、指针变量的赋值 指针变量使用之前不仅要进行声明,而且必须赋予具体的值。未经赋值的指针变量不能使用,否则将造成系统混乱,甚至死机。指针变量赋值时只能赋予地址。【例】int a;/a为整型数据变量 int*p1;/声明p1是整型指针变量 p1=&a;/将a的地址作为p1初值项目2 嵌入式系统C语言知识要点3)指针的运算(1)取地址运算符&。取地址运算符&是单目运算符,其结合性为自右至左,其功能是取变量的地址。(2)取内容运算符*。取内容运算符*是单目运算符,其结合性为自右至左,用来表示指针变量所指的变量。在*运算符之后跟的变量必须是指针变量。【例】int a,b;/a,b为整型数据变量 int*p
23、1;/声明p1是整型指针变量 p1=&a;/将a的地址作为p1初值 a=80;b=*p1;/运行结果:b=80,即为a的值项目2 嵌入式系统C语言知识要点(3)指针的加减算术运算。对于指向数组的指针变量,可以加或减一个整数n。设pa是指向数组a的指针变量,则pa+n,pa-n,pa+,+pa,pa-,-pa运算都是合法的。指针变量加或减一个整数n的意义是把指针指向的当前位置(指向某数组元素)向前或向后移动n个位置。【例】int a5,*pa;/声明a为整型数组(下标为05),pa为整型指针 pa=a;/pa指向数组a,也是指向a0 pa=pa+2;/pa指向a2,即pa的值为&pa2 指针变量
24、的加或减运算只能对数组指针变量进行,对指向其他类型变量的指针变量做加或减运算是毫无意义的。项目2 嵌入式系统C语言知识要点4)void指针类型 void*为“无类型指针”,即定义了指针变量,但没有指定它是指向哪种类型数据,编程中可以把无类型指针强制转化成任何类型的指针。【例】void*p1;/声明p1无类型指针 int*p2;/声明p2为整型指针 p1=p2;/用整型指针p2的值给p1直接赋值 但这并不意味着,void*也可以无需强制类型转换地赋给其他类型的指针,也就是说p2=p1这条语句编译会出错,而必须将p1强制类型转换成“void*”类型。因为“无类型”可以包容“有类型”,而“有类型”则
25、不能包容“无类型”。5)字符串指针除了用字符数组来存储字符串外,应用较多的方法是用字符串指针指向一个字符串。【例】char*string=I love China!;项目2 嵌入式系统C语言知识要点6.6.空类型空类型 空类型即void类型,该类型字节长度为0。void类型主要有两个用途:一是明确地表示一个函数不返回任何值或者无参数;二是产生一个该类型指针(可根据需要动态地分配给其内存),以便于赋给其他类型的指针。7.7.位域位域 有些信息在存储时,并不需要占用一个完整的字节,而只需占几个或一个二进制位。为了节省存储空间,并使处理简便,引入一种称为“位域”,也称“位段”的数据结构。所谓“位域”
展开阅读全文