【发布时间】:2019-04-12 06:45:49
【问题描述】:
我需要实现一个涉及读取 ARM Cortex-A9 协处理器寄存器的内核模块:
register int reg asm ("r6");
reg = -2;
volatile printk(KERN_INFO "reg: %d\n", reg);
volatile asm("MRC p15, 0,r6, c1, c0, 2;"); //Read Coprocessor Access Control Register
volatile printk(KERN_INFO "reg: %d\n", reg);
但是,当我在 QEMU 上运行它时,它总是打印出来:
reg: -2
reg: -2
这是因为我的代码还是因为 QEMU?
提前致谢。
【问题讨论】:
-
还要检查特定CP寄存器的qemu实现状态,你需要grep qemu源以获得该寄存器名称,这里定义了许多ARMCPRegInfo数据结构,还有一堆逻辑可以使用,全部用 C 编写。因此,例如,处理“CPACR”的“读取协处理器访问控制寄存器”grep。
标签: linux-kernel arm embedded-linux qemu