首页 > 技术知识 > 正文

最近开始学习海思的开发,使用的芯片型号是 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加载

猜你喜欢