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
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 ,以便於您獲取更多的相關知識。