嵌入式开发环境组成
(资料图片仅供参考)
交叉开发环境软件模拟环境目标板与评估板嵌入式系统应用软件的开发属于跨平台开发,因此需要一个交叉开发环境。
交叉开发是指在一台通用计算机上进行软件的编辑编译,然后下载到嵌入式设备中运行调试的开发方式,它通常采用宿主机/目标机模式。用来开发的通用计算机可以选用比较常见的PC机等,运行通用的Windows等操作系统。
开发计算机一般称宿主机,嵌入式设备称为目标机,在宿主机上编译好的程序,下载到目标机上运行,交叉开发环境提供调试工具对目标机上运行的程序进行调试。
交叉开发环境一般由运行于宿主机上的交叉开发软件、宿主机到目标机的调试通道组成。
运行于宿主机上的交叉开发软件最少必须包含编译调试模块,其编译器为交叉编译器。作为宿主机的一般为基于x86体系的桌上型计算机,而编译出的代码必须在目标机处理器体系结构上运行,这就是所谓的交叉编译了。在宿主机上编译好目标代码后,通过宿主机到目标机的调试通道将代码下载到目标机,然后由运行于宿主机的调试软件控制代码在目标机上运行调试。
软件模拟环境也称为指令集模拟器IIS(Instruction Set Simulator),在很多时候为保证项目进度,硬件和软件开发往往同时进行,这时作为目标机的硬件环境还没有建立起来,软件的开发就需要一个模拟环境来进行调试。
模拟开发环境建立在交叉开发环境基础之上,是对交叉开发环境的补充。这时,除了宿主机和目标机之外,还需要提供一个在宿主机上模拟目标机的环境,使得开发好的程序直接在这个环境里运行调试。
应用目标板是系统最终的电路板。
评估板(EVM板)一般用来作为开发者使用的学习板、实验板,可以作为应用目标板出来之前的软件测试、硬件调试的电路板。
开发评估电路板并不是嵌入式应用开发必须的,对于有经验的工程师完全可以自行独立设计自己的应用电路板和根据开发需要设计实验板。
好的评估电路板一般文档齐全,对处理器的常用功能模块和主流应用都有硬件实现,并提供电路原理图和相关开发例程与源代码供用户设计自己的应用目标板和应用程序作参考。
在嵌入式软件的开发过程中,在确保软件的正确性、实时性的前提下,必须关注软件的可移植性和可重用性。
可移植性和可重用性的程度应该根据实际的应用情况来考虑。因为嵌入式应用软件有自身的许多特点。追求过高的可移植性和可重用性可能会恶化应用软件的实时性能和增加软件的代码量,这对于资源有限的嵌入式应用环境是得不偿失的。
我们可以在资源有限、满足系统的需求的情况下尽可能把可移植性和可重用性作为第二目标,致力于开发正确性、实时性能、代码量、可移植性和可重用性相对均衡的嵌入式应用软件。
提高应用软件的可移植性和可重用性的方法:
多用高级语言少用汇编语言将不可移植部分局域化提高代码的可重用性参考文献:
孟祥莲.嵌入式系统原理及应用教程(第2版)[M].北京:清华大学出版社,2017.