第十二周 第二天 2020-01-14

FreeRTOS任务与中断

内核控制函数
任务挂起和恢复API函数

中断是微控制器一个很常见的特性,中断由硬件产生,当中断产生以后CPU 就会中断当前的流程转而去处理中断服务。Cotex-M3 和 M4 的 NVIC 最多支持 240 个 IRQ(中断请求)、 1 个不可屏蔽中断(NMI)、 1 个Systick(滴答定时器)定时器中断和多个系统异常。与中断有关的寄存器都在NVIC和SCB中。

中断屏蔽寄存器有三个:

PRIMASK  //所有中断

FAULTMASK //系统异常

BASEPRI  //屏蔽大于给定值

第十二周 第二天 2020-01-14_第1张图片

开中断函数:

portENABLE_INTERRUPTS()

关中断函数:

portDISABLE_INTERRUPTS()



FreeRTOS时间管理与消息队列:

系统延时函数有:

      vTaskDelay()

u vTaskDelayUntil()

u xTaskGetTickCount()

u xTaskGetTickCountFromISR()

队列是为了任务与任务、任务与中断之间的通信而准备的,可以在任务与任务、任务与中断之间传递消息,队列中可以存储有限的、大小固定的数据项目。任务与任务、任务与中断之间要交流的数据保存在队列中,叫做队列项目。队列所能保存的最大数据项目数量叫做队列的长度,创建队列的时候会指定数据项目的大小和队列的长度。由于队列用来传递消息的,所以也称为消息队列。FreeRTOS 中的信号量的也是依据队列实现的!

队列创建函数
入队函数
出队函数
vTaskList

你可能感兴趣的:(第十二周 第二天 2020-01-14)