MCU上的无锁原子读操作


原子读操作是在MCU并发编程中常用的操作,简单举个例子来阐述问题:
我们使用RTOS或裸机状态编程时,必然需要一个全局时钟基准,通常是在一个定时器中断中累加实现,简化代码如下:
static unsigned long volatile __jiffies = 0; /* 全局时钟基准节拍累加器 */
MCU是Microcontroller Unit(微控制器单元)的缩写,它是一种集成了中央处理器(CPU)、存储器(ROM、RAM)、输入/输出端口(I/O)、定时器(Timer)、串行通信接口(UART、SPI、I2C等)和其他外围设备控制器的单个芯片。MCU通常用于嵌入式系统中,用于控制各种电子设备和系统。
由于其集成度高、体积小、功耗低以及成本相对较低等特点,MCU被广泛应用于各种嵌入式系统中,例如智能家居设备、医疗设备、汽车电子系统、工业自动化等。MCU的选择通常基于应用的需求,如处理性能、功耗、外设接口等因素。


原子读操作是在MCU并发编程中常用的操作,简单举个例子来阐述问题:
我们使用RTOS或裸机状态编程时,必然需要一个全局时钟基准,通常是在一个定时器中断中累加实现,简化代码如下:
static unsigned long volatile __jiffies = 0; /* 全局时钟基准节拍累加器 */


作者:代文豪、罗克露、雷健


① 上电复位:是由外部总线产生的一种异步复位,单片机电压监测电路检测到电源电压 VDD 上升时,会产生一个上电复位脉冲,由内部计时器进行延时后等待电源电压上升到可以工作的电压后,整个单片机系统就完成了上电复位。注意上电复位电路并不会检测延时过后的系统电压,如果此时的电压低于单片机的最小工作电压,整个上电复位就失效了。


机器中使用的电机大小不一,有的比手指还小,有的比卡车还大。 无论是在仪表上定位指示器,还是驱动机车,对于需要能够相当快地切换高电压和电流的控制电路来说,这些电感负载会对其造成严重破坏。


一、区别


我们在从事MCU应用开发过程中,难免会碰到MCU芯片异常的问题,其中有些异常比较严重。比如异常复位,表现为复位脚有电平跳变或者干脆处于复位电平;在做代码调试跟踪时,发现代码根本就进不到用户main()程序;或者时不时就感觉芯片死掉了,功能完全不可控等。
出现类似严重异常情况的原因我大致总结了以下几方面:


从互联网、到移动互联网、再到物联网
从互联网、到移动互联网、再到物联网,连接的形态正在发生着翻天覆地的变化。
互联网时代,主要是电脑与网络间的连接;
移动互联网时代,则使得手机与电脑和网络连接在一起。


永磁同步马达(PMSM)通常用于高效能、低功耗的马达驱动。高效能马达控制的特征为可在整个速度范围内平稳旋转,零速度时有完全的扭矩(Torque)控制,且能达到快速加速和减速。为了达到上述要求,PMSM采用向量控制技术,该技术通常还被称为磁场定向控制(FOC)技术。


在当今群雄逐鹿、竞争激烈的可穿戴市场中,获得成功的关键在于差异化的产品特性和服务。制造商和服务提供商竞相争夺同样的可穿戴“市场大饼”。成功设计可穿戴式产品是一项复杂的工程。成功的产品需要成本、性能、功能、电池使用寿命的完美组合,必须具备引人注目的外观、感受和表现以吸引消费者。我们需要通过关注最终用户体验和探索使用情形,以便在可穿戴产品中集成各种不同元素并完成复杂的权衡。


便携式系统通常用电池供电,而电池使用寿命取决于系统的功耗。在提倡“绿色环保”计划的今天,即便是市电供电的应用也要把功耗作为一项重要的产品选择标准。