ARM嵌入式開發(fā)流程和開發(fā)工具含ADS與MultiICE簡介_第1頁
ARM嵌入式開發(fā)流程和開發(fā)工具含ADS與MultiICE簡介_第2頁
ARM嵌入式開發(fā)流程和開發(fā)工具含ADS與MultiICE簡介_第3頁
ARM嵌入式開發(fā)流程和開發(fā)工具含ADS與MultiICE簡介_第4頁
ARM嵌入式開發(fā)流程和開發(fā)工具含ADS與MultiICE簡介_第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、 第4 4章 ARMARM嵌入式開發(fā)流程和開發(fā)工具 嵌入式系統(tǒng)的設(shè)計可以分成三個階段: 分析、設(shè)計和實現(xiàn)。分析階段是確定要解決的問 題及需要完成的目標(biāo), 也常常被稱為 需求階段;設(shè)計階段主要是解決如何在給定的約束條 件下完成用戶的要求;實現(xiàn)階段主要是解決如何在所選擇的硬件和軟件的根底上進(jìn)行整個 軟、硬件系統(tǒng)的協(xié)調(diào)實現(xiàn)。在分析階段結(jié)束后,通常開發(fā)者面臨的一個棘手的問題就是硬件 平臺和軟件平臺的選擇,因為它的好壞直接影響著實現(xiàn)階段的任務(wù)完成。 通常硬件和軟件的選擇包括: 處理器、硬件部件、操作系統(tǒng)、編程語言、軟件開發(fā)工具、 硬件調(diào)試工具、軟件組件等。 在上述選擇中,通常,處理器是最重要的,同時操作

2、系統(tǒng)和編程語言也是非常關(guān)鍵的。 處理器的選擇往往同時會限制操作系統(tǒng)的選擇,操作系統(tǒng)的選擇又會限制開發(fā)工具的選擇。 4.1 ARM 嵌入式開發(fā)模式 嵌入式系統(tǒng)與一般 PC機(jī)在開發(fā)的硬件環(huán)境上的最大差異就是它分成兩個平臺, 一個是 宿主機(jī)Host, 一個是目標(biāo)機(jī)Target。這里的宿主機(jī)通常就是 PC 機(jī),首先利用宿主機(jī) 上豐富的資源、良好的開發(fā)環(huán)境編寫和編譯能夠在目標(biāo)機(jī)上運(yùn)行的程序, 這個過程叫做交叉 編譯,然后通過串口、并口、網(wǎng)絡(luò)或其它接口通過一定的傳輸手段將交叉編譯生成的目標(biāo)代 碼傳輸并裝載到目標(biāo)機(jī)上。圖 4-1 中就是采用并在線仿真器與目標(biāo)機(jī)和宿主機(jī)進(jìn)行連接, 從而實現(xiàn)目標(biāo)代碼的運(yùn)行和調(diào)試

3、。宿主機(jī)的工作環(huán)境可以是 Windows 98, Windows XP , Windows 2000 以及 RedHat 等操作系統(tǒng),具體選擇何種操作系統(tǒng)是由所采用的仿真器和所開 發(fā)的軟件決定,在 ARM 的開發(fā)過程中對于不同的軟件開發(fā)階段所采用的調(diào)試手段是不同的, 宿主機(jī)的操作系統(tǒng)需求也就不一樣。詳細(xì)的描述請參考本節(jié)后面的內(nèi)容。 圖 4-1 所示為一個典型的目標(biāo)機(jī) /宿主機(jī)開發(fā)模式。宿主機(jī)運(yùn)行 ADS 1.2 集成開發(fā)環(huán)境, 并通過在線仿真器Multi-ICE 對目標(biāo)處理器Samsung 公司的基于 ARM920T核的 S3c2410 處理器ARM處理器進(jìn)行調(diào)試。宿主機(jī)和在線仿真器通過并口連

4、接,在線仿真器同時連接 到目標(biāo)機(jī)的 JTAG接口。 圖 4-1 目標(biāo)機(jī)/宿主機(jī)開發(fā)模式 4.2 ARM 嵌入式開發(fā)流程和開發(fā)工具 ARM 嵌入式系統(tǒng)的開發(fā)流程非常靈活而復(fù)雜,尤其是軟件開發(fā)過程牽涉到許多不同的 開發(fā)過程,而且每個開發(fā)過程所使用的開發(fā)工具均不盡相同,因此,在深入學(xué)習(xí) ARM 軟件 開發(fā)之前,有必要對 ARM 嵌入式開發(fā)流程和所使用的開發(fā)工具有一個初步的了解, 本節(jié)就 是要到達(dá)這樣的目的,至于各個開發(fā)過程和開發(fā)工具的詳細(xì)介紹請參考后續(xù)有關(guān)章節(jié)。 宿主機(jī) u ADS 1.2 _ o 在線仿真器 Multi-ICE _ JTAG 接口 嵌入式系統(tǒng) S3C2410 (ARM920T) 并

