1. 程式人生 > >從零到第一個裸板程式的過程

從零到第一個裸板程式的過程

         第一次真正意義上的接觸嵌入式開發,並沒有之前接觸軟體開發那麼的順利,過程複雜,涉及的知識廣是嵌入式門檻高的部分原因。一開始接觸,我不斷地在找概念,現在特在此將我的一些經驗記錄下來,以便不時之需,也提供給各位參考。

說明:我是用的開發板是 ARM9 的S3C2440 ,系統環境是 xp + linux 。

1.      安裝ADS,我的環境是在xp下,我安裝的是ADS1.2,安裝過程可以在網上搜索。(具體安裝過程不予介紹)

2.      在linux 系統下安裝gcc,如果讀者安裝了ADS windows下的整合開發環境,那麼這一步可以忽略,如果想要深入一點,那麼還是建議把這一步做了。(具體安裝過程不予介紹)

3.      到這裡我們就可以編寫我們的程式並得到我們要的檔案(如 hello.bin): (1)如果使用者使用的是ADS環境,那麼可以在ADS下編寫程式並make生成我們需要的.bin 檔案。(2)如果使用者更偏好於linux下,那麼,可以直接編寫彙編檔案和c檔案,並通過makefile 來編寫我們的編譯規則,最後生成我們要的 .bin 檔案。

在這裡我採用的是在linux下操作。

如圖所示:

3-1 首先新建一個led1.s 檔案,讀者可以自行定義檔名,並編寫程式碼如下:

讀者請注意,以下程式碼適用於s3c2440開發板,其他板請閱讀相關的文件。

3-2 新建MakeFile 檔案。並輸入以下規則:

3-3執行make 進行編譯。如果對於linux 下的makefile 不熟悉,請自行學習。


3-4編譯後的檔案概況。

編譯後將會生成:led1.dis ,led1.elf ,led1.o,led1.bin。led1.bin 即是我們想要得到的。

 

4.      在第三步得到了我們要的hello.bin 檔案後,接下來就是要將hello.bin燒錄到我們開發板上。所以這一步先將我們的開發板連線上電腦,這裡針對的是TQ2440開發板,(1)開發板連線上電源;(2)我們需要連線USB轉串列埠線到電腦,再用串列埠延長線連線TQ2440開發板的串列埠;(3)再將USB延長線連線 USB Slave 口。如圖:

 

5.      硬體連線後,後面就是驅動安裝:(1)由於我們開發板連線到電腦上採用的是USB轉串列埠的方式(由上第4步可以看出),所以我們需要安裝USB轉串列埠的驅動,這裡可以安裝廠商提供的驅動,也可以使用方式來安裝,我採用的方式是用驅動精靈安裝這個驅動。(2)另外我們還需要安裝USB下載驅動(開發板上會配送有),只有安裝了才能將我們的檔案通過usb燒到開發板。如圖:

USB轉並口驅動,說來我也迷惑為什麼不是USB轉串列埠?


無所謂,只要能出現下圖就OK啦,表示com連線上了,注意到這裡是COM3下面會用到


接下來就是安裝TQ2440_USB下載驅動:


說明:只要兩根線連線上電腦,如果是沒有裝過驅動的,會自動提示安裝,讀者要做的是選擇我們需要的驅動進行安裝即可。

6.      開啟SecureCRT ,通過SecureCRT 來配置COM 。使開發板能夠與dnw(下一步說dnw)連結上。

第一次開啟SecureCRT是會跳到下面的介面:我們將它配置成下面的形式,注意這裡用到了上面提過的COM3。

點選Connect ,如果成功會是下面的介面。

7.          安裝和配置dnw 下載軟體:安裝dnw後,(1)開啟軟體;(2)選擇選單欄的”引數配置-選項” , 配置資訊


配置完後確定。

(3)選擇選單欄的”串列埠-連線“,連線成功後如圖:


此時,COM3連線成功。

8.      在這裡我們可以將.bin檔案燒錄到開發板上了。燒錄的過程如下:

撥動Nor/Nand選擇開關,選擇Nor flash 啟動。開啟電源,dnw 如下:

 

我們輸入a, 如圖:


此時選擇DNW選單欄的”USB下載-UBOOT-選擇檔案“選擇我們的.bin所在路徑,我的是led1.bin。

出現上圖表示已經燒錄成功了,接下來選擇Nand flash 重新啟動開發板,就可以看到led1和led2燈亮了。

最後附上程式碼:http://download.csdn.net/detail/u014699958/8887341