目录
目录 前言 编译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 CROSS_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 ,以便于您获取更多的相关知识。