我正在研究raspberry pi B+上的信任区域扩展,它有ARM1176JZF-S处理器。
用于在世界之间切换的smc (Secure )指令形式如下:
"SMC #imm4" eg : smc #0
我正在尝试从smc异常处理程序中检索此值。我最初的假设是,它可能存储在R0寄存器中。但我得到的价值和我过去的不一样。那么,这个值存储在哪里呢?
发布于 2014-11-24 18:14:23
此值是指令操作代码的一部分。您需要在返回地址读取内存,解析操作码并提取即时值。
由于这样的操作相对于读取存储寄存器来说可能有些昂贵,所以一种常见的方法是使用处理器寄存器来指定要执行的操作。事实上,ARM已经开发了"SMC呼叫公约“,它建议使用R0作为"SMC函数标识符“和R1-R6作为参数。
https://stackoverflow.com/questions/27110839
复制相似问题