|
深圳旋極ARM9實(shí)驗(yàn)箱上面的ARM9實(shí)驗(yàn)教程是基于ADSv1.2 和 Mult-ICE2.2并口仿真器的,大概是04~09年期間流行的開發(fā)方式。目前ARM公司主推RVMDK(KEIL For ARM uVsion4)和ULINK(中國ARM玩家主要是JLINK V8)仿真器了,怎么把原來的ADS程序移植到KEIL上面呢?
經(jīng)過分析ADS工程下面的文件,可以看到,原來的工程文件主程序是main.C,其他必須的匯編文件、C頭文件、C源文件都放在common和include目錄下。首先我們需要把這些工程都需要的基本文件都copy出來,放到一個(gè)“基本文件”目錄下。
里面的“DebugInRAM.ini“文件,是通過JTAG將鏡像文件下載到SDRAM內(nèi)存中運(yùn)行時(shí),所需要加載的SDRAM配置文件,相當(dāng)于ADSV1.2工程中每次都需要通過命令行鍵入” obey wtk2410.ads “文件中的內(nèi)容。
DebugInRAM.ini文件的內(nèi)容如下:可以看到,去掉了ads文件里面的禁止vector_catch和semihosting兩個(gè)命令,其余都一樣。
二、建立RVMDK工程文件,不要系統(tǒng)自建的啟動(dòng)代碼,加入基本文件和main主程序文件。
修改init.s文件,這個(gè)是移植的關(guān)鍵。需要注意的地方有:
1. 宏”MOV_PC_LR“在KEIL里面修改成相應(yīng)的BX <Rn>指令。
2.把init.s文件原來定義的段名”Init“ 修改成”RESET“,這應(yīng)該相當(dāng)于ADSV1.2里面告訴編譯器鏡像文件開始的段是誰。
3. 在AREA段定義偽指令前,加入” PRESERVE8 “偽指令,告訴KEIL編譯器字節(jié)對齊。
4. 將ADSv1.2里面的RO、RW、ZI基地址和大小定義的系統(tǒng)變量,修改為KEIL中的格式,所有出現(xiàn)的代碼都要修改。
5. 設(shè)置project\Target 1工程屬性。

misc contrls里面加入”--entry 0x30100000“編譯選項(xiàng)
6. 在”Debug“頁面里面加入 "DebugInRAM.ini"文件,并在”Load Application at Startup“選項(xiàng)打勾。
,重新編譯工程,生成鏡像文件,并下載到SDRAM中開始調(diào)試。
|
|