请教arm-trusted-firmware中write_scr_el3函数的定义位置
关于ARM Trusted Firmware中write_scr_el3的定义位置
write_scr_el3并非普通的函数实现,而是通过预处理器宏生成的内联函数,直接搜索函数名找不到传统的函数定义。具体位置和生成逻辑如下:
- 生成读写系统寄存器的核心宏
DEFINE_SYSREG_RW_FUNCS定义在include/lib/utils_def.h,这个宏会自动生成对应寄存器的read_xxx和write_xxx内联函数。 - 在
arch/aarch64/include/arch/system_registers.h中,通过调用该宏生成scr_el3的读写函数:
预处理后,这段代码会展开为DEFINE_SYSREG_RW_FUNCS(scr_el3, SCR_EL3)read_scr_el3()和write_scr_el3(uint64_t val)的内联函数实现,直接操作SCR_EL3系统寄存器。
若你的代码仓库结构存在差异,也可在arch/aarch64/include/arch/helpers.h中查找相关定义,部分版本的ATF会把这类寄存器操作函数的宏调用放在该文件内。
内容的提问来源于stack exchange,提问作者Devin
相关产品推荐
相关产品推荐

