嵌入式Linux_开发.doc_第1页
嵌入式Linux_开发.doc_第2页
嵌入式Linux_开发.doc_第3页
嵌入式Linux_开发.doc_第4页
嵌入式Linux_开发.doc_第5页
已阅读5页,还剩210页未读 继续免费阅读

下载本文档

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

文档简介

内容目录课程主要内容9概念和基本工具:9硬件结构及原理讲解9linux部分9综合试验10使用教材10硬件环境10第 1章 嵌入式系统概论111. 嵌入式系统概述111.1什么是嵌入式系统111.2嵌入式系统的特点111.3嵌入式系统与pc的不同111.4嵌入式系统的应用领域121.5嵌入式系统的产品121.6嵌入式系统的历史121.7巨大的市场131.8创新的机遇132. 嵌入式系统的基本知识132.1嵌入式系统的基本结构132.2嵌入式系统的硬件基本结构142.3嵌入式处理器142.4嵌入式操作系统173. 嵌入式系统的设计原则及方法181. 嵌入式系统的设计准则182. 嵌入式系统的设计流程193. 嵌入式系统的开发方法214. 嵌入式系统的开发模式225. 嵌入式系统的测试23第 2 章 linux操作系统简介232.1 linux的发展232.1.1 什么是linux232.1.2 linux的历史232.2 linux的版本232.2.1 国外主要发行版本242.2.2 国内主要发行版本242.3 linux的特性和功能242.3.1 linux的特性242.3.2 linux的功能242.4 linux的常用软件242.4.1 基本命令和工具242.4.2 办公软件252.4.3 程序设计252.4.4 网络软件252.4.5 x window252.4.6 多媒体软件252.4.7 其他软件252.5 linux的内核体系结构252.6 linux的现状及前景27第 3 章 linux的安装与配置273.1 安装前的准备工作273.1.1 确定系统环境283.1.2 选择安装方法283.1.3 准备工作的步骤283.2 安 装 linux283.3 安装后的系统配置303.3.1 设置代理303.3.2 配置工具30rpm 有基本操作模式31第 4 章 linux使用基础314.1 linux常用命令314.1.1 进入与退出命令314.1.2 系统询问命令324.1.3 文件操作命令324.1.4 目录操作命令334.1.5 口令、权限命令344.1.6 文件压缩与联机帮助命令354.2 shell程序设计364.2.1 shell概述36第 5章 设备管理381 设备管理概述381.1 i/o设备的类型381.2 设备管理的任务和功能381.3 设备控制器391.4 i/o通道391.6 设备驱动402 i/o控制方式412.1 程序i/o方式412.2 中断驱动i/o控制方式452.3 dma控制方式463 设 备 分 配474 linux中的设备管理47第 6 章 linux 网络应用486.1 linux的网络功能486.2 基本网络操作命令496.2.1 ping命令496.2.2 telnet命令496.2.3 ftp命令496.2.4 netstat命令496.3 网络资源共享506.3.1 linux/unix系统之间文件共享nfs506.3.2 linux/windows系统之间文件共享samba506.4.3 ftp服务器51第 8 章linux编程基础511.概述511.1 linux 编程512. vi 的使用523. 使用gnu cc 开发应用程序543.1 使用gnu cc543.2 gcc的版本信息553.3 gcc 的使用553.4 使用优化选项56 3.5 使用调试和剖析选项564. 使用gnu make编辑makefile564.1 准备工作564.2 makefile 文件的基本结构574.3 makefile中的变量584.4 makefile 的隐含规则605 调试工具gdb615.1 gdb调试器简介615.2 gdb 命令的基本使用和应用62v 1gdb基本命令62linux系统调用与文件i/o631、linux系统调用与文件i/o631.1、linux系统调用632.1、用户程序接口(api)632.2 文件描述符642.3 open函数642.4 creat函数652.5 close函数652.6 lseek函数652.7 read函数662.8 write函数662.9 fcntl函数682.91 fcntl函数682.9.2 用fcntl给文件加锁692.9.3 fcntl函数格式692.9.4 f l o c k结构说明:692.10 ioctl函数693、select 实现i/o复用703.1 i/o处理的五种模型703.2 select函数70第 7 章 进程管理727.1 进程的基本概念727.1.1 程序的顺序执行和并发执行727.1.2 进程的定义和特征727.1.3 进程的状态及其转换737.1.4 进程的结构732 进程控制773 进程互斥和同步784 进程通信815 进程调度826 死锁847 线程858 linux中的进程管理86第 9 章 linux进程控制881、程序和进程881.1 程序881.2 进程和进程id881.3 linux下的进程结构891.3 init进程891.4 获取进程标识891.5 fork函数891.6 进程创建891.7 vfork函数911.8 exec函数911.9 exit和_exit931.10 wait和waitpid函数962. 守护进程982.1 概述982.2 守护进程特征982.3 守护进程编程规则(5步)983. 守护进程的出错处理1003.1 syslog函数说明100第 10 章linux进程间通信1031. 进程间通信概述1032. 管道通信1042.1 管道创建与关闭1042.2 管道读写1052.3 管道读写注意事项1072.4 标准流管道1072.5 命名管道(fifo)1082.5.1 基本概念1082.5.2 命名管道创建与操作1093. 信号1113.1 信号概述1113.2 信号发送与捕捉1133.3 信号的处理1153.3.1 signal()1163.3.2 信号集函数组1 创建函数集1 登记信号集1 检测信号集1204. 共享内存1215. 消息队列124linux多线程编程126linux下线程概述126linux线程实现1272.1 线程创建与退出1272.2 修改线程属性1292.3 mutex互斥锁线程控制1322.4 信号量线程控制135linux网络编程140tcp/ip协议概述1401.1 osi参考模型与tcp/ip参考模型1401.2 tcp/ip协议族1411.2.1 网络层1411.2.2 传输层协议1411.2.3 应用程序部分1421.3 internet 协议(ip)1501.3.1 ip功能1501.3.2 ip 地址1501.4 传输控制协议(tcp)1521.5 用户数据报文协议1531.6 tcp/ip 协议分组服务153网络编程基础1542.1 socket概述1542.2 套接字地址结构1552.3 字节序列转换1552.4 地址格式转换1552.5基本套接字调用155网络高级编程158linux串口应用开发1631. 串口概述1632. 串口设置1632.1串口配置流程1753. 串口使用详解1763.1 打开串口1763.2 读写串口176三星44b0开发板的启动与arm集成开发环境ads的配置使用以及生成bootloader镜像文件179配置ads180axd debugger配置 180configure target180配置回环地址183configure interface184codewarrior for arm developer suite配置184target settings184arm linker185output185options186arm fromelf187删除目标文件187运行debug187tftp程序传递linux上位机文件到三星44b0开发板189第二章 arm技术概述1892.1 arm体系结构的发展历史和技术特征1902.1.1 arm发展的历程1902.1.2 arm体系结构的技术特征1902.2 arm体系结构不同版本的发展概述1912.2.1 arm体系结构的基本版本 1912.2.2 arm体系结构的演变 1922.2.3 arm体系结构的命名规则1932.3 thumb技术介绍1932.3.1thumb的技术概述 1932.3.2thumb的技术实现 1932.3.3thumb技术的特点 1932.4 arm处理器工作状态1932.5 arm处理器工作模式1942.6 arm寄存器组成1962.6.1arm寄存器组成概述 1962.6.3thumb状态下的寄存器组织1972.7 arm异常中断1982.8 arm组织结构简介2002.8.1三级流水线arm的组织 2002.8.2五级流水线arm的组织2012)arm 3级流水线下pc的行为 2012.9 arm存储器接口及存储器层次2012.9.1 arm存储数据类型和存储格式 2012.9.2 arm的存储器层次简介 2022.9.3 arm存储系统简介 2022.10 arm协处理器2022.11 arm片上总线amba2032.12 arm的调试结构2032.13 arm核综述2032.14 基于arm 核的芯片选择2032.13.1 arm7系列核介绍2032.13.2 arm9系列核介绍 2062.13.3 arm10系列核 2072.13.4 strongarm和xscale系列核 2072.13.5 securcore系列核 208第三章 arm指令集2093.1 arm指令集概述2093.1.1 指令集编码2093.1.2 条件执行 2093.1.3 指令分类及指令格式 2093.2 arm寻址方式2103.2.1 立即寻址2103.2.2 寄存器寻址2103.2.3 寄存器间接寻址2113.2.4 基址加偏址寻址 2113.2.5 堆栈寻址 2123.2.6 块拷贝寻址 2123.2.7 相对寻址 2123.3 arm指令详细介绍2133.3.1 数据处理指令2133.3.2 load/store指令2143.3.3 程序状态寄存器与通用寄存器之间的传送指令2153.3.4 转移指令2153.3.5 异常中断指令2163.3.6 协处理器指令216第四章 thumb 指令集2174.1 thumb 指令集概述2174.1.1 thumb指令集编码2174.1.2 thumb状态切换 2174.1.3 编程模型2174.1.4 thumb指令集特性2184.2.1 数据处理指令;2194.2.2 转移指令; 2194.2.3 load/store指令; 2204.2.4异常中断指令。 220第五章基于arm的嵌入式程序设计2215.1 arm汇编语言的伪操作、宏指令与伪指令2215.1.1 两种常见的arm编译开发环境2215.1.2 ads编译环境下的伪操作和宏指令2215.1.3 gnu编译环境下的伪操作和宏指令2215.1.3 gnu编译环境下的伪操作和宏指令2215.1.4 arm汇编语言的伪指令2215.2 arm汇编语言程序设计2215.2.1 arm汇编中的文件格式2215.2.2 arm汇编语言语句格式2225.2.3 arm汇编语言编程的重点2225.2.4 arm汇编程序实例2245.3 嵌入式c语言程序设计基础2245.3.1 c语言预处理伪指令在嵌入式程序设计中的应用2245.3.2 嵌入式程序设计中的函数及函数库2255.3.3 嵌入式程序设计中常用的c语言语句2255.3.4 嵌入式程序设计中c语言的变量、数 组、结构、联合2265.4 嵌入式c语言程序设计实例2275.4.1 嵌入式c语言程序编写的简单构架2275.4.2 flash测试代码介绍2285.5 嵌入式c语言程序设计技巧2285.5.1 变量定义2285.5.2 参数传递 2285.5.3 循环条件 2285.6 c与汇编语言混合编程2285.6.1 atpcs介绍2285.6.2 内嵌汇编2295.6.3 c和arm汇编程序间相互调用230第六章 ads集成开发环境的使用2316.1 裸机开发环境2316.2 ads1.2开发环境介绍2326.2.1 命令行开发工具2326.2.2 arm运行时库2336.3.2 操作过程及实例2356.4 axd调试工具236嵌入式linux系统中常用的文件系统236boa移植实验239madplay移植实验241嵌入式用户图形界面编程242嵌入式图形系统简介2421.1 qt/embedded2421.2 microwindows2431.3 minigui 2441.2 qte和qtopia开发模型2441.2.1 qte与qt/x11比较2441.2.2 qtopia介绍2451.2.3 qt/embedded开发模型2451.2.4 qt/embedded信号与插槽245基于qt/embedded的嵌入式gui设计2463.1 建立qt/embedded开发环境2463.2 设置链接库2463.3 运行qtopia246虚拟机安装redhat9.0248samba配置248secure shell client(ssh)工具使用248source insight阅读代码249交叉工具链的配置249一、gnu交叉工具链下载地址249二、常用工具介绍249make file2521、makefile文件的规则252 2、make的工作流程简述2523、makefile中使用变量2524、make的自动推导252配置系统的基本结构2531 配置系统的基本结构2532 makefile2532.1 makefile 概述2542.2 makefile 中的变量2552.3 rules.make 变量2572.4 子目录 makefile2583 配置文件2593.1 配置功能概述2603.2 配置语言260bootloader267第一部分:bootloader的通用性267一、bootloader与嵌入式linux的关系267二、boot loader的概念267三、boot loader的安装媒介268四、boot loader的主要任务与典型结构框架268第二部分:uboot介绍268一、uboot渊源268二、uboot代码目录构架268第三部分:uboot的编译及配置269一、uboot.bin的生成269第四部分:启动过程及工作原理270一、启动模式介绍270第五部分:uoot的移植270linux 2.4.18移植271一、内核代码架构271二、主要配置选项分析271课程主要内容概念和基本工具:n 嵌入式系统基本概念、嵌入式操作系统介绍n 嵌入式系统开发的过程和基本结构n linux基本操作命令的使用n 常用工具使用:vi /gcc/gdb 等n 编写shell程序 和makefile文件结构硬件结构及原理讲解n arm7arm9体系结构体系结构介绍n arm7(9)tdmi处理器内核及指令集介绍n 讲解sumsung 44b0x 开发板原理图n 讲解sumsung 2410 开发板原理图n arm开发工具ads的使用linux部分n uclinux,mizilinux系统引导程序bootloader原理和实现过程:uboot、vivi等n arm系统空间划分及系统映射方法n bootloader内核下载模式实现 :tftp、xmodenn linux操作系统原理及组成n 介绍linux系统目录组织结构n linux 运行基理,系统运行过程n 配置裁减编译linux内核讲解linux进程特性:n 进程属性和状态转换;进程控制与调度;进程相关系统调用,构建守护进程n 进程间通信: 进程通信的基本概念,管道、信号、消息队列、信号量、共享内存。n 网络通讯接口,socket通信编程。n 串口通讯程序和编程实践n 多线程程序设计linux设备驱动n uclinux内核模块及设备驱动程序开发n 介绍linux驱动程序分类和各自操作系统上下层接口n 驱动开发实例:蜂鸣器驱动、按键驱动开发、串口驱动、触摸屏驱动、网络驱动开发、usb驱动、液晶屏驱动等。n armlinux移植过程。n 引导程序uboot移植。n 最小系统启动开发过程。n 嵌入式文件系统移植:ramdisk、jffs2、yaff综合试验n 实现网络文件传输服务程序;n 构建嵌入式web服务器;n 移植mediaplay播放器n 开发嵌入式视频服务器,基于h.264协议使用教材1. 廖日坤 编著,arm嵌入式应用开发技术白金手册, 中国电力出版社;2. 孙琼等,嵌入式linux应用开发详解,人民邮电出版社;3. 刘淼 编著,嵌入式系统接口设计于linux驱动程序开发,北京航空航天大学出版社硬件环境n 万龙44b0开发板n 提供丰富接口:串口、网口、usb、jtag、液晶屏接口、ide接口、音频输出、41键盘接口 ;n 基本资料:芯片手册和资料,相关电子书籍;n 软件和试验代码:中断、i2c、gpio等 ;n 操作系统及引导程序:44b0bios、uclinux。n 友善之臂2410开发板n 提供丰富接口:串口、网口、usb、jtag、3.5寸液晶屏接口、ide接口、音频输入输出、41键盘接口 ;n 基本资料:芯片手册和资料,相关电子书籍;n 软件和试验代码:中断、i2c、mediaplay移植等 ;n 操作系统及引导程序:vivi、uboot、mizilinux 。参考资料n 雅默,构建嵌入式linux系统,中国电力出版社;n 杜春雷 编著,arm体系结构与编程,清华大学出版社;n 赵克佳,沈志宇,赵慧,unix程序设计教程,清华大学出版社 ;n 于明 等编著,arm9嵌入式系统设计与开发教程,电子工业出版社alessandro rubini,jonathan corbet ,linux设备驱动程序 (第二版,或第三版),中国电力出版社 ;上课时间安排n 总学时180学时;n 为保证授课质量,每次周末授课,每周星期六日上课,每天授课八小时,上午中间休息两次,下午中间休两到三次,每次15分钟;n 上课具体时间:8:30 12:00 am下午:13:30 18:00n 行课时间:看课表安排第 1章 嵌入式系统概论1. 嵌入式系统概述1.1什么是嵌入式系统嵌入式系统是以应用为中心,以计算机技术为基础,且软硬件可裁减,适应应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它一般由以下几部分组成:n嵌入式微处理器n外围硬件设备n嵌入式操作系统n特定的应用程序1.2嵌入式系统的特点特点:n 应用的特定性和广泛性n 技术、知识、资金的密集性n 高效性n 较长的生命周期n 高可靠性n 软硬一体,软件为主n 无自举开发能力1.3嵌入式系统与pc的不同1. 一般专用于特定的任务,而pc是一个通用计算机。2. 使用多种类型的处理器和处理器体系结构。3. 及其关注成本4. 有实时约束5. 使用实时多任务操作系统6. 软件故障造成的后果比pc系统更严重7. 大多有功耗约束8. 经常在极端的环境下运行9. 系统资源比pc少的多10. 通常所有的目标代码存放在rom中11. 需要专用工具和方法进行开发设计12. 嵌入式系统的数量远远超过pc1.4嵌入式系统的应用领域交通管理 工控设备智能仪器汽车电子环境监测信息家电 智能玩具机器人军事电子通信设备网络设备移动计算电子商务医疗仪器1.5嵌入式系统的产品n 网络设备:交换机、路由器,modemn 消费电子:手机、mp3、pda 、可视电话、电视机顶盒、数字电视、数码照相机、数码摄像机、信息家电n 办公设备:打印机、传真机、扫描仪n 汽车电子:abs(防死锁刹车系统)、供油喷射控制系统、车载gps。n 工业控制:各种自动控制设备1.6嵌入式系统的历史n 20 世纪70 年代:单片机出现嵌入式系统最初的应用是基于单片机。汽车,工业机器,通信装置等成千上万种产品通过内嵌电子装置获得更佳的使用性能。n 20 世纪80 年代:嵌入式操作系统出现商业嵌入式实时内核包含传统操作系统的特征,使得开发周期缩短,成本降低,效率提高促使嵌入式系统有了更为广阔的应用空间。n 20 世纪90 年代:实时多任务操作系统软件规模的不断上升,对实时性要求的提高,使得实时内核逐步发展为实时多任务操作系统,并作为一种软件平台逐步成为目前国际嵌入式系统的主流。1.7巨大的市场n 计算机应用的普及、互联网技术的实用以及纳米微电子技术的突破,正有力推动着21 世纪工业生产,商业活动科学试验和家庭生活等领域自动化和信息化进程。n 嵌入式产品的巨大商机全过程自动化产品制造、大范围电子商务活动、高度协同科学实验以及现代化家庭起居。n 你接触的每一样东西将装有芯片和嵌入式软件1.8创新的机遇n 通用计算机产业是垄断的。n 嵌入式系统与技术是一个分散的工业,充满竞争、机遇与创新。n 没有哪一个系列的处理器和操作系统能够垄断全部市场即便在体系结构上存在着主流,但各不相同的应用领域决定了不可能有少数公司,少数产品垄断全部市场。因此嵌入式系统领域的产品和技术,必然是高度分散的,留给各个行业的中小规模高技术公司的创新余地很大。2. 嵌入式系统的基本知识2.1嵌入式系统的基本结构n 嵌入式系统的构架n 嵌入式微处理器n 嵌入式操作系统n 启动程序bootloader介绍2.2嵌入式系统的硬件基本结构2.3嵌入式处理器1. 支持实时多任务.2. 较短的中断响应时间3. 存储区保护功能4. 可扩展的处理器结构5. 较低的功耗分类:嵌入式微控制器(microcontrollerunit)嵌入式dsp处理器edsp(embedded digital signal processor)嵌入式微处理器(embedded microprocessor unit)嵌入式片上系统soc(system on chip)2.3.1嵌入式微处理器特点:n 功能和微处理器基本一样,是具有32位以上的处理器,具有较高的性能.n 具有体积小,功耗少,成本低,可靠性高的特点.n 有的可提供工业级应用.流行的嵌入式微处理器:n arm/strong (arm公司)n powerpc (motorol公司)n 68000 (motorol公司)n mips(mips公司)mips处理器 mips技术公司是一家设计制造高性能、高档次及嵌入式32位和64位处理器的厂商。在risc处理器方面占有重要地位。 mips的意思是无内锁流水段微处理器(microprocessor without interlocked pipedstages),最早是在80年代初期由美国斯坦福大学hennessy教授领导的研究小组研制出来的。 1986年推出r2000处理器,1988年推出r3000处理器,1991年推出第一款64位商用微处理器r4000。之后,又陆续推出r8000(于1994年)、r10000(于1996年)和r12000(于1997年)等型号。之后,mips公司的战略发生变化 此外,24k微架构能符合各种新兴的服务趋势,为宽频存取以及还在不断发展的网络基础设施、通讯协议提供软件可编程的弹性。 在嵌入式方面,mips 系列微处理器是目前仅次于arm的用得最多的处理器之一(1999年以前mips是世界上用得最多的处理器),其应用领域覆盖游戏机、路由器、激光打印机、掌上电脑等各个方面。mips的系统结构及设计理念比较先进,在设计理念上mips强调软硬件协同提高性能,同时简化硬件设计。powerpc处理器 powerpc架构的特点是可伸缩性好,方便灵活。powerpc处理器品种很多,既有通用的处理器,又有嵌入式控制器和内核,应用范围非常广泛,从高端的工作站、服务器到桌面计算机系统,从消费类电子产品到大型通信设备,无所不包。 处理器芯片主要型号是powerpc 750,它于1997年研制成功,最高的工作频率可以达到500mhz,采用先进的铜线技术。该处理器有许多品种,以便适合各种不同的系统。包括ibm小型机、苹果电脑和其他系统。 嵌入式的powerpc 405(主频最高为266mhz)和powerpc 440(主频最高为550mhz)处理器内核可以用于各种soc设计上,在电信、金融和其他许多行业具有广泛的应用。2.3.2嵌入式微控制器嵌入式微控制器就是将整个计算机系统的主要硬件集成到一块芯片中,芯片内部集成rom/eprom,ram,总线,总线逻辑,定时/计数器,watchdog,i/o,串行口等各种必要功能和外设.其特点为:n 一个系列的微控制器具有多种衍生产品;n 单片化,体积大大减小,功耗和成本降低,可靠性提高;n 是目前嵌入式工业的主流,约占嵌入式系统70%的份额;n 多是8位和16位处理器n 流行的嵌入式微控制器n 通用系列:8051,mcs251,mcs-96/196/296n 半通用系列:支持i2c,can bus,lcd及众多专用mcu和兼容系列2.3.3嵌入式dsp嵌入式dsp处理器有两个发展方向: 是嵌入式dsp处理器和嵌入式处理器经过单片化设计,片上增加丰富的外设成为具有高性能dsp功能的soc; 是在通用微处理器、微控制器或soc中增加dsp协处理器,例如intel的mcs-296和siemens的tricore。2.3.4 嵌入式外围接口电路和设备接口根据外围设备的功能可分为以下5类存储器类型通信接口输入输出设备设备扩展接口电源及辅助设备存储器类型:n 存储器是嵌入式系统中存储数据和程序的功能部件,目前常见的存储设备按使用的存储器类型分为:n 静态易失型存储器(ram,sram);n 动态存储器(dram);n 非易失性存储器rom(romeprom,eeprom,flash);n 硬盘、软盘、cdrom等。通信接口目前存在的所有计算机通信接口在嵌入式领域中都有其广泛的应用,应用最为广泛的接口设备包括 rs-232接口(串口uart) usb接口(通用串行总线接口) irda(infra red data association红外线接口)、 spi(串行外围设备接口)、 i2c、can总线接口、 蓝牙接口(bluetooth) ethernet(以太网接口)、 ieee1394接口和通用可编程接口gpio 。输入输出设备 crt、lcd和触摸屏等,构成了嵌入式系统中重要的信息输入输出设备,应用广泛。 触摸屏可以方便的实现鼠标和键盘功能。设备扩展接口 简单的嵌入式系统如具有简单的记事本、备忘录以及日程计划等功能的pda,它所需要存储的数据量并不需要很大的内存。 由于目前的嵌入式系统功能越来越复杂,需要大容量内存,大的内存使得系统成本和体积加大。 目前一些高端的嵌入式系统都会预留可扩展存储设备接口,为日后用户有特别需求时,可购买符合扩展接口规格的装置直接接入系统使用。 常用的扩展卡还有各种cf卡、sd卡、memory stick等。目前高端的嵌入式系统都留有一定的扩展卡接口。电源及辅助设备 嵌人式系统力求外观小型化、重量轻以及电源使用寿命长,例如移动电话或pda,体积较大或者过重的机型已经被淘汰。 目前发展的目标是体积小、易携带和外观设计新颖等。在便携式嵌入式系统的应用中,必须特别关注电源装置等辅助设备。2.4嵌入式操作系统嵌入式操作系统是嵌入式应用软件的基础和开发平台.嵌入式系统的出现,解决了嵌入式软件开发标准化的难题.嵌入式系统具有操作系统的最基本的功能:n 进程调度n 内存管理n 设备管理n 文件管理n 操作系统接口(api调用)嵌入式操作系统具有的特点:n 系统可裁减,可配置.n 系统具备网络支持功能n 系统具有一定的实时性2.4.1嵌入式操作系统的分类n 按照对实时系统的定义,嵌入式系统可分为实时嵌入式系统与非实时嵌入式系统:n 实时系统的定义:能够对外部事件做出及时响应的系统。响应时间要有保证。n 对外部事件的响应包括n 事件发生时要识别出来n 在给定时间约束内必须输出结果实时操作系统:vxworks,wince,qnx,nucleus非实时操作系统:嵌入式linux2.4.2嵌入式实时操作系统的特点n 实时系统必须产生正确的结果n 实时系统的响应必须在预定的周期内完成n 这两点同样重要n 实时系统是具有确定性的。在这些实时系统中,响应时间决定事件是有界的。一个确定的实时系统意味着系统的每个部件都必须具有确定的行为,使得整个系统是确定性的。2.5几种主流的嵌入式操作系统n vxworks: 美国windriver公司于1983年开发,具有可靠、实时、可裁减特性。n windows embedded:支持具有丰富应用程序和服务的32位嵌入式系统。主要系列:windows ce3.0,windows nt embedded 4.0和带有server appliance kit的windows 2000n palm os: com公司产品,在pda市场占据很大份额,具有开放的操作系统应用程序接口(api),可让用户灵活方便地定制操作系统。n 嵌入式linux:近两年来,linux在嵌入式领域异军突起,他的独特性,使其作为开发嵌入式产品的操作系统具备巨大的潜力。linux具有一些独特的优势:层次结构及内核完全开放;强大的网络支持功能;具备一整套工具链;广泛的硬件支持特性。2.6嵌入式系统软件的层次结构n 如当设计一个简单的应用程序时,可以不使用操作系统,但是当设计较复杂的程序时,可能就需要一个操作系统(os)来管理、控制内存、多任务、周边资源等等。依据系统所提供的程序界面来编写应用程序,可以大大的减少应用程序员的负担。n 对于使用操作系统的嵌入式系统来说,嵌入式系统软件结构一般包含四个层面:设备驱动层、实时操作系统(rtos)、应用程序接口(api)层、实际应用程序层。有些资料将应用程序接口api归属于os层,如图1-1的上半部分所示的嵌入式系统的软件结构,是按三层划分的。由于硬件电路的可裁减性和嵌入式系统本身的特点,其软件部分也是可裁减的。n 对于功能简单仅包括应用程序的嵌入式系统一般不使用操作系统,仅有应用程序和设备驱动程序。现代高性能嵌入式系统应用越来越广泛,操作系统使用成为必然发展趋势。本节主要讲述的具有操作系统的嵌入式软件层次。嵌入式系统软件的层次结构具有操作系统的嵌入式软件层次 驱动层程序 实时操作系统(rtos) 操作系统的应用程序接口(api) 应用程序2.7启动程序bootloader介绍对于pc机,其开机后的初始化处理器配置、硬件初始化等操作是由bios(basic input/output system)完成的,但对于嵌入式系统来说,出于经济性、价格方面考虑一般不配置bios,因此我们必须自行编写完成这些工作的程序。这就是所需要的开机程序,在嵌入式中称为bootloader程序。系统加电复位后,几乎所有的 cpu都从由复位地址上取指令。因此在系统加电复位后,处理器将首先执行boot loader 程序。bootloader是系统加电后、操作系统内核或用户应用程序运行之前,首先必须运行的一段程序代码。通过这段程序,为最终调用操作系统内核、运行用户应用程序准备好正确的环境。对于嵌入式系统来说,有的使用操作系统,也有的不使用操作系统,但在系统启动时都必须运行bootloader,为系统运行准备好软硬件环境。系统启动代码完成基本软硬件环境初始化后,对于有操作系统的情况下,启动操作系统、启动内存管理、任务调度、加载驱动程序等,最后执行应用程序或等待用户命令;对于没有操作系统的系统直接执行应用程序或等待用户命令系统的启动通常有两种方式,一种是可以直接从flash启动,另一种是可以将压缩的内存映像文件从flash(为节省flash资源、提高速度)中复制、解压到ram,再从ram启动。当电源打开时,一般的系统会去执行rom(应用较多的是flash)里面的启动代码。这些代码是用汇编语言编写的,其主要作用在于初始化cpu和板上的必备硬件如内存、中断控制器等。有时候用户必须根据自己板子的硬件资源情况做适当的调整与修改。主流bootloader介绍n u-bootn ppcbootn armbootn blobn redboot3. 嵌入式系统的设计原则及方法1. 嵌入式系统的设计准则嵌入式系统设计不同于桌面系统,它非常受制于功能和具体的应用环境。所以嵌入式系统的设计具有一些特殊的要求。嵌入式系统的设计要求:n 并发处理,及时响应n 接口方便,操作容易n 稳定可靠,维护简便n 功耗管理,降低成本n 功能实用,便于升级2. 嵌入式系统的设计流程嵌入式系统开发的最大特点就是需要软硬件综合开发。其原因在于:一方面,任何一个嵌入式产品都是软件和硬件的结合体;另一方面,一旦嵌入式产品研发完成,软件就固化在硬件环境中,嵌入式软件是针对相应的嵌入式硬件开发的是专用的。嵌入式系统的这一特点决定了嵌入式应用开发方法不同于传统的软件工程方法。3.2.2从生命周期看嵌入式系统的设计流程3. 嵌入式系统的开发方法n 设计过程的明确目标是建造一个有用的产品- 产品功能- 产品性能- 制造成本- 功耗特性- 上市时间n 嵌入式产品设计需要一个小组的技术人员协作完成n 设计过程会受内外因素的影响而变化3.3.1嵌入式系统分层设计模型3.3.2嵌入式系统的软硬件并行设计4. 嵌入式系统的开发模式n 嵌入式系统的软件使用交叉开发平台进行开发。n 系统软件和应用软件在主机开发平台上开发n 系统软件和应用软件在嵌入式硬件平台上运行。n 宿主机(host)是用来开发嵌入式软件的系统。n 目标机(target)是被开发的目的嵌入式系统。n 交叉编译器(cross-compiler)是进行交叉平台开发的主要软件工具。它是运行在一种处理器体系结构上,但是可以生成在另一种不同的处理器体系结构上运行的目标代码的编译器。5. 嵌入式系统的测试3.5嵌入式系统的测试n 测试目的:n 找到软硬件设计中的错误n 减少风险n 节约成本n 提高性能测试什么:n 功能调试(黑盒测试)n 压力测试,边界测试,异常测试n 错误测试,随机测试,性能测试n 覆盖测试(白盒测试)n 语句测试,判定和分支测试,条件覆盖第 2 章 linux操作系统简介2.1 linux的发展2.1.1 什么是linuxlinux是一个网络操作系统(network operating system,nos)。网络操作系统则在一般操作系统的功能上增加了网络功能,具体包括:(1)实现网络中各计算机之间的通信和资源共享;(2)提供多种网络服务软件;(3)提供网络用户的应用程序接口。linux就是这样一个网络操作系统。与其他商业化的网络操作系统不同,它是由以linus torvalds为首的一批internet上的志愿者开发的,完全免费,并与另一著名的网络操作系统unix完全兼容,是一个具有很高性能价格比的网络操作系统。2.1.2 linux的历史linux最早是linus torvalds于1991年在芬兰赫尔辛基大学原创开发的,并在gnu的gpl(general public license)原则下发行。2.2 linux的版本linux的版本号又分为两部分:内核(kernel)版本和发行(distribution)版本。内核版本的序号由3部分数字构成,其形式如下:major.minor.patchlevel如:2 . 4 . 18 2 . 6 . 142.2.1 国外主要发行版本1red hat linux2suse linux3debian linux4mandrake linux5. turbo linux2.2.2 国内主要发行版本1红旗linux2中标普华linux3共创桌面linux4冲浪linux5. 蓝点linux2.3 linux的特性和功能2.3.1 linux的特性1多任务、多用户2支持多种文件系统3采用虚拟内存管理技术4良好的可移植性5设备独立性6丰富的网络功能7提供全部源代码2.3.2 linux的功能1稳定的核心2丰富的应用软件3x window系统4多重启动5网络功能6软件开发工具2.4 linux的常用软件2.4.1 基本命令和工具总之,linux是对网络支持得最好的操作系统之一。linux常用的网络应用软件有以下几类。(1)www服务器:apache、caudium、cern httpd server、netscape fast track server、zeus server;(2)ftp服务器:wu-ftp、proftpd、vsftpd;(3)ftp客户端:gftp、lftp;(4)mail服务器:qmail、sendmail、xmail;(5)e-mail客户端:pine、kmail;(6)浏览器:netscape、mozilla、phoenix、lynx;(7)虚拟终端:rxvt、xterm、gnome-terminal、mlterm;(8)聊天工具:gaim、licq。(9)网络共享服务:samba。(10)远程登陆:telnet、ssh1、ssh22.4.2 办公软件2.4.3 程序设计2.4.4 网络软件2.4.5 x windowx窗口系统是linux上的标准图形界面,它是一个有效的支持多种应用的环境。在xwindow 基础上实现不同的桌面系统,如:kde, gnome桌面系统。2.4.6 多媒体软件linux在多媒体领域的应用也相当广泛,下面介绍几款linux下的多媒体软件。1gnome cd player gnome cd player是一款基于xwindow的cd播放软件。2realplayerrm格式的影音文件是网上广为流传的电影格式,以其极高的压缩率而闻名,linux下也可以看rm格式的文件,这就是realplayer for linux。3xmmsxmms(x multi media system)是linux下的mp3播放器。4mplayer这是个vcd播放软件。5k

温馨提示

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

评论

0/150

提交评论