5、口 4.2.1 選擇硬件平臺 1、處理器的選擇 嵌入式系統(tǒng)的核心部件是各種類型的嵌入式處理器。 據(jù)不完全統(tǒng)計, 目前全世界嵌入式 處理器的品種總量已經(jīng)超過 1000 多種,流行體系結(jié)構(gòu)有 30 幾個系列。但與全球 PC 市場不 同的是,沒有一種微處理器和微處理器公司可以主導(dǎo)嵌入式系統(tǒng),僅以 32 位的 CPU 而言, 就有 100 種以上嵌入式微處理器。 由于嵌入式系統(tǒng)設(shè)計的差異性極大, 因此選擇是多樣化的。 ARM 是近年來在嵌入式系統(tǒng)有影響力的微處理器制造商, ARM 的設(shè)計非常適用于小 的電源供電系統(tǒng)。 Apple 在 Newton 手持計算機(jī)中使用 ARM , 另外有幾款數(shù)字無線 也在

6、 使用 ARM 。 設(shè)計者在選擇處理器時要考慮的主要因素有: 1處理性能 一個處理器的性能取決于多個方面的因素, 如時鐘頻率, 內(nèi)部存放器的大小, 指令是否 對等處理所有的存放器等。 對于許多需用處理器的嵌入式系統(tǒng)設(shè)計來說, 目標(biāo)不是在于挑選 速度最快的處理器,而是在于選取能夠完成設(shè)計目標(biāo)的處理器。 比方: 對于 ARM 處理器, 如果需要使用軟解壓實現(xiàn)視頻, 應(yīng)該盡量選用 ARM9、 Xscale 等高檔處理器。而對于一般工業(yè)控制,那么可以考慮 ARM7 芯片是否滿足要求。 2技術(shù)指標(biāo) 當(dāng)前, 許多嵌入式處理器都集成了外圍設(shè)備的功能, 減少了芯片的數(shù)量, 降低了整個系 統(tǒng)的開發(fā)費(fèi)用和技術(shù)難度

7、。 開發(fā)人員首先考慮的是, 系統(tǒng)所要求的一些硬件能否方便地連接 到處理器上。其次是考慮該處理器的一些支持芯片,如 DMA 控制器,內(nèi)存管理器,中斷控 制器,串行設(shè)備、時鐘等的配套。 各個廠家市場的 ARM 芯片都根據(jù)不同的設(shè)計目標(biāo)擴(kuò)展了豐富的接口, 在選擇處理器時 應(yīng)該考慮選擇能夠支持盡可能多的功能,尤其是相對設(shè)計復(fù)雜的功能。 3功耗 嵌入式微處理器最大并且增長最快的市場是手持設(shè)備、電子記事本、 PDA、 、GPS 導(dǎo)航器、 智能家電等消費(fèi)類電子產(chǎn)品。 這些產(chǎn)品對微處理器的根本要求是: 高性能、 低功耗。 4操作系統(tǒng)和軟件支持工具的選擇 操作系統(tǒng)的移植和開發(fā)是嵌入式設(shè)計中的一個關(guān)鍵階段。 處理

8、器和操作系統(tǒng)的選擇在一 定程度上互相影響, 同時又將影響其軟件支持工具, 因此, 處理器的選擇的同時必須充分考 慮操作系統(tǒng)的因素。 在 ARM 系統(tǒng)中,如果用戶希望使用 Windows CE、 Linux 等操作系統(tǒng),就需要選擇 ARM720T 以上帶有 MMU Memory Management Unit功能的 ARM 芯片,ARM720T、 ARM920T 、 ARM922T 、 ARM946T 、 Strong-ARM 都帶有 MMU 功能。而 ARM7TDMI 那么沒 有 MMU ,不支持 Windows CE和 Linux,但目前有 uCLinux 以及 uC/OS-II等不需要 M

9、MU 支持的操作系統(tǒng)可運(yùn)行于 ARM7TDMI 硬件平臺之上。事實上, uCLinux 已經(jīng)成功移植到多 種不帶 MMU 的微處理器平臺上,并在穩(wěn)定性和其他方面都有上佳表現(xiàn)。 另外,如果斷定采用 Linux、 Windows CE 、 vxWorks 等操作系統(tǒng)時,在選擇處理器時應(yīng) 該盡量選擇該操作系統(tǒng)已經(jīng)支持的處理器,這樣可以大大加快開發(fā)進(jìn)度,降低難度。 選擇不同的操作系統(tǒng), 其軟件開發(fā)過程和調(diào)試手段各不相同, 你的選擇方案是否能夠提 供各個開發(fā)階段包括 bootloader 開發(fā)、操作系統(tǒng)移植、驅(qū)動開發(fā)和應(yīng)用開發(fā)所需的軟件 支持工具也是一個必須考慮的因素。 5是否內(nèi)置調(diào)試工具 處理器如果內(nèi)

