海思Hi3516DV300开发环境搭建

2024-03-01 08:10

本文主要是介绍海思Hi3516DV300开发环境搭建,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

海思Hi3516DV300开发环境搭建

  • 前言
  • 一、虚拟机的创建
    • 1.VMware Workstation 16 Pro 虚拟机下载安装
    • 2.ubuntu16.04系统的新建安装
    • 3.VMware Tools的安装
  • 二、arm-himix200-linux交叉编译器的安装
    • 1.传输文件
    • 2.安装交叉编译器
  • 三、U-boot编译
    • 1.先展开SDK
    • 2.编译U-Boot
  • 四、Kernel编译
  • 五、根文件系统制作
    • 1.shell外壳程序编译
    • 2.制作基本目录结构
    • 3.制作运行库
  • 六、文件系统打包生成镜像文件
  • 总结

前言

本篇文章是基于ubuntu16.04镜像系统进行开发,镜像文件获得点击如下链接:
官方下载地址(速度慢):
https://www.ubuntu.com/download

浙江大学:
http://mirrors.zju.edu.cn/ubuntu-releases/16.04/

中科大源:
http://mirrors.ustc.edu.cn/ubuntu-releases/16.04/

如果想用其他网站可自行百度。

下文需要的share文件资料都在这:

https://pan.baidu.com/s/1oWt9FGMY464xd7yDL6fMvg

提取码:483a

一、虚拟机的创建

1.VMware Workstation 16 Pro 虚拟机下载安装

参考:https://zhuanlan.zhihu.com/p/369619334

2.ubuntu16.04系统的新建安装

参考:https://blog.csdn.net/m0_72065741/article/details/131069763?spm=1001.2014.3001.5501

3.VMware Tools的安装

安装ubuntu16.04完成后,显示未撑满全屏,需要使用VMware Tools解决此问题。
参考:https://blog.csdn.net/m0_72065741/article/details/131075114?spm=1001.2014.3001.5501

二、arm-himix200-linux交叉编译器的安装

1.传输文件

从PC机复制文件到ubuntu操作系统,虽然VMware Tools的安装可以将文件直接复制到ubuntu操作系统,但是我的貌似不行,所以我使用了另一种方式,借助WinSCP软件传输文件,也可以使用ubuntu直接挂载到PC机下使用共享文件夹。
WinSCP方法参考:
安装教程:https://blog.csdn.net/qq_42951560/article/details/116227677

使用教程:https://blog.csdn.net/m0_72065741/article/details/131105711?spm=1001.2014.3001.5501

PC端文件夹共享到ubuntu方法参考:https://blog.csdn.net/m0_72065741/article/details/131106336?spm=1001.2014.3001.5501

2.安装交叉编译器

先使用命令tar -zxf arm-himix200-linux.tgz解压压缩包

tar -zxf arm-himix200-linux.tgz

在这里插入图片描述

打开解压后的文件夹
在这里插入图片描述

执行如下命令安装工具链(时间有点久):

sudo ./arm-himix200-linux.install

在这里插入图片描述

安装好后,输入reboot命令重启虚拟机,打开终端输入指令arm-himix200-linux-后连按两次tab键,会展现所安装的全部工具链。
在这里插入图片描述
接下来,安装开发环境所需的软件包:

sudo apt-get install vim make gcc g++ patch python net-tools swig u-boot-tools bison flex
sudo apt-get install python-dev libssl-dev libncurses-dev python3-dev
sudo apt-get install build-essential lib32z1 lib32stdc++6

安装完成后,查看交叉编译器是否安装成功,输入指令:

arm-himix200-linux-gcc -v

在这里插入图片描述
显示6.3.0版本,安装成功

三、U-boot编译

1.先展开SDK

将商家给的SDK包拷贝到自己想要的位置,解压缩压缩包。
在这里插入图片描述
因为SDK脚本不支持bash,所以要改成bash,执行命令:

sudo dpkg-reconfigure dash

方向键选择No,按回车
在这里插入图片描述
打开Hi3516CV_SDK_V2.0.2.0,执行命令:

./sdk.unpack

即展开了SDK包
在这里插入图片描述
展开完成后,将会有这些文件
在这里插入图片描述

2.编译U-Boot

打开展开后的SDK目录中的osdrv/opensource/uboot目录,解压u-boot-2016.11.tgz,随后打开解压后的文件。
在这里插入图片描述

