接触海思3519V101有小半年了,磕磕碰碰,碰到了许多稀里糊涂的问题,感受一个菜鸟入门的不易,把自己碰到的一些小问题在这介绍一下,希望能给一些有疑惑的新手一点小想法,共同进步。
本文主要简单介绍了海思3519v101的SDK编译过程,并将编译过程碰到的问题及解决方法进行讲解,强烈建议使用SecureCRT_V6.5串口调试软件汉化版这个软件来在线操作虚拟机。
另外,本文在虚拟机上编译海思SDK时出现过虚拟机莫名重启的问题,详情见文末,只能通过SecureCRT这款软件来编译,但编译成功之后再编译其他版本SDK便不会出现重启的现象,具体原因我也不是很清楚

Hi3519_V101R001C01SPC030

1. SDK下载

虽然不是最新的版本,但有需要的可以自己下载哦,欢迎留言探讨!
链接:https://pan.baidu.com/s/1LLlL4b6J37zC97FqUpyvkw
提取码:b278

2. 复制到Linux并解压

在"Hi3519***/01.software/board"目录下,您可以看到一个Hi3519V101_SDK_Vx.x.x.x.tgz 的文件,该文件就是Hi3519V101 的软件开发包。复制到Linux虚拟机并解压后。
解压命令:tar -zxf Hi3519V101_SDK_Vx.x.x.x.tgz
如果发现没有权限,则应该添加root权限,即在命令前添加sudo(下文所有root权限都是如此操作),即“sudo tar -zxf Hi3519V101_SDK_Vx.x.x.x.tgz”。

3.展开SDK安装包内容

在SDK下,会发现有个文件sdk.unpack,用root权限下运行./sdk.unpack,会展开SDK包打包压缩存放的内容,一直按回车键,得到如下目录:

4、安装交叉编译工具

Linux系统无法直接对c语言文件进行编译,需要一系列编译工具才能将c语言文件生成可执行文件。
SDK本身提供了两种编译工具,uclibc交叉编译器和glibc交叉编译器,随机选择一种即可,此处选用uclibc交叉编译器,步骤如下:
进入Hi3519V101_SDK_Vx.x.x.x/osdrv/opensource/toolchain/arm-hisiv500-linux目录,root权限下运行chmod +x arm-hisiv500-linux.install,然后运行./arm-hisiv500-linux.install即可。
执行source /etc/profile, 安装交叉编译器的脚本配置的环境变量就可以生效了(此时输入arm-hisiv500-linux-gcc -v可以看到安装信息)

5、编译

进入Hi3519V101_SDK_Vx.x.x.x/osdrv/底下,有个read_me文件,可仔细阅读。步骤如下:
运行make OSDRV_CROSS=arm-hisiv500-linux CHIP=xxx FLASH_TYPE=xxx all
参数配置如下:
CHIP:设为hi3519v101参数时,对应芯片为hi3519v101;设为hi3516av200参数时,对应芯片为hi3516av200。
FLASH_TYPE:设为nand参数时,使用Nand Flash;设为spi参数时,使用SPI Nor Flash或SPI Nand Flash。
具体例子如:make OSDRV_CROSS=arm-hisiv500-linux CHIP=hi3519v101 FLASH_TYPE=nand all
FLASH_TYPE可以不添加,直接运行make OSDRV_CROSS=arm-hisiv500-linux CHIP=hi3519v101 all
编译时间大概是半个小时,编译结束会出现---------finish osdrv work的字样,如果没出现这行字都是编译未成功,解决方法如下。

本人编译过程中的问题

1、make的权限问题

在第5步骤执行整个目录的编译时,会告诉我们权限受限的问题,如果使用sudo获得root权限,编译会出现无法找到arm-hisiv500编译工具的问题,主要原因是我们安装交叉编译工具后,非root权限的环境变量有交叉编译工具的位置链接,但root权限的环境变量并未生效。我们可以使用“echo $PATH ”查看环境变量,会发现root底下没有交叉编译工具。

解决方案如下:

  1. 给root添加环境变量**
    输入“su”,并修改/etc/profile文件,在最后一行添加export PATH="/opt/hisi-linux/x86-arm/arm-hisiv500-linux/target/bin:$PATH" ,每个人的交叉编译工具位置不一样,根据位置路径进行修改。

  2. 给osdrv文件赋予权限
    使用root权限执行“chmod -R 777 osdrv/",之后执行make OSDRV_CROSS=arm-hisiv500-linux CHIP=hi3519v101 all进行编译。

2、“mkimage” command not found

"mkimage" command not found - U-Boot images will not be built
make[2]: *** [arch/arm/boot/uImage] Error 1
make[1]: *** [uImage] Error 2

