freertos

Hello_Embed7 小时前
笔记·stm32·单片机·嵌入式·freertos·libmodbus
libmodbus 移植 STM32(USB 串口后端篇)此前我们已经完成了 STM32 平台 USB 串口的基础收发功能实现,同时基于 libmodbus 改造出了适配 STM32+FreeRTOS 的空模板。为了打通完整的通信链路,实现USB 串口作为 libmodbus 底层通信后端的核心目标,需要将两套独立的源码进行融合适配。本篇笔记将重点讲解源码合并编译、内存管理替换、USB 接口适配等关键步骤,梳理移植的核心逻辑与实操要点。
wotaifuzao16 小时前
stm32·嵌入式硬件·架构·freertos·事件驱动·嵌入式架构
STM32 + FreeRTOS 的订阅通知组件架构做嵌入式开发,尤其是当项目引入了 FreeRTOS 之后,你是否经历过这样一个时刻: 项目初期,一切都很美好。你有一个按键任务,一个串口任务,逻辑清晰,代码行云流水。
wotaifuzao6 天前
stm32·嵌入式硬件·can·freertos·uart·modbus·spi
STM32多协议网关-FreeRTOS事件驱动架构实战阅读时间:18-25 分钟 难度系数:⭐⭐⭐⭐⭐ 关键词:STM32、FreeRTOS、多协议网关、CAN、UART、SPI、I2C、事件驱动、DMA
Hello_Embed8 天前
笔记·学习·嵌入式·freertos·modbus
libmodbus 源码分析(接收请求篇)在上一篇笔记中,我们深入拆解了 libmodbus 主设备发送请求的完整源码流程,掌握了 Modbus 报文的构造、校验与发送逻辑。而 Modbus 通信是双向交互的,从设备的核心职责是接收主设备的请求报文、解析并执行对应操作、返回响应结果。本次笔记将聚焦 libmodbus 从设备接收请求的场景,拆解从初始化到报文接收、完整性校验的完整流程,重点解析核心接收函数与超时机制,帮助你完整掌握 libmodbus 的双向通信逻辑,为后续实现完整的 Modbus 主从通信打下基础。
Hello_Embed9 天前
笔记·单片机·嵌入式·freertos·libmodbus
libmodbus 源码分析(发送请求篇)在上一篇笔记中,我们完成了 libmodbus 库的介绍、源码获取与阅读工具的实操,为深入研读源码打下了基础。libmodbus 的核心价值在于封装了 Modbus 协议的底层细节,而发送请求是 Modbus 主设备的核心操作之一。本次笔记将以modbus_write_bits(写多个线圈)函数为例,拆解 libmodbus 发送请求的完整执行流程,深入解析每一步的源码逻辑与核心结构体作用,帮助你理解 libmodbus 的底层封装思路,为后续的二次开发与裸机移植提供理论支撑。
wotaifuzao9 天前
c语言·stm32·嵌入式硬件·freertos·状态机·事件驱动·嵌入式架构
STM32+FreeRTOS 长期可维护架构设计(事件驱动篇)-- 告别“屎山”代码在嵌入式开发圈,有一个心照不宣的噩梦:Demo 阶段风驰电掣,交付半年后寸步难行。你可能经历过这样的场景:
醉逍遥_祥10 天前
freertos
FreeRTOS为什么是实时系统&实时性如何体现简单来说,FreeRTOS 的 “实时性” 核心是能保证关键任务在规定的时间窗口内响应和完成,而非像普通分时操作系统(如桌面 Linux)那样 “尽力而为”,这一特性由其内核设计和调度机制直接支撑。
Zeku10 天前
stm32·freertos·linux驱动开发·linux应用开发
20260125 - Linu驱动学习笔记:SPI-OLED测试OLED的D/C引脚电平逻辑:设备树定义:D/C引脚接在了GPIO4_20,即116号引脚,在APP程序中控制即可,不需要写进驱动。
Zeku11 天前
stm32·freertos·linux驱动开发·linux应用开发
用户通用驱动spidev.c与设备匹配问题发现了一个奇怪的现象:设备树定义:spi_driver定义:转入of_match_table的设备列表:
摆摊的豆丁11 天前
freertos
FreeRTOS Kernel 配置详解FreeRTOS Kernel 通过 FreeRTOSConfig.h 文件进行配置,所有配置项都以 config 开头。这些配置项直接影响:
摆摊的豆丁12 天前
网络·网络协议·tcp/ip·freertos
FreeRTOS-Plus-TCP 协议支持与网络编程指南FreeRTOS-Plus-TCP 是一个轻量级的 TCP/IP 协议栈,支持以下协议:所有协议都可以通过 FreeRTOSIPConfig.h 配置启用或禁用:
摆摊的豆丁12 天前
物联网·性能优化·freertos·aws
AWS IoT MQTT File Streams 性能优化分析aws-iot-core-mqtt-file-streams-embedded-c 是 AWS IoT 提供的专门用于通过 MQTT 协议高效传输大文件的库。它通过分块传输(Block-based Transfer)、**按需请求(On-demand Request)和流式处理(Streaming)**等机制,显著改善了传统 MQTT 文件传输的效率和性能。
Hello_Embed12 天前
笔记·单片机·嵌入式·freertos·usb
USB 虚拟串口源码改造与 FreeRTOS 适配在上一篇笔记中,我们完成了 USBX 组件的手工移植并实现了基础的 USB 虚拟串口功能,能够实现与 PC 端的简单数据收发。但原有源码的收发逻辑缺乏可靠的同步机制与数据缓存机制,在实际工程应用中容易出现数据丢失、发送超时无响应等问题。本次笔记将基于 FreeRTOS 的信号量与消息队列,对 USB 虚拟串口的源码进行改造,实现可靠的阻塞式发送与队列化接收,让 USB 串口功能更符合嵌入式工程的实战需求,同时夯实 FreeRTOS 与 USBX 结合使用的核心技巧。
Zeku12 天前
stm32·freertos·linux驱动开发·linux应用开发
Linux驱动学习笔记:SPI子系统中的内核线程初始化kthread_queue_work 明明只是把一个“任务”扔进队列,为什么它最终执行的代码偏偏会是 __spi_pump_messages 这个函数?它是怎么绑定上去的?
Zeku13 天前
stm32·freertos·linux驱动开发·linux应用开发
Linux驱动学习笔记:spi-imx.c收发消息的核心流程关键理解:设计模式:函数指针表,实现多型号支持
Zeku13 天前
stm32·freertos·linux驱动开发·linux应用开发
内核日志分析:__spi_pump_messages的Caller_Optimization和KWorker_Thread[ 900.082769] [SPICORE_TRACE] __spi_sync: = => Enter. [ 900.088086] [SPICORE_TRACE] __spi_sync: the master of this device is: spi0 (Bus Number: 0). [ 900.096874] [SPICORE_TRACE] __spi_sync: master->transfer == spi_queued_transfer, Queueing message (modern
Zeku14 天前
stm32·freertos·linux驱动开发·linux应用开发
借助通用驱动spidev实现SPI全双工通信关键理解:这个ioctl调用的是spidev_message()函数:TLC5615是10位串行DAC,时序如下:
Zeku16 天前
stm32·freertos·linux驱动开发·linux应用开发
20260120 - Linux驱动学习笔记:SPI子系统核心层到具体硬件驱动详细追踪从spi.c中的函数接口 spi_write() 到 spi-imx.c 中具体硬件操作的完整调用链。
炸膛坦客17 天前
stm32·操作系统·freertos
FreeRTOS 学习:(二十四)任务状态与信息查询 API 函数除了前面讲解的核心任务相关函数,其实 FreeRTOS 还有很多与任务相关的 API 函数,不过这些 API 函数大多都是辅助函数:
Zeku18 天前
stm32·freertos·linux驱动开发·linux应用开发
Linux内核中SPI 子系统的整体架构关键点: