欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

海思Hi3516DV300开发环境搭建一(编译uboot和kernel)

程序员文章站 2022-04-30 11:12:34
...

解压缩SDK包

在发布包 Hi3516C V500R001C01SPCxxx.rar 所在的目录中找到SDK的tgz包
在linux中使用命令:tar -zxf Hi3516CV500_SDK_Vx.x.x.x.tgz,解压缩该文件,可以得到一个
Hi3516CV500_SDK_Vx.x.x.x 目录

展开SDK包

执行 ./sdk.unpack

在linux上安装交叉编译器

在发布包 Hi3516C V500R001C01SPCxxx.rar 所在的目录中下载工具链文件。
安装交叉编译器需要有 sudo 权限或者 root 权限
解压 tar –xzf arm-himix200-linux.tgz
运行 chmod +x arm-himix200-linux.install
然后运行./arm-himix200-linux.install 即可。
执行 source /etc/profile 配置环境变量

执行arm-himix200-linux-gcc --version 出现以下结果则证明安装成功
海思Hi3516DV300开发环境搭建一(编译uboot和kernel)

编译osdrv

此目录下osdrv中的readme_cn写的很详细。但不建议使用第一种make all的方式,真的各种坑,各种血泪!!建议大家使用分开编译uboot,kernel

编译kernel

打补丁

将下载的 linux-4.9.37.tar.gz 存放到 osdrv/opensource/kernel 目录中
进入 osdrv 的根目录,执行如下命令:
cd opensource/kernel
tar -zxf linux-4.9.37.tar.gz
mv linux-4.9.37 linux-4.9.y
cd linux-4.9.y
patch -p1 < ../linux-4.9.37.patch
cd ../
tar -czf linux-4.9.y.tgz linux-4.9.y
cd ../../

编译

进入 osdrv/opensource/kernel/linux-4.9.y 目录
执行如下命令:

cp arch/arm/configs/hi3519dv300_smp_defconfig .config  

//建议到arch/arm/configs/目录看一下对应你的开发板的可选的配置文件

source /etc/profile
export LC_ALL=C
sudo apt-get install u-boot-tools
make ARCH=arm CROSS_COMPILE=arm-himix200-linux- menuconfig
make ARCH=arm CROSS_COMPILE=arm-himix200-linux- uImage
make ARCH=arm CROSS_COMPILE=arm-himix200-linux- modules //编译模块

生成的 uImage 在 linux-4.9.y/arch/arm/boot 目录下

编译uboot

  • 进入目录osdrv/opensource/uboot
  • 解压文件
tar -xzf u-boot-2016.11.tgz
cd u-boot-2016.11
  • 编译uboot
source /etc/profile
export LC_ALL=C
cp configs/hi3516dv300_defconfig .config
make ARCH=arm CROSS_COMPILE=arm-himix200-linux- menuconfig
make ARCH=arm CROSS_COMPILE=arm-himix200-linux-
cp ../../../tools/pc/uboot_tools/reg_info.bin .reg 
make ARCH=arm CROSS_COMPILE=arm-himix200-linux- u-boot-z.bin

如果没有reg_info.bin文件,则到uboot_tools目录下制作reg.bin,参考readme
cd Hi3516CV500_SDK_V2.0.1.0/osdrv/tools/pc/uboot_tools/hiregbin-v5.0.1
chmod 777 hiregbin
./hiregbin ./Hi3516dv300.xlsm ./reg.bin
再回到 cd ../../../opensource/uboot执行
cp ../../../tools/pc/uboot_tools/reg.bin .reg 
make ARCH=arm CROSS_COMPILE=arm-himix200-linux- u-boot-z.bin

将生成可用的 u-boot-hi3516dv300.bin 镜像文件

制作文件系统镜像

参考osdrv目录下的readme

最后所有需要的镜像如下

看readme!
海思Hi3516DV300开发环境搭建一(编译uboot和kernel)

ps:期间你可能会碰到各种各种error,首先稳住心态,不要崩,慢慢解决。
第一原则是缺啥装啥,第二就是好好看出错目录下的readme,第三仔细在网上搜索资料

最后,从一个从未接触过嵌入式开发的小白废了一天劲摸索到这一步后,突然发现在海思给的SDK包中hi3516dv300_spi_smp_image_glibc文件夹下已经给出了所有制作好的镜像!!!
海思Hi3516DV300开发环境搭建一(编译uboot和kernel)