2010年2月6日 星期六

Xpdf

1. 開發環境:
(1). CPU: Andes RISC CPU core_N12.
(2). 平台: ADP-AG101 V1.2.
(3). Linux OS: Ubuntu10.04.
(4). Toolchains: AndeSight v1.4 for Linux.
(5). Embedded Linux2.6.27
2. 目的:
(1). PDF(Portable Document Format的簡稱,意思「便攜式文件格式」)
(2). 至 http://www.foolabs.com/xpdf/download.html 下載Xpdf程式source code並移植至Andes Core.
3. 實驗步驟:
(1). 使用Terminal輸入〝source bashrc.nds32le-linux-V0〞指定交叉編譯路徑,這的步驟請參照setup步驟.(2). 輸入〝tar xvf xpdf-3.02.tar.gz〞解壓縮.(3). 輸入〝cd xpdf-3.02〞至xpdf目錄下.(4). 輸入〝./configure --host=nds32le-linux CXX=nds32le-linux-g++ --prefix=/usr/local/xpdf〞自動設定Makefile參數.(5). 輸入〝make〞開始編譯.(6). 輸入〝sudo make install〞,輸入password開始安裝.(7). 編譯成功的執行檔位置在〝/usr/local/xpdf/bin/〞下.(8). Xpdf使用說明http://m.paukstadt.de/man/ubuntu606/1+xpdf.


2010年2月5日 星期五

移植SDL(Simple DirectMedia Layer)

