自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 【无标题】

故引入队列集,队列集没有队列句柄时可以阻塞等待,任意一个队列被写入数据后,队列集 会检测到该队列有数据,唤醒。队列:是 “数据缓冲区”,实现不同任务 / 中断间的异步通信(如红外模块写队列→InputTask读队列解析数据写输入队列、编码器模块写队列→InputTask读队列解析数据写输入数据,应用任务读输入队列执行操作),解耦模块依赖。)具体用法:创建队列集,往队列集加队列,读队列集接收到句柄,接收到的句柄(临时变量)与定义队列静态全局句柄比较判断,用静态全局句柄操作队列。

2025-08-24 14:56:52 50

原创 C语言关键字volatile、static、const、extern详解

告诉编译器,被修饰的变量可能会被意外地修改,编译器不应该对访问该变量的代码进行优化(如将变量缓存到寄存器中),每次访问都要从内存中读取变量的最新值,以确保程序能正确反映变量的真实状态。修饰的局部变量存储在静态存储区,其生命周期从程序开始到结束,不会在函数调用结束后被销毁,且只会初始化一次。修饰的全局变量,其作用域被限制在定义它的源文件内,其他源文件无法访问该变量。修饰的函数,其链接属性变为内部链接,意味着该函数只能在定义它的源文件中被调用,其他源文件不能调用此函数,同样可以减少命名冲突。

2025-08-04 20:19:26 194

原创 动态VS静态任务创建:FreeRTOS核心设计解析

两种方式,动态创建通过 vTaskCreate () 由内核从堆中动态分配堆栈和 TCB 内存,适用于对灵活性要求高的场景,任务删除后内存会自动释放。静态创建通过 xTaskCreateStatic () ,任务的堆栈和 TCB 内存由用户提前静态分配(如全局数组、静态变量),并传递给内核,适用于对内存有严格控制的场景,任务删除后内存需手动管理等内容。这种设计实现了 "用户接口" 与 "内核实现" 的分离:开发者只需通过句柄和 API 操作任务,无需了解内核调度的细节;

2025-08-01 15:15:27 154

原创 ARM芯片运行机制详解

摘要:STM32程序执行过程中,Flash存储代码(如0x08001ae2处的BLadd指令),RAM管理运行时数据。函数调用时,CPU自动保存返回地址到lr寄存器,通过PUSH/SUB指令在栈空间(起始0x20000400)保存现场。函数执行完通过POP指令恢复现场并返回。整个过程展示了Flash与RAM的协同工作,以及栈在函数调用中的关键作用,包括参数传递、局部变量存储和返回地址维护等机制。

2025-07-21 14:37:20 299

原创 STM32F103时钟系统全解析

总线时钟:SYSCLK 通过AHB预分频器得到AHB总线时钟(SysTick 是 Cortex-M3 内核的核心外设,直接挂载在AHB总线上),AHB总线时钟后又分别分频得到APB1总线时钟,APB2总线时钟。SysTick,TIM1,TIM2,GPIO,IIC,SPI,UART都是挂在上总线上的外设,外设的运行时钟依赖于其挂载的总线时钟,需通过时钟树配置。stm32F103时钟。

2025-07-20 14:31:06 130

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除