10、置調(diào)試工具可以大大縮小調(diào)試周期,降低調(diào)試的難度。 ARM 提供 JTAG 調(diào)試接口,而且有眾多的第三方廠家推出各種調(diào)試工具。 2、硬件平臺的選擇 選擇好目標(biāo)微處理器后還需要準(zhǔn)備硬件平臺。 目前國內(nèi)外有許多針對各種 ARM 股處理器 的開發(fā)板,這些開發(fā)板對所支持的 ARM 股處理器做了詳細(xì)的硬件評估和軟件支持。 在自己動 手設(shè)計硬件平臺之前, 購置一塊這種開發(fā)板作為測試平臺, 進(jìn)行學(xué)習(xí)和參考, 這樣可以大大 加快開發(fā)進(jìn)度。 對于一些應(yīng)用, 也可以直接在這些開發(fā)板上進(jìn)行, 這樣可以省略硬件設(shè)計的 階段。 如果您不打算購置開發(fā)板作為測試平臺,您就需要自行設(shè)計硬件平臺。在本書的第 5 章中,以目前國內(nèi)

11、 ARM9 勺主流芯片:Samsung 公司的 S3c2410 為例,詳細(xì)介紹了該處理器 的硬件架構(gòu)和硬件接口擴(kuò)展方法。 4.2.2 硬件驅(qū)動調(diào)試 如果硬件平臺是自行設(shè)計的, 必須首先對硬件進(jìn)行調(diào)試, 硬件調(diào)試成功是進(jìn)行操作系統(tǒng) 移植和應(yīng)用程序開發(fā)的一個根本前提。 這個過程通常是通過編寫一些簡單的測試程序直接驅(qū)動硬件以驗證硬件是否正確, 這些 程序可以基于操作系統(tǒng)進(jìn)行編程,也可以不使用操作系統(tǒng),而且后一種方法來得更加簡單, 調(diào)試也更方便和快捷。 這一類過程通常采用圖 4-1 所示的開發(fā)模式,在運(yùn)行于 Windows 的 ADS 1.2 中編寫程 序并編譯,然后通過 Multi-IcE 下載并調(diào)

12、試程序。由于這個過程的編程動作依賴于硬件,采 用這種模式可以充分利用在線仿真器的強(qiáng)大的軟件調(diào)試功能,從而加快排錯過程。 4.2.3 操作系統(tǒng)的選擇和移植 在單片機(jī)系統(tǒng)中, 由于受硬件資源的限制, 同時應(yīng)用程序通常比擬簡單, 因此, 通常不 使用操作系統(tǒng), 直接采用前后臺程序控制方式設(shè)計軟件系統(tǒng)。 前臺運(yùn)行一個死循環(huán)作為主程 序流程, 在主程序中設(shè)置中斷, 當(dāng)中斷產(chǎn)生的時候, 運(yùn)行后臺中斷效勞程序, 然后返回繼續(xù) 運(yùn)行主程序。 這樣的開發(fā)方式在 ARM 開發(fā)中同樣適用, 而且對于一些小型應(yīng)用完全可以采 取這種方式, 但是對于復(fù)雜應(yīng)用, 如復(fù)雜的圖形用戶界面、 網(wǎng)絡(luò)協(xié)議等, 采用前后臺控制方 式進(jìn)

13、行設(shè)計的應(yīng)用程序設(shè)計復(fù)雜,而且不便于軟件模塊的劃分和軟件升級、維護(hù)等。 在這種情況下, 操作系統(tǒng)的優(yōu)勢展露無疑。 使用操作系統(tǒng)能夠充分發(fā)揮 ARM 微處理器 的優(yōu)勢。 目前絕大多數(shù)嵌入式操作系統(tǒng)都能夠穩(wěn)定運(yùn)行在 ARM 微處理器上。 軟件開發(fā)中必 須首先選擇適宜的操作系統(tǒng)。 下面將簡單介紹幾種常用的嵌入式操作系統(tǒng)以及它們的根本開 發(fā)流程。 1、C/OSII 科 C/OSI是一種免費(fèi)公開源代碼、結(jié)構(gòu)小巧、具有可剝奪實時內(nèi)核的實時操作系統(tǒng)。 其 內(nèi)核提供任務(wù)調(diào)度與管理、 時間管理、 任務(wù)間同步與通信、 內(nèi)存管理和中斷效勞等功能。 它 可以基于 ROM 運(yùn)行 ROMable 、可裁減,具有高度移植性

14、。 從應(yīng)用的角度來看,wC/OSII提供了一個實時性非常好的嵌入式內(nèi)核, 在工業(yè)控制、數(shù) 據(jù)采集等領(lǐng)域應(yīng)用廣泛。但 C/OSII內(nèi)核不支持文件系統(tǒng)、網(wǎng)絡(luò)協(xié)議等功能,而且沒有提 供統(tǒng)一的硬件驅(qū)動程序接口和開發(fā)工具鏈, 在復(fù)雜應(yīng)用中需要考慮內(nèi)核以外功能的實現(xiàn)難易 程度。 科 C/OSI內(nèi)核不支持文件系統(tǒng), 不支持應(yīng)用程序和驅(qū)動程序的加載, 因此,在科 C/OSII 開發(fā)中,內(nèi)核、驅(qū)動程序和應(yīng)用程序都是集中編譯, 也就是說,C/OSII編譯以后的二進(jìn)制 代碼中即包含內(nèi)核代碼,也包含驅(qū)動程序和應(yīng)用程序的代碼。同時 C/OSII沒有提供統(tǒng)一 的開發(fā)工具鏈,C/OS-II程序的編譯應(yīng)該采用支持所選處理器的

