📄 2440slib.lst
字号:
ARM Macro Assembler Page 1
1 00000000 ;=======================================================
==============
2 00000000 ; File Name : 2440slib.s
3 00000000 ; Function : S3C2440 (Assembly)
4 00000000 ; Date : March 09, 2002
5 00000000 ; Revision : Programming start (February 26,2002) -> SOP
6 00000000 ; Revision : 03.11.2003 ver 0.0 Attatched for 2440
7 00000000 ;=======================================================
==============
8 00000000
9 00000000 ;Interrupt, FIQ/IRQ disable
10 00000000 000000C0
NOINT EQU 0xc0 ; 1100 0000
11 00000000
12 00000000 ;Check if tasm.exe(armasm -16 ...@ADS 1.0) is used.
13 00000000 GBLL THUMBCODE
14 00000000 [ {CONFIG} = 16
18 00000000 FALSE
THUMBCODE
SETL {FALSE}
19 00000000 ]
20 00000000
21 00000000 MACRO
22 00000000 MOV_PC_LR
23 00000000 ; [ THUMBCODE
24 00000000 bx lr
25 00000000 ; |
26 00000000 ; mov pc,lr
27 00000000 ; ]
28 00000000 MEND
29 00000000
30 00000000 AREA |C$$code|, CODE, READONLY
31 00000000
32 00000000 ;========================================
33 00000000 ;Workaround of problem between LCD and Framebuffer
34 00000000 ;========================================
35 00000000 EXPORT SDRAMtest
36 00000000 SDRAMtest
37 00000000 E3A00431 ldr r0,=0x31000000
38 00000004 E3A01702 ldr r1,=0x80000
39 00000008 E3A022FF mov r2,#0xf000000f
40 0000000C E4802004
LB2 str r2,[r0],#4
41 00000010 E4802004 str r2,[r0],#4
42 00000014 E2511004 subs r1,r1,#4
43 00000018 1AFFFFFB bne LB2
44 0000001C E12FFF1E bx lr
45 00000020
46 00000020
47 00000020 ;==============
48 00000020 ; CPSR I,F bit
49 00000020 ;==============
50 00000020 ;int SET_IF(void);
51 00000020 ;The return value is current CPSR.
52 00000020 EXPORT SET_IF
53 00000020 SET_IF
54 00000020 ;This function works only if the processor is in previli
ged mode.
ARM Macro Assembler Page 2
55 00000020 E10F0000 mrs r0,cpsr
56 00000024 E1A01000 mov r1,r0
57 00000028 E38110C0 orr r1,r1,#NOINT
58 0000002C E12FF001 msr cpsr_cxsf,r1
59 00000030 MOV_PC_LR
23 00000030 ; [ THUMBCODE
24 00000030 E12FFF1E bx lr
25 00000034 ; |
26 00000034 ; mov pc,lr
27 00000034 ; ]
60 00000034
61 00000034 ;void WR_IF(int cpsrValue);
62 00000034 EXPORT WR_IF
63 00000034 WR_IF
64 00000034 ;This function works only if the processor is in previli
ged mode.
65 00000034 E12FF000 msr cpsr_cxsf,r0
66 00000038 MOV_PC_LR
23 00000038 ; [ THUMBCODE
24 00000038 E12FFF1E bx lr
25 0000003C ; |
26 0000003C ; mov pc,lr
27 0000003C ; ]
67 0000003C
68 0000003C
69 0000003C ;void CLR_IF(void);
70 0000003C EXPORT CLR_IF
71 0000003C CLR_IF
72 0000003C ;This function works only if the processor is in previli
ged mode.
73 0000003C E10F0000 mrs r0,cpsr
74 00000040 E3C000C0 bic r0,r0,#NOINT
75 00000044 E12FF000 msr cpsr_cxsf,r0
76 00000048 MOV_PC_LR
23 00000048 ; [ THUMBCODE
24 00000048 E12FFF1E bx lr
25 0000004C ; |
26 0000004C ; mov pc,lr
27 0000004C ; ]
77 0000004C
78 0000004C ;====================================
79 0000004C ; MMU Cache/TLB/etc on/off functions
80 0000004C ;====================================
81 0000004C 00001000
R1_I EQU (1<<12)
82 0000004C 00000004
R1_C EQU (1<<2)
83 0000004C 00000002
R1_A EQU (1<<1)
84 0000004C 00000001
R1_M EQU (1)
85 0000004C 80000000
R1_iA EQU (1<<31)
86 0000004C 40000000
R1_nF EQU (1<<30)
87 0000004C
88 0000004C ;void MMU_EnableICache(void)
89 0000004C EXPORT MMU_EnableICache
90 0000004C MMU_EnableICache
ARM Macro Assembler Page 3
91 0000004C EE110F10 mrc p15,0,r0,c1,c0,0
92 00000050 E3800A01 orr r0,r0,#R1_I
93 00000054 EE010F10 mcr p15,0,r0,c1,c0,0
94 00000058 MOV_PC_LR
23 00000058 ; [ THUMBCODE
24 00000058 E12FFF1E bx lr
25 0000005C ; |
26 0000005C ; mov pc,lr
27 0000005C ; ]
95 0000005C
96 0000005C ;void MMU_DisableICache(void)
97 0000005C EXPORT MMU_DisableICache
98 0000005C MMU_DisableICache
99 0000005C EE110F10 mrc p15,0,r0,c1,c0,0
100 00000060 E3C00A01 bic r0,r0,#R1_I
101 00000064 EE010F10 mcr p15,0,r0,c1,c0,0
102 00000068 MOV_PC_LR
23 00000068 ; [ THUMBCODE
24 00000068 E12FFF1E bx lr
25 0000006C ; |
26 0000006C ; mov pc,lr
27 0000006C ; ]
103 0000006C
104 0000006C ;void MMU_EnableDCache(void)
105 0000006C EXPORT MMU_EnableDCache
106 0000006C MMU_EnableDCache
107 0000006C EE110F10 mrc p15,0,r0,c1,c0,0
108 00000070 E3800004 orr r0,r0,#R1_C
109 00000074 EE010F10 mcr p15,0,r0,c1,c0,0
110 00000078 MOV_PC_LR
23 00000078 ; [ THUMBCODE
24 00000078 E12FFF1E bx lr
25 0000007C ; |
26 0000007C ; mov pc,lr
27 0000007C ; ]
111 0000007C
112 0000007C ;void MMU_DisableDCache(void)
113 0000007C EXPORT MMU_DisableDCache
114 0000007C MMU_DisableDCache
115 0000007C EE110F10 mrc p15,0,r0,c1,c0,0
116 00000080 E3C00004 bic r0,r0,#R1_C
117 00000084 EE010F10 mcr p15,0,r0,c1,c0,0
118 00000088 MOV_PC_LR
23 00000088 ; [ THUMBCODE
24 00000088 E12FFF1E bx lr
25 0000008C ; |
26 0000008C ; mov pc,lr
27 0000008C ; ]
119 0000008C
120 0000008C ;void MMU_EnableAlignFault(void)
121 0000008C EXPORT MMU_EnableAlignFault
122 0000008C MMU_EnableAlignFault
123 0000008C EE110F10 mrc p15,0,r0,c1,c0,0
124 00000090 E3800002 orr r0,r0,#R1_A
125 00000094 EE010F10 mcr p15,0,r0,c1,c0,0
126 00000098 MOV_PC_LR
23 00000098 ; [ THUMBCODE
24 00000098 E12FFF1E bx lr
25 0000009C ; |
ARM Macro Assembler Page 4
26 0000009C ; mov pc,lr
27 0000009C ; ]
127 0000009C
128 0000009C ;void MMU_DisableAlignFault(void)
129 0000009C EXPORT MMU_DisableAlignFault
130 0000009C MMU_DisableAlignFault
131 0000009C EE110F10 mrc p15,0,r0,c1,c0,0
132 000000A0 E3C00002 bic r0,r0,#R1_A
133 000000A4 EE010F10 mcr p15,0,r0,c1,c0,0
134 000000A8 MOV_PC_LR
23 000000A8 ; [ THUMBCODE
24 000000A8 E12FFF1E bx lr
25 000000AC ; |
26 000000AC ; mov pc,lr
27 000000AC ; ]
135 000000AC
136 000000AC ;void MMU_EnableMMU(void)
137 000000AC EXPORT MMU_EnableMMU
138 000000AC MMU_EnableMMU
139 000000AC EE110F10 mrc p15,0,r0,c1,c0,0
140 000000B0 E3800001 orr r0,r0,#R1_M
141 000000B4 EE010F10 mcr p15,0,r0,c1,c0,0
142 000000B8 MOV_PC_LR
23 000000B8 ; [ THUMBCODE
24 000000B8 E12FFF1E bx lr
25 000000BC ; |
26 000000BC ; mov pc,lr
27 000000BC ; ]
143 000000BC
144 000000BC ;void MMU_DisableMMU(void)
145 000000BC EXPORT MMU_DisableMMU
146 000000BC MMU_DisableMMU
147 000000BC EE110F10 mrc p15,0,r0,c1,c0,0
148 000000C0 E3C00001 bic r0,r0,#R1_M
149 000000C4 EE010F10 mcr p15,0,r0,c1,c0,0
150 000000C8 MOV_PC_LR
23 000000C8 ; [ THUMBCODE
24 000000C8 E12FFF1E bx lr
25 000000CC ; |
26 000000CC ; mov pc,lr
27 000000CC ; ]
151 000000CC
152 000000CC ;void MMU_SetFastBusMode(void)
153 000000CC ; FCLK:HCLK= 1:1
154 000000CC EXPORT MMU_SetFastBusMode
155 000000CC MMU_SetFastBusMode
156 000000CC EE110F10 mrc p15,0,r0,c1,c0,0
157 000000D0 E3C00103 bic r0,r0,#R1_iA:OR:R1_nF
158 000000D4 EE010F10 mcr p15,0,r0,c1,c0,0
159 000000D8 MOV_PC_LR
23 000000D8 ; [ THUMBCODE
24 000000D8 E12FFF1E bx lr
25 000000DC ; |
26 000000DC ; mov pc,lr
27 000000DC ; ]
160 000000DC
161 000000DC ;void MMU_SetAsyncBusMode(void)
162 000000DC ; FCLK:HCLK= 1:2
163 000000DC EXPORT MMU_SetAsyncBusMode
ARM Macro Assembler Page 5
164 000000DC MMU_SetAsyncBusMode
165 000000DC EE110F10 mrc p15,0,r0,c1,c0,0
166 000000E0 E3800103 orr r0,r0,#R1_nF:OR:R1_iA
167 000000E4 EE010F10 mcr p15,0,r0,c1,c0,0
168 000000E8 MOV_PC_LR
23 000000E8 ; [ THUMBCODE
24 000000E8 E12FFF1E bx lr
25 000000EC ; |
26 000000EC ; mov pc,lr
27 000000EC ; ]
169 000000EC
170 000000EC ;=========================
171 000000EC ; Set TTBase
172 000000EC ;=========================
173 000000EC ;void MMU_SetTTBase(int base)
174 000000EC EXPORT MMU_SetTTBase
175 000000EC MMU_SetTTBase
176 000000EC ;ro=TTBase
177 000000EC EE020F10 mcr p15,0,r0,c2,c0,0
178 000000F0 MOV_PC_LR
23 000000F0 ; [ THUMBCODE
24 000000F0 E12FFF1E bx lr
25 000000F4 ; |
26 000000F4 ; mov pc,lr
27 000000F4 ; ]
179 000000F4
180 000000F4 ;=========================
181 000000F4 ; Set Domain
182 000000F4 ;=========================
183 000000F4 ;void MMU_SetDomain(int domain)
184 000000F4 EXPORT MMU_SetDomain
185 000000F4 MMU_SetDomain
186 000000F4 ;ro=domain
187 000000F4 EE030F10 mcr p15,0,r0,c3,c0,0
188 000000F8 MOV_PC_LR
23 000000F8 ; [ THUMBCODE
24 000000F8 E12FFF1E bx lr
25 000000FC ; |
26 000000FC ; mov pc,lr
27 000000FC ; ]
189 000000FC
190 000000FC ;=========================
191 000000FC ; ICache/DCache functions
192 000000FC ;=========================
193 000000FC ;void MMU_InvalidateIDCache(void)
194 000000FC EXPORT MMU_InvalidateIDCache
195 000000FC MMU_InvalidateIDCache
196 000000FC EE070F17 mcr p15,0,r0,c7,c7,0
197 00000100 MOV_PC_LR
23 00000100 ; [ THUMBCODE
24 00000100 E12FFF1E bx lr
25 00000104 ; |
26 00000104 ; mov pc,lr
27 00000104 ; ]
198 00000104
199 00000104 ;void MMU_InvalidateICache(void)
200 00000104 EXPORT MMU_InvalidateICache
201 00000104 MMU_InvalidateICache
202 00000104 EE070F15 mcr p15,0,r0,c7,c5,0
ARM Macro Assembler Page 6
203 00000108 MOV_PC_LR
23 00000108 ; [ THUMBCODE
24 00000108 E12FFF1E bx lr
25 0000010C ; |
26 0000010C ; mov pc,lr
27 0000010C ; ]
204 0000010C
205 0000010C ;void MMU_InvalidateICacheMVA(U32 mva)
206 0000010C EXPORT MMU_InvalidateICacheMVA
207 0000010C MMU_InvalidateICacheMVA
208 0000010C ;r0=mva
209 0000010C EE070F35 mcr p15,0,r0,c7,c5,1
210 00000110 MOV_PC_LR
23 00000110 ; [ THUMBCODE
24 00000110 E12FFF1E bx lr
25 00000114 ; |
26 00000114 ; mov pc,lr
27 00000114 ; ]
211 00000114
212 00000114 ;void MMU_PrefetchICacheMVA(U32 mva)
213 00000114 EXPORT MMU_PrefetchICacheMVA
214 00000114 MMU_PrefetchICacheMVA
215 00000114 ;r0=mva
216 00000114 EE070F3D mcr p15,0,r0,c7,c13,1
217 00000118 MOV_PC_LR
23 00000118 ; [ THUMBCODE
24 00000118 E12FFF1E bx lr
25 0000011C ; |
26 0000011C ; mov pc,lr
27 0000011C ; ]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -