当前位置: 首页 > wzjs >正文

wordpress网站维护页面模板视频号关键词搜索排名

wordpress网站维护页面模板,视频号关键词搜索排名,毕业设计做网站好的想法,网站的侧边栏怎么做🔍 原子操作 vs 非原子操作 特性原子操作 (Atomic)非原子操作 (Non-Atomic)定义不可中断的完整执行单元可被中断拆分的多步骤操作执行过程单指令完成(如 BSRR 写操作)需多指令完成(如“读-改-写”流程)中断影响不会被…

🔍 原子操作 vs 非原子操作

特性原子操作 (Atomic)非原子操作 (Non-Atomic)
定义不可中断的完整执行单元可被中断拆分的多步骤操作
执行过程单指令完成(如 BSRR 写操作)需多指令完成(如“读-改-写”流程)
中断影响不会被中断打断可能被中断打断导致数据不一致
线程安全天然安全(无需锁)需额外同步机制(如关中断/互斥锁)
硬件支持由CPU指令直接保证依赖软件保护
典型场景STM32的 BSRR/BRR 寄存器操作STM32的 ODR 直接修改

⚠️ 非原子操作的风险场景(以STM32的ODR为例)

假设在 主循环 和 中断函数 中同时修改 GPIOA->ODR

// 主程序流程
void main() {GPIOA->ODR |= (1 << 5);  // 步骤1: 读取ODR// 步骤2: 修改bit5// 步骤3: 写回ODR
}// 中断服务函数
void TIM_IRQHandler() {GPIOA->ODR |= (1 << 6);  // 在步骤1-3之间可能被触发!
}
危险时序
主程序: [读ODR] -> [改bit5]   -> [写回ODR]│         ▲          ▲
中断触发: └─────────┘          │[读ODR] -> [改bit6] -> [写回ODR]

结果
主程序对 PA5 的修改被中断中的 PA6 修改覆盖,导致 PA5 设置失败!


🛡️ 为什么BSRR是原子操作?

STM32 的 BSRR 寄存器设计精妙:

// 置位PA5(低16位有效)
GPIOA->BSRR = (1 << 5);     // 单指令完成:0→1// 清零PA5(高16位有效)
GPIOA->BSRR = (1 << (5 + 16)); // 单指令完成:1→0

硬件机制

  • CPU 通过单次总线写操作修改 BSRR

  • 硬件自动解析位操作,直接改变ODR状态

  • 无中间状态,不会被中断打断


🔧 非原子操作的解决方案

1. 关中断保护(裸机系统)
__disable_irq();                 // 关中断
GPIOA->ODR |= (1 << 5);          // 安全修改
__enable_irq();                  // 开中断
2. 互斥锁(RTOS系统)
osMutexAcquire(gpio_mutex, osWaitForever);  // 获取锁
GPIOA->ODR |= (1 << 5);                     
osMutexRelease(gpio_mutex);                 // 释放锁
3. 硬件原子指令(Cortex-M3/4/7)
// 使用LDREX/STREX指令(需汇编或C封装)
__atomic_or_fetch(&GPIOA->ODR, (1<<5), __ATOMIC_SEQ_CST);

💡 关键理解

  1. 原子性 = 操作不可分割
    像物理学中的原子一样不可再分,要么完整执行,要么完全不执行。

  2. 非原子操作的本质风险
    数据竞争(Data Race):多个执行流(主程序+中断/多线程)同时访问共享资源(如ODR寄存器)且至少一方在写。

  3. 嵌入式场景的典型非原子操作

    • 多步寄存器修改(如 ODRCR 等)

    • 非对齐数据访问(如32位机读写64位数据)

    • 外设状态机切换(如先读标志位再写命令)


📚 现实类比

场景原子操作非原子操作
银行转账金库直接搬钱先查账→计算→写回
交通控制整条路封闭施工车道轮流放行
GPIO控制BSRR直接开关LEDODR分步修改

非原子操作如同「拆墙时被人塞新砖」—— 最终墙体状态不可预测!

http://www.dtcms.com/wzjs/206911.html

相关文章:

  • 建设工程八大员考试网站搜索引擎营销简称seo
  • 网站建设需要注意哪些事项成都seo优化
  • 中国政府网站建设与应用国际十大市场营销公司
  • 企业品牌网站建设多少钱百度识图在线使用
  • 个人做网站犯法吗友情网站
  • 嘉善县建设局网站网络营销的5种方式
  • 青岛做公司网站注册的多吗黑科技引流软件是真的吗
  • 网站内容规划要包括什么内容百度搜索引擎竞价排名
  • b站推广首页网络推广策划
  • 宁夏银川做网站的公司广州网站优化公司排名
  • 东莞企业网站建设报价网站seo方案策划书
  • 怎么自己做网站推广成都网站seo服务
  • 泉州网站制作维护百度快速排名系统查询
  • 龙华民治网站建设公司搜索网站的浏览器
  • 住建部网站2015年城市建设统计服装店营销策划方案
  • 如何做网站的关键词排名爱站网官网
  • 大学里读网站建设九易建网站的建站模板
  • 做网站需要服务器吗百度推广排名代发
  • 宿州网站建设多少钱百度助手应用商店下载安装
  • 哪家网站设计公司好竞价托管优化公司
  • 建工教育网校官方网站企查查在线查询
  • 万业网网站建设审核云南疫情最新消息
  • 大数据精准获客软件sem优化软件选哪家
  • html商城网站源码全国十大跨境电商排名
  • 做淘宝设计能做网站吗自主建站
  • 我想给别人做网站上海网站建设seo
  • 建立网站功能荆州百度推广
  • 建设flash网站网络推广公司经营范围
  • 江苏住房和城乡建设部网站seo站内优化站外优化
  • 怎么做仿制网站广告推广费用