解决方法:

  1. apt-get install uboot-mkimage,结果发现Package ‘uboot-mkimage’ has no installation candidate
  2. sudo apt-get install u-boot-tools

3、configure: error: ncurses or ncursesw selected, but library not found (–without-ncurses to disable)

解决方法

  • sudo apt-get install libncurses5-dev libncursesw5-dev

4、编译过程,虚拟机莫名重启的问题

不知道为什么,我的虚拟机初次编译海思SDK时,每次打印信息出现下面这些文字时,总是会重启

configure: cross-compiling for arm-hisiv500-linux-gnu is not supported
configure: WARNING: decimal float is not supported for this target, ignored
configure: WARNING: cannot check signal handling if cross compiling -- defaulting to no
configure: WARNING: cannot check for sigsetjmp/siglongjmp if cross-compiling -- defaulting to missing
configure: WARNING: cannot check strcoll if cross compiling -- defaulting to no
configure: WARNING: cannot check ctype macros if cross compiling -- defaulting to no
configure: WARNING: result yes guessed because of cross compilation
configure: WARNING: expat is missing or unusable; some features may be unavailable.
configure: WARNING: python is missing or unusable; some features may be unavailable.
configure: WARNING: result yes guessed because of cross compilation
configure: WARNING: babeltrace is missing or unusable; GDB is unable to read CTF data.
configure: WARNING: result yes guessed because of cross compilation
Creating observer.htmp
Creating observer.itmp


解决方法:
不知道是不是虚拟机内存过小,我选用了SecureCRT,通过该软件,可以在线远程操作虚拟机,相当方便,在此介绍一下工作流程
1、文件----连接----新建session(新建会话)----SHH2协议

2、新建会话向导中,主机名填自己虚拟机的IP地址(不知道的可以在虚拟机中输入ifconfig进行查看),用户名就填自己虚拟机对应的用户名

输入自己虚拟机的密码

之后便可以在会话栏中输入指令操作虚拟机(如下)

此时输入make OSDRV_CROSS=arm-hisiv500-linux CHIP=hi3519v101 all可在虚拟机上正常编译海思SDK,“---------finish osdrv work”

附录SDK目录介绍

Hi3519V101_SDK_Vx.x.x.x 目录结构如下:
|-- sdk.cleanup # SDK清理脚本
|-- sdk.unpack # SDK展开脚本
|-- osdrv # 存放操作系统及相关驱动的目录
| |-- opensource # opensource源代码
| | |-- busybox # busybox源代码
| | |-- kernel # linux内核源代码
| | |-- toolchain # 交叉编译器
| | |-- uboot # uboot源代码
| |-- pub # 编译好的镜像、工具、drv驱动等
| |-- tools # linux工具源代码
| |-- readme_cn.txt # osdrv使用说明(中文版)
| |-- readme_en.txt # osdrv使用说明(英文版)
| |-- … #
| |-- Makefile # osdrv Makefile
|-- osal # 存放操作系统适配层的头文件和源文件的目录
| |-- include # 存放操作系统适配层的头文件的目录
| |-- source # 存放操作系统适配层的源文件的目录
|-- package # 存放SDK各种压缩包的目录
| |-- osdrv.tgz # linux内核/uboot/rootfs/tools源码压缩包
| |-- osal.tgz # 操作系统适配层源码压缩包
| |-- mpp_.tgz # 媒体处理平台软件压缩包
| |-- drv.tgz # drv压缩包
| |-- image_
# 可供FLASH烧写的映像文件(如内核、根文件系统)和rootfs的压缩包
|-- scripts # 存放shell脚本的目录
|-- drv # drv目录
| |-- extdrv # 板级外围驱动源代码
| |-- interdrv # mipi,rtc,cipher等驱动源代码
|-- mpp_single # 存放单核媒体处理平台的目录
| |-- component # 组件源代码
| |-- init # 内核模块的初始化源代码
| |-- obj # 内核模块的obj文件
| |-- include # 对外头文件
| |-- ko # 内核模块
| |-- lib # release版本库以及音频库
| |-- Makefile.param # mpp一些全局编译选项
| |-- Makefile # mpp的Makefile
| |-- linux.param # mpp一些跟操作系统相关的全局编译选项
| |-- tools # 媒体处理相关工具
| |-- sample # 样例源代码
|-- mpp_big-little # 存放big-little双核媒体处理平台的目录

