1、一个任务恢复运行:

(1)恢复一个任务的运行:将一个任务从挂起态恢复到就绪态,只有通过函数vTaskSuspend()设置为挂起态的任务才能使用vTaskResume()恢复,函数原型为void vTaskResume(TaskHandle_t xTaskToResume),xTaskToResume要恢复任务的句柄。

(2)中断服务函数中恢复一个任务的运行:用于中断服务函数中恢复一个任务,函数的原型如下:

BaseType_t xTaskResumeFromISR(TaskHandle_t xTaskToResume),xTaskToResume是要恢复任务的句柄。返回值为pdTRUE:恢复运行的任务的任务优先级等于或高于正在运行的任务(被中断打断的任务),这意味着在退出中断服务函数以后必须进行一次上下文切换。返回值为pdFALSE:恢复运行的任务的任务优先级低于当前正在运行的任务(被中断打断的任务),这意味着在退出中断服务函数以后不需要进行上下文切换。

2、中断是微控制器一个很常见的特性,中断有硬件产生,当中断产生以后,CPU就会中断当前的流程转而去处理中断服务,Cotex-M内核的MCU提供了一个用于中断管理的嵌套向量中断控制器(NVIC)。

3、Cotex-M3和M4的NVIC最多能支持240个IRQ(中断请求)、1个不可屏蔽中断(NMI)、一个Systick(滴答定时器)中断和多个系统异常。

4、与中断有关的寄存器都在NVIC和SCB中。Cotex-M3\M4中的异常就是中断。

5、在使用FreeRTOS的时候,最关心的是使用系统异常中的第14号系统异常--PendSV(为系统设备而设的“可悬挂请求”)和第15号系统异常SysTick(系统滴答定时器--也是周期性溢出的时基定时器)。系统异常从0号-15号。外部中断从16号到225号共240个中断,如下图所示:

6、Cortex-M3/M4中断优先级的数值越小,则优先级越高。

7、每一个中断都有一个寄存器(8位的寄存器)去设置对应的优先级。
8、Cortex-M3/M4有3个系统异常,复位、NMI以及硬fault,它们有固定的优先级(不可编程),并且它们的优先级号是负数,从而高于所有其它异常。所有其它异常的优先级则都是可编程的(但不能编程为负数)。

9、复位的优先级为最高、NMI第二(不可屏蔽中断)、硬fault第三,注:这三个系统异常不可编程。

10、中断屏蔽寄存器有三个:PRIMASK、FAULTMASK、BASEPRI。

11、FreeRTOS操作的屏蔽中断是BASEPRI。

12、FreeRTOS任务优先级数值越小,优先级越低。

待续。。。。。。

学习正点原子讲解FreeRTOS中断管理心得和cortex-M3权威指南笔记相关推荐

  1. (第16-17讲)STM32F4单片机,FreeRTOS中断管理简介【视频笔记、代码讲解】【正点原子】【原创】

    文章目录 视频笔记 实验现象 代码讲解(个人注释) 一个弹幕的问题? PendSV和Systick中断优先级最低? demo函数 定时器函数 视频笔记 老生常谈 老生常谈 老生常谈,FreeRTOS只 ...

  2. 正点原子STM32-串口中断服务函数USART1_IRQHandler关于USART_RX_STA的学习笔记

    目录 USART1_IRQHandler 中断服务函数代码 介绍 函数USART_GetITStatus 每个状态描述 USART_RX_STA 接收状态标记的思考 USART1_IRQHandler ...

  3. FreeRTOS中断管理

      嵌入式实时系统需要对整个系统环境产生的事件作出反应.这些事件对处理时间和响应时间都有不同的要求.事件通常采用中断方式检测,中断服务例程(ISR)中的处理量应当越短越好.   注意:只有以" ...

  4. Android编程权威指南笔记3:Android Fragment讲解与Android Studio中的依赖关系,如何添加依赖关系

    Android Fragment 当我在学习时,了解了Fragment词汇 Fragment是一种控制器对象,我就把所了解的简单说一下.activity可以派fragment完成一些任务,就是管理用户 ...

  5. 正点原子FreeRTOS(上)

    更多干货推荐可以去牛客网看看,他们现在的IT题库内容很丰富,属于国内做的很好的了,而且是课程+刷题+面经+求职+讨论区分享,一站式求职学习网站,最最最重要的里面的资源全部免费!!!点击进入------ ...

  6. 正点原子STM32 UCOSiii学习笔记——时间片轮转调度

    在学习正点原子视频的时间片轮转调度时,发现一个问题:当设置时间片为2个10ms时串口收到的消息为图1所示,Tsak1输出5次以后(未执行换行)2个时间片用完,Task2开始执行,输出5次后回到Task ...

  7. 正点原子stm32MP157 点亮LED程序

    学习正点原子开发板,发现点亮LED个程序并没有讲解的特别详细.我只看了驱动开发指南,不知道是别的文档讲过还是说后面有更好的实现方法,这个程序只是入门.不过既然是学习就仔细一点,至少把不明白的程序搞懂. ...

  8. 移植正点原子linux内核

    目录 前言 一.创建VSCODE移植工程 二.修改根目录下Makefile 三.添加自己的linux开发板 1.创建linux开发板配置文件 2.创建linux开发板设备树文件 3.修改编译文件 四. ...

  9. 正点原子第四期环境搭建

    正点原子第四期环境搭建 1.网络IP相关知识 1.1.子网掩码 1.2.同一网段 1.3.举例说明 1.4.主机地址计算方式 2.环境搭建 2.1.虚拟机创建 2.2.网络配置 2.3.网络挂载 2. ...

最新文章

  1. 进程和程序:编写shell——《Unix/Linux编程实践教程》读书笔记(第8章)
  2. shell排序-c语言
  3. 聊聊WebRTC网关服务器1:如何选择服务端端口方案?
  4. php mysqldb 数据库切换,Python MySQLdb模块连接操作mysql数据库实例
  5. 开源之旅之开源企业软件采购指南
  6. 文件服务器登入,密钥文件登录云服务器
  7. mssql无法通过ip连接mysql_解决ADO通过指定IP地址连接到SQLServer数据库时总是失败问题...
  8. McAfee:僵尸网新威胁远甚Conficker
  9. python开发_filecmp
  10. 合泰单片机点灯c语言程序,ht66f018合泰单片机暖风机的C语言源程序
  11. 圆形区域函数可视化和泊松方程求解
  12. ICLR 2022论文双盲通过却被爆抄袭:数据算法全部照搬,第二页几乎空白
  13. ftp服务器的搭建与使用
  14. Android——Hander+Service,实现后台长期周期性定时任务
  15. flutter从入门到熟练全套学习视频教程
  16. 计算机网络中 89 个常见的概念
  17. SpringBoot 整合 Sharding-JDBC
  18. wps的高亮怎么用_WPS表格高亮显示重复项功能的使用及其不足介绍与改进
  19. 实现一个地铁线路站点
  20. QCA7000/7005HomePlugGreenPHY模块<树莓派开发套件>linux驱动移植开发设计

热门文章

  1. 使用sizeof计算类的大小
  2. Ubuntu18.04安装pymol
  3. Android启动过程以及各个镜像的关系
  4. python用os模块自动打开软件_Python实现自动打开电脑应用的示例代码
  5. jmeter常用插件介绍
  6. YOLOv3: 训练自己的数据(绝对经典版本1)
  7. eclipse 配置打开工作空间
  8. AWS CSAA -- 04 AWS Object Storage and CDN - S3 Glacier and CloudFront(三)
  9. struts2(三) 输入校验和拦截器
  10. 话说:学好C语言,走遍天下都不怕