|
1、对目标系统的观察和控制
( o1 Y f. L2 Z8 u( C由于嵌入式硬件系统千差万别,软件模块和系统资源也多种多样,要使系统能正常工作,软件开发者必须要对目标系统具有完全的观察和控制能力,例如硬件的各种寄存器、内存空间,操作系统的信号量、消息队列、任务、堆栈等。" z/ |5 I4 a, t( [. O1 y
2、涉及多种 CPU及多种 OS
, _- }; b2 j0 X$ J+ G嵌入式的CPU或处理器可谓多种多样,这包括了 Pentium、MIPS、PPC、ARM,XScale 等,而且应用都很广,在其上运行的操作系统也有不少,如 VxWorks、Linux、 Nuclears、WinCE等等,即使在一个公司之内,也会同时使用好几种处理器,甚至几种嵌入式操作系统。如果需要同时调试多种类型的板子,每个板子上又运行着多个任务或进程,那复杂性是可想而知的。: M8 p8 o7 T/ o$ b3 l: A/ G' Q% Q
3、开发工具种类繁多8 M6 l. ~5 z, \% o
不仅各种操作系统有各自的开发工具,在同一系统下开发的不同阶段也有不同的开发工具。如在用户的目标板开发初期,需要硬件仿真器来调试硬件系统和基本的驱动程序,在调试应用程序阶段可以使用交互式的开发环境进行软件调试,在测试阶段需要一些专门的测试工具软件进行功能和性能的测试,在生产阶段需要固化程序及出厂检测等等。一般每一种工具都要从不同的供应商处购买,都要单独去学习和掌握,这无疑增加了整个公司的支出和管理的难度。
0 V7 P# ]0 j3 H5 {此外,嵌入式系统变化更新比较快,对开发时间要求比较紧,尤其是消费类产品更是如此,如果有一套功能强大的嵌入式软件集成开发工具可以满足嵌入式软件开发各个阶段的需求,同时又使用方便,界面友好,那是最理想不过了。0 `% ]; n0 |: U% G: G! f$ U, }& M
有的嵌入式系统的处理能力和存储能力较弱,不能在它上面安装开发软件;有的嵌入式系统的处理器结构特殊,没有可以在上面运行的开发工具。所以,在开发嵌入式系统时,通常需要采取交叉开发的方式进行。$ f8 S) \+ k$ s9 u- ?0 e9 I0 [
|
|