📄 mmumacro.s
字号:
; MACRO WRMMU_FlushTB $reg_number IF :LNOT: :DEF: HAL_HAS_MMU NO_WRMMU_FlushTB $reg_number ENDIF IF :DEF: ARM720T WRMMU_FlushTB_720T $reg_number ENDIF IF :DEF: ARM922 WRMMU_FlushTB_920T $reg_number ENDIF IF :DEF: ARM1020T WRMMU_FlushTB_1020T $reg_number ENDIF IF :DEF: SA110 WRMMU_FlushTB_110 $reg_number ENDIF IF :DEF: XSCALE WRMMU_FlushTB_XSCALE $reg_number ENDIF MEND;Flush Instruction TLB ; MACRO WRMMU_FlushITB $reg_number IF :LNOT: :DEF: HAL_HAS_MMU NO_WRMMU_FlushITB $reg_number ENDIF IF :DEF: ARM720T WRMMU_FlushITB_720T $reg_number ENDIF IF :DEF: ARM922 WRMMU_FlushITB_920T $reg_number ENDIF IF :DEF: ARM1020T WRMMU_FlushITB_1020T $reg_number ENDIF IF :DEF: SA110 WRMMU_FlushITB_110 $reg_number ENDIF IF :DEF: XSCALE WRMMU_FlushITB_XSCALE $reg_number ENDIF MEND;Flush Data TLB; MACRO WRMMU_FlushDTB $reg_number IF :LNOT: :DEF: HAL_HAS_MMU NO_WRMMU_FlushDTB $reg_number ENDIF IF :DEF: ARM720T WRMMU_FlushDTB_720T $reg_number ENDIF IF :DEF: ARM922 WRMMU_FlushDTB_920T $reg_number ENDIF IF :DEF: ARM1020T WRMMU_FlushDTB_1020T $reg_number ENDIF IF :DEF: SA110 WRMMU_FlushDTB_110 $reg_number ENDIF IF :DEF: XSCALE WRMMU_FlushDTB_XSCALE $reg_number ENDIF MEND;Coprocessor read of Coprocessor Access Control reg. ; MACRO RDCP_Access $reg_number IF :DEF: XSCALE RDCP_Access_XSCALE $reg_number ENDIF MEND;Coprocessor write of Coprocessor Access Control reg. ; MACRO WRCP_Access $reg_number IF :DEF: XSCALE WRCP_Access_XSCALE $reg_number ENDIF MEND;-----------------------------------------------------------; MPU support macros:;Coprocessor write of MPU cache bits ; MACRO WRMPU_CacheBits $reg_number IF :LNOT: :DEF: HAL_HAS_MPU NO_WRMPU_CacheBits $reg_number ENDIF IF :DEF: ARM740T WRMPU_CacheBits_740T $reg_number ENDIF IF :DEF: ARM940T WRMPU_CacheBits_940T $reg_number ENDIF IF :DEF: ARM946T WRMPU_CacheBits_946T $reg_number ENDIF MEND;Coprocessor write of MPU buffer bits ; MACRO WRMPU_BufferBits $reg_number IF :LNOT: :DEF: HAL_HAS_MPU NO_WRMPU_BufferBits $reg_number ENDIF IF :DEF: ARM740T WRMPU_BufferBits_740T $reg_number ENDIF IF :DEF: ARM940T WRMPU_BufferBits_940T $reg_number ENDIF IF :DEF: ARM946T WRMPU_BufferBits_946T $reg_number ENDIF MEND;Coprocessor write of MPU access bits ; MACRO WRMPU_AccessBits $reg_number IF :LNOT: :DEF: HAL_HAS_MPU NO_WRMPU_AccessBits $reg_number ENDIF IF :DEF: ARM740T WRMPU_AccessBits_740T $reg_number ENDIF IF :DEF: ARM940T WRMPU_AccessBits_940T $reg_number ENDIF IF :DEF: ARM946T WRMPU_AccessBits_946T $reg_number ENDIF MEND;Coprocessor write of MPU region registors ; MACRO WRMPU_Region $region, $reg_number IF :LNOT: :DEF: HAL_HAS_MPU NO_WRMPU_Region $region, $reg_number ENDIF IF :DEF: ARM740T WRMPU_Region_740T $region, $reg_number ENDIF IF :DEF: ARM940T WRMPU_Region_940T $region, $reg_number ENDIF IF :DEF: ARM946T WRMPU_Region_946T $region, $reg_number ENDIF MEND;-----------------------------------------------------------;Coprocessor cache control ;Flush I & D Caches; MACRO WRCACHE_FlushIDC $reg_number IF :LNOT: :DEF: HAL_HAS_CACHE NO_WRCACHE_FlushIDC $reg_number ENDIF IF :DEF: ARM720T WRCACHE_FlushIDC_720T $reg_number ENDIF IF :DEF: ARM740T WRCACHE_FlushIDC_740T $reg_number ENDIF IF :DEF: ARM922 WRCACHE_FlushIDC_920T $reg_number ENDIF IF :DEF: ARM940T WRCACHE_FlushIDC_940T $reg_number ENDIF IF :DEF: ARM946T WRCACHE_FlushIDC_946T $reg_number ENDIF IF :DEF: ARM1020T WRCACHE_FlushIDC_1020T $reg_number ENDIF IF :DEF: SA110 WRCACHE_FlushIDC_110 $reg_number ENDIF IF :DEF: XSCALE WRCACHE_FlushIDC_XSCALE $reg_number ENDIF MEND;Coprocessor cache control ;Flush ICache; MACRO WRCACHE_FlushIC $reg_number IF :LNOT: :DEF: HAL_HAS_CACHE NO_WRCACHE_FlushIC $reg_number ENDIF IF :DEF: ARM720T WRCACHE_FlushIC_720T $reg_number ENDIF IF :DEF: ARM740T WRCACHE_FlushIC_740T $reg_number ENDIF IF :DEF: ARM922 WRCACHE_FlushIC_920T $reg_number ENDIF IF :DEF: ARM940T WRCACHE_FlushIC_940T $reg_number ENDIF IF :DEF: ARM946T WRCACHE_FlushIC_946T $reg_number ENDIF IF :DEF: ARM1020T WRCACHE_FlushIC_1020T $reg_number ENDIF IF :DEF: SA110 WRCACHE_FlushIC_110 $reg_number ENDIF IF :DEF: XSCALE WRCACHE_FlushIC_XSCALE $reg_number ENDIF MEND;Coprocessor cache control ;Flush DCache; MACRO WRCACHE_FlushDC $reg_number IF :LNOT: :DEF: HAL_HAS_CACHE NO_WRCACHE_FlushDC $reg_number ENDIF IF :DEF: ARM720T WRCACHE_FlushDC_720T $reg_number ENDIF IF :DEF: ARM740T WRCACHE_FlushDC_740T $reg_number ENDIF IF :DEF: ARM922 WRCACHE_FlushDC_920T $reg_number ENDIF IF :DEF: ARM940T WRCACHE_FlushDC_940T $reg_number ENDIF IF :DEF: ARM946T WRCACHE_FlushDC_946T $reg_number ENDIF IF :DEF: ARM1020T WRCACHE_FlushDC_1020T $reg_number ENDIF IF :DEF: SA110 WRCACHE_FlushDC_110 $reg_number ENDIF IF :DEF: XSCALE WRCACHE_FlushDC_XSCALE $reg_number ENDIF MEND;Coprocessor cache control ;Flush DCache entry; MACRO WRCACHE_CacheFlushDentry $reg_number IF :LNOT: :DEF: HAL_HAS_CACHE NO_WRCACHE_CacheFlushDentry $reg_number ENDIF IF :DEF: ARM720T WRCACHE_CacheFlushDentry_720T $reg_number ENDIF IF :DEF: ARM740T WRCACHE_CacheFlushDentry_740T $reg_number ENDIF IF :DEF: ARM922 WRCACHE_CacheFlushDentry_920T $reg_number ENDIF IF :DEF: ARM940T WRCACHE_CacheFlushDentry_940T $reg_number ENDIF IF :DEF: ARM946T WRCACHE_CacheFlushDentry_946T $reg_number ENDIF IF :DEF: ARM1020T WRCACHE_CacheFlushDentry_1020T $reg_number ENDIF IF :DEF: SA110 WRCACHE_CacheFlushDentry_110 $reg_number ENDIF IF :DEF: XSCALE WRCACHE_CacheFlushDentry_XSCALE $reg_number ENDIF MEND;Coprocessor cache control ;Clean DCache entry; MACRO WRCACHE_CleanDCentry $reg_number IF :LNOT: :DEF: HAL_HAS_CACHE NO_WRCACHE_CleanDCentry $reg_number ENDIF IF :DEF: ARM720T WRCACHE_CleanDCentry_720T $reg_number ENDIF IF :DEF: ARM740T WRCACHE_CleanDCentry_740T $reg_number ENDIF IF :DEF: ARM922 WRCACHE_CleanDCentry_920T $reg_number ENDIF IF :DEF: ARM940T WRCACHE_CleanDCentry_940T $reg_number ENDIF IF :DEF: ARM946T WRCACHE_CleanDCentry_946T $reg_number ENDIF IF :DEF: ARM1020T WRCACHE_CleanDCentry_1020T $reg_number ENDIF IF :DEF: SA110 WRCACHE_CleanDCentry_110 $reg_number ENDIF IF :DEF: XSCALE WRCACHE_CleanDCentry_XSCALE $reg_number ENDIF MEND;Coprocessor cache control ;Clean + Flush DCache entry; MACRO WRCACHE_Clean_FlushDCentry $reg_number IF :LNOT: :DEF: HAL_HAS_CACHE NO_WRCACHE_Clean_FlushDCentry $reg_number ENDIF IF :DEF: ARM720T WRCACHE_Clean_FlushDCentry_720T $reg_number ENDIF IF :DEF: ARM740T WRCACHE_Clean_FlushDCentry_740T $reg_number ENDIF IF :DEF: ARM922 WRCACHE_Clean_FlushDCentry_920T $reg_number ENDIF IF :DEF: ARM940T WRCACHE_Clean_FlushDCentry_940T $reg_number ENDIF IF :DEF: ARM946T WRCACHE_Clean_FlushDCentry_946T $reg_number ENDIF IF :DEF: ARM1020T WRCACHE_Clean_FlushDCentry_1020T $reg_number ENDIF IF :DEF: SA110 WRCACHE_Clean_FlushDCentry_110 $reg_number ENDIF IF :DEF: XSCALE WRCACHE_Clean_FlushDCentry_XSCALE $reg_number ENDIF MEND;Drain Write Buffer.; MACRO WRCACHE_DrainWriteBuffer $reg_number IF :LNOT: :DEF: HAL_HAS_WBUFFER NO_WRCACHE_DrainWriteBuffer $reg_number ENDIF IF :DEF: ARM720T WRCACHE_DrainWriteBuffer_720T $reg_number ENDIF IF :DEF: ARM740T WRCACHE_DrainWriteBuffer_740T $reg_number ENDIF IF :DEF: ARM922 WRCACHE_DrainWriteBuffer_920T $reg_number ENDIF IF :DEF: ARM940T WRCACHE_DrainWriteBuffer_940T $reg_number ENDIF IF :DEF: ARM946T WRCACHE_DrainWriteBuffer_946T $reg_number ENDIF IF :DEF: ARM1020T WRCACHE_DrainWriteBuffer_1020T $reg_number ENDIF IF :DEF: SA110 WRCACHE_DrainWriteBuffer_110 $reg_number ENDIF IF :DEF: XSCALE WRCACHE_DrainWriteBuffer_XSCALE $reg_number ENDIF MEND;Clean DCache (only) from address in $reg1 to (excl) addr in $reg2; MACRO WRCACHE_CleanDrange $reg1, $reg2 IF :LNOT: :DEF: HAL_HAS_CACHE NO_WRCACHE_CleanDrange $reg1, $reg2 ENDIF IF :DEF: ARM720T WRCACHE_CleanDrange_720T $reg1, $reg2 ENDIF IF :DEF: ARM740T WRCACHE_CleanDrange_740T $reg1, $reg2 ENDIF IF :DEF: ARM922 WRCACHE_CleanDrange_920T $reg1, $reg2 ENDIF IF :DEF: ARM940T WRCACHE_CleanDrange_940T $reg1, $reg2 ENDIF IF :DEF: ARM946T WRCACHE_CleanDrange_946T $reg1, $reg2 ENDIF IF :DEF: ARM1020T WRCACHE_CleanDrange_1020T $reg1, $reg2 ENDIF IF :DEF: SA110 WRCACHE_CleanDrange_110 $reg1, $reg2 ENDIF IF :DEF: XSCALE WRCACHE_CleanDrange_XSCALE $reg1, $reg2 ENDIF MEND;Clean all DCache ; MACRO WRCACHE_CleanDCache $w1, $w2, $w3, $w4, $w5, $w6 IF :LNOT: :DEF: HAL_HAS_CACHE NO_WRCACHE_CleanDCache $w1, $w2, $w3, $w4, $w5, $w6 ENDIF IF :DEF: ARM720T WRCACHE_CleanDCache_720T $w1, $w2, $w3, $w4, $w5, $w6 ENDIF IF :DEF: ARM740T WRCACHE_CleanDCache_740T $w1, $w2, $w3, $w4, $w5, $w6 ENDIF IF :DEF: ARM922 WRCACHE_CleanDCache_920T $w1, $w2, $w3, $w4, $w5, $w6 ENDIF IF :DEF: ARM940T WRCACHE_CleanDCache_940T $w1, $w2, $w3, $w4, $w5, $w6 ENDIF IF :DEF: ARM946T WRCACHE_CleanDCache_946T $w1, $w2, $w3, $w4, $w5, $w6 ENDIF IF :DEF: ARM1020T WRCACHE_CleanDCache_1020T $w1, $w2, $w3, $w4, $w5, $w6 ENDIF IF :DEF: SA110 WRCACHE_CleanDCache_110 $w1, $w2, $w3, $w4, $w5, $w6 ENDIF IF :DEF: XSCALE WRCACHE_CleanDCache_XSCALE $w1, $w2, $w3, $w4, $w5, $w6 ENDIF MEND;------------------------------------------------------------------;Coprocessor test/clock/idle control ;Enable Clock Switching; MACRO WRCLK_EnableClockSW $reg_number NO_WRCLK_EnableClockSW $reg_number IF :DEF: ARM922 WRCLK_EnableClockSW_920T $reg_number ENDIF IF :DEF: ARM940T WRCLK_EnableClockSW_940T $reg_number ENDIF IF :DEF: ARM946T WRCLK_EnableClockSW_946T $reg_number ENDIF IF :DEF: SA110 WRCLK_EnableClockSW_110 $reg_number ENDIF IF :DEF: XSCALE WRCLK_EnableClockSW_XSCALE $reg_number ENDIF MEND;Coprocessor test/clock/idle control ;Disable Clock Switching; MACRO WRCLK_DisableClockSW $reg_number NO_WRCLK_DisableClockSW $reg_number IF :DEF: ARM922 WRCLK_DisableClockSW_920T $reg_number ENDIF IF :DEF: ARM940T WRCLK_DisableClockSW_940T $reg_number ENDIF IF :DEF: ARM946T WRCLK_DisableClockSW_946T $reg_number ENDIF IF :DEF: SA110 WRCLK_DisableClockSW_110 $reg_number ENDIF IF :DEF: XSCALE WRCLK_DisableClockSW_XSCALE $reg_number ENDIF MEND;Coprocessor test/clock/idle control ;Disable nMCLK output; MACRO WRCLK_DisablenMCLK $reg_number NO_WRCLK_DisablenMCLK $reg_number IF :DEF: ARM922 WRCLK_DisablenMCLK_920T $reg_number ENDIF IF :DEF: SA110 WRCLK_DisablenMCLK_110 $reg_number ENDIF IF :DEF: XSCALE WRCLK_DisablenMCLK_XSCALE $reg_number ENDIF MEND;Coprocessor test/clock/idle control ;Wait for Interrupt; MACRO WRTEST_WaitInt $reg_number NO_WRTEST_WaitInt $reg_number IF :DEF: ARM720T WRTEST_WaitInt_720T $reg_number ENDIF IF :DEF: ARM740T WRTEST_WaitInt_740T $reg_number ENDIF IF :DEF: ARM922 WRTEST_WaitInt_920T $reg_number ENDIF IF :DEF: ARM940T WRTEST_WaitInt_940T $reg_number ENDIF IF :DEF: ARM946T WRTEST_WaitInt_946T $reg_number ENDIF IF :DEF: ARM1020T WRTEST_WaitInt_1020T $reg_number ENDIF IF :DEF: SA110 WRTEST_WaitInt_110 $reg_number ENDIF IF :DEF: XSCALE WRTEST_WaitInt_XSCALE $reg_number ENDIF MEND;-----------------------------------------------------------; MPU setup macro and variables; MACRO SET_MPU_REGION $num, $address, $size, $access IF :LNOT: :DEF: HAL_HAS_MPU NO_SET_MPU_REGION $num, $address, $size, $access ENDIF IF :DEF: ARM740T SET_MPU_REGION_740T $num, $address, $size, $access ENDIF IF :DEF: ARM940T SET_MPU_REGION_940T $num, $address, $size, $access ENDIF IF :DEF: ARM946T SET_MPU_REGION_946T $num, $address, $size, $access ENDIF MEND ENDIF END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -