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.a與libz.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


2010年1月4日 星期一

OpenCV(4) 編譯OpenCV for Andes Core架構

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
(6). Qt Creator 1.3 IDE .
(7). Qt for embedded Linux 4.6.1.
2. 輸入〝source bashrc.nds32le-linux-V0〞指定交叉編譯路徑,這的步驟請參照setup步驟.
3. 輸入〝tar -xjf OpenCV-2.0.0.tar.bz2〞解壓縮.
4. 輸入〝cd OpenCV-2.0.0〞至目錄下.
5. 在編譯前須先修改一些程式,至開啟目錄〝autotools/config.sub〞檔案.
6. 修改程式,增加line 246,
與line 327(注意有Tab鍵與空白鍵的差異).
7. 開啟目錄〝include/opencv/cxoperations.hpp〞程式.
8. 修改程式line 68 ,修改成〝#if __GNUC__ >= 4 __linux〞,增加的參數為CMake編譯環境參數.
9. 輸入〝./configure --host=nds32le-linux --without-gtk --without-carbon --without-quicktime --without-1394libs --without-v4l --without-ffmpeg --without-python --without-swig --enable-static --disable-shared --disable-apps CXX=nds32le-linux-g++ CPPFLAGS=-I/usr/include〞設定編譯參數.
10. 輸入〝make〞開始編譯.
11. 編譯完成後,輸入〝sudo PATH=/home/acer/Andestech/AndeSight133/toolchains/nds32le-linux-glibc-V0/bin:$PATH make install〞,再輸入password,安裝產生函式庫.
12. 結果產生在根目錄〝/usr/local〞的〝lib〞與〝include〞附錄下.


2010年1月3日 星期日

OpenCV(3) X86架構下使用Qt Creator IDE設計OpenCV程式

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
(6). Qt Creator 1.3 IDE .
(7). Qt for embedded Linux 4.6.1.
2. Qt Creator的使用在Qt GUI設計的章節就已經有完整說明,在這裡不加以贅述,開啟Qt Creator使用滑鼠選擇〝File->New File or Project…〞.
3. 因為不需要設計GUI介面,因在這裡選擇〝Qt4 Console Application〞文字模式,後按〝OK〞其它步驟都與Qt GUI設計的章節相同,創造一個新的Project.
4. 將上一章節的範例程式複製至Qt Creator,開啟OpenCV路徑〝/OpenCV-2.0.0/samples/c/drawing.c〞下的程式開啟,並按〝Ctrl+C〞複製.
5. 開啟歨驟2~3所創造的New Project,使用滑鼠點選〝drawing.pro〞.
下載完整程式:
http://cid-b01cb9ac20175eaa.skydrive.live.com/self.aspx/opencv-1/opencv-1.zip
6. 開啟〝main.cpp〞,將步驟4所複製的程式貼上.
7. 使用滑鼠點選〝drawing.pro〞,加入參數路徑將〝.h〞檔與〝.so〞共用函式庫檔include至Project內.
INCLUDEPATH += /usr/local/include/opencv/
LIBS += /usr/local/lib/libcv.so \
/usr/local/lib/libcvaux.so \
/usr/local/lib/libcxcore.so \
/usr/local/lib/libhighgui.so \
/usr/local/lib/libml.so

8. 按〝Run〞開始編譯(須先將Qt Creator下Qt Versions指定成for X86的GCC),下圖為執行結果.


2010年1月2日 星期六

OpenCV(2)下載與編譯for X86架構

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
(6). Qt Creator 1.3 IDE .
(7). Qt for embedded Linux 4.6.1.
2. 下載OpenCV for Linux版本,下載路徑如下所示.
http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.0/
3. 先編譯for X86架構,主要是先在Qt Creator下編譯開發程式,開啟〝Terminal〞先解壓縮輸入〝tar -xjf OpenCV-2.0.0.tar.bz2〞.4. 輸入〝cd OpenCV-2.0.0〞進入目錄.5. 輸入〝./configure --enable-static〞設定參數.6. 輸入〝make〞開始編譯.*注意: 編譯前要先使用〝Synaptic Package Manager〞安裝〝libgtk2.0-dev〞package.7. 輸入〝sudo make install〞安裝.8. 安裝完畢,測試程式,輸入〝cd sample/c〞至此目錄下.9. 輸入〝g++ `pkg-config opencv --libs --cflags opencv` drawing.c -o drawing〞編譯範例程式.
10. 輸入〝./drawing〞 執行範例程式.
11. 執行結果如下所示.


2010年1月1日 星期五

OpenCV(1)OpenCV介紹與相關教學網站

OpenCV的全稱是Open Source Computer Vision Library,是一個跨平台的影像函式庫,支援Linux, Windows,Mac OS X等作業系統,是由Intel所開發的,是以open library的方式發行,在商業或是研究領域免費使用,可以用在設計影像辨識的程式.

OpenCV 支援的影像格式有:BMP, DIB, JPEG, JPE, PNG, PBM, PGM, PPM,SR, RAS, TIFF.

相關網站:
http://opencv.willowgarage.com/wiki/ OpenCV的wiki,可以下載函式庫.
http://yester-place.blogspot.com/ (正體中文)寫的很棒的教學部落格.
http://www.opencv.org.cn/index.php/%E9%A6%96%E9%A1%B5 (簡體中文) OpenCV中文網站.