簡體   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