一種基于EFSL的嵌入式MP3播放器設計方法
播放器采用四層結構來實現其功能。軟件層次結構如圖2所示。采用模塊化的主要目的是方便實現模塊移植性。
圖2 播放軟件層次結構
2.1 開發環境搭建
開發環境主要是建立在The Rowley Cross StudioIDE基礎上進行EFSL 編譯。CrossWorks for ARM1.6 使用GCC 4.1 編譯器。安裝CrossWorks forARM 1.6軟件并導入MP3Player.hzp項目文件。項目文件中已經包含了主板中的文件和設備配置文件。
Rowley Cross Studio IDE自動加載所有文件后,將顯示所有主要文件夾:Audio Render Driver文件夾(包含了DAC音頻處理相關代碼)、Demo Player文件夾(主要模塊,可根據需求對其進行配置和修改)、EFSL文件夾(保存了EFSL嵌入式文件系統,通過此文件系統可以用播放器軟件對MMC存儲卡中的MP3文件進行讀寫操作)、EFSL Driver文件夾(保存存儲設備基本讀寫操作驅動程序)、Libmad文件夾(主要編碼文件,可根據需求改變相關代碼以滿足Libmad配置要求)。
2.2 文件系統配置與編譯功能模塊
文件系統配置與編譯功能模塊進行軟件配置和文件系統編譯。
2.2.1 設置項目文件路徑
通過命令行工具,找到項目文件和包含文件。其路徑為:
在ARM Flash Release和ARM Flash調試選項窗口的預處理選項卡配置文件中添加MP3Player項目。
2.2.2 配置編譯器
由于定點數字計算量要求非常高,而且擴展的數字指令集只能在32位上運行,所以代碼編譯也需要32位環境下進行編譯,同時需要使用到USB存儲器RAM 及其堆棧分配[5].USB RAM 一般情況下不運行在LPC214X環境下,但Rowley Cross Studio IDE已經提供了此硬件設備的初始化。Philips_LPC2148_startup.s創建并放置在MP3播放器項目目錄,以支持USB RAM設備,還需要在代碼中加入堆棧分配代碼到USB DMARAM 的內存部分。
2.2.3 Libmad文件配置
Libmad可以在不同的平臺上運行一個庫,并為ARM7提供更好的優化。其編譯器同樣需要設置系統運行環境變量。

評論