| 
 
| freeRTOS Cortex-M读取中断号的函数,内嵌代码的解释 
 __STATIC_FORCEINLINE uint32_t __get_IPSR(void)
 {
 uint32_t result;
 
 __ASM volatile ("MRS %0, ipsr" : "=r" (result) );    // 读取中断号PSR(IPSR)存入result, 0为无中断。
 return(result);
 }
 
 在看到这段代码的时一直不明白这段内嵌汇编代码(__ASM volatile (“MRS %0, ipsr” : “=r” (result) ); )的含义,查看了内嵌代码的规则之后明白,参考文章
 https://blog.csdn.net/weixin_29661213/article/details/112153346
 
 void function()
 {
 int a =100, b =200, c =0;
 asm (  "add %0,%1,%2"  : "=r"(c)  : "r"(a), "r"(b)  : "memory" );
 }
 
 %0 对应变量c %1 对应变量a %2 对应变量b
 
 
 
 | 
 |