繁体   English   中英

需要向__set_PRIMASK解释CMSIS中的ARM Cortex-M3汇编指令

[英]Need explanation of ARM Cortex-M3 assembly instruction in CMSIS to __set_PRIMASK

以下是ARM CMSIS库中的代码段,用于设置PRIMASK寄存器的值。

/**
 * @brief  Set the Priority Mask value
 *
 * @param  priMask  PriMask
 *
 * Set the priority mask bit in the priority mask register
 */
static __INLINE void __set_PRIMASK(uint32_t priMask)
{
   register uint32_t __regPriMask         __ASM("primask");
   __regPriMask = (priMask);
}

我不明白的部分是内联汇编指令

__ASM("primask");

我还没有读过任何有关通过这种方式按名称寻址寄存器的信息。 如何在没有操作码的情况下进行内联汇编? 这是否将__regPriMask分配给该寄存器位置? 任何人都可以指向参考文件吗?

register uint32_t __regPriMask __ASM("primask");

...是本地寄存器变量 __regPriMask的声明,该变量存储在primask寄存器中。

换句话说,分配给该寄存器变量将设置寄存器primask的值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM