1. 程式人生 > >Hi3519V101開發環境搭建(二)

Hi3519V101開發環境搭建(二)

 

 

目錄

目錄 前言 編譯U-boot 編譯Linux-318y的核心 連結地址

前言

前面已經搭建好了Ubuntu下的海思開發環境,現在對編譯Uboot和Kernel的過程做一個簡單的記錄。參考文件《Hi3519V101 U-boot 移植應用開發指南.pdf》和《Hi3519V101 Linux開發環境使用者指南.pdf》。沒有研究過海思Uboot的內容,主要還是工作為主。 編譯U-boot

因為開發中沒有移植U-boot的需要,所以這裡只是把《Hi3519V101 U-boot 移植應用開發指南.pdf》中的命令做一些記錄而已。 
步驟1:cd /hisilicon/Hi3519V101_SDK_V1.0.2.0/osdrv/opensource/uboot 
步驟2:tar -xvf u-boot-2010.06.tgz 
步驟3:cd u-boot-2010.06/ 
執行命令: 
1. make ARCH=arm CR

OSS_COMPILE=arm-hisiv500-linux- hi3519_config生成hi3519_config檔案 
2. make ARCH=arm CROSS_COMPILE=arm-hisiv500-linux-生成u-boot.bin 
步驟4:配置DDR儲存器。

在Windows下開啟SDK中的”osdrv/tools/pc/uboot_tools”目錄下的配置表格。當選用不同的DDR SDRAM時,需要針對不同器件的特性,對配置工作表中的標籤頁【mddrc_dmc0】和【mddrc_phy0】進行修改。不明白。。沒試過。

步驟5:配置管腳複用

如果管腳複用有變化,還需要對配置表格中的標籤頁【multiplex】進行修改。不明白。。沒試過。

步驟6:生成最終的U-boot映象

完成配置表格的修改後,儲存表格。單擊表格第一個標籤頁上的按鈕【Generage reg 
bin file】 (只能點此按鈕),生成臨時檔案 reg_info.bin 
將臨時檔案 reg_info.bin 和編譯 u-boot 得到的 u-boot.bin 都**拷貝到 SDK 中的 
“osdrv/tools/pc/uboot_tools/”目錄**下,執行命令: 
./mkboot.sh reg_info.bin u-boot-hi3519v101.bin 
其中 u-boot-hi3519v101.bin 就是能夠在單板上執行的 U-boot 映象 編譯Linux-3.18.y的核心

步驟1:執行 cd /hisilicon/Hi3519V101_SDK_V1.0.2.0/osdrv/opensource/kernel/linux-3.18.y 
步驟2:執行 cp arch/arm/configs/hi3519v101_big_little_defconfig .config 
步驟3:執行 make ARCH=arm CROSS_COMPILE=arm-hisiv500-linux- menuconfig 
出現錯誤: 
scripts/kconfig/lxdialog/dialog.h:38:20: fatal error: curses.h: 沒有那個檔案或目錄 
compilation terminated. 
scripts/Makefile.host:108: recipe for target 'scripts/kconfig/mconf.o' failed 
make[1]: *** [scripts/kconfig/mconf.o] Error 1 
Makefile:541: recipe for target 'menuconfig' failed 
make: *** [menuconfig] Error 2 
原因:沒有相關依賴庫,需要安裝libncurses5-dev 
解決方法: 
1. sudo apt-get update 
2. sudo apt-get install libncurs* 
步驟4:在menu中選擇需要編譯到核心中的模組,然後儲存退出。按兩下ESC退出。 
步驟5: 
make ARCH=arm CROSS_COMPILE=arm-hisiv500-linux- clean 
make ARCH=arm CROSS_COMPILE=arm-hisiv500-linux- menuconfig 
make ARCH=arm CROSS_COMPILE=arm-hisiv500-linux- uImage 
編譯出錯: 
"mkimage" command not found - U-Boot images will not be built 
arch/arm/boot/Makefile:93: recipe for target 'arch/arm/boot/uImage' failed 
make[1]: *** [arch/arm/boot/uImage] Error 1 
arch/arm/Makefile:316: recipe for target 'uImage' failed 
make: *** [uImage] Error 2 
原因:一般linux編譯生成的是zImage,如果要編譯成uImage,需要有mkimage工具 
解決方法: 
步驟1: 
cd /hisilicon/Hi3519V101_SDK_V1.0.2.0/osdrv/opensource/uboot/u-boot-2010.06/tools 
步驟2:cp mkimage /usr/bin 
步驟3:make ARCH=arm CROSS_COMPILE=arm-hisiv500-linux- uImage 
最後,在cd /hisilicon/Hi3519V101_SDK_V1.0.2.0/osdrv/opensource/kernel/linux-3.18.y/arch/arm/boot生成zImage和uImage

2018.2.7 補充:在博主開發的過程中,雖然沒有再接觸海思,但是在搭建GDB環境的時候,看到一篇文章中有關於把海思的SDK放置到Qt的程式碼,所以把這篇文章記錄在此:用Qt 呼叫GDB除錯 Arm程式 詳細步驟—-可單步執行每一行,大家可以試著把海思的SDK中用到的檔案新增到Qt的.pro檔案中,在Qt的框架下除錯海思程式。 連結地址

用Qt 呼叫GDB除錯 Arm程式 詳細步驟—-可單步執行每一行

以上是Hi3519V101開發環境搭建(二)的全部內容,在雲棲社群的部落格、問答、公眾號、人物、課程等欄目也有Hi3519V101開發環境搭建(二)的相關內容,歡迎繼續使用右上角搜尋按鈕進行搜尋移植 , kernel HisiLicon ,以便於您獲取更多的相關知識。