- 1、本文档共34页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第15章 FreeRTOS 临界段和开关中断
第15章 FreeRTOS 临界段和开关中断
本章教程为大家讲解两个重要的概念,FreeRTOS 的临界段和开关中断。
本章教程配套的例子含 Cortex-M3 内核的 STM32F103和 Cortex-M4 内核的 STM32F407 以及 F429。
15.1 临界段
15.2 任务代码临界段处理
15.3 中 服务程序临界段处理
15.4 开关中断的实现
15.5 BSP 板级支持包中开关中断的特别处理
15.6. 实验例程说明
15.7 总结
15.1 临界段
15.1 临界段
代码的临界段也称为临界区 ,一旦这部分代码开始执行,则不允许任何中断打 。为确保临界段代码
的执行不被中断,在进入临界段之前须关中断,而临界段代码执行完毕后,要立即开中断。
FreeRTOS 临界段相关知识补充
FreeRTOS 的源码中有多处临界段的地方,临界段虽然保护 关键代码的执行不被打断,但也会
影响系统的实时性。比如此时某个任务正在调用系统API 函数,而且此时中断正好关闭 ,也就是进
入到了临界区中,这个时候如果有一个紧急的中断事件被触发,这个中断就不能得到及时执行,必须
等到中断开启才可以得到执行,如果关中断时间超过 紧急中断能够容忍的限度,危害是可想而知的。
FreeRTOS 源码中就有多处临界段的处理,跟 FreeRTOS 一样 ,uCOS-II 和 uCOS-III 源码中都是有
临界段的 ,而RTX 的源码中不存在临界段。另外 ,除了 FreeRTOS 操作系统源码所带的临界段以外,用
户写应用的时候也有临界段的问题,比如以下两种:
读取或者修改变量(特别是用于任务间通信的全局变量)的代码,一般来说这是最常见的临界代码。
调用公共函数的代码,特别是不可重入的函数,如果多个任务都访问这个函数,结果是可想而知的。
总之,对于临界段要做到执行时间越短越好,否则会影响系统的实时性。
武汉安富莱电子有限公司WWW.ARMFLY.COM
武汉安富莱电子有限公司WWW.ARMFLY.COM
安富莱STM32-V6开发板FreeRTOS教程
安富莱STM32-V6开发板FreeRTOS教程
15.2 任务代码临界段处理
15.2 任务代码临界段处理
FreeRTOS 任务代码中临界段的进入和退出主要是通过操作寄存器 basepri 实现的。进入临界段前操
作寄存器 basepri 关闭了所有小于等于宏定义 configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY
所定义的中 优先级 ,这样临界段代码就不会被中 干扰到,而且实现任务切换功能的 PendSV 中断和滴
答定时器中 是最低优先级中断,所以此任务在执行临界段代码期间是不会被其它高优先级任务打断的。
退出临界段时重新操作 basepri 寄存器,即打开被关闭的中 (这里我们不考虑不受 FreeRTOS 管理的更
高优先级中 )。FreeRTOS 进入和退出临界段的函数如下:
#define taskENTER_CRITICAL() portENTER_CRITICAL()
#define taskEXIT_CRITICAL() portEXIT_CRITICAL()
上面这两个函数是供用户调用的 ,其中函数 taskENTER_CRITICAL 是进入临界段 ,函数
您可能关注的文档
最近下载
- 基于51单片机的智能台灯设计.doc
- 幼儿园课件:小老鼠和泡泡糖最终.pptx
- 2024必威体育精装版国开《个人理财》形考题库.docx VIP
- 国家开放大学学前教育专业+毕业作业(幼儿园教学活动设计与指导)9.doc
- 第18课 从九一八事变到西安事变(课件).pptx VIP
- 酒店装配式装修技术规程.pdf VIP
- 2023年中国汉字听写大赛全部试题库及答案.pdf VIP
- 2024中国铁路成都局集团限公司招聘高校毕业生998人高频考题难、易错点模拟试题(共500题)附带答案详解.docx
- 人文英语3--An-absence-excuse-letter完整版.docx
- 神经工程学(天津大学)大学MOOC慕课 客观题答案.docx
文档评论(0)