第3章:嵌入式系统软件基础ppt课件_第1页
第3章:嵌入式系统软件基础ppt课件_第2页
第3章:嵌入式系统软件基础ppt课件_第3页
第3章:嵌入式系统软件基础ppt课件_第4页
第3章:嵌入式系统软件基础ppt课件_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

嵌入式系统软件基础,第三章,第一章:绪论回顾,1、嵌入式系统的特点,2、嵌入式系统的分类,3、嵌入式系统的组成,4、嵌入式系统开发流程,问,第三章:嵌入式软件系统基础,本章学习目标:1、熟悉嵌入式程序中的C语言现象;2、掌握链表的使用;3、了解常见的嵌入式操作系统;4、了解操作系统的主要功能;,第三章:嵌入式软件系统基础C语言现象,-includedefinestaticvolatileinline,一切都是因为预编译和编译优化!,第三章:嵌入式软件系统基础C语言现象,宏定义:#define宏名(变量1,变量2,)宏体说明:1、编译器会把源代码中出现的全部宏名替换为对应的宏体2、变量没有类型区分,只是一个占位标识符3、宏名和宏体采用空格分开,宏体中允许出现更多的空格4、作用:定义宏常量、防重复包含、定义语句块助记符5、如果宏体包含多条语句,必须包含在dowhile(0)中,宏体中的占位标识符(数字常量)必须在宏体中用小括号括起6、宏名中的字母一般采用大写7、宏常量的值在程序运行期间不能改变,-defineincludestaticvolatileinline,第三章:嵌入式软件系统基础C语言现象,定义宏常量:#define宏常量名宏体#defineMAX_LINE127#defineMATRIX(128*128),x=MAX_LINE+MATRIX2;,-defineincludestaticvolatileinline,第三章:嵌入式软件系统基础C语言现象,防止头文件重复包含:#ifndef宏名#define宏名#endif注意:1、宏名要取复杂一些,且最好与头文件名相关;2、一般只在头文件中出现。,-defineincludestaticvolatileinline,p34,第三章:嵌入式软件系统基础C语言现象,定义语句块助记符:#define宏名(变量1,变量2,)语句#define宏名(变量1,变量2,)do语句1;语句2;while(0),#defineMUL(a,b)(a*b),#defineMAX(a,b)(a)(b)?(a):(b),#defineDEBUGERR(a,err)doif(a)x=20;tail-next=NULL;head-next=tail;printf(“%d”,head-next-x),第三章:嵌入式软件系统基础Linux中的链表,structlist_headstructlist_head*next,*prev;,奇妙的list_head链表节点:,第三章:嵌入式软件系统基础Linux中的链表,#definecontainer_of(ptr,type,member)(type*)(char*)ptr-(char*)shortb;intx;unsignedlongy;,structabcxyz=abc(m,1,2,3);structabc*cba=list_entry(,第三章:嵌入式软件系统基础Linux中的链表,typedefstructserver_detect_ftpstructlist_headlist;charserver20;intport;charusername10;charpassword10;server_detect_ftp_t;intmain(void)structlist_headhead,*p;server_detect_ftp_tft1,ft2,*entry;strcpy(ft1.server,);ft1.port=34;strcpy(ft1.username,good);strcpy(ft1.password,good);,strcpy(ft2.server,);ft2.port=80;strcpy(ft2.username,“bad);strcpy(ft2.password,“bad);INIT_LIST_HEAD(,利用list_head的例子:,第三章:嵌入式软件系统基础Linux中的链表,typedefstructserver_detect_ftpstructlist_headlist;charserver20;intport;charusername10;charpassword10;server_detect_ftp_t;intmain(void)structlist_headhead,*p;server_detect_ftp_tft1,ft2,*entry;strcpy(ft1.server,);ft1.port=34;strcpy(ft1.username,good);strcpy(ft1.password,good);,strcpy(ft2.server,);ft2.port=34;strcpy(ft2.username,good);strcpy(ft2.password,good);INIT_LIST_HEAD(,利用list_head的例子:,第三章:通用操作系统的特点、发展及其功能,1、计算机的灵魂2、介于硬件层和应用软件层之间3、高度抽象的虚拟机器4、计算机资源的管理者,三、通用操作系统的发展:UNIXDOSWINDOWS|OS2LINUX,四、功能:资源管理管理CPU(进程)、存储、设备和文件,一、特点,第三章:嵌入式操作系统的特点、发展,一、裁剪和定制通用OS嵌入式操作因为专业,所以高效,二、发展:1、上世纪80年代:实时多任务VRTX32、MTOS、PSOS等2、上世纪90年代:网络化、多任务、图形界面、文件系统VxWorks,Psos+,C/OS-II等3、本世纪:支持internet、多媒体和无线网络、可定制Linux,WindowsCE,PalmOS,JAVAOS等,第三章:常见的嵌入式操作系统和选型,1、VxWorks实时、商业版、市场占有率目前最高军工、航天、通信。2、Linux开放源码、便于裁剪、便于移植、支持的应用软件多、多线程多任务网络产品、消费类电子产品发展迅猛3、Symbian众多移动通讯设备厂家支持、兼容性差、应用开发困难、多媒体支持差移动设备如手机夕阳西下。4、WindowsCE多线程多任务、模块化、应用开发容易、功耗大、价格昂贵PDA、手机等走下坡路。5、Android开源、linux内核、完美多媒体和网络支持、深度编程手机等移动设备。6、PalmOS易用、高效、商业版本掌上电脑、PDA等7、uC/OS-II多任务(64个)、实时、开源但不免费数码相机、医疗设备和高端音响设备等,第.节:嵌入式Linux简介,1、自制嵌入式linux:裁剪定制标准Linux内核形成自己的EOS,2、专业LinuxEOS,服务收费的LinuxEOS,完全免费的LinuxEOS,Mvista,TimeSys红旗EOS,RT-Linux,uCLinux,uC/OS,RTAI,第三章:常见的嵌入式操作系统和选型,1应用需求,实时性,CPU类型,4开发工具,5价格和服务,第三章:嵌入式系统软件基础总结,1、嵌入式程序中的C语言现象,2、链表,3、常见的嵌入式操作系统,4、OS的作用,问,5、常见嵌入式Linux,第三章结束,编写一个c语言随机选号程序(在屏幕上快速随机显示199之间的数字,按回车键停止跳动并退出),工程包含三个文件:包含main函数的rand_main.c,定义宏和函数声明的头文件rand_head.h,定义函数rand(x,y)的文件rand_fun.c用到的技术:fork,光标定位,杀进程,第三章:嵌入式软件系统基础实训,rand_main.c#include#include#include#include#include#includerand_head.hmain()intpid;if(pid=fork()=0)while(1)printf(“2J”);/清屏printf(10;50H%d,rand_mon(MIN,MAX);fflush(stdout);usleep(50);exit(0);getchar();kill(pid,9);,第三章:嵌入式软件系统基础实训,包含头文件,告诉编译器在预编译阶段把相应的头文件包含进来。,相当于:pid=fork();if(pid=0),产生一个子进程,判断进程号:在子进程中为0,在父进程中大于0,在屏幕第10行第50列显示一个数,立即显示,延时50毫秒(程序暂停50毫秒),强行杀死子进程,rand_fun.c#includeintrand_mon(intx,inty)return(random()%(y-x)+x);,第三章:嵌入式软件系统基础实训,包含头文件stdlib.h,定义函数:返回介于x和y之间的一个随机整数,相当于语句:intret;ret=random()%(y-x)+x;return(ret);,?,rand_head.h#ifndefRAND_MON_H#defineRAND_MON_H#de

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论