当前位置: 代码迷 >> 综合 >> ARM armcc specific functions ARM 汇编指令功能
  详细解决方案

ARM armcc specific functions ARM 汇编指令功能

热度:89   发布时间:2023-12-18 03:59:10.0

/* ###################  Compiler specific Intrinsics  ########################### */   这些编译器的具体特性

#if defined ( __CC_ARM   ) /*------------------RealView Compiler -----------------*/      
/* ARM armcc specific functions */                 ARM 编译器特有功能

#define __enable_fault_irq                __enable_fiq                                                                使能中断
#define __disable_fault_irq               __disable_fiq                                                                失能中断

#define __NOP                             __nop                                                                               空指令,用来延时。因为空指令也要占用一次指令周期.


#define __WFI                             __wfi

  • WFI进入则可由任意中断唤醒
  • WFE进入则由事件唤醒
  • WFI = wait for interrupt 等待中断,即下一次中断发生前都在此hold住不干活
  • WFE = wait for event 等待事件,即下一次事件发生前都在此hold住不干活

#define __WFE                             __wfe


#define __SEV                             __sev         多处理器环境中向所有的处理器发送事件(包括自身)。在符合CMSIS的设备驱动库中,可以使用“__SEV()”实现该操作


#define __ISB()                           __isb(0)       指令同步屏障,清除流水线并且确保在新指令执行时,之前的指令都已经执行完毕。在符合CMSIS的设备驱动库中,可以使用“__ISB”函数实现该操作


#define __DSB()                           __dsb(0)     数据同步屏障,确保在下一条指令开始执行前,所有的存储器访问已经完成。在符合CMSIS的设备驱动库中,可以使用“__DSB”函数实现该操作


#define __DMB()                           __dmb(0)    数据存储器屏障,确保在新的存储器访问开始之前,所有的存储器访问已经完成。在符合CMSIS的设备驱动库中,可以使用“__DMB”函数实现该操作


#define __REV                             __rev


#define __RBIT                            __rbit


#define __LDREXB(ptr)                     ((unsigned char ) __ldrex(ptr))


#define __LDREXH(ptr)                     ((unsigned short) __ldrex(ptr))


#define __LDREXW(ptr)                     ((unsigned int  ) __ldrex(ptr))


#define __STREXB(value, ptr)              __strex(value, ptr)


#define __STREXH(value, ptr)              __strex(value, ptr)


#define __STREXW(value, ptr)              __strex(value, ptr)

 

  相关解决方案