队列邮箱

队列邮箱

官方文档参考 4.7 Using a Queue to Create a Mailbox [[FreeRTOS_Mastering_the_FreeRTOS_Real_Time_Kernel-A_Hands-On_Tutorial_Guide.pdf#page=170&selection=5,0,7

Unix系统中开发STM32重定向scanf

Unix系统中开发STM32重定向scanf

此文章方法可以一并结局重定向问题[[解决“_close is not implemented and will always fail”等编译警告]]。 重写__io_getchar函数和_read函数,即可重定向scanf输入: int __io_getchar(void) { uint8_t

Unix系统中开发STM32重定向printf

Unix系统中开发STM32重定向printf

此文章方法可以一并解决重定向问题[[解决“_close is not implemented and will always fail”等编译警告]]。 重写_write函数即可重定向printf输出: #include <stdio.h> int _write(int file, char *p

Queue 消息队列的多进单出

Queue 消息队列的多进单出

官方文档参考 107 Access by Multiple Tasks [[FreeRTOS_Mastering_the_FreeRTOS_Real_Time_Kernel-A_Hands-On_Tutorial_Guide.pdf#page=133&selection=0,3,2,24|FreeR

Queue 队列的三种数据传递

Queue 队列的三种数据传递

官方文档函数参考 Queue API [[FreeRTOS_Reference_Manual_V10.0.0.pdf#page=157&selection=4,0,4,9|FreeRTOS_Reference_Manual_V10.0.0, page 157]] 官方文档参考 4.2 Charact

栈和堆

栈和堆

栈与堆 栈(Stack): 栈用于存储局部变量和函数调用信息。栈上的内存是由系统自动管理的,当函数返回时,分配给改函数的栈内存会自动释放。 栈的大小是有限的,通常比较小。 堆(Heap): 堆用于动态内存分配。通过调用malloc、calloc或realloc函数从堆中分配内存。这些内存块的生命周期

数组指针详解

数组指针详解

前言 如需理解数组指针,需要先理解[[栈和堆]]。 数组指针详解: 现定义一个变量,并为其分配内存: char *buffer = (char *)malloc(100); *buffer = 'A'; 详解: buffer存储在栈中 buffer是一个局部变量,它是一个指针,存储在栈中。这个指针

ESP32启动流程

ESP32启动流程

官方文档参考 ESP32启动流程解释 FreeRTOS是怎样调用应用程序入口的 ?主要关注app_main()在哪里被调用。 app_main()在文件esp-idf/components/freertos/app_startup.c被调用: 调用流程,路径基于esp-idf/component,版