查看: 14283|回复: 302

[原创] 海思35xx MPP构架和3798M UNF构架分析

    [复制链接]
发表于 2017-4-27 15:39:47 | 显示全部楼层 |阅读模式
本帖最后由 isuca 于 2017-12-25 14:30 编辑

UNF是海思机顶盒底层构架,UNF和MPP海思是一个工作组完成的,后来分成两个小组。基本构架,实现原理差不多。但UNF大部分东西开源了,你能够看到底层源码,少数部分没有开源,总体来说比MPP开放得多

很多公司早就使用机顶盒方案如3798M开发NVR

目录
前言:        4
1:Hi35xx系列芯片MPP构架        5
1.1 概述        5
1.2 整体软硬件构架        5
1.3 海思媒体处理平台架构        6
1.4 MMZ与模块绑定        8
1.5 HiMPP 支持的绑定关系        9
1.6 函数约定说明        10
1.7 MPP优缺点        11
1.7.1 MPP优点        11
1.7.2 MPP缺点        11
2: MPP和UNF对比        11
3:3798芯片UNF处理构架        12
3.1 应用架构        12
3.2 3798SDK 概览(功能介绍)        13
3.3 3798内存管理        13
3.3.1 Mmz内存        13
3.3.2 解码vid内存        14
3.4 3798模块        14
DEMUX:        14
VI:        14
VDEC        15
SYNC:        15
DISPLAY:显示设备        15
WINDOW:显示通道        15
SO( Subtitle Output)        16
PDM        17
3.5 3798和NVR模块使用方面区别:        20
4: 3798代码祥看        20
4.1 分析方法        20
4.1.1:查看代码,静态分析应用层,驱动层实现方法        20
4.1.2:图示静态分析函数调用关系        21
4.1.3:图示动态分析函数调用关系:库函数,系统调用,内核调用        21
4.2 基础模块:hi_media hi_mmz hi_common        21
Common        21
4.2.1 基本通用模块应用层接口common/api        22
4.2.2 基本通用模块驱动接口common/dev        22
4.2.3 业务模块应用层通用组件source/component        30
4.3 海思专用组件        30
4.3.1 海思MSP模块应用层接口source/msp/api        30
4.3.2 海思MSP模块驱动层接口source/msp/drv/        33
VENC        33
avplay        34
avplay初始化分析        34
IOCTL实现分析 基于avplay        35
avplay 多个实例如何找到对应实例        36
VPSS        36
VDEC        38
Avplay解码ES流过程        38
IR        39
4.4 Sample_mosaic分析        42
应用层调用        42
系统调用        43
5:小结:        44
5.1 UNF相对标准内核模块区别        44
5.1.1 Proc读写调试。        44
5.1.2 内核空间往应用空间写文件        44
5.1.3Log管理        45
5.1.4内存映射        45
5.2代码分析方法        45
5.2.1 查看代码,静态分析应用层,驱动层实现方法        45
5.2.2 图示静态分析函数调用关系.        45
5.2.3 图示动态分析函数调用关系:库函数,系统调用,内核调用        45
参考文档:        46



前言:
        本文通过分析海思文档和代码,把海思SDK的MPI和UNF构架大概实现思想和构架进行了简略的分析。着重分析了内存管理,底层功能如何实现。
        前面章节简要分析了NVR芯片MPI构架及其内存管理机制,后面着重详细分析了3798M底层模块api和drv实现的细节过程及其方法流程。

        本文前面简略分析了DVR,MPI构架的大体实现机制。后面就具体分析3798M UNF构架的实现。
本文不光分析了UNF构架,还使用了很多工具,辅助分析代码。这里从三个层面分析了UNF的实现。
1: 应用层,驱动层的实现框架,使用source insight查看代码并着重分析了avplay等几个模块。
2:静态分析函数调用。使用cflow,dot工具生成调用关系图
3:动态追踪运行过程。Ltrace, strace, valgrind分析函数调用,perf动态分析内核调用。

附件回复可见
海思35XX MPP构架和3798 UNF构架分析 - 副本.pdf
游客,如果您要查看本帖隐藏内容请回复



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
楼主热帖
发表于 2017-5-5 14:44:38 | 显示全部楼层
海思底层的东西基本上不需要动,也动不了
 楼主| 发表于 2017-4-27 15:51:36 | 显示全部楼层
积累几年,花了几周写出来的,看到说一下意见
发表于 2017-4-27 16:04:40 | 显示全部楼层
isuca 发表于 2017-4-27 15:51
积累几年,花了几周写出来的,看到说一下意见

穷人看不到,多多分享吧
 楼主| 发表于 2017-4-27 16:52:55 | 显示全部楼层
zhuangweiye 发表于 2017-4-27 16:04
穷人看不到,多多分享吧

相对你,我穷死了
再说,真的非常便宜了,知识没那么廉价
发表于 2017-4-27 16:59:44 | 显示全部楼层
isuca 发表于 2017-4-27 16:52
相对你,我穷死了
再说,真的非常便宜了,知识没那么廉价

知识无价,多多分享吧
发表于 2017-4-27 18:41:51 | 显示全部楼层
碉堡了
碉堡了
碉堡了
碉堡了
发表于 2017-4-27 19:43:53 | 显示全部楼层
dddddddddddddd
发表于 2017-4-27 20:23:09 | 显示全部楼层
看看能不能用到
发表于 2017-4-28 09:50:06 | 显示全部楼层
正在学习HI3798,从HI3536转过来的,确实好多不一样,很困惑,学习学习,谢谢楼主
发表于 2017-4-28 10:37:06 | 显示全部楼层
好东西,学习一下。
发表于 2017-4-28 11:40:03 | 显示全部楼层
对于HIplayer模块,没有做点相关介绍呢,SDK中描述可以直接连接rstp流?

发表于 2017-4-28 15:03:14 | 显示全部楼层
11111111111111111111111
发表于 2017-4-28 15:43:31 | 显示全部楼层
vi 对sensor lvds raw data 16bit支不支持
发表于 2017-4-28 21:39:51 | 显示全部楼层
好东西,学习一下。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

© 2008-2017 当前位置 易百纳技术社区论坛 返回 易百纳技术社区 ( 苏ICP备14036084 )   Powered by Discuz! X3.1
快速回复 返回顶部 返回列表