1. 程式人生 > >keil4 進行 S3C2440裸機開發

keil4 進行 S3C2440裸機開發

覺得此編文章很詳實,故轉載之,來自http://www.amobbs.com/thread-5281512-1-1.html

開發板也差不多買了半年了, 以前照著教程用的是軟體是ADS,在win7下老是崩潰, 後來才知道ADS早就不提供支援了, ADS的公司怎樣怎樣了...(此處省略300..)
然後我就搗鼓著怎麼轉到KEIL上來, 具體的例程程式碼我不會移植, 不過裸機開發是沒什麼問題的了, 在網上也找了些教程, 因為我比較菜, 然後教程又不是針對TQ2440的, 也有針對TQ2440的, 內容不全, 前段時間一直看不懂, 無奈, 搗鼓了好長時間, 終於明白了, 然後就想寫一份文件, 造福一下和我一樣用TQ2440的後人~

主要內容有:
1 準備工作
2.JLINK SDRAM除錯
3.JLINK 燒寫NOR Flash
4.生成下載到NAND的bin檔案(這個不需要JLINK)


一. 準備工作:

1. JLINK驅動(如果只是打算生成下載到nand的bin檔案的話就不用看這個了)

1). 首先安裝驅動

2). 閱讀此目錄下的readme文件, 用Flash.csv   支援更多Nor Flash的配置檔案替換C:\Program Files\SEGGER\JLinkARM_V408e\ETC\JFlash目錄下的同名檔案(假設您是把這個軟體安裝到C盤的)


(原檔名:1.png)
對JLINK不熟可以參考TQ2440的使用手冊第四章, TQ2440燒寫說明, 4.1.3 使用Jlink-Flasher燒寫


2. 建立工程和編寫程式碼

(原檔名:2.png)


(原檔名:3.png)
選擇CPU, 然後點OK

(原檔名:4.png)
複製啟動程式碼到我的工程檔案裡, 選是,

(原檔名:5.png)
然後工程就建好了

(原檔名:6.png)
啟動程式碼就在S3C2440.s裡面, 在Keil裡面是可以視覺化自由配置的, 開啟S3C2440.s你會看到很多的彙編程式碼, 呵呵, 我也不喜歡彙編. 然後點下面的配置嚮導
(原檔名:7.jpg)
先都打個勾吧, 其實我也不知道這樣配置好不好,

(原檔名:8.jpg)
對了, LED對應的IO口要設定為輸出

(原檔名:9.png)
建個main.c檔案, 寫你的工程程式碼咯~這裡就以閃爍燈為例啦
新建檔案, 其實不太想說這個了, 考慮到可能還真有人沒用過Keil的...
(原檔名:10.png)
點儲存, 檔名為main.c

(原檔名:1.png)

(原檔名:1.png)
好了, 開始寫程式碼了, 噢, 還要先把main.c檔案新增到專案裡來咧

(原檔名:1.png) 選擇main.c, 滑鼠單擊Add
(原檔名:1.png)  工程目錄裡就有這個東東了
(原檔名:1.png)
下面是程式碼:
注意到我在第一句打了個斷點, 呵呵, 無奈, 之前除錯的時候上系統啟動後自動在main函式入口停下來的指令不管用, 所以就手動加了個斷點了,然後就可以儲存檔案啦

(原檔名:1.png)
設定工程:
(原檔名:1.png)
這一項玩過51的就再熟不過了
(原檔名:1.png)
這個設定不重要, 習慣而已
(原檔名:1.png)
準備完啦, 繼續~



二. JLINK在SDRAM中除錯TQ2440

用SDRAM除錯是一個不錯的方式, 可以有效的減少Flash的擦寫, 方便又快捷, 呵呵, 不囉嗦了, 直接進入正題~
在SDRAM裡面除錯的時候是這樣設定的, 主要是ROM1和RAM1的起始地址

(原檔名:1.png)

(原檔名:1.png)
對了, 還要複製一個初始化檔案,  檔案在Keil的安裝目錄裡找, 我這裡是D:\Program Files\Keil\ARM\Boards\Samsung\S3C2440\RTX_Blinky\Ext_RAM.ini
直接複製到你的工程目錄下, 然後還要做一點修改, 如果不修改, 就除錯不了, 會出現這樣的情況

(原檔名:1.png)
工程輸出的.axf檔案(我也不清楚是用來幹啥的)在工程目錄下的Output資料夾裡, 所以可以用編輯工具(記事本就行了)開啟來這樣修改:

(原檔名:1.png)
然後新增這個檔案,
(原檔名:1.png)
呃, 突然發現少做了一件事...這樣就OK了, 設定utilities這裡添加了燒寫演算法的, 其實在燒NOR Flash那裡我才需要這個, 這個演算法是不能擦除的, 但是這裡我找不到合適的演算法, 就用這個相近的了, 要擦除的話就用JFlash。

Note:update target before degugging de 選項是不選的,我第一眼看以為是要勾上的!!!!



(原檔名:1.png)
現在可以按F7編譯了, 然後用你的JLINK連線好TQ2440開發板和你的電腦, TQ2440要先上電哦~最後在KEIL裡面點除錯就行了~

(原檔名:1.png)
然後你就可以單步除錯什麼的了, 主要是由這裡控制的, 我就不多說了, 自己搗鼓搗鼓去吧~

(原檔名:1.png)



三. 燒寫NOR Flash

燒寫NOR Flash時要這樣配置:

(原檔名:1.png)
然後是這個, 再囉嗦一下, 設定utilities, 這裡添加了燒寫演算法的, 這個演算法是隻能用來程式設計不能擦除的, 但是這裡我找不到合適的演算法, 就用這個相近的了, 要擦除的話就用JFlash

(原檔名:1.png)
按F7編譯, 然後開啟JFlash, JFlash的設定參考TQ2440的使用者手冊哈,然後

(原檔名:1.png)
擦除...
(原檔名:1.png)
回到MDK, LOAD, 就可以看到下載成功了

(原檔名:1.png)



四. 生成下載到NAND的bin檔案

首先, TQ2440開發板出廠的時候是有燒有BootLoader的, 我也不懂BootLoader的原理, 所以直接用那個就行了. 如果剛剛燒過NOR Flash, 那麼BootLoader就沒了, 要重新燒進去了, 這個可以參考TQ2440的使用手冊第四章, TQ2440燒寫說明, 4.1.3 使用Jlink-Flasher燒寫

然後這個是設定
(原檔名:1.png)
接著, 讓keil在生成後執行生成bin檔案的使用者程式,

(原檔名:1.png)
然後編譯就可以生成需要的bin檔案了, 就在你的工程目錄下, 下載的方式和TQ2440裸奔教程那裡一開始說的是一樣的, 用secureCRT和DNW, 我就不多說啦 ^_^