freertos

wotaifuzao7 小时前
stm32·嵌入式硬件·can·freertos·uart·modbus·spi
STM32多协议网关-FreeRTOS事件驱动架构实战阅读时间:18-25 分钟 难度系数:⭐⭐⭐⭐⭐ 关键词:STM32、FreeRTOS、多协议网关、CAN、UART、SPI、I2C、事件驱动、DMA
Hello_Embed2 天前
笔记·学习·嵌入式·freertos·modbus
libmodbus 源码分析(接收请求篇)在上一篇笔记中,我们深入拆解了 libmodbus 主设备发送请求的完整源码流程,掌握了 Modbus 报文的构造、校验与发送逻辑。而 Modbus 通信是双向交互的,从设备的核心职责是接收主设备的请求报文、解析并执行对应操作、返回响应结果。本次笔记将聚焦 libmodbus 从设备接收请求的场景,拆解从初始化到报文接收、完整性校验的完整流程,重点解析核心接收函数与超时机制,帮助你完整掌握 libmodbus 的双向通信逻辑,为后续实现完整的 Modbus 主从通信打下基础。
Hello_Embed2 天前
笔记·单片机·嵌入式·freertos·libmodbus
libmodbus 源码分析(发送请求篇)在上一篇笔记中,我们完成了 libmodbus 库的介绍、源码获取与阅读工具的实操,为深入研读源码打下了基础。libmodbus 的核心价值在于封装了 Modbus 协议的底层细节,而发送请求是 Modbus 主设备的核心操作之一。本次笔记将以modbus_write_bits(写多个线圈)函数为例,拆解 libmodbus 发送请求的完整执行流程,深入解析每一步的源码逻辑与核心结构体作用,帮助你理解 libmodbus 的底层封装思路,为后续的二次开发与裸机移植提供理论支撑。
wotaifuzao3 天前
c语言·stm32·嵌入式硬件·freertos·状态机·事件驱动·嵌入式架构
STM32+FreeRTOS 长期可维护架构设计(事件驱动篇)-- 告别“屎山”代码在嵌入式开发圈,有一个心照不宣的噩梦:Demo 阶段风驰电掣,交付半年后寸步难行。你可能经历过这样的场景:
醉逍遥_祥3 天前
freertos
FreeRTOS为什么是实时系统&实时性如何体现简单来说,FreeRTOS 的 “实时性” 核心是能保证关键任务在规定的时间窗口内响应和完成,而非像普通分时操作系统(如桌面 Linux)那样 “尽力而为”,这一特性由其内核设计和调度机制直接支撑。
Zeku4 天前
stm32·freertos·linux驱动开发·linux应用开发
20260125 - Linu驱动学习笔记:SPI-OLED测试OLED的D/C引脚电平逻辑:设备树定义:D/C引脚接在了GPIO4_20,即116号引脚,在APP程序中控制即可,不需要写进驱动。
Zeku5 天前
stm32·freertos·linux驱动开发·linux应用开发
用户通用驱动spidev.c与设备匹配问题发现了一个奇怪的现象:设备树定义:spi_driver定义:转入of_match_table的设备列表:
摆摊的豆丁5 天前
freertos
FreeRTOS Kernel 配置详解FreeRTOS Kernel 通过 FreeRTOSConfig.h 文件进行配置,所有配置项都以 config 开头。这些配置项直接影响:
摆摊的豆丁5 天前
网络·网络协议·tcp/ip·freertos
FreeRTOS-Plus-TCP 协议支持与网络编程指南FreeRTOS-Plus-TCP 是一个轻量级的 TCP/IP 协议栈,支持以下协议:所有协议都可以通过 FreeRTOSIPConfig.h 配置启用或禁用:
摆摊的豆丁6 天前
物联网·性能优化·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_Embed6 天前
笔记·单片机·嵌入式·freertos·usb
USB 虚拟串口源码改造与 FreeRTOS 适配在上一篇笔记中,我们完成了 USBX 组件的手工移植并实现了基础的 USB 虚拟串口功能,能够实现与 PC 端的简单数据收发。但原有源码的收发逻辑缺乏可靠的同步机制与数据缓存机制,在实际工程应用中容易出现数据丢失、发送超时无响应等问题。本次笔记将基于 FreeRTOS 的信号量与消息队列,对 USB 虚拟串口的源码进行改造,实现可靠的阻塞式发送与队列化接收,让 USB 串口功能更符合嵌入式工程的实战需求,同时夯实 FreeRTOS 与 USBX 结合使用的核心技巧。
Zeku6 天前
stm32·freertos·linux驱动开发·linux应用开发
Linux驱动学习笔记:SPI子系统中的内核线程初始化kthread_queue_work 明明只是把一个“任务”扔进队列,为什么它最终执行的代码偏偏会是 __spi_pump_messages 这个函数?它是怎么绑定上去的?
Zeku6 天前
stm32·freertos·linux驱动开发·linux应用开发
Linux驱动学习笔记:spi-imx.c收发消息的核心流程关键理解:设计模式:函数指针表,实现多型号支持
Zeku7 天前
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
Zeku7 天前
stm32·freertos·linux驱动开发·linux应用开发
借助通用驱动spidev实现SPI全双工通信关键理解:这个ioctl调用的是spidev_message()函数:TLC5615是10位串行DAC,时序如下:
Zeku9 天前
stm32·freertos·linux驱动开发·linux应用开发
20260120 - Linux驱动学习笔记:SPI子系统核心层到具体硬件驱动详细追踪从spi.c中的函数接口 spi_write() 到 spi-imx.c 中具体硬件操作的完整调用链。
炸膛坦客11 天前
stm32·操作系统·freertos
FreeRTOS 学习:(二十四)任务状态与信息查询 API 函数除了前面讲解的核心任务相关函数,其实 FreeRTOS 还有很多与任务相关的 API 函数,不过这些 API 函数大多都是辅助函数:
Zeku12 天前
stm32·freertos·linux驱动开发·linux应用开发
Linux内核中SPI 子系统的整体架构关键点:
炸膛坦客12 天前
stm32·操作系统·freertos
FreeRTOS 学习:(二十五)任务时间统计相关 API 函数函数有很多,但是常用的就一个。这个函数主要用于调试,实际产品中一般不用,因为占用时间还是比较大的声明:Void vTaskGetRunTimeStats( char * pcWriteBuffer )
Hello_Embed14 天前
笔记·单片机·学习·操作系统·嵌入式·freertos
RS485 双串口通信 + LCD 实时显示(DMA+IDLE 空闲中断版)本篇笔记将介绍串口 UART 开发中效率最优的编程方法 ——IDLE 空闲中断。前文我们依次讲解并实现了串口的查询、中断、DMA 三种通信方式,三种方式各有适配场景但也存在相应的短板,而 IDLE 空闲中断的引入,能完美解决串口数据传输的核心痛点,搭配 DMA 使用更是能将串口接收的稳定性与程序运行效率拉满。本次依旧基于 FreeRTOS 多任务完成开发,结合队列实现数据的安全中转,延续 RS485 双串口通信 + LCD 实时显示的核心功能。