📄 inittcm.s
字号:
;; Copyright ARM Ltd 2002. All rights reserved.
;;
;; This code initialises the TCMs before calling MMU Initialisation
;; this allows scatter loading to relocate code into the TCMs
;;
;; This code must be run from a privileged mode
; TCM region size definitions
Region_0K EQU 0
Region_4K EQU 2_0011
Region_8K EQU 2_0100
Region_16K EQU 2_0101
Region_32K EQU 2_0110
Region_64K EQU 2_0111
Region_128K EQU 2_1000
Region_256K EQU 2_1001
Region_512K EQU 2_1010
Region_1M EQU 2_1011
Region_Enable EQU 2_1
; --- Standard definitions of mode bits and interrupt (I & F) flags in PSRs
Mode_USR EQU 0x10
Mode_FIQ EQU 0x11
Mode_IRQ EQU 0x12
Mode_SVC EQU 0x13
Mode_ABT EQU 0x17
Mode_UND EQU 0x1B
Mode_SYS EQU 0x1F ; available on ARM Arch 4 and later
I_Bit EQU 0x80 ; when I bit is set, IRQ is disabled
F_Bit EQU 0x40 ; when F bit is set, FIQ is disabled
AREA INIT926TCM, CODE, READONLY ; name this block of code
ENTRY
entrypoint
IMPORT Data_TCM_Base
; if MMU/MPU enabled - disable (useful for ARMulator tests)
;
;
MRC p15, 0, r0, c1, c0, 0 ; read CP15 register 1 into r0
BIC r0, r0, #0x1 ; clear bit 0
MCR p15, 0, r0, c1, c0, 0 ; write value back
;
; Next block sets the TCMs base and size registers to their actual size
; Note TCM actual size is stored in the registers at reset.
;
;
;;TCM Configuration
;==================
;
; Set I and D TCM base and size
;
LDR r0,=Data_TCM_Base ; Read D-TCM Base - set by scatter file
MRC p15, 0, r1, c9, c1, 0 ; Read D-TCM
ORR r1, r1, r0 ; Set D-TCM Base address
IF :DEF: TCM ; If BuildTCM option, enable TCMs
ORR r1, r1, #Region_Enable
ELSE
BIC r1, r1, #Region_Enable ; otherwise disable TCMs
ENDIF
MCR p15, 0, r1, c9, c1, 0 ; Set Data TCM
MOV r0, #0 ; I-TCM placed at 0x0 in this example
MRC p15, 0, r1, c9, c1, 1 ; Read I-TCM
ORR r1, r1, r0 ; Set I-TCM Base address
IF :DEF: TCM
ORR r1, r1, #Region_Enable
ELSE
BIC r1, r1, #Region_Enable
ENDIF
MCR p15, 0, r1, c9, c1, 1 ; Set I-TCM
;
;
IMPORT InitMMUentry ; Import label to MMU init code
B InitMMUentry
END ; mark the end of this file
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -