海思開發(fā)筆記:(一)海思Hi3519A開發(fā)環(huán)境搭建

參考海思官方文檔:《Hi3519AV100╱Hi3556AV100 開發(fā)環(huán)境用戶指南.pdf》、《Hi3519AV100 SDK 安裝及升級(jí)使用說明.pdf》

1旗国、安裝ubuntu18.04虛擬機(jī)
  • 虛擬機(jī)版本:VMware? Workstation 15 Pro
  • 操作系統(tǒng)版本:ubuntu-18.04.1-desktop-x64
  • 海思Hi3519A交叉編譯工具只支持32位
  • ubuntu18.04無官方32位ISO鏡像
  • ubuntu16.04的32位系統(tǒng),正在vmware-tools無法正常復(fù)制文件的問題
  • 所以選擇ubuntu18.04 64位操作系統(tǒng)作為開發(fā)環(huán)境
# 系統(tǒng)版本
hisilicon@ubuntu:~$ uname -a
Linux ubuntu 5.3.0-28-generic #30~18.04.1-Ubuntu SMP Fri Jan 17 06:14:09 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
# 系統(tǒng)更新
hisilicon@ubuntu:~$ sudo apt update
......

hisilicon@ubuntu:~$ sudo apt upgrade
......

2验庙、安裝arm-himix200-linux工具鏈
  • 切換到root賬號(hào)或者使用sudo安裝硼啤,避免權(quán)限不足
  • 工具鏈默認(rèn)會(huì)安裝/opt/hisi-linux/x86-arm路徑下
  • 解壓需要時(shí)間較長聪富,需要耐心等待
  • 由于開發(fā)環(huán)境操作系統(tǒng)為64位,工具鏈為32位玻靡,安裝完成后直接運(yùn)行相關(guān)命令會(huì)提示文件不存在
  • 所以需要安裝32位庫:sudo apt install lib32z1-dev
  • 如果修改軟件源為阿里等國內(nèi)鏡像源结榄,可能會(huì)因?yàn)樵吹刂放渲貌蝗斐?2位庫安裝失敗
# 切換root
hisilicon@ubuntu:~$ sudo su
[sudo] password for hisilicon: 
# 將安裝包復(fù)制到Downloads目錄,并進(jìn)入該目錄
root@ubuntu:/home/hisilicon# cd Downloads/arm-himix200-linux/
# 安裝工具鏈
root@ubuntu:/home/hisilicon/Downloads/arm-himix200-linux# source ./arm-himix200-linux.install 
Installing HuaWei LiteOS Linux at /opt/hisi-linux/x86-arm
mkdir: created directory '/opt/hisi-linux'
mkdir: created directory '/opt/hisi-linux/x86-arm'
mkdir: created directory '/opt/hisi-linux/x86-arm/arm-himix200-linux'
Extract cross tools ...
export path /opt/hisi-linux/x86-arm/arm-himix200-linux/bin

# 安裝32位庫
hisilicon@ubuntu:~$ sudo apt install lib32z1-dev
[sudo] password for hisilicon: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  cpp-7 gcc gcc-7 gcc-7-base gcc-7-multilib gcc-8-base gcc-multilib lib32asan4
  lib32atomic1 lib32cilkrts5 lib32gcc-7-dev lib32gcc1 lib32gomp1 lib32itm1
  lib32mpx2 lib32quadmath0 lib32stdc++6 lib32ubsan0 lib32z1 libasan4
  libatomic1 libc-dev-bin libc6-dev libc6-dev-i386 libc6-dev-x32 libc6-i386
  libc6-x32 libcc1-0 libcilkrts5 libgcc-7-dev libgcc1 libgomp1 libitm1
  liblsan0 libmpx2 libquadmath0 libstdc++6 libtsan0 libubsan0 libx32asan4
  libx32atomic1 libx32cilkrts5 libx32gcc-7-dev libx32gcc1 libx32gomp1
  libx32itm1 libx32quadmath0 libx32stdc++6 libx32ubsan0 linux-libc-dev
  manpages-dev zlib1g-dev
