




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第第 2 2 章章ADS集成開(kāi)發(fā)環(huán)境及程序下載具體流程裸機(jī)開(kāi)發(fā)環(huán)境:n何謂“裸機(jī)”?裸機(jī)是指無(wú)操作系統(tǒng)下的ARM系統(tǒng)開(kāi)發(fā)其特點(diǎn)是所有硬件資源均開(kāi)放可以把它理解為一個(gè)高級(jí)單片機(jī)的開(kāi)發(fā)n裸機(jī)開(kāi)發(fā)的作用更能深入地從底層去理解ARM CPU的操作過(guò)程及系統(tǒng)設(shè)計(jì)為日后自行設(shè)計(jì)系統(tǒng)打下基礎(chǔ)為bootloader的編寫打好基礎(chǔ)2.1 ADS 1.2集成開(kāi)發(fā)環(huán)境簡(jiǎn)介n ARM應(yīng)用軟件的開(kāi)發(fā)工具根據(jù)功能的不同,可以分為編輯軟件、編譯軟件、匯編軟件、鏈接軟件、調(diào)試軟件、嵌入式實(shí)時(shí)操作系統(tǒng)、函數(shù)庫(kù)、評(píng)估板,JTAG仿真器以及在線仿真器等。n 目前有多家公司可以提供以上不同類型的開(kāi)發(fā)工具,用戶采用ARM處理器進(jìn)行嵌入
2、式系統(tǒng)開(kāi)發(fā)時(shí),選擇合適的開(kāi)發(fā)工具可以加快開(kāi)發(fā)進(jìn)度,節(jié)省開(kāi)發(fā)成本。名稱描述使用方式代碼生成工具ARM匯編器ARM C/C+編譯器Thumb C/C+編譯器ARM 鏈接器由Code Warrior調(diào)用 集成開(kāi)發(fā)環(huán)境Code Warrior工程管理,編譯鏈接調(diào)試器AXD在線仿真調(diào)試指令模擬器ARMulator由AXD調(diào)用ARM開(kāi)發(fā)包一些底層的例程,實(shí)用程序(如fromELF)由Code Warrior調(diào)用ARM應(yīng)用庫(kù)C/C+等函數(shù)庫(kù)用戶程序調(diào)用ADS 1.2 ADS 1.2 集成開(kāi)發(fā)環(huán)境部分組件集成開(kāi)發(fā)環(huán)境部分組件2.1.1 Code Warrior for ARM開(kāi)發(fā)環(huán)境 CodeWarrior
3、集成開(kāi)發(fā)環(huán)境(IDE)為管理和開(kāi)發(fā)項(xiàng)目提供了簡(jiǎn)單多樣化的圖形用戶界面。 用戶可以使用ADS 的CodeWarrior IDE 為ARM 和Thumb 處理器開(kāi)發(fā)用C,C+,或ARM匯編語(yǔ)言的程序代碼。通過(guò)提供下面的功能,CodeWarrior IDE 縮短了用戶開(kāi)發(fā)項(xiàng)目代碼的周期。 2.1.2 AXD調(diào)試器的啟動(dòng)n 在軟件開(kāi)發(fā)的最初階段,可能還沒(méi)有具體的硬件設(shè)備。如果要測(cè)試所開(kāi)發(fā)的軟件是否達(dá)到了預(yù)期的效果,這可以由軟件仿真來(lái)完成。n 當(dāng)然,也可以搭建一個(gè)PCB板,這個(gè)板上可以包含一個(gè)或多個(gè)處理器,在這個(gè)板上可以運(yùn)行和調(diào)試應(yīng)用軟件。n 只有當(dāng)通過(guò)硬件或者是軟件仿真所得到的結(jié)果達(dá)到了預(yù)期的效果,才
4、算是完成了應(yīng)用程序的編寫工作。n調(diào)試器能夠發(fā)送以下指令:調(diào)試器能夠發(fā)送以下指令:裝載映像文件到目標(biāo)內(nèi)存;啟動(dòng)或停止程序的執(zhí)行;顯示內(nèi)存,寄存器或變量的值;允許用戶改變存儲(chǔ)的變量值。nAXD調(diào)試器支持單步、全速、執(zhí)行到光標(biāo)處、斷點(diǎn)等調(diào)試功能。啟動(dòng)AXD調(diào)試器的方法:n單擊“開(kāi)始程序ARM Developer SuiteV1.2AXD Debugger調(diào)試器”,如圖2.2 2.2 工程的編輯與修改工程的編輯與修改2.2.1 2.2.1 建立一個(gè)新工程建立一個(gè)新工程2.2.1 2.2.1 使用使用ADSADS創(chuàng)建工程創(chuàng)建工程在CodeWarrior 中新建一個(gè)工程的方法有兩種,可以在工具欄中單擊“N
5、ew ”按鈕,也可以在“File”菜單中選擇“New ”菜單。這樣就會(huì)打開(kāi)一個(gè)如圖2.1 所示的對(duì)話框。 在這里選擇ARM Executable Image,在“Project name:”中輸入工程文件名,本例為“TQ2440_Test”,點(diǎn)擊“Location:”文本框的“Set”按鈕,瀏覽選擇想要將該工程保存的路徑,將這些設(shè)置好后,點(diǎn)擊“確定”,即可建立一個(gè)新的名為TQ2440_Test的工程。 這個(gè)時(shí)候會(huì)出現(xiàn)TQ2440_Test.mcp 的窗口,如圖所示,有三個(gè)標(biāo)簽頁(yè),分別為files,link order,targets 默認(rèn)的是顯示第一個(gè)標(biāo)簽頁(yè) files。通過(guò)在該標(biāo)簽頁(yè)點(diǎn)擊鼠標(biāo)
6、右鍵,選中“Add Files”可以把要用到的源程序添加到工程中。這個(gè)時(shí)候會(huì)出現(xiàn)TQ2440_Test.mcp 的窗口,如圖所示,有三個(gè)標(biāo)簽頁(yè),分別為files,link order,target 默認(rèn)的是顯示第一個(gè)標(biāo)簽頁(yè) files。通過(guò)在該標(biāo)簽頁(yè)點(diǎn)擊鼠標(biāo)右鍵,選中“Add Files”可以把要用到的源程序添加到工程中。2.2.2 2.2.2 添加源文件添加源文件在建立好一個(gè)工程時(shí),默認(rèn)的target 是DebugRel, 還有另外兩個(gè)可用的target,分別為Realse 和Debug,這三個(gè)target 的含義分別為:DebugRel :使用該目標(biāo),在生成目標(biāo)的時(shí)候,會(huì)為每一個(gè)源文件生成
7、調(diào)試信息;Debug :使用該目標(biāo)為每一個(gè)源文件生成最完全的調(diào)試信息;Release:使用該目標(biāo)不會(huì)生成任何調(diào)試信息。 注:若項(xiàng)目編譯只是為了調(diào)試使用,則選擇Debug或者DebugRel;若要生成最后可以運(yùn)行的文件,則最好選擇Release。添加源文件到工程編譯鏈接編譯鏈接n進(jìn)入編譯鏈接設(shè)置:點(diǎn)擊點(diǎn)擊Edit Edit 菜單,選擇菜單,選擇“DebugRelDebugRel Settings Settings”,出現(xiàn)如圖所示的對(duì)話框。出現(xiàn)如圖所示的對(duì)話框。 主要包括:主要包括:1. target 1. target 設(shè)置選項(xiàng)設(shè)置選項(xiàng)2.Language Settings 2.Language
8、 Settings 3. Linker 3. Linker 設(shè)置設(shè)置 n 在Targets Settings選項(xiàng)組中,Post-Linker用于選擇鏈接器輸出文件的處理方式。用戶可以選擇的值如下:None:不進(jìn)行連接的處理。ARM fromELF:使用ARM工具fromELF處理鏈接器輸出的ELF格式文件,它可以將ELF格式的文件轉(zhuǎn)換為各種二進(jìn)制文件格式。Batch File Runner:在連接完成后運(yùn)行一個(gè)DOS格式的批處理文件。n 若用戶在編譯完成后只是用AXD來(lái)調(diào)試程序,建議選擇None;若要生成最后的編程文件,建議選擇ARM fromELF,該選項(xiàng)與Linker面板中的ARM fro
9、mELF選項(xiàng)結(jié)合來(lái)產(chǎn)生最終的編程文件。nCPU設(shè)置:nLinker設(shè)置:n 在標(biāo)簽頁(yè) Output 中,Linktype 中提供了 3 種鏈接方式:Partia :表示鏈接器只進(jìn)行部分鏈接,經(jīng)過(guò)部分鏈接生成的目標(biāo)文件,可以作為以后進(jìn)一步鏈接時(shí)的輸入文件。Simple :默認(rèn)的鏈接方式,也是使用最為頻繁的鏈接方式,它鏈接生成簡(jiǎn)單的 ELF 格式的目標(biāo)文件,使用的是鏈接器選項(xiàng)中指定的地址映射方式。Scattered :使得鏈接器要根據(jù) scatter 格式文件中指定的地址映射,生成復(fù)雜的 ELF 格式的映像文件。一般情況下這個(gè)選項(xiàng)使用不太多。 n 在選中 Simple 方式后,就會(huì)出現(xiàn) Simpl
10、e image。 R0 Base:這個(gè)文本框設(shè)置包含有 R0 段的加載域和運(yùn)行域?yàn)橥粋€(gè)地址,默認(rèn)是 0 x30000000。這里用戶要根據(jù)硬件的實(shí)際 SDRAM 的地址空間來(lái)修改這個(gè)地址,保證在這里填寫的地址是程序運(yùn)行時(shí) SDRAM 地址空間所能覆蓋的地址。RW Base:這個(gè)文本框設(shè)置包含 RW 和 ZI 輸出段的運(yùn)行域地址。n 在 Options 選項(xiàng)中,需要注意的是 Image entry point 文本框。它指定映像文件的初始入口點(diǎn)地址值,當(dāng)映像文件被加載程序加載時(shí),加載程序會(huì)跳轉(zhuǎn)到該地址處執(zhí)行。如果需要,用戶可以在這個(gè)文本框中輸入下面格式的入口點(diǎn)。 n 入口點(diǎn)地址:這是一個(gè)數(shù)值,
11、例如-entry 0 x0。 n 符號(hào):該選項(xiàng)指定映像文件的入口點(diǎn)為該符號(hào)所代表的地址處。比如:-entry int_handler。 n 在此處指定的入口點(diǎn)用于設(shè)置 ELF 映像文件的入口地址。 需要注意的是,這 里不可以用符號(hào) main 作為入口點(diǎn)地址符號(hào),否則將會(huì)出現(xiàn)“Image dose not have an entry point(Not specified or not set due to multiple choice)”的出錯(cuò)信息。 n Layout選項(xiàng)在連接方式為Simple時(shí)有效,用來(lái)安排一些輸入段在映像文件中的位置。在上圖中,Place at Beginning of
12、 Image選項(xiàng)用于指定某個(gè)輸入段放置在它所在的運(yùn)行時(shí)域的開(kāi)頭。 在 Output file name 文本域輸入期望生成的輸出文件存放的路徑,或通過(guò)點(diǎn)擊 Choose.按鈕從文件對(duì)話框中選擇輸出文件路徑。如果在這個(gè)文本域不輸入路徑名,則生成的二進(jìn)制文件存放在工程所在的目錄下。n 在 Output format 下拉框中,為用戶提供了多種可以轉(zhuǎn)換的目標(biāo)格式,這里選擇 Plain binary,這是一個(gè)二進(jìn)制格式的可執(zhí)行文件,可以被燒寫在目標(biāo)板的 Flash中。2.2.3 編譯與鏈接工程nDebugRel Settings:設(shè)置工程的屬性,如設(shè)置鏈接地址、輸出文件的格式、編譯選項(xiàng)等。nMake:
13、編譯、鏈接nDebug:?jiǎn)?dòng)AXD調(diào)試器點(diǎn)擊CodeWarrior IDE 的菜單Project 下的make 菜單,就可以對(duì)工程進(jìn)行編譯和鏈接了。 2.3 工程的調(diào)試 2.3.1. 裝載映像文件在菜單File 中選擇“Load image”選項(xiàng),打開(kāi)Load Image 對(duì)話框,找到要裝載的.axf 映像文件,點(diǎn)擊“打開(kāi)”按鈕,就把映像文件裝載到目標(biāo)內(nèi)存中了。 n第一次打開(kāi)AXD調(diào)試器,需要設(shè)置:n點(diǎn)擊ADX窗口菜單【Options】選擇【Configure Target】,即彈出Choose Target 窗口,在沒(méi)有添加其它仿真驅(qū)動(dòng)程序前,Target 項(xiàng)中沒(méi)有ARMUL(軟件仿真)項(xiàng)。
14、n單擊“Add”按鈕,在文件目錄下加載“D:Program FilesARMADSv1_2Bin”文件夾下的ARMulate.dll文件n點(diǎn)擊“Configure”按鈕,在“Variant”的下拉列表框中選擇“ARM920T”n調(diào)試工具條,從左到右依次為:調(diào)試工具條,從左到右依次為:全速運(yùn)行(Go)停止運(yùn)行(Stop)單步運(yùn)行(Step In),與Step 命令不同之處在于對(duì)函數(shù)調(diào)用語(yǔ)句,Step In 命令將進(jìn)入該函數(shù)。單步運(yùn)行(Step),每次執(zhí)行一條語(yǔ)句,這時(shí)函數(shù)調(diào)用將被作為一條語(yǔ)句執(zhí)行。單步運(yùn)行(Step Out),執(zhí)行完當(dāng)前被調(diào)用的函數(shù),停止在函數(shù)調(diào)用的下一條語(yǔ)句。運(yùn)行到光標(biāo)(Run
15、 To Cursor),運(yùn)行程序直到當(dāng)前光標(biāo)所在行時(shí)停止。設(shè)置斷點(diǎn)(Toggle BreakPoint)2.3.2 調(diào)試工具條的使用n調(diào)試觀察窗口工具條,從左到右依次為:打開(kāi)寄存器窗口(Processor Registers)打開(kāi)觀察窗口(Processor Watch)打開(kāi)變量觀察窗口(Context Variable)打開(kāi)堆棧觀察窗口(Back Trace)打開(kāi)存儲(chǔ)器觀察窗口(Memory)打開(kāi)反匯編窗口(Disassembly)2.4 H-JTAG的安裝與調(diào)試 nTQ2440既支持從Nor Flash啟動(dòng),也支持從Nand Flash啟動(dòng)。當(dāng)開(kāi)發(fā)板Nor Flash和Nand Flash
16、的uboot擦除時(shí),開(kāi)發(fā)板不能開(kāi)機(jī),這時(shí)必須通過(guò)JTAG口燒寫uboot。n開(kāi)發(fā)板沒(méi)有uboot的表現(xiàn)在于:n1、串口不輸出信息n2、LCD白屏若從Nor Flash啟動(dòng)uboot:若從Nand Flash啟動(dòng)uboot:目前有三種方式可以通過(guò)TQ2440的JTAG口來(lái)燒寫uboot或應(yīng)用程序:n使用SJ2440軟件,配合PC并口,這種方法最原始,效率低下,不推薦;n使用H-Jtag軟件,配合PC并口,對(duì)于有PC并口,推薦;n使用Jlink軟件,PC電腦沒(méi)有并口,就采用此方法。(需購(gòu)買Jlink)2.4.1 H-JTAG的設(shè)置n1、雙擊“H-JTAG”圖標(biāo)n2、點(diǎn)擊“Settings”菜單下的
17、“LPT Jtag Setting”n3、如圖設(shè)置界面n4、連好開(kāi)發(fā)板和PC,啟動(dòng)開(kāi)發(fā)板。點(diǎn)擊“Detect target”,軟件自動(dòng)檢測(cè)CPU。nCPU型號(hào)為:ARM920T 0X0032409Dn點(diǎn)擊“Flasher”菜單下的“Start H-Flasher”n點(diǎn)擊“l(fā)oad”選擇配置文件配置文件:nTQ2440_nand_2KP.hfc:用于燒寫2K大頁(yè)面Nand Flash的H-Flash配置文件,燒寫256M Nand FlashnTQ2440_nand_64MB.hfc:用于燒寫512字節(jié)小頁(yè)面Nand Flash的H-Flash配置文件,燒寫64M Nand FlashnTQ2440_nor_eon.hfc:用于燒寫Nor Flash的H-Flash配置文件,燒寫EON的flashnTQ2440_nor_sp.hfc:用于燒寫Nor Flash的H-Flash配置文件,燒寫Spansion的flash燒寫uboot到Nand Flashn點(diǎn)擊“l(fā)oad”,導(dǎo)入“TQ2440_nand_2KP.hfc”n找到Uboot鏡像后,點(diǎn)擊“Program”按鈕,開(kāi)始燒寫n完成uboot到Nand Flash的操作。燒寫
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 美麗鄉(xiāng)村項(xiàng)目可行性研究報(bào)告
- 家居智能語(yǔ)音
- 農(nóng)業(yè)產(chǎn)業(yè)鏈管理手冊(cè)
- 市場(chǎng)調(diào)研報(bào)告細(xì)分行業(yè)統(tǒng)計(jì)表
- 能源產(chǎn)業(yè)項(xiàng)目進(jìn)度跟蹤表
- 腫瘤內(nèi)科胃癌練習(xí)試題及答案
- 智能安防設(shè)備技術(shù)及應(yīng)用場(chǎng)景探索
- 會(huì)展業(yè)活動(dòng)策劃與執(zhí)行指南
- 財(cái)務(wù)會(huì)計(jì)實(shí)操指南
- 網(wǎng)絡(luò)技術(shù)問(wèn)題解決指南
- 上海中考英語(yǔ)試卷及答案版
- ChatGPT會(huì)影響到人類社會(huì)嗎(2023年四川涼山中考語(yǔ)文試卷說(shuō)明文閱讀題及答案)
- 2025年廣東汕頭高三數(shù)學(xué)試題下學(xué)期一模預(yù)考試題含解析
- 光伏電站工程施工組織設(shè)計(jì)方案
- DL∕T 2609-2023 主動(dòng)干預(yù)型消弧裝置驗(yàn)收運(yùn)維規(guī)范
- DZ∕T 0211-2020 礦產(chǎn)地質(zhì)勘查規(guī)范 重晶石、毒重石、螢石、硼(正式版)
- 中國(guó)居民營(yíng)養(yǎng)與健康狀況調(diào)查報(bào)告
- 人體成分分析適應(yīng)癥禁忌癥
- 2024年廣東廣州黃埔區(qū)長(zhǎng)嶺街道森林消防護(hù)林員招聘筆試沖刺題(帶答案解析)
- 2024年云南呈貢區(qū)城市投資集團(tuán)有限公司招聘筆試參考題庫(kù)含答案解析
- 第2課中華文化的世界意義教學(xué)設(shè)計(jì)-高中歷史選擇性必修3文化交流與傳播
評(píng)論
0/150
提交評(píng)論