1567|1

566

帖子

1

资源

一粒金砂(高级)

【RT-Thread读书笔记】6. RT-Thread 学习7章读后感 [复制链接]

【RT-Thread读书笔记】6. RT-Thread 学习7章读后感
---临界段的保护
1.临界段的定义:一段代码在执行的时候不能被中断被称为临界段。

为什么会在RTOS中定义临界段, 是因为实时操作系统中有一些优先级非常高,或者说非常重要的任务或者线程需要运行,且不能被中断。

那么什么情况下临界段会被打断?一个是系统调度,还有一个就是外部中断。在RT-Thread,系统调度,最终也是产生PendSV中断,在PendSV Handler里面实现线程的切换,所以还是可以归结为中断。既然这样,RT-Thread对临界段的保护就处理的很干脆了,直接把中断全部关了,NMI FAULT 和硬FAULT除外。

2.Cortex-M内核快速关中断指令
1.JPG

3.关中断怎么关?也是很有讲究的。
因为临界段也可能会嵌套,什么意思呢? 就是临界段中嵌套临界段,就像中断里面嵌套中断一样,这时要怎么处理呢?
RT-Thread是这样做的:
  1. ;/*
  2. ; * rt_base_t rt_hw_interrupt_disable();
  3. ; */
  4. rt_hw_interrupt_disable    PROC
  5.     EXPORT  rt_hw_interrupt_disable
  6.     MRS     r0, PRIMASK
  7.     CPSID   I
  8.     BX      LR
  9.     ENDP

  10. ;/*
  11. ; * void rt_hw_interrupt_enable(rt_base_t level);
  12. ; */
  13. rt_hw_interrupt_enable    PROC
  14.     EXPORT  rt_hw_interrupt_enable
  15.     MSR     PRIMASK, r0
  16.     BX      LR
  17.     ENDP
复制代码

二级嵌套临界代码段:
嵌套.JPG

一重临界段代码的保护:
一重临界代码段的保护.JPG

临界段的保护是比较重要的东西,理解它就行,特别是关开中断的顺序,应当充分理解这些指令以及指令的范围。

此内容由EEWORLD论坛网友传媒学子原创,如需转载或用于商业用途需征得作者同意并注明出处




回复

1208

帖子

3

资源

五彩晶圆(初级)

不错不错

回复
您需要登录后才可以回帖 登录 | 注册

相关帖子
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
    关闭
    站长推荐上一条 1/10 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2022 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表