spsr专题

spsr 的恢复出错,导致 thumb 指令集的 it 条件运行指令运行异常,清晰的调试思路帮助快速解决问题

记一次调试过程 这是一个在 arm 架构上的 RTOS 上的调试过程。问题现象为使用 thumb 指令集的 libgcc 库的情况下,浮点运算随机出错。经过一番追踪调试,逐步缩小问题范围,最后定位问题,成功解决。 场景 在某款的国产 RTOS 上,由于客户应用需要,使用了thumb 指令集编译的 libgcc 的库,导致了同时运行了 arm 指令集和 thumb 指令集的代码。原本的 RTO

ARM V8 特殊寄存器之SPSR、ELR和SP

ELR (exception link register) 保存exception返回地址; SPSR (saved processor state register) 执行exception前保存当前的processor state PSTATE 在ARMv8架构中,使用PSTATE用来描述当前处理器的状态信息。PSTATE不是一个寄存器,它表示的是保存当前 process 状态信息的一组

ARM —— CPSR与SPSR

目录 CPSR简介 SPSR简介 CPSR简介 全称:程序状态寄存器(current program status register) 用户级编程时用于存储条件码任何处理器模式下被访问两种运行状态:ARM状态(32位)、Thumb状态(16位),两种状态之间可任意切换七种运行模式:usr(用户)、fiq(快速中断)、irq(外部中断)、svc(管理)、sys(系统)、abt(数据