• 2024-10-05freeRTOS源码解析4--tasks.c 7
    4.2.20空闲任务调用1--prvCheckTasksWaitingTermination删除所有终止的任务,释放资源。简单描述就是清空xTasksWaitingTermination列表,释放资源,递减uxCurrentNumberOfTasks和uxDeletedTasksWaitingCleanUp。接口:staticvoidprvCheckTasksWaitingTermination(void)接口代码如
  • 2024-09-30FreeRTOS调度器与任务
    一.调度器1.调度器开启        任务调度器,就是函数vTaskStartScheduler(),函数的源代码比较长,大致了解原理就可以,工作流程大致如下:创建空闲任务,空闲任务的优先级为最低。如果使用软件定时器则再创建定时器服务任务。关闭中断。变量xSchedulerRunning设置为pdTRUE,
  • 2024-09-30CMSIS-RTOS V2封装层专题视频,一期视频将常用配置和用法梳理清楚,适用于RTX5和FreeRTOS(2024-09-28)
    【前言】本期视频就一个任务,通过ARM官方的CMSISRTOS文档,将常用配置和用法给大家梳理清楚。对于初次使用CMSIS-RTOS的用户来说,通过梳理官方文档,可以系统的了解各种用法,方便大家再进一步的自学或者应用,起到授人以渔的作用。更深入的可以看之前分享的RTOS运行机制,任务管理,上下
  • 2024-09-27freeRTOS源码解析4--tasks.c 6
    4.2.14退出阻塞--xTaskAbortDelay接口:BaseType_txTaskAbortDelay(TaskHandle_txTask)形参1:xTask,想要退出阻塞态的任务;返回:pdPASS:退出成功;pdFAIL:退出失败。1BaseType_txTaskAbortDelay(TaskHandle_txTask)2{3TCB_t*pxTCB=xTask;4BaseType_tx
  • 2024-09-25FreeRTOS GD32L233移植 过程备忘1 6837E+开始系统前进硬件错误终端
    条件:MDK 手动添加源码版本2406.1长期版本过程中问题1、报6837E错。2、在开始系统前进硬件错误。1、.\output\Project.axf:Error:L6837E:Illegaldatamappingsymbolfoundinexecute-onlysectionportasm.o(.text.vStartFirstTask)atoffset0x18.解决办法2、
  • 2024-09-22freeRTOS源码解析4--tasks.c 5
    4.2.13继续任务--vTaskResume接口:voidvTaskResume(TaskHandle_txTaskToResume)形参1:xTaskToResume,想要继续的任务handle;首先是vTaskResume调用的一个内部函数:staticBaseType_tprvTaskIsTaskSuspended(constTaskHandle_txTask),用于检查任务是否是挂起状态,只有挂起的
  • 2024-09-22手动移植FreeRTOS到stm32
    手动移植FreeRTOSstm32cubemx内置了freertos,如果不想手动移植,可以参考这个视频:https://www.bilibili.com/video/BV1To4UeVEHA/但手动移植可以加深自己的理解,可以参考下面这个视频:https://www.bilibili.com/video/BV1vUpje9Ej2?p=11以下内容是手动移植的过程记录使用stm32cub
  • 2024-09-16龙芯+FreeRTOS+LVGL实战笔记(新)——08RGB闪烁灯
            本专栏是笔者另一个专栏《龙芯+RT-Thread+LVGL实战笔记》的姊妹篇,主要的区别在于实时操作系统的不同,章节的安排和任务的推进保持一致,并对源码做了完善与优化,各位可以先到本人主页下去浏览另一专栏的博客列表(目前已撰写36篇,图1所示),再决定是否订阅。此外,也可以前
  • 2024-09-10freeRTOS源码解析4--tasks.c 4
    4.2.9周期任务用的延迟--xTaskDelayUntil接口:BaseType_txTaskDelayUntil(TickType_t*constpxPreviousWakeTime,constTickType_txTimeIncrement)形参1:pxPreviousWakeTime,上一次唤醒时间,第一次需要用接口xTaskGetTickCount()获取;形参2:xTimeIncrement,想要延迟的时间。
  • 2024-09-08freeRTOS源码解析4--task.c 3
    4.2.6任务删除--vTaskDelete这个接口并不复杂,主要是在判断是否要放到xTasksWaitingTermination列表里,还是直接处理。1voidvTaskDelete(TaskHandle_txTaskToDelete)2{3TCB_t*pxTCB;4BaseType_txDeleteTCBInIdleTask=pdFALSE;5BaseTyp
  • 2024-09-08龙芯+FreeRTOS+LVGL实战笔记(新)——03完成驱动的移植
            本专栏是笔者另一个专栏《龙芯+RT-Thread+LVGL实战笔记》的姊妹篇,主要的区别在于实时操作系统的不同,章节的安排和任务的推进保持一致,并对源码做了改进和优化,各位可以先到本人主页下去浏览另一专栏的博客列表(目前已撰写36篇,图1所示),再决定是否订阅。此外,也可以前
  • 2024-09-08FreeRTOS 队列 Queue 源码解析
    目录一、队列1、队列结构体2、队列类型二、队列相关操作1、初始化1.1静态创建队列1.2动态创建队列1.3队列的初始化1.4队列的重置2、队列的发送2.1任务级入队函数2.1.1入队函数2.1.2队列锁2.1.3portYIELD_WITHIN_API2.2中断级入队函数3、任务的读取3.1任务
  • 2024-09-07深入剖析 FreeRTOS:实时操作系统的卓越之选
    摘要: 本文全面深入地探讨了FreeRTOS,这一广泛应用于嵌入式系统的实时操作系统。详细阐述了FreeRTOS的起源与发展历程,介绍其基本概念、特点及工作原理。深入分析了FreeRTOS的内核架构、任务管理、内存管理、中断处理等关键组成部分。探讨了FreeRTOS在物联网、工业控制、
  • 2024-09-06FreeRTOS实现命令交互行的功能
    背景说明:   在实际工作中,有时候我们希望打印系统信息,但是太多信息会导致很乱看不清,或者我们希望设备一般情况下不要打印信息,所以我们的需求就是可以通过发送一条指令给设备,然后设备打印对应的信息。一.添加文件首先將ZNS文件夹中的上述文件复制到自己
  • 2024-09-05freeRTOS面试题目 面经 单片机面经汇总MCU RTOS常见面试经验汇总 freeRTOS消息队列 信号量 源码等题目
    常见rtos部分Linux题目汇总FreeRtos面经30题前后台程序与实时操作系统的区别是什么?实时系统的基本特性有哪些?什么是不可剥夺型内核?它的特点是什么?可剥夺型内核的定义及适用场景是什么?什么是可重入型函数?它有什么特点?使用可剥夺型内核时,为什么不应直接使用不可重入型函数
  • 2024-09-05FreeRtos实时系统:基础知识
    FreeRtos实时系统:基础知识一.任务调度简介1.抢占式调度2.时间片调度二.任务状态1.FreeRtos中任务存在4种状态2.任务状态列表一.任务调度简介调度器就是使用相关的调度算法来决定当前需要执行的哪个任务FeeeRtos一共支持三种任务调度方式:抢占式调度:主要针对优
  • 2024-09-05【FreeRTOS】事件组实验-改进姿态控制
    目录0前言1事件组实验_改进姿态控制2改进思路2.1创建事件2.2等待事件2.3设置事件2.4Debug2.5设置MPU6050寄存器3总结0前言学习视频:【FreeRTOS入门与工程实践--由浅入深带你学习FreeRTOS(FreeRTOS教程基于STM32,以实际项目为导向)】【精准空降到00
  • 2024-09-04freeRTOS源码解析4--task.c 2
    4、task.c解析时隔两年,还是决定继续把这个系统解析完成,有始有终。不过这次源码又从官网上下载了最新的,可能和我以前看的略有区别,但应该基本不影响理解。接下来正式开始。4.1.3新增或是遗漏的两个宏1/*ReturnspdTRUEifthetaskisactivelyrunningandnotsch
  • 2024-09-03【FreeRTOS】事件组的本质
    目录0前言1事件组讲解2事件组概念与操作2.1事件组的概念2.2事件组的操作3事件组函数3.1创建3.2删除3.3设置事件3.4等待事件3.5同步点4示例:广播5示例:等待任意一个事件6示例:等待多个事件都发生0前言学习视频:【FreeRTOS入门与工程实践--由浅
  • 2024-08-28【FreeRTOS+CubeMX】入门(三)--文件结构与参数配置
    文章目录FreeRTOS文件组成和基本原理文件构成基础知识![请添加图片描述](https://i-blog.csdnimg.cn/direct/a7a87a1201a448bb9ffa1dcd1e58a8ab.png)FreeRTOS配置及功能裁剪configparamters参数讲解FreeRTOS文件组成和基本原理此文章将详细讲解FreeRTOS的文件结构
  • 2024-08-27FreeRTOS不同内存管理策略的区别
    来源于正点原子《STM32F1FreeRTOS开发手册V1.1》第二十章内存管理20.7heap_5内存分配方法(P391):heap_1最简单,但是只能申请内存,不能释放。heap_2提供了内存释放函数,用户代码也可以直接调用函数pvPortMalloc()和vPortFree()来申请和释放内存,但是heap_2会导致内存碎片的
  • 2024-08-27FreeRTOS+CubeMX入门(二)--使用cubemx生成FreeRTOS工程
    目录CubeMX创建FreeRTOS入门实例基础配置第一个项目-驱动OLED中断配置文件的简单认识主函数代码简单分析编写业务函数实验效果CubeMX创建FreeRTOS入门实例该笔记记录使用CubeMX创建FreeRTOS工程的粗略讲解,快速构建一个工程,对FreeRTOS有一个初步认识选择CubeID
  • 2024-08-26FreeRTOS 快速入门(八)之任务通知
    目录一、任务通知1、基本概念2、优势及限制3、通知状态和通知值二、任务通知的使用1、xTaskNotifyGive/ulTaskNotifyTake2、xTaskNotify/xTaskNotifyWait3、xTaskNotifyAndQuery一、任务通知1、基本概念FreeRTOS从V8.2.0版本开始提供任务通知这个功能,每个任务
  • 2024-08-25基于STM32F103的FreeRTOS系列(十一)·信号量·二值信号量与计数信号量详细使用以及移植教程
    目录1. 信号量简介1.1 同步和互斥1.1.1 同步1.1.2 互斥1.1.3 总结1.2 分类1.2.1 二值信号量1.2.2 计数信号量1.2.3 互斥信号量1.2.4 递归信号量2. 信号量控制块3. 常用信号量API函数3.1 创建信号量函数3.1.1 创建二值信号量 xSe
  • 2024-08-22队列操作(深入理解FreeRTOS队列之队列实战)
    文章目录一、队列的操作二、学习总结在FreeRTOS中,队列的本质是环形缓冲区。一、队列的操作1、创建队列2、写队列3、读队列详细可看此篇博客:FreeRTOS——队列(基于百问网DshanMCU-F103实现挡球板游戏改造)-CSDN博客基于链表解析队列的使用:代码示例:#include"