作者:赵艳
北京地区工程师对嵌入式系统开发的关注程度极其之高,从IIC北京站第一天的“嵌入式系统”厂商技术讲座场场爆棚就可见一斑。只在北京站授课的飞利浦半导体公司演讲者为与会工程师带来了一场题为“从8/16位器件向32位系统过渡”的讲座,既然是厂商讲座,如意料中的,演讲稿不可避免地出现了很多有关公司产品地介绍,但同时令人感到惊喜的是,在讲座的前半段,演讲者(飞利浦中国区事业总部多重市场半导体项目经理王朋朋)从整个行业的角度,帮助听众分析了控制器领域的发展趋势(从8/16位迈向32位的必然性),介绍了32位ARM系统及开发工具与方法、操作系统的应用与选择,最后“巧妙地”结合飞利浦半导体自己的产品系列,阐述了如何选择合适的ARM控制器。
图1:几种MCU内核对于同一测试代码所需闪存大小比较。很多单片机应用开发工程师都有使用8或16位MCU器件的经历,可以说8位器件在中国仍是很多开发者的“最爱”,原因之一就是它们的低价和易用性。不过32位的大潮已经袭来,当低价和易用性也成为32位MCU的特性,一场替代革命由此拉开序幕。王朋朋分析了这其中的推动因素:1、如今新应用增加了新的功能和新的特性,因而需要集成更多的I/O口和外设;2、代码增大需要更多的存储器(或者说更高的存储器利用率);3、低端ARM芯片与中端16位和高端8位MCU的价格相当,并且仍不断下降;4、ARM使用统一的开发工具,购买和使用都很方便。对于第二点,王朋朋解释说,对于同一代码,ARM的RISC特性又使其所需的闪存空间与常用的8位MCU—8051相比要低的多,与其他8位MCU内核相差无几。(如图1)
也许有人会争辩道,8或16位MCU也在集成越来越多的功能和外围电路,以巩固自己的市场地位。笔者看来,撇开替代问题不谈,ARM内核的更高性能已经受到越来越多“较复杂”应用开发者的青睐,而且越来越多的半导体厂商推出了基于这一内核的芯片开发平台,因而演讲者所总结的以下一些经验非常值得借鉴:
图2:嵌入式实时操作系统选择举例。1.ARM≠RTOS。开发项目采用ARM控制器后是否一定需要RTOS完全取决于该项目的复杂度。项目存在以下几种情况就需要考虑使用RTOS:并行的功能模块比较多;定时处理的功能比较多;程序的执行需要判断很多的条件参数或资源;需要规划代码的优先顺序;要保证多个模块的执行时间。
2.RTOS的选择。首先考虑RTOS的性能,如内核实时性、任务切换时间/调度机制和优先级数、中断响应时间;其次是软件组件和设备驱动程序的完备程度、开发工具易用性、移植性、标准兼容性等。再者就是要考虑技术支持力度、操作系统发送形式(源代码抑或二进制代码)、许可证发送形式等等。
她建议,对于源代码开放(uC/OSII、uLinux等)和商业软件(OSE、VxWorks)两个RTOS阵营,可分别针对不同的应用进行选择。(如图2)
3.至于如何选择ARM控制器,所有用于评估8、16位架构的原则这时也同样适用,无外乎价格、内存(片上闪存/SRAM大小)、功能(片上外设是否满足系统要求、是否有升级空间)、功耗(如可选的省电模式)以及性能(速度、效率等)的考虑。