<s id="eoqoe"><xmp id="eoqoe">
<button id="eoqoe"><strong id="eoqoe"></strong></button>
<s id="eoqoe"><xmp id="eoqoe">
<button id="eoqoe"><strong id="eoqoe"></strong></button>
<wbr id="eoqoe"></wbr>
<wbr id="eoqoe"><strong id="eoqoe"></strong></wbr>
<wbr id="eoqoe"><strong id="eoqoe"></strong></wbr>
<wbr id="eoqoe"><strong id="eoqoe"></strong></wbr>
<wbr id="eoqoe"><label id="eoqoe"></label></wbr>
<button id="eoqoe"></button>
<wbr id="eoqoe"></wbr>
你的位置:首頁(yè) > 測試測量 > 正文

ARM菜鳥(niǎo)快速上手

發(fā)布時(shí)間:2012-11-30 責任編輯:sherryyu

【導讀】世界的多元化,造就我們要知識廣泛化,可能對于A(yíng)RM有的人一無(wú)所知,還有的人一知半解,本文就一些知識,幫忙大家很快的入門(mén).


我使用的是51eda 的44B0X 豪華板,用jtag 小板調試,編譯環(huán)境是ADS1.2,調試環(huán)境是SDT2.51,程序燒寫(xiě)用FlashP,用其他燒寫(xiě)工具也可以。

1、 電源設定:拿到板,首先檢查電源的配置,我使用USB 供電,所以在電源插口附近的跳線(xiàn)要設定成USB 供電,而不是外部供電。

2 、連接接口:關(guān)閉主機,連接串口,主機端是COM0 口,開(kāi)發(fā)板這端是靠近LCD口的COM1 口(另一個(gè)是COM2 口);連接網(wǎng)口,因為網(wǎng)線(xiàn)可以帶電插拔,所以現在不管;連接并口,將jtag小板接上,將一根20芯的排線(xiàn)插在jtag小板的SDT_JTAG 口上,(接在wiggler口上也行,跟開(kāi)發(fā)工具的選擇有關(guān)),另一段插在開(kāi)發(fā)板的jtag 口上。USB 也可以插上,注意在開(kāi)發(fā)板有點(diǎn)之前把開(kāi)發(fā)板的開(kāi)關(guān)扳到下面,使開(kāi)發(fā)板出于關(guān)停的狀態(tài)。至此,硬件連接結束,開(kāi)主機時(shí)一定要保持開(kāi)發(fā)板是關(guān)停狀態(tài)。

3 、主機打開(kāi)以后,運行ADS 編譯開(kāi)發(fā)環(huán)境:
File->New,顯示對話(huà)框:

 

 

1

建立一個(gè) ARM 可執行映像(ARM Executable Image)。

2

把左上角的下拉菜單改為 Debug 好了,軟件開(kāi)發(fā)前期用這個(gè)選項。
新建一個(gè)匯編源代碼文件,并加入工程,比如命名為44binit.s
輸入以下代碼:
               AREA Init, CODE, READONLY
       ENTRY
LABEL
         ldr r0, =0x0
        ldr r1, =0x20
LABEL_01
        add r0,r0,#1
        cmp r0,r1
        ldreq r0, =0x0
        beq LABEL
        bne LABEL_01
注意AREA 不要頂格寫(xiě)。這端代碼十分簡(jiǎn)單,大家一看就明白。
保存文件

下面這步比較重要,是程序編譯的設定。
點(diǎn)點(diǎn)擊該工程上方的3按鈕,或者選擇Edit->DebugSetting…,如圖

3

有幾個(gè)地方要修改,在這個(gè)界面下,在 Post-linker 欄里選擇ARM fromELF,這是生成最后目標的可選項目之一,也是比較常用的。
在 Language Settings 里,要修改編譯器的設定,對本項目,默認設定已經(jīng)可以,不需要改動(dòng),在實(shí)際的工作中,安自己的需要更改之。
下面設定連接器 Linker,這是很重要的一步,由于A(yíng)RM 開(kāi)發(fā)模式和程序運行的存儲器與DSP 不同,通常在Linker 環(huán)節的設定對ARM 開(kāi)發(fā)來(lái)講很重要。

5

在 ARM Linker 的Output 標簽里,設定如上圖,因為我們的程序是不包含SDRAM 初始化代碼的,所以我的代碼無(wú)法初始化SDRAM,這意味這向SDRAM 寫(xiě)入數據將是不可靠的,所以在SDRAM 初始化代碼運行前,不要將代碼裝入SDRAM 中調試。這就要求我們的代碼要運行在0x0 地址,所以我們將RO Base 欄填入0x0,RW Base 不填,表示RW 段緊跟著(zhù)RO 段。
選擇 Layout 標簽,如圖:

5

在Place at beginning of image 域里,兩個(gè)欄分別填入,44binit.o 和Init,表示在初始地址放入44binit.o,這個(gè)目標文件就是源文件編譯得來(lái)的,因為我們只有一個(gè)文件要編譯,所以即使這里不如此設定,代碼一樣會(huì )定位到0x0 處,只是以后一個(gè)項目包含多個(gè)文件時(shí),一定要用這種方法指定0x0 開(kāi)始時(shí)的代碼源于哪個(gè)文件的代碼。以后如果用Scatter 文件規定存儲器分布就不用這么設定了。
選中左邊的 ARM fromELF 項,如圖:

