arm体系如何对SWI功能

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了arm体系如何对SWI功能相关的知识,希望对你有一定的参考价值。

ARM架构对SWI(软件中断)功能没有直接影响。SWI是一种由软件生成的中断,可以通过执行程序中的特定指令(通常称为“SWI”或“SVC”)来触发。SWI功能的实现取决于运行在基于ARM的系统上的操作系统、编译器和其他软件组件。ARM架构提供了用于实现SWI功能的通用寄存器、指令集和内存管理单元。 参考技术A 软中断指令,后面用24位立即数表示软中断类型,cpu遇到这条指令会跳转到中断向量表中软中断指令处,然后根据那条指令跳转到swi
handler,在swi
handler中需要通过LR寄存器,用指令
LDR
R0,[LR,#-4];BIC
R0,R0,#0xff000000来获得那个24位立即数(LR中保存的是SWI
0x123456的下一条指令地址,也就是软中断返回地址),然后做进一步处理
参考技术B 使用汇编
__ASM("SWI 1");
在中断函数里做相应处理
LDR r0 ,[LR,-0x04]
r = 1
参考技术C 使用汇编
__ASM("SWI 1");
在中断函数里做相应处理
LDR r0 ,[LR,-0x04]
r = 1
参考技术D 当别人有冲动的想法时,自己应该保持冷静。因为与人发生口头冲突或武力冲突不是件好事,保持冷静也章显一个人的格局和智慧。

以上是关于arm体系如何对SWI功能的主要内容,如果未能解决你的问题,请参考以下文章

ARM体系结构简介

添加新代码(从未运行)的内核中断

通过Visual C ++编译器识别ARM软件中断(SWI)函数

企业如何从 0 到 1 构建整套全链路追踪体系

问题:如何在具有卷的ARM体系结构上在Docker上运行TimeScaleDB?

关于ARM架构的一些知识