DM6446 Codec Engine问题总结及解决办法

2024-03-03 16:18

本文主要是介绍DM6446 Codec Engine问题总结及解决办法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

DM6446 Codec Engine问题

问题1:

DAVINCI_EVM DM6446 跑 DEMOS 里面的 encodedecode 例子出现以下问题:


Encodedecode Debug: PAL selected
Encode-decode demo started!

Encodedecode Debug: Codec Engine Initialized!

TraceUtil> Error: Failed to open codec engine "encodedecode"


出现这个问题是因为运行的程序跟二进制的DSP文件不在一个文件夹,程序找不到对应的encodedecode 引擎,移到同一个文件夹下就OK了



loadmodule在什么文件系统下运行很有关系(运行Loadmodule.sh可以加载cmem.ko和dsplink.ko)

问题2

root@172.18.216.227:/home/dvevm# ./loadmodules.sh
<6>cmem initialized 4 pools between 0x87800000 and 0x88000000
 DDR_START 0x8fa00000 DDR_SIZE 0x400000
root@172.18.216.227:/home/dvevm# ./image_sharpen
Encodedecode demo started.
VIDIOC_QUERYSTD failed on /dev/video0. Video input connected?

Total I-frames: 0, P-frames: 0, B-frames: 0, IDR-frames: 0 rejected: 0
Unable to handle kernel paging request at virtual address bf055030
pgd = c58e8000
[bf055030] *pgd=85e0c011, *pte=00000000, *ppte=00000000
Internal error: Oops: 7 [#2]
Modules linked in: dsplinkk cmemk
CPU: 0
PC is at PMGR_MSGQ_Close+0x18/0x84 [dsplinkk]
LR is at DRV_Ioctl+0x2a4/0x34c [dsplinkk]
pc : [<bf005840>]    lr : [<bf005468>]    Tainted: PF    
sp : c5e61f00  ip : c5e61f20  fp : c5e61f1c
r10: 00900036  r9 : c5e60000  r8 : c002a154
r7 : bf015430  r6 : 00006f04  r5 : 00008000  r4 : 0000ff00
r3 : ff000000  r2 : 00006c11  r1 : 00006f04  r0 : 0002ff00
Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  Segment user
Control: 5317F  Table: 858E8000  DAC: 00000015
Process image_sharpen (pid: 1214, stack limit = 0xc5e601a0)
Stack: (0xc5e61f00 to 0xc5e62000)
1f00: 44065570 00008000 00006f04 44065570 c5e61f34 c5e61f20 bf005468 bf005838
1f20: c67a3720 ffffffe7 c5e61f54 c5e61f38 c0091bac bf0051d4 c67a3720 44065570
1f40: 00000008 00000000 c5e61f7c c5e61f58 c0091eb4 c0091b40 c004940c c0217a48
1f60: c67a3720 fffffff7 00006f04 00000036 c5e61fa4 c5e61f80 c0091f14 c0091bd0
1f80: 000006f0 00000001 000000a2 0002c6e0 00030140 0000070c 00000000 c5e61fa8
1fa0: c00299c0 c0091ee4 0002c6e0 00030140 00000008 00006f04 44065570 0002f740
1fc0: 0002c6e0 00030140 0000070c 000006ec 0002c54c 000006fc 0002c114 4406556c
1fe0: 0002c1d0 44065518 0001698c 401a0344 80000010 00000008 00000000 00000000
Backtrace:
[<bf005828>] (PMGR_MSGQ_Close+0x0/0x84 [dsplinkk]) from [<bf005468>] (DRV_Ioctl+0x2a4/0x34c [dsplinkk])
 r7 = 44065570  r6 = 00006F04  r5 = 00008000  r4 = 44065570
[<bf0051c4>] (DRV_Ioctl+0x0/0x34c [dsplinkk]) from [<c0091bac>] (do_ioctl+0x7c/0x90)
 r5 = FFFFFFE7  r4 = C67A3720
[<c0091b30>] (do_ioctl+0x0/0x90) from [<c0091eb4>] (vfs_ioctl+0x2f4/0x314)
 r7 = 00000000  r6 = 00000008  r5 = 44065570  r4 = C67A3720
[<c0091bc0>] (vfs_ioctl+0x0/0x314) from [<c0091f14>] (sys_ioctl+0x40/0x64)
 r7 = 00000036  r6 = 00006F04  r5 = FFFFFFF7  r4 = C67A3720
[<c0091ed4>] (sys_ioctl+0x0/0x64) from [<c00299c0>] (ret_fast_syscall+0x0/0x2c)
 r6 = 0000070C  r5 = 00030140  r4 = 0002C6E0
Code: e24cb004 e59f7064 e1a03800 e1a04823 (e7973104)

解决方式 
cmem.ko是arm端和dsp端可共享的内存空间,可设定里面pool的大小,根据具体情况而定;
dsplink.ko是arm和dsp相互联系的关键桥梁,是codec engine方式所必须的,如果板子内存有改动,还需要重新编译dsplink;或者是内核跟dsplinkk.ko的版本不匹配,
找到对应的dsplinkk.ko或者内核即可。
我今天遇到这个问题是因为dsplinkk.ko没问题,但是我刚开始烧写的内核对不上号,内核不认识Codec Engine的一系列东西,找到对应的内核就没问题了.因为在虚拟机的
tftp文件夹下有一个uImage256,但是我的开发板不是用的这个内核,我原来一直默认这个内核没问题,后来找到板子带的内核烧进去就没问题了 

附上找到的其他人的错误及解决方式

root@172.16.5.238:/demos-dm6446/encodedecode/debug# ./encodedecoded Cr 720x480 C
b 2400000 Ck Ct 20
Encodedecode Debug: PAL selected
Encodedecode demo started.
Encodedecode Debug: Codec Engine initialized
TraceUtil> Error: Failin kernel: davincifb_pan_display 1
in kernel: davincifb_pan_display 2
in kernel: davincifb_pan_display 3
ed to open codec engine "encodedecode"
TraceUtil> Error: Aborting TraceUtil_start
Encodedecode Debug: Logging initialized
Encodedecode Debug: Pause object opened
Encodedecode Debug: Init rendezvous opened for 4 threads
Encodedecode Debug: Cleanup rendezvous opened for 4 threads
Encodedecode Debug: Priming rendezvous opened for 2 threads
Encodedecode Debug: Display buffer 0 mapped to 0x41acb000 has physical address 0
x86000000
Encodedecode Debug: Display buffer 1 mapped to 0x41b95800 has physical address 0
x860ca800
Encodedecode Debug: Display buffer 2 mapped to 0x41c60000 has physicin kernel: d
avincifb_pan_display 1
in kernel: davincifb_pan_display 2
in kernel: davincifb_pan_display 3
al address 0x861in kernel: davincifb_pan_display 1
in kernel: davincifb_pan_display 2
in kernel: davincifb_pan_display 3
95000
Encodedecin kernel: davincifb_pan_display 1
in kernel: davincifb_pan_display 2
in kernel: davincifb_pan_display 3
ode Debug: Video display device initialized.
Encodedecode Debug: captureWidth = 720, captureHeight = 576
Encodedecode Debug: Capture thread created
Encodedecode Debug: Set the capture input to id 0
Encodedecode Error: Failed to open codec engine encodedecode
Encodedecode Debug: OSD successfully initialized
Encodedecode Debug: Entering display main loop.
Encodedecode Debug: Checking video standard
Encodedecode Debug: OSD transparency initialized
Encodedecode Error: Failed to open codec engine encodedecode
Encodedecode Debug: PAL camera detected
Encodedecode Debug: Setting capture cropping (720x576)
Capturing 720x576 video (cropped to 720x576)
Encodedecode Debug: 3 capture buffers were successfully allocated.
Encodedecode Debug: Capture driver buin kernel: davincifb_pan_display 1
in kernel: davincifb_pan_display 2
in kernel: davincifb_pan_display 3
ffer 0 at physical address 1122762752 mapped to virtual address 0x80d00000
Encodedecode Debug: Capture driver buffer 1 at physical address 1123647488 mappe
d to virtual address 0x80e00000
Encodedecode Debug: Capture driver buffer 2 at physical address 1124532224 mappe
d to virtual address 0x80f00000
Encodedecode Debug: Video capture initialized and started
Smooth Debug: Creating smooth job of size 720x576
Encodedecode Debug: Entering capture main loop.
TraceUtil是一个编解码引擎模块,用来收集对在运行的事件的轨迹信息。当跟踪单元被激活时,
GPP trace, DSP trace, BIOS logs三种信息将被跟踪记录。跟踪功能在DVTB的默认参数下时关闭的,如有需要需先激活:
有关TraceUtil在http://processors.wiki.ti.com/index.php?title=TraceUtil
     对于每个视频程序都有三个文件夹,codecs是算法包,servers是生成dsp侧可执行程序的,video_app是生成arm端可执行程序的。
其中servers中的.tcf文件很重要,他是分配memory的。前面提到的256M和128M板子在这个文件的分配上是不一样的,和众达给的资料很多,
一不小心就弄错了,大家一定得看清这个文件里的设置,看是适合哪个板子的。否则会出现TraceUtil->can't not open codec engine 的错误!
还有一个加载memk.ko和dsplinkk.ko的文件loadmodules.sh,不同的板子这个文件也是不一样的,用错了就会出现一大堆的错误,其实只是这个文件选错了而已!

只要上面讲的这两个文件没问题,程序就能通过了!



这篇关于DM6446 Codec Engine问题总结及解决办法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/770171

相关文章

JAVA Calendar设置上个月时,日期不存在或错误提示问题及解决

《JAVACalendar设置上个月时,日期不存在或错误提示问题及解决》在使用Java的Calendar类设置上个月的日期时,如果遇到不存在的日期(如4月31日),默认会自动调整到下个月的相应日期(... 目录Java Calendar设置上个月时,日期不存在或错误提示java进行日期计算时如果出现不存在的

Mybatis对MySQL if 函数的不支持问题解读

《Mybatis对MySQLif函数的不支持问题解读》接手项目后,为了实现多租户功能,引入了Mybatis-plus,发现之前运行正常的SQL语句报错,原因是Mybatis不支持MySQL的if函... 目录MyBATis对mysql if 函数的不支持问题描述经过查询网上搜索资料找到原因解决方案总结Myb

Nginx错误拦截转发 error_page的问题解决

《Nginx错误拦截转发error_page的问题解决》Nginx通过配置错误页面和请求处理机制,可以在请求失败时展示自定义错误页面,提升用户体验,下面就来介绍一下Nginx错误拦截转发error_... 目录1. 准备自定义错误页面2. 配置 Nginx 错误页面基础配置示例:3. 关键配置说明4. 生效

Springboot3统一返回类设计全过程(从问题到实现)

《Springboot3统一返回类设计全过程(从问题到实现)》文章介绍了如何在SpringBoot3中设计一个统一返回类,以实现前后端接口返回格式的一致性,该类包含状态码、描述信息、业务数据和时间戳,... 目录Spring Boot 3 统一返回类设计:从问题到实现一、核心需求:统一返回类要解决什么问题?

maven异常Invalid bound statement(not found)的问题解决

《maven异常Invalidboundstatement(notfound)的问题解决》本文详细介绍了Maven项目中常见的Invalidboundstatement异常及其解决方案,文中通过... 目录Maven异常:Invalid bound statement (not found) 详解问题描述可

idea粘贴空格时显示NBSP的问题及解决方案

《idea粘贴空格时显示NBSP的问题及解决方案》在IDEA中粘贴代码时出现大量空格占位符NBSP,可以通过取消勾选AdvancedSettings中的相应选项来解决... 目录1、背景介绍2、解决办法3、处理完成总结1、背景介绍python在idehttp://www.chinasem.cna粘贴代码,出

C# List.Sort四种重载总结

《C#List.Sort四种重载总结》本文详细分析了C#中List.Sort()方法的四种重载形式及其实现原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友... 目录1. Sort方法的四种重载2. 具体使用- List.Sort();- IComparable

SpringBoot项目整合Netty启动失败的常见错误总结

《SpringBoot项目整合Netty启动失败的常见错误总结》本文总结了SpringBoot集成Netty时常见的8类问题及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录一、端口冲突问题1. Tomcat与Netty端口冲突二、主线程被阻塞问题1. Netty启动阻

SpringBoot整合Kafka启动失败的常见错误问题总结(推荐)

《SpringBoot整合Kafka启动失败的常见错误问题总结(推荐)》本文总结了SpringBoot项目整合Kafka启动失败的常见错误,包括Kafka服务器连接问题、序列化配置错误、依赖配置问题、... 目录一、Kafka服务器连接问题1. Kafka服务器无法连接2. 开发环境与生产环境网络不通二、序

SpringSecurity中的跨域问题处理方案

《SpringSecurity中的跨域问题处理方案》本文介绍了跨域资源共享(CORS)技术在JavaEE开发中的应用,详细讲解了CORS的工作原理,包括简单请求和非简单请求的处理方式,本文结合实例代码... 目录1.什么是CORS2.简单请求3.非简单请求4.Spring跨域解决方案4.1.@CrossOr