海思芯片MPP与UNF架构分析及代码调试方法

需积分: 50 82 下载量 82 浏览量 更新于2024-08-09 收藏 2.23MB PDF 举报
"本文档主要介绍了海思MPP(Media Processing Platform)与UNF(不清楚具体含义,可能是特定产品架构的缩写)架构,并详细分析了3798芯片在处理构架上的特点,以及代码分析的方法,包括静态和动态分析函数调用关系。文档还涵盖了Hi35xx系列芯片的MPP构架、3798芯片的SDK功能、内存管理和各个关键模块的功能。此外,提供了针对3798芯片代码的具体分析,涉及通用模块和海思专用组件的应用层与驱动层接口。" 在5.2章节中,代码分析方法被详细阐述,主要分为三个部分: 1. **查看代码,静态分析应用层,驱动层实现方法**:这是代码理解的基础,通过阅读源代码来了解应用层和驱动层的逻辑实现,理解函数的功能、参数和返回值,以及它们之间的调用关系。这种方法适用于对代码结构有初步了解的情况。 2. **图示静态分析函数调用关系**:使用工具如Cflow和dot,可以将函数调用关系可视化,帮助开发者直观地看到代码中的控制流,找出关键路径和函数依赖。Cflow用于生成函数调用图,而dot则用于图形化展示这些数据。 3. **图示动态分析函数调用关系**:动态分析涉及运行时的行为,通过工具如Ltrace、strace、valgrind和perf来追踪库函数、系统调用和内核调用。Ltrace和strace记录程序运行时的系统调用,valgrind用于内存错误检测,perf则是性能分析工具,它们能提供更深入的执行细节。 在文档的其他部分,详细介绍了海思MPP架构及其优缺点,对比了MPP与UNF的不同,特别是在3798芯片上的应用架构。3798芯片的处理构架包含了多种模块,如DEMUX、VI、VDEC、SYNC、DISPLAY、WINDOW、SO和PDM等,每个模块都有其特定的功能。文档还探讨了3798的内存管理,包括Mmz内存和解码vid内存,以及各模块的使用情况。 在4.1章节中,针对3798芯片的代码分析,介绍了如何通过查看代码进行静态分析,以及使用图示工具进行动态分析。同时,文档还提到了基础模块如hi_media、hi_mmz和hi_common,以及海思专用组件如MSP模块,包括其应用层和驱动层接口。在VENC、avplay、VPSS、VDEC等组件上进行了具体的实例分析,展示了代码在处理多媒体流中的工作流程。 这份文档提供了深入的海思MPP和3798芯片架构分析,以及实用的代码分析方法,对于理解和调试相关系统具有很高的价值。