1. 程式人生 > >第一章:搭建海思Hi3518E_SDK開發環境(1)

第一章:搭建海思Hi3518E_SDK開發環境(1)

寫在前面:

搭建海思Hi3518E_SDK開發環境分為1、2章,但是本章的第6節之後,走了點小彎路,但是還是留下來了

畢竟只是筆記而已,好好學習吧。

1、首先將Hi3518E_SDK_V1.0.3.0.tgz檔案放入linux中,並解壓。


2、這三個檔案(指令碼),瞭解一下,才能是如何編譯海思的SDK



2.1、sdk.cleanup是用來清理編譯的過的檔案,make clean
2.2、sdk.unpack用來解壓SDK的。
2.3、common檔案中定義了很多函式。

3、修改過的程式碼記得要打包,要不然執行cleanup會將程式碼清除乾淨,然後從壓縮包中又解壓出來。

4、arm-hisiv300-linux 和 arm-hisiv400-linux。其中,arm-hisiv300-linux工具鏈對應uclibc庫,arm-hisiv400-linux工具鏈對應glibc庫。
uclibc庫是精簡版的,好處是比較小。
glibc庫是gcc的標準庫,很多功能都有,但是比較大。
5、具體命令如下

5.1、編譯整個osdrv目錄:

make OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3516cv200 allmake OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3518ev200 allmake OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3518ev201 all或者make OSDRV_CROSS=arm-hisiv400-linux CHIP=hi3516cv200 allmake OSDRV_CROSS=arm-hisiv400-linux CHIP=hi3518ev200 allmake OSDRV_CROSS=arm-hisiv400-linux CHIP=hi3518ev201 all5.2、清除整個osdrv目錄的編譯檔案:make OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3516cv200 cleanmake OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3518ev200 cleanmake OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3518ev201 clean或者make OSDRV_CROSS=arm-hisiv400-linux CHIP=hi3516cv200 cleanmake OSDRV_CROSS=arm-hisiv400-linux CHIP=hi3518ev200 cleanmake OSDRV_CROSS=arm-hisiv400-linux CHIP=hi3518ev201 clean5.3、徹底清除整個osdrv目錄的編譯檔案,除清除編譯檔案外,還刪除已編譯好的映象:make OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3516cv200 distcleanmake OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3518ev200 distcleanmake OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3518ev201 distclean或者make OSDRV_CROSS=arm-hisiv400-linux CHIP=hi3516cv200 distcleanmake OSDRV_CROSS=arm-hisiv400-linux CHIP=hi3518ev200 distcleanmake OSDRV_CROSS=arm-hisiv400-linux CHIP=hi3518ev201 distclean

6、在Hi3518E_SDK_V1.0.3.0目錄中,先執行./sdk.cleanup 清除當前目錄裡面的檔案,在執行./sdk.unpack 解壓開sdk裡面的檔案。這樣以防裡面殘留檔案影響我們的編譯。


(彎路不做參考)6、安裝一下交叉編譯工具鏈,在SDK包裡面有,通過檢視makefile,我們可以得知,交叉編譯工具鏈要安裝在osdrv下。

接下來跳轉到第二章的14點,先在/osdrv/opensource/toolchain/arm-hisiv300-linux下執行sudo ./cross.install.v300

7、執行make OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3518ev200 all 會出現如下問題,百度之後可以得知的:pushd命令要在bash下才能使用,所以更改一下sh的連結地址即可。

執行命令:

which sh
which bash
sudo rm /bin/sh
sudo ln -s /bin/bash /bin/sh
ls /bin/sh -l

8、修改完成之後,執行相應的make指令,還是會出現錯誤,主要原因是我這裡使用的是64位的ubuntu,所以要打32位的補丁才能正常使用。
       在交叉編譯工具鏈的資料夾中使用file命令,可以看出這個交叉編譯工具鏈是32位的,而我們的ubuntu是64位的。


9、給ubuntu16.0403X64安裝32位相容包
apt-get install lib32ncurses5 
apt-get install lib32z1​