國立中央大學資訊工程學系大學部專題報告EmbeddedApplication–MP3PlayeronDual-ProcessorPlatformOMAP1510指導教授:吳曉光老師學生:資工4A侯凱元資工4A黃致遠中華民國92年10月目錄第一章序論……………………………………………………………61-1研究動機…………………………………………………………..71-2專題目標…………………………………………………………..81-3工作流程…………………………………………………………..91-4開發環境與設備…………………………………………………10第二章德州儀器OMAP開發套件…………………………………102-1OMAP介紹………………………………………………………102-1.1OMAP是什麼?…….………………………………….…102-1.2DSP的優點……………………………………………....112-2OMAPArchitecture介紹………………………………………...122-2-1OMAP1510硬體架構………………………………….…122-2.2OMAP1510軟體架構……………………………………...122-2.3DSP/BIOSBridge簡述…………………………………...132-3TIInnovator套件--OMAP1510……………………………..142-2.1GeneralPurposeprocessor--ARM925T………………...142-2.2DSPprocessor--TMS320C55x…………………………152-2.3IDETool–CCS…………………………………………152-2.4Peripheral………………………………………………..16第三章在OMAP1510上建構EmbeddedLinuxSystem…………….173-1嵌入式工具………………………………………………………173-1.1嵌入式程式開發與一般程式開發之不同………….….173-1.2CrossCompiling的GNU工具程式……………………183-1.3建立ARM-LinuxCross-Compiling工具程式………...193-1.4SerialCommunicationProgram………………………...203-2Portingkernel………………………………………………….…213-2.1SetupCCS………………………………………….…..213-2.2編譯及上傳Loader…………………………………..…233-2.3編譯及上傳Kernel…………………………………..…243-3建構RootFileSystem………………………………………..…..263-3.1FlashROM……………………………………………...263-3.2NFSmounting…………………………………………..273-3.3支援NFSMounting的kernel…………………………..273-3.4提供NFSMountingService……………………………293-3.5DHCPServer……………………………………………313-3.6Linuxroot檔案系統……………………………….…..323-4啟動及測試Innovator音效裝置…………………………..…….333-5建構支援DSPprocessor的環境…………………………...……343-5.1Solution--DSPGateway簡介……………………..…343-5.2DSPGateway運作架構…………………………..…..353-6架設DSPGateway………………………………………….…363-6.1重編kernel……………………………………………...363-6.2DEVFSdriver…………………………………….……..363-6.3編譯DSPtool和API……………………………..…….373-6.4測試……………………………………………….…….37第四章MP3Player……………………………………………….…..384-1MP3介紹………………………………………………….…….384-2MP3壓縮原理……………………………………………….….394-3LinuxMP3player–splay………………………………….…….414.3-1splay介紹…………………………………………….…..414.3-2splay編譯………………………………………….…….414.3-3splay的使用說明………………………………….……41第五章程式改寫………………………………………………...…...425-1程式評估與改寫………………………………………………...…425-1.1Inter-ProcessorCommunicationScheme…………….....425-1.2ARMpartprogramming……………………………..…425-1.3DSPpartprogramming………………………………....425-2程式碼………………………………………………………..……435-3雙處理器程式開發注意事項…………………………………...…47第六章效能評估與討論……………………………………………486-1速度……………………………………………………………...486-2CPU負載………………………………………………………..496-3討論……………………………………………………………...496-3.1分工處理的經濟效益………………………………...496-3.2音質v.s浮點與定點運算………………………..…..496-3.3DSPGateway架構的限制………………………….…506-3.4減少IO溝通……………….………………………….506-3.5網路掛載FileSystem的Delay…………………..……51第七章結論心得………………………….………………………….52第一章序論1-1研究動機近年來PDA、手機等無線裝置上發展的趨勢、對複雜的多媒體應用發展越來越多,最新的2.5G和3G手機就是一個很好的例子,它們整合了MP3音訊和MPEG4視訊等多媒體功能。也因此在2001年,德州儀器公司推出開放式多媒體應用平台(OpenMultimediaApplicationPlatform;簡稱OMAP)之設計。OMAP是一套先進的架構;它最大的特色是整合了一顆ARMRISC處理器、一顆低功率消耗的高效能TMS320C55x數位信號處理器(DSP)。把運算工作平均分配給RISC以及DSP處理器,使系統發揮最大的運算能,而不會浪費電池的電力。無疑的,這個新架構OMAP的推出,在多媒體功能等傳統處理器不易實現的應用開發上,有很大的潛力且值得嘗試。我們可以發現到,目前網路上有很多可以跑在RISC處理器的應用程式可下載,但是卻沒有RISC與DSP整合的程式---我們在此先稱之DSPenhancedapplications。畢竟,OMAP這個架構算近兩年才推出,發展的時間不算長,有很多值得嘗試的地方,因此我們才會想在德州儀器的OMAP1510硬體平台上發展嵌入式系統應用,並嘗試開發DSPenhancedapplications。1-2專題目標我們手邊有的硬體是:德州儀器的OMAP1510硬體平台,它最大的特色是「雙處理器」,它整合一顆Generalpurpose處理器ARM與一顆DSP處理器。我們的專題就是針對這硬體平台,來建構嵌入式系統環境,並期望能嘗試開發運用到兩顆處理器的應用程式。我們這次專題的目標為:移植(Porting)Linux到新的硬體平台OMAP1510建構完整的嵌入式Linux環境使ARM與DSP兩個處理器能夠順利溝通。撰寫雙處理器間溝通的程式。嘗試將application—LinuxMP3Player,改寫成DSP-enhancedapplication,使兩個處理器分工運算執行。1-3工作流程移植OMAPLinuxKernel熟悉DSP程式開發工具CCS學習寫DSP程式(使用C語言)建立嵌入式系統工具閱讀MP3ISO標準文件認識OMAPArchitecture熟悉我們的硬體OMAPInnovator建立並掛載Root檔案系統使用、評估CCS提供的DSP函式庫1-4開發環境與設備硬體:(1)TIOMAP1510Innovator(2)ACEUSBemulator(3)2台PC軟體:(1)Linux與Windows2000(2)CCS2.0(CodeComposerStudio),在Windows端(3)嵌入式系統工具組(如:crosscompiler等),在Linux端建立嵌入式系統環境架設ARM與DSP溝通環境改寫MP3player的ARM端程式寫MP3player的DSP端程式測試與debugTraceMP3playersplay程式碼練習雙處理器間的溝通程式效能評估分析DSPenhancedMP3player瞭解MP3decode,trace解碼部分的程式碼訂好Inter-processorcommunicationscheme啟動OMAP音效並測試決定邀由DSP分擔MP3解碼的程式部分第二章德州儀器OMAP開發套件2-1OMAP介紹為何OMAP能夠因應時代的需求,以下我們將簡單說明OMAP的優勢,與傳統的單核心的差異。2-1.1OMAP是什麼?OMAP是一套先進的架構,為無線市場提供了一套系統解決方案,OMAP可以在一顆晶片上,將許多軟硬體組件完美整合在一起,包括:一套軟體基礎架構、一顆ARM™RISC處理器、一顆低功率消耗的高效能TMS320C55x數位信號處理器(DSP)以及一套分享式的記憶體架構。透過一組標準的應用程式界面,OMAP軟體架構也可支援先進的作業系統和應用軟體;此外,TI還發展出一套獨特的DSP/BIOS™Bridge架構(2.2.3會介紹),讓設計人員利用最好的方式,把運算工作平均分配給RISC以及DSP處理器,使系統發揮最大的運算效能,而不會浪費電池的電力。OMAP是一種開放式的架構,並提供了一套標準界面,因此可幫助協力廠商發展新的應用軟體或是增加新的功能。OMAP架構可移植到任何一種無線裝置作業系統,而它的應用軟體也相容於絕大多數的作業系統。OMAP架構擁有一種獨特能力,可以在無線網路家電上,同時提供極高的工作效能以及非常省電的特性,因此,OMAP架構已逐漸成為產業的實質標準。2-1.2DSP的優點為了支援多媒體內容和廣告、視訊會議、語音辨識以及其它的應用,許多無線家電已開始提供全動畫視訊的播放功能,使DSP技術更顯得重要。DSP確實可提供更好的電力消耗/運算效能特性,因為在基本上,視訊與音訊的播放都是一種信號處理工作,而DSP的主要設計目標,就是為了支援信號處理運算。相較於RISC處理器,DSP元件在每個時脈週期內只會消耗更少的電力。而且DSP元件只要用更少的指令,就可完成一個重複大量數學運算的演算法,並可以在一個時脈週期內執行更多的指令。只憑一顆RISC處理器,那麼第二個應用(例如視訊)的執行就會受到影響,由於受限於RISCCPU本身信號處理能力的限制,RISC處理器必須中斷目前的工作,以便處理智慧型電話的要求。相較之下,OMAP架構卻能讓DSP與RISC處理器並行工作,讓OEM在使用DSP功能的同時,讓RISC執行擅長的命令與控制功能。2-2OMAP1510Architecture介紹我們所使用的OMAP型號為OMAP1510,它包含是一個雙處理器的架構,其中一顆是常用在當行動裝置上的RISCProcessor--TI925TARM9TDMICore,另一顆是用來做訊號處理的DSP--TMS320C55xDSPCore。2-2-1OMAP1510硬體架構OMAP1510平台由一個微處理器子系統(ARM),一個DSP子系統,一個記