999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

嵌入式Linux下基于ARM9的媒體播放的設計

2010-03-26 07:32:08王正萬
電子設計工程 2010年12期
關鍵詞:嵌入式程序系統

王正萬

(1.貴州大學貴州貴陽550000;2.貴州電子信息職業技術學院貴州凱里556000)

現在大多數嵌入式設備都要求實現音視頻的播放功能。ARM9+Linux在嵌入式系統中應用廣泛,因此,這里提出一種嵌入式Linux下基于ARM9的多媒體播放系統。

1 播放器系統平臺

播放器的嵌入式Linux系統的層次結構如圖1所示。硬件上電后,CPU的程序指針首先指向一個特定的存儲器地址,該地址一般存放Bootloader,Bootloader在CPU和內存初始化后,把Linux內核從ROM設備中解壓到內存,然后程序指針跳轉到內核在內存的起始位,由Linux內核繼續完成剩下的系統引導[1]。內核在重新初始化系統后,就加載根文件系統,運行用戶應用程序。圖2為開發系統硬件設計框圖。

圖1 開發系統層次結構Fig.1 Block diagram of development system hierarchy

圖2 系統硬件結構框圖Fig.2 Structure diagram of system hardware design

系統硬件平臺的核心處理器為S3C2410X,微處理器是一款由Samsung公司為手持設備設計的低功耗、高度集成的基于ARM7TDMI核的微處理器。為了降低系統總成本和減少外圍器件,這款芯片中還集成有:16 KB指令Cache、16 KB數據Cache、MMU、外部存儲器控制器、LCD控制器(STN和TFT)、NAND Flash控制器、4個DMA通道、3通道UART、1個I2C總線控制器、1個I2S總線控制器,以及4通道PWM定時器和1個內部定時器、通用I/O口、實時時鐘、8通道10位ADC和觸摸屏接口、USB主、USB從、SD/MMC卡接口等。該處理器廣泛應用于PDA、移動通信、路由器和工業控制等領域[2]。

軟件系統設計必須與硬件平臺緊密結合。S3C2410采用NAND Flash作為整個系統的程序存儲區域,在系統啟動時通過片上ROM的Bootloader程序,從NAND Flash加載并執行外部引導程序來實現整個系統的啟動步驟,整個軟件系統采取圖3所示的設計結構[3]。

2 madplay MP3播放器的移植

2.1 系統部分代碼

madplay主程序頭文件信息數據結構如下:

struct option const options[]={

{"adjust-volume",required_argument,0,’A’},

{"amplify",required_argument,0,’a’},

{"ancillary-output",required_argument,0,-’a’},

{"attenuate",required_argument,0,’a’},

{"bit-depth",required_argument,0,’b’},

{"display-time",required_argument,0,-’t’},

{"downsample",no_argument,0,-’d’},

{"fade-in",optional_argument,0,-’i’},

{"help",no_argument,0,’h’},

{"ignore-crc",no_argument,0,’i’},

{"left",no_argument,0,’1’},

{"license",no_argument,0,-’l’},

{"mono",no_argument,0,’m’},

{"no-dither",no_argument,0,’d’},

{"output",required_argument,0,’o’},

{"pre-amp",required_argument,0,’a’},

{"quiet",no_argument,0,’q’},

{"repeat",optional_argument,0,’r’},

{"replay-gain",optional_argument,0,’G’},

{"right",no_argument,0,’2’},

{"sample-rate",required_argument,0,’R’},

{"show-tags-only",no_argument,0,’T’},

{"shuffle",no_argument,0,’z’},

{"start",required_argument,0,’s’},

{"stereo",no_argument,0,’S’},

{"time",required_argument,0,’t’},

{"verbose",no_argument,0,’v’},

{"version",no_argument,0,’V’},

{"very-quiet",no_argument,0,’Q’},

}

2.2 安裝及編譯

本系統需要madplay源代碼以及libid3tag庫和libmad庫,這里采用madplay-0.15.1b.tar.gz、libid3tag-0.15.1b.tar.gz和libmad-0.15.1b.tar.gz,另外libid3tag庫編譯時需要zlib庫。將文件拷貝到/home/cvtech/jx2410/examples。其安裝后的目錄為:

[root@localhost root]#cd/home/cvtech/jx2410/examples

[root@localhost examples]#tar zxvf madplay.tar.gz

[root@localhost examples]#cd madplay

[root@localhost madplay]#ls-l

drwxr-xr-x4 rootroot 40961月25 11:10 install

drwxrwxrwx510001000 40961月25 12:06 libid3tag-0.15.1b

drwxrwxrwx5 10001000 40961月25 12:06 libmad-0.15.1b

drwxr-xr-x4 rootroot 40961月25 10:25 libz

drwxrwxrwx8 10001000 40961月25 12:06 madplay-0.15.1b

-rwxrwxrwx1 rootroot 12281月25 11:50 mkall

drwxr-xr-x7rootroot 40961月2511:35zlib-1.1.4

