技术栈
rtos
山木嵌入式
16 小时前
stm32
·
单片机
·
rtos
·
任务调度器
·
裸机开发
【STM32实战】轻量级任务调度器实现
在STM32裸机开发中,我们经常需要处理多个周期性任务(比如LED闪烁、按键扫描、传感器采集、串口通信)。传统的轮询方式(死循环里依次调用所有任务)很容易出现“任务阻塞”问题——比如某个任务执行时间稍长,就会导致其他任务的执行周期被打乱。
一枝小雨
19 小时前
单片机
·
架构
·
嵌入式
·
risc-v
·
rtos
·
内核原理
RISC-V架构sp寄存器 & RISC-V架构下FreeRTOS任务上下文保存与恢复
目录0 相关内容1 主栈、中断栈、RTOS任务栈 与 sp、mscratch 寄存器1.1 三个栈的概念与物理存在
山木嵌入式
3 天前
stm32
·
操作系统
·
嵌入式
·
freertos
·
rtos
FreeRTOS从入门到进阶:核心概念与调度原理全解析
在嵌入式开发领域,实时操作系统(RTOS)是处理多任务、保障实时性的核心工具,而FreeRTOS凭借轻量化、开源(MIT许可)、易适配的特性,成为嵌入式开发者的首选。本文将从基础认知、学习路线、调度原理、核心操作四个维度,全方位拆解FreeRTOS的核心概念,帮你快速搭建FreeRTOS的知识框架。
大志出奇迹
7 天前
c语言
·
stm32
·
单片机
·
mcu
·
算法
·
rtos
传输协议为大端,STM32为小端,数据传输的字节序问题
本系列为从零编写完整 Bootloader 项目,涵盖下位机 Bootloader、PC 端上位机(Qt)、设备端 APP 全套实现。Bootloader 与上位机支持 UART、WIFI(基于 ESP32-S3 SPI 实现)、ETH 三种通讯方式(ETH 功能当前仍在调试优化)。为统一通讯规范、保证兼容性,我设计了自定义类 MODBUS 数据帧协议,所有多字节数据均采用大端序传输。
W.W.H.
10 天前
内存管理
·
栈
·
堆
·
rtos
·
heap
·
stack
嵌入式栈堆管理与内存分配详解
在 MCU(尤其是运行 FreeRTOS 的 Cortex-M)开发中,“堆栈”这个词经常让初学者混淆,因为它其实包含了四个不同的概念。下面我们把整个内存布局梳理清楚。
吃米饭
18 天前
stm32
·
嵌入式
·
freertos
·
rtos
HC32L021C8UB 移植 FreeRTOS
FreeRTOS项目必须至少包含以下源文件([compiler] 和 [architecture] 分别是用于创建移植的编译器和移植运行的架构):
metaRTC
22 天前
单片机
·
嵌入式硬件
·
webrtc
·
实时音视频
·
rtos
metaRTC8 成功适配 RTOS:开启 MCU/嵌入式实时音视频新时代
随着物联网与智能终端的快速发展,越来越多的设备正从“功能设备”迈向“智能交互终端”。在这一过程中,实时音视频通信能力逐渐成为核心能力之一。然而,传统的实时音视频技术(如 WebRTC)长期依赖 Linux、Android、iOS 等操作系统,这在资源受限的 MCU 和轻量级嵌入式设备中难以落地。
W.W.H.
1 个月前
经验分享
·
单片机
·
操作系统
·
freertos
·
rtos
FreeRTOS移植(保姆级教程)
FreeRTOS是一个可以基于ROM运行的、可裁剪的、抢占式、实时多任务内核,具有高度可移植性,特点:公开源代码、可移植性、可固化、可裁剪、多任务、占先式,特别适合于微处理器和控制器,适合很多商业操作系统性能相当的实时操作系统(RTOS)。在使用GD32F103单片机项目移植过FreeRTOS,这里作为一个基础教学版简单记录一下移植过程,欢迎指正!
青鱼29
1 个月前
单片机
·
嵌入式硬件
·
rtos
·
systick_handler
SysTick_Handler在裸机和RTOS中的区别
SysTick_Handler()是Cortex-M 内核的系统滴答定时器中断服务函数,整个过程:硬件自动完成。
听风lighting
1 个月前
linux
·
c
·
rtt
·
rtos
·
rtt-smart
RTT-SMART学习 (二):启动过程
启动代码在cortex-a/start_gcc.S C文件经过预处理,编译,汇编和链接才能变成可执行文件,所以学习启动过程的第一步就是看链接文件,在这里也正好复习复习cortexM下的启动相关的文件
听风lighting
1 个月前
linux
·
嵌入式
·
c
·
rtos
·
rtt-smart
RTT-SMART学习(一):环境搭建
之前的学习用的都是单核的cortexM内核 感觉多少有点“落后"与现代的CPU格格不如了,还是得了解点现代一点的CPU(带个MMU 带个缓存 多核) + 现代一点的操作系统的知识,但是Linux的体系太大啃起来又容易放弃,哎正好就发现RTT去年发布的RTT-SMART了,那就基于进行进一步的学习吧.
W.W.H.
1 个月前
linux
·
经验分享
·
操作系统
·
rtos
嵌入式常见面试题——操作系统与RTOS篇
进程是程序的一次执行实例,拥有独立的地址空间和系统资源,进程间隔离性强、开销大。线程是进程内的执行单元,多个线程共享所属进程的资源,但各自拥有独立的栈和寄存器状态。线程轻量、通信高效,但需同步机制保障安全。
戏舟的嵌入式开源笔记
1 个月前
rtos
·
嵌入式软件
RP2040(移植FreeRTOS-SMP)
FreeRTOS的一般移植步骤如下:获取源码:从官方下载 FreeRTOS 源码包选择 portable 层:根据目标芯片选择对应的 port 文件(如 portable/GCC/ARM_CM4),包含上下文切换的汇编代码
W.W.H.
1 个月前
互斥锁
·
rtos
·
互斥量
·
实时系统
·
优先级反转
·
优先级继承
优先级反转问题(含解决案例)
优先级反转(Priority Inversion)是实时系统中一个经典问题:当高优先级任务因等待低优先级任务占用的资源而被阻塞时,一个中优先级任务抢占CPU,导致高优先级任务迟迟无法运行。互斥量配合优先级继承协议可以解决这一问题:当低优先级任务持有锁且高优先级任务开始等待时,低优先级任务临时继承高优先级任务的优先级,从而防止中优先级任务抢占,使低优先级任务尽快释放锁。
.普通人
1 个月前
操作系统
·
rtos
freertos源码解析(里面的源码来源于另一个博主,我这里只是讲一下我自己的理解)
我借鉴的博主文章链接为这个安迪西嵌入式其实这里并不复杂,就是几个if-else语句,先分配栈,如果栈没有分配成功,那么就是让任务控制块为NULL,就表示失败,然后返回 如果成功的话,就分配任务控制块,然后看是否成功,如果没有成功就需要释放刚刚分配的栈的空间,因为如果不释放,那么栈就没有任务可以操作了,就会变成野内存,导致内存泄漏,如果成功的话,就把我们任务控制块中的任务堆栈起始地址指向我们刚刚从内存申请的空间 如果成功了进行下一步新建任务初始化,因为在这里我们只是分配了栈空间,分配了任务控制块TCB,但是
dqsh06
2 个月前
stm32
·
单片机
·
嵌入式硬件
·
rtos
·
threadx
振兴中华之threadX RTOS移植到stm32用stm32cubeMX 保姆级教程
我曾经写了一个PX5 RTOS移植到stm32用stm32cubeMX的保姆级教程,链接如下https://blog.csdn.net/dqsh06/article/details/150612971?spm=1001.2014.3001.5501
Truffle7电子
2 个月前
stm32
·
单片机
·
嵌入式硬件
·
rtos
STM32理论 —— FreeRTOS:中断管理、列表
关于FreeRTOS 的API函数,在FreeRTOS官网文档中都有详细介绍;关于CMSIS OS 所有的API 函数,则在Arm 的CMSIS-RTOS2文档中有详细介绍;下面不一一详细展开;
Truffle7电子
2 个月前
stm32
·
嵌入式
·
rtos
STM32理论 —— FreeRTOS:任务
关于FreeRTOS 的API函数,在FreeRTOS官网文档中都有详细介绍,下面不一一详细展开;任务具有以下几个特性:
大熊背
2 个月前
linux
·
算法
·
rtos
·
isp pipeline
·
3dnr
ISP离线模式应用(二)-如何利用 ISP 离线模式 加速 3DNR 收敛
目录一、先搞懂:实时模式 3DNR 为什么收敛慢?二、离线模式 加速 3DNR 收敛 的核心原理三、利用离线模式加速 3DNR 收敛的 4 种实战方法
aspirestro三水哥
2 个月前
rtos
·
xenomai
9.3工欲善其事必先利其器
在 Visual Studio Code (VSCode) 中,可以通过设置来实现代码在 80 列时自动换行。 以下是具体步骤: