海思SDK编译填坑
1677 打赏
夜墨11111 2020-07-31 15:13:59

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

相关推荐:

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
评论
0个
时间排序
内容存在敏感词
    0 条记录 第 0 /
    相关专栏
    打赏作者
    易百纳技术社区
    夜墨11111
    您的支持将鼓励我继续创作!
    打赏金额:
    ¥1 易百纳技术社区
    ¥5 易百纳技术社区
    ¥10 易百纳技术社区
    ¥50 易百纳技术社区
    ¥100 易百纳技术社区
    支付方式:
    微信支付
    支付宝支付
    易百纳技术社区 微信支付
    易百纳技术社区
    打赏成功!

    感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

    举报反馈

    举报类型

    • 内容涉黄/赌/毒
    • 内容侵权/抄袭
    • 政治相关
    • 涉嫌广告
    • 侮辱谩骂
    • 其他

    详细说明

    审核成功

    发布时间设置
    发布时间:
    是否关联周任务-专栏模块

    审核失败

    失败原因
    备注
    Loading...
    易百纳技术社区
    确定要删除此文章、专栏、评论吗?
    确定
    取消
    易百纳技术社区
    易百纳技术社区
    在专栏模块发布专栏,可获得其他E友的打赏
    易百纳技术社区
    回答悬赏问答,被题主采纳后即可获得悬赏金
    易百纳技术社区
    在上传资料时,有价值的资料可设置为付费资源
    易百纳技术社区
    达到一定金额,收益即可提现~
    收益也可用来充值ebc,下载资料、兑换礼品更容易
    易百纳技术社区
    活动规则
    • 1.周任务为周期性任务,每周周一00:00刷新,上周完成的任务不会累计到本周,本周需要从头开始任务,当前任务完成后才可以完成下一个任务
    • 2.发布的专栏与资料需要与平台的板块有相关性,禁止注水,专栏/资料任务以审核通过的篇数为准,专栏需为原创文章且首次在社区发布
    • 3.任务完成后,现金奖励直接打款到微信账户;EBC/收益将自动发放到个人账户,可前往“我的钱包”查看;其他奖励请联系客服兑换
    易百纳技术社区
    升级提醒
    升级

    恭喜您的社区称号由 升级为 “社区游民”

    同时为了感谢您对社区的支持,我们将送出xxx礼品一份, 记得领取哦~

    升级提醒
    易百纳技术社区