Linux聲卡驅動移植和測試
一、分析驅動程序,根據開發板修改代碼
代碼太長,就不貼了,幾個注意點:
1、 查看開發板原理圖和S3C2410的datasheet,UDA1341的L3MODE、L3DATA、L3CLOCK分別與S3C2410的GPB2、GPB3、GPB4相連,IISLRCK=GPE0, IISSCLK=GPE1, CDCLK=GPE2,IISSDI=GPE3, IISSDO=GPE4,部分代碼如下:
2、 兩個重要結構體:audio_buf_t和audio_stream_t,其中audio_stream_t 為音頻流數據組成了一個環形緩沖區;
3、 file_operations結構體,open()、write()、read()、ioctl()、release()等函數的底層實現;
4、 DMA的原理;
5、 驅動加載和卸載等;
Linux驅動的開發與移值——分析Tiny210的聲卡驅動模塊 http://www.linuxidc.com/Linux/2014-02/96929.htm
嵌入式Linux下復位聲卡驅動 http://www.linuxidc.com/Linux/2011-08/40342.htm
S3C2440 UDA1341聲卡驅動分析(oos) http://www.linuxidc.com/Linux/2011-08/41680.htm
嵌入式Linux下復位聲卡驅動 http://www.linuxidc.com/Linux/2011-08/40342.htm
二、向內核中添加聲卡驅動
1、 配置內核中的聲卡選項;
注意:UDA1341的驅動程序s3c2410-oss.c在linux/sound/oss/目錄下(內核版本:Linux-2.6.8.1)。
在內核樹目錄下輸入make menuconfig,會跳出內核配置界面:
然後按鍵盤的向下導航鍵,下拉至Sound選項:
按回車,進入Sound選項界面:
選中“Open Sound System”選項,回車進入OSS選項界面:
分別選中“Open Sound System(DEPRECATED)”和“S3C2410 audio support”兩項,按空格,直到選項前面<>內變成*,然後按Tab鍵退出,保存配置信息:
ps:*表示將驅動程序編譯進內核,空表示不編譯驅動程序,M表示將驅動程序編譯成模塊。
2、 編譯內核,生成內核鏡像zImage;
在內核樹目錄下,輸入命令make zImage,編譯成功後會在linux/arch/arm/boot/目錄下生成zImage文件。
3、 打開Samba服務器,將內核鏡像zImage共享到windows平台下,再通過DNW軟件將zImage下載到開發板上;
經過以上步驟,就成功地將聲卡驅動程序添加進內核。
更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2014-06/103122p2.htm