文章目录
嵌入式系统定义
电气工程协会(IEEE)的定义 :
嵌入式系统是用来控制、监控,或者辅助操作机器、装置、工厂等大规模系统的设备。这个定义主要是从嵌入式系统的用途方面来进行定义的。
更广泛的定义:
嵌入式系统是指以应用为中心,以计算机技术为基础,软件硬件可剪裁, 适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
嵌入式系统的特点
1.专用、软/硬件可剪裁可配置
2.低功耗、高可靠性、高稳定性
3.软件代码短小精悍
4.代码可固化
5.实时性
6.弱交互性
7.嵌入式系统软件开发通常需要专门的开发工具和开发环境
8.要求开发、设计人员有较高的技能
嵌入式系统的发展
嵌入式系统主要经历的4个阶段:
1.第1阶段是以单芯片为核心的可编程控制器形式的系统。
2.第2阶段是以嵌入式CPU为基础、以简单操作系统为核心的嵌入式系统。
3.第3阶段是以嵌入式操作系统为标志的嵌入式系统。
4.第4阶段是以物联网为标志的嵌入式系统。
未来嵌入式系统的发展趋势:
1)小型化、智能化、网络化、可视化
2)多核技术的应用
3)低功耗(节能)、绿色环保
4)云计算、可重构、虚拟化等技术被进一步应用到嵌入式系统中
5)嵌入式软件开发平台化、标准化、系统可升级,代码可复用将更受重视
6)嵌入式系统软件将逐渐PC化
7)融合趋势
8)安全性
嵌入式系统的组成
嵌入式系统的硬件组成
嵌入式处理器:
与通用计算器的区别:将通用计算器由板卡完成的任务集成到芯片内部,从而有利于嵌入式系统在设计时趋于小型化, 同时还具有很高的效率和可靠性。
外围设备:
用于完成存储、通信、调试、显示等辅助功能的其他部件。
常见存储器:RAM、ROM、SRAM、DRAM、 SDRAM、EPROM、EEPROM、Flash
通信设备:RS-232 接口、SPI 接口、以太网接口
嵌入式系统软件组成
嵌入式操作系统举例
商业版:VxWork
开源版:嵌入式Linux
部分改进:
1、改善的内核结构
2、提高的系统实时性
嵌入式开发流程
1、开发嵌入式系统首先要进行系统定义,也就是提出问题。
2、然后进行可行性研究:研究开发成本和技术等,判断是否可以开发该系统。
3、成功立项之后进行需求分析,分析产品的功能点。
4、进行系统总体设计:
主要是看系统应该分成多少个模块。
对软硬件进行划分,其实一个功能归软件实现还是归硬件实现并没有明确的区分,一般来说对于实时性要求高的部分
用硬件实现,但是硬件实现的成本较高,实时性相对较低的部分可以使用软件实现,成本也就随之降低。
处理器的选定:选定使用什么型号的处理器,要考虑到性能和成本的平衡。
操作系统的选定:根据对系统的分析确定使用什么操作系统平台
开发环境选定:选用合适的开发环境进行开发
5、硬件和软件的实现:
一般来说先实现硬件,再实现软件
硬件:
硬件的选型
详细设计:画PCB
制作:找公司焊接制作开发板
测试:进行详细的测试,解决存在的问题,往往这一步会出现许多问题。
一般来说从详细设计 -> 硬件制作 -> 硬件测试 这个过程需要重复多次。
软件:
硬件调试好之后交给软件部门
一般分为应用层和驱动层的开发
开发好之后进行软件测试
6、软件和硬件测试都通过之后进行软硬件的集成,这时开发基本上完成。
7、进行功能测试和性能测试,看是否符合产品的功能上和性能上,稳定性上的需求。
8、测试通过则嵌入式开发完成,未通过则重新进行系统总体设计,继续开发周期。
嵌入式开发概述
交叉编译:
所谓交叉编译就是在一个平台上生成可以在另一个平台上执行的代码。
一般把进行交叉编译的主机称为宿主机,也就是普通的计算机,而把程序实际的运行环境称为目标机,也就是嵌入式系统环境。
交叉调试:
典型特点:
1、调试器和被调试的进程运行在不同的机器上,调试器运行在PC或者工作站上(宿主机),而被调试的进程运行在各种专业调试版上(目标机)。
2、调试器通过某种方式(串口、并口、网络、JTAG等)控制被调试进程。
3、在目标机上一般会具有某种形式的调试代理,它负责与调试器共同配合完成对目标机上运行的进程进行调试。这种调试代理可能是某些支持调试功能的硬件设备。也可能是某些专门的调试软件(如GdbServer)。
4、目标机可能是某种形式的系统仿真器,通过在宿主机上运行目标机的仿真软件,整个调试过程可以在一台计算机上运行。此时物理上虽然只有一台计算机,但逻辑上仍然存在着宿主机和目标机的区别。
软件调试:
硬件调试:
硬件调试器的基本原理是通过仿真硬件的执行过程,让开发者在调试时可以随时了解到系统的当前执行情况。
ROM监视器(ROM Monitor)
ROM仿真器(ROM Emulator)
在线仿真器(In-CircuitEmulator)
在线调试器(In-CircuitDebugger)
ROM监视器:
优点:ROM监视器功能非常强大,能够完成设置断点,单步调试,查看寄存器,修改内存空间等各项调试功能。
缺点:同软件调试一样,使用ROM监视器目标机和宿主机必须建立通信连接。
ROM仿真器:
优点:避免了每次修改程序后都必须重新烧写到目标机的ROM中。
缺点:ROM仿真本身比较昂贵,功能来讲又比较单一,只是适应于某些 特定场合。
在线仿真器:
优点:功能强大,软/硬件都可以做到完全实时在线调试。
缺点:价格昂贵
在线调试器:
优点:连接简单,成本低。
缺点:特性受制于芯片厂商。