日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

linux2.6.32.2 mini2440平臺移植

 XeonGate 2016-02-01

http://blog.csdn.net/hanxuefan/article/details/7370074


1.6.1  在初始化文件中加入 UDA1341 設(shè)備結(jié)構(gòu)

 

Linux-2.6.32.2已經(jīng)完美的支持UDA1341音頻芯片的驅(qū)動,我們只要在arch/arm/mach-s3c2440/mach-mini2440.c 文件中注冊 UDA1341 平臺設(shè)備的控制端口就可以了,打開 mach-mini2440.c,添加如下內(nèi)容:

//在文件首部添加頭文件

#include <sound/s3c24xx_uda134x.h>

 

// LCD 平臺設(shè)備后面添加 UDA1341 設(shè)備結(jié)構(gòu)

static struct s3c24xx_uda134x_platform_data s3c24xx_uda134x_data = {

.l3_clk = S3C2410_GPB(4),

.l3_data = S3C2410_GPB(3),

.l3_mode = S3C2410_GPB(2),

.model = UDA134X_UDA1341,

};

 

static struct platform_device s3c24xx_uda134x = {

.name = "s3c24xx_uda134x",

.dev = {

.platform_data        = &s3c24xx_uda134x_data,

}

};

 

//注冊 UDA1341 設(shè)備平臺到內(nèi)核中

//這些注冊的結(jié)構(gòu)在哪定義的??

static struct platform_device *mini2440_devices[] __initdata = {

&s3c_device_usb,

&s3c_device_rtc,

&s3c_device_lcd,

&s3c_device_wdt,

&s3c_device_i2c0,

&s3c_device_iis,

&mini2440_device_eth,

&s3c24xx_uda134x,

&s3c_device_nand,

};

這樣,我們基本就添加好了  UDA1341  音頻設(shè)備的驅(qū)動,接下來我們在內(nèi)核中配置該驅(qū)動。


注意:其實(shí)在做完以上工作時(shí)還是不能放MP3,沒有DSP節(jié)點(diǎn),我后面根據(jù)

http://www./read.php?tid-1481-fpage-0-toread--page-2.html

引用

No device for DAI UDA134X 
No device for DAI s3c24xx-i2s


這是ALSA的警告信息,不影響uda1341驅(qū)動的。

引用

S3C24XX_UDA134X SoC Audio driver 
UDA134X SoC Audio Codec 
asoc: UDA134X <-> s3c24xx-i2s mapping ok 
ALSA device list: 
#0: S3C24XX_UDA134X (UDA134X)


這說明UDA1341 for S3C24xx的ALSA驅(qū)動已經(jīng)成功加載了。需要了解的是,ALSA本身并不會生成/dev/dsp節(jié)點(diǎn),那是OSS驅(qū)動的東西。
要在你的系統(tǒng)里使用/dev/dsp節(jié)點(diǎn),你必須確保選中了ALSA的“OSS 模擬”選項(xiàng)。它可以通過在內(nèi)核配置中的
"Sound card support" ---> "Advanced Linux Sound Architecture" --> "OSS PCM (digital audio) API"
配置。

 

1.6.2  在內(nèi)核中配置 UDA1341 設(shè)備驅(qū)動

 

在內(nèi)核源代碼目錄輸入:make  menuconfig 開始配置內(nèi)核,依次選擇如下子菜單,找到音頻驅(qū)動配置菜單:

Device Drivers    --->

<*> Sound card support    --->

按空格選中"[*]       Preclaim OSS device numbers     ",

再選中"<*>       Advanced

Linux Sound Architecture    --->",并回車進(jìn)入該子菜單

出現(xiàn)音頻驅(qū)動體系結(jié)構(gòu)菜單,在這里,我們選擇 OSS 接口相關(guān)的配置選項(xiàng),需

要注意的是,這里的 OSS 接口其實(shí)是基于 ALSA 接口創(chuàng)建的,因?yàn)樾碌膬?nèi)核中現(xiàn)在都已經(jīng)改用 ALSA 設(shè)計(jì),這里是為了和以前的軟件兼容才這樣做的,

再選擇"<*> ALSA for SoC audio support    --->"子菜單并回車進(jìn)入,在這里我們可以看到專門為  S3C24xx 系列芯片(包括  S3C2410/2440/2443 )而做的

配置選項(xiàng),打開 linux-2.6.32.2/sound/soc/s3c24xx/Makefile 文件就可以看到,

我們的開發(fā)板使用的是 UDA1341 音頻芯片,在這里當(dāng)然要選擇

"-*- SoC I2S Audio support UDA134X wired to a S3C24XX"了。

退出保存以上各項(xiàng)配置。

 

1.6.3 mp3 放音測試

在內(nèi)核源代碼目錄執(zhí)行:make zImage,把生成的內(nèi)核映像文件燒寫到開發(fā)板,依然使用友善之臂提供的文件系統(tǒng) root_qtopia,系統(tǒng)啟動后,使用系統(tǒng)自帶的madplay 軟件播放一首mp3 進(jìn)行測試,把音箱或者耳機(jī)插入開發(fā)板的綠色音頻輸出插座,就可以聽到音樂了,

 

1.6.4  修正驅(qū)動中的錄音代碼

 

雖然播放 mp3 很正常,但當(dāng)使用系統(tǒng)自帶的錄音程序進(jìn)行錄音時(shí),我們發(fā)現(xiàn)無法聽到任何結(jié)果,這是因?yàn)殚_發(fā)板的錄音電路和 SMDK2440 目標(biāo)板的電路是有所區(qū)別的。

mini2440 開發(fā)板使用的錄音通道為 VIN2,而 SMDK2440 使用的則是 VIN1,打開 linux-2.6.32.2/sound/soc/codecs/ uda134x.c,在大概 201 行添加如下紅色代碼:

uda134x->slave_substream = substream;

} else

uda134x->master_substream = substream;

 

uda134x_write(codec, 2, 2|(5U<<2)); //把錄音通道改為 VIN2

return 0;

}

 

static void uda134x_shutdown(struct snd_pcm_substream *substream,

struct snd_soc_dai *dai)

{

這樣,我們就完成了錄音驅(qū)動的修正,在內(nèi)核源代碼目錄下執(zhí)行:make zImage,重新編譯內(nèi)核并燒寫到開發(fā)板中。

 

1.6.5  錄音測試

 

打開 Qtopia 中的"錄音機(jī)"測試程序,根據(jù)提示,點(diǎn)"REC"按鈕開始錄音,這時(shí)對著板上的麥克風(fēng)說話,可以看到錄音的波形,點(diǎn)"STOP"按鈕結(jié)束錄音,此時(shí)可以點(diǎn)"PLAY"按鈕播放剛才的錄音,同時(shí)錄制的音頻文件將以"WAV"格式

自動存儲到"文檔"中:說明:Qtopia2.2.0 系統(tǒng)自帶了一個(gè)錄音程序,中文名為"語音便簽",但它不能正常使用板上的麥克風(fēng)進(jìn)行錄制。

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多