15、編譯器。 對于 ARM 處理器, 可以在 Windows 環(huán)境中使用 ADS 1.2、 ADT IDE中編譯科 C/OSII ,也可以在 Linux環(huán)境中 使用 GNU GCC編譯C/OSII。因此可以采用圖 4-1 所示的開發(fā)模式調(diào)試基于 科 C/OSII的 程序。 2、 Linux/uClinux Linux/uClinux 是對于有 MMU 和沒有 MMU 的處理器的 Linux 解決方案。 Linux 內(nèi)核的 完全開放, 使得可以自己設(shè)計和開發(fā)出真正的硬實時系統(tǒng); 對于軟實時系統(tǒng), 在 Linux 中也 容易得到實現(xiàn)。 Linux/uClinux 提供強(qiáng)大的文件系統(tǒng)、網(wǎng)絡(luò)功能、 GUI

16、 等軟件模組支持,而且這些功能 都是可以裁減的, 同時它還提供了標(biāo)準(zhǔn)的驅(qū)動程序接口和軟件開發(fā)接口, 便于用戶編程和程 序維護(hù)。 Linux/uClinux 自身具備一整套工具鏈 GNU GCC ,包括編譯和調(diào)試工具,用戶可以 自行建立嵌入式系統(tǒng)的開發(fā)環(huán)境和交叉運(yùn)行環(huán)境, 并且可以跨越在嵌入式系統(tǒng)開發(fā)中仿真工 具ICE的障礙。 對于 ARM 處理器, Linux/uClinux 內(nèi)核、 驅(qū)動程序以及應(yīng)用程序的編譯都在 Linux 環(huán)境 中使用 GNU GCC 完成。對于內(nèi)核和驅(qū)動程序的調(diào)試通常借助于運(yùn)行于 Linux/uClinux 之前 的 bootloader 來完成, 只有在很少的情況下需

17、要借助在線仿真器完成。 對于應(yīng)用程序的調(diào)試 那么可以完全拋棄在線仿真器,使用 GDB 完成。在本書的第 7 章中介紹了 bootloader 以及 Linux/uClinux 的相關(guān)知識。 3、 Windows CE Windows CE 是 Windows 界面在嵌入式處理器中的實現(xiàn), 它提供了友好的人機(jī)交互界面 和強(qiáng)大的二次開發(fā)功能。 Windows CE 包括四大根本模塊, 它們提供了操作系統(tǒng)的關(guān)鍵特性, 分別是:內(nèi)核Kernel模塊、對象存儲Object Store模塊、GWES 用戶、應(yīng)用程序和 操作系統(tǒng)之間的圖形用戶界面模塊和通信 Communication 模塊。 Windows

18、 CE 擁有完善的軟件支持開發(fā)工具, Windows CE 的核心移植和驅(qū)動開發(fā)使用 專門的操作系統(tǒng)定制工具: Windows CE Platform Builder簡稱 PB。而應(yīng)用程序的開發(fā)那么有 嵌入式開發(fā)工具包 Embedded Visual Tools,包括 Embedded Visual C+ 簡稱 EVC和 Embedded Visual Basic 簡稱 EVB 等。同時 Embedded Visual Tools 下還可以進(jìn)行局部驅(qū)動程 序的開發(fā)。同時在 Windows CE 中還提供了用于 Windows CE 開發(fā)的 bootloader: EBOOT。 4、 vxWor

19、ks VxWorks 是專門為實時嵌入式系統(tǒng)設(shè)計開發(fā)的操作系統(tǒng)內(nèi)核,為程序員提供了高效的 實時多任務(wù)調(diào)度、中斷管理,實時的系統(tǒng)資源以及實時的任務(wù)間通信。在各種 CPU 平臺上 提供了統(tǒng)一的編程接口和一致的運(yùn)行特性,盡可能的屏蔽了不同 CPU 之間的底層差異。應(yīng) 用程序員可以將盡可能多的精力放在應(yīng)用程序本身, 而不必再去關(guān)心系統(tǒng)資源的管理。 基于 VxWorks 操作系統(tǒng)的應(yīng)用程序可以在不同 CPU 平臺上輕松移植。 VxWorks 是一種功能強(qiáng)大而且比擬復(fù)雜的操作系統(tǒng),包括了進(jìn)程管理、存儲管理、設(shè) 備管理、文件系統(tǒng)管理、網(wǎng)絡(luò)協(xié)議及系統(tǒng)應(yīng)用等幾個局部。 VxWorks 只占用了很小的存儲 空間,

20、并可高度裁減,保證了系統(tǒng)能以較高的效率運(yùn)行。所以,僅僅依靠人工編程調(diào)試,很 難發(fā)揮它的功能并設(shè)計出可靠、高效的嵌入式系統(tǒng),必須要有與之相適應(yīng)的開發(fā)工具。 TornadoII 就是為開發(fā) VxWorks 應(yīng)用系統(tǒng)提供的集成開發(fā)環(huán)境, TornadoII 中包含的工程管理 軟件,可以將用戶自己的代碼與 VxWorks 的核心有效的組合起來,可以按用戶的需要裁剪 配置 VxWorks 內(nèi)核; vxSim 原型仿真器可以讓程序員不用目標(biāo)機(jī)的情況下,直接開發(fā)系統(tǒng) 原型,作出系統(tǒng)評估;功能強(qiáng)大的 CrossWind 調(diào)試器可以提供任務(wù)級和系統(tǒng)級的調(diào)試模式, 可以進(jìn)行多目標(biāo)機(jī)的聯(lián)調(diào); 優(yōu)化分析工具可以幫助程

