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

2022-09-27 15:11:39 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

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

  • 一、软件包安装
    • 1. 展开sdk包
    • 2.安装交叉编译himix200
    • 3.编译整个osdrv
    • 4. SDK 目录介绍
  • 二、烧写 uboot、kernel、fs
    • 1. 选择相应的芯片 烧录方式 烧录文件以及设置大小
    • 2.环境参数配置(未启动 以后再试)
  • 三、NFS文件系统 telnet
    • 1. 开启 Linux 下的网络

一、软件包安装

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

将sdk和交叉工具链文件在同一目录

1. 展开sdk包

代码语言:javascript复制
(请用 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开发环境)

代码语言:javascript复制
(请用 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

代码语言:javascript复制
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启动

代码语言:javascript复制
make OSDRV_CROSS=arm-himix200-linux  BOOT_MEDIA=emmc all
代码语言:javascript复制
make all

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

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

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

代码语言:javascript复制
make OSDRV_CROSS=arm-himix200-linux clean

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

代码语言:javascript复制
make OSDRV_CROSS=arm-himix200-linux distclean

4. SDK 目录介绍

代码语言:javascript复制
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文件其默认环境参数如下

代码语言:javascript复制
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下载的镜像文件没有加载起来,不知道是不是设置有问题

代码语言:javascript复制
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等

代码语言:javascript复制
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烧写方式

代码语言:javascript复制
烧写内核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 下的网络

代码语言:javascript复制
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,挂载到开发板

代码语言:javascript复制
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

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

0 人点赞