Hi3516DV300双目开发板开发环境搭建

Hi3516DV300双目开发板开发环境搭建Hi3516DV300双目开发板开发环境搭建1、软件包安装参考:《Hi3516CV500╱Hi3516DV300SDK安装及升级使用说明》将sdk和交叉工具链文件在同一目录展开sdk包1.进入Hi3516CV500_SDK_V2.0.1.0目录下执行./sdk.unpack(请用root或sudo权限执行)2.解压tar–xzfarm-himix200-linux.tgz,进入arm-himix200-linux目录运行chmod+xarm-himix200-l

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

一、软件包安装

参考:《Hi3516CV500╱Hi3516DV300 SDK 安装及升级使用说明》
海思HI3516DV300 自学记录【1】:linux服务器SDK安装、nfs挂载

将sdk和交叉工具链文件在同一目录
在这里插入图片描述

1. 展开sdk包

(请用 root 或 sudo 权限执行)
 1. tar -xvf Hi3516CV500_SDK_V2.0.1.0.tgz
 2. cd Hi3516CV500_SDK_V2.0.1.0/
 3. ./sdk.unpack

2.安装交叉编译himix200

环境变量设置
海思AI芯片(Hi3516DV300/CV500)开发(搭建Linux开发环境)

(请用 root 或 sudo 权限执行)

 1. tar –xzf arm-himix200-linux.tgz
 2. cd arm-himix200-linux/
 3. ./arm-himix200-linux.install 
 4. 执行source /etc/profile,安装交叉编译器的脚本配置的环境变量就可以生效了,或者请重新登陆也可

3.编译整个osdrv

cd Hi3516CV500_SDK_V2.0.1.0/osdrv/

默认不发布内核源码包,只发布补丁文件。内核源码包需自行从开源社区上下载。
从linux开源社区下载v4.9.37版本的内核:

  1. 进入网站:www.kernel.org
  2. 选择HTTP协议资源的https://www.kernel.org/pub/选项,进入子页面
  3. 选择linux/菜单项,进入子页面
  4. 选择kernel/菜单项,进入子页面
  5. 选择v4.x/菜单项,进入子页面
  6. 下载linux-4.9.37.tar.gz(或者linux-4.9.37.tar.xz)到osdrv/opensource/kernel目录下

我的板子为emmc启动

make OSDRV_CROSS=arm-himix200-linux  BOOT_MEDIA=emmc all
make all

注意:由于Makefile中文件系统编译依赖组件较多,不能保证单独编译的文件系统可用,建议采用make all编译;但可单独编译uboot,kernel;

可以传如下参数:
a, BOOT_MEDIA:spi(default) or emmc
b, CHIP:hi3516dv300(default) or hi3516cv500
c, 如果客户想要更换可以使用TARGET_XLSM=*.xlsm来指定所需要的u-boot表格文件

(2)清除整个osdrv目录的编译文件:

make OSDRV_CROSS=arm-himix200-linux clean

(3)彻底清除整个osdrv目录的编译文件,除清除编译文件外,还删除已编译好的镜像:

make OSDRV_CROSS=arm-himix200-linux distclean

4. SDK 目录介绍

1.6 SDK 目录介绍
Hi3516C V500_SDK_Vx.x.x.x 目录结构如下:
|-- smp #smp 目录
 |--a7_linux 
 |-- drv # drv 目录
 | |-- extdrv # 板级外围驱动源代码
 | |-- interdrv # mipi,cipher 等驱动源代码 
 |-- mpp # 存放单核媒体处理平台的目录
 | |-- component # mpp 组件
 | | |-- isp # isp 相关组件
 | |-- init # 内核模块的初始化源代码
 | |-- obj # 内核模块的 obj 文件
 | |-- include # 头文件
 | |-- ko # 内核 ko 模块
 | |-- lib # 用户态 lib 库
 | |-- sample # 样例源代码
 | |-- tools # 媒体处理相关工具
 | |-- cfg.mak # mpp 配置文件
 | |-- Makefile.param # mpp 全局编译选项
 | |-- Makefile.linux.param # mpp linux 编译选项
 |-- osal # 存放操作系统适配层的头文件和源文件的目录
 | |-- include # 存放操作系统适配层的头文件的目录
| |-- linux # 存放 linux 系统适配层的源文件的目录
|-- osdrv # 存放操作系统及相关驱动的目录
 |-- component # 组件源代码 
 |-- opensource # opensource 源代码
 | |-- busybox # busybox 源代码
 | |-- kernel # linux 内核源代码
 | |-- uboot # uboot 源代码
 |-- platform # 平台文件
 |-- pub # 编译好的镜像、工具、drv 驱动等
 |-- tools # 工具源代码
 |-- readme_cn.txt # osdrv 中文使用说明
 |-- readme_en.txt # osdrv 英文使用说明
 |-- ...... # 
 |-- Makefile # osdrv Makefile 
|-- package # 存放 SDK 各种压缩包的目录
 |-- drv.tgz # drv 压缩包
 |-- mpp_smp_linux.tgz # 媒体处理平台软件压缩包
 |-- osal.tgz # 操作系统适配层源码压缩包
 |-- osdrv.tgz # linux 内核/uboot/rootfs/tools 源码压缩包
|-- scripts # 存放 shell 脚本的目录
|-- sdk.cleanup # SDK 清理脚本
|-- sdk.unpack # SDK 展开脚本

