• 沒有找到結果。

在前面將OMAP 微處理器硬體和環境選擇簡單的說明之後,接下來要進入軟體應 用的開發環境部分。因為OMAP 是由 ARM 和 DSP 兩種架構所組成的, 如圖 B.3 所 示,所以在軟體開發上,我們分別針對ARM 和 DSP 的程式開發環境做介紹。

圖B.3、OMAP 雙核心系統架構 資料來源: Start Kit for the OMAP 5912

(1) 程式開發環境於ARM架構

自從1991 年 Linux 由 Linus Torvalds 將第一版 Linux 公開在網路上後,這套作 業系統已經受到世界普遍的歡迎。現在的Linux 支援相當多的處理器核心,由高階的 伺服器、工作站,到常見的個電腦中都有它的蹤跡,甚至是一些手持式裝置例如手機、

PDA(Personal Digital Assistant,個人數位助理)等一些現代人常用的嵌入式系統上都看 得到Linux 的存在。

所謂的嵌入式系統指的就是為了提高產品的穩定性、可攜性,或者是降低產 品成本、增加特定功能等不同的目的,對一般的標準系統進行修改以符合特殊設計上 的需求。在硬體方面靠的主要就是被稱為系統單晶片(SoC)的半導體整合技術,而嵌入 式作業系統則是軟體方面的技術核心。Linux 的可靠、高效能、伸縮性、低成本,以 及最重要的握有控制權等幾項特點,使得 Linux 在嵌入式作業系統上站在非常有利的 位置。

在一般PC 的 Linux 的環境下開發程式,最常使用到的編譯器,莫過於 GCC (GNU Compiler Collection)[29],GCC 可以說是 Richard Stallman 所創立的 GNU 計畫中最 重要的作品之一,它提供了自由軟體世界高品質的編譯器 (compiler),實現了我們在 自由軟體平台上開發程式的夢想。GCC 一個很大的特色是高度可移植性,目前已知 有包括了:x86、 arm、ia64、 alpha、 hppa、 m68k、Power PC 、 mips 等超過三十 種硬體平台與作業系統可以執行 GCC,此高度可移植性正是 GCC 廣為流傳散佈的

主要原因。儘管 GCC 是自由軟體計畫開發出來的,但其所編譯出來的程式品質並不 輸給商業版的編譯器,甚至所編譯出來程式在特定平台有更好的執行效能。

嵌 入 式 系 統 開 發 也 需 要 用 到 編 譯 器(Compiler) 、 連 結 器 (Linker) 、 組 譯 器 (Assembler),整合開發環境。以 ARM 而言,在 x86 環境下編譯產生出來的執行檔,

並不能於ARM 環境執行,若要在 x86 環境下開發 ARM 程式則需要建立一個跨平台 開發的工具(cross-platform development tool)。arm-linux-gcc 可將 x86 環境下程式碼 針對ARM 的架構進行交叉編譯(cross-compiler),產生出來的執行檔便可以於 ARM 的架構上執行。GCC 編譯流程如圖 B.4 所示。

圖B.4、GCC編譯流程圖

(2) 程式開發環境於DSP架構

開發DSP 程式有兩種方式 1.是採用德州儀器所提供的軟體 CCS (Code Composer Studio)[30][31], 2.是採用Linux DSP Tools 。

第一種選擇 CCS,提供一個完善的整合發展環境(IDE,Integrated Development Environment),包含了程式編譯器、程式除錯器以及模擬器。 CCS 以一致的環境來整 合所有 host 與 target 工具,包括 TI 的 DSP/BIOS kernel、code-generation tools、fast

圖B.5 為 CCS 開發 DSP 程式流程。在設計程式前,先有個設計概念,再開始建 產生物件(Object)檔,經由連結器(Linker)來產生最後的可執行 COFF(Common Object File Format)檔(以.out 為副檔名)。

第二種選擇,Linux DSP Tools, 提供 compiler,GNU,Tconf 來建立 DSP 應用 程式。

DSP/BIOS 核心是一個事件驅動(Event-Driven)的架構,DSP 的應用程式透過 DSP /BIOS Configure 對於 DSP/BIOS 內的機制作設定。DSP/BIOS 系統配置工具是用來幫 助開發者在撰寫事件處理函式時,設定事件的特性與參數,如硬體中斷、軟體中斷、

背景執行緒、工作(TASK)等來使用 DSP/BIOS 的多執行緖能力。

DSP/BIOS 主要被設計出來針對某些應用層面,其中包含:即時排程( Real – Time scheduling )、同步( Synchronization ),以及 HOST 和 TARGET 之間的通訊(如圖 B.6 所示)。DSP/BIOS 核心提供了 1. 強制性的多執行緒(Preemptive Multi-Thread),也就是 在DSP 中有許多 Task 時,優先權高的工作可以將優先權低的工作中斷,並搶得執行 權。2. 硬體抽象化(Hardware Abstraction),即完全由硬體抽象層控制系統的硬體中斷。

使用者可以利用硬體抽象層給予的硬體描述來控制硬體,3. 即時分析(Real-Time Analysis)的功能。除此之外,DSP/BIOS Configuration 工具可將程式的大小作最佳化處 理。圖中表示了DSP/BIOS 在 CCS 上所扮演的角色。

Design conceptual

planning

Code & build create project,

wirte source code, points, logging,

etc.

圖B.6、CCS整合發展環境

資料來源: Code Composer Studio Getting Started Guide Rev C(SPRU509C), Texas Instruments.

相關文件