先执行指令生成.config:

# 根据使用的存储器类型进行选择,Nor和Nand使用前者,eMMC使用后者
make ARCH=arm CROSS_COMPILE=arm-himix200-linux- hi3516dv300_defconfig
make ARCH=arm CROSS_COMPILE=arm-himix200-linux- hi3516dv300_emmc_defconfig

在这里插入图片描述

再执行编译:

make ARCH=arm CROSS_COMPILE=arm-himix200-linux- -j2

出现如图所示内容即编译成功。
在这里插入图片描述

回到展开后的SDK目录,再打开osdrv/tools/pc/uboot_tools目录后解压hiregbin-v5.0.0.tgz并打开。
在这里插入图片描述

分别输入下列指令生成镜像:

sudo chmod +x hiregbin
./hiregbin ../Hi3516DV300-DMEB_4L_FLYBY-DDR3_1800M_512MB_16bitx2-A7_900M-SYSBUS_300M.xlsm ./reg.bin
cp reg.bin ../../../../opensource/uboot/u-boot-2016.11/.reg
cd ../../../../opensource/uboot/u-boot-2016.11
make ARCH=arm CROSS_COMPILE=arm-himix200-linux- u-boot-z.bin

在这里插入图片描述
在这里插入图片描述
出现如图所示,即U-Boot编译成功,生成镜像成功。

四、Kernel编译

先将linux-4.9.37.tar.gz拷贝到ubuntu的SDK目录的osdrv/opensource/kernel目录下并解压
在这里插入图片描述
在这里插入图片描述

执行下面命令代码:

mv linux-4.9.37 linux-4.9.y && cd linux-4.9.y
patch -p1 < ../linux-4.9.37.patch

在这里插入图片描述

再执行如下命令进行编译:

# 根据使用的存储器类型进行选择,Nor和Nand使用前者,eMMC使用后者
make ARCH=arm CROSS_COMPILE=arm-himix200-linux- hi3516dv300_smp_defconfig
make ARCH=arm CROSS_COMPILE=arm-himix200-linux- hi3516dv300_emmc_smp_defconfig

执行结果如下
在这里插入图片描述

继续执行命令:

# 编译内核
make ARCH=arm CROSS_COMPILE=arm-himix200-linux- uImage -j2

执行结果如下:
在这里插入图片描述

继续执行命令编译模块:

# 编译模块
make ARCH=arm CROSS_COMPILE=arm-himix200-linux- modules
mkdir _modules_install
make ARCH=arm INSTALL_MOD_PATH=_modules_install modules_install

这是make ARCH=arm CROSS_COMPILE=arm-himix200-linux- modules的执行结果
在这里插入图片描述

这是后两句代码的执行结果:
在这里插入图片描述
在这里插入图片描述

最终在 arch/arm/boot/ 目录下得到内核镜像 uImage ;
在 _modules_install 目录下得到编译出的内核驱动ko文件。
在这里插入图片描述
在这里插入图片描述

五、根文件系统制作

1.shell外壳程序编译

打开SDK下的osdrv/opensource/busybox,解压busybox-1.26.2.tgz并打开
在该文件下执行如下命令:

cp ./config_v200_a7_softfp_neon ./.config

在这里插入图片描述

make -j2

在这里插入图片描述

make install

在这里插入图片描述

2.制作基本目录结构

将SDK目录中osdrv/rootfs_scripts文件中的rootfs.tgz压缩包解压,将rootfs复制到home目录中。

在这里插入图片描述

将SDK目录中的osdrv/opensource/busybox/busybox-1.26.2目录下的_install文件夹复制到/home/rootfs/bin中。即在busybox-1.26.2目录中执行如下命令:

sudo cp -r _install /home/rootfs/bin/

在这里插入图片描述

再执行下面指令:

sudo vi /home/rootfs/etc/inittab

再第77行插入

::respawn:/sbin/getty -L ttyAMA0 115200 vt100 -n root -I "Auto login as root ..."

在这里插入图片描述

3.制作运行库

在/home/rootfs目录下执行如下命令,运行库文件将被拷贝到/home/rootfs/目录下的 lib 目录中:

sudo tar -xf /opt/hisi-linux/x86-arm/arm-himix200-linux/runtime_glibc/a7_softfp_neon-vfpv4/lib.tgz -C ./

