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

文章目录

  • 解压缩SDK包
  • 展开SDK包
  • 在linux上安装交叉编译器
  • 编译osdrv
    • 编译kernel
      • 打补丁
      • 编译
    • 编译uboot
  • 制作文件系统镜像
  • 最后所有需要的镜像如下

解压缩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 出现以下结果则证明安装成功
在这里插入图片描述

编译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)_第1张图片

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

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

你可能感兴趣的:(linux,hi3516,海思Hi3516,嵌入式开发)