04 2024 档案
摘要:FreeRTOS队列 在实际的应用中,常常会遇到一个任务或者中断服务需要和另外一个任务进行“沟通交流”,这个“沟通交流”的过程其实就是消息传递的过程。在没有操作系统的时候两个应用程序进行消息传递一般使用全局变量的方式,但是如果在使用操作系统的应用中用全局变量来传递消息就会涉及到“资源管理”的问题。
阅读全文
摘要:FreeRTOS时间管理 主要要了解延时函数: 相对延时:指每次延时都是从执行函数vTaskDelay()开始,直到延时指定的时间结束。 绝对延时:指将整个任务的运行周期看成一个整体,适用于需要按照一定频率运行的任务。 函数 vTaskDelayUntil()是绝对模式(绝对延时函数)。函数 vTa
阅读全文
摘要:FreeRTOS任务切换学习 所谓任务切换,就是CPU寄存器的切换。假设当由任务A切换到任务B时,主要分为两步: 1:需暂停任务A的执行,并将此时任务A的寄存器保存到任务堆栈,这个过程叫做保存现场; 2:将任务B的各个寄存器值(被存于任务堆栈中)恢复到CPU寄存器中,这个过程叫做恢复现场; 对任务A
阅读全文
摘要:FreeRTOS启动任务调度器 这部分内容就要去深入了解源码以及熟悉汇编语言的操作。依旧正点原子的视频。下面首先看开启任务调度器这部分源码: 1开启任务调度器 任务调度器用于启动任务调度器,任务调度器启动后, FreeRTOS 便会开始进行任务调度。 下面进入工程查看RTOS的源码: 1 创建空闲任
阅读全文
摘要:FreeRTOS列表和列表项 今天继续跟着正点原子学习FreeRTOS列表和列表项的内容。列表和列表项这个知识点用到了C语言链表的知识点。所以必须对C语言中的链表这个数据结构才能更好的理解这部分内容。TIPS:正点原子这节课内容讲的特别好,强烈推荐:第20讲列表和列表项简介 什么是列表和列表项 列表
阅读全文
摘要:FreeRTOS临界段代码保护和任务调度器的挂起与恢复学习 临界段代码保护 所谓临界段代码保护就是指必须完成运行,不能被打断的代码段。比如需要严格按照时序除初始化的外设:IIC、SPI,再或者因为系统自身需求和用户需求。 FreeRTOS 在进入临界段代码的时候需要关闭中断,当处理完临界段代码以后再
阅读全文
摘要:FreeRTOS中断管理以及实验 继续记录学习FreeRTOS的博客,参照正点原子FreeRTOS的视频。 ARM Cortex-M 使用了 8 位宽的寄存器来配置中断的优先等级,这个寄存器就是中断优先级配置寄存器 , STM32寄存器中并且这个寄存器只使用[7:4],所以具体表达优先级的位数如下图
阅读全文
摘要:FreeRTOS 任务挂起和恢复API函数使用 挂起的作用就是当我们需要暂停某任务时候,等过一段时间在运行,这个时候要是使用删除和重建的方法就会当时任务进行时候的变量保存的值。当需要将这个任务停止运行一段时间的将这个任务挂起,当重新进行运行这个任务就恢复运行。 vTaskSuspend()//挂起一
阅读全文