【正文】
a. 生成代碼庫的目標(biāo)程序 gcc c o b. 創(chuàng)建靜態(tài)庫 ar crv c. 編譯生成最終的可執(zhí)行程序 gcc L. lcalc I. L. 通知gcc在當(dāng)前目錄下找?guī)? lcalc 通知gcc庫名叫calc I. 通知gcc頭文件在當(dāng)前目錄下 4. Linux下的系統(tǒng)開發(fā)(系統(tǒng)功能調(diào)用) A. 項目項目的組織架構(gòu)Project Name: Music PlayerVersion: bin includelibsrcdocbak (調(diào)用函數(shù))程序員利用系統(tǒng)提供的 API訪問系統(tǒng)的功能,從而使用操作系統(tǒng)管理的各種資源。 播放聲音文件用到的系統(tǒng)調(diào)用函數(shù)如下:open() 打開聲卡 打開文件ioctl() 用于設(shè)置系統(tǒng)設(shè)備參數(shù),改變設(shè)備運行狀態(tài) , 是與系統(tǒng)設(shè)備進(jìn)行通信的最重要的函數(shù)read() 從設(shè)備或文件中讀取數(shù)據(jù) write() 往設(shè)備或文件中寫入數(shù)據(jù) C. MP3 原理Mp3的一些重要參數(shù):聲道、采樣率、位速聲音是模擬量,計算機(jī)只能保存離散量,所以聲音在計算機(jī)中保存需要壓縮,會涉及到采樣的概念。 一個聲道 16bit 立體聲就是雙聲道 128kbps kilo bits / s char audio_buffer[4096] 緩存 D. 聲音播放的基本工作流程 a. open()打開聲卡 b. ioctl()設(shè)置好聲卡的讀取格式 包括聲道、比特率、播放速率 c. open()打開聲音文件 d. 循環(huán)讀取read()數(shù)據(jù)到緩存中 再寫入聲卡設(shè)備,驅(qū)動聲卡發(fā)聲 E. 項目實施: 分小組進(jìn)行開發(fā),開發(fā)良好的用戶交 互界面,完成《ARM平臺下的Linux系 統(tǒng)音樂播放程序》。 5. ARM移植與開發(fā) A. ARM平臺與x86平臺采用不同的指令系統(tǒng),故x86下編譯的音樂播放器無法在ARM平臺上直接運行,需要進(jìn)行交叉編譯。交叉編譯采用 armlinuxgcc編譯器 B. armlinuxgcc的安裝步驟 : ():首先以root用戶登入解壓命令tar xvzf C / 注意以上命令必須要有C而且是大寫的后邊有個空格也要注意 root用戶設(shè)置然后配置下編譯環(huán)境路徑gedit /root/.bashrc等一會出來文本編輯器后在文件最后(最后一行)加上 下面代碼export PATH=/usr/local/arm/:$PATH此時你可以在root用戶下驗證 armlinuxgcc v成功(注意必須得重新登錄下)log out這個也是對profile進(jìn)行配置非root用戶設(shè)置① 、 輸入命令:vi ~/.bashrc,在文件末尾加入export PATH=/usr/local/arm/:$PATH② 、輸入命令:gedit /etc/profile在文件的末尾加上PATH=/usr/local/arm/:$PATH保存對profile的修改后,執(zhí)行source /etc/profile就OK了,好了log out進(jìn)入后驗證armlinuxgcc v可以了 C . 使用 armlinuxgcc 編譯音樂播放器,并移植到 2440 arm開發(fā)板上播放音樂 Armlinuxgcc o arm_mp3 直接拷貝到 arm開發(fā)板上,利用shell環(huán)境運行即可6. 項目代碼提交要求 目錄命名方式: 第X組課程設(shè)計(XXX、XXX、XXX) XXX為姓名 該目錄下為 bak bin doc include lib src 29 / 29