在这里插入图片描述

将之前kernel编译时编译的模块也复制到lib目录中,模块文件在SDK目录的osdrv/opensource/kernel/linux-4.9.y/_modules_install/lib目录下,打开此目录,执行如下命令:

sudo cp -r modules /home/rootfs/lib

在这里插入图片描述
至此,根文件系统制作成功

六、文件系统打包生成镜像文件

将之前与PC端共享的文件夹内的yaffs2utils-0.2.9.tar.gz压缩包拷贝到SDK目录下的osdrv/tools/pc/mkyaffs2image/目录下,解压缩并打开。
在这里插入图片描述
在这里插入图片描述

在该目录下执行输入指令:

make

在这里插入图片描述
在这里插入图片描述
即可生成mkyaffs2可执行文件,将此可执行文件复制到/user/bin/目录下
在这里插入图片描述

打开home目录:

cd /home

然后执行命令:

sudo mkyaffs2 rootfs rootfs_hi3516dv300.yaffs2 2k 8bit

在这里插入图片描述
则根文件系统镜像生成成功。

总结

则u-boot-hi3516dv300.bin、uImage、rootfs_hi3516dv300.yaffs2即为所需要烧入到开发板的镜像文件。

这篇关于海思Hi3516DV300开发环境搭建的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/761752

相关文章

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

Python极速搭建局域网文件共享服务器完整指南

《Python极速搭建局域网文件共享服务器完整指南》在办公室或家庭局域网中快速共享文件时,许多人会选择第三方工具或云存储服务,但这些方案往往存在隐私泄露风险或需要复杂配置,下面我们就来看看如何使用Py... 目录一、android基础版:HTTP文件共享的魔法命令1. 一行代码启动HTTP服务器2. 关键参

PyQt5 GUI 开发的基础知识

《PyQt5GUI开发的基础知识》Qt是一个跨平台的C++图形用户界面开发框架,支持GUI和非GUI程序开发,本文介绍了使用PyQt5进行界面开发的基础知识,包括创建简单窗口、常用控件、窗口属性设... 目录简介第一个PyQt程序最常用的三个功能模块控件QPushButton(按钮)控件QLable(纯文本

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本

基于Python开发一个图像水印批量添加工具

《基于Python开发一个图像水印批量添加工具》在当今数字化内容爆炸式增长的时代,图像版权保护已成为创作者和企业的核心需求,本方案将详细介绍一个基于PythonPIL库的工业级图像水印解决方案,有需要... 目录一、系统架构设计1.1 整体处理流程1.2 类结构设计(扩展版本)二、核心算法深入解析2.1 自

Windows环境下解决Matplotlib中文字体显示问题的详细教程

《Windows环境下解决Matplotlib中文字体显示问题的详细教程》本文详细介绍了在Windows下解决Matplotlib中文显示问题的方法,包括安装字体、更新缓存、配置文件设置及编码調整,并... 目录引言问题分析解决方案详解1. 检查系统已安装字体2. 手动添加中文字体(以SimHei为例)步骤

Java JDK1.8 安装和环境配置教程详解

《JavaJDK1.8安装和环境配置教程详解》文章简要介绍了JDK1.8的安装流程,包括官网下载对应系统版本、安装时选择非系统盘路径、配置JAVA_HOME、CLASSPATH和Path环境变量,... 目录1.下载JDK2.安装JDK3.配置环境变量4.检验JDK官网下载地址:Java Downloads

SQLite3 在嵌入式C环境中存储音频/视频文件的最优方案

《SQLite3在嵌入式C环境中存储音频/视频文件的最优方案》本文探讨了SQLite3在嵌入式C环境中存储音视频文件的优化方案,推荐采用文件路径存储结合元数据管理,兼顾效率与资源限制,小文件可使用B... 目录SQLite3 在嵌入式C环境中存储音频/视频文件的专业方案一、存储策略选择1. 直接存储 vs

SpringBoot开发中十大常见陷阱深度解析与避坑指南

《SpringBoot开发中十大常见陷阱深度解析与避坑指南》在SpringBoot的开发过程中,即使是经验丰富的开发者也难免会遇到各种棘手的问题,本文将针对SpringBoot开发中十大常见的“坑... 目录引言一、配置总出错?是不是同时用了.properties和.yml?二、换个位置配置就失效?搞清楚加