当前位置: 代码迷 >> 驱动开发 >> μCOS-II容许各个任务的栈容量可变的优点
  详细解决方案

μCOS-II容许各个任务的栈容量可变的优点

热度:56   发布时间:2016-04-28 10:36:04.0
μCOS-II允许各个任务的栈容量可变的优点
μCOS-II允许各个任务的栈容量是可变的
不像某些商用内核要求所有任务栈容量大小一致.

貌似优点是可以节省RAM...
------解决方案--------------------
是的,μCOS-II允许各个任务的栈容量是可变的,在创建任务时,指定了栈首地址,栈空间的开辟是用户自己采用静态变量的方式建立的。μCOS-II会记录到对应任务的栈地址指针变量中。在任务运行时用压栈和出栈时就会用到用户开辟的这个区域。但是这个“貌似优点是可以节省RAM...”应该对于会用的人来说吧。如果开小了,就会出现问题了吧。对于用UCOS2的新手,一般还是建议稍开大点。好像UCOS2也提供相关栈容量溢出的检查,没用过不敢多说。
------解决方案--------------------
关于用户任务的栈开辟问题,ucos2自己有malloc,为什么不自己在创建任务时,自己内建栈呢,用户只需要指定大小就行了啊,传入大小这个参数,这个一样也能达到用户调节任务栈容量的功能,而且由于是OS内建的,用户访问不到的话,也会安全可靠一些的。此外,windows和linux上创建线程时不也是只需要指定栈大小的吗,也没见用户来自己创建栈空间吧。不明白UCOS2为什么要用户自己创建栈空间。
  相关解决方案