| | |

mdk中不能存取spsr寄存器 -九游会网页

问题类别:arm 开发工具 > mdk-arm 浏览次数:2929
发布日期:2012/4/23 17:30:06 文章来源:米尔科技
回复日期:2012/5/7 11:43:54
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);

九游会网页的技术支持服务指南

常见问题解答

网站地图