由于嵌入式体系的差异性很大,对不同的运用需求,有必要挑选不同的软件设计办法、开发渠道和体系东西。
关于一些不需求杂乱图形用户界面、通信协议和杂乱文件操作(如一起翻开多个文件)的运用,假如选用CortexM3核的处理器就已能够满足要求,使命数不多,使命之间的联系也不杂乱,则不必定需求移植杂乱的操作体系。这样一方面能够下降体系硬件开支,也能够获得更好的实时性和履行速度。不过,这样的软件开发办法需求开发人员有较好的程序设计思维,对所用器材有深化的了解,并把握其编程操控办法。若引进一个简略的操作体系,如霤/OS,能够简化程序结构,但开发者最好了解其内核结构,并有运用经历,不然可能会需求更多的体系开发、调试时刻。
假如挑选了带存储器办理单元(MMU)的ARM处理器(如ARM920T、CortexA8等),这种运用体系依据运用、实时性、开发环境等要素,移植一个功用较强的操作体系一般情况下会比较适宜,如Linux、WinCE,乃至新的Android等。这种体系的开发难度首要是在OS的移植以及硬件驱动程序的开发上。当这二步作业完成后,首要的软件开发作业已和在PC机上开发没有多大差异,能够依照一般的软件工程办法来进行,要注意的仅仅与arm硬件渠道相关的软件优化问题。
由于嵌入式体系硬件资源的有限性,嵌入式软件与其他运用软件的首要差异,在于嵌入式软件要有较高的功率,包含履行速度和存储空间,虽然这二者经常是彼此对立的。现在一般要求更多的是速度优化。要编写出高效的ARM程序,需求开发人员了解ARM的体系结构,包含内核结构、指令体系、Cache与存储器结构等,还要有好的程序设计思维,以及对一些常用函数、算法的深刻理解。这个进程也是arm体系开发从初级到高档的进阶之路。
现在,由于运用体系越来越杂乱,嵌入式软件的移植性和重用性也得到了人们的高度重视,由于它直接影响到嵌入式软件的开发功率和质量。挑选一种通用的开发环境和高档编程言语,使开发的嵌入式软件能够方便地移植到不同的硬件渠道,是完成软件重用的根底。现在在ARM嵌入式体系开发中,ARM RealView、Keil以及IAR的EWarm是较好的开发渠道,C/C++言语是运用最广泛的编程言语,并具有广泛的库函数、程序支撑,在往后很长一段时刻内,仍将在嵌入式体系运用领域中占重要位置。