• 沒有找到結果。

第三章 系統軟硬體設計與實現

3.3 軟體環境

3.3.1 Linux 作業系統與編譯器

一般來說嵌入式平台的硬體資源較PC拮据,平台處理器運算速度與記 憶體大小都會受到限制,因此程式開發者通常不會直接於嵌入式系統板上 開發程式,而會選擇額外使用一台PC作為嵌入式系統程式開發的環境。我 們使用TI 提供的MontaVista Linux V4.0做為DM6446平台ARM端的嵌入式 作業系統,而PC上則是安裝Red Hat Enterprise Linux V4作業系統作為平台 的程式開發環境,此外PC的Linux上會安裝MontaVista Linux V4.0 System Tools,內含相關系統開發套件,包括了編譯器與平台的Linux kernel與file system的重製工具。由於我們使用x86架構的PC作為開發平台,因此不能 直接使用其GCC作為編譯器,而是使用可編譯出ARM端指令集的轉換編譯 器(Cross-compiler)來編譯程式。我們使用arm_v5t_le-gcc 作為轉換編譯器。

─27─

3.3.2 Code Composer Studio

Code Composer Studio (CCS)為 TI 提供的一套整合式開發環境的發展 軟體,其中提供了C 語言的編譯器、組合語言的組譯器與其他相關工具。

ARM 端程式可以在 Linux 環境下開發,但 DSP 端程式則是需要透過 CCS 開發會較為便利,使用CCS 可以快速簡單的中斷程式並觀察記憶體內部各 暫存器數值,以便於 DSP 程式開發除錯。使用 CCS 需搭配使用在硬體環 境章節已介紹的JTAG 仿真器使用。下圖 3-15 即為 CCS 的整合開發介面。

圖3-15 CCS 的整合開發介面 3.3.3 DSP/BIOS Link

DSP/BIOS Link[17]是一套TI提供用來處理雙核心系統平台內部的GPP (General Propose CPU )與DSP間溝通的軟體,在DM6446平台上的GPP即為 ARM處理器,DSP/BIOS Link這套IPC(Inter – Processor Communication)軟

─28─

體提供了一些通用API,幫助雙核心程式開發者避開一些底層較複雜的溝 通協定機制,可直接專注於程式應用面發展。我們使用的DSP/BIOS LINK 軟體版本為v1.30.06 。

圖3-16 DSP/BIOS LINK 軟體架構圖

圖3-16 為 DSP/BIOS LINK 的軟體架構圖,各方塊功能如下:

„ GPP 端 :

‹ OS ADAPTATION LAYER :

OS ADAPTATION LAYER 將 GPP OS 包在其中,使 OS 與其 他元件分離,只拉出幾個通用 API 跟其他元件溝通,其他元件都 得使用這些 API 而不能直接呼叫 OS,如此可以讓 DSP/BIOS LINK 軟體工作在不同 OS 下。

‹ LINK DRIVER :

LINK DRIVER 把低階的控制作業包在其中,負責控制著 DSP 與使用著已定義的低階控制協定在GPP 與 DSP 間做資料傳遞的工 作。

‹ PROCESSOR MANAGER :

PROCESSOR MANAGER 為 API 層,將 LINK DRIVER 的控 制拉出並轉換提供給使用者使用。

‹ DSP/BIOS LINK API :

雖說 DSP/BIOS LINK API 這層是使用者在 GPP 端的使用介 面,但大部分的API 轉換其實都在 PROCESSOR MANAGER 這層

─29─

處理掉了,DSP/BIOS LINK API 這層只對呼叫時的輸入參數作確 間的物理連接( physical connectivity),在 GPP 與 DSP 間做資 料傳遞。

‹ 使用要求-回應機制(issue-reclaim model)傳接資料。

„ MSGQ :

‹ 用來在 GPP 與 DSP 間交換少量資料,約為變數大小的短訊息。

‹ 訊息的送出與接收都透過 message queues。

‹ 允許單一發送端,但有多接收端。

„ POOL :

‹ 從共享記憶體(shared memory)中劃一塊記憶體池(memory pool),以提供 CHNL 與 MSGQ 在此區塊內宣告暫存器。

─30─

相關文件