RTOS

2024/4/11 21:23:30

《野火RT-Thread内核实现与应用开发实战》笔记10. 内存管理

1. 静态内存管理 结构体 struct rt_mempool {struct rt_object parent; /**< 继承自 ipc_object 类 */ void *start_address; /**< 内存池起始地址 */rt_size_t size; /**< 内存池的大小 */rt_size_t blo…

【RTOS】快速体验FreeRTOS所有常用API(2)任务管理

目录 二、任务管理2.1 任务创建&#xff08;三种方式&#xff09;1&#xff09;动态内存分配方式创建任务2&#xff09;静态内存分配方式创建任务3&#xff09;带有任务参数方式创建任务 2.2 任务删除2.3 两种delay 二、任务管理 该部分在上份代码基础上修改得来&#xff0c;代…

Threadx tx_thread_create创建线程

文章目录线程控制块(TCB)_tx_thread_create示例线程控制块(TCB) typedef struct TX_THREAD_STRUCT {/* The first section of the control block contains criticalinformation that is referenced by the port-specific assembly language code. Any changes in this secti…

1817_ChibiOS的RT线程

全部学习汇总&#xff1a; GreyZhang/g_ChibiOS: I found a new RTOS called ChibiOS and it seems interesting! (github.com) 1. 关于线程&#xff0c;有几个概念需要弄清楚&#xff1a;声明、生命循环、延迟、线程引用、线程队列、线程时间、优先级管理、调度。 2. 两个声明…

嵌入式实时操作系统的设计与开发New(二)

轮询系统 轮询系统也称为简单循环控制系统&#xff0c;是一种最简单嵌入式实时软件体系结构模型。 在单个微处理情况下&#xff0c;系统由多个函数完成&#xff0c;每个函数负责该系统的一部分功能。 这些函数被循环调用执行&#xff0c;即它们按照一个执行顺序构成一个单向的…

RT-Thread:RT-Thread-smart移植到GD32E103

文章目录前言一、替换文件、裁剪工程二、修改各种编译错误二、移植代码三、编写main函数总结前言 之前移植过RT-Thread Nano版本&#xff0c;但是这个版本是简易版的&#xff0c;这次我们借助RTT官方RT-Thread-smart版本现有的GD32F303E-EVAL代码来移植我们的GD32E103R。 一、…

RT-Thread:RT-Thread Nano添加shell

文章目录前言一、添加Shell包二、编写串口相关程序总结前言 今天来添加Shell&#xff0c;这样就可以使用控制台对单片机进行控制了&#xff0c;文章后面有工程下载链接。 一、添加Shell包 1、打开上一个文章中移植好的工程&#xff0c;打开Manage Run-Time Environment&#…

【嵌入式软件开发 】学习笔记

本文主要记录 【嵌入式软件开发】 学习笔记&#xff0c;参考相关大佬的文章 1.RTOS 内功修炼笔记 RTOS内功修炼记&#xff08;一&#xff09;—— 任务到底应该怎么写&#xff1f; RTOS内功修炼记&#xff08;二&#xff09;—— 优先级抢占式调度到底是怎么回事&#xff1f;…

1819_ChibiOS的互斥信号与条件变量

全部学习汇总&#xff1a; GreyZhang/g_ChibiOS: I found a new RTOS called ChibiOS and it seems interesting! (github.com) 1. 关于会吃信号与条件变量的全局配置提供了4个配置信息&#xff0c;分别是互斥信号的使能、互斥信号的递归支持、条件变量的使能、条件变量的超时使…

将开源免费进行到底,ThreadX开源电脑端GUIBuilder图形开发工具GUIX Studio

上个月微软刚刚宣布将ThreadX RTOS全家桶贡献给Eclipse基金会&#xff0c;免费供大家商用&#xff0c;宽松的MIT授权方式&#xff0c;就差这个GUIX Studio没有开源了&#xff0c;而且Windows还经常检索不到&#xff0c;并且也不提供离线包。 1、软件包有点大&#xff0c;700MB…

1815_ChibiOS中的虚拟定时器

全部学习汇总&#xff1a; GreyZhang/g_ChibiOS: I found a new RTOS called ChibiOS and it seems interesting! (github.com) 1. 这个功能其实类似于FreeRTOS的设计&#xff0c;在FreeRTOS中也有这样的设计。 2. 一次性的定时器&#xff0c;这个不仅在FreeRTOS中见过&#x…

十三、队列的特性

1、队列(Queue)概述 队列可以用于"任务到任务"、"任务到中断"、"中断到任务"直接传输信息。队列涉及内容如下: 怎么创建、清楚、删除队列队列中消息如何保存怎么向队列发送数据、怎么从队列读取数据、怎么覆盖队列的数据在队列上阻塞式什么意思…

通过Linux学习RTOS

通过Linux学习RTOS 原文&#xff1a;http://blog.csdn.net/zoomdy/article/details/50549901 mingdu.zheng at gmail dot com RTOS应用很广&#xff0c;种类很多&#xff0c;例如商业的VxWorks、uC/OS等&#xff0c;开源的eCos、FreeRTOS等。我估计全球至少有上百种各种类型的…

第1章_freeRTOS入门与工程实践之课程介绍

本教程基于韦东山百问网出的 DShanMCU-F103开发板 进行编写&#xff0c;需要的同学可以在这里获取&#xff1a; https://item.taobao.com/item.htm?id724601559592 配套资料获取&#xff1a;https://rtos.100ask.net/zh/freeRTOS/DShanMCU-F103 freeRTOS系列教程之freeRTOS入…

为仿真器添加eCos多线程调试支持,GDBServer Extender 0.0.1 使用说明

可以使用RedBoot或者仿真器调试eCos系统&#xff0c;RedBoot集成的GDBStubs已经支持eCos的多线程调试&#xff0c;使用GDB命令info threads就可以读取当前的线程状态。但是使用仿真器时&#xff0c;由于仿真器不是专门针对eCos设计&#xff0c;因此通常不提供eCos系统多线程调试…

Threadx 线程调度

Threadx os 线程调度方法&#xff1a; 1&#xff0c;基于优先级的调度&#xff0c;高优先级线程抢占低优先级线程 2&#xff0c;同一优先级线程可以采用基于时间片轮转调度方式 3&#xff0c;线程主动挂起&#xff0c;其他线程获得调度执行 几种方式同时采用&#xff0c;联合进…

1818_ChibiOS的计数信号量

全部学习汇总&#xff1a; GreyZhang/g_ChibiOS: I found a new RTOS called ChibiOS and it seems interesting! (github.com) 之前见过计数信号量&#xff0c;也是在FreeRTOS中看到的。也看到过这样的功能在驱动设计中的应用&#xff0c;但是当时没有理解这个使用的方式。 1.…

10-FreeRTOS堆栈溢出

1-堆栈溢使用情况和溢出检查 1.1堆栈的使用情况 如果使用xTaskCreate()创建任务&#xff0c;那么作为任务堆栈的内存将自动从FreeRTOS堆中分配&#xff0c;并通过传递给xTaskCreate() API函数的参数进行内存划分。如果使用xTaskCreateStatic()创建任务&#xff0c;那么应用程…

UCOS2的文件目录

想着闲着也是闲着&#xff0c;把之前学习ucos2源码的笔记整理一下&#xff0c;复盘一次&#xff0c;总结内容将其写为博客作为学习的输出。 一、为什么要学RTOS或者IOTOS 我在大一时&#xff0c;开始进入实验室接触单片机&#xff0c;摸爬滚打的参加了几次比赛&#xff0c; 也…

第2章_freeRTOS入门与工程实践之单片机程序设计模式

本教程基于韦东山百问网出的 DShanMCU-F103开发板 进行编写&#xff0c;需要的同学可以在这里获取&#xff1a; https://item.taobao.com/item.htm?id724601559592 配套资料获取&#xff1a;https://rtos.100ask.net/zh/freeRTOS/DShanMCU-F103 freeRTOS系列教程之freeRTOS入…

第7章_freeRTOS入门与工程实践之模块使用说明与STM32CubeMX配置

本教程基于韦东山百问网出的 DShanMCU-F103开发板 进行编写&#xff0c;需要的同学可以在这里获取&#xff1a; https://item.taobao.com/item.htm?id724601559592 配套资料获取&#xff1a;https://rtos.100ask.net/zh/freeRTOS/DShanMCU-F103 freeRTOS系列教程之freeRTOS入…

国民技术N32G457移植usart设备

前言 接着上篇《国民技术N32G457移植pin设备》的RT-Thread工程移植usart设备驱动。 一、添加文件到工程中 1、添加dev_usart.c到工程中 二、修改源文件 1、修改rtconfig.c文件 2、修改所需要包含的文件 3、修改预编译代码 4、修改串口结构体 5、将这些标号改成从1开始…

1820_ChibiOS中的同步消息

全部学习汇总&#xff1a; GreyZhang/g_ChibiOS: I found a new RTOS called ChibiOS and it seems interesting! (github.com) 1. 看到这里提到的这个模型&#xff0c;我在想是不是我一直没有搞定的多核可以利用这个机制来解决。如果是多核&#xff0c;ChibiOS的这种机制是否依…

【踩坑日记】STM32 USART 串口与 FreeRTOS 冲突

文章目录 问题描述问题出现的环境问题解决过程第一步第二步第三步第四步第五步第六步第七步第八步 后续验证一些思考类似的问题后记 问题描述 笔者使用 FreeRTOS 创建了两个任务&#xff0c;使两颗 LED 以不同频率闪烁&#xff0c;但是在加入串口 USART 部分代码后&#xff0c…

RT-Thread:在运行RTT的GD32E103的Flash芯片上挂载文件系统

文章目录前言一、添加文件系统相关文件二、编写应用层程序总结前言 GD25QXX挂载文件系统。文末有代码工程下载。 一、添加文件系统相关文件 1、新建文件夹&#xff0c;并且添加文件。文件路径&#xff1a; rt-thread-rt-smart\components\dfs\src\&#xff0c; rt-thread-rt-…

1813_ChibiOS的RT系统层

全部学习汇总&#xff1a; GreyZhang/g_ChibiOS: I found a new RTOS called ChibiOS and it seems interesting! (github.com) 在ChibiOS中有一个RT系统层的部分&#xff0c;也就是内核的系统层。这个在其他的OS中是没有看到的&#xff0c;这里针对这一部分做一个简单的认识。…

Threadx 优先级翻转-优先级继承

优先级翻转 优先级翻转是指较低优先级已经获得临界资源&#xff0c;这时较高优先级线程也需要获得的这个临界资源时&#xff0c;较高优先级线程会被挂起&#xff0c;等待资源释放。如果这时中等优先级任务抢占了低优先级任务&#xff0c;就出现了低优先级任务先执行&#xff0…

FreeRTOS笔记—第四章 同步互斥与通信

把多任务系统当做一个团队&#xff0c;每一个任务相当团队里的一个人。团队成员之间要协调工作进度(同步)、争用会议室(互斥)、沟通(通信)。多任务系统中所涉及的概念&#xff0c;都可以在现实生活中找到例子。 各类RTOS都会涉及这些概念&#xff1a;任务通知(task notificatio…

裸机和RTOS的MSP、PSP堆栈指针切换机制

0 前言 Cortex‐M3/M4/M7内核拥有MSP&#xff08;主堆栈指针&#xff09;、PSP&#xff08;进程堆栈指针&#xff09;2个堆栈指针&#xff0c;在裸机和RTOS下这2个堆栈是如何切换保证系统稳定运行的呢&#xff1f;本文将从裸机和RTOS这2个方面展开介绍。 1 裸机和RTOS的堆栈切…

什么是任务句柄、任务控制块

任务句柄就是一个指针&#xff0c;指向任务控制块&#xff08;也有人所指向任务堆栈地址&#xff0c;是因为任务堆栈地址放在任务控制块最前面&#xff09;。 任务控制块 是一个基于链表的数据结构。是对任务的描述&#xff0c;例如任务名称、任务优先级、堆栈地址等等信息。 …

三、FreeRTOS命名规范

1、数据类型 (1)每个移植的版本都含有自己的portmacro.h头文件&#xff0c;里面定义了2个数据类型。 (2)TickType_t FreeRTOS配置了一个周期性的时钟中断&#xff1a;Tick Interrup每发生一次中断&#xff0c;中断次数累加&#xff0c;这被称为tick counttick count这个变量…

UCOSⅢ的任务状态

UCOSIII 支持的是单核 CPU&#xff0c;不支持多核 CPU&#xff0c;这样在某一时刻只有一个任务会获得 CPU 使用权进入运行态&#xff0c;其他的任务就会进入其他状态&#xff0c;UCOSIII 中的任务有多个状态。在 UCOSIII 中任务可以在这 5 个状态中转换&#xff0c;转换关系如图…

【uC/OS-III篇】uC/OS-III 移植到 STM32 简明教程

uC/OS-III 移植到 STM32 简明教程 一、uC/OS-III 介绍 二、获取UCOS-III源码 三、建立项目工程 四、解决工程编译报错 五、修改项目文件 下一篇博客&#xff1a; 【uC/OS-III篇】uC/OS-III 创建第一个任务&#xff08;For STM32&#xff09; 移植后的工程自取方式&#xf…

三刷操作系统之一文带你搞懂FreeRTOS——计数型信号量

1.计数信号量 二进制信号量可以被认为是长度为 1 的队列,而计数信号量则可以被认为长度大于 1 的队列,信号量使用者依然不必关心存储在队列中的消息,只需关心队列是否有消息即可。 顾名思义,计数信号量肯定是用于计数的,在实际的使用中,我们常将计数信号量用 于事件计数…

初识rt-thread

https://www.cnblogs.com/mic-chen/p/9245205.html

全志R128软件配置——RTOS 软件包配置

RTOS 软件包配置 本文将介绍 RTOS 软件包、地址&#xff0c;内核配置等。 Kconfig 简介 有过 linux 内核开发经验的人&#xff0c;对 menuconfig 不会陌生。对于各类内核&#xff0c;只要是支持 menuconfig 配置界面&#xff0c;都是使用 Kconfig。 换言之&#xff1a; me…

RT-Thread 中断管理

中断管理 什么是中断&#xff1f;简单的解释就是系统正在处理某一个正常事件&#xff0c;忽然被另一个需要马上处理的紧急事件打断&#xff0c;系统转而处理这个紧急事件&#xff0c;待处理完毕&#xff0c;再恢复运行刚才被打断的事件。 生活中&#xff0c;我们经常会遇到这…

uCOSii消息邮箱管理

uCOSii消息邮箱管理 (MESSAGE MAILBOX MANAGEMENT) 消息邮箱主要用于中断和任务之间进行邮件传递&#xff0c;或者是在任务与任务之间进行邮件交换。 1、消息邮箱管理重点需要了解下面几个函数 消息邮箱指针OSMboxCreate(消息邮箱数据块指针) 建立并初始化一个消息邮箱,在初…

【学习日记】【FreeRTOS】任务句柄、任务控制块TCB、任务栈、任务、就绪表详解

写在前面 本文是对FreeRTOS中任务句柄、任务控制块TCB、任务栈、任务、就绪表详解。 一、裸机和RTOS中函数存储位置详解 左图为裸机开发时 RAM 的使用情况&#xff0c;右图是使用了 FreeRTOS 后 RAM 的使用情况&#xff08;图片来自野火&#xff09;。 无论是裸机开发还是Fr…

FreeRTOS五种内存管理详解

freeRTOS五种内存管理详解 heap1 源码分析 void * pvPortMalloc( size_t xWantedSize ) {void * pvReturn NULL; // 申请的内存地址static uint8_t * pucAlignedHeap NULL; // 用于指向堆内存的起始地址#if ( portBYTE_ALIGNMENT ! 1 ) // 如果对齐为1则不对齐&#xff0c…

九、Delay函数

1、两个延时函数 vTaskDelay&#xff1a;至少等待指定个数的Tick Interrupt才能变为就绪态。vTaskDelayUntil&#xff1a;等待到指定的绝对时刻&#xff0c;才能变为就绪态。 2、函数原型 /* xTicksToDelay: 等待多少个Tick */ void vTaskDelay( const TickType_t xTicksToD…

第9章_freeRTOS入门与工程实践之任务管理

本教程基于韦东山百问网出的 DShanMCU-F103开发板 进行编写&#xff0c;需要的同学可以在这里获取&#xff1a; https://item.taobao.com/item.htm?id724601559592 配套资料获取&#xff1a;https://rtos.100ask.net/zh/freeRTOS/DShanMCU-F103 freeRTOS系列教程之freeRTOS入…

rt-thread------任务调度

rt-thread------任务调度 1. 线程初始化 在rt-thread中线程主要包括以下一些内容&#xff0c;线程控制块、线程栈、函数入口。 1.1线程创建函数 RTOS基本都包括两种线程方式&#xff1a;动态创建rt_thread_create()和静态创建rt_thread_init()。 因为有些系统设计时对安全…

三刷操作系统之一文带你搞懂FreeRTOS——信号量

信号量是操作系统中重要的一部分,信号量一般用来进行资源管理和任务同步,FreeRTOS中信号量又分为二值信号量、计数型信号量、互斥信号量和递归互斥信号量。不同的信号量其应用场景不同。 1.信号量简介 信号量常常用于控制对共享资源的访问和任务同步。举一个很常见的例子,…

【uC/OS-III篇】uC/OS-III 创建第一个任务(For STM32)

uC/OS-III 创建第一个任务&#xff08;For STM32&#xff09; 日期&#xff1a;2024-3-30 23:55&#xff0c;结尾总结了今天学习的一些小收获 本博客对应的项目源码工程 源码项目工程 1. 首先定义错误码变量 // 用于使用uC/OS函数时返回错误码 OS_ERR err; 2. 定义任务控制…

十五、信号量

1、概述 (1)前面介绍的队列(queue)可以用于传输数据&#xff1a;在任务之间、任务和中断之间。 (2)有些时候我们只需要传递状态&#xff0c;并不需要传递具体的信息&#xff0c;比如&#xff1a; 我的事做完了&#xff0c;通知一下你。卖包子了、卖包子了&#xff0c;做好了…

uCOSii中的事件标志组

事件标志管理 (EVENT FLAGS MANAGEMENT) OSFlagAccept() 无等待查询”事件标志组的事件标志位”是否建立 OSFlagPend() 需要等待”事件标志组的事件标志位”建立 OSFlagCreate() 建立一个事件标志组 OSFlagDel() 删除一个事件标志组 OSFlagPost() 置位或清0事件标志组中的…

嵌入式实时操作系统的设计与开发——启动内核

RTOS的引导模式 RTOS的引导是指将操作系统装入内存并开始执行的过程。 在嵌入式系统的实际应用中&#xff0c;针对不同应用环境&#xff0c;对时间效率和空间效率有不同的要求。 时间限制主要包括两种情况&#xff1a;系统要求快速启动和系统启动后要求程序能实时运行。空间限…

嵌入式系统的分类

按照嵌入式系统所使用的操作系统&#xff0c;可以将嵌入式系统分成三类&#xff1a;Rich OS类、RTOS类、Bare-metal类。 mingdu.zheng at gmail dot com https://blog.csdn.net/zoomdy/article/details/79758702 1、按复杂度分 a. 复杂嵌入式系统 这类系统一般使用Linux、A…

【RTOS】快速体验FreeRTOS所有常用API(10)资源管理

目录 十、资源管理10.1 基本概念10.2 关任务调度器10.3 关中断10.4 实例 十、资源管理 该部分在上份代码基础上修改得来&#xff0c;代码下载链接&#xff1a; https://wwzr.lanzout.com/iqBYJ1lauxof 密码:9adb 该代码尽量做到最简&#xff0c;不添加多余的、不规范的代码。 内…

【FreeRTOS】【STM32】中断详细介绍

文章目录 一、三种优先级的概念辨析1. 先理清楚两个概念&#xff1a;CPU 和 MPU2. Cortex-M3 内核与 STM32F1XX 控制器有什么关系3. 优先级的概念辨析① Cortex-M3 内核和 STM32F1XX 的中断优先级② FreeRTOS 的任务的优先级 二、 Cortex-M3 内核的中断优先级1. 中断编号2. 优先…

RTOS Lab report:Task-List Management in the RTOS Kernel

Task-List Management in the RTOS Kernel Ⅰ Introduction Much of the administration in a real‐time kernel consists of list management. In this initial step, we create three different lists and operate them as follows: • Create functions that can input a…

小核引导RTOS---RISC-V C906

文章目录 参考日志编译框架目标fip 启动流程fip文件组成BL2程序 总结思考备注 参考 参考1. How does FSBL load the FreeRTOS on the small core and execute it?参考2. Duo now supports big and little cores?Come and play!Milk-V Duo, start&#xff01;参考3. 使用uboo…

什么是任务栈?

在一个裸机系统中&#xff0c;如果有全局变量&#xff0c;有子函数调用&#xff0c;有中断发生。那么系统在运行的时候&#xff0c;全局变量放在哪里&#xff0c;子函数调用时&#xff0c;局部变量放在哪里&#xff0c;中断发生时&#xff0c;函数返回地址发哪里。如果只是单纯…

【FreeRTOS】【应用篇】任务管理相关函数

文章目录 前言一、函数解析1. 任务挂起 vTaskSuspend()① 使用场景② 设计思路③ 代码 2. 任务恢复 vTaskResume()① 作用② 设计思路③ 代码 3. 挂起任务调度器 vTaskSuspendAll()① 作用② 代码 4. 恢复任务调度器 xTaskResumeAll()① 设计思路② 代码 5. 任务删除函数 vTask…

freeRTOS实时操作系统学习笔记

温馨提示&#xff1a;点击图片查看大图更清晰 —————————————————————————————↑↑↑上方资源下载后可获取xmind原文件。 1、freeRTOS移植和配置脑图 2、内核源码学习

初识zephyr-rtos

平台介绍:(以下仅为我自己的配置,实际支持多种平台,windows的话虽然可以支持,但还是建议在wsl上进行相关开发学习) 系统:ubuntu 22.04开发板:nucleo_f401re$ python3 --version Python 3.10.12cmake --version cmake version 3.22.1dtc --version Version: DTC 1.6.1目…

全志R128芯片应用开发案例——驱动 WS2812 流水灯

驱动 WS2812 流水灯 本文案例代码下载地址驱动 WS2812 流水灯案例代码https://www.aw-ol.com/downloads?cat24 R128-DevKit 拥有4颗 WS2812 LED&#xff0c;本文将详细叙述如何点亮他们。 LEDC 模块简介 LEDC 硬件方框图如上图所示&#xff0c;CPU 通过 APB 总线操作 LEDC 寄…

FreeRTOS中的内存分配策略

FreeRTOS为内存管理提供了几种不同的策略&#xff0c;分别由heap_1.c至heap_5.c实现。以下是每种策略&#xff1a; heap_1.c: 最简单的策略。只允许一次性的内存分配。不允许内存释放。对于只分配内存但不释放的系统特别有用&#xff0c;如仅在启动时分配任务和队列的系统。内存…

全志R128芯片RTOS调试指南

RTOS 调试指南 此文档介绍 FreeRTOS 系统方案支持的常用软件调试方法&#xff0c;帮助相关开发人员快速高效地进行软件调试&#xff0c;提高解决软件问题的效率。 栈回溯 栈回溯是指获取程序的调用链信息&#xff0c;通过栈回溯信息&#xff0c;能帮助开发者快速理清程序执行…

嵌入式工程师面试题集汇总

主观问题 主观问题-介绍类 请自我介绍&#xff1f; 为什么不留在xx公司&#xff08;为啥离职&#xff09;&#xff1f; 你5-10年职业规划是怎样的&#xff1f; 你还写代码吗&#xff1f;从工程师到管理再到工程师你是怎样想的或能承受吗 把你的以前工作简单介绍一下&#xff…

RTThread SMP 不同状态的线程存放位置

rt_thread_priority_table[RT_THREAD_PRIORITY_MAX] 保存没有绑定的线程链表 pcpu->priority_table[RT_THREAD_PRIORITY_MAX] 保存和cpu绑定的线程链表 以上是就绪线程的存放列表 pcup->current_thread存放当前运行线程 挂起线程&#xff0c;存放在所等待的内核资源…

RT-Thread:GD32F105移植RT-Thread-smart

文章目录前言一、替换文件二、添加文件到工程三、修改源码四、源码下载总结前言 借助之前在GD32E103上移植RT-Thread的代码来移植到GD32F105。 一、替换文件 1、复制一个gd32e103工程&#xff0c;命名为gd32f105-eval。 2、复制官方GD32F10x系列开发板下的GD32F10x_Firmware_…

Cortex-M与RISC-V区别

环境 Cortex-M以STM32H750为代表&#xff0c;RISC-V以芯来为代表 RTOS版本为RT-Thread 4.1.1 寄存器 RISC-V 常用汇编 RISC-V 关于STORE x4, 4(sp)这种寄存器前面带数字的写法&#xff0c;其意思为将x4的值存入sp4这个地址&#xff0c;即前面的数字表示偏移的意思 反之LOA…

重量级消息,微软将ThreadX RTOS全家桶贡献给Eclipse基金会,免费供大家商用,宽松的MIT授权方式

从明年第1季度开始&#xff0c;任何人&#xff0c;任何厂家的芯片都可以免费商用&#xff0c;MIT授权就这点好。 贡献出来后&#xff0c;多方可以一起努力开发&#xff0c;当前首批兴趣小组AMD, Cypherbridge, Microsoft, NXP, PX5, Renesas, ST Microelectronics, Silicon Lab…

zephyr核心数据结构 - struct device

struct device 的zephyr中的地位相当于linux中的 struct file_operations . 在linux中&#xff0c;奉行一切皆文件的思想&#xff1b;而在zephyr中&#xff0c;与linux相似&#xff0c;奉行一切皆设备的思想。 先来看看 struct device 长什么样&#xff1a; struct device {…

1808_ChibiOS基本的架构介绍

全部学习汇总&#xff1a; GreyZhang/g_ChibiOS: I found a new RTOS called ChibiOS and it seems interesting! (github.com) 简单看了一下ChibiOS的架构介绍&#xff0c;感觉这种OS以及组件非常适合快速构建一个应用。这里做一个简单的资料整理。。 1. 不同于其他的OS&#…

OSAL

OSAL事件触发机制----定时器触发 CC2540 OSAL 学习其中原理&#xff0c;以及 给任务 添加 一个事件&#xff08;定时发送串口消息&#xff09; OSAL调度机制 OSAL之消息管理 OSAL的消息机制触发事件流程 OSAL中的消息与事件 ZStack OSAL的事件&#xff08;event&#xff09;与消…

RTOS之一环境搭建(基于TM4C123GXL)

硬件TM4C123GXLBOOSTXL-EDUMKII keil5micriumOSA软件安装&#xff1a;1 ARM-MDK(MDK538aMDK_Stellaris_ICDI_AddOn)MDK538a链接&#xff1a;https://www.keil.com/demo/eval/arm.htmICDI链接&#xff1a;https://documentation-service.arm.com/static/60509bd61da8f8344a2ca1b…

【学习日记】【FreeRTOS】时间片的实现

前言 本文以野火的教程和代码为基础&#xff0c;对 FreeRTOS 中时间片的概念作了解释&#xff0c;并且给出了实现方式&#xff0c;同时发现并解决了野火教程代码中的 bug。 一、时间片是什么 在前面的文章中&#xff0c;我们已经知道任务根据不同的优先级被放入就绪列表中不…

设计一个在裸机下使用的简单软件定时器(3):功能测试

0 前言 在RTOS中&#xff0c;我们经常用到软件定时器来为我们处理一些对于实时性要求不高的定时任务。在裸机开发中&#xff0c;我们可能也有很多需要定时执行的任务&#xff0c;为了优雅地执行这些定时任务&#xff0c;本文设计一个在裸机下使用的简单软件定时器&#xff0c;…

任务创建后只执行后创建的任务,不进行调度?

1、问题说明 通过HAL创建STM32裸机程序后&#xff0c;移植FreeRTOS程序且编译不报错。创建了两个串口打印的任务&#xff0c;却只有后创建的任务运行&#xff0c;不会进行任务间的调度。 主要代码&#xff1a; /**功能&#xff1a;将C库printf函数重定向到USART1*参数&#x…

FreeRTOS笔记【一】 任务的创建(动态方法和静态方法)

一、任务创建和删除API函数 函数描述xTaskCreate()使用动态的方法创建一个任务xTaskCreateStatic()使用静态的方法创建一个任务xTaskCreateRestricted()创建一个使用MPU进行限制的任务&#xff0c;相关内存使用动态内存分配vTaskDelete()删除一个任务 二、动态创建任务 2.1 …

RTT(RT-Thread)线程间同步(保姆级)

目录 线程间同步 信号量 信号量结构体 信号量的使用和管理 动态创建信号量 实例 静态创建信号量 初始化和脱离信号量 获取信号量 信号量的互斥操作 获取信号量函数 释放信号量 信号量同步实例 互斥量&#xff08;互斥锁&#xff09; 互斥量的使用和管理 动态创…

【学习日记】【FreeRTOS】任务调度时如何考虑任务优先级——任务的自动切换

写在前面 本文开始为 RTOS 加入考虑任务优先级的自动调度算法&#xff0c;代码大部分参考野火。 本文主要是一篇学习笔记&#xff0c;加入了笔者自己对野火代码的梳理和理解。 一、基本思路 首先我们要知道&#xff0c;在 RTOS 中&#xff0c;优先级越高、越需要被先执行的的…

Threadx 释放互斥量_tx_mutex_put

释放互斥量_tx_mutex_put 1&#xff0c;只有拥有互斥量的线程才能够释放互斥量 2&#xff0c;计数器减1后&#xff0c;值不是0&#xff0c;说明本线程多次申请了互斥量&#xff0c;那么本线程继续占有互斥量&#xff0c;函数返回 3&#xff0c;挂起队列中有线程等待互斥量资源…

uc-osⅡ入门——创建工程模板

目录 任务: 概念 简介 性质 组成 1) 核心部分(OSCore.c) 2) 任务处理部分(OSTask.c) 3) 时钟部分(OSTime.c) 4) 任务同步和通信部分 5) 与CPU的接口部分 总结分析和思考 任务管理 时间管理 内存管理 通信同步 任务调度 理解 实践 任务: 了解什么是ucos 创建…

