快速链接:
.
👉👉👉 ARMv8/ARMv9架构入门到精通-[目录] 👈👈👈
- 付费专栏-付费课程 【购买须知】:
- 个人博客笔记导读目录(全部)

注:必需私信联系上我后,才能送您视频课程
文章目录
思考:
(1)、在linux中执行smc指令后,是如何调用到ATF中的opteed_smc_handler函数的?
(2)、ATF又是如何返回到linux的?
(3)、fast call和std call又是怎样区分的?
1、在linux中发起smc的调用
SMCCC是一个宏,( \instr #0 )这一行其实就是( smc #0),就是smc调用
在调用smc之前,x0-x8值对应的分别是arm_smccc_smc(a0, a1, a2, a3, a4, a5, a6, a7, res)中的参数。
.macro SMCCC instr
.cfi_startproc
\instr #0
ldr x4, [sp]
stp x0, x1,

本文详细介绍了在Linux中如何通过SMC指令调用到ARM Trusted Firmware(ATF)的opteed_smc_handler,并探讨了在ATF中处理SMC异常的过程,包括fast call和std call的区别。内容涵盖同步异常处理、函数ID解析以及fast call与std call在执行流程上的差异。
订阅专栏 解锁全文
539

被折叠的 条评论
为什么被折叠?