Suggested packages:
  gcc-7-locales make autoconf automake libtool flex bison gcc-doc gcc-7-doc
  libgcc1-dbg libgomp1-dbg libitm1-dbg libatomic1-dbg libasan4-dbg
  liblsan0-dbg libtsan0-dbg libubsan0-dbg libcilkrts5-dbg libmpx2-dbg
  libquadmath0-dbg glibc-doc
The following NEW packages will be installed:
  gcc gcc-7 gcc-7-multilib gcc-multilib lib32asan4 lib32atomic1 lib32cilkrts5
  lib32gcc-7-dev lib32gcc1 lib32gomp1 lib32itm1 lib32mpx2 lib32quadmath0
  lib32stdc++6 lib32ubsan0 lib32z1 lib32z1-dev libasan4 libatomic1
  libc-dev-bin libc6-dev libc6-dev-i386 libc6-dev-x32 libc6-i386 libc6-x32
  libcilkrts5 libgcc-7-dev libitm1 liblsan0 libmpx2 libquadmath0 libtsan0
  libubsan0 libx32asan4 libx32atomic1 libx32cilkrts5 libx32gcc-7-dev
  libx32gcc1 libx32gomp1 libx32itm1 libx32quadmath0 libx32stdc++6 libx32ubsan0
  linux-libc-dev manpages-dev zlib1g-dev
The following packages will be upgraded:
  cpp-7 gcc-7-base gcc-8-base libcc1-0 libgcc1 libgomp1 libstdc++6
7 upgraded, 46 newly installed, 0 to remove and 179 not upgraded.
Need to get 43.8 MB/44.3 MB of archives.
After this operation, 152 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
......

# 驗(yàn)證工具鏈?zhǔn)欠窨烧_\(yùn)行
root@ubuntu:/home/hisilicon/Downloads/arm-himix200-linux# arm-himix200-linux-gcc -v
Using built-in specs.
COLLECT_GCC=arm-himix200-linux-gcc
COLLECT_LTO_WRAPPER=/opt/hisi-linux/x86-arm/arm-himix200-linux/host_bin/../libexec/gcc/arm-linux-gnueabi/6.3.0/lto-wrapper
Target: arm-linux-gnueabi
Configured with: /home/sying/SDK_CPU_UNIFIED/build/script/arm-himix200-linux/arm_himix200_build_dir/src/gcc-6.3.0/configure --host=i386-redhat-linux --build=i386-redhat-linux --target=arm-linux-gnueabi --prefix=/home/sying/SDK_CPU_UNIFIED/build/script/arm-himix200-linux/arm_himix200_build_dir/install --enable-threads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --with-gnu-as --with-gnu-ld --enable-languages=c,c++ --enable-shared --enable-lto --enable-symvers=gnu --enable-__cxa_atexit --disable-nls --enable-clocale=gnu --enable-extra-hisi-multilibs --with-sysroot=/home/sying/SDK_CPU_UNIFIED/build/script/arm-himix200-linux/arm_himix200_build_dir/install/target --with-build-sysroot=/home/sying/SDK_CPU_UNIFIED/build/script/arm-himix200-linux/arm_himix200_build_dir/install/target --with-gmp=/home/sying/SDK_CPU_UNIFIED/build/script/arm-himix200-linux/arm_himix200_build_dir/obj/host-libs/usr --with-mpfr=/home/sying/SDK_CPU_UNIFIED/build/script/arm-himix200-linux/arm_himix200_build_dir/obj/host-libs/usr --with-mpc=/home/sying/SDK_CPU_UNIFIED/build/script/arm-himix200-linux/arm_himix200_build_dir/obj/host-libs/usr --enable-libgomp --disable-libitm --enable-poison-system-directories --with-pkgversion='HC&C V1R3C00SPC200B005_20190606' --disable-bootstrap
Thread model: posix
gcc version 6.3.0 (HC&C V1R3C00SPC200B005_20190606) 

