MbedOS 是一个新的OS概念, 我认为其代表特点有两个:
1. 堆栈共用。
2. 事件驱动。
下面详细分析一下:
其他的OS通常会给系统两种,一个给内核,一个给用户。或者一个给系统,一个给任务(RTOS). 这样带来一种需求就是如何合理的分配内存给这两个堆栈,非实时系统通常是动态分配,比如Linux是先把内存全给内核,然后再在内核的堆中分配空间给用户进程(写时分配)。参考以下链接
http://www.cnblogs.com/clover-toeic/p/3754433.html
http://www.programgo.com/article/13101300282/;jsessionid=D3BCEDA52387EB440D104828DB1ED032
或者是静态的给定每个task的堆栈大小,系统的堆栈在编译时就给定,这个是大多数RTOS的做法,稍微有区别的是,有些RTOS的队是可以动态分配的,而有些是指定的在任务创建的时候。
动态分配会遇到实时响应的问题,静态分配会有大小浪费的问题。mbedos采用的是直接使用同一个堆栈来解决这连个问题,参考一下
https://developer.mbed.org/cookbook/Event-Driven-framework
这样做的好处是速度和利用率都得到了提高,问题是容易出错,不好纠错。