21、序員從多種方式真正地觀察、 跟蹤系統(tǒng) 的運(yùn)行,排除錯誤,優(yōu)化性能。 4.3 ADS 與 Multi-ICE 簡介 本節(jié)將簡單介紹 ARM#發(fā)軟件 ADS(ARM Developer Suite)和 Multi-ICE 硬件仿真器。 在隨后的 8.1節(jié)中,將以一個簡單的例子描述如何在 ADS1 成開發(fā)環(huán)境下編寫、編譯并調(diào)試 應(yīng)用程序。 ARM ADSi:稱為 ARM Developer Suite ,是 AR 必司推出的用于 ARMg 序設(shè)計、開發(fā)和 調(diào)試的集成開發(fā)工具?,F(xiàn)在 ADS的最新版本是 1.2,它取代了早期的 ADS1.1 和 ADS1.0。它 支持 Windows NT4, Wind

22、ows 2000 , Windows 98、 Windows 95 、 Windows XP 和 Windows Me 等操作系統(tǒng)。 ADS由命令行開發(fā)工具,ARM!行時庫,圖形化集成開發(fā)環(huán)境 (Code Warrior和 AXD), 實用程序和支持軟件組成。下面將就每個局部作詳細(xì)的介紹。 本文以 ADS1.2 為例, 并假設(shè)已經(jīng)將 ADS1.2 安裝在 “ C:Program 目錄下。 4.3.1 命令行開發(fā)工具 ADS包含一系列基于命令行的 ARM譯、匯編、鏈接等工具,它們位于 ADS安裝目錄的 bin 子目錄下( C:Program FilesARMADSv1_2Bin )。它們既可以在

23、命令控制臺環(huán)境下使 用,同時由于已被嵌入到了 ADS的圖形界面中,所以也可以在圖形界面下通過參數(shù)設(shè)置等手 段來使用。 1、ARM C(C+)編譯器 ADS包含包含多種 C 編譯器, 包括: armcc, tcc , armcpp 和 tcpp。其中 armcc是 ARMC 編譯器, armcpp是 ARM C+編譯器,tcc是 Thumb C 編譯器,tcpp 是 Thumb C+編譯器。 2、ARMf匚編器(armasni) armasm 是 ARMF口 Thumb 的匯編器.它對用 ARM 匯編語言和 Thumb 匯編語言寫的源代碼 進(jìn)行匯編。 3、ARMB1 接器(armlink ) a

24、rmlink 是 ARM1 接器。該命令既可以將編譯得到的一個或多個目標(biāo)文件和相關(guān)的一個 或多個庫文件進(jìn)行鏈接, 生成一個可執(zhí)行文件, 也可以將多個目標(biāo)文件局部鏈接成一個目標(biāo) 文件,以供進(jìn)一步的鏈接。 ARM接器生成的是 ELF格式的可執(zhí)行映像文件。 5、符號調(diào)試器( armsd) armsd 是 ARM 和 Thumb 的符號調(diào)試器。它能夠進(jìn)行源碼級的程序調(diào)試。用戶可以在用 C 或匯編語言寫的代碼中進(jìn)行單步調(diào)試,設(shè)置斷點,查看變量值和內(nèi)存單元的內(nèi)容。 4.3.2 ARM 運(yùn)行時庫 ADS 提供以下的: 在 ADS 軟件安裝路徑的 lib 目錄( C:Program FilesARMADSv1

25、_2lib )下有兩個子目 錄:armlib 和 cpplib。這兩個子目錄提供了兩種運(yùn)行時庫來支持被編譯的 C 和 C+代碼,它 們分別是:ANSI C 函數(shù)庫和 C+函數(shù)庫。 環(huán)境變量 ARMLIB 必須被設(shè)置成指向庫路徑。另外一種指定 ARM C 和 ARM C+ 庫路 徑的方法是,在鏈接的時候使用操作選項 -libpath directorydirectory 代表庫所在的路徑 ,來 指明要裝載的庫的路徑。需要說明的是,ADS安裝成功后,ARMLIB被缺省指向到 C:Program FilesARMADSv1_2LIB 目錄,因此通常不用進(jìn)行設(shè)置鏈接器就會自動從 ARMLIB 指定的