# 如果重啟后或者切換用戶后無法使用相關(guān)工具命令啃奴,可重新引用相關(guān)環(huán)境變量
hisilicon@ubuntu:~/Downloads/arm-himix200-linux$ sudo su
root@ubuntu:/home/hisilicon/Downloads/arm-himix200-linux# source /etc/profile
3潭陪、安裝Hi3519AV100SDK
  • SDK并不是真正的安裝,而是當(dāng)前目錄解壓展開,需提前規(guī)劃好目錄
  • 由于默認(rèn)shell的原因依溯,直接運(yùn)行./sdk.unpack會(huì)出錯(cuò)老厌,可使用bash shell運(yùn)行解包腳本
# 解壓SDK
root@ubuntu:/home/hisilicon/3519A# tar -zxf Hi3519AV100_SDK_V2.0.2.0.tgz 
root@ubuntu:/home/hisilicon/3519A# cd Hi3519AV100_SDK_V2.0.2.0/
root@ubuntu:/home/hisilicon/3519A/Hi3519AV100_SDK_V2.0.2.0# ls
package  scripts  sdk.cleanup  sdk.unpack  smp_image_glibc
# 安裝SDK
root@ubuntu:/home/hisilicon/3519A/Hi3519AV100_SDK_V2.0.2.0# /bin/bash sdk.unpack 
Unpacking SDK
WARN: Be sure you have installed the cross-compiler. if not, install it first!
WARN: ALL THE SOUCE FILES WILL BE OVERWRITED, FILES YOU MOTIFIED WILL BE LOST !!!

SDK_CHIP =hi3519av100
unpacking drv
mkdir: created directory 'drv/'
run_command_progress_float: 'tar -xvzf package/drv.tgz'
[100%]##################################################|
unpacking osal
mkdir: created directory 'osal/'
run_command_progress_float: 'tar -xvzf package/osal.tgz'
[100%]##################################################|
unpacking osdrv
run_command_progress_float: 'tar -xvzf package/osdrv.tgz'
[100%]##################################################|
mkdir: created directory 'smp'
mkdir: created directory 'smp/a53_linux/'
unpacking mpp_smp_linux.tgz 
run_command_progress_float: 'tar -xvzf package/mpp_smp_linux.tgz -C smp/a53_linux'
[100%]##################################################|
/home/hisilicon/3519A/Hi3519AV100_SDK_V2.0.2.0/smp/a53_linux /home/hisilicon/3519A/Hi3519AV100_SDK_V2.0.2.0
/home/hisilicon/3519A/Hi3519AV100_SDK_V2.0.2.0


直接執(zhí)行./sdk.unpack進(jìn)行解壓安裝會(huì)報(bào)錯(cuò),因?yàn)閁buntu中黎炉,/bin/sh默認(rèn)已經(jīng)指向dash枝秤,這是一個(gè)不同于bash的shell,主要是為了執(zhí)行腳本而出現(xiàn)慷嗜,而不是交互淀弹,dash速度更快,但功能比bash少很多庆械,語法嚴(yán)格遵守POSIX標(biāo)準(zhǔn)薇溃,出現(xiàn)錯(cuò)誤后不會(huì)執(zhí)行后續(xù)腳本命令
解決方法1:
  步驟1:/bin/bash sdk.unpack
解決方法2:
  步驟1:vim scripts/common.sh; 第一行:#!/bin/sh->!/bin/bash
  步驟2:vim sdk.unpack; 第一行:#!/bin/sh->!/bin/bash
  步驟3:./sdk.unpack
解決方法3:
  步驟1:sudo dpkg-reconfigure dash
  步驟2:出現(xiàn)菜單問是否需要dash,選no.
  步驟3:./sdk.unpack

