• 2025-01-07STM32F407ZG移植FreeRTOS(在有LVGL的基础上进行移植,附源码)
    目录1.准备资料1.1FreeRTOS源码获取1.2基础工程获取1.3精简FreeRTOS源码2.移植步骤2.1添加FreeRTOS源码2.1.1添加源码2.1.3添加路径2.2.添加FreeRTOSConfig.h配置文件2.2.1生成FreeRTOSConfig.h文件2.2.2配置FreeRTOSConfig.h文件2.3修改系统文件2.3.1修改sys.
  • 2025-01-02在FreeRTOS中使用HAL_UART_Transmit函数时
    voidSeria2_Printf(char*format,...){ charString[200]; va_listarg; va_start(arg,format); vsprintf(String,format,arg); va_end(arg); HAL_UART_Transmit(&huart2,(uint8_t*)&String,strlen(String),HAL_MAX_DELAY);}在FreeRTOS中使用HAL_UART_Tra
  • 2025-01-01FreeRTOS从入门到精通 第五章(中断管理)
    参考教程:【正点原子】手把手教你学FreeRTOS实时系统_哔哩哔哩_bilibili一、中断的回顾与深入1、概述(1)让CPU打断正常运行的程序,转而去处理紧急的事件(程序),这个过程就叫中断,受理的事件称为中断服务程序。(2)中断执行机制,可简单概括为三步:①外设产生中断请求(GPIO外部中断、定时
  • 2024-12-30RISC-V 安全操作系统
    1.SELTheseL4MicrokernelAnIntroduction2.ZAYASecureOSZAYAOSensureaprotectedenvironment,defendingagainstexternalattacksandmeetingsafetyrequirements.Inaddition,ZAYAOSemploysadvancedsecuritymechanismsandcontinuousmonitori
  • 2024-12-29FreeRTOS简单移植
    Freertos源码下载官网下载:FreeRTOS™-FreeRTOS™(慢)仓库下载: GitCode-全球开发者的开源社区,开源代码托管平台国内镜像下载:Gitee极速下载/freertos(快)Freertos详细目录结构和作用Freertos系统移植准备好Freertos源码和一个能使用的STM32配置工程。在项目工程中创建
  • 2024-12-28深入FreeRTOS内核——第一章、FreeRTOS基础:核心概念与入门指南
    深入FreeRTOS内核——第一章、FreeRTOS基础:核心概念与入门指南文章目录深入FreeRTOS内核——第一章、FreeRTOS基础:核心概念与入门指南前言一、了解FreeRTOS1.1FreeRTOSPort1.2构建FreeRTOS1.3FreeRTOSConfig.h1.4官方发行版1.5通用FreeRTOS源文件1.6特定FreeRTO
  • 2024-12-20freertos入门---堆的概念
    freertos入门—堆的概念  堆就是一块空闲的内存。下面举个例子更好的理解堆的概念:  堆是一块空闲的内存,我们可以定义一个数组charheap_buf[1024],可以看到该数组就是一个空闲的内存,我们只需要在它上面实现内存的分配和释放那么它就一个堆。charheap_buf[1024]; 
  • 2024-12-16AI问答之FreeRTOS
    一、freertos源码中task.c文件如此大,里面都写了什么?FreeRTOS的 task.c 文件是FreeRTOS内核的核心实现文件之一,包含了任务管理、调度、时间管理等关键功能的实现。由于FreeRTOS是一个功能丰富的实时操作系统(RTOS),task.c 文件的代码量较大,通常在数千行左右。以下是 task.c
  • 2024-12-14FreeRTOS-(2)-队列
    一、什么是队列?    队列又称消息队列,是一种常用于任务间通信的数据结构,队列可以在任务与任务间、中断和任务间传递信息。    为什么不使用全局变量?    如果使用全局变量,任务1 修改了变量a,等待任务3处理,但任务3处理速度很慢,在
  • 2024-12-13Freertos低功耗-Tickless模式
    此篇文章在2023年5月15日被记录很多嵌入式设备都对功耗有严格的控制,特别是消费电子对功耗的控制更为严格,Tickless是freertos中的一个可选模块,主要实现低功耗功能STM32类芯片的低功耗模式STM32之类的arm芯片通常有三种低功耗模式:睡眠模式(sleep):仅CPU时钟关闭,其他所有外
  • 2024-12-13Freertos-CPU使用率统计
    此篇文章在2023年5月23日被记录RTOS-任务CPU占用统计在项目开发过程中,有时会需要查看各个任务的资源占用,需要用到rtos的CPU使用统计,其原理也很简单,就是开一个频率特别高的定时器,rtos在运行过程累计各个任务的实际占用时长,继而统计显示FreeRTOSConfig配置//计算CPU使用率#
  • 2024-12-09FreeRTOS学习随记-3
    09-2_信号量的常规使用二进制信号量实现互斥要先把信号量写入计数型信号量实现同步但是要注意,让ready状态/读取信号量的任务的优先级高于running态/写信号量的任务,或者让写信号量的任务在写完主动让出10-1_互斥量的理论讲解正常实现互斥要谁上锁谁解锁,所以引入互斥
  • 2024-12-09FreeRTOS学习随记-4
    13-1定时器的理论介绍Tick中断调用timer函数的回调函数--Linux在某个任务中执行--RTOS把任务写入队列通知守护任务,队列要是满了需要等待定时器的超时函数在守护任务中执行13-2定时器的一般使用启动定时器实际上是把任务发给队列守护任务的优先级更高会切换到守护任务,
  • 2024-12-06FreeRTOS 中断与任务优先级关系及中断延迟处理(建议收藏!!!)
    一、引言在FreeRTOS操作系统中,中断和任务是构建系统功能的重要组成部分。理解它们之间的优先级关系以及特殊的中断处理机制,如中断延迟处理,对于开发高效、稳定且具有良好实时性的嵌入式系统至关重要。本文将详细探讨这些概念,并提供相关代码示例以加深理解。二、中断与任务
  • 2024-12-06Freertos学习笔记(五)
    此篇文章在2022年2月12日被记录二进制信号量计数型信号量Mutex互斥量递归互斥量第十四课二进制信号量#include"freertos/semphr.h"xSemaphoreCreateBinary();SemphoreHandle_tHandle;//二进制信号量Handle=xSemaphoreCreateBinary();//创建xSemaphoreGive(Hand
  • 2024-12-06Freertos学习笔记(四)
    此篇文章在2022年2月12日被记录队列集合、队列邮箱、软件定时器第十一课队列集合多个Task写队列数据,一个Task读取队列数据QueueSet新建两个消息队列,句柄给两个发送函数,新建一个QSet句柄使用xQueueAddToSet分别添加两个消息队列到Qset在接收函数中,算了···这个是用的
  • 2024-12-06Freertos学习笔记(一)
    此篇文章在2022年1月29日被记录系统启动流程、Task创建与删除、Task参数传入本freertos笔记基于esp32-idf开发第一课系统启动流程第一阶段bootloader第二阶段bootloader第三阶段应用程序入口在components文件夹下有bootloader两个阶段的源代码、也有freertos的源代码
  • 2024-12-05全网最迅速的移植FreeRTOS到天空星GD32F407VET6
    注:最最最重要的若出现如图所示问题,请按第二张图片操作1、添加FreeRTOS源码    将我分享的文件复制粘贴到需要移植的开发板例程文件中2、向工程分组中添加文件打开基础工程,新建分组FreeRTOS_CORE和FreeRTOS_PORTABLE,然后向这两个分组中添加文件,如图所示:3、添
  • 2024-11-29深入理解 FreeRTOS 队列集(建议收藏!!!)
    在FreeRTOS操作系统这个“大家庭”里,队列集扮演着一个特殊的“管家”角色,它让多个队列之间的协作变得井井有条。一、队列集的基本概念队列集就像是一个专门用来存放其他队列“钥匙”(句柄)的盒子。假设我们有队列A这个“小仓库”,它能存放LengthA数量的“宝贝”(数
  • 2024-11-29STM32移植FreeRTOS
    移植FreeRTOS到stm32单片机过程比较简单,以下纯做记录。1,打开已有的项目的STM32CUBMX设置 2,在“Pinout&Configuration”页面中,打开“MiddlewareandSoftwarePacks”中间件选项 3,在中间件选项中,①选中“FREERTOS”,打开FreeRTOS设置;②"Interface"接口选中“CMSIS_V1”;③
  • 2024-11-28STM32cubeMX配置FreeRTOS生成代码--完成一个简单测试(Led闪烁和向串口发送“hello!world”)
    一、STM32cubeMX中相关配置(首先我用的STM32板子是STM32F103VBT6,板子不同,配置会略有不同,仅作参考!)打开STM32cubeMX,新建工程,选择对应板子型号:1.配置微控制器的时钟系统HighSpeedClock(HSE):高速时钟源,这里选择的是“Crystal/CeramicResonator”,意味着使用外部晶体
  • 2024-11-27FreeRTOS 内存管理
    文章目录`heap_x.c`文件及应用场景heap_1.c功能优点缺点应用场景示例配置heap_2.c功能优点缺点应用场景示例配置heap_3.c功能优点缺点应用场景示例配置heap_4.c功能优点缺点应用场景示例配置heap_5.c功能优点缺点应用场景示例配置heap_x.c文件及应用场景Free
  • 2024-11-27FreeRTOS学习记录(二)创建删除任务
    前言代码生成软件:STM32CubeMX集成开发环境:CLion开发板:robomasterA型开发板(STM32F427IGH6)手中的C型开发板被拿去干别的事情了,就找了个A型的开发板代替,在STM32CubeMX界面的配置除了选择STM32F427IGH6的开发板外,其他没有任何区别,包括在CLion的CMake文件中的配置也一模一样,参
  • 2024-11-26《解读 freeRTOS queue.c 源码:探寻任务间高效通信的核心机制》(建议收藏)
    摘要:文章介绍了FreeRTOS中的队列机制,包括队列的基本概念、创建与初始化方式、数据操作(发送、接收、查看等)、状态查询与管理、在互斥量与信号量中的应用以及队列集的相关操作建议:作者在这里建议,结合queue.c源码来看效果会更好一下FreeRTOS队列:任务间通信与同步的高效利器
  • 2024-11-25FreeRTOS学习随记-2
    05-2_创建任务函数的进一步实验创建的任务传入handle,之后通过handle引用任务或者删除任务。空闲任务释放堆和栈同一个函数可以创建不同的任务,因为他们对应的栈不同,每个任务有自己的栈,互不影响如何确定任务需要多大的栈空间需要你研究直播四小时讲解栈任务--定义运行起