第四章 實驗平台
4.3 軟體環境
4.3.1 Linux 作業系統
自從1991 年 Linux 由 Linux Torvalds 將第一版 Linux 公開在網路上後,這套 系統已經受到世界各地普遍的歡迎。現在的 Linux 已經支援相當多的處理器核 心,所以現在Linux 的應用相當的廣泛,由高階的伺服器、工作站,到常見的個 電腦中都有它的蹤跡,甚至是一些手持式裝置例如手機、PDA 等一些現代人常用 的嵌入式系統上都看得到Linux 的存在。
所謂的嵌入式系統指的就是為了提高產品的穩定性、可攜性,或者是降低產 品成本、增加特定功能等不同的目的,對一般的標準系統進行修改以符合特殊設 計上的需求。在硬體方面靠的主要就是被稱為系統單晶片(SOC - System On a Chip)的半導體整合技術,而嵌入式作業系統則是軟體方面的技術核心。Linux 的可靠、高效能、伸縮性、低成本,以及最重要的握有控制權等幾項特點,使得 Linux 在嵌入式作業系統上站在非常有利的位置。
爲了讓Linux 可以在 OMAP 5912 上執行,必須使用以下修正檔,讓 OMAP5912 的處理器與週邊可以順利使用。
ARM linux patch
Montavista OMAP Processor and kernel
DSP/BIOS Link
另外,針對本系統要求,也著手開發相關周邊,如USB wireless 以及 USB Camera,如此更可彰顯出 Linux 系統在開放源程式碼之下,提高了系統整合的優 勢,對於系統開發者更為方便。
4.3.2 ARM 處理器以及轉換編譯器
(a) gcc
gcc[28] 可以說是 Richard Stallman 所創立的 GNU 計畫中最重要的作品之 一,它提供了自由軟體世界高品質的編譯器 (compiler),實現了我們在自由軟體 平台上開發程式的夢想。如果沒有 GCC,恐怕今日我們也不會有這麼多形形色 色的自由軟體可用。
gcc 一個很大的特色是高度可移植性,目前已知有超過三十種硬體平台與作 業系統可以執行 gcc,其中硬體平台包括了: x86, arm,ia64, alpha, hppa, m68k, Power PC, mips, IBM rs6000, sparc/sparc64, .... 等,而作業系統則從 Microsoft 平 台 (DOS/Win32) 到 IBM OS/2 到各家的 UNIX 都有。此高度可移植性正是 gcc 廣為流傳散佈的主要原因。在許多商業版的 UNIX 系統中,如果沒有特別買其 專屬的編譯器的話 (其價格往往不便宜),人們通常就選擇安裝 gcc 來使用。而 且,儘管 gcc 是自由軟體計畫開發出來的,但其所編譯出來的程式品質並不輸給 商業版的編譯器,甚至在某些平台上所編譯出來程式有更好的執行效能。
(b) Cross-compiler
通常在嵌入式平台上不會有多餘的記憶體與儲存空間來直接編譯程式,所以 需要由其他機器產生嵌入式系統的執行檔,然後放到嵌入式系統上執行。
Cross-compiler 是要在發展平台上產生目的平台的程式碼,在這裡發展平台是 x86 架構的個人電腦,目的平台則是OMAP 5912 上的 ARM 處理器。
在開發平台上使用的是GCC 3.3.2 Cross compiler 工具組,這些軟體工具將放 在Linux 上執行。
4.3.3 數位訊號處理器
TMS320C5510 DSP 晶片為德州儀器公司的 DSP 處理器, 為目前工業界最省 電的 DSP 之ㄧ,相當適合應用在可攜式產品,晶片內部擁有一個程式匯流排 (program bus),三個資料讀取匯流排(data read bus)和兩個資料寫入匯流排(data write bus)增加運算的平行度,藉此達到高效能且省電的目的,並且可自動關閉未 使用的周邊,記憶體或核心工作單元來增加電池的壽命。
此DSP 擁有完整的發展平台及工具,例如 C-Compilier,使用者可用 C 語言 發展軟體,容易發展複雜的演算法,提供許多常用的函式庫,例:DSPLIB(包 含了FIR/IIR filters,FFT 等等),加速常用的運算,還有DSP/BIOS 工具,讓產品 能容易的擁有即時多工的功能,上述的這些工具使得此DSP 能快速的實現複雜的 演算法,也兼顧了程式碼執行的效率。
在週邊部分,已內建了多樣化的輸出入通道,包括主機埠界面(Host Port Interface,HPI)、外部記憶體界面(External Memory Interface,EMIF)、高速串聯 埠界面(Multichannel Buffered Serial Ports,McBSP)、即時資料交換(Real-Time Data Exchange,RTDX),充分提供與外部輸出入訊號的傳輸界面,表 3為TMS320C5510 一些基本的特性。
PARAMETER NAME TMS320C5510
Clock frequency (MHz) 200
Data/program Memory (words) 160k
DMA 6
External Memory Interface 32
MCBSP 3
IO Supply (Volts) 3.3
Core Supply (Volts) 1.6
表 3 TMS320C5510 特性表
4.3.4 程式組合開發軟體 (Code Composer Studio)
CCS 是一套整合式開發環境的發展軟體,它提供 C 語言的編譯器、組合語言 的組譯器與其他工具,使用者也可以快速簡單的在軟體開發時除錯。在一般情況 下它可以直接將DSP 程式下載並在 DSP 上執行程式,但是在搭配 DSP/BIOS Link 使用時無法直接將程式下載到DSP 中,但是在開發 DSP 程式時還是要搭配 CCS 來編譯出DSP 的執行檔,並藉由 DSP/BIOS Link 讓 Linux 應用程式可以控制 DSP 的工作。
在DSP 執行時可以藉由 Load symbol 的方式來對 DSP 程式除錯,但是必須 CCS 必須先啟動,讓 DSP 與 ARM 處理器由 Halt 的狀態改變成 Running 狀態,
讓作業系統先執行,然後將DSP 的程式藉由 DSP/BIOS Link 讀進 DSP 後,才去 Load symbol。下圖 29 是 CCS 的整合開發介面(IDE)。
圖 29 CCS 整合發展環境介面