大家好,又见面了,我是你们的朋友全栈君。
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版本的内核:
- 进入网站:www.kernel.org
- 选择HTTP协议资源的https://www.kernel.org/pub/选项,进入子页面
- 选择linux/菜单项,进入子页面
- 选择kernel/菜单项,进入子页面
- 选择v4.x/菜单项,进入子页面
- 下载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