實現 SDRAM 調試下,MDK 按下復位按鈕後,能自動完成從 nor flash 跳轉到 SDRAM 運行代碼的功能。
韋東山 JZ2440 開發板:
SDRAM 起始地址 0x30000000
關鍵點:
修改 Ext_RAM.ini:
LOAD .\Objects_sdram\s3c2440.axf INCREMENTAL
FUNC void SetupForStart (void) {
// <o> Program Entry Point
PC = 0x30000000;
}
修改 S3C2440.s 代碼:
IF :DEF:BOOT_SDRAM
Reset_Addr DCD 0x30000000 + Reset_Handler
ELSE
Reset_Addr DCD Reset_Handler
ENDIF
注意當使用 Reset_Addr DCD 0x30000000 時會偶然出現無法訪問nor flash 的情況(訪問後得到數據是錯誤的),導致無法正常跳轉到 SDRAM 中,原因不明,但 Reset_Addr DCD 0x30000000 + Reset_Handler 可以正常。
添加宏定義 BOOT_SDRAM
爲了方便,使用多目標:
首先使用 下載 :
boot_sdram 目標代碼
之後使用 sdram 目標
簡單示例可參考本博客主頁資源中進行下載調試:
MDK V5.25