a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 消費電子 > 設計應用 > Linux下Cold Fire 片內SRAM的應用程序優化設計

Linux下Cold Fire 片內SRAM的應用程序優化設計

作者: 時間:2009-12-14 來源:網絡 收藏


本文以MP3解碼器為例,介紹了一種在嵌入式系統下配置使用處理器的應用方案,有效提高了代碼的解碼效率,降低了執行功耗。該方案不論在性能還是成本上都得到了很大改善。

本文引用地址:http://www.j9360.com/article/166834.htm


1 硬件平臺和軟件架構
硬件平臺采用Freescale公司的MCF5329EVB開發板。終端硬件包括5329處理器、32 KB的、1 800×600矩陣LCD顯示屏、9×3陣列矩陣鍵盤、I2S解碼芯片、64 MB的SDRAM、10/100M以太網接口,以及3個UART接口。軟件構架如圖1所示,主要包括MP3解碼器、驅動、鍵盤驅動和用戶圖形界面(GUI)等模塊。采用μClinux作為操作系統。μClinux針對嵌入式應用的特點作了較大的簡化和修改,支持多種文件系統和多任務處理,而且具有相對完整的網絡體系協議,因而特別適合嵌入式應用。

2 MP3解碼算法分析
本文選用MP3解碼程序作為方案驗證代碼。MPEG-1/2 Audio Layer 3是專門針對音樂和語音數據的有損壓縮算法。該算法的解碼過程比較復雜,主要包括反向修正離散余弦變換(IMDCT)、逆量化、Huffman解碼、子帶綜合等功能模塊。讀入一段MP3數據后,首先要檢測數據流中的同步字,以確定一幀數據的開始;然后提取幀頭信息,特別是解碼所需要的一些參數,同時分離出幀邊信息和主數據;之后對邊信息數據解碼得到Huffman解碼信息和逆量化信息,再經過重新排序、立體聲處理、反混疊處理、IMDCT變換和子帶綜合濾波器組后,就可以得到PCM輸出。
MP3解碼流程如圖2所示。大致分為兩個階段,即數據流控制階段和數值計算階段。數據流控制階段包括幀同步、邊帶信息解碼和Huffman解壓縮等過程。其中,Huffman解壓縮是對編碼數據進行操作,其他過程則是對幀控制部分進行操作。

3 基于方案
3.1 方案分析
SRAM指令執行速度要比DRAM快得多。-5329處理器內部集成了32 KB的SRAM,本方案將充分利用處理器片內SRAM來對解碼程序進行。首先對源代碼中的主要解碼函數進行分析,如表1所列。可以看到驅動寫函數(write)、子帶綜合(MPEGSUB_synthesis)、反向修正離散余弦變換(imdct_I)和快速離散余弦變換(fast_dct)對處理器資源消耗較大,幾乎占用80%的解碼時間。根據分析結果,分別把驅動程序和上述解碼函數放進SRAM中執行,以提高流媒體解碼器的執行速度,降低其對處理器資源的消耗。

3.2 配置音頻驅動程序到片內SRAM中執行
操作系統把內核和運行在其上的分成兩個管理層次,也就是常說的“內核態”和“用戶態”。內核態具有較高的應用權限,可以控制處理器內存的映射和分配方式。音頻驅動程序是系統內核的重要組成部分,工作在內核態,實現不斷從用戶空間解碼文件中讀取音頻信息,以及驅動音頻芯片播放聲音等相關功能。通過修改μClinux-2.6內核代碼,可以將音頻驅動程序配置到片內SRAM中執行,主要通過修改系統鏈接文件來實現。系統鏈接文件用于將輸入文件根據一定的規則合并成一個輸出文件,并對符號與地址進行綁定。

linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

上一頁 1 2 3 下一頁

評論


相關推薦

技術專區

關閉