HI3519V101sdk下载及编译配置问题解决相关推荐

  1. Boost下载安装编译配置使用指南

    理论上,本文适用于boost的各个版本,尤其是最新版本1.46.0:适用于各种C++编译器,如VC6.0,VS2003,VS2005,VS2008,gcc,C++ Builder等. 一.下载 首先从 ...

  2. windows 11系统给clion配置opencv(含CMake下载及编译opencv、MinGW下载及编译opencv以及一些遇到的问题)

    目录 一.CLion 2022.2.1下载与安装 二.下载opencv 4.4.0 三.下载及配置MinGW-w64GCC-8.1.0 1.下载MinGW 2.配置环境变量 四.下载CMake 3.2 ...

  3. LOAM系列——ISCLOAM配置、编译、问题解决及VLP16测试效果(完结版)

    ISCLOAM配置.编译.问题解决及VLP16测试效果 1)安装依赖 2)安装 3)KITTI sequence 07测试 4)VLP16bag包 5)直接使用VLP16 6)问题及解决 7)修改配置 ...

  4. Windows Android SDK下载安装,配置,异常问题解决教程

    Windows Android SDK下载安装,配置,异常问题解决教程 参考文章: (1)Windows Android SDK下载安装,配置,异常问题解决教程 (2)https://www.cnbl ...

  5. 第二期 AOSP 环境搭建、下载和编译 《手机就是开发板》遇到问题解决

    第二期 AOSP 环境搭建.下载和编译 <手机就是开发板>遇到问题 编译通过,庆祝一下: 编译时需要注意事项 清华大学软件镜像站:repo从这里下载 https://mirror.tuna ...

  6. MaNGOS 下载,编译,配置和运行的基本步骤

    http://hi.baidu.com/zyy503950958/home 下载和安装msysgit,用于代码管理.我使用的是Git-1.6.5.1-preview20091022.exe. 下载和安 ...

  7. 2022最新版超详细的Maven下载配置教程、IDEA中集成maven(包含图解过程)、以及导入项目时jar包下载不成功的问题解决

    文章目录 1.maven下载 2.maven环境变量的配置 3.查看maven是否配置成功 4.配置文件的修改 5.IDEA集成maven 6.导入项目时jar包下载不成功的问题解决 maven教程: ...

  8. 源码编译wget问题解决

    源码编译wget问题解决 工作需要交叉编译高版本wget,以实现嵌入式设备的https下载,其中遇到一些编译问题,如openssl.c:(.text+0x6a1): undefined referen ...

  9. win10+VS2017编译配置boost_1_78_0

    1.编译boost库 1.1下载boost 下载官网地址:boost_1_78_0 注意,有时候会下载不全,下载之后检查一下 如果下载不完全,编译不能通过 1.2 解压 解压,一定要解压到一个指定文件 ...

最新文章

  1. python 保存内容到记事本里面
  2. JUC并发编程十 并发架构--Unsafe
  3. Jupyter 工具的安装与使用方法,jupyter运行python代码演示,好用的python编辑器推荐!
  4. 浏览器User-Agent的详细信息
  5. Linux内核线程kernel thread详解--Linux进程的管理与调度
  6. CSS样式的使用(CSS选择器、CSS语法、CSS常见样式):
  7. 我修改的IP地址掩码 呵呵~~开心
  8. 前端项目,css样式获取到了,没能渲染页面
  9. 夏泽网 中国渔业统计年鉴年鉴资料网
  10. 计算有向图的可达矩阵的算法及其MATLAB实现
  11. 科赫雪花曲线 matlab编程,科赫雪花曲线的MATLAB编程实现.doc
  12. 《电子元器件的可靠性》——3.1节可靠性试验的意义
  13. kinect_v2-ros(iai_kinect2)安装,环境ubuntu1604+INTEL+NVIDIA
  14. 本地Navicat连接阿里云数据库RDS for MySQL(全网最详细,没有之一!)
  15. 树的直径,树的中心,树的重心
  16. 不论微信钉钉还是什么软件,我写了个通用的消息监控处理机器人
  17. 服务器 12 种基本故障+排查方法
  18. 关于Java反射获取静态属性值的方式
  19. java重置按钮功能函数_Bootstrap按钮功能之查询按钮和重置按钮
  20. ps 选区工具的使用

热门文章

  1. python - windows 之 SetCursorPOS与GetCursorPos操控鼠标
  2. 关于solidworks软件的显卡驱动
  3. Android 三方登录 - QQ登录
  4. 自制束流变压器的使用经历
  5. R语言实战应用精讲50篇(三十)-R语言实现支持向量机(附R语言代码)
  6. 智能搜索框html代码,js实现搜索框关键字智能匹配代码
  7. 酷狗音乐快速转换MP3格式的方法
  8. CSS字体font-family的正确选择方案
  9. postgresql 开启远程访问、postgre设置开机自启动、psql: error: FATAL: Peer authentication failed for user “postgres“
  10. postgre 修改表字段默认值