嵌入式系统包含硬件和软件两部分:硬件架构上以嵌入式处理器为中心,配置存储器、I/O设备、通信模块等必要的外设;软件部分以软件开发平台为核心,向上提供给用编程接口(API),向下屏蔽具体硬件特性的板级支持包BSP。嵌入式系统中,软件和硬件紧密配合,协调工作,共同完成系统预定的功能。字串
对于不同的市场应用类型,嵌入式系统开发中的嵌入式处理器、实时操作系统、仿真器、调试器以及开发队伍的技术水平和结构比例等要素的选择是至关重要的。本文参考一些嵌入式系统开发的资料,结合具体的工程实践经验,系统总结了进行嵌入式系统开发时,如何全面考虑各开发要素并进行选择,最后结合一个具体实例进行具体阐述。
1 嵌入式处理器
嵌入式系统的功能软件集成于硬件系统之中,系统的应用软件与硬件一体化。在嵌入式系统的硬件设备中,嵌入处理器是整个系统的核心部件,其性能的好坏直接决定整个系统的运行效果。
PC机销售市场中,随着通用CPU技术的突破和工作频率的倍增,旧款低档CPU早已经不见踪迹。嵌入式系统开发面向具体应用,不同领域的应用市场需要不同款式和性能指标的处理器来开发,于是在嵌入式处理器市场中,中低端的4位、8位和16位处理器依然存在,高性能的32位处理器也有很多产品。随着超大规模集成电路技术和微电子技术发展,包含嵌入式处理器以及部分外围电路的微控制器产品也进入市场,片上系统SoC(System on Chip)产品也开始出现。这些产品的上市,不仅丰富了嵌入式处理器产品,而且也更加方便了工程技术人员进行嵌入式系统的技术开发和扩大嵌入式产品的应用领域。
由于嵌入式系统应用需求的多样性,市场上基于RISC结构的嵌入式处理器提供商也日渐增多。统计数字表明,1999年底市场销售额排在前三位的公司分别是ARM、Motorola和MIPS,其中ARM公司的芯片销售量达1.5亿个,市场份额超过50%。
面对这样的嵌入式处理器市场,开发设计人员应该如何选择呢?这里有两个前提条件。
一是深入研究具体的嵌入式系统应用需求,充分的应用需求分析后获取应用系统的性能指标。
第二个前提条件是,分析研究市场上各大厂商提供的各款嵌入式处理器的性能指标,如功耗、体积、成本、可靠性、速度、处理能力、电磁兼容性等。这些参数也是各个半导体芯片厂商之间竞争的热点。
从一类处理器转移到另一类处理器的难度比同一系列不同处理器间的转移难度大得多,风险多得多。
2 实时操作系统
以嵌入式处理器为中心,开发人员搭建好硬件电路时仅提供了裸机运行平台,要使整个系统有限的硬件资源充分利用起来,还需要(嵌入式)实时操作系统RTOS(Real Time Operating System)的软件支持。
3 仿真器和调试器
调试是嵌入式系统开发过程的重要环节。嵌入式系统开发调试和一般PC系统开发调试有较大差别。在一般PC机系统开发中,调试器和被调试程序是运行在相同的硬件和软件平台上的两个进程,调试器进程通过操作系统专门提供的调试接口控制和访问被调试进程。而在嵌入式系统中,调试器是运行在桌面操作系统上的应用程序,被调试程序是运行在基于特定硬件平台的操作系统,两个程序间需要实时通信。
嵌入式系统调试时,主机上运行的集成开发调试工具(调试器)通过仿真器和目标机相连。仿真器处理宿主机和目标机之间所有的通信,这个通信口可以是串口、并行口或者高速以太网接口。仿真器通过JTAG口和目标机相连。三者间的关系如图1所示。
嵌入式系统开发调试方法有快速原型仿真法和实时在线调试法。快速原型仿真法用于硬件设备尚未完成时,直接在宿主机上对应用程序运行进行仿真分析。在此过程中系统不直接和硬件打交道,由开发调试软件内部某一特定软件模块模拟硬件CPU系统执行过程,并可同时将仿真异常反馈给开发者进行错误定位和修改。实时在线调试法在具体的目标机平台上调试应用程序,系统在调试状态下的执行情况和实际运行模式完全一样,这种方式更有利于开发者实时对系统硬件和软件故障进行定位和修改,提高产品开发速度。
4 开发队伍的技术水平和结构比例
嵌入式系统开发中选择好了嵌入式处理器、RTOS、仿真器和调试器等设备外,还需要考虑开发队伍的技术水平和结构比例。经验丰富的开发小组都深有体会:民用产品开发中,产品能够在预计的时间内进入市场赢得效益,其整个技术范围内新技术比例至多只能达到20%,超过这个界限,估算的时间期限可能会出现较大偏差。从高层规划人员的角度分析:20%以内的新技术,公司可以集中力量,投入足够多的人力、物力和财力进行突破性研究,正常情况下可以达到满足效果。假如新技术超出20%这个范围,恐怕心有余而力不足。
5 应用实例解析
在具体讨论了嵌入式系统开发中的几个要害因素后,下面具体阐述这些因素在工作中的具体体现。
在系统开发中,设计了两套技术调试方案:一是基于内存SRAM模式,二是基于闪存Flash模式。在内存SRAM模式中,系统加电冷启动时,系统完成相关硬件初始化任务后执行一段代码,将系统编译连接生成的二进制可执行代码从Flash存储空间完全拷贝到SRAM内存空间中,整个应用程序调试完全在内存空间执行。此种方案极大加快了庞大应用程序的调试步伐,加快产品开发进度。二是在SRAM内存模式调试完应用程序的基础上,执行闪存Flash调试,系统启动后将中断服务程序ISR和少量的内核代码拷贝到SRAM后在SRAM中执行,其它应用程序在Flash中执行。Flash模式同SRAM模式相比,主要是修改系统启动代码段,应用程序代码完全保持一致。Flash模式减少了宝贵的SRAM资源需求、降低了产品开发成本,但是运行速度较SRAM模式慢。
6 小 结
本文具体阐述了在嵌入式系统开发中嵌入式处理器、嵌入式操作系统、调试器、仿真器以及开发人员的技术水平和结构比例等组成要素的选择原则,并且使用一个具体的实例来进一步分析说明。需要指出的是,这些要素之间不是彼此独立,而是紧密相关,可能还会在某些方面相互冲突。