mdk 3.05 及以上
在ads下的工程中 如中断中访问spsr例如: __asm { mrs r0,spsr orr r0,r0,#0x80 // disable interrupt msr spsr_c,r0 } 则会提示如下错误:error c197: inline-asm: syntax error *** mrs r0, spsr error c197: inline-asm: undefined identifier *** mrs r0, spsr
问题分析:
编译器文档中给出的解释如下:
the arm compiler provides new intrinsics to control interrupt handling:
— __enable_irq() and __disable_irq()
— __enable_fiq() and __disable_fiq().
these intrinsics can only be executed in privileged modes, that is, in non-user modes.
in user mode these instructions do not change the interrupt flags in the cpsr.
问题解答:
使用如下的函数进行操作:
void __disable_irq(void);
void __enable_irq(void);
void __disable_fiq(void);
void __enable_fiq(void);
mdk中不能存取spsr寄存器 -九游会网页
问题类别:arm 开发工具 > mdk-arm | 浏览次数:2929 |
发布日期:2012/4/23 17:30:06 | 文章来源:米尔科技 |
回复日期:2012/5/7 11:43:54 |