gcc - Need explanation of ARM Cortex-M3 assembly instruction in CMSIS to __set_PRIMASK -


below code snippet arm cmsis library used set value of primask register.

/**  * @brief  set priority mask value  *  * @param  primask  primask  *  * set priority mask bit in priority mask register  */ static __inline void __set_primask(uint32_t primask) {    register uint32_t __regprimask         __asm("primask");    __regprimask = (primask); } 

the part don't understand inline assembly instruction

__asm("primask"); 

i haven't read addressing registers name in way. how can have inline assembly without op-code first? assigning __regprimask register location? can point reference document?

register uint32_t __regprimask __asm("primask"); 

...is declaration of local register variable called __regprimask stored in primask register.

in other words, assigning register variable set value of register primask.


Comments

Popular posts from this blog

c++ - OpenCV Error: Assertion failed <scn == 3 ::scn == 4> in unknown function, -

php - render data via PDO::FETCH_FUNC vs loop -

The canvas has been tainted by cross-origin data in chrome only -