嵌入式软件开发与非嵌入式软件开发区别?
设备驱动开发与裸机驱动开发区别?
嵌入式开发与传统单片机开发区别?
如果面试遇到这样的问题:
三个问题的答案一致。
答:我认为嵌入式软件与非嵌入式软件(设备驱动开发与裸机驱动开发/嵌入式开发与传统单片机开发)的最大的区别就是有无操作系统。
对于无操作系统的开发:
应用软件与驱动的耦合度过高,一旦硬件发生变化那么相对应的驱动也会发生变化,紧接着应用程序也需要做相应的修改,这样带来的后果就是我们应用程序的可移植性很差。
无操作系统的系统结构比较单一、功能简单,只能提供单任务机制而且一般软件架构通常都是在一个无限循环中对设备中断进行检测或者轮询。
- 它的接口驱动是不进过操作系统直接提交给软件工程师应用。
对于有操作系统的开发:
有操作系统的存在则大大降低了应用软件与硬件平台的耦合度,它充当了我们硬件与应用软件之间的纽带,使得应用软件只需要调用系统软件的应用程序接口API就可以让硬件去完成要求的开发,而应用软件则不需要关心硬件到底是如何工作的。这将大大提高我们应用程序的可移植性和开发效率。同时操作系统还有强大的任务调度机制(进程线程),支持多任务。