我以前有个同事,在8051上用汇编写了小小的kernel,只有几百bytes, 我们的应用程序都围绕这个Kernel,其实就是一个定时的scheduler和 堆栈管理,这样我们的应用就简化了许多,这是好的方面。
许多应用要用文件系统,以太网,这种需要许多资源管理的, OS也是很理想的选择。比如,LPC3000(ARM9),或是Intel以前 的386EX,和Xcale,这些芯片使用OS一点不奇怪。
还有一种趋势就是ARM7希望用32位代替8位的8051,IVR,这种情况 下,内设的32K的Flash,8K的RAM,虽说也有不少通讯接口,如USB, SSP,但如果加个OS就不可理喻了。80%的资源用OS,还有资源用在应用吗?
如果有能力用OS,自己维修,灵活应用,那就用OS。也有的人云亦云, 因为人家用了,所以我也要用,这就是扯淡了。
做终端产品,用户最在乎的是产品的稳定性,而不是听你是不是 有OS.许多时候,产品的稳定性不好就是由于不了解OS和其他 中断的关系。这样,还不如不用OS.
我用过uCOSII,FreeRTOS,RTX,Nucleus,ThreadX,VxWorks,遇到过最难的 问题是,在中断服务里调用OS的API,和任务的优先级和堆栈的设置, 用不好,调试起来能搞死人。还找出过OS里的Bug。那才叫晕呢?
|