
ISSUE
文章平均质量分 67
蓝白小手套
未来可期
展开
-
喂!你的全局变量被优化了
相信很多道友们在开发的时候都会使用共享全局变量,很多时候我们会使用全局变量实现同步机制。比如一个任务在执行到某个阶段时需要同步等待一个事件的发生,这个事件需要中断去触发,因此有些代码在设计上会使用一个全局变量去实现同步,在任务中不断地判断和等待,在中断中设置这个全局变量。针对这种代码设计,就会存在一个坑,这个坑会造成你任务出现死等的现象。之前在使用第三方驱动组件的时候遇到了这个问题,在此记录一下。原创 2025-04-12 21:56:50 · 255 阅读 · 0 评论 -
什么?获取到了未知的复位原因?
最近AM2634芯片平台的项目出了问题,在排查过程中我们需要知道复位原因。复位原因?不是读一个寄存器获取到值,然后去手册里面看这个值对应的复位原因不就好了吗,还能有什么问题?这不是,就被我遇到了。原创 2025-03-22 17:20:00 · 320 阅读 · 0 评论 -
什么?中断禁用失效了?
道友们,在嵌入式的开发中我们不管是RTOS或NO-RTOS的开发,都无法避免“多线程”的应用场景,高优先级的任务或中断打断低优先级的任务或中断,此时为了要保证共享数据的安全性,往往我们都会采用临界区保护的措施来保护我们的共享数据。临界区保护的实现可以是互斥锁、开关中断等。对于开关中断的方式包括开关全局中断、控制中断优先级两种方式。OK,这不是之前在项目中因为使用控制中断优先级做临界区保护的方式导致代码出现了问题,因此写这篇文章记录一下。原创 2025-03-22 16:58:36 · 414 阅读 · 0 评论 -
“消失的中断“
在嵌入式开发过程中,中断必不可少。道友们想必也经常因为中断问题头疼不已,今天来说说一个很常见的问题,“消失的中断”。最近项目在使用第三方MCAL的时候,就遇到了I2C中断丢失的问题,排查起来耗费了许多的时间。这里我通过一个例子来简单描述一下这个"消失的中断"是怎么回事。原创 2025-03-15 22:54:50 · 640 阅读 · 0 评论