3516DV300之--海思SDK目录简介

3516DV300之--海思SDK目录简介 你会了没 2023-11-23 16:28:04 483

接触海思3516dv300有一段时间了,我发现虽然论坛关于dv300的资料有挺多,但是没有一个具有较强连续性的教程类的文章,这点对小白非常不友好,这段时间自己也在不断的踩坑,为了让各位刚接触的小白选手更快熟悉这个SOC的开发,我就尽可能分享一些自己学到的。关于环境搭建部分后面再找时间补上吧。
首先这篇文章针对刚搭建完环境,但是又无从下手的小伙伴,我先对SDK的内容做一个简单的介绍,先对这个板子的资料有一个清楚的认识,后面的工作才能更加轻松,有些地方可能我会弄错,多多担待,一切以原厂的为准。
这里我是基于Hi3516CV500R001C02SPC020—Hi3516CV500_SDK_V2.0.2.0这个版本的SDK来做介绍,2.0.3.0的SDK目录结构有一些差别,但是内容基本一致。
首先直接看一下SDK的架构图吧,有些地方我还没弄明白,所以没标注,小白看一看足够用了,可以自己复制保留一份,找文件也方便。
SDK目录说明

Hi3516CV500_SDK_V2.0.2.0

├─ hi3516av300_spi_smp_image_glibc———海思提供的编译好的av300镜像文件(用不上)
├─ hi3516cv500_spi_smp_image_glibc———海思提供的编译好的cv500镜像文件(用不上)
├─ hi3516dv300_spi_smp_image_glibc———海思提供的编译好的dv300镜像文件(用不上)
├─ osdrv
│ ├─ opensource—————————————— 存放各种开源源码目录
│ │ ├─busybox —————————————— 存放busybox源代码的目录
│ │ ├─uboot ——————————————— 存放uboot及安全boot源代码的目录
│ │ └─kernel ——————————————- 存放kernel源代码的目录
│ │
│ ├─pub —————————————————- 存放各种镜像的目录
│ │ ├─hixxx_xxx_xxx_image_glibc ————— osdrv下一键编译得到的文件,可供FLASH烧写的映像文件,包括uboot、内核、文件系统
│ │ │ ├── uImage_hi3516dv300 ———————————— kernel镜像(√)
│ │ │ ├── u-boot-hi3516dv300.bin —————————— u-boot镜像(√)
│ │ │ ├── rootfs_hi3516dv300_64k.jffs2 ——————— 64K jffs2 文件系统镜像(√)
│ │ │ ├── rootfs_hi3516dv300_128k.jffs2 ——————- 128K jffs2 文件系统镜像
│ │ │ ├── rootfs_hi3516dv300_256k.jffs2 ——————- 256K jffs2 文件系统镜像
│ │ │ ├── rootfs_hi3516dv300_2k_4bit.yaffs2 ————- yaffs2 文件系统镜像
│ │ │ ├── rootfs_hi3516dv300_2k_24bit.yaffs2 ———— yaffs2 文件系统镜像
│ │ │ ├── rootfs_hi3516dv300_4k_4bit.yaffs2 ————- yaffs2 文件系统镜像
│ │ │ ├── rootfs_hi3516dv300_4k_24bit.yaffs2 ———— yaffs2 文件系统镜像
│ │ │ ├── rootfs_hi3516dv300_2k_128k_32M.ubifs———- 2k 128k UBI 文件系统镜像
│ │ │ └── rootfs_hi3516dv300_4k_256k_50M.ubifs———- 4k 256k UBI 文件系统镜像
│ │ ├─bin ———————————————— 各种未放入根文件系统的工具
│ │ │ ├─pc ——————————————— 在pc上执行的工具
│ │ │ └─board_glibc ——————————- 基于himix200工具链编译,在单板上执行的工具
│ │ └─rootfs_glibc.tgz —————————- 基于himix200工具链编译的根文件系统
│ │
│ ├─rootfs_scripts ————————————- 存放根文件系统制作脚本的目录
│ │
│ ├─tools ————————————————- 存放各种工具的目录
│ │ ├─board ——————————————— 各种单板上使用工具
│ │ │ ├─ethtools ———————————— ethtools工具
│ │ │ ├─reg-tools-1.0.0 ————————- 寄存器读写工具
│ │ │ ├─udev-167 ———————————— udev工具集
│ │ │ ├─mtd-utils ———————————- flash裸读写工具集
│ │ │ ├─gdb ——————————————- gdb工具
│ │ │ └─e2fsprogs ———————————- mkfs工具集
│ │ └─pc ————————————————— 各种pc上使用工具
│ │ │ ├─jffs2_tool———————————- jffs2文件系统制作工具
│ │ │ ├─cramfs_tool ——————————- cramfs文件系统制作工具
│ │ │ ├─squashfs4.3 ——————————- squashfs文件系统制作工具
│ │ │ ├─nand_production ————————- nand量产工具
│ │ │ ├─lzma_tool ———————————- lzma压缩工具
│ │ │ ├─zlib —————————————— zlib工具
│ │ │ ├─mkyaffs2image — ———————— yaffs2文件系统制作工具
│ │ │ └─uboot_tools ———————————uboot镜像制作工具、xls文件及ddr初始化脚本、reg_info.bin制作工具
│ │ └─Makefile—————————————— Tools目录编译脚本
│ │
│ ├─Makefile ——————————————— osdrv目录编译脚本
│ ├─readme_cn.txt————————————— osdrv目录编译中文说明
│ └─readme_en.txt————————————— osdrv目录编译英文说明