26、庫路徑中找出這兩個函數(shù)庫的路徑。 1 、 ANSI C 函數(shù)庫: armlib ARM C 庫包含浮點代數(shù)運(yùn)算庫、數(shù)學(xué)庫等各類庫函數(shù)。與這些庫相應(yīng)的頭文件在 C:Program FilesARMADSv1_2include 目錄中。這個 C 函數(shù)庫是由以下幾局部組成: 1在 ISO C 標(biāo)準(zhǔn)中定義的函數(shù); 2在 semihosted 環(huán)境下 semihosting 是針對 ARM 目標(biāo)機(jī)的一種機(jī)制,它能夠根據(jù)應(yīng)用 程序代碼的輸入 /輸出請求,與運(yùn)行有調(diào)試功能的主機(jī)通訊。這種技術(shù)允許主機(jī)為通常沒有 輸入和輸出功能的目標(biāo)硬件提供主機(jī)資源 用來實現(xiàn) C 庫函數(shù)的與目標(biāo)相關(guān)的函數(shù); 3被 C 和 C+

27、編譯器所調(diào)用的支持函數(shù)。 ARM C 庫提供了額外的一些部件支持 C+,并為不同的結(jié)構(gòu)體系和處理器編譯代碼。 ARM C 庫函數(shù)是以二進(jìn)制格式提供的,并禁止修改。如果讀者想對庫函數(shù)創(chuàng)立新的實 現(xiàn)的話, 可以把這個新的函數(shù)編譯成目標(biāo)文件, 然后在鏈接的時候把它包含進(jìn)來。 這樣在鏈 接的時候,使用的是新的函數(shù)實現(xiàn)而不是原來的庫函數(shù)。 通常情況下,為了創(chuàng)立依賴于目標(biāo)的應(yīng)用程序,在 ANSI C 庫中只有很少的幾個函數(shù)需 要實現(xiàn)重建。 2、C+函數(shù)庫: 這個子目錄包含了 Rogue Wave C+庫和 C+支持函數(shù)庫。Rogue Wave C+庫和 C+支 持 函 數(shù) 庫合 在 一起 被 稱為 ARM

28、 C+ 庫 。 與 這 些 庫相 應(yīng) 的頭 文 件安 裝 在 C:Program FilesARMADSv1_2include 目錄下。這個庫是由以下幾局部組成的: 1版本為 2.01.01 的 Rogue Wave Standard C+庫; 2) C+編譯器使用的支持函數(shù); 3) Rogue Wave庫所不支持的其他的 C+函數(shù)。 Rogue Wave Standard C+函數(shù)庫的源代碼不是免費(fèi)發(fā)布的, 可以從 Rogue Wave Software Inc.,或 ARM 公司通過支付許可證費(fèi)用來獲得源文件。 4.3.3 圖形化集成開發(fā)環(huán)境 Code Warrior 和 AXD 1 、

29、CodeWarrior for ARM CodeWarrior for ARM 是一套完整的集成開發(fā)工具,充分發(fā)揮了 ARM RISC 的優(yōu)勢 , 使 產(chǎn)品開發(fā)人員能夠很好的應(yīng)用尖端的片上系統(tǒng)技術(shù) . 該工具是專為基于 ARM RISC 的處理 器而設(shè)計的 , 它可加速并簡化嵌入式開發(fā)過程中的每一個環(huán)節(jié), 使得開發(fā)人員只需通過一個 集 成 軟 件 開發(fā) 環(huán) 境就 能 研 制出 ARM 產(chǎn) 品 , 在 整 個 開 發(fā)周 期 中 , 開發(fā) 人 員 無需 離 開 CodeWarrior 開發(fā)環(huán)境 , 因此節(jié)省了在操做工具上花的時間 ,使得開發(fā)人員有更多的精力投入 到代碼編寫上來, CodeWarri

30、or 集成開發(fā)環(huán)境 IDE 為管理和開發(fā)工程提供了簡單多樣化的圖形用戶界面。 用戶可以使用 ADS的 CodeWarrior IDE為 ARM 和 Thumb 處理器開發(fā)用 C, C+,或 ARM 匯編語言的程序代碼。通過提供下面的功能, CodeWarrior IDE 縮短了用戶開發(fā)工程代碼的 周期。 1全面的工程管理功能; 2)子函數(shù)的代碼導(dǎo)航功能,使得用戶迅速找到程序中的子函數(shù)。 可以在 CodeWarrior IDE 為 ARM 配置各種命令行工具的參數(shù), 實現(xiàn)對工程代碼的編譯, 匯編和鏈接。 CodeWarrior IDE 能夠讓用戶將源代碼文件,庫文件還有其他相關(guān)的文件以及配置設(shè)置

31、 等放在一個工程中。 每個工程可以創(chuàng)立和管理生成目標(biāo)設(shè)置的多個配置。 例如, 要編譯一個 包含調(diào)試信息的生成目標(biāo)和一個基于 ARM7TDMI 的硬件優(yōu)化生成目標(biāo), 生成目標(biāo)可以在同 一個工程中共享文件,同時使用各自的設(shè)置。 CodeWarrior IDE 為用戶提供下面的功能: 源代碼編輯器,它集成在 CodeWarrior IDE 的瀏覽器中,能夠根據(jù)語法格式,使用不同 的顏色顯示代碼; 源代碼瀏覽器, 它保存了在源碼中定義的所有符號, 能夠使用戶在源碼中快速方便的跳 轉(zhuǎn); 查找和替換功能, 用戶可以在多個文件中, 利用字符串通配符, 進(jìn)行字符串的搜索和替 換; 文件比擬功能,可以使用戶比擬

