ZHCUAV8W january 1998 – march 2023 66AK2E05 , 66AK2H06 , 66AK2H12 , 66AK2H14 , AM1705 , AM1707 , AM1802 , AM1806 , AM1808 , AM1810 , AM5K2E04 , OMAP-L132 , OMAP-L137 , OMAP-L138 , SM470R1B1M-HT , TMS470R1A288 , TMS470R1A384 , TMS470R1A64 , TMS470R1B1M , TMS470R1B512 , TMS470R1B768
通過(guò)表 6-7中的內(nèi)在函數(shù),您能夠獲取/設(shè)置 CPSR 寄存器并啟用/禁用中斷。除 _call_swi() 函數(shù)外,所有函數(shù)僅在 ARM 模式下編譯時(shí)可用。節(jié) 5.14中提供了用于 ARM 匯編指令的其他內(nèi)在函數(shù)。
| C/C++ 編譯器內(nèi)在函數(shù) | 匯編 指令 | 說(shuō)明 |
|---|---|---|
| void _call_swi(unsigned int src); | SWI $ src | 調(diào)用軟件中斷。src 必須是立即數(shù)。 |
| unsigned int dst = _disable_FIQ( ); | Cortex-R4/A8: MRS dst, FAULTMASK CPSID f | 禁用 FIQ 中斷并返回以前的 FAULTMASK 或 CPSR 設(shè)置。 |
| unsigned int dst = _disable_interrupts( ); | Cortex-M0: MRS dst, PRIMASK CPSID i Cortex-M3/M4/R4/A8: MRS dst, FAULTMASK CPSID f | 禁用所有中斷并返回以前的 PRIMASK 或 FAULTMASK 設(shè)置。匯編指令取決于架構(gòu)。 |
| unsigned int dst = _disable_IRQ( ); | MRS dst, PRIMASK CPSID i | 禁用 IRQ 中斷并返回以前的 PRIMASK 設(shè)置。 |
| unsigned int dst = _enable_FIQ( ); | Cortex-R4/A8: MRS dst, FAULTMASK CPSIE f | 啟用 FIQ 中斷并返回以前的 FAULTMASK 或 CPSR 設(shè)置。 |
| unsigned int dst = _enable_interrupts( ); | Cortex-M0: MRS dst, PRIMASK CPSIE i Cortex-M3/M4/R4/A8: MRS dst, FAULTMASK CPSIE f | 啟用所有中斷并返回以前的 PRIMASK 或 FAULTMASK 設(shè)置。匯編指令取決于架構(gòu)。 |
| unsigned int dst = _enable_IRQ( ); | MRS dst, PRIMASK CPSIE i | 啟用 IRQ 中斷并返回以前的 PRIMASK 設(shè)置。 |
| unsigned int dst = _get_CPSR( ); | MRS dst , CPSR | 獲取 CPSR 寄存器。 |
| void _restore_interupts(unsigned int src ); | Cortex-M0: MSR PRIMASK src Cortex-M3/M4: MSR FAULTMASK src Cortex-R4: MSR CPSR_cf , src | 將中斷恢復(fù)到由 _disable_interrupts 返回的值指示的狀態(tài)。匯編指令取決于架構(gòu)。 |
| void _set_CPSR(unsigned int src); | MSR CPSR , src | 設(shè)置 CPSR 寄存器。 |
| void _set_CPSR_flg(unsigned int src); | MSR dst , CPSR | 設(shè)置 CPSR 標(biāo)志位。src 由內(nèi)在函數(shù)旋轉(zhuǎn)。 |
| unsigned int dst = _set_interrupt_priority( unsigned int src ) ; | 僅 Cortex-M0/M3/M4: MRS dst, BASEPRI MSR BASEPRI, src | 設(shè)置中斷優(yōu)先級(jí)并返回以前的設(shè)置。 |