嵌入式系统开发要素的选择分析
RTOS与一般商用多任务OS(如Unix、Windows以及Linux等)有共同的一面,也有不同的一面。商用多任务OS主要目的是方便用户管理计算机资源和追求系统资源的最大利用率;而RTOS重点追求的是实时性、可确定性、可靠性,当然也包括有限资源的管理。一般RTOS内核都很小,在几KB~十几KB之间。流行的RTOS基本上都支持基于优先级的抢占式调度策略和时间片轮转,具有微内核结构,有标准组件可供选用,支持虚拟存储技术和存储保护机制。
由于具体嵌入式应用的功能需求差异以及不同RTOS间不同的性能指标,RTOS的选择有三种方案:一是根据应用需要和公司技术实力,考虑自主开发研究(国内手机厂商宁波波导公司部分款式的手机操作系统就是自主开发的);二是充分考虑系统需求和流行RTOS的性能指标及性价比选择商用RTOS,如WinCE、VxWorks等;三是考虑嵌入式Linux(RT_Linux),RT_Linux是开放源代码的免费自由软件,互联网技术论坛较多,具备较好的裁减性以支持不同的应用范畴。
当前全球范围内商用RTOS多达200多种,应用领域的多样性使得市场反应较好的也将近有十几种,如VxWorks、pSOS、Nucleus、QNX、WinCE以及中科院软件研究中心研制的Hopen等。这些不同名称的RTOS,核心软件差异微妙而且难以琢磨,选择时重点是考虑它们的性能评价指标,主要包括调度算法、RTOS本身内存开销、RTOS内存管理模式、最大中断禁止时间和最大任务切换时间。当然,也包括RTOS的购买成本和提供的技术支持等相关因素。针对实时性要求较高的应用,需要重点考虑RTOS的最大中断禁止时间和最大任务切换时间。这两个参数越小越好。减小这两个参数值,除了选用较高工作主频的嵌入式处理器外,还和RTOS本身任务调度和中断处理机制密切相关。
选择RTOS时,通常还要考虑系统功能方面支持何种处理器硬件平台,何种API,是否支持核心态用户态、是否支持内存管理单元MMU、可移植性、调试支持、标准支持等。如果开发网络应用,还需要考虑该RTOS是否支持TCP/IP的网络组件和I/O服务等。如果开发游戏和娱乐市场,要着重研究该RTOS对多媒体的支持能力。市场应用需求的多样性,使得RTOS本身应该支持用户自定制能力,根据应用需要在微内核的基础上选用标准组件。
3 仿真器和调试器
调试是嵌入式系统开发过程的重要环节。嵌入式系统开发调试和一般PC系统开发调试有较大差别。在一般PC机系统开发中,调试器和被调试程序是运行在相同的硬件和软件平台上的两个进程,调试器进程通过操作系统专门提供的调试接口控制和访问被调试进程。而在嵌入式系统中,调试器是运行在桌面操作系统上的应用程序,被调试程序是运行在基于特定硬件平台的操作系统,两个程序间需要实时通信。
嵌入式系统调试时,主机上运行的集成开发调试工具(调试器)通过仿真器和目标机相连。仿真器处理宿主机和目标机之间所有的通信,这个通信口可以是串口、并行口或者高速以太网接口。仿真器通过JTAG口和目标机相连。三者间的关系如图1所示。
嵌入式系统开发调试方法有快速原型仿真法和实时在线调试法。快速原型仿真法用于硬件设备尚未完成时,直接在宿主机上对应用程序运行进行仿真分析。在此过程中系统不直接和硬件打交道,由开发调试软件内部某一特定软件模块模拟硬件CPU系统执行过程,并可同时将仿真异常反馈给开发者进行错误定位和修改。实时在线调试法在具体的目标机平台上调试应用程序,系统在调试状态下的执行情况和实际运行模式完全一样,这种方式更有利于开发者实时对系统硬件和软件故障进行定位和修改,提高产品开发速度。
选用的调试器是运行在主机上的集成开发环境,一般需要集编辑、汇编、编译、链接和调试环境于一体,支持低级汇编语言、C和C++语言,基于友好的图形用户界面(GUI),支持用户观察或修改嵌入式处理器的寄存器和存储器配置、数据变量的类型和数值,堆栈和寄存器的使用,支持程序断点设置,单步、断点或者全速运行等特性。
应用需求的多样性导致市场上仿真器和调试器的提供商也较多,Windriver公司的Tornado是一个很好的开发调试工具。根据实践经验,一般配套选择规模较大、信誉较好公司的仿真器和调试器,虽然价格偏高,但是这些公司技术实力强,售后服务好,调试器和仿真器开发结合紧密。如果在开发调试过程遇到技术障碍,可以通过电话或者电子邮件方式及时获取技术支持。如选用ARM系列的嵌入式处理器时,可以购买Multi-ICE仿真器,并附加ARM250集成开发调试环境等。
4 开发队伍的技术水平和结构比例
嵌入式系统开发中选择好了嵌入式处理器、RTOS、仿真器和调试器等设备外,还需要考虑开发队伍的技术水平和结构比例。经验丰富的开发小组都深有体会:民用产品开发中,产品能够在预计的时间内进入市场赢得效益,其整个技术范围内新技术比例至多只能达到20%,超过这个界限,估算的时间期限