📄 board_memories.lst
字号:
253 // Configure EBI
254 AT91C_BASE_CCFG->CCFG_EBICSA |= AT91C_EBI_CS3A_SM;
\ BOARD_ConfigureNandFlash48MHz:
\ 00000000 E310E0E3 MVN R1,#+227
\ 00000004 401DC1E3 BIC R1,R1,#0x1000
\ 00000008 001091E5 LDR R1,[R1, #+0]
\ 0000000C 081091E3 ORRS R1,R1,#0x8
\ 00000010 E320E0E3 MVN R2,#+227
\ 00000014 402DC2E3 BIC R2,R2,#0x1000
\ 00000018 001082E5 STR R1,[R2, #+0]
255
256 // Configure SMC
257 AT91C_BASE_SMC->SMC_SETUP3 = 0x00010001;
\ 0000001C CF10E0E3 MVN R1,#+207
\ 00000020 4C1DC1E3 BIC R1,R1,#0x1300
\ 00000024 0120A0E3 MOV R2,#+1
\ 00000028 402B82E3 ORR R2,R2,#0x10000
\ 0000002C 002081E5 STR R2,[R1, #+0]
258 AT91C_BASE_SMC->SMC_PULSE3 = 0x04030302;
\ 00000030 CB10E0E3 MVN R1,#+203
\ 00000034 4C1DC1E3 BIC R1,R1,#0x1300
\ 00000038 7C209FE5 LDR R2,??BOARD_ConfigureNandFlash48MHz_0 ;; 0x4030302
\ 0000003C 002081E5 STR R2,[R1, #+0]
259 AT91C_BASE_SMC->SMC_CYCLE3 = 0x00070004;
\ 00000040 C710E0E3 MVN R1,#+199
\ 00000044 4C1DC1E3 BIC R1,R1,#0x1300
\ 00000048 0420A0E3 MOV R2,#+4
\ 0000004C 702A82E3 ORR R2,R2,#0x70000
\ 00000050 002081E5 STR R2,[R1, #+0]
260 AT91C_BASE_SMC->SMC_CTRL3 = (AT91C_SMC_READMODE
261 | AT91C_SMC_WRITEMODE
262 | AT91C_SMC_NWAITM_NWAIT_DISABLE
263 | ((0x1 << 16) & AT91C_SMC_TDF));
\ 00000054 C310E0E3 MVN R1,#+195
\ 00000058 4C1DC1E3 BIC R1,R1,#0x1300
\ 0000005C 0320A0E3 MOV R2,#+3
\ 00000060 402B82E3 ORR R2,R2,#0x10000
\ 00000064 002081E5 STR R2,[R1, #+0]
264
265 if (busWidth == 8) {
\ 00000068 FF0010E2 ANDS R0,R0,#0xFF ;; Zero extend
\ 0000006C 080050E3 CMP R0,#+8
\ 00000070 0600001A BNE ??BOARD_ConfigureNandFlash48MHz_1
266
267 AT91C_BASE_SMC->SMC_CTRL3 |= AT91C_SMC_DBW_WIDTH_EIGTH_BITS;
\ 00000074 C310E0E3 MVN R1,#+195
\ 00000078 4C1DC1E3 BIC R1,R1,#0x1300
\ 0000007C C320E0E3 MVN R2,#+195
\ 00000080 4C2DC2E3 BIC R2,R2,#0x1300
\ 00000084 002092E5 LDR R2,[R2, #+0]
\ 00000088 002081E5 STR R2,[R1, #+0]
\ 0000008C 090000EA B ??BOARD_ConfigureNandFlash48MHz_2
268 }
269 else if (busWidth == 16) {
\ ??BOARD_ConfigureNandFlash48MHz_1:
\ 00000090 FF0010E2 ANDS R0,R0,#0xFF ;; Zero extend
\ 00000094 100050E3 CMP R0,#+16
\ 00000098 0600001A BNE ??BOARD_ConfigureNandFlash48MHz_2
270
271 AT91C_BASE_SMC->SMC_CTRL3 |= AT91C_SMC_DBW_WIDTH_SIXTEEN_BITS;
\ 0000009C C310E0E3 MVN R1,#+195
\ 000000A0 4C1DC1E3 BIC R1,R1,#0x1300
\ 000000A4 001091E5 LDR R1,[R1, #+0]
\ 000000A8 401D91E3 ORRS R1,R1,#0x1000
\ 000000AC C320E0E3 MVN R2,#+195
\ 000000B0 4C2DC2E3 BIC R2,R2,#0x1300
\ 000000B4 001082E5 STR R1,[R2, #+0]
272 }
273 }
\ ??BOARD_ConfigureNandFlash48MHz_2:
\ 000000B8 1EFF2FE1 BX LR ;; return
\ ??BOARD_ConfigureNandFlash48MHz_0:
\ 000000BC 02030304 DC32 0x4030302
274
275 //------------------------------------------------------------------------------
276 /// Configures the EBI for NorFlash access at 48MHz.
277 /// \Param busWidth Bus width
278 //------------------------------------------------------------------------------
\ In section .text, align 4, keep-with-next
279 void BOARD_ConfigureNorFlash48MHz(unsigned char busWidth)
280 {
281 // Configure SMC
282 AT91C_BASE_SMC->SMC_SETUP0 = 0x00000001;
\ BOARD_ConfigureNorFlash48MHz:
\ 00000000 FF10E0E3 MVN R1,#+255
\ 00000004 4C1DC1E3 BIC R1,R1,#0x1300
\ 00000008 0120A0E3 MOV R2,#+1
\ 0000000C 002081E5 STR R2,[R1, #+0]
283 AT91C_BASE_SMC->SMC_PULSE0 = 0x07070703;
\ 00000010 FB10E0E3 MVN R1,#+251
\ 00000014 4C1DC1E3 BIC R1,R1,#0x1300
\ 00000018 A8209FE5 LDR R2,??BOARD_ConfigureNorFlash48MHz_0 ;; 0x7070703
\ 0000001C 002081E5 STR R2,[R1, #+0]
284 AT91C_BASE_SMC->SMC_CYCLE0 = 0x00070007;
\ 00000020 F710E0E3 MVN R1,#+247
\ 00000024 4C1DC1E3 BIC R1,R1,#0x1300
\ 00000028 0720A0E3 MOV R2,#+7
\ 0000002C 702A82E3 ORR R2,R2,#0x70000
\ 00000030 002081E5 STR R2,[R1, #+0]
285 AT91C_BASE_SMC->SMC_CTRL0 = (AT91C_SMC_READMODE
286 | AT91C_SMC_WRITEMODE
287 | AT91C_SMC_NWAITM_NWAIT_DISABLE
288 | ((0x1 << 16) & AT91C_SMC_TDF));
\ 00000034 F310E0E3 MVN R1,#+243
\ 00000038 4C1DC1E3 BIC R1,R1,#0x1300
\ 0000003C 0320A0E3 MOV R2,#+3
\ 00000040 402B82E3 ORR R2,R2,#0x10000
\ 00000044 002081E5 STR R2,[R1, #+0]
289
290 if (busWidth == 8) {
\ 00000048 FF0010E2 ANDS R0,R0,#0xFF ;; Zero extend
\ 0000004C 080050E3 CMP R0,#+8
\ 00000050 0600001A BNE ??BOARD_ConfigureNorFlash48MHz_1
291
292 AT91C_BASE_SMC->SMC_CTRL0 |= AT91C_SMC_DBW_WIDTH_EIGTH_BITS;
\ 00000054 F310E0E3 MVN R1,#+243
\ 00000058 4C1DC1E3 BIC R1,R1,#0x1300
\ 0000005C F320E0E3 MVN R2,#+243
\ 00000060 4C2DC2E3 BIC R2,R2,#0x1300
\ 00000064 002092E5 LDR R2,[R2, #+0]
\ 00000068 002081E5 STR R2,[R1, #+0]
\ 0000006C 140000EA B ??BOARD_ConfigureNorFlash48MHz_2
293 }
294 else if (busWidth == 16) {
\ ??BOARD_ConfigureNorFlash48MHz_1:
\ 00000070 FF0010E2 ANDS R0,R0,#0xFF ;; Zero extend
\ 00000074 100050E3 CMP R0,#+16
\ 00000078 0700001A BNE ??BOARD_ConfigureNorFlash48MHz_3
295
296 AT91C_BASE_SMC->SMC_CTRL0 |= AT91C_SMC_DBW_WIDTH_SIXTEEN_BITS;
\ 0000007C F310E0E3 MVN R1,#+243
\ 00000080 4C1DC1E3 BIC R1,R1,#0x1300
\ 00000084 001091E5 LDR R1,[R1, #+0]
\ 00000088 401D91E3 ORRS R1,R1,#0x1000
\ 0000008C F320E0E3 MVN R2,#+243
\ 00000090 4C2DC2E3 BIC R2,R2,#0x1300
\ 00000094 001082E5 STR R1,[R2, #+0]
\ 00000098 090000EA B ??BOARD_ConfigureNorFlash48MHz_2
297 }
298 else if (busWidth == 32) {
\ ??BOARD_ConfigureNorFlash48MHz_3:
\ 0000009C FF0010E2 ANDS R0,R0,#0xFF ;; Zero extend
\ 000000A0 200050E3 CMP R0,#+32
\ 000000A4 0600001A BNE ??BOARD_ConfigureNorFlash48MHz_2
299
300 AT91C_BASE_SMC->SMC_CTRL0 |= AT91C_SMC_DBW_WIDTH_THIRTY_TWO_BITS;
\ 000000A8 F310E0E3 MVN R1,#+243
\ 000000AC 4C1DC1E3 BIC R1,R1,#0x1300
\ 000000B0 001091E5 LDR R1,[R1, #+0]
\ 000000B4 801D91E3 ORRS R1,R1,#0x2000
\ 000000B8 F320E0E3 MVN R2,#+243
\ 000000BC 4C2DC2E3 BIC R2,R2,#0x1300
\ 000000C0 001082E5 STR R1,[R2, #+0]
301 }
302 }
\ ??BOARD_ConfigureNorFlash48MHz_2:
\ 000000C4 1EFF2FE1 BX LR ;; return
\ ??BOARD_ConfigureNorFlash48MHz_0:
\ 000000C8 03070707 DC32 0x7070703
\ In section .text, align 4, keep-with-next
\ ??DataTable1:
\ 00000000 DEDEFECA DC32 0xcafedede
303
Maximum stack usage in bytes:
Function .cstack
-------- -------
BOARD_ConfigureNandFlash 0
BOARD_ConfigureNandFlash48MHz 0
BOARD_ConfigureNorFlash48MHz 0
BOARD_ConfigureSdram 0
BOARD_ConfigureSdram48MHz 0
BOARD_RemapRam 0
BOARD_RemapRom 0
Section sizes:
Function/Label Bytes
-------------- -----
BOARD_RemapRom 20
BOARD_RemapRam 20
BOARD_ConfigureSdram 460
pinsSdram 12
BOARD_ConfigureSdram48MHz 456
pinsSdram 12
BOARD_ConfigureNandFlash 188
BOARD_ConfigureNandFlash48MHz 192
BOARD_ConfigureNorFlash48MHz 204
??DataTable1 4
24 bytes in section .rodata
1 544 bytes in section .text
1 544 bytes of CODE memory
24 bytes of CONST memory
Errors: none
Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -