最近开始学习海思的开发,使用的芯片型号是 hi3518e。首先需要面对的问题,就是如何使用海思 SDK
真正的产品是一个很复杂的东西,涉及到的知识面很广,单独的一个开发商很难完成。因此嵌入式开发这个行业存在不同层级,大家各司其职。海思芯片的应用场景中,会普遍的使用到音视频编解码,而这些算法也很复杂,为了简化开发,海思提供了这个 SDK,里面提供已经实现好的音视频编解码的算法,提供用户调用。另外这个 SDK 中,也包含了 uboot、linux、cross compiler 等等开发必须的工具,通过 SDK 可以更加方便的使用这个工具进行用户程序的开发
SDK 解包首先解压 SDK 包,并进入它的文件夹,可以看到以下信息
. ├── package ├── scripts ├── sdk.cleanup └── sdk.unpack我们需要做的就是通过运行 source sdk.unpack,将 SDK 中的压缩包解压,解压后的文件夹
. ├── drv ├── mpp ├── osdrv ├── package ├── scripts ├── sdk.cleanup └── sdk.unpack 安装工具链进入到 osdrv/opensource/toolchain 可以看到两个工具链, hisiv300 是 uclibc 的, hisiv400 是 glibc 的 进入到 arm-hisiv300-linux ,可以见到一个安装脚本 cross.install.v300 , 修改它的 TOP_DIR 为自己想安装工具链的位置,超级权限安装 最后可执行文件会放到 TAR_BIN_DIR=$TOOL_DIR/target/bin 这个目录,将它添加到 $PATH 环境变量中 最后运行 arm-hisiv300-linux-gcc -v ,输出信息正常即可
编译整个 osdrv进入到 osdrc/opensource 下,可以看到 busybox kernel toolchain uboot ,通过 SDK 的 Makefile 可以一次性全部编译 需要提前安装必修的软件包
sudo apt-get install uuid-dev zlib1g-dev下面说说遇到的问题的解决方法
编译错误: /bin/sh: 1: pushd: not found的问题
解决方法很简单,执行sudo dpkg-reconfigure dash 命令,将 dash 设置为 No
error: storage size of ‘hints’ isn’t known
这个问题是因为开发机的系统版本过高,SDK 中的 mtd-utils 版本过低导致的
比较好的解决方法是,下载 mtd-utils-2.0.0 版本对 SDK 中的 mtd-utils 进行替换
wget ftp://ftp.infradead.org/pub/mtd-utils/mtd-utils-2.0.0.tar.bz2在我的电脑上无法使用 mtd-utils-2.1.1 版本,所以一般人最好还是下载 2.0.0 版本
修改 osdrv/tools/pc/jffs2_tool/Makefile
CC := gcc BUILD_DIR := $(PREFIX)/tmp ZLIB := $(shell pwd)/../zlib ZLIB_INSTALL := $(PREFIX)/../zlib ZLIB_DIR := $(ZLIB_INSTALL)/tmp STRIP := strip MTD_UTILS := mtd-utils-2.0.0 #需要修改的地方 # this lib should be install to host LZO := lzo-2.09 TARGETS := mkfs.jffs2将下载好的 mtd-utils-2.0.0.tar.bz2 解包,进入文件夹,运行
./configure –prefix=然后重新再压缩回 mtd-utils-2.0.0.tar.bz2
最后就是以 ———finish osdrv work 结束编译
原文链接:https://blog.csdn.net/juhou/article/details/102508743
相关推荐:
海思HI35XX串口调试 海思多媒体(MPP)开发(1)——nvp6134驱动介绍 海思hi3516A-sample的使用1–sensor加载免责声明:文章内容来自互联网,本站不对其真实性负责,也不承担任何法律责任,如有侵权等情况,请与本站联系删除。
转载请注明出处:海思SDK编译填坑 https://www.yhzz.com.cn/a/15348.html