?? head.s
字號:
@******************************************************************************
@ File:head.s
@ 功能:設(shè)置SDRAM,將程序復(fù)制到SDRAM,然后跳到SDRAM繼續(xù)執(zhí)行
@******************************************************************************
.extern main
.text
.global _start
_start:
@函數(shù)disable_watch_dog, memsetup, init_nand, nand_read_ll在init.c中定義
ldr sp, =4096 @設(shè)置堆棧
bl disable_watch_dog @關(guān)WATCH DOG
bl memsetup @初始化SDRAM
bl init_nand @初始化NAND Flash
@將NAND Flash中地址4096開始的1024字節(jié)代碼(main.c編譯得到)復(fù)制到SDRAM中
@nand_read_ll函數(shù)需要3個(gè)參數(shù):
ldr r0, =0x30000000 @1. 目標(biāo)地址=0x30000000,這是SDRAM的起始地址
mov r1, #4096 @2. 源地址 = 4096,連接的時(shí)候,main.c中的代碼都存在NAND Flash地址4096開始處
mov r2, #1024 @3. 復(fù)制長度= 1024(bytes),對于本實(shí)驗(yàn)的main.c,這是足夠了
bl nand_read_ll @調(diào)用C函數(shù)nand_read_ll
ldr sp, =0x34000000 @設(shè)置堆棧
ldr lr, =halt_loop @設(shè)置返回地址
ldr pc, =main @b指令和bl指令只能前后跳轉(zhuǎn)32M的范圍,所以這里使用向pc賦值的方法進(jìn)行跳轉(zhuǎn)
halt_loop:
b halt_loop
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -