當前位置:首頁 » 編程軟體 » rv1126交叉編譯設置

rv1126交叉編譯設置

發布時間: 2023-03-31 06:59:34

Ⅰ rv1126休眠電流

rv1126休眠電流即靜態電流。靜態電流是指沒有信號輸入時的電流,也就是器件本身在不受外部因素影響下的本身消耗電流。在很多晶元的數據手冊中都有相關描述,這個值可以推算出晶元頃陸本身的靜態功耗。所謂靜態電流就是在接上電源適配器在不上電池的情況下,主板所產生的電流.在維修的時候,我們用電源供應器來代替電源適配器。電源供應器有兩個檔位,一個是電雀宴頃壓檔另一個是電流檔.靜態祥消電流就會在電流檔上顯示出來的,電壓檔顯示的就是筆記本電腦的供電電壓

Ⅱ rv 1126 功耗

RV1126和RV1109採用14nm製程,同等性能,綜合功耗僅201mW,而28nm功耗為555mW,瑞芯微的方案功耗降低約64%。除此之外,搜罩RV1126和世皮鬧RV1109方握禪案的內存選擇上支持低功耗的LPDDR3/LPDDR4,同類產品通常只支持功耗較高的DDR3。

Ⅲ rv1126isp設置

RV1126ISP是一款通用的無線路由器,可以為用戶提供安全、頌信老可靠、穩定的寬頻服務。要設置這款路由器,請參考說明書步驟,先將路由器連接上坦坦電源、寬頻野升介面以及設備,然後登錄RV1126ISP管理後台,輸入正確的參數即可完成設置。

Ⅳ RV1126-RV1109 MPP使用說明

Media Process Platform(簡稱 MPP) 是適用於瑞芯微晶元系列的通用媒體處理軟體平台。

該平台對應用軟體屏蔽了晶元相關的復雜底層處理, 其目的是為了屏蔽不同晶元的差異, 為使用者提供統一的視頻媒體處理介面(Media Process Interface, 縮寫 MPI)。

MPI(Media Process Interface)是 MPP 提供給用戶的介面,用於提供硬體編解碼功能,以及一爛咐蠢些必要的相關功能。

MPI 介面使用的主要數據結構

MPI 是通過 C 結構里的函數指針方式提供給用戶, 用戶可以通過 MPP 上下文結構MppCtx 與 MPI 介面結構 MppApi 組合使用來實現解碼器與編碼器的功能。

目飢陪前以RV1126為例使用MPP SDK

mpp測試程簡好序說明

Ⅳ cygwin 中如何安裝arm-linux-gcc交叉編譯

交叉編譯工具鏈作為嵌入式Linux開發的基礎,直接影響到嵌入式開發的項目進度和完成質量。由於目前大多數開發人員使用Windows作為嵌入式開發的宿主機,在Windows中通過安裝VMware等虛擬機軟體來進行嵌入式Linux開發,這樣對宿主機的性能要求極高。Cygwin直接作為Windows下的軟體完全能滿足嵌入式Linux的開發工作,對硬體的要求低及方便快捷的特點成為嵌入式開發的最佳選擇。

目前網路上Cygwin下直接可用的交叉編譯器寥寥無幾且版本都比較低,不能滿足開源軟體對編譯器版本依賴性的要求(如低版本工具鏈編譯U-Boot出現軟浮點問題等);Crosstool等交叉工具鏈製作工具也是更新跟不上自由軟體版本的進度;同時系統介紹Cygwin下製作交叉編譯器方面的資料很少。針對上述情況,基於最新版gcc等自由軟體構建Cygwin下的交叉編譯器顯得尤為迫切和重要。
構建前准備工作
首先Cygwin下必須保證基本工具比如make}gcc等來構建bootstrap-gcc編譯器,這可以在安裝Cygwin時選擇安裝。參照gcc等安裝說明文檔來在Cygwin下查看是否已經安裝,如輸入gcc --v等。
源碼下載
gcc-4.5.0的編譯需mpc的支持,而mpc又依賴gmp和mpfr庫。從各個項目官方網站上下載的最新的源碼:
binutils-2.20. l .tar.bz2
gmp-S.O. l .tar.bz2
mpc-0.8.2.tar.gz
mpfr-3.O.O.tar.bz2
gcc-4.S.O.tar.bz2
linux-2.6.34.tar.bz2
glibc-2.11.2.tar.bz2
glibc-ports-2. l l .tar.bz2
gdb-7. l.tar.bz2