其中,install目錄是libid3tag和libmad庫安裝后的安裝目錄,madplay編譯時必須正確指定該目錄下的include和lib子目錄為其include搜索目錄和庫文件搜索目錄;libid3tag-0.15.1b為libid3tag庫的源代碼目錄[4];libmad-0.15.1b為libmad庫的源代碼目錄;libz為libz庫安裝目錄,libid3tag庫編譯時使用;madplay-0.15.1b為madplay源程序目錄;mkall為編譯腳本。

在該目錄下直接執行以下語句:[root@localhost madplay]#./mkall

該腳本將編譯libid3tag庫、libmad庫以及madplay。編譯成功后在madplay-0.15.1b目錄下生成madplay文件即為MP3播放器程序。

編譯libid3tag庫:

cd libid3tag-0.15.1b

make distclean

CC=/usr/local/arm/2.95.3/bin/arm-linux-gcc./configure--host=arm-linux--

prefix=/home/cvtech/jx2410/examples/madplay/installCPPFLAGS=-I

/

home/cvtech/jx2410/examples/madplay/libz/include LDFLAGS=-

L/home/cvtech/jx2410/examples/madplay/libz/lib make

make install

編譯libmad庫:

cd../libmad-0.15.1b

make distclean

CC=/usr/local/arm/2.95.3/bin/arm-linux-gcc./configure--host=arm-linux--

prefix=/home/cvtech/jx2410/examples/madplay/install make

make install

編譯madplay:

cd../madplay-0.15.1b

make distclean

CC=/usr/local/arm/2.95.3/bin/arm-linux-gcc./configure--host=arm-linux--enable-static CPPFLAGS=-I/home/cvtech/jx2410/examples/madplay/install/includeLDFLAGS=-L/home/cvtech/jx2410/examples/madplay/install/lib/make

/usr/local/arm/2.95.3/bin/arm-linux-gcc-static-Wall-g-O2-o madplay madplay.o getopt.o getopt1.o version.o resample.o filter.o tag.o crc.o player.o audio.o audio_aiff.o audio_cdda.o audio_hex.o audio_null.o audio_raw.o audio_snd.o audio_wave.o audio_oss.o-L/home/cvtech/jx2410/examples/madplay/install/lib/home/cvtech/jx2410/examples/madplay/install/lib/libmad.a/home/cvtech/jx2410/examples/madplay/install/lib/libid3tag.a-L/home/cvtech/jx2410/examples/madplay/libz/lib-lz-lm cd..

編譯成功后將在madplay目錄下生成mplayer文件,該文件為mplayer媒體播放程序:

[root@localhost madplay-0.15.1b]#cp madplay/tftpboot

下載運行。啟動ARM9+Linux平臺,用U盤中的MP3音頻文件zgl.mp3,系統使用該文件進行測試:

#mount 192.168.1.180:/tftpboot/mnt/nfs

#mount/dev/sda1/mnt/udisk

#cd/mnt/nfs

#./madplay/mnt/cramfs/mp3/zgl.mp3

將耳機插入SPK座,如果正常的話將聽到歌聲。

3 mplayer媒體播放器的移植

mplayer只支持16 bpp以上圖形顯示,而不支持8 bpp圖形顯示,因此,當mplayer程序運行在LCD配置為STN的教學系統時,只能播放聲音,不能顯示圖形,而在LCD配置為TFT的教學系統時,既可以播放聲音,又能顯示圖形[5]。

以下為音視頻同步代碼

static float default_max_pts_correction=-1;//0.01f;

staticfloatmax_pts_correction=0;//default_max_pts_correction;

static float c_total=0;

float audio_delay=0;

static int softsleep=0;

float force_fps=0;

static int force_srate=0;

static int audio_output_format=0;

int frame_dropping=0;

static int play_n_frames=-1;

static int play_n_frames_mf=-1;安裝及編譯結果如下:

[root@localhost root]#cd/home/cvtech/jx2410/examples

[root@localhost examples]#tar zxvf mplayer.tar.gz

[root@localhost examples]#cd MPlayer-0.93

在MPlayer-0.93目錄下有一個腳本文件:mkall,這個文件為編譯腳本。在該目錄下直接執行:[root@localhost MPlayer-0.93]#./mkall

該腳本將配置并編譯mplayer,下面是該腳本所進行的配置和編譯命令:

./configure--cc=/usr/local/arm/2.95.3/bin/arm-linux-gcc--target=arm-linux--with-extralibdir=/usr/local/arm/2.95.3/armlinux/lib/-with-extraincdir=/usr/local/arm/2.95.3/arm-linux/include/--disable-sdl--enable-static--disable-dvdnav--disable-tv--disable-gui--

disable-mpdvdkit--enable-linux-devfs make

編譯成功后將在MPlayer-0.93目錄下生成mplayer文件,該文件為mplayer媒體播放程序。

[root@localhost MPlayer-0.93]#cp mplayer/tftpboot