6

在這里選擇 Output format,一般選Plain binary,這是比較常用的格式,output 文件后綴是bin。好了,確認設定無(wú)誤后可以編譯,在項目的文件夾里可以找到bin 后綴的文件,這就是我們要燒寫(xiě)的文件。

4、燒寫(xiě)flash,我用“Flash 燒寫(xiě)器2.1”燒寫(xiě)程序,它的可執行文件名是FlashP.exe。網(wǎng)上比較常見(jiàn),燒寫(xiě)速度較快。運行以后如圖:

7

在左邊的三個(gè)框里選擇 44b0x,SDT JTAG 和并口1。右邊4 個(gè)按鈕分別是:擦除芯片,保存存儲內容,空白區檢測和燒寫(xiě)。在燒寫(xiě)前將開(kāi)發(fā)板上電,清楚并檢測一下 flash 芯片,然后選擇剛剛編譯的bin 文件燒寫(xiě)。

5、 調試,現在我們僅能在flash 芯片里觀(guān)察程序運行,因為我們的SDRAM 沒(méi)有正確初始化。調試前要運行 JTAG2000 的后臺程序,如果第一次調試,JTAG2000 要求安裝GiveIO 軟件,安裝就是了。就像龔俊大哥寫(xiě)的入門(mén)教程里提到的那樣,JTAG2000 將發(fā)往網(wǎng)口的調試命令和數據截住,改發(fā)給聯(lián)接jtag 小板的并口,所以在SDT 的debugger 里設定時(shí)要設定成網(wǎng)口調試。

調試啦,先運行JTAG2000,顯示一個(gè)DOS 運行框,不管它了,最小化就好。運行SDT的Debugger,他會(huì )問(wèn)你是否是遠程調試,如果不問(wèn)就是因為原來(lái)的設定是ARMulator 軟仿真調試。要在Options->Configure Debugger里改成遠程調試,如圖:

8

點(diǎn)擊該對話(huà)框的 Configure 按鈕,如圖:

9

按照圖中設定,注意把IP 換成你的IP,呵呵,我的是天津大學(xué)校園網(wǎng)的IP,你們要填寫(xiě)你的電腦的IP,要保持此處的內容和你的電腦的設定一致。OK,確定,保存你的配置。

這時(shí) JTAG2000 的窗口里應該有輸出,先不管,在SDT Debugger 里,選擇File->Load Image…,到你的工程目錄下選擇那個(gè)和BIN 同一文件夾下的AXF 文件,這是用來(lái)調試的文件,打開(kāi),SDT Debugger 的客戶(hù)區就會(huì )顯示你的代碼,和程序停止的位置,如圖:

9

接下來(lái)就是考驗你調試的功夫了,當然我的程序太短小,也沒(méi)有使用價(jià)值(其實(shí)也有,就是演示的價(jià)值),也沒(méi)有要調試的地方,我編寫(xiě)這個(gè)程序僅僅是讓大家看看從買(mǎi)來(lái)板子到運行第一個(gè)哪怕是最弱智的程序的全過(guò)程。

好了,我們已經(jīng)能跑程序了,雖然這個(gè)程序太弱智了。但是它畢竟運行了。好像有點(diǎn)慢,對了,他是在flash 里運行,當然要慢。以上面的方法調試程序,而且每發(fā)現一個(gè)bug 就要重新燒寫(xiě)flash,會(huì )傷到芯片。把程序放在SDRAM 里運行就好了。

把程序請進(jìn) SDRAM 里,有幾個(gè)問(wèn)題,就是SDRAM 要求初始化,未初始化的SDRAM芯片和沒(méi)有焊在板子上一樣。再有就是編譯的時(shí)候,RO 的地址要設定在SDRAM 里。后者只是重新編譯的問(wèn)題,主要是前者,我在這里不講,這主要是軟件編制的問(wèn)題,開(kāi)發(fā)板附帶的光盤(pán)的BIOS 代碼示例中有關(guān)于SDRAM 初始化的代碼,自己去看。

要采購開(kāi)發(fā)板么,點(diǎn)這里了解一下價(jià)格!
特別推薦
技術(shù)文章更多>>
技術(shù)白皮書(shū)下載更多>>
熱門(mén)搜索
?

關(guān)閉

?

關(guān)閉

久久无码人妻精品一区二区三区_精品少妇人妻av无码中文字幕_98精品国产高清在线看入口_92精品国产自产在线观看481页
<s id="eoqoe"><xmp id="eoqoe">
<button id="eoqoe"><strong id="eoqoe"></strong></button>
<s id="eoqoe"><xmp id="eoqoe">
<button id="eoqoe"><strong id="eoqoe"></strong></button>
<wbr id="eoqoe"></wbr>
<wbr id="eoqoe"><strong id="eoqoe"></strong></wbr>
<wbr id="eoqoe"><strong id="eoqoe"></strong></wbr>
<wbr id="eoqoe"><strong id="eoqoe"></strong></wbr>
<wbr id="eoqoe"><label id="eoqoe"></label></wbr>
<button id="eoqoe"></button>
<wbr id="eoqoe"></wbr>