自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 FreeRTOS的任务创建在内存上的体现

本文从内存视角分析FreeRTOS任务创建过程,指出任务由TCB(任务控制块)和栈空间两部分组成,都存储在堆内存中。任务创建过程包括:1)申请内存并初始化TCB,设置任务名、优先级等属性;2)初始化任务栈空间,保存任务上下文信息,其中PC寄存器指向任务函数入口。文章还解析了任务创建API参数含义,并展示了栈空间初始化结构图,强调任务切换时上下文信息的重要性。最后补充了PC和EXC_RETURN寄存器的作用说明。

2025-10-24 08:56:20 1649

原创 浅析CM3内核“双堆栈“机制在FreeRTOS任务切换中的应用

本文深入解析FreeRTOS任务切换的底层机制,重点剖析了PendSV中断中的关键汇编代码。文章从CM3内核的"双堆栈机制"(1个主栈+N个任务栈)入手,解释了MSP和PSP指针的作用。通过逐行分析xPortPendSVHandler汇编函数,详细揭示了任务上下文保存与恢复的全过程:当前任务的寄存器值被压入其专属栈空间,新任务的上下文从栈中弹出并恢复。作者特别强调了pxTopOfStack指针在任务切换中的闭环机制,以及中断屏蔽寄存器basepri的保护作用。

2025-09-24 15:04:53 1981 1

原创 深入内核理解ARM单片机的中断机制

以STM32F407为例,中断执行流程如下:a.中断触发(中断源):外设或内核产生中断信号,置位中断标志位。CPU检测到中断请求,若满足优先级条件(未被更高优先级中断抢占、当前指令执行完毕等),则暂停当前任务。自动保存现场(PC、寄存器等上下文)到栈中。根据中断向量表找到对应ISR地址并跳转执行。在ISR中完成具体功能(如数据读取、状态更新等),需手动清除中断标志位。执行完ISR后,自动恢复现场,返回原程序继续执行。需配置中断优先级分组、使能外设及NVIC中断通道,确保标志位正确清除。

2025-06-09 12:21:18 1759 1

空空如也

空空如也

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

TA关注的人

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