美文网首页RTOS和GUI_基于英飞凌tc2x及stm32开发板
etas os种3中资源及其影响面--Apple的学习笔记

etas os种3中资源及其影响面--Apple的学习笔记

作者: applecai | 来源:发表于2023-06-23 09:44 被阅读0次

一,前言

之前看过资源的源码就是修改优先级。优先级变了,那么task任务切换也变了。至于event相关的代码也看了,比较简单和理解一致。但是配置中有3种资源类型,具体含义是什么怎么区分呢!最近看源码的同时也在看os手册,结合起来看效果更好。这样就把配置项和代码关联起来了。

二,3种os资源的理解

  1. 标准资源:这就是我们常见资源类型,用的是天花板优先级翻转原理。
  2. LINK资源:它的产生主要是同一资源不可嵌套,为了让某个资源可嵌套,所以产生了LINK资源。如下用了标准资源Resource1,但是嵌套了就会报错。


    image.png

    修改为link资源就可以支持嵌套了。


    image.png
  3. 内部资源:就是一整个task在运行的时候会自动锁住,调度或终止的时候会自动释放。而且不需要用户添加锁住和释放资源的函数。生命周期其实就是整个task。所以源码中dispatch task结束后判断存在资源锁,就会进行释放。持有内部资源的task之间不可打断,我们一般配置的task都是FULL不是NON也就是可打断,若配置为NON是说任何task都不能打断。这么看来和NON task是有区别的,内部资源影响面更小。
    那么什么时候用内部资源呢!比如一组任务非常频繁紧密的共享资源,这会导致优先级一直要切换,那么上下文切换就是时间消耗,而且还会消耗内部栈空间,毕竟任务切换的时候都要保存和恢复现场。

三,小结

有时候在了解的设计原理的情况下再去看细节的代码更有利于理解代码。好了,关于3种资源终于理解清楚了,按需要使用,反正我的原则是尽量少用,哈哈~

相关文章

网友评论

    本文标题:etas os种3中资源及其影响面--Apple的学习笔记

    本文链接:https://www.haomeiwen.com/subject/tqamydtx.html