root@ubuntu:/home/hisilicon/3519A/Hi3519AV100_SDK_V2.0.2.0# ./sdk.unpack 
./sdk.unpack: 2: ./sdk.unpack: source: not found
./sdk.unpack: 4: ./sdk.unpack: ECHO: not found
./sdk.unpack: 6: ./sdk.unpack: WARN: not found
./sdk.unpack: 7: ./sdk.unpack: WARN: not found
./sdk.unpack: 8: ./sdk.unpack: ECHO: not found
./sdk.unpack: 15: ./sdk.unpack: ECHO: not found
./sdk.unpack: 20: ./sdk.unpack: ECHO: not found
mkdir: created directory 'drv/'
./sdk.unpack: 22: ./sdk.unpack: run_command_progress_float: not found
./sdk.unpack: 24: ./sdk.unpack: ECHO: not found
mkdir: created directory 'osal/'
./sdk.unpack: 26: ./sdk.unpack: run_command_progress_float: not found
./sdk.unpack: 28: [: =: unexpected operator
./sdk.unpack: 28: [: =: unexpected operator
./sdk.unpack: 34: ./sdk.unpack: ECHO: not found
mkdir: created directory 'osdrv/'
./sdk.unpack: 36: ./sdk.unpack: run_command_progress_float: not found
./sdk.unpack: 39: [: =: unexpected operator
./sdk.unpack: 54: [: =: unexpected operator
./sdk.unpack: 54: [: =: unexpected operator
./sdk.unpack: 82: [: =: unexpected operator
./sdk.unpack: 82: [: =: unexpected operator
./sdk.unpack: 110: [: =: unexpected operator
./sdk.unpack: 110: [: =: unexpected operator
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末缭乘,一起剝皮案震驚了整個(gè)濱河市沐序,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌堕绩,老刑警劉巖策幼,帶你破解...
    沈念sama閱讀 221,888評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異奴紧,居然都是意外死亡特姐,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門黍氮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來唐含,“玉大人,你說我怎么就攤上這事滤钱【鹾” “怎么了?”我有些...
    開封第一講書人閱讀 168,386評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵件缸,是天一觀的道長铜靶。 經(jīng)常有香客問我,道長他炊,這世上最難降的妖魔是什么争剿? 我笑而不...
    開封第一講書人閱讀 59,726評(píng)論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮痊末,結(jié)果婚禮上蚕苇,老公的妹妹穿的比我還像新娘。我一直安慰自己凿叠,他們只是感情好涩笤,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,729評(píng)論 6 397
  • 文/花漫 我一把揭開白布嚼吞。 她就那樣靜靜地躺著,像睡著了一般蹬碧。 火紅的嫁衣襯著肌膚如雪舱禽。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,337評(píng)論 1 310
  • 那天恩沽,我揣著相機(jī)與錄音誊稚,去河邊找鬼。 笑死罗心,一個(gè)胖子當(dāng)著我的面吹牛里伯,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播渤闷,決...
    沈念sama閱讀 40,902評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼疾瓮,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了飒箭?” 一聲冷哼從身側(cè)響起爷贫,我...
    開封第一講書人閱讀 39,807評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎补憾,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體卷员,經(jīng)...
    沈念sama閱讀 46,349評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡盈匾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,439評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了毕骡。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片削饵。...
    茶點(diǎn)故事閱讀 40,567評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖未巫,靈堂內(nèi)的尸體忽然破棺而出窿撬,到底是詐尸還是另有隱情,我是刑警寧澤叙凡,帶...
    沈念sama閱讀 36,242評(píng)論 5 350
  • 正文 年R本政府宣布劈伴,位于F島的核電站,受9級(jí)特大地震影響握爷,放射性物質(zhì)發(fā)生泄漏跛璧。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,933評(píng)論 3 334
  • 文/蒙蒙 一新啼、第九天 我趴在偏房一處隱蔽的房頂上張望追城。 院中可真熱鬧,春花似錦燥撞、人聲如沸座柱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽色洞。三九已至戏锹,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間锋玲,已是汗流浹背景用。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留惭蹂,地道東北人伞插。 一個(gè)月前我還...
    沈念sama閱讀 48,995評(píng)論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像盾碗,于是被迫代替她去往敵國和親媚污。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,585評(píng)論 2 359