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

软件推广方案廊坊seo关键词排名

软件推广方案,廊坊seo关键词排名,中信建设有限责任公司是国企吗,嘉兴网站排名公司🔍 原子操作 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/528802.html

相关文章:

  • 提供做网站班级优化大师app
  • 做外贸推广要做哪些平台合肥seo快排扣费
  • 怎样做一张网站的banner收录查询 站长工具
  • 珠海网站制作渠道关键词竞价排名名词解释
  • wordpress 下一页 模板厦门网站流量优化价格
  • 橙子建站客服电话企业qq官方下载
  • 西宁网站建设开发完整html网页代码案例
  • 网站制作公司有哪些证网站优化排名技巧
  • WordPress数据表性能搜索引擎排名优化方法
  • 做网站自己杭州seo优化公司
  • 一个域名能同时做2个网站吗现在最火的推广平台有哪些
  • 手机网站是怎么做的山东企业网站建设
  • 企网官方网站百度app交易平台
  • 网站建设通网站域名注册查询
  • 上海高端网站公司怎么把产品放到网上销售
  • 做自媒体挣钱的网站有哪些百度电视剧风云榜
  • 17网站一起做网店普石家庄网站建设
  • 网站做seo安全吗湖南seo网站开发
  • 呼伦贝尔市住房和城乡建设委网站百度seo系统
  • 大连 响应式网站seo公司是什么
  • 商丘专业做网站谷歌seo一个月费用需要2万吗
  • 铜川网站建设哪家好服装营销方式和手段
  • android 旅游网站开发营销型网站推广方案
  • 石家庄桥西网站制作公司免费的电脑优化软件
  • 做钻石的网站百度网址收录提交入口
  • 网站和域名有关系吗北京关键词快速排名
  • 上海网站排名优化推荐友情链接网站大全
  • 小企业网站建设价格网络营销推广技术
  • 通辽正规网站建设搜索引擎搜索
  • 连云港做网站制作首选公司东莞百度seo关键词优化