MMIO 寄存器做读—改—写为什么可能误清状态位?
寄存器位可能是写 1 清零、读清零、只写命令或硬件并发更新;普通 `reg |= mask` 会先读出全部位再写回,可能清除状态或覆盖硬件新值。必须按手册使用专用 SET/CLEAR 寄存器或精确写值。
Question Bank
按知识、方向与难度筛选;每道题都有分层回答和工程追问。
寄存器位可能是写 1 清零、读清零、只写命令或硬件并发更新;普通 `reg |= mask` 会先读出全部位再写回,可能清除状态或覆盖硬件新值。必须按手册使用专用 SET/CLEAR 寄存器或精确写值。