2、内核核心
【摘要】 #内核核心实现:
临界区保护
调度锁保护
位图数据结构
多优先级任务
双向链表数据结构
任务延时队列
同优先级时间片运行
#1、临界区保护。
采用关闭中断的方式保护任务与任务之间、任务与中断之间的共享资源 由于有临界区的保护,所以即便是这中间中断产生,也不会立即响应中断。全局变量的的值会被正确修改。等待退出临界区时,才会响应中断,在中断中再修改全...
#内核核心实现:
- 临界区保护
- 调度锁保护
- 位图数据结构
- 多优先级任务
- 双向链表数据结构
- 任务延时队列
- 同优先级时间片运行
#1、临界区保护。
采用关闭中断的方式保护任务与任务之间、任务与中断之间的共享资源
由于有临界区的保护,所以即便是这中间中断产生,也不会立即响应中断。全局变量的的值会被正确修改。等待退出临界区时,才会响应中断,在中断中再修改全局变量最终不会导致冲突。
// 进入临界区 uint32_t status = tTaskEnterCritical(); // 退出临界区 tTaskExitCritical(status);
- 1
- 2
- 3
- 4
- 5
进入临界区:
/**********************************************************************************************************
** Function name: tTaskEnterCritical
** Descriptions : 进入临界区
** parameters : 无
** Returned value : 进入之前的临界区状态值
***********************************************************************************************************/
uint32_t tTaskEnterCritical (void)
{
uint32_t primask = __get_PRIMASK();
__disable_irq();// CPSID I
return primask;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
文章来源: xuesong.blog.csdn.net,作者:内核笔记,版权归原作者所有,如需转载,请联系作者。
原文链接:xuesong.blog.csdn.net/article/details/79256767
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)