設置環境變數
HOST:工具鏈要運行的目標機器;BUILD:用來建立工具鏈的機器;TARGET工具鏈編譯產生的二進制代碼可以運行的機器。
BUILD=i686-pc-cygwin
HOST=i686-pc-cygwin TARGET=arm-linux
SYSROOT指定根目錄,$PREFIX指定安裝目錄。目標系統的頭文件、庫文件、運行時對象都將被限定在其中,這在交叉編譯中有時很重要,可以防止使用宿主機的頭文件和庫文件。本文首選$SYSROOT為安裝目錄,$PREFIX主要作為glibc庫安裝目錄。
SYSROOT=/cross-root
PREFIX=/cross-root/arm-linux
由於GCC-4.5.0需要mpfr,gmp,mpc的支持,而這三個庫又不需要交叉編譯,僅僅是在編譯交叉編譯鏈時使用,所以放在一個臨時的目錄。
TEMP_PREFIX=/build-temp
控制某些程序的本地化的環境變數:
LC ALL=POSIX
設置環境變數:
PATH=$SYSROOT/bin:兒in:/usr/bin
設置編譯時的線程數f31減少編譯時間:
PROCS=2
定義各個軟體版本:
BINUTILS V=2.20.1
GCC V=4.5.0
GMP V=5.0.1
MPFR V=3.0.0
MPC V二0.8.2
LINUX V二2.6.34
GLIBC V=2.11.2
GLIBC-PORTS V=2.11
GDB V=7.1
構建過程詳解
鑒於手工編譯費時費力,統一把構建過程寫到Makefile腳本文件中,把其同源碼包放在同一目錄下,執行make或順次執行每個命令即可進行無人值守的編譯安裝交叉工具
鏈。以下主要以Makefile執行過程為主線進行講解。
執行「make」命令實現全速運行
可在Cygwin的Shell環境下執行「make>make.log 2>&1」命令把編譯過程及出現的錯誤都輸出到make.log中,便於查找:
all:prerequest install-deps install-cross-stage-one install-
cross-stage-two
預處理操作
"make prerequest',命令實現單步執行的第一步,實現輸出變數、建立目錄及解壓源碼包等操作。0'set十h」關閉bash的Hash功能,使要運行程序的時候,shell將總是搜索PATH里的目錄[4]。這樣新工具一旦編譯好,shell就可以在$(SYSROOT)/bin目錄里找到: prerequest:
set +h&&mkdir -p $(SYSROOT)/bin&&
mkdir -p $(PREFIX)/include&&
mkdir -p $(TEMP一REFIX)&&
export PATH LCes ALL&&
tar -xvf gmp-$(GMP_V).tar.bz2&&
tar -xvf mpfr-$(MPFR_V).tar.bz2&&
tar -xvf mpc-$(MPC_V).tar.gz&&
tar -xvf binutils-$(BINUTILS_V).tar.bz2&&
tar -xvf gcc-$(GCC_V).tar.bz2&&
tar -xvf linux-$(LINUX_V).tar.bz2&&
tar -xvf glibc-$(GLIBC_V).tar.bz2&&
tar -xvf glibc-ports-$(GLIBC-PORTS_V).tar.bz2&&
my glibc-ports-$(GLIBC-PORTS_V)
glibc-$(GLIBC_V)/ports&&
tar -xvf gdb-$(GDB V).tar.bz2
非交叉編譯安裝gcc支持包mpc
00make install-deps」命令實現單步執行的第二步,實現mpc本地編譯,mpc依賴於gmp和mpfr
install-deps:gmp mpfr mpc
gmp:gmp-$(GMP_V)
mkdir -p build/gmp&&cd build/gmp&&
../../gmp-*/configure
--disable-shared --prefix=$(TEMP_PREFIX)&&
$(MAKE)一$(PROCS)&&$(MAKE) install
mpfr:mpfr-$(MPFR_V)
mkdir -p b-uild/mpfr&&cd build/mpfr&&
../..//mpfr-*/configure
LDF'LAGS="-Wl,-search_paths_first」--disable-shared
--with-gmp=$(TEMP_PREFIX)
--prefix=$(TEMP_PREFIX)&&
$(MAKE)一$(PROCS) all&&$(MAKE) install
mpc: mpc-$(MPC_V) gmp mpfr
mkdir -p build/mpc&&cd build/mpc&&
../../mpc-*/configure
--with-mpfr=$(TEMP PREFIX)
--with-gmp=$(TEMP_PREFIX)
--prefix=$(TEMP_PREFIX)&&
$(MAKE)一$(PROCS)&&$(MAKE) install
交叉編譯第一階段
"make install-cross-stage-one',命令實現單步執行的第三步,編譯安裝binutils,bootstrap-gcc和獲取Linux內核頭文件:
install-cross-stage-one:cross-binutils cross-gcc get-kernel-headers
編譯安裝binutils
cross-binutils: binutils-$(BINUTILS_ V)
mkdir -p build/binutils&&cd build/binutils&&
../..//binutils-*/configure --prefix=$(SYSROOT)
--target=$(TARGET)--disable-nls&&
$(MAKE)j$(PROCS)&&$(MAKE) install
編譯安裝bootstrap-gcc。使用一disable-shared參數的意思是不編譯和安裝libgcc_ eh.a文件。glibc軟體包依賴這個庫,因為它使用其內部的一lgcc_eh來創建系統[6]。這種依賴
性,可通過建立一個指向libgcc.a符號鏈接得到滿足,因為該文件最終將含有通常在libgcc- eh.a中的對象(也可通過補丁文件實現)。
cross-gcc:gcc-$(GCC_V)
mkdir -p build/gcc&&cd build/gcc&&
二//gcc-*/configure
--target=$(TARGET)--prefix=$(SYSROOT)
--disable-nls --disable-shared --disable-multilib
--disable-decimal-float--disable-threads
--disable-libmudflap --disable-libssp
--disable-libgomp --enable-languages=c
--with-gmp=$(TEMP_PREFIX)
--with-mpfr=$(TEMP_PREFIX)
--with-mpc=$(TEMP_PREFIX)&&
$(MAKE) -j$(PROCS)&&$(MAICE) install&&
In -vs libgcc.a'arm-linux-gcc -print-libgcc-file-name I
sed's/libgcc/& eh/'}
獲取Linux內核頭文件:
get-kernel-headersainux-$(LINUX_V)
cd linux-$(LINUX_V)&&
$(MAICE) mrproper&&$(MAKE) headers check&&
$(MAKE) ARCH=arm&&
INSTALLes HDR_ PATH=dest headers_ install&&
find dest/include
(-name .install一。-name ..installNaNd)-delete&&
cp -rv desdinclude/* $(PREFIX)/include
交叉編譯第二階段
編譯安裝glibc、重新編譯安裝binutils、完整編譯安裝gcc和編譯安裝gdb o "make install-cross-stage-two',命令實現單步執行的第四步: install-cross-stage-two:cross-glibc cross-rebinutils cross-g++ cross-gdb
編譯安裝glibca glib。的安裝路徑特意選為$(PREFIX),與gcc更好找到動態鏈接庫也有關系,選在$(SYSROOT)提示找不到crti.o; glibc已經不再支持i386; glibc對ARM等的處理器的支持主要通過glibc-ports包來實現;正確認識大小寫敏感(Case Sensitive)和大小寫不敏感(CaseInsensitive)系統,大小寫敏感問題主要影響到glibc,是交叉編譯glibc成功的關鍵:Cygwin幫助手冊中可知Cygwin是默認大小寫不敏感的n},但是UNIX系統是大小寫敏感的,這也是Cygwin和UNIX類系統的一個區別。通過作者自行參考製作的glibc-2.11.2-cygwin.patch補T使glibc變為Case-Insensitive,此補丁主要是對大小寫敏感問題改名來實現。
交叉編譯過程中安裝的鏈接器,在安裝完Glibc以前都無法使用。也就是說這個配置的forced unwind支持測試會失敗,因為它依賴運行中的鏈接器。設置libc_ cvforced unwind=yes這個選項是為了通知configure支持force-unwind,而不需要進行測試。libc cv_c_cleanup=yes類似的,在configure腳本中使用libc_cv_c cleanup=yes,以便配置成跳過測試而支持C語言清理處理。
cross-glibc:glibc-$(GLIBC_V)
cd glibc-$(GLIBC_V)&&
patch -Np 1 –i...//glibc-2.11.2-cygwin.patch&&
cd..&&mkdir -p build/glibc&&
cd build/glibc&&
echo"libc cv_forcedes unwind=yes">config.cache&&
echo "libc cv_c_cleanup=yes">>config.cache&&
echo "libc cv_arm_tls=yes">>config.cache&&
../../glibc-*/configure --host=$(TARGET)
--build=$(../OneScheme/glibc-2.11.2/scripts/config.guess)
--prefix=$(PREFIX)--disable-profile
--enable-add-ons --enable-kernel=2.6.22.5
--with-headers=$(PREFIX)/include
--cache-file=config.cache&&
$(MAKE)&&$(MAKE) install
重新編譯安裝binutils。編譯之前要調整工具鏈,使其
指向新生成的動態連接器。
調整工具鏈:
SPECS=
'dirname $(arm-linux-gcc -print-libgcc-file-name)'/specs
arm-linux-gcc -mpspecs
sed -e 's@/lib(64)\?/ld@$(PREFTX)&@g' -e ,}/}}*cPP}$/{n;s,$,-isystem $(PREFIX)/include,}"
>$SPECS
echo "New specs file is: $SPECS"
unset SPECS
測試調整後工具鏈:
echo 'main(川』>mmy.c
arm-linux-gcc
-B/cross-root/arm-linux/lib mmy.c
readelf -1 a.out I grep』:/cross-roobarm-linux'
調整正確的輸出結果:
[Requesting program interpreter: /tools/lib/ld-linux.so.2j
一切正確後刪除測試程序:
rm -v mmy.c a.out
重新編譯binutils。指定--host,--build及--target,否則配置不成功,其config.guess識別能力不如gcc做的好。
cross-rebinutils: binutils-$(BINUTILS_V)
mkdir -p build/rebinutils&&
cd build/rebinutils&&CC="$(TARGET)-gcc
-B/cross-roodarm-linux/lib/"&&AR=$(TARGET)-ar&&
RANLIB=$(TARGET)-ranlib&&../..//binutils-*/configure
--host=$(HOST)--build=$(BUILD)--target=$(TARGET)
--prefix=$(SYSROOT)--disable-nls
--with-lib-path=$(PREFIX)/lib&&
$(MAKE)--$(PROCS)&&$(MAKE) install
高於4.3版的gcc把這個編譯當作一個重置的編譯器,並且禁止在被一prefix指定的位置搜索startfiles。因為這次不是重置的編譯器,並且$(SYSROOT)目錄中的startfiles對於創
建一個鏈接到$$(SYSROOT)目錄庫的工作編譯器很重要,所以我們使用下面的補丁,它可以部分還原gcc的老功能tai . patch -Npl –i../gcc-4.5.0-startfiles_fix-l.patch
在正常條件下,運行gcc的fixincludes腳本,是為了修復可能損壞的頭文件。它會把宿主系統中已修復的頭文件安裝到gcc專屬頭文件目錄里,通過執行下面的命令,可以抑
制fixincludes腳本的運行[9](此時目錄為/gcc-4.5.0)。
cp -v gcc/Makefile.in{,.orig}
sed 's@\./fixinc\.sh@-c true@'
gcc/Makefile.in.orig > gcc/Makefile.in
下面更改gcc的默認動態鏈接器的位置,使用已安裝在/cross-root/ann-linux目錄下的鏈接器,這樣確保在gcc真實的編譯過程中使用新的動態鏈接器。即在編譯過程中創建的所有
二進制文件,都會鏈接到新的glibc文件
for file in
$(find gcc/config -name linux64.h-o -name linux.h –o -name sysv4.h)
do cp -uv $file{,.orig}
sed -a 's@/lib(64)?(32)?/Id@/cross-root/arm-linux&@g』-e's@/usr@/cross-rootlarm-linux@g' $file.orig>$file echo『
#undef STANDARD INCLUDE DIR
#define STANDARD_ INCLUDE DIR "/cross-root/arm-linux/include"
#define STANDARD STARTFILE PREFIX 1 "/cross-root/arm-linux/lib"
#define STANDARD_ STARTFILE_ PREFIX_ 2」」』>>$file
touch $file.orig done
完整編譯安裝gcc。最好通過指定--libexecdir更改libexecdir到atm-linux目錄下。--with-local-prefix選項指定gcc本地包含文件的安裝路徑此處設為$$(PREFIX),安裝後就會在內核頭文件的路徑下。路徑前指定$(Pwd)則以當前路徑為基點,不指定則默認以/home路徑為基點,這點要注意。
cross-g++:gcc-$(GCC-)
mkdir -p build/g十+&&cd build/g++&&
CC="$(TARGET)-gcc AR=$(TARGET)-ar&&
-B/cross-roodarm-linux/lib/"&&
RANLIB=$(TARGET)-ranlib&&
..//gcc-*/configure
--host=$(HOST)--build=$(BUILD)--target=$(TARGET)
--prefix=$(SYSROOT)--with-local-prefix=$(PREFIX)
--enable-clocale=gnu --enable-shared
--enable-threads=posix --enable -cxa_atexit
--enable-languages=c,c++--enable-c99
--enable-long-long --disable-libstdcxx-pch
--disable-libunwind-exceptions
--with-gmp=$(TEMP_PREFIX)
--with-mpfr=$(TEMP_PREFIX)
--with-mpc=$(TEMP_PREFIX)&&
$(MAKE) LD_IBRARY_ATH=
$(pwd)/$(../../gcc-4.5.0/config.guess)/libgcc&&
$(MAKE) install
編譯安裝gdb,至此完成整個工具鏈的製作。
cross-gdb: gdb-$(GDB V)
mkdir -p build/gdb&&cd build/gdb&&
../../gdb-*/configure --prefix=$(SYSROOT)
--target=$(TARGET)--disable-werror&&
$(MAKE)-j$(PROCS)&&$(MAKE) install
「make clean」命令清除編譯生成的文件和創建解壓的文件夾
.PHONY:clean
dean:
rm -fr $(TEMP_PREFIX) build
binutils-$(BINUTIL,S_V) gcc-$(GCC_V)
glibc-$(NEWL.IB_V) gdb-$(GDB_V)
gmp-$(GMP_V) mpc-$(MPC_V) mpfr-$(MPFR_V)
工具鏈測試
命令行中輸入以下內容:
echo 'main(){}』>mmy.c
arm-linux-gcc -o mmy.exe mmy.c
file mmy.exe
運行正常的結果:
mmy.exe: ELF 32-bit LSB executable, ARM, version 1,for GNU/Linux 2.6.22, dynamically linked (uses shared libs),not stripped.

Ⅵ 如何構建MIPS交叉編譯工具鏈

第一步 創建目錄以及環境變數
在當前用戶目錄下創建target-project文件夾,在該文件夾下創建mips-mole文件夾,在mips-mole文件夾下創建三個文件夾:build-tools,kernel,tools,最後,在build-tools文件夾下創建build-gcc,build-boot-gcc,build-glibc,build-binutils文件夾。命令如下:

$ cd ~
$ mkdir -p ./target-project/mips-mole/{kernel/,tools/,build-tools/{build-gcc,build-boot-gcc,build-glibc,build-binutils}}
$ tree ./target-project/mips-mole/

使用腳本構建環境變數
#! /bin/bash

注意修改/home/用戶名,修改正確後,使用source使腳本生效

$ cd target-project
$ chmod +x mips.sh
$ source mips.sh
可以使用echo査看相關變數名以觀察環境變數是否生效。
最後把linux-2.6.38.tar.bz2下載放置在kernel文件夾下,binutils-2.22.tar.gz,gcc-4.6.2.tar.gz,glibc-2.14.tar.gz,glibc-ports-2.14.tar.gz,gmp-5.0.4.tar.gz,mpc-0.9.tar.gz,mpfr-3.0.1.tar.gz下載蘆枝悄放置在build-tools文件夾下。

第二步 安裝基於MIPS的linux頭文件

$ cd $PRJROOT/kernel
$ tar -xjvf linux-2.6.38.tar.bz2
$ cd linux-2.6.38
在指定路徑下創建include文件夾,用來存放相關頭文件。

$ mkdir -p $TARGET_PREFIX/include
保證linux源碼是干凈的。

$ make mrproper
生成需要的頭文件。
$ make ARCH=mips headers_check

$ make ARCH=mips INSTALL_HDR_PATH=dest headers_install
將dest文件夾下的所有文件復制到指定的include文件夾內。

$ cp -rv dest/include/* $TARGET_PREFIX/include
最後刪除dest文件夾
$ rm -rf dest
$ ls -l $TARGET_PREFIX/include

第三步 安裝binutils-2.22

$ cd $PRJROOT/build-tools
$ tar -xzvf binutils-2.22.tar.gz
$ cd build-binutils
$ ../binutils-2.22/configure --target=$TARGET --prefix=$PREFIX
$ make
$ make install

再安裝automake。

$ tar -xzvf automake-1.11.1.tar.gz
$ cd automake-1.11.1
$ ./configure
$ make
$ sudo make install
下面開始修改相關文件,主要是去掉-Werror。
$ cd $PRJROOT/build-tools/binutils-2.22/gas
$ ge dit configure
將下面內容
# Enable -Werror by default when using gcc
if test "${GCC}" = yes -a -z "${ERROR_ON_WARNING}" ; then
ERROR_ON_WARNING=yes
fi
修改為
# Enable -Werror by default when using gcc
if test "${GCC}" = yes -a -z "${ERROR_ON_WARNING}" ; then
ERROR_ON_WARNING=no
fi
但是,需要重新configure生成Makefile.in。

$ ./configure (在binutils/gas路徑下的configure)
$ make distclean (切記)
然後重新執行搭悉第三步,這次編譯可過。

第陪渣四步 安裝gcc引導器

$ cd $PRJROOT/build-tools
$ tar -xzvf gcc-4.6.2.tar.gz
$ tar -xjvf gmp-5.0.4.tar.bz2
$ mv gmp-5.0.4 ./gcc-4.6.2/gmp
$ tar -xzvf mpc-0.9.tar.gz
$ mv mpc-0.9 ./gcc-4.6.2/mpc
$ tar -xzvf mpfr-3.0.1.tar.gz
$ mv mpfr-3.0.1 ./gcc-4.6.2/mpfr
$ cd build-boot-gcc
$ ../gcc-4.6.2/configure --target=$TARGET --prefix=$PREFIX --disable-shared <br>--without-headers --with-newlib --enable-languages=c --disable-decimal-float <br>--disable-libgomp --disable-libmudflap --disable-libssp --disable-threads --disable-multilib
編譯並安裝gcc引導器、libgcc庫。

$ make all-gcc
$ make all-target-libgcc
$ make install-gcc
$ make install-target-libgcc

第五步 編譯glibc

$ cd $PRJROOT/build-tools
$ tar xzvf glibc-2.14.tar.gz
$ cd glibc-2.14
刪除Makefonfig文件中的內容-lgcc_eh。

$ cp -v Makeconfig{,.b腸花斑拘職餃辦邪暴矛k}
$ sed -e 's/-lgcc_eh//g' Makeconfig.bk > Makeconfig
$ cd ..
$ tar -xjvf glibc-ports-2.14.tar.bz2
$ mv glibc-ports-2.14 ./glibc-2.14/ports
$ cd build-glibc
$ CC=mipsel-linux--gcc ../glibc-2.14/configure --host=$TARGET --prefix="/usr" <br>--enable-add-ons --with-headers=$TARGET_PREFIX/include libc_cv_forced_unwind=yes <br>libc_cv_c_cleanup=yes
注意:此時如何設置了LD_LIBRARY_PATH環境變數會configure error,需要刪除該變數重新configure。

$ make
$ make install_root=$TARGET_PREFIX prefix=」」 install
第六步 完全安裝gcc
首先,也是很重要的是去掉libc等庫文件的絕對路徑。

$ cd $TARGET_PREFIX/lib
備份一下。

$ cp libc.so libc.so.bk
$ gedit libc.so
將原內容
GROUP ( /lib/libc.so.6 /lib/libc_nonshared.a AS_NEEDED ( /lib/ld.so.1 ) )
修改為
GROUP ( libc.so.6 libc_nonshared.a AS_NEEDED ( ld.so.1 ) )

$ cp libpthread.so libpthread.so.bk
$ gedit libpthread.so
將原內容
GROUP ( /lib/libpthread.so.0 /lib/libpthread_nonshared.a )
修改為
GROUP ( libpthread.so.0 libpthread_nonshared.a )
然後可以完全編譯gcc。

Ⅶ rv1126很慢

cpu處物兆唯理能力較弱。rv1126本身定位就不是用來處理圖形的。沒有gpu,cpu處罩培理能力較弱。rv1126的強項是豐富的多媒體介面,編猜譽解碼能力和推理。

Ⅷ rv1126沒有配置文件

有。
1、配置環境/buildshdevice/rockchip/rv1126_rv1109/BoardConfig-aybering.mk。
2、蔽昌切換到內核源碼目錄cdkernel。
3、配置內核配喚弊合內核平台環境makeARCH=armrv1126_defconfig,使用菜單的方式配置Linux內核makeARCH=armmenuconfig。
4、保存配置makeARCH=armsavedefconfig。
5、將配合好的文件覆蓋系和並族統的配置文件。

Ⅸ 交叉編譯opencv 自動生成zlib嗎

第一步,安裝交叉編譯工具arm-linux-gcc-4.3.2
xgy@ubuntu:~/toolchain$mkdir arm
xgy@ubuntu:~/toolchain$cd arm
xgy@ubuntu:~/toolchain/arm$tar xvf arm-linux-gcc-4.3.2
解壓後,在當目錄下會多一個usr目錄,由於我不喜歡這目錄太深,然後就執行如下命令:
xgy@ubuntu:~/toolchain/arm$cp -rv usr/local/* .
xgy@ubuntu:~/toolchain/arm$rm -rf usr
接下來設置環境變數PATH,執行命令如下:
xgy@ubuntu:~/toolchain/arm$cd
xgy@ubuntu:~$vi .bashrc
在.bashrc文件的最後加入:exportPATH=$PATH:/home/xgy/toolchain/arm/4.3.2/bin 保存退出(:wq)
xgy@ubuntu:~$source .bashrc //使剛設置的值生效
到此本來交叉編譯工具就已經安裝成功了的,可經過檢查卻發現下圖中左列的arm-linux-g++,arm-linux-gcc是4.3.3版本的(用命令arm-linux-gcc -v 查看),而其它的確是版本的,4.3.2這是一個奇怪現象!

因為我曾試過用4.3.3版本的g++交叉編譯opencv2.0總是出錯如下:

在這里,我只好創建軟鏈接,使它指向右側的arm-none-linux-gnueabi-g++,arm-none-linux-gnueabi-gcc。在創建之前先對原來的兩個文件做備份。執行命令如下:

在這里再次檢查下arm-linux-gcc及arm-linux-g++的版本
命令arm-linux-gcc –v 輸出的最後一行是應該是:gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72)在這里說明下,這個很重要:現在所用的arm-linux-gcc實際上使用的是~./toolchain/arm/4.3.2/bin/目錄下的arm-none-linux-gnueabi-gcc,而它的include為arm/4.3.2/arm-none-linux-gnueabi/include,對應的lib為arm/4.3.2/arm-none-linux-gnueabi/lib,也就是說,你如果用arm-linux-gcc編譯程譯的話,對頭文件它預設的就找arm/4.3.2/arm-none-linux-gnueabi/include,對庫它預設的就找 arm/4.3.2/arm-none-linux-gnueabi/lib,而不是/usr/include /usr/lib,所以如果你要加什麼.h .a .so文件的話,記著一定要把這些文件加到這兩個目錄下去,不然這個交叉編譯器會告你找不到所要的庫或頭文件。這里的原理對於其它交叉編譯器也適應(主要指目錄結構),只是可能目錄名不一樣。
OK,到此,交編譯器安裝成功!
2012-11-2 今天換了一個4.3.2版本的arm-linux-gcc沒有發現上面的問題,也許是我以前在復制的時候出錯了,用cp命令時最好使用-a選項。
由於opencv2.0依懶於zlib,png、jpeg圖形庫而我們的arm-linux-gcc 是不帶這些庫的,它只帶了一些基本的庫,所以這里我們首先就要交叉編譯這些文件,安裝到arm/4.3.2/arm-none-linux-gnueabi/include,arm/4.3.2/arm-none-linux-gnueabi/lib目錄中。庫不一定要最新的,庫的版本太新了,opencv有可能不認識。
首先安裝zlib庫,這個是後面兩個庫的編譯基礎。
xgy@ubuntu:~/tmp$ tar zxvf zlib-1.2.3.tar.gz
在當前目錄下會多一個zlib-1.2.3的目錄。
由於 zlib 庫的configure 腳本不支持交叉編譯選項,只好自己手動臨時把 gcc 修改成指向我們的交叉編譯器 arm-linux-gcc 。執行如下命令:
xgy@ubuntu:~/tmp$ cd /usr/bin
xgy@ubuntu:/usr/bin$ sudo –i //這里得切換到root用戶下才能有許可權做下面的操作。
[sudo] password for xgy: //在這里輸入xgy用戶的密碼
root@ubuntu:~# cd /usr/bin
root@ubuntu:/usr/bin# mv gcc gcc_back
root@ubuntu:/usr/bin# mv ld ld_back
root@ubuntu:/usr/bin# ln -sv/home/xgy/toolchain/arm/4.3.2/bin/arm-linux-gcc ./gcc
root@ubuntu:/usr/bin# ln -sv/home/xgy/toolchain/arm/4.3.2/bin/arm-linux-ld ./ld
下面檢查下是否換過來了
root@ubuntu:/usr/bin#gcc –v
gcc version4.3.2 (Sourcery G++ Lite 2008q3-72) //為輸出的最後一行

root@ubuntu:/usr/bin#ld -v
GNU ld (SourceryG++ Lite 2008q3-72) 2.18.50.20080215
接著切換到原來的目錄~/tmp/zlib-1.2.3執行如下命令
root@ubuntu:/usr/bin#su – xgy //注意這里和用命令 suxgy是有區別的,-表示用xgy的環境
xgy@ubuntu:~$ cdtmp/zlib-1.2.3/
xgy@ubuntu:~/tmp/zlib-1.2.3$./configure --prefix=/home/xgy/toolchain/arm/4.3.2/arm-none-linux-gnueabi/--shared
xgy@ubuntu:~/tmp/zlib-1.2.3$make (如果以前在這個目錄下執行過make ,那要先執行makeclean 然後執行make)
xgy@ubuntu:~/tmp/zlib-1.2.3$make install
然後可以去~/toolchain/arm/4.3.2/arm-none-linux-gnueabi/{include,lib}目錄下是否多了一些文件(可以另外再開一個終端查看,這樣方便點),如下圖:

在這里記著把剛才改過的gcc再改回去,不然後面會出錯!!!

接下來安裝png庫,這個是用來顯示png圖形的。
xgy@ubuntu:~/tmp$tar jxvf libpng-1.2.18.tar.bz2
xgy@ubuntu:~/tmp$cd libpng-1.2.18/
由於libpng不提供有效的configure腳本(可以查看INSTALL文件),所以只好自己動手改Makefile文件了。
xgy@ubuntu:~/tmp/libpng-1.2.18$cp scripts/makefile.linux Makefile
xgy@ubuntu:~/tmp/libpng-1.2.18$vi Makefile

CC=arm-linux-gcc //修改這里
MKDIR_P=mkdir -p

# where "make install" putslibpng12.a, libpng12.so*,
# libpng12/png.h and libpng12/pngconf.h
# Prefix must be a full pathname.
prefix=/home/xgy/toolchain/arm/4.3.2/arm-none-linux-gnueabi
exec_prefix=$(prefix)

# Where the zlib library and include filesare located.
#ZLIBLIB=/usr/local/lib
#ZLIBINC=/usr/local/include
ZLIBLIB=/home/xgy/toolchain/arm/4.3.2/arm/arm-none-linux-gnueabi/lib //修改這里
ZLIBINC=/home/xgy/toolchain/arm/4.3.2/arm/arm-none-linux-gnueabi/include//修改這里
保存退出後執行如下命令:
xgy@ubuntu:~/tmp/libpng-1.2.18$ make
xgy@ubuntu:~/tmp/libpng-1.2.18$ makeinstall
然後可以去~/toolchain/arm/4.3.2/arm-none-linux-gnueabi/{include,lib}目錄下是否多了一些文件(可以另外再開一個終端查看,這樣方便點),如下圖:

如果有錯,檢查下前面的步聚,特別是看zlib有安裝有沒有出錯。

接下來安裝jpeg庫
xgy@ubuntu:~/tmp/libpng-1.2.18$ cd ..
xgy@ubuntu:~/tmp$tar zxvf jpegsrc.v6b.tar.gz
xgy@ubuntu:~/tmp/jpeg-6b$
xgy@ubuntu:~/tmp/jpeg-6b$ ./configure --prefix=/home/xgy/toolchain/arm/4.3.2/arm-none-linux-gnueabi/--host=arm-linux --enable-shared
按此命令進行,然後修 改makefile文件將CC的值改為arm-linux-gcc,一定得改!!
xgy@ubuntu:~/tmp/jpeg-6b$make
安裝前需要在 arm-linux 下建個目錄,不然安裝會出錯
xgy@ubuntu:~/tmp/jpeg-6b$mkdir -pv /home/xgy/toolchain/arm/4.3.2/arm-none-linux-gnueabi/man/man1
mkdir: created directory `/home/xgy/toolchain/arm/4.3.2/arm-none-linux-gnueabi/man/man1
xgy@ubuntu:~/tmp/jpeg-6b$ make install

然後可以去~/toolchain/arm/4.3.2/arm-none-linux-gnueabi/{include, lib}目錄下是否多了一些文件(可以另外再開一個終端查看,這樣方便點),如下圖:

到此,三個庫安裝完畢!

Ⅹ 如何更改ubuntu中交叉編譯工具鏈

1.下載arm-linux-gcc-3.4.1.tar.bz2到任意的目錄下,我把它下載到了我的個人文件夾里 /home/wrq
2. 解壓 arm-linux-gcc-3.4.1.tar.bz2

#tar -jxvf arm-linux-gcc-3.4.1.tar.bz2
解壓過程需要一段時間,解壓後的文件形成了 usr/local/ 文件夾,進入該文件夾,將arm文件夾拷貝到/usr/local/下
# cd usr/local/
#cp -rv arm /usr/local/
現在交叉編譯程序集都在/usr/local/arm/3.4.1/bin下面了
3. 修改環境變數,把交叉編譯器的路徑加入到PATH。(有三種方法,強烈推薦使用方法一)
方法一:修改/etc/bash.bashrc文件
#vim /etc/bash.bashrc
在最後加上:
export PATH=$PATH:/usr/local/arm/3.4.1/bin
export PATH
方法二:修改/etc/profile文件:
# vim /etc/profile
增加路徑設置,在末尾添加如下,保存/etc/profil文件:
export PATH=$PATH:/usr/local/arm/3.4.1/bin
4. 立即使新的環境變數生效,不用重啟電腦:
對應方法一:#source /root/.bashrc
對應方法二:# source /etc/profile
5. 檢查是否將路徑加入到PATH:
# echo $PATH
顯示的內容中有/usr/local/arm/bin,說明已經將交叉編譯器的路徑加入PATH。至此,交
叉編譯環境安裝完成。
6. 測試是否安裝成功
# arm-linux-gcc -v
上面的命令會顯示arm-linux-gcc信息和版本,顯示的信息:
Reading specs from /usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/specs Configured with: /work/crosstool-0.27/build/arm-linux/gcc-3.4.1-glibc-2.3.2/gcc-
3.4.1/configure --target=arm-linux --host=i686-host_pc-linux-gnu
--prefix=/usr/local/arm/3.4.1 --with-headers=/usr/local/arm/3.4.1/arm
-linux/include --with-local-prefix=/usr/local/arm/3.4.1/arm-linux --disable
-nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit --enable-
languages=c,c++ --enable-shared --enable-c99 --enable-long-long
Thread model: posix
gcc version 3.4.1
7.編譯
Hello World程序,測試交叉工具鏈
寫下下面的Hello World程序,保存為
hello.c
#include
int main()
{
printf("Hello World!\n");
return 0;
}
執行下面的命令:
# arm-linux-gcc -o hello hello.c
源程序有錯誤的話會有提示,沒有任何提示的話,就是通過了,就可以下載到ARM目標板上運行了!接著可以輸入file hello的命令,查看生成的hello文件的類型,要注意的是生成的可執行文件只能在ARM體系下運行,不能在其於X86的PC機上運行。

熱點內容
交易貓買腳本靠譜嗎 發布:2025-07-17 11:32:27 瀏覽:519
伺服器系統盤一般做什麼陣列 發布:2025-07-17 11:16:05 瀏覽:362
如何用c語音實現放射密碼 發布:2025-07-17 11:13:03 瀏覽:734
lol腳本2017 發布:2025-07-17 10:52:18 瀏覽:826
編譯條件有哪些 發布:2025-07-17 10:42:51 瀏覽:333
apache設置靜態內容緩存時間 發布:2025-07-17 10:32:32 瀏覽:294
蘋果6不能緩存的視頻 發布:2025-07-17 10:31:44 瀏覽:404
如何把文件夾共享 發布:2025-07-17 10:23:49 瀏覽:298
linux查看命令大全 發布:2025-07-17 10:21:24 瀏覽:976
安卓應用程序和蘋果手機哪個好 發布:2025-07-17 10:20:43 瀏覽:411