【Hi3559AV100 Camera】Hi3559AV100 环境搭建
Hi3559AV100 环境搭建
前言
最近新接触海思平台,发现海思每个平台的环境搭建都有点不同,在官方文档中关于 Hi3559AV100 平台的详细搭建步骤并没有,所以整理了一下关于Hi3559AV100 的环境搭建文 档,希望对大家有帮助。
一、Linux 环境
我这里使用的是 Ubuntu 16.04 环境,官方文档说明推荐使用 64 位 Linux 服务器
- 网络环境搭建
需要事先在自己的 Ubuntu 下安装 nfs,samba, ssh, tftp 等网络组件。 这里就不详细说明,网上有很多相关环境搭建的文档 - 软件包安装
操作系统安装好后,且用户已自行配置好网络环境,则可继续如下步骤完成相关软件包的安装:
① 配置默认使用 bash
sudo dpkg-reconfigure dash
选择 no
② 安装软件包
sudo apt-get install make libc6:i386 lib32z1
lib32stdc++6 zlib1g-dev libncurses5-dev ncurses-term libncursesw5-dev g++
u-boot-tools:i386 texinfo texlive gawk libssl-dev openssl bc
③ 创建 /etc/ld.so.preload 文件,并执行
echo “” > /etc/ld.so.preload,以解决 64bit linux server 上某些第三方库编译失败的问题
echo "" > /etc/ld.so.preload
注意:出现如上错误的话可以执行
sudo sh -c “echo "" > /etc/ld.so.preload”
---- 结束
二、安装 SDK 包
- Hi3559AV100 SDK 包的位置在我们拿到的资料中 “Hi3559AV100***/01.software/board” 目录下,您可以看到一个
Hi3559AV100_SDK_Vx.x.x.x.tgz 的文件,该文件就是 Hi3559AV100 的软件开发包。 - 解压缩 SDK 包
tar -zxvf Hi3559AV100_SDK_V2.0.3.1.tgz
- 展开 SDK 包内容
进入到 Hi3559AV100_SDK_V2.0.3.1 目录
sudo ./sdk.unpack
注意:如果您需要通过
WINDOWS 操作系统中转拷贝 SDK 包,请先运行 sudo ./sdk.cleanup 收起 SDK 包的内容,拷贝到新的目录后再展开。
4. 在 linux 服务器上安装交叉编译器
注意:安装交叉编译器需要有 sudo 权限或者 root 权限
① 安装 aarch64 交叉编译器
tar –xzf aarch64-himix100-linux.tgz
chmod +x aarch64-himix100-linux.install
sudo ./aarch64-himix100-linux.install
修改 profile 文件
安装之后打开 profile 文件,查看是否存在:
export PATH="/opt/hisi-linux/x86-arm/aarch64-himix100-linux/bin:$PATH"
如果不存在加上这句就行
source /etc/profile
使 profile 文件生效
② 安装 arm-none-eabi 交叉编译器
gcc-arm-none-eabi-4_9-2015q3
交叉编译工具链下载连接:
https://launchpad.net/gcc-arm-embedded/+downloa
解压安装
tar -zxvf gcc-arm-none-eabi-4_9-2015q3-20150921-linux.tar -C /opt/
最后编辑 vim ~/.bashrc ,在文件末尾追加 PATH 环境变量
export PATH=$PATH:/opt/gcc-arm-none-eabi-4_9-2015q3/bin/
使用 source ~/.bashrc 使得新的 PATH 环境变量在当前 shell 生效
验证一下 gcc 是否安装成功
arm-none-eabi-gcc -v
5. 编译 osdrv
osdrv 顶层 Makefile 使用说明:
注意: Ⅰ 由于 Makefile 中文件系统编译依赖组件较多,不能保证单独编译的文件系统可用,建议采用 make all 编译;
Ⅱ 可单独编译 uboot,kernel;
本目录下的编译脚本支持选用 aarch64-himix100-linux 64bit 工具链进行编译,
具体命令如下:
编译整个 osdrv 目录:
① 默认编译
make BOOT_MEDIA=spi AMP_TYPE=linux all
② 编译 (A53MP+A73MP) 多核 linux、 启动介质为 spi(spi nor和spi nand) 的命令
make BOOT_MEDIA=spi AMP_TYPE=linux all
③ 编译 (A53MP+A73MP) 多核 linux、 启动介质为并口 nand 的命令
make BOOT_MEDIA=nand AMP_TYPE=linux all
④ 编译 (A53MP+A73MP) 多核 linux、 启动介质为 emmc 的命令:
make BOOT_MEDIA=emmc AMP_TYPE=linux all
⑤ 编译 (A53MP+A73MP) 多核 linux、 启动介质为 ufs 的命令:
make BOOT_MEDIA=ufs AMP_TYPE=linux all
⑥ 编译 (A53MP+A73MP) 多核 linux+A53UP 单核 liteos、 启动介质为 spi(spi nor 和 spi nand) 的命令
make BOOT_MEDIA=spi AMP_TYPE=linux_liteos all
⑦ 编译 (A53MP+A73MP) 多核 linux+A53UP 单核 liteos、启动介质为并口 nand 的命令
make BOOT_MEDIA=nand AMP_TYPE=linux_liteos all
⑧ 编译 (A53MP+A73MP) 多核 linux+A53UP 单核 liteos、启动介质为 emmc 的命令
make BOOT_MEDIA=emmc AMP_TYPE=linux_liteos all
⑨ 编译 (A53MP+A73MP) 多核 linux+A53UP 单核 liteos、启动介质为 ufs 的命令
make BOOT_MEDIA=ufs AMP_TYPE=linux_liteos all
参数说明:
BOOT_MEDIA:
spi nor 或 spi nand 启动选择 spi ;并口 nand 启动选择 nand;Emmc 启动选择 emmc;ufs 启动选择 ufs 。
AMP_TYPE:
编译多核 linux 传 linux 参数;编译多核 linux+ 单核 liteos 传参数 linux_liteos。
编译遇到的问题:没有 kernel源文件
解决办法:将下载的 linux-4.9.37.tgz 放到 osdrv/opensource/kernel/ 目录下,
详细编译细节可以看 sdk/osdrv/opensource/kernel/ 目录下的 readme_cn.txt 文件
注意:生成的所有镜像在 osdrv/pub / 目录下
6. 清除整个 osdrv 目录的编译文件
make clean
- 彻底清除整个 osdrv 目录的编译中间文件
make distclean
单独编译 kernel image 和单独编译 u-boot
前面已经提到了不能保证单独编译的文件系统可用建议采用 make all 具体方法步骤可以参考 osdrv/ 目录下的 readme_cn.txt---- 结束
三、单系统 Linux 方案烧写
- 配置 tftp 服务器
可以使用任意的 tftp 服务器,将生成的镜像 image_glibc_multi-core_arm64 目录下的相关文件拷贝到 tftp 服务器目录下。 - 配置参数
单板上电后,敲任意键进入 u-boot 。设置 ipaddr (单板 ip )、ethaddr (单板的 MAC 地址)和 serverip (即 tftp 服务器的 ip )
setenv ipaddr 10.86.147.170
setenv ethaddr 00:10:ab:20:81:70
setenv netmask 255.255.254.0
setenv gatewayip 10.86.147.1
setenv serverip 10.86.147.126
ping serverip 10.86.147.126 //确保网络畅通
以上为举例, IP 以实际为准
3. 地址空间说明
也可以根据实际情况进行调整
4. 拨码开关设置
通过拨码开关 SW1.4 设置选择主 CPU:
0:从 A53MP Core0 启动;
1:从 A53UP 启动
通过拨码开关 SW1[2:1] 选择存储烧录介质
00 SPI Flash 01 nand flash 10 EMMC 11 UFS
根据自己实际情况设置,我这里设置成 00
5. 烧写 u-boot
mw.b 0x44000000 0xff 0x100000
tftp 0x44000000 u-boot-hi3559av100.bin
nand erase 0x0 0x100000
nand write 0x44000000 0x0 0x100000
- 烧写内核 kernel image
mw.b 0x44000000 0xff 0x900000
tftp 0x44000000 uImage_hi3559av100_multi-core
nand erase 0x100000 0x900000
nand write 0x44000000 0x100000 0x900000
- 烧写文件系统
mw.b 0x44000000 0xff 0x1000000
tftp 0x44000000 rootfs_hi3559av100_2k_24bit.yaffs2
nand erase 0xA00000 0x1000000
nand write.yaffs 0x44000000 0xA00000 0xcfeb00 //(0xcfeb00 为 rootfs 文件实际大小)
- 设置启动参数
setenv bootargs 'mem=512M console=ttyAMA0,115200 root=/dev/mtdblock2 rw rootfstype=yaffs2
mtdparts=hinand:1M(boot),9M(kernel),16M(rootfs)'setenv bootcmd 'nand read 0x44000000 0x100000 0x900000;bootm 0x44000000'saveenv
- 重启系统
reset
----结束
四、双系统 Linux + Huawei LiteOS 方案烧写
- 准备 Huawei LiteOS 端的镜像
Huawei LiteOS 端的烧写镜像是由客户在 Huawei LiteOS 端的业务代码编译生成的。如果是初次调试环境,可以用发布包中的 sample 编译出来的镜像,A53 端的镜像建议使用 mpp/sample/vio/ sample_vio.bin;M7 端的镜像建议使用 osdrv/platform/liteos_m7/liteos/sample/sample_osdrv
sample.bin
注:在对应的目录下直接 make 可以生成相应的所需镜像 - 配置 tftp 服务器
和单系统烧录一样,编译 osdrv/ 目录时选择编译 (A53MP+A73MP)
多核 linux+A53UP 单核 liteos 命令编译,生成的镜像在 image_glibc_big-little_arm64/ 目录下,将生成的镜像拷贝到 tftp 服务器目录下 - 配置参数
同单系统烧录时配置 tftp 参数 - 地址空间说明
- 拨码开关设置
通过拨码开关 SW1.4 设置选择主 CPU:
0:从 A53MP Core0 启动;
1:从 A53UP 启动。
需要拨码到 0,从 A53MP 启动
通过拨码开关 SW1[2:1] 选择存储烧录介质
00 SPI Flash 01 nand flash 10 EMMC 11 UFS
根据自己实际情况设置,我这里设置成 00 - 烧写 u-boot
mw.b 0x52000000 0xff 0x100000
tftp 0x52000000 u-boot-hi3559av100.bin
nand erase 0 0x100000
nand write 0x52000000 0 0x100000
- 烧写 Linux 内核
mw.b 0x52000000 0xff 0x1000000
tftp 0x52000000 uImage_hi3559av100_big-little
nand erase 0x100000 0x900000
nand write 0x52000000 0x100000 0x900000
- 烧写文件系统
mw.b 0x52000000 0xff 0x2000000
tftp 0x52000000 rootfs_hi3559av100_2k_24bit.yaffs2
nand erase 0xA00000 0x2000000
nand write.yaffs 0x52000000 0xA00000 0xd32c00
注意:① 此示例 Flash 为 2KPage 24bitECC,应以实际使用器件选择相应 rootfs 在编译好的镜像中有不同类型的文件系统可供我们选择
② nand write.yaffs 的最后一个参数 (size),应该以实际下载的 rootfs 长度为准如打印:“Bytes transferred = 13839360 (d32c00 hex)”,则为:0xd32c00
- 烧写 A53UP Huawei LiteOS
mw.b 0x52000000 0xff 0x1000000
tftp 0x52000000 sample_vio.bin
nand erase 0x2A00000 0x1000000
nand write 0x52000000 0x2A00000 0x1000000
- 烧写 Cortex-M7 Huawei LiteOS (此步可选做)
mw.b 0x52000000 0xff 0x100000
tftp 0x52000000 sample.bin
nand erase 0x3A00000 0x100000
nand write 0x52000000 0x3A00000 0x100000
- 设置启动参数
setenv bootargs 'mem=512M console=ttyAMA0,115200
clk_ignore_unused rw root=/dev/mtdblock2 rootfstype=yaffs2 mtdparts=hinand:1M(boot),9M(kernel),32M(rootfs)';
sa
不启动 Cortex-M7
setenv bootcmd 'nand read 0x45000000 0x2A00000
0x1000000; go_a53up 0x45000000; nand read 0x52000000 0x100000 0x900000;bootm
0x52000000'; sa
带 Cortex-M7 启动
setenv bootcmd 'nand read 0x45000000 0x2A00000 0x1000000;
go_a53up 0x45000000; config_m7; nand read 0x52000000 0x3a00000 0x100000; cp.b 0x52000000
0x19000000 0x100000; go_m7; nand read 0x52000000 0x100000 0x900000;bootm
0x52000000'; sa
- 重启系统
reset
----结束
五、参考资料
① 《WM_Hi3559A╱C V100 SDK 安装及升级使用说明.pdf》
② 《WM_Hi3559A╱CV100 开发环境用户指南.pdf》
注:
未经本人允许,不得转载!谢谢!
【Hi3559AV100 Camera】Hi3559AV100 环境搭建相关推荐
- 《HarmonyOS开发 - IPC Camera开发笔记》第2章 HiSpark IPC Camera开发环境搭建(基于V1.1.4)
开发环境: 开发系统:Ubuntu 20.04 Harmony版本:code-v1.1.4-LTS.tar HiSpark IPC Camera基于华为海思Hi3518芯片,支持LiteOS.Open ...
- Android Camera 测试环境搭建:编译Android模拟器
在 Ubuntu 下面我编译 android 12 已经尝试过很多次,都失败了. 都是执行下面这步的时候,编译了几个小时以后报错 make sdk sdk_repo -j12 一开始给虚拟机分配了 8 ...
- Android 13 Camera ITS 环境搭建(从Python安装到环境配置详解)
Python 版本 根据CameraITS.pdf 以及报错信息提示需要python版本在3.7.9及以上,本次使用的是3.8.10. Python 安装 1.官方网站下载Python源码 wget ...
- CTS测试中Camera FOV Calibration标准测试环境搭建
CTS测试分为自动测试和手动测试,CTS Verifier测试是CTS测试的手动测试部分.以下是CTS Verifier测试的Camera FOV Calibration测试环境搭建. 安装CTS V ...
- 【海思AI芯片Hi3559A】学习笔记(1):开发环境搭建、安装SDK
芯片资料见Hi3559A的资料包 主要参考文档:ReleaseDoc\zh\01.software\board\Hi3559A╱C V100 SDK 安装及升级使用说明.pdf 注意所有解压操作均要在 ...
- 启明云端分享|ESP32在开发环境时,环境搭建及应用、软件平台时常遇到的问题答疑(FAQ)
问题描述及解答: 1.环境搭建 安装环境出现can not create a virtual environment. 该错误是因为新版环境需要安装虚拟python环境,出现错误通常有两个原因. 1. ...
- (一)phoneGap之环境搭建教程及其example分析
phoneGap之环境搭建教程及其example分析 一.环境搭建 与普通的开发android应用一样,phoneGap也同于原生android应用一样,环境相同,只是有部分不同,下面就我做理解,进行 ...
- 视觉SLAM十四讲学习笔记-第二讲-开发环境搭建
专栏系列文章如下: 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 lin ...
- ROS中阶笔记(四):机器人仿真—Gazebo物理仿真环境搭建(重点)
ROS中阶笔记(四):机器人仿真-Gazebo物理仿真环境搭建(重点) 文章目录 1 ros_control 1.1 ros_control安装 2 Gazebo仿真步骤(重点) 2.1 配置物理仿真 ...
最新文章
- 餐馆的故事-浅析职责链模式
- 符江职高计算机教什么,高县符江职高具体地址
- 移动开发者如何更好地学习 React Native? | 技术头条
- 怎么把php写入文件格式,如何将一个PHP数组有格式的写入文件中
- TLS总结(上)——我们为啥需要TLS
- Egret中的三种单例写法
- 「JXOI2018」游戏
- 计算机组成原理白中英课后习题题答案
- nginx常用配置模板
- 【例题】【高斯消元】USACO3.2.4 Feed Ratios
- Android零基础入门第1节:Android的前世今生
- 「云安全」 什么是云访问安全代理(CASB )?
- 测试java实现继承接口案例
- Android Q 存储新特性适配脑壳疼?指南来了!
- 【Unity】防反编译之windows平台加密dll
- ORACLE 记录连接用户的IP地址以及登录失败用户的IP地址
- Java实现opendir的api_linux文件操作API
- 运动App如何实现端侧后台保活,让运动记录更完整?
- 自动光感大臂灯触摸芯片-DLT8SA15B-杰力科创
- 使用Rust交叉编译arm程序
热门文章
- uni-app中使用unicloud短信验证码(开通、模板报备、使用)
- Python实现Decision Tree
- 关于ch340驱动安装
- Excel去重并进行统计(对列)
- Postgre 安装提示Installation may not complete correctly.
- [CCS] 没有Runtime Object View(ROV)怎么办?
- RevMan简单入门指南
- DropWizard的AOP扩展点最佳实践
- linux的ib网卡驱动安装,linux安装IB驱动方法
- 这或许是华为荣耀六root的另一种方法。