32、路徑中的不同文本文件的內(nèi)容。 ADS 的 CodeWarrior IDE 是基于 Metrowerks CodeWarrior IDE 4.2 版本的。它經(jīng)過適當(dāng) 的裁剪以支持 ADS 工具鏈。 針對 ARM 的配置面板為用戶提供了在 CodeWarrior IDE 集成環(huán)境下配置各種 ARM 開 發(fā)工具的能力。 以 ARM 為目標(biāo)平臺的工程創(chuàng)立向?qū)В?可以使用戶以此為根底, 快速創(chuàng)立 ARM 和 Thumb 工程。 盡管大多數(shù)的 ARM 工具鏈已經(jīng)集成在 CodeWarrior IDE,但是仍有許多功能在該集成 環(huán)境中沒有實現(xiàn),這些功能大多數(shù)是和調(diào)試相關(guān)的,因為 ARM 的調(diào)試器沒有集成到

33、CodeWarrior IDE 中。 由于 ARM 調(diào)試器 (AXD) 沒有集成在 CodeWarrior IDE 中,這就意味著,用戶不能在 CodeWarrior IDE 中進(jìn)行斷點調(diào)試和查看變量。 2 、 ADS 調(diào)試器 這里所說的調(diào)試器本身是一個軟件,用戶通過這個軟件并配合調(diào)試代理( debug agent) 可以對包含有調(diào)試信息的, 正在運(yùn)行的可執(zhí)行代碼進(jìn)行比方變量的查看, 斷點的控制等調(diào)試 操作。 調(diào)試代理執(zhí)行調(diào)試器發(fā)出的命令,如:設(shè)置斷點,單步運(yùn)行,從存儲器中讀數(shù)據(jù),把數(shù) 據(jù)寫到存儲器等。調(diào)試代理既不是被調(diào)試的程序,也不是調(diào)試器。在 ARM 體系中,它可能 是下面幾種情況中的一個

34、: 1)在線實時仿真器 在線實時仿真器通過 JTAG 端口與目標(biāo)機(jī)進(jìn)行連接,可以實現(xiàn)對 ARM 處理器的在線、 實時調(diào)試,且不占用系統(tǒng)資源。 Multi-ICE(Multi-processor in-circuit emulator)是 ARM 公司自己的 JTAG 在線實時仿真 器。它支持全系列的 ARM 核,通過并口與 PC 機(jī)連接,數(shù)據(jù)接口為 8 位。 Multi-ICE 內(nèi)部采 用 FPGA 實現(xiàn)并口到 JTAG 的協(xié)議轉(zhuǎn)換,速度很快,下載速度可在 120kByte/s 左右。 本章下節(jié)將要提到的 ADT 1000A 仿真器也是一種在線實時仿真器。 2) ARMulator ARMul

35、ator 即軟件模擬器, 它獨立于處理器硬件, 是一種有效的源程序檢驗和測試工具。 但是, 模擬器畢竟只是以一種處理器模擬另一種處理器的運(yùn)行, 在指令執(zhí)行時間、 中斷響應(yīng)、 定時器等方面與實際處理器有相對大的差異。 3) Angel Angel 為一個運(yùn)行于目標(biāo)機(jī)上的監(jiān)控程序, 它在調(diào)試器和目標(biāo)板之間通過一定的通信方 式, 如: 串口通信, 為用戶提供各種調(diào)試功能。 這種方式需要占用目標(biāo)機(jī)系統(tǒng)資源, 如串口、 ROM 、 RAM 等。 ADS 中包含有 3 個調(diào)試器: 1) AXD(ARM eXtended Debugger) : ARM 擴(kuò)展調(diào)試器; 2) armsd(ARM Symboli

36、c Debugger) : ARM 符號調(diào)試器; 3) 與老版本兼容的 Windows 或 Unix 下的 ARM 調(diào)試工具, ADW/ADU(Application Debugger Windows/Unix) 。 4.3.4 實用程序 此外, ADS 還提供了許多實用工具,下面簡單的介紹開發(fā)中經(jīng)常用到的程序: 1 、 fromELF 這是 ARM 映像文件轉(zhuǎn)換工具。該命令將 ELF 格式的文件作為輸入文件,將該格式轉(zhuǎn) 換為各種輸出格式的文件,包括 plain binary(BIN 格式映像文件 ), Motorola 32-bit S-record format(Motorola 32 位

37、 S 格式映像文件 ), Intel Hex 32 format(Intel 32 位格式映像文件 ),和 Verilog-like hex format(V erilog 16 進(jìn)制文件 )。 FromELF 命令也能夠為輸入映像文件產(chǎn)生文本 信息,例如代碼和數(shù)據(jù)長度。 2 、 armar ARM 庫函數(shù)生成器將一系列 ELF 格式的目標(biāo)文件以庫函數(shù)的形式集合在一起, 用戶可 以把一個庫傳遞給一個鏈接器以代替幾個 ELF 文件。 3 、 Flash downloader 用于把二進(jìn)制映像文件下載到 ARM 開發(fā)板上的 Flash 存儲器的工具 4 .3.5 支持的軟件 ADS 為用戶提供下面

