FreeRTOS
文章平均质量分 91
冰冰糖堂
这个作者很懒,什么都没留下…
展开
-
Free的事件标志组
一、简介使用信号量来同步的话任务只能与单个的事件或任务进行同步,但是有时候需要多个事件或者多个任务进行同步,这时候就不适合使用信号量。1、事件位事件位用来表示某个事件是否发生,事件位通常用作事件标志。比如以下的几个例子:当收到一条消息并且把这条消息处理掉以后就可以将某个位(标志)置 1,当队列中没有消息需要处理的时候就可以将这个位(标志)置 0。当把队列中的消息通过网络发送输出以后就可以将某个位(标志)置 1,当没有数据需要从网络发送出去的话就将这个位(标志)置 0。现在需要向网络中发送一个心原创 2022-04-27 11:06:08 · 185 阅读 · 0 评论 -
FreeRTOS的软件定时器
一、软件定时器的简介定时器是每块MCU都有的部件,定时器功能十分强大,可以做很多事,但是缺点就是定时器的数量有限。FreeRTOS为我们提供了软件定时器,相对于硬件定时器来说,没有那么精确,但是对于普通的精度要求不高的周期性处理的任务来说够了。1、软件定时器的概述软件定时器允许设置一段时间,当设置的时间到达之后就执行指定的功能函数,被定时器调用的这个功能函数叫做定时器的回调函数。回调函数的两次执行间隔叫做定时器的定时周期,简而言之,当定时器的定时周期到了以后就会执行回调函数。2、注意事项软件定时器原创 2021-09-23 18:39:22 · 330 阅读 · 0 评论 -
FreeRTOS的信号量
一、信号量简介信号量是操作系统中重要的一部分,信号量一般用来进行资源管理和任务同步,FreeRTOS中信号量又分为二值信号量、计数型信号量、互斥信号量和递归互斥信号量。不同的信号量其应用场景不同,但有些应用场景是可以互换着使用的。二、二值信号量简介二值信号量其实就是一个只有一个队列项的队列,这个特殊的队列要么是满的,要么是空的。二值信号量通常用于互斥访问或任务同步,二值信号量和互斥信号量非常类似,但是还是有一些细微的差别,互斥信号量拥有优先级继承机制,二值信号量没有优先级继承。因此二值信号另更适原创 2021-09-23 14:59:47 · 5102 阅读 · 0 评论 -
FreeRTOS消息队列
一、队列简介队列是为了任务与任务、任务与中断之间的通信而准备的,可以在任务与任务、任务与中断之间传递消息,队列中可以存储有限的、大小固定的数据项目。1、队列存储通常队列采用 先进先出(FIFO) 的存储缓冲机制,也就是往队列发送数据的时候(也叫入队)永远都是发送到队列的尾部,而从队列提取数据的时候(也叫出队)是从队列的头部提取的。但是也可以使用 LIFO 的存储缓冲,也就是后进先出FreeRTOS 中的队列也提供了 LIFO 的存储缓冲机制。FreeRTOS中使用队列传递消息的话虽然使用的是数据原创 2021-09-17 15:03:17 · 366 阅读 · 0 评论 -
FreeRTOS系统内核控制函数与常用函数
FreeRTOS 中有一些函数只供系统内核使用,用户应用程序一般不允许使用,这些 API 函 数就是系统内核控制函数。内核控制的一些功能需要移植层提供,为了方便移植,这些API函数用宏来实现,比如上下文切换、进入和退出临界区、禁止和使能可屏蔽中断。内核控制函数还包括启动和停止调度器、挂起和恢复调度器以及用于低功耗模式的调整系统节拍函数。函数描述taskYIELD()任务切换。taskENTER_CRITICAL()进入临界区,用于任务中。taskEXIT_CRITI.原创 2021-09-10 10:51:09 · 376 阅读 · 0 评论 -
FreeRTOS中断配置和临界段
一、Cortex-M 中断中断简介中断是微控制器一个很常见的特性,中断由硬件产生,当中断产生以后 CPU 就会中断当前的流程转而去处理中断服务,Cortex-M 内核的 MCU 提供了一个用于中断管理的嵌套向量中断控制器(NVIC)。中断管理简介Cortex-M 处理器有多个用于管理中断和异常的可编程寄存器,这些寄存器大多数都在NVIC和系统控制块(SCB)中,CMSIS 将这些寄存器定义为结构体。以 STM32F103 为例,打开core_cm3.h,有两个结构体,NVIC_Type 和原创 2021-09-08 16:17:24 · 630 阅读 · 0 评论