下載運行。啟動ARM9+Linux平臺,用U盤中的mpeg視頻測試[6]。

#mount 192.168.1.180:/tftpboot/mnt/nfs

#mount/dev/sda1/mnt/udisk

#cd/mnt/nfs

#./mplayer-vo fbdev/mnt/udisk/zbs.mpeg

將耳機插入SPK座,觀察LCD顯示器,測試系統是否有音視頻輸出。

4 結束語

本系統設計具有很好的移植性,其實現過程和核心的代碼對同類應用有很好的通用性,只需要較小的修改就能移植到不同的操作系統和平臺上,可以廣泛使用在各種嵌入式系統中,如PDA,智能手機等方面,并具有較高的經濟價值。該設計方案具有低耦合、高內聚、可擴展、可移植等良好特點,支持編碼格式為MPEG-1、MPEG-2、MPEG-3和MPEG-4等多媒體文件。

[1]韋東山.嵌入式Linux應用開發完全手冊[M].北京:人民郵電出版社,2008:68-70.

[2]邵長彬,李洪亮.用Busybox制作嵌入式Linux根文件系統[J].微計算機信息,2007,23(10-2):48-50.

SHAO chang-Bin,LI Hong-liagn.With busybox make embedded Linux root file system[J].Micro-computer information,2007,23(10-2):48-50.

[3]馬忠梅,馬廣云,徐英慧,等.ARM嵌入式處理器結構與應用基礎[M].北京:北京航空航天大學出版社,2002.

[4]馬忠梅,李善平,康慨,等.ARM&Linux嵌入式系統教程[M].北京:北京航天航空大學出版社,2005.

[5]夏靖波,王航,陳雅蓉.嵌入式系統原理與開發[M].西安:西安電子科技大學出版社,2006.

[6]陳峰,李濱滔,戈志華.基于S3C2410的嵌入式Linux系統構建[J].現代電子技術,2007(24):55-57.

CHEN Feng,TAO Li-Bin,GE Zhi-hua.S3C2410-based embedded Linux system construction[J].Modern Electronic Technology,2007(24):55-57.

猜你喜歡
嵌入式程序系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
搭建基于Qt的嵌入式開發平臺
“程序猿”的生活什么樣
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
主站蜘蛛池模板: 丁香五月亚洲综合在线| 日本不卡在线播放| 日韩毛片免费| 久久女人网| 亚洲区第一页| 亚洲一级毛片在线观播放| 国产91av在线| 国产视频自拍一区| 欧美激情视频在线观看一区| 精品少妇三级亚洲| 亚洲无码精品在线播放| 日本国产一区在线观看| 男人天堂伊人网| 国产精品久久久久久影院| 欧美中日韩在线| 99久久亚洲综合精品TS| 26uuu国产精品视频| 欧美日本在线| 国内精品小视频福利网址| 久久黄色一级片| 亚洲欧美激情小说另类| 久久精品中文字幕免费| 国产精品亚洲精品爽爽| 福利在线免费视频| 亚洲人成影院在线观看| 国产极品美女在线观看| 久久香蕉欧美精品| 在线观看国产黄色| 97久久超碰极品视觉盛宴| 亚洲视频在线观看免费视频| 人妻丝袜无码视频| 亚洲视频二| 亚洲日韩图片专区第1页| 国产午夜小视频| 日本高清视频在线www色| 欧美高清视频一区二区三区| 亚洲人成网站在线观看播放不卡| 亚洲欧美精品一中文字幕| 国产精品55夜色66夜色| 91精品福利自产拍在线观看| 爽爽影院十八禁在线观看| 五月天福利视频| 日韩a级毛片| 毛片免费在线视频| 中文字幕在线观看日本| 亚洲成人网在线播放| 91在线播放免费不卡无毒| 日韩在线2020专区| 国产在线拍偷自揄观看视频网站| 国产一级精品毛片基地| 国产成人一区| 黑色丝袜高跟国产在线91| 亚洲一级毛片在线观播放| 欧美日韩精品一区二区视频| 2021国产v亚洲v天堂无码| 久久综合一个色综合网| 高清国产在线| 日韩免费中文字幕| 国产成人精品午夜视频'| 在线观看欧美精品二区| 国产手机在线观看| 日韩亚洲综合在线| 国产亚洲现在一区二区中文| 国产成人亚洲综合A∨在线播放| 国产va免费精品观看| 欧美三级视频网站| 中文字幕在线视频免费| 波多野结衣AV无码久久一区| 特黄日韩免费一区二区三区| 国产精品午夜福利麻豆| 久久久无码人妻精品无码| 亚洲第一区在线| 91福利免费视频| 欧美激情第一欧美在线| 亚洲无码精彩视频在线观看 | 国产毛片高清一级国语| 欧美色综合网站| 亚洲三级影院| 亚洲最大福利视频网| 99热国产这里只有精品无卡顿"| 国产农村1级毛片| 国产在线观看一区精品|