




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 第第6章章ADS集成開發(fā)環(huán)境的使用集成開發(fā)環(huán)境的使用教學(xué)目的n掌握ADS集成開發(fā)環(huán)境的使用 :嵌入式系統(tǒng)開發(fā)流程Code Warrior IDE的使用AXD調(diào)試器的使用教學(xué)內(nèi)容n6.1 嵌入式系統(tǒng)開發(fā)基礎(chǔ)n6.2 ADS 1.2 集成開發(fā)環(huán)境介紹n6.3 程序的編輯n6.4 程序的編譯n6.5 程序的連接n6.6 程序的調(diào)試6.1 嵌入式系統(tǒng)開發(fā)基礎(chǔ)n6.1.1嵌入式系統(tǒng)開發(fā)流程n6.1.2嵌入式軟件開發(fā)n6.1.3 ARM Developer Suite(ADS)的安裝6.1.1嵌入式系統(tǒng)開發(fā)流程n嵌入式系統(tǒng)開發(fā)的基本流程為: 1 系統(tǒng)定義與需求分析。 2 系統(tǒng)設(shè)計方案的初步確立。 3 初
2、步設(shè)計方案性價比評估與方案評審論證。 4 完善初步方案、初步方案實施。 5 軟硬件集成測試。 6 系統(tǒng)功能性能測試及可靠性測試。n嵌入式系統(tǒng)的開發(fā)必然有其自身的許多特點:軟硬件可配置、功能可 靠、成本低、體積小、功耗低、實時性強。嵌入式系統(tǒng)受 功能和具體應(yīng)用環(huán)境的約束,其開發(fā)流程就就不同于一般 的通用計算機系統(tǒng)。n嵌入式系統(tǒng)設(shè)計是使用一組物理硬件和軟件來完成所需功能的過程, 系統(tǒng)是指任何由硬件、軟件或者兩者的結(jié)合而構(gòu)成的功能設(shè)備。 n 由于嵌入式系統(tǒng)是一個專用系統(tǒng),所以在嵌入式產(chǎn)品的設(shè)計過程 中, 軟件設(shè)計和硬件設(shè)計是緊密結(jié)合、相互協(xié)調(diào)的。這就產(chǎn)生了一種 全新的設(shè)計理論軟硬件協(xié)同設(shè)計。如圖6-
3、1所示。 圖6-1 軟硬件協(xié)同設(shè)計n這種方法的特點是,在設(shè)計時從系統(tǒng)功能的實現(xiàn)考慮,把實現(xiàn)時的軟 硬件同時考慮進去,硬件設(shè)計包括芯片級“功能定制”設(shè)計。既可最大 限度地利用有效資源,縮短開發(fā)周期,又能取得更好的設(shè)計效果。n系統(tǒng)協(xié)同設(shè)計的整個流程從確定系統(tǒng)要求開始 ,包含系統(tǒng)要求的功 能、性能、功耗、成本、可靠性和開發(fā)時間等。這些要求形成了由項 目開發(fā)小組和市場專家共同制定的初步說明文檔。n系統(tǒng)設(shè)計首先確定所需的功能。復(fù)雜系統(tǒng)設(shè)計最常用的方法是將整個 系統(tǒng)劃分為較簡單的子系統(tǒng)及這些子系統(tǒng)的模塊組合,然后以一種選 定的語言對各個對象子系統(tǒng)加以描述,產(chǎn)生設(shè)計說明文檔。n其次,是把系統(tǒng)功能轉(zhuǎn)換成組織結(jié)
4、構(gòu),將抽象的功能描述模型轉(zhuǎn)換成 組織結(jié)構(gòu)模型。由于針對一個系統(tǒng)可建立多種模型,因此應(yīng)根據(jù)系統(tǒng) 的仿真和先前的經(jīng)驗來選擇模型。6.1.2嵌入式軟件開發(fā)n不同于通用計算機和工作站上的軟件開發(fā)工程,一個嵌入式軟件的開 發(fā)過程具有很多特點和不確定性。其中最重要的一點是軟件跟硬件的 緊密耦合特性。 n由于嵌入式系統(tǒng)的靈活性和多樣性,這樣就給軟件設(shè)計人員帶來了極 大地困難。 第一,在軟件設(shè)計過程中過多地考慮硬件,給開發(fā)和調(diào)試都帶來了很多不便; 第二,如果所有的軟件工作都需要在硬件平臺就緒之后進行, 自然就延長了整個的系統(tǒng)開發(fā)周期。n為了解決這個問題,我們可以在特定的EDA工具環(huán)境下面進行開發(fā), 通過后再進
5、行移植到硬件平臺的工作。這樣既可以保證程序邏輯設(shè)計 的正確性,同時使得軟件開發(fā)可平行甚至超前于硬件開發(fā)進程。 n我們把脫離于硬件的嵌入式軟件開發(fā)階段稱之為“PC 軟件”的開發(fā), 圖6-2說明了一個嵌入式系統(tǒng)軟件的開發(fā)模式。 圖6-2 嵌入式軟件開發(fā)方法 在“PC 軟件”開發(fā)階段,可以用軟件仿真,即指令集模擬的方法,來對用 戶程序進行驗證。 n 在模擬環(huán)境下,用戶可以設(shè)置ARM 處理器的型號、時鐘頻率等, 同時還可以配置存儲器訪問接口的時序參數(shù)。程序在模擬環(huán)境下運 行,不但能夠進行程序的運行流程和邏輯測試,還能夠統(tǒng)計系統(tǒng)運行 的時鐘周期數(shù)、存儲器訪問周期數(shù)、處理器運行時的流水線狀態(tài)(有 效周期、
6、等待周期、連續(xù)和非連續(xù)訪問周期)等信息。這些寶貴的信 息是在硬件調(diào)試階段都無法取得的,對于程序的性能評估非常有價 值。為了更加完整和真實地模擬一個目標系統(tǒng),ARMulator 和ISS 還 提供了一個開放的API 編程環(huán)境。用戶可以用標準C 來描述各種各樣 的硬件模塊,連同工具提供的內(nèi)核模塊一起,組成一個完整的“軟”硬 件環(huán)境。在這個環(huán)境下面開發(fā)的軟件,可以更大程度地接近最終的目 標。利用這種先進的EDA 工具環(huán)境,極大地方便了程序開發(fā)人員進行 嵌入式開發(fā)的工作。當完成一個“PC 軟件”的開發(fā)之后,只要進行正確 的移植,一個真正的嵌入式軟件就開發(fā)成功了。n 由上可知,嵌入式軟件開發(fā)是基于一個交
7、叉開發(fā)環(huán)境,其開發(fā)流 程如下:開發(fā)環(huán)境的建立、源代碼編輯階段、交叉編譯和鏈接、重定 位和下載、聯(lián)機調(diào)試,如圖6-3所示。圖6-3嵌入式軟件開發(fā)流程圖6.1.3 ARM Developer Suite(ADS)的安裝n在安裝新版本的ADS之前,要刪除其它版本,從而使安裝的版本更完 美地工作。下面介紹ADS 1.2 的安裝步驟。在ADS 1.2 安裝目錄下, 找到SETUP.EXE。圖6-4 ADS安裝步驟一 在圖6-4所示的界面中,雙擊執(zhí)行SETUP.EXE,進入安裝界面。點擊Browse,確定安裝目錄,或者按照默認目錄安裝。并點擊Next,如圖6-5所示。圖6-5 ADS安裝步驟二n在圖6-6
8、所示的界面中選擇安裝類型,選Full 類型安裝。并點擊Next。圖6-6 ADS安裝步驟三n安裝完畢,如圖6-7所示。圖6-7 ADS安裝步驟四n安裝License。選擇要執(zhí)行的動作為Install License,點擊Next,如 圖6-8所示。圖6-8 ADS安裝步驟五點擊Browse,選擇license.dat或license.txt所在的路徑,然后打開,如圖6-9所示。圖6-9 ADS安裝步驟六n 安裝license完畢,點擊完成,如圖6-10所示。圖6-10 ADS安裝步驟七n ADS 1.2 全部安裝完畢,點擊Finished。以上是ADS 1.2 的安裝 全過程。在“開始”菜單中
9、可以找到安裝的程序。如圖6-11所示。圖6-11 ADS的啟動 可以看到我們安裝的東西。其中,CodeWarrior for ARM Developer Suite 是代碼的編譯連接開發(fā)環(huán)境;AXD Debugger 是調(diào)試的開發(fā)環(huán)境,它能配合Multi-icesever 和硬件Multi-ice 調(diào)試器,完成板級調(diào)試。下面幾節(jié)將詳細地介紹本開發(fā)系統(tǒng)的使用方法。6.2 ADS 1.2 集成開發(fā)環(huán)境介紹n6.2.1 Code Warrior IDE 簡介n6.2.2 AXD調(diào)試器簡介n6.2.3 ADS開發(fā)系統(tǒng)的系統(tǒng)資源n6.2.4系統(tǒng)軟件開發(fā)步驟6.2 ADS 1.2 集成開發(fā)環(huán)境介紹n AR
10、M ADS全稱為ARM Developer Suite。是ARM公司推出的新 一代ARM集成開發(fā)工具。ADS由命令行開發(fā)工具,ARM時實庫,GUI 開發(fā)環(huán)境(Code Warrior和AXD),實用程序和支持軟件組成,如表6-1 所列。有了這些部件,用戶就可以為ARM系列的RISC處理器編寫和調(diào) 試自己的開發(fā)應(yīng)用程序了。6.2.1 Code Warrior IDE 簡介n CodeWarrior for ARM是一套完整的集成開發(fā)工具,充分發(fā)揮了 ARM RISC 的優(yōu)勢, 使產(chǎn)品開發(fā)人員能夠很好的應(yīng)用尖端的片上系統(tǒng) 技術(shù)。 n 該工具是專為基于ARM RISC的處理器而設(shè)計的, 它可加速并簡
11、 化嵌入式開發(fā)過程中的每一個環(huán)節(jié),使得開發(fā)人員只需通過一個集成 軟件開發(fā)環(huán)境就能研制出ARM產(chǎn)品,在整個開發(fā)周期中,開發(fā)人員無 需離開CodeWarrior開發(fā)環(huán)境, 因此節(jié)省了在操作工具上花的時間,使 得開發(fā)人員有更多的精力投入到代碼編寫上來,Code Warrior IDE 主 窗口如圖6-12所示。圖6-12 ADS集成開發(fā)環(huán)境界面 ADS的CodeWarrior集成開發(fā)環(huán)境(IDE)為管理和開發(fā)項目提供了簡單多樣化的圖形用戶界面。針對ARM的配置面板為用戶提供了在CodeWarrior IDE集成環(huán)境下配置各種ARM開發(fā)工具的能力。用戶可以使用ADS的CodeWarrior IDE為A
12、RM和Thumb處理器開發(fā)用C,C+或ARM匯編語言的程序代碼。nCodeWarrior IDE為用戶提供下面的功能: 源代碼編輯器:它集成在CodeWarrior IDE的瀏覽器中,能夠根據(jù)語 法格式,使用不同的顏色顯示代碼; 源代碼瀏覽器:它保存了源碼中定義的所有符號,能夠使用戶在源碼 中快速方便的跳轉(zhuǎn); 查找和替換功能:用戶可以在多個文件中,利用字符串通配符,進行 字符串搜索和替換; 文件比較功能:可以使用戶比較路徑中的不同文本文件的內(nèi)容。n 由于ARM調(diào)試器(AXD)沒有集成在CodeWarrior IDE中,這就意 味著,用戶不能在CodeWarrior IDE中進行斷點調(diào)試和查看變
13、量。在 CodeWarrior IDE for ARM中有很多的菜單或子菜單是不能使用的。 下面列出了這些選項: 1 . View菜單下不能使用的菜單選項有: Processes,Expressions,Global Variable,Breakpoints, Registers。 2 . Project菜單不能使用的菜單選項: Precompile子菜單。因為ARM編譯器不支持預(yù)編譯的頭文件。 3 . Debug菜單: 該菜單中沒有一個子菜單是可以使用的。 4 . Browser菜單中不能使用的菜單選項: New Property,New Method和New Event Set。 5 .
14、Help menu中不能用于ADS的菜單選項有: CodeWarrior Help,Index,Search和Online Manuals。6.2.2 AXD調(diào)試器簡介nAXD 調(diào)試器為ARM擴展調(diào)試器(即ARM eXtended Debugger),包 括ADW/ADU的所有特性,支持硬件仿真和軟件仿真(ARMulator)。 AXD能夠裝載映像文件到目標內(nèi)存,具有單步、全速和斷點等調(diào)試功 能,可以觀察變量、寄存器和內(nèi)存的數(shù)據(jù)等等。AXD調(diào)試器主窗口如 圖6-13所示。圖6-13AXD調(diào)試器界面6.2.3 ADS開發(fā)系統(tǒng)的系統(tǒng)資源1ADS系統(tǒng)包含的文件 ADS系統(tǒng)包含下列可選文件: (1)系
15、統(tǒng)文件 Executables類文件:系統(tǒng)所有可執(zhí)行的二進制文件,包括編譯文 件,命令行工具和GUI組件; C libraries,big endian : 用于大端系統(tǒng)的C語言連接庫文件; C libraries,little endian : 用于小端系統(tǒng)的C語言連接庫文件; C+ + libraries,big endian : 用于大端系統(tǒng)的C+ +連接庫文件; C+ + libraries,little endian : 用于小端系統(tǒng)的C+ +連接文件; Include files : 包含用戶源程序的所有C和C+ +頭文件; Help Files : 這些文件包括用于GUI程序的在
16、線幫助信息,是否安裝 這些程序都不影響運行。 (2)其它文件 Example Files : 一組程序舉例,包含源代碼和Code Warrior工程文 件,可以在ADS中使用; HTML documents : 適用于Rogue Wave C+庫的文檔,可以適用網(wǎng) 絡(luò)閱覽器閱讀; Dyna Text documents : ADS的連機在線格式的文檔,為適用Dyna Tex閱覽器而設(shè)計; PDF-ONLY DOCUMENTS : PDF格式文件,ARM體系結(jié)構(gòu)手冊,適 用Adobe Acrobat閱覽器; ARMulator extension kit : 擴展的ARM仿真工具包; ARM F
17、PA sources : ARM中FPA源文件; Source : ARM應(yīng)用軟件庫源文件; Documentation : PDF格式ARM應(yīng)用軟件庫文件,適用于Adobe Acrobat Reader閱覽器。n以上這些都是基本的ADS系統(tǒng)文件。 2 ADS環(huán)境中的文件類型 ADS開發(fā)環(huán)境中包含很多種文件,主要列舉如下。 (1)程序員通過編輯環(huán)境建立的文件 C source file : C語言源文件,擴展名是c。這種文件是程序員 輸入的C語言源文件。 C+ source file : C+語言源文件,擴展名cpp。這種文件是程 序員輸入的C+語言源文件。 Assemble source f
18、ile : 匯編語言源文件,擴展名是s。這種文 件是程序員輸入的ARM匯編語言源文件,包 含ARM指令和Thumb指令。 CodeWarrior projeket file : Code Warrior的工程項目管理文 件,擴展名是mcp。這種文件是程序員在建 立工程項目時生成的文件,包含工程項目內(nèi) 的所有源文件,也包含這些源文件的調(diào)試信 息。 (2)通過編譯器和連接器生成的文件 filename.h : 頭文件。 filename.o : 編譯器輸出的ELF格式的目標文件。 filename.lst : 編譯器輸出的包含錯誤信息的列表文件。 filename.axf : 連接器生成的可執(zhí)行的
19、映象文件。 symdefs : 格式文件,時連接器生成的全局符號表文件。 (3)經(jīng)常使用的工具文件 armcc : ARM C語言編譯器,把 C語言源程序(擴展名c)編譯成32 位ARM代碼。 tcc :ARM C語言編譯器,把C語言源程序(擴展名c)編譯成16位 Thumb代碼。 armcpp :ARM C+語言編譯器,把C+語言源程序(擴展名cpp) 編譯成32位ARM代碼。 tcpp :ARM C+語言編譯器,把C+語言源程序(擴展名cpp)編 譯成16位Thumb代碼。 armasm : ARM匯編語言編譯器 ,把ARM指令和Thumb指令的匯 編語言源文件編譯成相應(yīng)的代碼。 arml
20、ink : ARM連接器,把編譯輸出的ELF格式的目標文件以及相關(guān) 的C和C運行時庫連接在一起,生成可執(zhí)行的映象文件。 6.2.4系統(tǒng)軟件開發(fā)步驟n利用ADS開發(fā)平臺開發(fā)軟件的其基本步驟如圖6-14所示:圖6-14 應(yīng)用ADS開發(fā)軟件的步驟 程序的編輯、編譯和連接是不依賴于硬件的,這些可以在CodeWarrior for ADS中實現(xiàn)。而ARM eXtended Debugger可以實現(xiàn)軟件仿真環(huán)境,在進行軟件仿真時可以不依賴于硬件。6.3 程序的編輯n6.3.1建立工程n6.3.2建立文件n6.3.3添加文件到工程n6.3.4文件管理n6.3.5 編輯畫面的設(shè)置n6.3.6 ADS 編輯功能
21、介紹n6.3.7屏幕分割設(shè)置6.3.1建立工程n 工程將所有的源碼文件組織在一起,并能夠決定最終生成文件存 放的路徑,輸出的格式等。在CodeWarrior中新建一個工程的方法有 兩種,可以在工具欄中單擊“New”按鈕,也可以在“File”菜單中選擇 “New”菜單。這樣就會打開一個如圖6-15所示的對話框。圖6-15 新建工程對話框n在這個對話框中為用戶提供了7種可選擇的工程類型。 ARM Executabl Image :由ARM指令的代碼生成ELF格式的可執(zhí) 行映像文件; ARM Object Library :由ARM指令的代碼生成一個armar格式的目 標文件庫; Empty Pro
22、ject :創(chuàng)建一個不包含任何庫或源文件的工程; Makefile Importer Wizard :將Visual C的nmake或GNU make文件 轉(zhuǎn)入到CodeWarrior IDE 工程文件; Thumb ARM Executable Image:由ARM指令和Thumb指令的混和 代碼生成一個可執(zhí)行的ELF格式的映像文件; Thumb Executable image :由Thumb指令創(chuàng)建的ELF格式的映像 文件; Thumb Object Library :由Thumb指令的代碼生成armar格式的目 標文件庫。 在這里選擇ARM Executable Image,在“Pro
23、ject name:”中輸入工 程文件名,本例為“test”,點擊“Location:”文本框的“Set”按鈕,瀏覽 選擇想要將該工程保存的路徑,將這些設(shè)置好后,點擊“確定”,即可 建立一個新的名為test的工程。6.3.2建立文件n在CodeWarrior for ADS中建立一個新的源文件的步驟如下: (1) 打開CodeWarrior for ADS,單擊菜單欄的File,打開下拉菜 單中的New選項(見圖6-16)在圖中的3個標簽中單擊File標簽,彈出 如圖6-16所示的對話框。 (2) 然后在File標簽頁中建立源文件,在文件名File name對話框 中輸入要建立的文件的名字,在
24、這里命名位test.s,一定要注意文件的 擴展名。匯編語言文件的擴展名是S。 (3) 在文件路徑Location對話框中輸入文件的路徑,這里是 D:EXAMPLE。單擊“確定”按鈕,一個匯編語言的源文件建立完畢。圖6-16選擇File后彈出新建文件對話框 或者在CodeWarrior for ADS界面中單擊Text File選項,建立一個文本文件。單擊FileNew Text File 圖標按鈕,如圖6-17所示。圖6-17建立文件 在完成上述過程選擇“確定”按鈕后,就打開一個文件編輯器,然后在新建的文件中編寫源程序。 n按照匯編語言的規(guī)則,我們輸入test.s所示的一段程序。 輸入這段程
25、序后,使用File菜單中Save As選項或面板上存儲按鈕,把文件存儲 到C:TEST中去。至此,我們使用ADS的CodeWarrior完成了一個匯編 語言的文件。test.s文件的內(nèi)容如下: addr equ 0 x80000100 AREA text,CODE,READONLY ENTRY CODE32 START LDR R0 ,=addr MOV R1,#10 MOV R2,#20 ADD R1,R1,R2 STR R1,R0 B START END6.3.3添加文件到工程n 在工程窗口的File窗口空白處右擊鼠標,彈出浮動菜單,選擇Add Files命令即可彈出Select file
26、 to add 對話框,選擇相應(yīng)的源文件(可 按著Ctrl鍵一次選擇多個文件),然后單擊“打開”按鈕即可。如圖6-18 所示。圖6-18添加文件到工程方法一n 在建立好一個工程時,默認的target是DebugRel,還有另外兩個 可用的target,分別為Realse和Debug,如圖6-19,這三個target的含 義分別為: DebugRel :使用該目標,在生成目標的時候,會為每一個 源文件生成調(diào)試信息; Debug:使用該目標為每一個源文件生成最完全的調(diào)試信息; Release:使用該目標不會生成任何調(diào)試信息,目標代碼的優(yōu) 化等級最高。 在本例中,使用默認的DebugRel目標。現(xiàn)在
27、已經(jīng)新建了一個源文件,要把這個源文件添加到工程中去。圖6-19目標選項n 另外,用戶也可以通過在Project菜單中選擇Add Files命令來添加 源文件,或使用New對話框選擇File標簽頁在建立源文件時選擇加入工 程(即選擇Add to Project命令項)。添加文件操作如圖6-20所示。圖6-20添加文件到工程方法二6.3.4文件管理n在在CodeWarrior環(huán)境下文件的打開方法和保存方法環(huán)境下文件的打開方法和保存方法: 1.怎樣打開一個文件怎樣打開一個文件 打開一個文件有多種方法,一種方法是使用打開一個文件有多種方法,一種方法是使用File菜菜單中的單中的Open選項,另一種方法
28、是使用工具欄中的按鈕。選項,另一種方法是使用工具欄中的按鈕。無論使用那種方法,都會彈出一個圖無論使用那種方法,都會彈出一個圖6-20所示的文件搜索所示的文件搜索對話框,提示搜索想要打開的文件。只要輸入正確的路徑對話框,提示搜索想要打開的文件。只要輸入正確的路徑和文件名,就會打開該文件。還有一種方法就是打開曾經(jīng)和文件名,就會打開該文件。還有一種方法就是打開曾經(jīng)使用過的文件,使用使用過的文件,使用File菜單中的菜單中的Open Recent選項。選項。 2 . 怎樣打開一個工程項目 如果僅僅是為了編輯一個源文件,那么,使用上述打開文件的方 法打開源文件后,就可以輸入程序,進行文件的編輯了。 如果
29、還要對源文件進行編譯操作,那么這樣還不夠,還要打開包 含這個文件的工程項目,才能夠?qū)崿F(xiàn)對原文件的編譯操作。因為編譯 后的目標文件、列表文件等要存儲在工程項目文件夾中。 打開一個工程項目的方法和上述打開一個文件的方法相同,但打 開工程項目是打開工程項目文件夾的同名字的文件,擴展名是mcp。 例如,我們以上建立的工程項目名稱是test,打開該工程項目就是打 開test文件夾下的test. mcp文件。同樣,要打開一個曾經(jīng)使用過的工 程項目,可以使用File菜單中的Open Recent選項。 3 . 怎樣保存文件和工程項目 保存文件或保存工程項目有兩種方法: 一種方法是使用“文件”菜單中的Save
30、(或者Save As,Save All等) 選項; 另一種是使用工具欄中按鈕。6.3.5 編輯畫面的設(shè)置n ADS提供一些設(shè)置選項來設(shè)置編輯畫面,軟件工程師可以通過這 些選項設(shè)置出具有個性的編輯畫面,這些選項位于Edit下拉菜單中的 Preference菜單欄。 n 下面介紹這些選項的用法。打開Edit下拉菜單中的Preference菜 單欄,這組選項集中在Editor子菜單中。 1 . Editor Settings選項卡 打開Editor Settings選項卡,如圖6-21所示。 圖6-21 Edior Settings選項卡n第1部分是設(shè)置Remember(保存)選項。 Font pr
31、eferences:選擇這個選項,系統(tǒng)會為每個文件保存程序員輸 入時選定的字體信息;如果不選擇該選項,所有的 文件都默認由CodeWarrior IDE設(shè)置的字體。 Window position and size:選擇這個選項,系統(tǒng)會自動保存程序編輯 窗口在關(guān)閉時的位置和尺寸,以便在下次打開編輯 窗口時與這次完全相同;如果不選擇該選項,每次 打開的編輯窗口都時CodeWarrior IDE默認的位置 和尺寸。 Selection position:該選項決定文件打開時程序在編輯窗口中的位 置。如果不選擇該選項,則文件打開時程序的第1 行位于編輯窗口的第1行;如果選擇該選項,則文 件打開時程序
32、在編輯窗口中的位置與關(guān)閉該文件時 相同。n第2部分是設(shè)置級聯(lián)(Contextual)菜單。 在ADS的很多窗口中,都有一個級聯(lián)菜單。在編輯器窗口中右 擊,也會打開一個級聯(lián)菜單。在這個級聯(lián)菜單中,所包含的操作命令 由以下選項設(shè)置。 Edit Command:選擇該選項,在編輯器窗口級聯(lián)菜單中將包含常 用的編輯命令。在編輯窗口中右擊,系統(tǒng)將彈出 這個級聯(lián)菜單。在這個菜單中,上層是常用的編 輯命令,中間是項目操作命令。 Project Command:選擇該選項,在編輯器窗口的級聯(lián)菜單中將包 含常用的項目操作命令:Compile、Proprocess 和Disassemble;不選擇該選項,則不會包
33、含這 些命令。 VCS Commad:選擇該選項,在編輯器窗口的級聯(lián)菜單中將包含 常用的版本控制命令;不選擇該選項,則不會包 含這些命令。 Browser Comnands:選擇該選項,在編輯器窗口的級聯(lián)菜單中增 加一條瀏覽器命令,比如用C語言編程時,右擊 main( ),所彈出的級聯(lián)菜單中有一行是“go to function definition of main”。 Insert Template Commands:在ADS中,Debug功能是不使用的, 因此,本選項無效。n第3部分是其它一些設(shè)置。 Balance while typing:這個選項要求CodeWarrior IDE檢測圓
34、括號、 方括號和大括弧匹配性。 Use mutiple undo:在編輯菜單中,有一個Undo Typing功能和一個 Redo Typing功能。 Relaxed C popup parsing:如果在源代碼中使用K&R風格的代碼轉(zhuǎn) 換,就應(yīng)該選擇該選項。 Drag and drop editing:在ADS中,編輯屏幕可以分割成多個編輯窗 口,如果選擇該選項,可以在不同的編輯窗 口之間拖拽選中的程序片段,實現(xiàn)程序拷貝 功能;如果不選擇該選項,則沒有這個功能。 Left margin click selects line:這個選項是左邊沿編輯功能選項。 Sort function p
35、opup:函數(shù)分類選項。 Enable Virtual Space:不選擇該選項時,在編輯程序過程中,右移鍵 移到程序行結(jié)尾時,會自動跳出下一行的開 始;選擇該選項時,當右移鍵移到程序行結(jié) 尾時,可繼續(xù)右移,系統(tǒng)自動在程序行后填充 空格。也就是,選擇該選項,可以在源程序行 后面任意位置進行插入操作。 Balance Flash Delay:在上面Balance while typing選項中所應(yīng)用的時 間延時,單位是1/60 s。 Default file format:系統(tǒng)默認的文本文件格式。在這個下拉菜單中, 有3個選項,分別是DOS、UNIX和Macintosh, CodeWarrior
36、 IDE會按照所選擇的格式存儲編輯 的文件。 2 . Font&Tabs選項卡 打開Font&Tab選項卡,彈出如圖6-22所示的對話窗口。圖6-22 Font&Tabs選項卡n 這個選項卡是關(guān)于字體和制表鍵的選項卡。這些選項是應(yīng)用于一 個文件,還是用于所有文件,取決于Editor Settings選項卡中Font preferences的選項。n第1部分是編輯程序使用的字體選項: Font:該選項是字體選項。在下拉菜單中,有三十多項西文選項和 十幾項常見的中文選項(中文選項取決于計算機中的中文字 體)。 Size:該選項用于決定輸入字符的尺寸。在下拉菜單中,有224種
37、 可選項。 Script:該欄不是可選項,當Font欄選擇西文時,該欄顯示“西方語 言” ;當Font欄選擇中文時,該欄顯示“CHINESEGB2312” 。 Sample:樣本顯示欄。顯示所選中的字體的樣本。n第2部分是關(guān)于Tab(制表鍵)的選項 Tab:在這個欄輸入一個表達空格數(shù)量的數(shù)值,這個空格數(shù)就是Tab 鍵跳過的空格數(shù)。 Tab indents selection:Tab行縮進選項。選擇該選項,按Tab鍵時, 選中的行會右移Tab規(guī)定的空格數(shù);不選擇該選項,按Tab鍵 時,選中的行會被Tab字符(一般是空格)替換掉。注意,以 上選中的行一定是整行,而不是一行中的一部分,不僅僅是程 序
38、中的字符,也包括字符后面的空格。也可以選中多行。 Auto Indent:編輯行自動縮進選項。選擇該選項,按回車鍵開始下 一行時,光標在新一行的開始處自動與上一行對齊;不選擇該 選項,按回車鍵后光標頂格開始新一行。 Tab Insert Spaces:選擇該選項時,按Tab鍵時插入的是空格字符, 而不是制表字符。3 . Text Colors選項卡 這個選項卡是關(guān)于文本顏色設(shè)置的選項卡。打開Text Colors選 項卡,彈出如圖6-23所示的對話窗口。圖6-23 Text Colors選項卡n各項顏色設(shè)置說明如下: (1)文本顏色選項有兩項。 Foreground:該選項指定的顏色用于文本中
39、除下列各選項規(guī)定的 字符外的所有其余字符。 Background:該選項指定編輯畫面的背景顏色。 (2)以下是把文本中的字符按語法分類配置顏色的選項,在改變這些選 項前,必須選擇Activate Syntax Coloring選項欄。 Comments:文本注釋顏色選項。 Keywords:關(guān)鍵字顏色選項。只適用于C和C+語言,不包括 宏、變量等。 Strings:字符串顏色選項。不包括注釋、關(guān)鍵字以及自定義的關(guān) 鍵字,包括變量名、路徑名和類型名。 (3) Set1Set 4:用于設(shè)置自定義的關(guān)鍵字的顏色。這4個選項可以 設(shè)置4種自定義的關(guān)鍵字的顏色,這些設(shè)置對 CodeWarrior IDE
40、所有文件發(fā)生作用。(4) 以下是瀏覽器顏色選項,在改變這些選項之前,一定要先選擇 Activate Browser Coloring選項欄。 Classes:類別顏色選項。 Functions:函數(shù)顏色選項。 Temlates:模版顏色選項。 Constants:常量顏色選項。 Globals:全局變量顏色選項。 Enums:枚舉顏色選項。 Macros:宏顏色選項。 Other:其它顏色選項。6.3.6 ADS 編輯功能介紹n 當使用ADS輸入程序時,除以上介紹的選項會帶來很多方便外, 還有一些編輯功能可以供我們使用,特別是在使用C或C語言時, ADS所提供的編輯功能和C或C其它編輯工具所提
41、供的功能相近。 圖6-24是ADS編輯器畫面。圖6-24編輯器畫面n 圖中編輯窗口path中顯示了文件名,第2行是工具欄,工具欄是 可以隱藏的,隱藏和顯示是通過編輯屏幕右上角的工具欄控制按鈕 實 現(xiàn)的。在工具欄已經(jīng)被隱藏時,單擊這個按鈕可以顯示工具欄;在顯 示工具欄的情況下,單擊這個按鈕可以隱藏工具欄。n編輯器的一些功能: 1頭文件下拉菜單 單擊圖標,會彈出一個頭文件下拉菜單。在這個下拉菜單中,包 含當前文件涉及的所有文件。只要單擊頭文件名就可以打開所選中的 頭文件,這樣修改頭文件就比較方便。 2函數(shù)下拉菜單 單擊圖標,會彈出一個函數(shù)下拉菜單。在這個下拉菜單中,包 含當前文件所有的函數(shù)。 3標
42、簽下拉菜單 單擊圖標,會彈出一個標簽下拉菜單。在這個下拉菜單中,包含 當前文件中所有的標簽。標簽排列的順序與源文件中的先后順序一致。 4文檔設(shè)置下拉菜單 單擊圖標,會彈出一個文檔設(shè)置下拉菜單。這個菜單中可以打開或 關(guān)閉當前編輯畫面的顏色,關(guān)閉顏色會使畫面變成單色,打開顏色會使 畫面變成由菜單EditEditorText Colors所設(shè)置的顏色。 5. 版本控制下拉菜單 單擊圖標,會彈出一個版本控制下拉菜單VCS(Version Control System)。這個下拉菜單提供當前文件的操作記錄,可以幫助維護源程 序的數(shù)據(jù)庫。也可以使用這個下拉菜單從源文件中拷貝程序,檢查修改 的文件。 6.
43、文件修改標志 文件修改標志包括和,這兩個標志在編輯屏幕的右上角。如果當 前程序從上一次存儲以來沒有修改過,則顯示標志;如果程序被修改 過,則顯示,程序存儲后又重新顯示標志。6.3.7屏幕分割設(shè)置nADS編輯窗口可以實現(xiàn)下列設(shè)置: 打開多個文件,每個文件又一個獨立的編輯窗口,但只能編輯 最后打開或激活的當前文件; 為一個文件設(shè)置多個窗口。下面介紹怎樣為一個文件設(shè)置多個 窗口。n圖6-25是一個ADS編輯窗口,在這個窗口的右上角和左上角分別又一 個屏幕分割控制條。把右上角的分割控制條用鼠標向下拉,可以分割 成上下兩個屏幕;把左下角的分割控制條用鼠標向右拉,可以左右分 割成兩個屏幕。這樣就可以實現(xiàn)分
44、割屏幕的要求。n屏幕是可以分割成很多小屏幕的,在所有的屏幕中,都是同一個源文件。 n 這些不同屏幕內(nèi)的程序是同步操作的。也就是說,對其中一個屏 幕的修改、選中、粘貼和刪除等操作,在其它屏幕內(nèi)也有相同的修 改、選中、粘貼和刪除等效果。圖6-25屏幕的分割6.4程序的編譯n6.4.1命令行開發(fā)工具n6.4.2圖形界面的ARM匯編工具n6.4.3 ARM C編譯器n6.4.4圖形界面編譯器的應(yīng)用n6.4.5編譯連接工程6.4.1命令行開發(fā)工具nADS系統(tǒng)提供了兩種方式實現(xiàn)程序的編譯和連接: 一種是命令行方式,它是在DOS環(huán)境下實現(xiàn)的編譯和連接。 另一種方式是圖形用戶界面,就是上面介紹的CodeWar
45、rior IDE界面; 兩種方式所利用的都是同一ADS系統(tǒng)資源,實現(xiàn)的功能也是相同的。nADS提供下面的命令行開發(fā)工具: 1armcc armcc是ARM C編譯器。 這個編譯器通過了Plum Hall C Validation Suite為ANSI C的一致性 測試。armcc用于將用ANSI C編寫的程序編譯成32位ARM指令代碼。 2armcpp armcpp是ARM C+編譯器。它將ISO C+ 或EC+ 編譯成32位 ARM指令代碼。 3tcc tcc是Thumb C 編譯器。 該編譯器通過了Plum Hall C Validation Suite為ANSI 一致性的測試。 tcc將
46、ANSI C源代碼編譯成16位的Thumb指令代碼。 4tcpp tcpp是Thumb C+ 編譯器。 它將ISO C+ 和EC+ 源碼編譯成16 位Thumb指令代碼。 5armasm armasm是ARM和Thumb的匯編器. 它對ARM 匯編語言和Thumb 匯編語言源代碼進行匯編。 6armlink armlink是ARM連接器。該命令既可以將編譯得到的一個或多個目標 文件和相關(guān)的一個或多個庫文件進行鏈接,生成一個可執(zhí)行文件,也 可以將多個目標文件部分鏈接成一個目標文件,以供進一步的鏈接。 ARM鏈接器生成的是ELF格式的可執(zhí)行映像文件。 7armsd armsd是ARM 和Thumb
47、的符號調(diào)試器。它能夠進行源碼級的程序 調(diào)試。用戶可以在用C或匯編語言寫的代碼中進行單步調(diào)試,設(shè)置斷 點,查看變量值和內(nèi)存單元的內(nèi)容。6.4.2圖形界面的ARM匯編工具n 在進行編譯和鏈接前,首先介紹一下與生成目標有關(guān)的配置。點 擊Edit菜單,選擇“DebugRel Settings”(注意,這個選項會因用戶選 擇的不同目標而有所不同),出現(xiàn)如圖6-26所示的對話框。 圖6-26 DebugRel設(shè)置對話框n這個對話框中的設(shè)置很多,在這里只介紹一些最為常用的設(shè)置選項 : 1Target Setting設(shè)置選項 Target Setting設(shè)置選項包括如下選項: (1)Target Name:T
48、arget Name文本框顯示了當前的目標設(shè)置。 (2)Linker:Linker選項供用戶選擇要使用的連接器。 (3)Pre-linker:目前CodeWarrior IDE不支持該選項。 (4)Post-Linker:選擇在連接完成后,還要對輸出文件進行的操作。 2ARM Assembler設(shè)置 選中Language Settings,該設(shè)置選項包括如下選項: ARM Assembler ARM C Compiler ARM C+ Compiler Thumb C Compiler Thumb C+ Compiler n 重點介紹ARM Assembler和ARM C Compiler兩個
49、選項的設(shè)置,ARM Assembler包括如圖6-27中所示的選項卡:圖6-27 Assembler設(shè)置(1)Target選項卡 如圖6-28所示,Target選項卡中包括以下選項。圖6-28 Target選項卡Initial State:指令代碼類型選項。 Byte Order:大端小端選項卡,只能選其中之一。Architecture or Processor:用于設(shè)置目標CPU類型,ARM不同系列的 產(chǎn)品其體系結(jié)構(gòu)和版本不同,如果程序的指令版本和目標 CPU不符,會給出錯誤或者報警。Floating Point:用于選擇浮點運算單元 (fpu:floating-point-unit)的體系
50、 結(jié)構(gòu)選項。 (2)ATPCS選項卡如圖6-29所示,ATPCS選項卡包括以下選項。 圖6-29 ATPCS選項卡Calling Standard:選中ATPCS則表示設(shè)置ATPCS選項, ATPCS (ARM and Thumb Procedure Call Standard)是ARM 和Thumb指令程序互相調(diào)用的標準。 nATPCS:該標簽下有三個選項 ARM/Thumb interwork:該選項支持ARM指令和Thumb指令混合使 用,選擇該選項,匯編器在匯編源程序時,對 于兩種指令的子程序調(diào)用能夠生成一段代碼 veneers,支持子程序調(diào)用時的狀態(tài)切換。 Read-only pos
51、ition independent: 選中該選項表示指定源程序被匯編 為只讀的和位置無關(guān)的代碼或數(shù)據(jù)。 Read-write only independent:選中該選項表示指定源程序被匯編為 讀/寫的和位置無關(guān)的代碼或數(shù)據(jù)。系統(tǒng)默認 為不選中。 Software stack:選擇On表示對源程序匯編時,會進行軟件數(shù)據(jù)棧限 制檢查。 Predeclared Register Names-noregs:不預(yù)定寄存器名稱選項。 (3)Options選項卡如圖6-30所示,Options選項卡包括以下選項。 圖6-30 Options選項卡Checkreglist: 寄存器列表順序核對選項。Nowa
52、rn: 報警信息選項。選擇該選項時,匯編時不生成報警信息。Source Line Debug: 選中該選項,編譯時生成DWARF2格式的調(diào)試 信息表。此項是默認選項。 Keep Symbols:選中該選項,匯編時會把局部標號保留在目標文件 的符號表中,供調(diào)試使用。Ignore C-style escape characters: 選中該選項,對源文件匯編時, 忽略C風格的換碼字符,如n和t等。 Fault long running Load and Store Multiples: 選擇該選項,在對源程 序匯編時,為了避免多寄存器傳輸引起中斷延時,將檢查指令LDM 和STM的寄存器列表,要求寄
53、存器列表符合下列條件: 對于所有的STM指令,寄存器列表不得超過5個;對于所有 的LDM指令,寄存器列表不得超過5個且不得包含PC。如果LDM 指令包含PC,則寄存器列表不得超過4個。 (4)Predefines選項卡 如圖6-31所示,Predefines選項卡包括以下選項。 圖6-31 Predefines選項卡npredefines: 定義全局變量選項。這個選項可以在匯編源程序時定義全 局變量。 (5)Listing Control選項卡 如圖6-32所示,Listing Control選項卡包括以下選項。 圖6-32 Listing Control選項卡nMiscellaneous標簽
54、包括: Listing on:列表文件選項,選擇該選項,匯編時會生成一個詳細的 列表文件。如果沒有給出文件名,匯編器會給出和源文 件同名字的列表文件,擴展名是LST。 Terse:精簡列表文件選項。匯編器在編譯源程序時,有些條件語句 因條件不滿足而不需要執(zhí)行(例如IF條件后面的語句),這 些語句不被編譯成目標代碼。如果選擇該選項,則這些語句 不包含在列表文件之中。如果不選擇這一項,則這些語句包 含在列表文件之中。 Dimensions標簽包括: 列表文件寬度選項。系統(tǒng)默認79個字符寬 度。 列表文件長度選項。系統(tǒng)默認66行長度。 (6)Extras選項卡 如圖6-33所示,Extras選項卡包
55、括以下選項。 圖6-33 Extras選項卡via file: 使用via格式文件選項。 在做軟件設(shè)計時,一般使用CodeWarrior IDE圖形方式而不用命令 行方式,起碼在學(xué)習(xí)和使用的初級階段是這樣。上面已經(jīng)舉例說過匯編器的應(yīng)用,這里再做進一步說明。1使用時應(yīng)該注意的幾個方面 一般使用匯編器應(yīng)該注意以下以點: (1) 在同一個工程項目內(nèi)可以有多種語言文件,除了匯編語言文件外, 還可以包含C和C+語言文件。在對匯編語言文件進行匯編時,使 用的是匯編器;在對其它語言文件編譯時,會用到其它編譯器,如 果不對這些編譯器進行設(shè)置,則它們會以默認的選項對文件進行編譯。 (2) 在一個包含多個文件的工
56、程項目內(nèi),當對選中的文件進行編譯操作 (Compile)時,與工程項目內(nèi)其它文件不發(fā)生關(guān)聯(lián)。 (3) 在對文件進行編譯時,應(yīng)該使用Project下拉菜單中的Compile功能。 這個功能可以查找源程序中的錯誤并提出警告,可以生成列表文件 和生成目標文件。 (4) 在很多情況下,出現(xiàn)錯誤可能是因為設(shè)置不正確引起的,因此,要 正確設(shè)置各種選項。各選項都可以恢復(fù)到默認狀態(tài)。匯編器的使用 使用圖形方式匯編一個工程項目,一般應(yīng)遵循下面的順序: (1) 打開CodeWarrior IDE圖形窗口,然后打開工程項目和所要編譯 的文件; (2) 打開Edit下拉菜單,單擊Debugrel Setings,打開
57、目標選項面板 Target Settings Panels; (3)單擊ARM Assembler,打開ARM匯編選項窗口; (4)根據(jù)以上對選項的介紹,對所有選項進行設(shè)置,然后從Apply退 出; (5)選中要匯編或編譯的文件,使用Project菜單中的Compile功能, 實現(xiàn)匯編或編譯; (6)窗口中給出錯誤信息列表。 根據(jù)錯誤信息的提示,對源文件進行修改。匯編器給出的錯誤信息或報警信息 匯編器在匯編時,會給出錯誤信息或報警信息。報警信息不影 響程序的連接和調(diào)試,報警是一種不能確定的問題,可能是一種錯 誤,也可能不是一種錯誤。 在對源程序進行匯編時,匯編器會查找源程序的錯誤。這個查 找過
58、程是通過對源程序多遍掃描來完成的,原則是先查找簡單的錯 誤,然后查找復(fù)雜的錯誤;先查找語法或符號的錯誤,然后查找邏 輯錯誤。很多情況下,錯誤不是一次可以查清的,因此,源程序要 經(jīng)過多次修改才能消除所有錯誤。6.4.3 ARM C編譯器nARM C編譯器包括如下選項卡: 1Target and Source選項卡 如圖6-34所示,Target and Source選項卡包括以下選項。圖6-34 ARM C編譯器nArchitetore or Processor :目標處理器型號和體系結(jié)構(gòu)選項。下拉菜 單給出了所有的可選項。nFloating Point:用于選擇浮點運算單元 (fpu:floa
59、ting-point-unit)的體 系結(jié)構(gòu)選項。 nSource-language:語言類別選項。指定了編譯器可以接受的源程序 的語言種類,對于編譯器,默認的語言是ANSI C; 對于C+編譯器,默認的語言是ISO/IEC C+。nByte Order:littleendian 該選項指定編譯器為ARM處理器生成小端 格式的代碼。這種代碼格式是把低位字節(jié)存放到低地址 單元。 2ATPCS選項卡 如圖6-35所示,ATPCS選項卡包括以下選項。 圖6-35 ATPCS選項卡nARM/Thumb interwork:該選項支持ARM指令和Thumb指令混合使用, 選擇該選項,匯編器在匯編源程序時
60、,對于兩種指令的子 程序調(diào)用能夠生成一段代碼veneers,支持子程序調(diào)用時 的狀態(tài)切換。nSoftware stack check:軟件數(shù)據(jù)棧檢查類型的ATPCS選項。nRead-only position independent: 選中該選項表示指定源程序被匯編 為只讀的和位置無關(guān)的代碼或數(shù)據(jù)。n Read-write only independent:選中該選項表示指定源程序被匯編為 讀/寫的和位置無關(guān)的代碼或數(shù)據(jù)。系統(tǒng)默認為不選中。 3Warnings選項卡 如圖6-36所示,Warnings選項卡包括以下選項。圖6-36 Warnings選項卡Warn for all conditions:選擇該選項時,編譯器打
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 領(lǐng)導(dǎo)力培養(yǎng)與年度人才發(fā)展計劃
- 品牌與社會發(fā)展的協(xié)同作用計劃
- 《四川省漢源縣巖窩溝鉛鋅、磷礦勘探實施方案》評審意見書
- 特殊窗簾知識培訓(xùn)課件
- 第14課 向世界介紹我的學(xué)校-規(guī)劃與探究-教學(xué)設(shè)計 2024-2025學(xué)年浙教版(2023)初中信息技術(shù)七年級上冊
- webim與移動im 郵電大學(xué)課件
- 2025年長春貨運資格證考試模擬題500道
- 2025年科學(xué)認識貝殼標準教案反思
- 2025年樂山貨車資格證考試題
- 2025年邯鄲貨運從業(yè)資格證考試
- 四年級數(shù)學(xué)(四則混合運算)計算題與答案
- 第三章 計算機信息檢索技術(shù)
- 2024年湖南科技職業(yè)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 2024年南通職業(yè)大學(xué)高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 《無人機操控技術(shù)》 課件 項目 2 無人機模擬操控技術(shù)
- 新疆維吾爾自治區(qū)示范性普通高中評估指標體系
- 血透高磷個案護理
- 2024年新蘇教版六年級下冊科學(xué)全冊知識點(精編版)
- 征地拆遷律師服務(wù)方案
- 朗格漢斯細胞組織細胞增生癥課件
- GB/T 43585-2023一次性衛(wèi)生棉條
評論
0/150
提交評論