38、的軟件, 使用戶可以在軟件仿真的環(huán)境下或者在基于 ARM 的硬件 環(huán)境調(diào)試用戶應(yīng)用程序。 ARMulator 這是一個 ARM 指令集仿真器, 集成在 ARM 的調(diào)試器 AXD 中, 它提供對 ARM 處理器 的指令集的仿真,為 ARM 和 Thumb 提供精確的模擬。用戶可以在硬件尚未做好的情況下, 開發(fā)程序代碼。 4.4 ADT IDE 簡介 4.4.1 ADT IDE 集成開發(fā)環(huán)境 1 ADT IDE 簡介 ADTIDE 是一套應(yīng)用于嵌入式軟件開發(fā)的新一代集成開發(fā)環(huán)境,它提供高效、清晰、可 視化的嵌入式軟件開發(fā)平臺, 包括一整套完備的面向嵌入式系統(tǒng)的開發(fā)和調(diào)試工具: 編輯器、 編譯器、鏈

39、接器、工程管理器以及調(diào)試器等。 ADT IDE 運(yùn)行于 Windows NT、 95、 98、 2000 及 XP,采用類 Visual Stdio 界面風(fēng)格,其界面如圖 4-2 所示。 南裁板窗口 X 儂 |gjfirh - 1A-IT77 圖4-2 ADT IDE集成開發(fā)環(huán)境軟件界面圖 2 ADT IDE主要特性 中文、英文版本支持 操作系統(tǒng)支持 支持 Vxworks,uCLinux,Linux,Nucleus 等操作系統(tǒng)的開發(fā)和調(diào)試。 可視化的源碼編輯和工程管理功能: 界面友好,使用方便:類似 MS Visual Studio 的用戶界面,支持打印功能,支 持文件內(nèi)查找功能和 Find

40、in Files 功能。 工程管理器:ADTIDE提供圖形化的工程管理工具,以 project 為單位為用戶提 供給用源程序的文件組織和管理,管理用戶的應(yīng)用程序,編譯鏈接選項以及調(diào)試參數(shù)等。 源碼編輯器:支持標(biāo)準(zhǔn)的文本編輯功能,支持 C 語言、匯編語言語法高亮顯示。 輔助編輯工具:提供多剪貼板工具、代碼模板工具、頭文件和源文件切換工具、 注釋工具、符號配對書寫工具等多種輔助編輯工具。 交叉編譯功能: 支持開發(fā)語言: ANSI C; Embedded C+;匯編語言。 編譯工具:使用著名優(yōu)秀自由軟件 GNU 勺 GCC!叉編譯工具,并經(jīng)過優(yōu)化和嚴(yán)格 測試,支持 C 語言、匯編語言等。 編譯參數(shù)設(shè)

41、置:完全圖形界面方式的編譯參數(shù)設(shè)置, 提供可視化的設(shè)置功能。 支 持工程級/文件目錄級/文件級編譯參數(shù)設(shè)置。 強(qiáng)大的源代碼級調(diào)試功能: 圖形和命令行兩種調(diào)試方式。 斷點功能:支持軟件斷點和硬件斷點,實現(xiàn)斷點設(shè)置、斷點屏蔽、斷點取消、斷 S fi ih - 工具欄 驚題幅 ml - 11 iffhr 4 (; Vtl *! JBEJ 二番 口 dE fliflath 七1ET01ET0 riiihh -ic m f .Ail.MbK 制 一 工作區(qū)褊口 數(shù)據(jù)規(guī)整窗口 V*a*r typ -KE*IS 狀態(tài)欄 菜單欄 DI 1LJ 方苗&35TSHT 三虱130cl 址配MlNid lb

42、30 由(昵Ml日MY I 0 20 反匯歸窗口 rj,* ME三| rj. 小、甘3】口 Eurrfrnt bd* i 3UC) BKQQcccaaa 存放霹窗口 LLU 11 Vuluc iffiDiCad-iCKi; 11 Cad 酎立曲 inel iiF(pCadAcnd 4 U巨Erasing) En-fIfi. eCadI: 士. Sxd 二 IKS. wjfiir ri. r3. mil Jdj -filiJ 0 朗 aE5M4T SMM1SMIS QKgm斗聽的 aKDSEiQE2B 9K549阜4磐3 9X2S92MK SXBCMBIFC 郎 MQCME, exBcyoMEy

43、j jMinwingOQi*r-: c*l_| I n$r ,t iM SBl & U-EUgQ01M : c l m Elg 留盧:C.tl j * jj gQ|g9MD gon gm i UQI90WM 皿0輛3 刖M網(wǎng)i 皿S喇5 08999B1F 回 肝勺*|3; 口 T3t! MJ -J 輸出售口 號Mapace L J.H = 0L U J J 4 虢上存放器窗口 一|門| *1 ystea Cf1iELiral lnystea Cf1iELiral ln 一 I-nhbLi UrL MUiJ VeiUrL MUiJ Vei OvOCOOOOfe I而 B fluh. 51: umm日. Rie R

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論