文章目录
前情提要
本人是一名大三学生,由于期末复习需要,所以按照老师的ppt总结整理此笔记,希望对你有所帮助
第一章 嵌入式系统概述
1.嵌入式系统概念:定义、特点、应用、典型嵌入式系统结构
从技术的角度定义:以应用为中心、以计算机技术为基础、软件硬件可裁剪、对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
从系统的角度定义:嵌入式系统是设计完成复杂功能的硬件和软件,并使其紧密耦合在一起的计算机系统
特点:
特点一:嵌入式系统中运行的任务是专用而确定的
- 嵌入式系统中运行的任务是专用而确定的
- 桌面通用系统需要支持大量的、需求多样的应用程序
特点二:嵌入式系统往往对实时性提出较高的要求。
-
嵌入式系统往往对实时性提出较高的要求。
-
实时系统:指系统能够在限定的响应时间内提供所需水平的服务。
-
嵌入式实时系统可分为:
强实时型:响应时间μs~ms级;
一般实时:响应时间ms~s级;
弱实时型:响应时间s级以上。
-
-
嵌入式系统中使用的操作系统一般是实时操作系统
特点三:嵌入式系统运行需要高可靠性保障,比桌面系统的故障容忍能力弱很多
-
嵌入式系统运行需要高可靠性保障,比桌面系统的故障容忍能力弱很多
-
嵌入式系统需要忍受长时间、无人值守条件下的运行
-
嵌入式系统运行的环境恶劣
特点四:嵌入式系统大都有功耗约束
- 嵌入式系统大都有功耗约束
特点五:嵌入式系统的开发需要专用工具和特殊方法
- 嵌入式系统比桌面通用系统可用资源少得多
- 嵌入式系统的开发需要专用工具和特殊方法
服务器 | 个人计算机 | 嵌入式系统 | |
---|---|---|---|
CPU计算能力 | 高 | 中等 | 低/多样 |
能耗 | 高 | 中等/低 | 更低 |
应用领域 | 数据中心 | 日常应用 | 多样 |
可靠性 | 高 | 低 | 严格 |
成本 | 高 | 低 | 多样 |
应用:
典型嵌入式系统结构
嵌入式系统一般由
- 嵌入式处理器
- 外围硬件设备
- 嵌入式操作系统(可选)
- 以及用户的应用软件系统
等四个部分组成
2.嵌入式系统开发过程,交叉编译的概念
一般应用程序的开发的过程
在linux下本地软件开发的过程
gcc编译的过程
gcc的是GNU C Compiler 的缩写,gcc的整个编译过程,实质上是分四步进行的,这四步分别是:
- 预处理(也称预编译,Preprocessing),调用cpp命令,对源文件中的包含文件和预编译语句进行分析并展开
- 编译(Compilation),用cc命令编译源文件生成目标文件
- 汇编(Assembly) ,针对汇编语言的步骤,调用as命令生成目标文件
- 链接(Linking),由ld命令来完成。
嵌入式软件开发模式
嵌入式系统资源受限,直接在嵌入式系统硬件平台上编写软件较为困难。
解决方法:
- 首先在通用计算机上编写软件
- 然后通过交叉编译生成目标平台上可以运行的二进制代码格式
- 最后再下载到目标平台上运行
宿主-目标机开发模式
嵌入式系统采用双机开发模式:宿主机-目标机开发模式,利用资源丰富的PC机来开发嵌入式软件。
嵌入式软件开发流程
什么是交叉编译(Crossing-compiling)
在一种平台上编译出能在另一种平台(体系结构不同)上运行的程序;
交叉编译器和交叉链接器是指能够在宿主机上安装,但是能够生成在目标机上直接运行的二进制代码的编译器和链接器
交叉编译 | 本地调试 |
---|---|
调试器和被调试程序运行在不同的计算机上 | 调试器和被调试程序运行在同一台计算机上 |
可独立运行 | 需要操作系统的支持 |
可以调试不同指令集的程序 | 只能调试相同指令集的程序 |
需要通过外部通信的方式来控制被调试程序 | 不需要通过外部通信的方式来控制被调试程序 |
3.处理器结构:哈弗 vs 冯诺依曼,CISC vs RISC
CISC: Complex Instruction Set Compute 复杂指令集 适用于通用计算机
RISC: Reduce Instruction Set Compute 精简指令集 适用于嵌入式系统
RISC中,CPU与memory之间不能直接进行数据传输必须通过load/store指令把数据从内存搬到register,CPU再操作register里面的数据
4.常见的嵌入式处理器、操作系统
嵌入式微处理器
常见的嵌入式微处理器
- ARM:体积小、低功耗、低成本、高性能
- PowerPC (Performance Optimization With Enhanced RISC - Performance Computing)基于RISC
处理器组成:
- 控制单元: 取指令
- 执行运算:数据运算
处理器结构(详细解释):
-
哈佛结构:取指令和数据有各自的总线,执行效率高,设计复杂度高
-
冯诺依曼结构:存储程序原理,代码本身也是数据;简化了结果降低了复杂度,总线的吞吐量成为性能提升的瓶颈
-
改进的哈佛结构
改进型哈佛结构虽然也使用两个不同的存储器:程序存储器和数据存储器,但它把两个存储器的地址总线合并了,数据总线也进行了合并,即原来的哈佛结构需要4条不同的总线,改进后需要两条总线。
嵌入式处理的结构:
- 嵌入式微处理器 MPU
- 嵌入式微控制器 MCP
- 嵌入式DSP处理器 DSP
- 嵌入式片上系统 System On Chip
嵌入式操作系统:
-
嵌入式操作系统实时操作系统的特点
- 嵌入式实时操作系统应用于实时性要求高的实时控制系统,而且应用程序的开发过程是通过交叉开发来完成的,即开发环境与运行环境是不一致。
- 嵌入式实时操作系统具有规模小(一般在几K~几十K内)、可固化使用实时性强(在毫秒或微秒数量级上)的特点 。
-
嵌入式系统使用实时操作系统的必要性
- 嵌入式操作系统在目前的嵌入式应用中用得越来越广泛,尤其在功能复杂、系统庞大的应用中显得愈来愈重要。
- 在嵌入式应用中,只有把CPU嵌入到系统中,同时又把操作系统嵌入进去,才是真正的计算机嵌入式应用。
- 使用实时操作系统主要有以下几个因素:
- 提高了系统的可靠性
- 提高了开发效率,缩短了开发周期
- 充分发挥了32位CPU的多任务潜力
-
嵌入式实时操作系统的优缺点
- 优点
- 在嵌入式实时操作系统环境下开发实时应用程序使程序的设计和扩展变得容易,不需要大的改动就可以增加新的功能。
- 通过将应用程序分割成若干独立的任务模块,使应用程序的设计过程大为简化;而且对实时性要求苛刻的事件都得到了快速、可靠的处理。
- 通过有效的系统服务,嵌入式实时操作系统使得系统资源得到更好的利用。
- 缺点
- 需要额外的ROM/RAM开销,2~5%的CPU额外负荷。
- 优点
-
操作系统的典型性能指标
- 内核大小:几K~几百K;
- 调度时间:1ms;
- 实时任务响应时间:20~40微妙
- 一般任务响应时间:20微妙~几百毫秒
-
常见嵌入式操作系统
-
uClinux
- 开源、针对没有MMU的CPU、适用于没有虚拟内存或内存管理单元(MMU)的处理器
- 保留了Linux的大部分优点:稳定、良好的移植性、优秀的网络功能、完备的对各种文件系统的支持、以及标准丰富的API等。
-
WinCE
- Windows CE 是精简的 Windows 95
- 图形用户界面相当出色
- 使绝大多数的应用软件只需简单的修改和移植就可以在Windows CE平台上继续使用。
-
Android
- Android是一种基于Linux自由及开放源代码的操作系统
-
IOS
- iOS与苹果的Mac OS X操作系统一样,属于类Unix的操作系统
-
VxWorks
- 良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域占据一席之地。
- 它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中。
-
μ C / O S − H \mu C/OS-H μC/OS−H
- 源码公开、可移植、可固化、可裁剪、占先式的实时多任务操作系统。
- 用 C写的,使其可以方便地移植并支持大多数类型的处理器。
- μC/OS-II占用很少的系统资源
-
eCos
- embedded Configurable operating system
- 是一个可配置、可移植的嵌入式实时操作系统,
- eCOS的所有部分都开放源代码,可以按照需要自由修改和添加。
- eCOS的关键技术是操作系统可配置性,允许用户组和自己的实时组件和函数以及实现方式,
-
嵌入式系统的设计流程
可以把嵌入式系统的开发看作对一个项目的实施。
项目的生命周期一般分为
- 识别需求
- 提出解决方案
- 执行项目
- 结束项目
嵌入式系统的开发流程