温馨提示:虚拟产品一经售出概鈈退款
一个资源只可评论一次评论内容不能少于5个字
前段时间看了看任哲老师的UCOSII书籍有些感悟便想着写点东西要不过两天就全忘了
关于UCOSII的代码详解和使用网络上有很多资料和书籍在这就不说了
(比如UCOSII源码详解,
介绍UCOSII的书籍都有pdf或其他电子档
这里主要用自己最简单的话来理解UCOSII的常用功能不去探讨内核实现
2,UCOSII移植和配置(概述)
3 中断和时间管理
最多支持56個任务,8个系统占用的
属于可剥夺型内核总是执行优先级最高的任务。
先上一个在pc上测试的demo程序
0 //任务的优先级别为0首先每个任务都需要創建任务堆栈来保存任务切换时的数据
创建任务两个函数后者更灵活但会增加开销
使一个正在等待的任务进入就绪状态OS_EventTaskWait:
使一个等待超時的任务进入就绪状态OS_EventTO:
信号量(其实就是一个全局变量,添加了管理机制)
就是一个标志来标示公共资源现在是否可用不可用就排队等待一定时限或者直接返回
应用场合:多个任务需要访问同一个资源,为了避免各任务竞争资源导致数据资源中的混乱就需要信号量来管理
各任务对公共资源的访问
相关函数:创建,请求(等待和不等待)释放,删除查询
创建信号量(注册刚才声明的那个信号量)
互斥信号量(添加了优先级功能的信号量)
比信号量多了个功能为了避免优先级的翻转现象。
应用场合:多个任务需要访问公共资源且对任务优先级要求很严格,不允许出现优先级反转现象的场合
相关函数:创建,请求释放,删除查询
信号量集(含有状态组的信号量)
应用场合:假如任务4需要任务1,2,3同时执行完后才能执行那么就用信号量集来完成这个功能
任务一完成后改变信号量集的第一位
任务二唍成后改变信号量集的第二位
任务三完成后改变信号量集的第三位
那么任务四就看这个信号量集的1,,2,3位是否都改变了如果是就执行
相关函数:创建信号量集,请求/查询信号量集发送/修改信号量集,删除信号量集查询信号量集
创建信号量集(注册刚才声明的那个信号量集)
消息邮箱(其实就是一个全局指针,不同的任务来通过这个指针传递数据)
功能是提供任务间的数据传递但是是单向的传递两个任務间要互相传递数据,就需要连个邮箱
不同任务间的通信需要定义多邮箱来实现才能互不干扰
应用场合:两个或多个任务间需要传递一條数据的场合。
相关函数:创建收,发查询,删除
消息队列(每次可传递多条消息的机制)
和邮箱类似但是每次传递的数据较多不哃任务间的通信需要定义多个队列来实现才能互不干扰
应用场合:两个或多个任务间需要传递多条数据的场合。
相关函数:创建收,发查询,删除
3 中断和时间管理
四,ucosii剪裁和优化
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。