1.科普
简单来讲,嵌入式系统可以理解成模式功能更单一的计算机,只不过嵌入式是能够根据用户需求(功能、可靠性、成本、体积、功耗、环境等)灵活裁剪软硬件模块的专用计算机系统。
相较于大家更了解的PC(个人电脑)而言,嵌入式系统的应用场合大多对可靠性、实时性有较高要求,这就决定了服务于特定应用的专用系统是嵌入式系统的主流模式,它并不强调系统的通用性和可扩展。
举几个例子,我们家用的微波炉或者电饭煲,里面都是使用的嵌入式系统,它们是较为简单的嵌入式系统,像汽车车机系统,就是带有操作系统的嵌入式系统。
![](https://img-blog.csdnimg.cn/img_convert/9ae8eda394abd6fa197ea69c73d292e1.jpeg)
像比较热门的智能家居,其实也是嵌入式系统的应用,将家用电器都装上嵌入式控制系统,再结合物联网技术,家居就可以智能化。
![](https://img-blog.csdnimg.cn/img_convert/a631cb44830c3eb64a6d32cc15e90866.jpeg)
大家会发现嵌入式系统和我们理解的计算机非常像,要说嵌入式是偏科的计算机也非常贴切。个人的见解:嵌入式系统无法自己改变已经下载的程序,而计算机能够改变它本身的程序,可能是它们最本质的区别。嵌入式系统的程序是“烧录”的,我们需要用计算机去编写、调试嵌入式系统的程序。
嵌入式芯片几大公司有:TI、ST、ADI等等;将芯片以及配套的存储器、计时器等等做成一张类似计算机主板一样的东西,我们把它叫做开发板。
![](https://img-blog.csdnimg.cn/img_convert/1075013efaf3352b620ef82189047a5a.jpeg)
计算机上的开发软件使用的比较的的有Keil4、Keil5等等,用于编写程序,再下载到芯片中,实现各种功能。
2.组成与烧录
1.软硬件组成
嵌入式系统通常由包含有嵌入式处理器、 嵌入式操作系统、 应用软件和外围设备接口的嵌入式计算机系统和执行装置(被控对象)组成。嵌入式计算机系统是整个嵌入式系统的核心,可以分为硬件层、中间层、系统软件层和应用软件层。执行装置接受嵌入式计算机系统发出的控制命令,执行所规定的操作或任务
从硬件层面可以分为:微处理器、外围电路和外设,外设就是各种传感器或者实现其他功能的元件。
从软件层面来说,包括:设备驱动接口 (DDI ) 、实时操作系统( RTOS ) 、可编程应用接口( API )和应用软件。
嵌入式系统软件特征: (1) 软件要求固态化存储 (2) 软件代码高质量、高可靠性 (3) 系统软件 (OS)的高实时性是基本要求 (4) 多任务操作系统是知识集成的平台和走向工业标准化道路的基础。
2.崩溃与烧制( Crash and Burn)
我们把用于控制的计算机叫做宿主机,把需要操作的单片机系统叫做目标机。
1.固化
操作流程:(1)在宿主机 PC 上编写代码;(2)在宿主机 PC 上编译应用程序,生成可执行程序;(3)固化( Burn)到目标机的非易失性存储器( EPROM、FLASH 等)中;(4)启动运行,若正确则转到(8);(5)不正确则改写代码,纠正错误;(6)返回(7)重复操作;(8)固化成功。
2.Rom监控程序
![](https://img-blog.csdnimg.cn/img_convert/64a14e01c8772558445362d243bf5728.png)
当且仅当ROM 芯片无法获得的情况,可以使用ROM 仿真器,其在一定程度上可以认为是一种用于替代目标机上 ROM 芯片的设备,ROM 仿真器通常和 ROM Monitor配合使用。
2.在线仿真器
在线仿真器( ICE)是一种用于替代目标机上 CPU 的设备。同时支持软件断点和硬件断点的设置;设置各种复杂的断点和触发器;实时跟踪目标程序的运行;选择性的跟踪程序的运行;支持 “时间邮票(Time Stamp )”;允许用户设置 “定时器 ”;提供 “Shadow RAM”,能在不中断被调试程序运行的情况下查看内存和变量,即非干扰调试查询。
3.片上调试
片上调试 (OCD)是 CPU 芯片提供的一种调试功能, 可以认为是一种廉价的 ICE 功能。 OCD 方式的主要优点是:不占用目标机的资源,而调试环境和最终的程序运行环境基本一 致;支持软、硬件断点,提供跟踪功能,可以精确计量程序的执行时间,支持时序分析等功 能。OCD 方式的主要缺点是:调试的实时性不如 ICE 强,不支持非干扰调试查询,CPU 必 须具有 OCD 功能, OCD 存在各种实现且标准不统一。
4.模拟器
模拟器( Simulator)通常是指令级的,相当于在宿主机上虚拟了一台目标机,该目标机可
以与宿主机的 CPU 不同类型。利用模拟器的最大好处就是可以不用真正的目标机, 可以
在目标机环境并不存在的条件下开发目标机上的应用系统,并且在调试时可以利用宿主机资
源提供更详细的错误诊断信息。
3.常见的几个名词
1.MCU
微控制单元(Microcontroller Unit;MCU) ,又称单片微型计算机(Single Chip Microcomputer )或者单片机,是把中央处理器(Central Process Unit;CPU)的频率与规格做适当缩减,并将内存(memory)、计数器(Timer)、USB、A/D转换、UART、PLC、DMA等周边接口,甚至LCD驱动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。诸如手机、PC外围、遥控器,至汽车电子、工业上的步进马达、机器手臂的控制等,都可见到MCU的身影。
2.ARM
![](https://img-blog.csdnimg.cn/img_convert/d64255278ada7bbf1baac21422fd2027.png)
ARM处理器是英国Acorn有限公司设计的低功耗成本的第一款RISC微处理器。全称为Advanced RISC Machine。ARM处理器的三大特点是:耗电少功能强、16位/32位双指令集和合作伙伴众多。在移动设备市场,ARM处理器的市场份额超过90%。
特点总结:体积小、低功耗、低成本、高性能;支持 Thumb (16 位) /ARM (32 位)双指令集,能很好的兼容 8 位/16 位器件;大量使用寄存器,指令执行速度更快;大多数数据操作都在寄存器中完成;寻址方式灵活简单,执行效率高;指令长度固定。
3.DSP
DSP(Digital Signal Processing)即数字信号处理技术,DSP芯片即指能够实现数字信号处理技术的芯片。
DSP芯片的内部采用程序和数据分开的哈佛结构,具有专门的硬件乘法器,广泛采用流水线操作,提供特殊的DSP指令,可以用来快速的实现各种数字信号处理算法。
4.MPU
微机中的中央处理器(CPU)称为微处理器(MPU),是构成微机的核心部件,也可以说是微机的心脏。它起到控制整个微型计算机工作的作用,产生控制信号对相应的部件进行控制,并执行相应的操作。
在微机中,CPU被集成在一片超大规模集成电路芯片上,称为微处理器(MPU),微处理器插在主板的cpu插槽中。
通常所说的16位机、32位机是指该计算机中微处理器内部数据总线的宽度,也就是CPU可同时操作的二进制数的位数。常用的CPU都是64位的,即一次可传送64位二进制数。
5.RTOS
1.什么是实时操作系统(RTOS)
实时操作系统(Real Time Operating System,简称RTOS)是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统做出快速响应,调度一切可利用的资源完成实时任务,并控制所有实时任务协调一致运行的操作系统。提供及时响应和高可靠性是其主要特点。
{ //注:以下内容来自什么是实时操作系统(RTOS)
经常跟实时操作系统一起讲的,还有嵌入式操作系统这个概念,但实际上这是完全不同的两种东西,虽然大多数实时操作系统都是嵌入式操作系统,但嵌入式操作系统并不全都是实时的。
对于实时操作系统有一些常见的误区,比如:速度快,吞吐量大,代码精简,代码规模小等等。其实这些都不算是实时操作系统的特性,别的操作系统也可以做到。
只有“实时性”才是RTOS的最大特征,其它的都不算是。
实时操作系统中都要包含一个实时任务调度器,这个任务调度器与其它操作系统的最大不同是强调:严格按照优先级来分配CPU时间,并且时间片轮转不是实时调度器的一个必选项。
}
RTOS与其他系统的区别在于它严格按照任务优先级执行,而在非实时操作系统(例如Linux)上,虽然任务也分优先级,但对于长时间未处理的低优先级任务,它会在有其他优先级更高的任务时处理该任务,这样照顾了系统的性能,但是带来了不确定性,对于RTOS来说,每一个任务的处理顺序都是固定的、可预见的,因为它一直响应优先级高的任务,即”实时性“。
2.功能
(1)任务管理:
分时操作系统中的基本调度单位一般是进程(或者线程),而对于实时操作系统,其内核调
度的基本单位是任务。任务一般由任务控制块、程序区、数据区、堆栈区组成,堆栈又分为
系统堆栈和用户堆栈。 任务的驱动一般是基于消息或者事件的, 即任务的设计是按照依次
处理可能接收到的消息和事件,周而复始轮询循环的。实时操作系统中的任务有四种状态:
运行( Executing),就绪( Ready),挂起( Suspended),冬眠( Dormant )。
(2)任务间同步和通信:
主要实时操作系统的任务间同步和通信的机制有:消息、事件、信号量;少部分实时操作系
统仍使用邮箱机制;还有一些实时操作系统提供了共享内存的任务间通信机制。
(3)内存管理:
实时操作系统内存管理模式可以分为实模式与保护模式。目前主流的实时操作系统一般都可
以提供两种模式,让用户根据应用自主选择。另外,实时操作系统的内存管理还有对于内存
的优化分配,以尽量减少整个系统的内存占有量的要求。
(4)实时时钟服务:
实时时钟是系统调度的基础,也是系统定时服务器的基础。实时时钟服务一般包括定时唤醒
(tm_wkafter 或者 tm_wkwhen )、定时事件( tm_evafter 或者 tm_evwhen )机制。
(5)中断管理服务:
是操作系统的一个核心和基本的功能。实时操作系统要求中断处理程序更加短小、精悍,以
减少中断禁止时间和中断延迟时间。
3.优点
(1)保证任务执行的实时性;(2)简化多任务切换和资源分配及网络消息管理;(3)模块
化便于软件扩展、移植和再使用;(4)提高编写出的软件可靠性;(5)使软件开发从 “小
生产阶段 ”进入到 “大生产阶段 ”。
6.API
API(Application Program Interface)应用程序接口,通过API接口可以实现计算机软件之间的相互通信,开发人员可以通过API接口程序开发应用程序,可以减少编写无用程序,减轻编程任务,API 同时也是一种中间件,为各种不同平台提供数据共享。根据单个或分布式平台上不同软件应用程序间的数据共享性能。列如可以在手机负一屏看见各大快递的物流消息,其实就是调用了物流公司的API,在不暴露公司源代码的情况下,将使用率提高。