初始化檔案的作用是通過配置2440的内部寄存器來初始化SDRAM。是為程式在SDRAM中運作作準備的。 其實這個檔案是一個H-JTAG的腳本:初始化腳本 腳本作用
Setmem 設定記憶體/寄存器的值
Getmem 讀取記憶體的值
Delay 添加延遲
SysReset 執行系統複位
SoftReset 執行軟複位 其中我們用到的是第一條,其文法如下 Setmem 位寬 目的位址 目标值。位寬也可以放最後面。 Setmem - 腳本指令;
位寬 - 表示要設定的目标值的位寬,可選的位寬為 8-Bit/16-Bit/32-Bit;
目的位址 - 表示的是操作的目的位址,設定的時候請根據選擇的位寬保證位址是對齊的; 目标值 - 使用者希望寫到目的位址的值,設定的時候請根據選擇的位寬輸入合适的值; 下面來具體看下初始化檔案的内容(核心arm920t):
setmem 0x53000000,0x00000000,32; pWTCON , 看門狗定時器控制寄存器
setmem 0x4a000008,0xffffffff,32; INTMSK , 中斷屏蔽寄存器
setmem 0x4a00001c,0x00007fff,32; INTSUBMSK , 中斷屏蔽寄存器 setmem 0x48000000,0x2212d110,32; 總線寬度和等待控制寄存器
setmem 0x48000004,0x00000f40,32; Boot ROM control
setmem 0x48000008,0x00002e50,32; BANK1 control
setmem 0x4800000c,0x00002e50,32; BANK2 control
setmem 0x48000010,0x00002e50,32; BANK3 control
setmem 0x48000014,0x00002e50,32; BANK4 control
setmem 0x48000018,0x00002e50,32; BANK5 control
setmem 0x4800001c,0x00018005,32; BANK6 control
setmem 0x48000020,0x00018005,32; BANK7 control
setmem 0x48000024,0x00960542,32; 重新整理控制寄存器 setmem 0x48000028,0x00000032,32; Bank大小控制寄存器 setmem 0x4800002c,0x00000030,32; SDRAM模式寄存器組--Mode register set for SDRAM
setmem 0x48000030,0x00000030,32; SDRAM模式寄存器組--Mode register set for SDRAM |
具體寄存器指派意義見s3c2440手冊。