3516DV300之--海思SDK目录简介
接触海思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 媒体处理软件开发参考
通过以上这些说明点亮一个摄像头并显示图像应该是没问题的了,新手一定要多看看原厂的资料,里面很多细节的介绍。
- 分享
- 举报
-
浏览量:482次2024-09-13 11:55:31
-
浏览量:5033次2022-10-17 20:51:39
-
2021-07-13 14:19:23
-
浏览量:1371次2024-06-06 09:47:33
-
2019-04-10 21:45:38
-
浏览量:2738次2024-01-09 16:38:47
-
2019-12-11 22:01:19
-
浏览量:1856次2023-06-12 14:34:37
-
浏览量:1339次2024-01-13 18:14:30
-
浏览量:1454次2024-01-08 16:49:01
-
浏览量:4970次2020-09-30 18:01:11
-
浏览量:3405次2024-05-22 15:23:49
-
2018-06-18 22:47:22
-
浏览量:891次2024-02-05 17:05:51
-
浏览量:6600次2022-08-11 09:31:37
-
浏览量:3653次2020-08-06 15:57:44
-
浏览量:1147次2023-12-28 14:24:27
-
浏览量:3688次2022-02-06 09:00:19
-
2018-04-04 14:06:53
-
0篇
-
6篇
- 华为出售荣耀不再持股!30余家代理商接盘自救
- 海思Hi35xx 通过uboot 读取U盘文件进行固件升级
- [HarmonyOS之旅] Chapter4 - HarmonyOS启动流程
- 海思 AI 芯片 (Hi3559A V100) 算法开发(一)
- potplayer视频播放器和vlc的比较
- 【海思HI3520之QT开发】-串口通讯实战(二):串口通讯之TTL通讯
- 开发效率跃升,海思Hi3861V100开发套件让开发更简单
- 项目实战:海思Hi3519AV100利用硬件加速图像格式转换
- 华为的黑科技“星闪”,6倍速度、超强抗干扰,未来或与蓝牙和Wifi抗衡
- 重磅消息 | 搭载海思WiFi芯片的全国产化语音模组,商用啦!
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
你会了没
感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明