📄 startup.s
字号:
#ifdef SyncFlash .equ SOURCE, 0x0C000100#endif#ifdef AMDFlash .equ SOURCE, 0x10000100#endif .equ TARGET, 0x0AFE0100 .equ SDCTL0, 0x221000 .equ SDCTL1, 0x221004 // size is stored in location 0x0C0000FC .global _start_start://;*************************************** //;* Init SDRAM and Flash * //;*************************************** // ;*************** // ;* SDRAM // ;*************** LDR r1, =SDCTL0 // ; Set Precharge Command LDR r3, =0x92120200 //ldr r3,=0x92120251 STR r3, [r1] // ; Issue Precharge All Commad LDR r3, =0x8200000 LDR r2, [r3] // ; Set AutoRefresh Command LDR r3, =0xA2120200 STR r3, [r1] // ; Issue AutoRefresh Command LDR r3, =0x8000000 LDR r2, [r3] LDR r2, [r3] LDR r2, [r3] LDR r2, [r3] LDR r2, [r3] LDR r2, [r3] LDR r2, [r3] LDR r2, [r3] // ; Set Mode Register LDR r3, =0xB2120200 STR r3, [r1] // ; Issue Mode Register Command LDR r3, =0x08111800 //; Mode Register Value LDR r2, [r3] // ; Set Normal Mode // LDR r3, =0x82124200 LDR r3, =0x8212C267; STR r3, [r1] //;*************************************** //;* End of SDRAM and Flash Init * //;*************************************** // copy code from FLASH to SRAM_CopyCodes: ldr r0,=SOURCE ldr r1,=TARGET sub r3,r0,#4 ldr r2,[r3] add r2,r2,#1 // to ensure r2 can be divided exactly by 4_CopyLoop: ldr r3,[r0] str r3,[r1] add r0,r0,#4 add r1,r1,#4 sub r2,r2,#4 teq r2,#0 beq _EndCopy b _CopyLoop _EndCopy: ldr r0,=TARGET mov pc,r0 .section ".flash.data".section ".flash.bss"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -