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