现在嵌入式系统的软件开发一般都会按照以下几个层次来开发。第一层是用户界面函数,因为每个嵌入式系统的硬件所提供的用户界面不一样,虽然现在大多采用LCD屏幕及触摸面板的方式,但还是有屏幕尺寸不同的问题,所以有关界面的设计,必须根据每一个平台的不同而有所调整。第二层是环境界面函数,因为每个操作系统所提供的系统调用不一样,甚至因为硬件及编译器不同而造成数值的长度不一样。例如int这个变量声明,可能在16位CPU上是2B,在32位CPU上会是4B,所以直接用int做运算时,会因为不同的平台而出现不一样的结果,甚至发生死机的情况。
另外,开发的程序需要大量的CPU运算。例如MP3播放程序,除了要定义基本的CPU运算能力外,有些地方还必须使用汇编语言及最优化的方式来处理。这类程序的移植工作一般都比较困难,甚至还必须和操作系统共用核心模式。