二、烧写 uboot、kernel、fs

####之前把系统搞崩了只能通过HItool 串口下载uboot了#####

1. 选择相应的芯片 烧录方式 烧录文件以及设置大小

在这里插入图片描述

2.环境参数配置(未启动 以后再试)

我是直接使用hitool工具将三个文件全写入 使用uboot 下载的未成功 以下只是对基本命令的了解
我使用的是送的uboot bin文件其默认环境参数如下

bootargs=mem=512M console=ttyAMA0,115200 clk_ignore_unused root=/dev/mmcblk0p3 rootfstype=ext4 rw init=/linuxrc rootwait blkdevparts=mmcblk0:1M(boot),12M(kernel),32M(rootfs),1024M(user),-(data)
bootcmd=mmc read 0 0x80000000 0x800 0x6000; bootm 0x80000000

根据实际镜像修改为
###这个mem为多少 没有去研究 复制别人的
###写到这里想起在uboot里面使用tftb下载的镜像文件没有加载起来,不知道是不是设置有问题

bootargs=mem=128M console=ttyAMA0,115200 clk_ignore_unused rw rootwait root=/dev/mmcblk0p3 rootfstype=ext4 blkdevparts=mmcblk0:1M(uboot.bin),12M(kernel),96M(rootfs.ext4),-(user)
bootcmd=mmc read 0 0x80000000 0x800 0x6000; bootm 0x80000000

设置ip等

setenv serverip 192.168.1.101&&setenv ipaddr 192.168.1.103&&setenv ethaddr ea:95:e6:36:74:8e&&setenv netmask&&255.255.255.0&&setenv gatewayip 192.168.1.1

注意:《Hi3516CV500╱Hi3516DV300 SDK 安装及升级使用说明》文档是到 SPI NOR Flash烧写的命令 要使用是他方式烧写的参考《HiBurn 工具使用指南》
以下是emmc烧写方式

烧写内核82000000
mw.b 82000000  0xff C00000   //12M
tftp 82000000  uImage_hi3516dv300_smp
mmc erase 800 6000                //这一步不知道是否需要 参考书上未写
mmc write 0 0x80000000 0 0x2000


烧写文件系统2000000  96M       13M开始
mw.b 82000000 0xff 0x6000000    
tftp 82000000 rootfs_hi3516dv300_96M.ext4    
mmc erase 6800 30000    
mmc write 0 0x82000000 6800 30000

三、NFS文件系统 telnet

1. 开启 Linux 下的网络

ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx; 
ifconfig eth0 xx.xx.xx.xx netmask xx.xx.xx.xx; 
route add default gw xx.xx.xx.xx

##可以设置静态ip 就不用每次设置了##
参考:[海思3519av100] 海思开发板设置静态ip并设置telnetd自启动服务
**注意:**telnet需要先在win下开启 win10怎么开启telnet服务

这里不知道为什么telnet总是登录不上去,很容易掉

挂载:ubuntu配置NFS,挂载到开发板

mount -t nfs -o nolock -o tcp -o rsize=32768,wsize=32768 开发板ip:/nfs路径 /mnt

mount -t nfs -o nolock -o tcp 192.168.1.104:/home/nfs /mnt
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/193237.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 简单工厂模式

    简单工厂模式

    2021年12月10日
  • DFS(深度优先搜索算法)「建议收藏」

    DFS(深度优先搜索算法)「建议收藏」基本概念深度优先搜索算法(DepthFirstSearch,简称DFS):一种用于遍历或搜索树或图的算法。沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点v的所在边都己被探寻过或者在搜寻时结点不满足条件,搜索将回溯到发现节点v的那条边的起始节点。整个进程反复进行直到所有节点都被访问为止。属于盲目搜索,最糟糕的情况算法时间复杂度为O(!n)。算法思想回溯法(探索与回溯法…

  • java如何打印菱形_打印菱形java

    java如何打印菱形_打印菱形java第一步:首先对图像进行解析想要打印如图所示的形状经过简单分析之后可得出想要打印该图形必须要进行多层循环嵌套分两个部分进行打印第一部分为上半部分前四行他们是递增的关系后半部分后三行为递减关系,由此可以得出我们需要写两个打的循环。并且由于“*”位置的关系我们必须带入空格同时打印所以每个部分需要两个循环控制,即两个大循环每个里面嵌套两个小循环总计四个循环。第二部:对数字进行分析在分析之前我们必…

  • 多态性_dna多态性的四个类型

    多态性_dna多态性的四个类型多态性的重要性:多态性是面向对象程序设计的一个强大机制:为名称相同的方法提供不同的实现方式,继承自同一基类的不同派生类可以为同名方法定义不同的功能,统一方法作用于不同类的对象,可以有不同的解释,产生

  • JAVA语法基础之变量和基本数据类型

    JAVA语法基础之变量和基本数据类型

  • 数据库中的多表查询总结[通俗易懂]

    数据库中的多表查询总结[通俗易懂]数据库在单个表里操作其实很简答,但是涉及在多张表里寻找数据的时候,难度会大大增加,这里解释一些多表联合查询常用的操作。一、join操作在数据库的查询中,多表连接查询是一大难点,也是多表查询里的重点。连接主要有以下四种情况:INNERJOIN(内连接):如果表中有至少一个匹配,则返回行【在语法中可以省略INNER关键字】LEFTJOIN(左连接):从左表返回所有的行,如果右表中…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号