1. 開發環境:
(1). CPU: Andes RISC CPU core_N12(N1233).
(2). 平台: ADP-XC5FF676 V1.1.
(3). Linux OS: Ubuntu10.04.
(4). Toolchains: AndeSight v1.4 for Linux.
(5). Embedded Linux2.6.27
2. 目的:
(1). 至 http://www.libsdl.org/download-1.2.php 下載SDL函式庫source code並移植至Andes Core.
(2). SDL(Simple DirectMedia Layer http://www.libsdl.org/)是一套開放原始碼的多媒體開發函式庫,使用C語言所撰寫而成,SDL支援圖形,聲音,輸出入控制等函式.
3. 實驗步驟:
(1). 使用Terminal輸入〝source bashrc.nds32le-linux-V1f〞指定交叉編譯路徑,這的步驟請參照setup步驟.
注意: 因為編譯SDL是之後gnash(Flash player)需要用到函式庫之一,因此選擇有浮點運算(FPU)功能的Andes Core N1233.
(2). 輸入〝tar -xvf SDL-1.2.14.tar.tar〞解壓縮.

(3). 輸入〝cd SDL-1.2.14/〞至libmad目錄下.(4). 開啟〝/build-scripts/config.sub〞檔案修改程式.Line 252增加,Line 334增加.注意:〝Tab鍵〞與〝空白鍵〞差異.
(5). 輸入〝./configure --host=nds32le-linux --prefix=/usr/local/sdl --disable-shared --enable-static --disable-audio --disable-cdrom --disable-alsa --disable-esd --disable-arts --disable-nasm --disable-video-x11 --disable-video-dga --enable-video-fbcon --disable-video-qtopia --disable-video-dummy〞自動設定Makefile參數.
注意: configure video輸出的設定參數有X Window與Frame buffer,我們先預設Frame buffer,因此參數下〝--enable-video-fbcon〞.(6). 輸入〝make〞開始編譯.(7). 輸入〝sudo PATH=/home/acer/Andestech/AndeSight14/toolchains/nds32le-linux-glibc-V1f/bin:$PATH make install〞,輸入password開始安裝.(8). 安裝的函式庫位置在〝/usr/local/sdl/〞下.


2010年2月4日 星期四

移植Mplayer

1. 開發環境:
(1). CPU: Andes RISC CPU core_N12.
(2). 平台: ADP-AG101 V1.2.
(3). Linux OS: Ubuntu10.04.
(4). Toolchains: AndeSight v1.3.3 for Linux.
(5). Embedded Linux2.6.27
2. 目的:
(1). 至 http://www.mplayerhq.hu/design7/dload.html 下載Mplayer多媒體撥放程式source code並移植至Andes Core,這裡我是選擇〝Subversion snapshot〞下載.

(2). 編譯Mplayer多媒體撥放程式之前,須先編譯MAD(MPEG Audio Decoder)音效解碼之用的libmad函式庫.
(3). 這個移植的實驗是為了測試Mplayer可以在Andes core上執行,因為ADP-AG101(N1213)並沒有浮點運算,因此disable mp3lib函式庫, enable libmad函式庫.
3. 實驗步驟:
(1). 使用Terminal輸入〝source bashrc.nds32le-linux-V0〞指定交叉編譯路徑,這的步驟請參照setup步驟.
(2). 輸入〝tar xvf mplayer-checkout-snapshot.tar.bz2〞解壓縮.(3). 輸入〝cd mplayer-checkout-2010-05-09/〞至mplay目錄下.(4). 開啟〝configure〞檔案修改程式.Line 175增加,
Line 1407增加,
Line 1429增加,
Line 2161增加,
Line 2500增加,
(5). 輸入〝./configure --cc=nds32le-linux-gcc --host-cc=gcc --as=nds32le-linux-as --ar=nds32le-linux-ar --ranlib=nds32le-linux-ranlib --target=nds32le-linux --enable-cross-compile --enable-static --prefix=/usr/local/mplayer --disable-mencoder --disable-mp3lib --enable-fbdev --enable-mad --extra-cflags=-I/usr/local/mad/include --extra-libs=-L/usr/local/mad/lib〞自動設定Makefile參數.備註:
--disable-mencoder :需disable這個參數,不然會產生mencoder執行檔,而不會產生需要的mplayer執行檔.
--disable-mp3lib :MP3格式解碼函式庫,這個函式庫用到浮點運算,ADP-AG101平台沒有浮點運算,因此先disable.
--enable-fbdev : frame buffer device,如果要在小尺寸面板上撥放影片需enable.
--enable-mad : MPEG Audio Decoder,以24位元編碼輸出,不支援浮點運算,是以整數運算,在編譯前輸入〝./configure --help〞查看參數時初始值是有enable,說明檔顯示參數是--disable-mad,是需要disable mad才需要加入參數,可是我實驗的結果還是要自行輸入--enable-mad,然後加入函式庫路徑.
(6). 輸入〝make〞開始編譯.(7). 輸入〝sudo make install〞,輸入password開始安裝,之後發現有1個Error,無須理會.(8). 編譯成功的執行檔位置在〝/usr/local/mplayer/bin/〞下.(9). 將mplayer執行檔至Andes core平台測試,使用GtkTerm輸入〝./mplayer xxx.mp3〞執行結果.
備註:
(1). 其他Mplayer撥放參數可以輸入〝./mplayer --help〞查看.
(2). 撥放mpeg影片,畫面size要為320x240以符合面板尺寸,撥放video輸入〝./mplayer –vo fbdev xxx.mpg〞,使用frame buffer device撥放.
(3). 撥放mp3音樂,輸入〝./mplayer –ac mad xxx.mp3〞,使用MPEG Audio Decoder撥放.


2010年2月3日 星期三

移植libmad (MAD)

1. 開發環境:
(1). CPU: Andes RISC CPU core_N12.
(2). 平台: ADP-XC5FF676 V1.1.
(3). Linux OS: Ubuntu10.04.
(4). Toolchains: AndeSight v1.3.3 for Linux.
(5). Embedded Linux2.6.18
2. 目的:
(1). 至 http://www.linuxfromscratch.org/blfs/view/cvs/multimedia/libmad.html 下載libmad 函式庫source code並移植至Andes Core.
(2). MAD(MPEG Audio Decoder)是提供MPEG音效解碼之用的函式庫,目前支援MPEG-1以及MPEG-2,與一般常使用到的MP3(MPEG-1 Layer 3).
3. 實驗步驟:
(1). 使用Terminal輸入〝source bashrc.nds32le-linux-V0〞指定交叉編譯路徑,這的步驟請參照setup步驟.
(2). 輸入〝tar xvf libmad-0.15.1b.tar.gz〞解壓縮.

(3). 輸入〝cd libmad-0.15.1b/〞至libmad目錄下. (4). 開啟〝config.sub〞檔案修改程式.Line 234增加,
Line 301增加 .
注意:〝Tab鍵〞與〝空白鍵〞差異.
(5). 輸入〝./configure --host=nds32le-linux CXX=nds32le-linux-g++ --prefix=/usr/local/mad〞自動設定Makefile參數.(6). 輸入〝make〞開始編譯.(7). 輸入〝sudo PATH=/home/acer/Andestech/AndeSight133/toolchains/nds32le-linux-glibc-V0/bin:$PATH make install〞,輸入password開始安裝.(8). 安裝的函式庫位置在〝/usr/local/mad/〞下.

備註:
--enable-speed : optimize for speed over accuracy.
--enable-accuracy : optimize for accuracy over speed
--disable-debugging : do not compile with debugging support, and use more optimizations.
--disable-shared : do not build a shared library.
--enable-fpm=ARCH : use the ARCH-specific version of the fixed-point math assembly routines
--enable-sso : use the subband synthesis optimization,with reduced accuracy.
--disable-aso : do not use certain architecture-specific optimizations.
--enable-debugging
: enable diagnostic debugging support and debugging symbols.
--enable-profiling : generate `gprof' profiling code.
--enable-experimental : enable code using the EXPERIMENTAL preprocessor define.


2010年2月2日 星期二

移植ZLIB

1. 開發環境:
(1). CPU: Andes RISC CPU core_N12.
(2). 平台: ADP-XC5FF676 V1.1.
(3). Linux OS: Ubuntu9.04.
(4). Toolchains: AndeSight v1.3.3 for Linux.
(5). Embedded Linux2.6.18
2. 目的:
(1). 至 http://www.zlib.net/ 下載source code並移植至Andes Core.
(2). zlib是提供資料壓縮之用的函式庫.
3. 實驗步驟:
(1). 使用Terminal輸入〝source bashrc.nds32le-linux-V0〞指定交叉編譯路徑,這的步驟請參照setup步驟.(2). 輸入〝tar -xvf zlib-1.2.5.tar.tar〞解壓縮.(3). 輸入〝cd zlib-1.2.5〞至zlib目錄下.(4). 輸入〝./configure〞自動設定Makefile參數.(5). 開啟〝Makefile〞,修改程式.(6). 使其指定為for Andes Core的GCC做交叉編譯.
CC=nds32le-linux-gcc

CFLAGS=-O3 -D_LARGEFILE64_SOURCE=1
#CFLAGS=-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7
#CFLAGS=-g -DDEBUG
#CFLAGS=-O3 -Wall -Wwrite-strings -Wpointer-arith -Wconversion \
# -Wstrict-prototypes -Wmissing-prototypes

SFLAGS=-O3 -fPIC -D_LARGEFILE64_SOURCE=1
LDFLAGS= -L. libz.a
TEST_LDFLAGS=-L. libz.a
LDSHARED=nds32le-linux-gcc -shared -Wl,-soname,libz.so.1,--version-script,zlib.map
CPP=nds32le-linux-gcc -E

STATICLIB=libz.a
SHAREDLIB=libz.so
SHAREDLIBV=libz.so.1.2.5
SHAREDLIBM=libz.so.1
LIBS=$(STATICLIB) $(SHAREDLIBV)

AR=nds32le-linux-ar rc
RANLIB=nds32le-linux-ranlib
LDCONFIG=ldconfig
LDSHAREDLIBC=-lc
TAR=tar
SHELL=/bin/sh
EXE=

(7). 輸入〝make〞開始編譯.(8). 結果產生出exzmple的執行檔,與所需的libz.alibz.so檔.



2010年2月1日 星期一

Andes QEMU

QEMU是一套可以在X86桌上型電腦模擬其他架構CPU Core的自由軟體.

Andes OSDK可以下載for Andes Core ISA QEMU:
http://osdk.andestech.com/index.html

Linux Open Source界大俠部落格for Andes Core ISA QEMU投影片介紹:
http://blog.linux.org.tw/~jserv/archives/2010/03/qemu_jit_code_g_1.html