Question Bank
按知识、方向与难度筛选;每道题都有分层回答和工程追问。
Harvard 结构让指令和数据拥有独立存储或通路,可并行访问;冯·诺依曼结构共享存储与总线。现代 MCU 常是改进型 Harvard:统一地址空间,但内部指令、数据总线和 Cache 分离。
LDREX 读取并建立独占监视,STREX 仅在监视条件仍有效时写入并报告成功;中断、其他主设备写入或实现事件可能清除监视,所以比较交换必须在循环中重试。它解决原子性,内存顺序仍需合适屏障。
寄存器位可能是写 1 清零、读清零、只写命令或硬件并发更新;普通 `reg |= mask` 会先读出全部位再写回,可能清除状态或覆盖硬件新值。必须按手册使用专用 SET/CLEAR 寄存器或精确写值。
Pending 表示异常请求已等待处理,Active 表示处理器正在执行该异常。ISR 期间同一来源再次触发可再次置 Pending,退出后可能立即重入;是否丢失多次事件取决于外设状态位是计数、锁存还是合并。
传统 RISC 强调规则编码、Load/Store 和便于流水,CISC 提供更复杂多样的指令与寻址;现代处理器常把复杂指令译成内部微操作,也让 RISC ISA 加入丰富扩展,边界已经模糊。
SysTick 通常是 24 位向下计数器,可选时钟源也依内核和芯片实现,单次周期受重装值上限限制。长时间应由软件累计或低功耗定时器承担,还要考虑时钟动态变化和睡眠停钟。
异常退出时若已有待处理中断,Tail-Chaining 可跳过完整出栈再入栈,直接切换处理程序;入栈期间若更高优先级异常到达,Late Arrival 可先服务更高者。这些优化降低固定开销但不改变优先级规则。