2.1.1.2 银行寄存器切换机制


文档摘要

2.1.1.2 银行寄存器切换机制 2.1.1.2 银行寄存器切换机制:当 SVC 返回时,R0 突然“失忆”——一次由 CPSR.F 位残留引发的中断嵌套静默崩溃实录 你有没有遇到过这样的场景? 在裸机环境下调试一个基于 ARMv7-A 的实时任务调度器,一切看似正常:系统启动、定时器初始化、SVC 调用进入内核态、上下文保存、任务切换、返回用户态……直到某天,你在 SVC 处理函数末尾加了一行 ,再从 SVC 返回后,发现用户代码里读到的 不是 ,也不是调用前的值,而是一个完全不可预测的随机数——仿佛它被某个幽灵悄悄重写了。 更诡异的是:这个现象只在启用 FIQ 中断(且 FIQ handler 中使用了 )后才复现;关掉 FIQ,问题消失;


发布者: 作者: 转发
评论区 (0)
U