【学习日记】【FreeRTOS】手动任务切换详解

前言 本文是关于 FreeRTOS 中实现两个任务轮流切换并执行的代码详解。目前不支持优先级&#xff0c;仅实现两个任务轮流切换。 一、任务的自传 任务从生到死的过程究竟是怎么样的呢&#xff1f;&#xff08;其实也没死&#xff09;&#xff0c;这个问题一直困扰着我&#xf…

详解FreeRTOS:嵌入式多任务系统的任务调度机制(理论篇—5)

目录 1、时间片调度算法 2、优先级调度算法 3、优先级的时间片调度算法 常见的任务调度机制主要有时间片调度算法(时分式)、优先级调度算法(抢占式)和基于优先级的时间片调度算法。 1、时间片调度算法 时间片调度算法指的是操作系统先让某个任务运行一个时间

FreeRTOS可变数据长度的队列

背景&#xff1a;使用xQueueCreate创建队列时&#xff0c;我们发现只有两个参数&#xff0c;队列深度和单元长度&#xff0c;单元长度为该队列每组数据的最大长度&#xff0c;由于实际应用中&#xff0c;可能每个消息的数据长度都不一样&#xff0c;因此都设同样的长度会造成内…

嵌入式实时操作系统的设计与开发New(七)

描述调度策略 /*调度策略*/ typedef struct{acoral_list_t list; //策略链表结点&#xff0c;用于将策略挂到策略链表上去acoral_u8 type;//策略类型int (*policy_thread_init)(acoral_thread_t *,void (*route)(void *args),void *,void *);//某种策略的初始化函数&#xff0…

FreeRTOS 事件组

实现功能&#xff0c;当任务A,B完成后执行串口任务。 不同任务用不同的位表示 configUSE_16_BIT_TICKS1,bitx(0~7)&#xff1b; configUSE_16_BIT_TICKS设置为0 &#xff0c;bitx(0~23)&#xff1b; //串口任务的头文件 #ifndef __TRANSMIT_H #define __TRANSMIT_H#include…

rt-thread汇总

finish和msh的区别&#xff1f; 这个问题我一直没搞懂&#xff0c;可能得看一下源码才能搞清楚了吧 通过Qemu运行RT-Thread 在windows上通过QEMU快速上手RT-thread smart RT-thread启动流程 rt-thread启动流程 Kconfig语法 Kconfig语法 关于终端的一些问题 终端的管脚配置…

四、内存管理

1、为什么需要自己实现内存管理 (1)RTOS涉及的内核对象&#xff1a;task、queue、semaphores和event group等。为了让FreeRTOS更容 易使用&#xff0c;这些内核对象一般都是动态分配&#xff1a;用到时分配&#xff0c;不使用时释放。使用内存的动态管理功能&#xff0c;简化了…

【学习笔记】一种特别有意思的 RTOS 任务切换方法

一、介绍说明 目前常见流行的 RTOS 实现方式&#xff0c;如 FreeRTOS、uCosII、RT-Thread 等等&#xff0c;它们的内部的任务切换实现原理都差不多&#xff0c;都是通过借助汇编&#xff0c;根据不同的情况读写 CPU 寄存器&#xff08;R0~R15&#xff09;来实现保护现场和恢复…

uCOSii内存管理

uCOSii内存管理(MEMORY MANAGEMENT) OSMemGet()执行一次,只能申请一个节点,由于节点的数据长度是固定的&#xff0c;所以可用内存的长度是固定的,这一点和malloc()不同。 OSMemPut()执行一次,只释放一个节点,这一点和free()用法差不多,不用关心内存的长度,只要知道内存首地址…

十四、队列函数

1、概述 (1)使用队列的流程&#xff1a;创建队列、写队列、读队列、删除队列。 2、创建 队列的创建有两种方法&#xff1a;动态分配内存、静态分配内存。 2.1、动态分配内存 (1)函数&#xff1a;xQueueCreate&#xff0c;队列的内存再函数内部动态分配。 (2)函数原型如下&…

全志D1s开发板裸机开发之坏境搭建

环境搭建 开发板介绍 张天飞老师编写的《RISC-V体系结构编程与实践》&#xff0c;里面的源码是基于 QEMU 模拟器的&#xff0c;可以认为它是一款虚拟的开发板。如果需要在真实开发板上学习&#xff0c;可以使用百问网的 DongshanPI-D1S 开发板。 DongshanPI-D1S 是百问网推出…

STM32F103移植RT-Thread完整过程

前言 RT-Thread官网有很多通过IDE一键移植的方法&#xff0c;本文选择的是手动移植&#xff0c;文末提供移植好的完整工程。 RT-Thread 有3个版本&#xff0c;分别是标准版本、Nano版本、Smart版本&#xff0c;本文选择的是最简单的Nano版本&#xff0c;RT-Thread Nano 是一个…

RT-Thread | 临界区问题及IPC机制

1024G 嵌入式资源大放送&#xff01;包括但不限于C/C、单片机、Linux等。关注微信公众号【嵌入式大杂烩】&#xff0c;回复1024&#xff0c;即可免费获取&#xff01; 什么是临界区&#xff1f; 在多线程实时系统中&#xff0c;多个线程操作/访问同一块区域&#xff08;代码&am…

RT-Thread I/O设备模型

I/O设备模型 绝大部分的嵌入式系统都包括一些I/O&#xff08;Input/Output&#xff0c;输入/输出&#xff09;设备&#xff0c;例如仪器上的数据显示屏、工业设备上的串口通信、数据采集设备上用于保存数据的Flash或SD卡&#xff0c;以及网络设备的以太网接口等&#xff0c;都…

【学习日记】【FreeRTOS】调度器函数实现详解

写在前面 本文主要是对于 FreeRTOS 中调度器函数实现的详细解释&#xff0c;代码大部分参考了野火 FreeRTOS 教程配套源码&#xff0c;作了一小部分修改。 一、MSP 和 PSP Cortex-M有两种栈空间&#xff0c;主堆栈和进程堆栈。 MSP 用于系统级别和中断处理的堆栈 MSP 用于保…

RT-Thread 线程间同步 信号量

线程间同步 在多线程实时系统中&#xff0c;一项工作的完成往往可以通过多个线程协调的方式共同来完成。 例如一项工作中的两个线程&#xff1a;一个线程从传感器中接收数据并且将数据写到共享内存中&#xff0c;同时另一个线程周期性地从共享内存中读取数据并发送出去显示&a…

影响AFE采样精度的因素有哪些?

**AFE&#xff08;Analog Front End&#xff09;**是模拟前端电路的缩写&#xff0c;它是模拟信号传感器和数字信号处理器之间的连接点。AFE采样精度是指模拟信号被数字化后的准确度&#xff0c;对于很多电子设备来说&#xff0c;这是一个至关重要的性能指标。本文将介绍影响AF…

FreeRTOS移植以及核心功能

文章目录 freertos和ucos区别&#xff0c;优缺点比较移植步骤核心功能内存管理&#xff08;5种内存管理策略&#xff09;FreeRTOS任务调度算法有三种时间管理通信管理 栈管理 freertos和ucos区别&#xff0c;优缺点比较 FreeRTOS&#xff08;Free Real-Time Operating System&…

FreeRTOS 任务间的通信

消息队列&#xff1a; 队列又称消息队列&#xff0c;是一种常用于任务间通信的数据结构&#xff0c;队列可以在任务与任务间、中断和任务间传递信息&#xff0c;实现了任务接收来自其他任务或中断的不固定长度的消息。 信号量&#xff1a;semphr&#xff0c;基于消息队列实现 二…

Rtthread源码分析<1>启动文件和链接脚本

启动文件和链接脚本 1&#xff09;启动文件 ​ 启动文件里面使用的是汇编语言&#xff0c;汇编语言常常可以分为两个部分语法风格和而不同的toolchain有不同的汇编语法风格&#xff0c;通常分配unified 和 非 unified。常见的工具包有 ARM toolchains 和 GNU toolchains 。比…

Liteos移植_STM32_HAL库

0 开发环境 STM32CubeMX(HAL库)keil 5正点原子探索者STM32F4ZET6LiteOS-develop分支 1 STM32CubeMX创建工程 如果有自己的工程&#xff0c;直接从LiteOS源码获取开始 关于STM32CubeMX的安装&#xff0c;看我另一篇博客STM32CubeMX安装 工程配置 创建新工程 选择芯片【STM32F…

1821_ChibiOS中的事件机制

全部学习汇总&#xff1a; GreyZhang/g_ChibiOS: I found a new RTOS called ChibiOS and it seems interesting! (github.com) 1. 这里开篇就讲了ChibiOS中的事件机制非常强大&#xff0c;算是OS的一个子系统功能。提供了多事件等待、事件与线程多对多、异步广播同步检查等功能…

全志R128芯片 基础组件开发指南——RTOS 多媒体编码

RTOS 多媒体编码 介绍 FreeRTOS 下如何使用 xrecorder 的接口来开发录制应用程序&#xff0c;方便录制应用开发人员快速正确地开发&#xff0c;以及录制应用测试人员如何根据该文档对基于 xrecord 的录制应用进行验证测试。 编码支持情况 目前 RTOS 平台多媒体编码应用支持的…

【学习日记】【FreeRTOS】空闲任务与阻塞延时

写在前面 本文是基于野火 RTOS 教程对空闲任务和阻塞延时的详解。 一、什么是任务中的阻塞延时 说到阻塞延时&#xff0c;笔者的第一反应就是在单片机的 while 循环中&#xff0c;使用一个 for 循环不断递减一个大数&#xff0c;通过 CPU 不断执行一条指令的耗时进行延时。这…

全志R128应用开发案例——获取真随机数

获取真随机数 本文案例代码下载地址获取真随机数案例代码https://www.aw-ol.com/downloads?cat24 R128 内置了TRNG&#xff0c;一个真随机数发生器&#xff0c;随机源是 8 路独立的环形振荡器&#xff0c;由模拟器件电源噪声产生频率抖动&#xff0c;用低频始终重采样&#…

【RTOS】快速体验FreeRTOS所有常用API(1)工程创建

目录 一、工程创建1.1 新建工程1.2 配置RCC1.3 配置SYS1.4 配置外设1&#xff09;配置 LED PC132&#xff09;配置 串口 UART13&#xff09;配置 OLED I2C1 1.5 配置FreeRTOS1.6 工程设置1.7 生成代码1.8 keil设置下载&复位1.9 添加用户代码 本工程皆在快速体验FreeRTOS所有…

十八、任务通知

1、前言 (1)所谓“任务通知”&#xff0c;可以反过来读"通知任务"。我们使用队列、信号量、事件组等等方法时&#xff0c;并不知道对方是谁。使用任务通知时&#xff0c;可以明确指定&#xff1a;通知哪个任务。 (2)使用队列、信号量、事件组时&#xff0c;我们都需…

RT-Thread:GD32E103添加GD25QXX Flash

文章目录前言一、添加SPI相关文件和代码二、修改SPI驱动总结前言 本次将gd25q Flash代码嵌入到运行了RTT的GD32E103芯片中。文末有代码下载。 一、添加SPI相关文件和代码 1、注意使用的工程为我之前文章移植好的工程。 2、添加文件&#xff0c;路径为&#xff1a;rt-thread-…

Threadx 线程

基本概念 程序是指令的有序集合&#xff0c;其本身没有任何运行的含义&#xff0c;是一个静态的概念。而进程是程序在处理机上的一次执行过程&#xff0c;它是一个动态的概念。进程是由程序、数据和进程控制块三部分组成的。 进程是操作系统资源分配的基本单位&#xff0c;而线…

RT-Thread:让W25Q128、U盘、SD卡同时搭载文件系统

文章目录前言一、使用ENV配置工程二、修改源码和添加用户代码总结前言 让U盘和SD卡挂载在本地磁盘的不同目录下。 一、使用ENV配置工程 1、在原博文《RT-Thread&#xff1a;STM32F407同时挂载W25Q128和U盘》的工程上进行配置&#xff0c;使能SDCARD。 2、修改可挂载文件系统数…

国民技术N32G457移植pin设备

前言 接着上篇《国民技术N32G457移植RT-Thread》的RT-Thread工程移植pin设备。 一、添加文件到工程中 1、添加drv_gpio.c 二、修改源文件 1、替换当前文件的__GD32为__N32 2、修改头文件 3、添加时钟和外部中断相关枚举 typedef enum {/* AHB peripherals */RCU_DMA1…

RT-thread

由于rt_thread_delete不能够自己删除自己&#xff0c;在主线程创建完其他线程后&#xff0c;要删除&#xff0c;只能通过return退出当前线程&#xff0c;rtthread在空闲时会删除。 RT-Thread学习笔记&#xff08;3&#xff09;- 线程的创建与删除 关于rt_event_recv的与或标志 …

【ESP32】以蓝牙网关为例,记录队列的使用

&#x1f4cb; 个人简介 &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是喜欢记录零碎知识点的菜鸟打工人。&#x1f60e;&#x1f4dd; 个人主页&#xff1a;欢迎访问我的 Ethernet_Comm 博客主页&#x1f525;&#x1f389; 支持我&#xff1a;点赞&#x1f44d;收…

【嵌入式】探究嵌入式产品启动奥秘:从硬件上电到应用全速运行的精彩旅程

&#x1f9d1; 作者简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟。提供嵌入式方向的学习指导、简历面…

Cortex-M移植

常用寄存器 PRIMASK寄存器 PRIMASK寄存器为1位宽的中断屏蔽寄存器。在置位时&#xff0c;它会阻止不可屏蔽中断&#xff08;NMI&#xff09;和HardFault异常之外的所有异常&#xff08;包括中断&#xff09;。实际上&#xff0c;它是将当前异常优先级提升为0&#xff0c;这就是…

国民技术N32G457移植RT-Thread

文章目录前言一、替换文件二、添加文件到工程三、修改源码四、源码下载总结前言 移植RT-Thread到国民技术N32G457芯片中&#xff0c;此次移植只是一个最简的移植&#xff0c;不包括移植控制台所需的串口设备驱动&#xff0c;pin设备驱动。 一、替换文件 1、在bsp中复制一个gd…

详解全志R128 RTOS安全方案功能

介绍 R128 下安全方案的功能。安全完整的方案基于标准方案扩展&#xff0c;覆盖硬件安全、硬件加解密引擎、安全启动、安全系统、安全存储等方面。 配置文件相关 本文涉及到一些配置文件&#xff0c;在此进行说明。 env*.cfg配置文件路径&#xff1a; board/<chip>/&…

【学习日记】【FreeRTOS】延时列表的实现

前言 本文在前面文章的基础上实现了延时列表&#xff0c;取消了 TCB 中的延时参数。 本文是对野火 RTOS 教程的笔记&#xff0c;融入了笔者的理解&#xff0c;代码大部分来自野火。 一、如何更高效地查找延时到期的任务 1. 朴素方式 在本文之前&#xff0c;我们使用了一种朴…

三刷操作系统之一文带你搞懂FreeRTOS——事件标志组

1 事件标志组简介 任务间的同步除了信号量还有事件标志组,信号量的同步通常是一对一的同步,有的时候系统需要多对一的同步,信号量就满足不了了,比如同时满足5个按键按下时,任务启动,如果使用信号会很占据资源,所以 RTOS 引入了事件标志组来满足。 1、事件位(事件标志)…

二、FreeRTOS目录文件概述

1、FreeRTOS目录结构 (1)官网下载FreeRTOS源码。 (2)FreeRTOS源码目录树。(由目录树生成工具zDirTree生成) E:\RTOS\官方源码\FreeRTOSv202212.01 ├FreeRTOS │ ├Demo // 预先制作好的示例工程 │ │ ├CORTEX_STM32F103_Keil // STM32F103在k…

Threadx _tx_thread_resume线程恢复

新创建线程时或其他线程主动让某个线程执行&#xff0c;会调用_tx_thread_resume&#xff0c;把新的线程加入调度list&#xff0c;并选择出下一个需要执行的线程。基本原理&#xff1a;选出系统中最高优先级线程为执行线程 1&#xff0c;恢复线程正在挂起过程中&#xff0c;只…

Threadx 中断处理-ARM

文章目录ARM寄存器ARM两种状态ARM 工作模式工作模式切换ARM 异常ARM异常处理基于arm v7分析Threadx操作系统的中断处理。ARM寄存器 ARM V7体系结构共有37个32位寄存器&#xff0c;其中r0-r12为通用寄存器&#xff1b;r13(sp)为栈寄存器&#xff0c;指向栈顶&#xff0c;向下(低…

cpu_a.asm-ucos2临界区的实现

一、什么是临界区 这段代码在运行中途可能被多个地方同时访问&#xff0c;一旦被好几个地方同时访问&#xff0c;就会出错。所以我们保护的这段代码叫临界区代码段。简单来说就是需要将这段代码当做一个整体&#xff0c;在运行的时候&#xff0c;不能被任务方式打断。 如何会…

FreeRTOS笔记—第三章 任务管理

3.1 任务基本概念及状态 3.1.1 什么是任务 FreeRTOS任务同我日常生活所说的任务概念是一样&#xff0c;指定担任的工作&#xff1b;指定担负的责任。只是FreeRTOS任务是指函数&#xff08;函数也是为了完成某种功能&#xff09;。 以日常生活为例&#xff0c;比如你做了两件事…

《野火RT-Thread内核实现与应用开发实战》笔记8. 消息队列

1. 基本概念 队列又称消息队列&#xff0c;是一种常用于线程间通信的数据结构&#xff0c;队列可以在线程与线程间、中断和线程间传送信息&#xff0c;实现了线程接收来自其他线程或中断的不固定长度的消息&#xff0c;并根据不同的接口选择传递消息是否存放在线程自己的空间。…

《野火RT-Thread内核实现与应用开发实战》笔记9. 信号量,互斥量,事件

1. 信号量&#xff08;Semaphore&#xff09; 结构体 struct rt_semaphore {struct rt_ipc_object parent; /**< 继承自 ipc_object 类 */ rt_uint16_t value; /**< 信号量的值&#xff0c;最大为 65535 */ }; typedef struct rt_semaphore *…

ARM-M架构移植UCOS操作系统

最近准备面试&#xff0c;把本科到现在的一些比赛相关的东西整理一下。那些年在飞思卡尔在K60单片机上的UCOSII移植&#xff08;哎&#xff0c;心酸...&#xff09; 一、首先看下UCOSII的文件结构&#xff1a; 一些核心的文件解释&#xff1a; 【1、头文件】&#xff1a; inclu…

意外发现Cortex-M内核带的64bit时间戳,比32bit的DWT时钟周期计数器更方便,再也不用担心溢出问题了

视频&#xff1a; https://www.bilibili.com/video/BV1Bw411D7F5 意外发现Cortex-M内核带的64bit时间戳&#xff0c;比32bit的DWT时钟周期计数器更方便&#xff0c;再也不用担心溢出问题了 介绍&#xff1a; 看参数手册的Debug章节&#xff0c;System ROM Table里面带Timestam…

1825_ChibiOS的OSLIB中的存储分配器

全部学习汇总&#xff1a; GreyZhang/g_ChibiOS: I found a new RTOS called ChibiOS and it seems interesting! (github.com) 1. 之前有点不是很理解什么是静态OS&#xff0c;从这里基本上得到了这个答案。所谓的静态&#xff0c;其实就是内核之中不会使用Free以及Malloc这样…

【FreeRTOS】【应用篇】消息队列【下篇】

前言 本篇文章主要对 FreeRTOS 中消息队列的概念和相关函数进行了详解消息队列【下篇】详细剖析了消息队列中发送、接收时队列消息控制块中各种指针的行为&#xff0c;以及几个发送消息和接收消息的函数的运作流程笔者有关于 【FreeRTOS】【应用篇】消息队列【上篇】——队列基…

FreeRTOS中的xQueueCreate,xQueueSend,xQueueReceive

xQueueCreate&#xff1a; 创建一个新的队列。为新的队列分配所需的存储内存&#xff0c;并返回一个队列处理。 原型&#xff1a; xQueueHandle xQueueCreate( unsigned portBASE_TYPE uxQueueLength, unsigned portBASE_TYPE uxItemSize ); uxQueueLength队列中包含最大项目…

MKRTOS MCU上的微内核操作系统

MKRTOS 全称是 Micro-Kernel Real-Time Operating System&#xff0c;中文名字是微内核实时操作系统。MKRTOS 是首款在开源的支持MCU的微内核操作系统。未来还将在MCU上支持虚拟化&#xff01;&#xff01;下载地址&#xff1a;https://gitee.com/IsYourGod/mkrtos-realMKRTOS被…

设计一个在裸机下使用的简单软件定时器(1):框架+数据结构分析

0 前言 在RTOS中&#xff0c;我们经常用到软件定时器来为我们处理一些对于实时性要求不高的定时任务。在裸机开发中&#xff0c;我们可能也有很多需要定时执行的任务&#xff0c;为了优雅地执行这些定时任务&#xff0c;本文设计一个在裸机下使用的简单软件定时器&#xff0c;…

ESP8285 RTOS SDK OTA

一、官方资源说明 官方指南&#xff1a;空中升级 (OTA) - ESP32 - — ESP-IDF 编程指南 v4.3.6 文档&#xff0c;虽然是正对ESP32的&#xff0c;但是原理是一样的。 官方参考例程&#xff1a;esp-idf\ESP8266_RTOS_SDK\examples\system\ota\&#xff0c;其中包含两个例程&…

FreeRTOS(一)简介与源码下载

免费、开源&#xff08;CAssembly&#xff09;、第三方组件钦定的系统

【学习日记】【FreeRTOS】FreeRTOS 移植到 STM32F103C8

前言 本文基于野火 FreeRTOS 教程&#xff0c;内容是关于 FreeRTOS 官方代码的移植的注意事项&#xff0c;并将野火例程中 STM32F103RC 代码移植到 STM32F103C8。 一、FreeRTOS V9.0.0 源码的获取 两个下载链接&#xff1a; 官 网 代码托管 二、源码文件夹内容简介 Source…

FreeRTOS的信号量和互斥量之间的区别和联系

文章目录 信号量信号量简介信号量特征 互斥量互斥量的上锁机制互斥量的优先级继承机制 二值信号量和互斥量的作用二值信号量的作用互斥量的作用 二值信号量和互斥锁关系相同点不同点 如何根据场景选择回答信号量和互斥锁之间的区别&#xff1a; 信号量 信号量简介 队列(queue)…

国产嵌入式操作系统发展思考 | 何小庆

国产嵌入式操作系统发展思考 偶然翻到了这篇老文章&#xff0c;出自何小庆&#xff08;《嵌入式操作系统风云录&#xff1a;历史演进与物联网未来》作者&#xff09;&#xff0c;写的很好&#xff0c;汇总了当下国产 OS 的状态&#xff0c;遂分享出来。本文源自微博“麦克泰技术…

初识RTOS

缺点&#xff1a; 如果一心多用&#xff0c;上一秒钟喂饭&#xff0c;下一秒钟回同事信息。 虽然还是一个脑子&#xff0c;一次智能处理一件事&#xff0c;但是给人的感觉就不会像上面那样了。人体就是一个嵌入式。 CPU是他的大脑。 手就是总线&#xff0c;可以操作芯片之外的…

如何给R128在FreeRTOS下配置/data目录

在调试音频、usb等模块时&#xff0c;会发现SDK的根目录下没有/data该目录&#xff0c;导致无法存储所需要的文件&#xff0c;这就是因为/data目录没有配置好的原因。 1、选上配置 首先需要选上的配置&#xff1a; 运行mrtos_menuconfig&#xff0c;选上COMPONENT_LITTLEFS …

1803_ChibiOS网络书籍阅读_嵌入式RTOS介绍

全部学习汇总&#xff1a; GreyZhang/g_ChibiOS: I found a new RTOS called ChibiOS and it seems interesting! (github.com) 1. RTOS指的是实时性操作系统&#xff0c;但是并不是只有嵌入式领域使用RTOS。然而&#xff0c;嵌入式是RTOS的主要使用领域。 2. 一般的RTOS有一组…

FreeRTOS源码详解与应用开发全部资料

FreeRTOS源码详解与应用开发全部资料 最近找这个资料的人比较多&#xff0c;好心的小编就来分享一些关于FreeRTOS的详解和开发资料比较多&#xff0c;文件比较多&#xff0c;分享部分RTOS低功耗设计原理和实现的部分&#xff0c;有兴趣的小伙伴可以到闯客网技术论坛下载&#x…

1814_ChibiOS中的时间以及时间间隔处理

全部学习汇总&#xff1a; GreyZhang/g_ChibiOS: I found a new RTOS called ChibiOS and it seems interesting! (github.com) 1. 时间的相关配置&#xff0c;有tick的计数精度、时钟频率、间隔时间精度、时间类型大小等不同的配置。这些参数&#xff0c;涉及到系统的时间计数…

优先级反转及ucos对该情况的处理

如图所示&#xff0c;三个任务L,M,H&#xff0c; 中等优先级的任务M抢占cpu&#xff0c;已获取信号量的低优先级任务L无法执行并释放信号量&#xff0c;导致等待信号量而阻塞的高优先级任务H必须等中等任务M释放CPU而使L任务执行释放信号量才可继续执行&#xff0c;从用户宏观…