├─ package ————————————————— 压缩包,SDK展开后自动解压里面的文件,得到osdrv、osal、smp等文件夹
│ ├─drv.tgz
│ ├─mpp_smp_linux.tgz
│ ├─osal.tgz
│ └─osdrv.tgz
├─ scripts
│ └─common.sh
├─ smp——————————————————-板子驱动及应用程序文件
│ ├─a7_linux
│ │ ├─drv
│ │ │ ├─extdrv ———————————-一些外设的驱动,如st7789等
│ │ │ └─interdrv ——————————-内部资源驱动,比如mipi驱动
│ │ │
│ │ ├─mpp———————————————海思媒体处理平台
│ │ │ ├─component——————————-FB及ISP驱动
注:FB:(Hisilicon Framebuffer:是海思数字媒体处理平台提供的用于管理叠加图形层的模块)
ISP:(image signal processing:图像信号处理)
│ │ │ │ ├─hifb——————————FB驱动
│ │ │ │ ├─isp——————————-ISP驱动(内含各个摄像头驱动)
│ │ │ │ │ ├─ext_drv———————内含各种外设驱动,如sensor的IIC,SPI等
│ │ │ │ │ ├─ext_inc———————内部驱动
│ │ │ │ │ ├─include———————头文件
│ │ │ │ │ ├─kernel———————-内核文件
│ │ │ │ │ ├─user————————-用户文件。包含3A算法库,sensor的驱动等
│ │ │ │ │ └─Makefile——————-make编译文件,执行后在MPP的ko中编译出对应ko驱动文件等
│ │ │ │ ├─Makefile.linux
│ │ │ │ └─Makefile.param
│ │ │ ├─include———————-头文件
│ │ │ ├─init—————————初始化文件
│ │ │ ├─ko——————————系统驱动文件(需要拷板子)
│ │ │ ├─lib—————————-各种外设相关的库(需要拷板子)
│ │ │ ├─obj————————— 输出文件
│ │ │ ├─sample————————各种例程,包括音频输入输出、音频处理;视频输入输出、视频处理;视频编解码;nnie神经网络加速等等例程
│ │ │ ├─tools————————-包含mipi,视频输入、处理、视频输出等函数
│ │ │ ├─cfg.mak———————-
│ │ │ ├─Makefile.linux.param—
│ │ │ └─Makefile.param————
│ │ │
│ │ └─osal——————-
├─sdk.cleanup ———-收起SDK包
└─sdk.unpack ————展开SDK

关于摄像头驱动部分:摄像头驱动文件在component\isp\user\hi3516cv500\sensor中,每个摄像头对应一个文件夹,后续会出个教程是关于增加新摄像头的,这里的驱动在ISP中make编译之后会得到一个libsns_xxxx.a以及一个libsns_xxxx.so文件,这两个就是编译后能够给板子使用的驱动了,这两个文件在编译之后会自动复制到lib目录中。后续在进行摄像头图像质量调试的时候是需要这个文件的,可以先了解了解。

接着把sample目录也做个简单的介绍吧,这里跟2.0的SDK名称不是完全一致的,有些在SDK中没有的,借鉴着来看吧,不想再重新整理了,看名字就行,附录文件是关于这些例程的操作说明,只是说了怎么运行例程,并没有介绍例程的具体内容哈,

sample_venc(视频数据编码)
sample_vdec(视频数据解码)
sample_audio(音频相关)
sample_snap(拍照)
sample_dpu_main(Depth Process Unit,深度图)
sample_avs(Any View Stitching,全景拼接)
sample_fisheye(鱼眼模式)
sample_vio(视频输入输出)
sample_vgs(Video Graphics Sub-System,视频图形子系统)
sample_tde(Two Dimensional Engine,利用硬件为 OSD 和 GUI 提供快速的图形绘制功能)
sample_hifb(Hisilicon Framebuffer,基于 Linux FB 基本功能扩展了一些图形层控制功能)
sample_awb_calibration(自动白光平衡测量)
sample_ive_main(智能加速引擎)
sample_dis(Digital Image Stabilization,数字稳像)
sample_dsp_main(DSP 测试)
sample_nnie_main(神经网络硬件加速单元测试)

对于刚烧录完镜像之后就无从下手的朋友来说,可能每个人学这个板子的目的都不一样,但是摄像头图像读取应该是必要的,所以首先建议先点摄像头,程序在sample文件夹里面的vio中,这个是视频输入输出例程,可以读取摄像头画面、通过HDMI显示实时画面;还有就是VENC这个例程,这个是视频编码,也就是视频录像,运行后会开始录像,然后将得到的stream_chx.h264(265)文件拷贝到电脑就可以用播放器播放了。
至于说具体怎么驱动摄像头这个可以直接在论坛里找教程,重要的是要先看一遍手册:可以参考以下手册:
1———04.ReleaseDoc\02.only for reference\software\sensor调试指南
2———04.ReleaseDoc\01.software\board\MPP\MIPI使用指南
3———04.ReleaseDoc\01.software\board\MPP\HiMPP V4.0 媒体处理软件开发参考
通过以上这些说明点亮一个摄像头并显示图像应该是没问题的了,新手一定要多看看原厂的资料,里面很多细节的介绍。

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包 2 收藏 评论 打赏
评论
0个
内容存在敏感词
手气红包
    易百纳技术社区暂无数据
相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
你会了没
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

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

举报反馈

举报类型

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

详细说明

审核成功

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

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区