第三章 系統軟硬體設計與實現
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 在此區塊內宣告暫存器。