基于Cortex-A9与Arm Compiler 5读取CNTFRQ寄存器的技术问题求助
关于Arria V SoC裸机环境下用Arm Compiler 5读取CNTFRQ寄存器的问题
环境说明
- 硬件:Arria V SoC评估板
- 软件:裸机应用
- 编译器:Arm Compiler 5(DS内置)
问题1:常规内联汇编语法无法正常工作
使用以下标准内联汇编代码尝试读取CNTFRQ寄存器,但无法正常运行,不清楚具体原因:
static uint32_t freq = 0; __asm volatile("mrc p15, 0, %0, c14, c0, 0" : "=r" (freq));
问题2:另一种汇编语法可编译但存在异常
改用如下汇编语法后可以通过编译,但存在两个异常情况:
- 无法添加
volatile声明 - 调试器执行到该汇编代码时程序停滞,既无法查看打印值,也无法继续调试或运行
__asm { mrc p15, 0, freq, c14, c0, 0 }
内容的提问来源于stack exchange,提问作者hutcruchi
相关产品推荐
相关产品推荐

