温馨提示:


资料下载过程中如遇在线文档打开失败的情况,建议多尝试两次。大于100MB的文件建议使用WinSCP FTP工具来下载!

压缩包文档请下载下来后再进行解压缩操作。

华芯微特开发论坛

 找回密码
 立即注册
搜索
热搜: SWM341 资料
查看: 2300|回复: 8

使用JPEG硬件解码 模块死掉无法恢复

[复制链接]

4

主题

13

帖子

50

积分

注册会员

Rank: 2

积分
50
发表于 2024-5-11 21:07:59 | 显示全部楼层 |阅读模式
本帖最后由 thtfcccj 于 2024-5-11 21:10 编辑

问题为:在播放MJPEG格式的AVI过程中,会出现判断JPEG解码一直忙问题,也不报错!
工作状态为:
  使用DA+DMA播放音乐, DA的数据流缓冲位于内部RAM中而不是SDRAM中(其它地方未用到DMA) 因空间不够,需解码的一帧JPEG图像位于SDRAM中。

出现此问题时,寄存器如下所示:
C3{WKV)2KG0BU){TR3JJ344.png

不报错,也不进中断!!
操作RESTART与START寄存器,BUSY也会指示一直忙
操作其时钟:SYS->CLKEN1 中的 SYS_CLKEN1_JPEG_Msk: 关闭后再开启,寄存器也会一直提示忙!
尝试不播放声音,仍会出现此情况!
除了复位能够解除,没找到别的办法!

请问题问题出在那里?怎么解决?

回复

使用道具 举报

4

主题

13

帖子

50

积分

注册会员

Rank: 2

积分
50
 楼主| 发表于 2024-5-11 21:11:34 | 显示全部楼层
回复

使用道具 举报

4

主题

13

帖子

50

积分

注册会员

Rank: 2

积分
50
 楼主| 发表于 2024-5-11 21:43:27 | 显示全部楼层
AVI里的MP3音频单独放能全部放完
AVI里的MJPEG视频帧单独放, 几十秒后,MCU的 JPEG模块卡死
AVI音视频一起放,不到1秒,只有几帧后,MCU的 JPEG模块卡死
回复

使用道具 举报

4

主题

13

帖子

50

积分

注册会员

Rank: 2

积分
50
 楼主| 发表于 2024-5-11 21:45:20 | 显示全部楼层
这是卡死时的视频:

VID_20240511_213402.mp4

8.21 MB, 下载次数: 3

回复

使用道具 举报

14

主题

61

帖子

687

积分

超级版主

Rank: 8Rank: 8

积分
687
发表于 2024-5-11 22:12:29 | 显示全部楼层


使用如下代码复位JPEG模块,,然后再执行JPEG_Init()重新初始化JPEG试下
  1. SYS->PRSTR1 |= SYS_PRSTR1_JPEG_Msk;
  2. for(int i = 0; i < CyclesPerUs; i++) __NOP();
  3. SYS->PRSTR1 &= ~SYS_PRSTR1_JPEG_Msk;
复制代码


回复

使用道具 举报

4

主题

13

帖子

50

积分

注册会员

Rank: 2

积分
50
 楼主| 发表于 2024-5-13 09:52:18 | 显示全部楼层
XIVN1987 发表于 2024-5-11 22:12
使用如下代码复位JPEG模块,,然后再执行JPEG_Init()重新初始化JPEG试下

尝试过了,没有效果,复位期间和复位后所有寄存器保持原有数值不变,
在开时钟与关时钟状态均有尝试!
BUSY位状态均会一直保持为1
回复

使用道具 举报

14

主题

61

帖子

687

积分

超级版主

Rank: 8Rank: 8

积分
687
发表于 2024-5-13 10:25:23 | 显示全部楼层
本帖最后由 XIVN1987 于 2024-5-13 10:26 编辑
thtfcccj 发表于 2024-5-13 09:52
尝试过了,没有效果,复位期间和复位后所有寄存器保持原有数值不变,
在开时钟与关时钟状态均有尝试!
BU ...

抱歉,,这个寄存器有写保护,,改成如下试试:
  1. SYS->PRSTEN = 0x55;
  2. SYS->PRSTR1 |= SYS_PRSTR1_JPEG_Msk;
  3. for(int i = 0; i < CyclesPerUs; i++) __NOP();
  4. SYS->PRSTR1 &= ~SYS_PRSTR1_JPEG_Msk;
  5. SYS->PRSTEN = 0x00;
复制代码


回复

使用道具 举报

4

主题

13

帖子

50

积分

注册会员

Rank: 2

积分
50
 楼主| 发表于 2024-5-13 16:33:38 | 显示全部楼层
XIVN1987 发表于 2024-5-13 10:25
抱歉,,这个寄存器有写保护,,改成如下试试:

嗯嗯,上午回复无果后, 我看资料也发现需要加这个才有效,加了后能够复位了,现在能够正常播放了!
原程序也发现音频占用JPG缓冲问题导致数据被破坏的BUG,解决后2分钟视频只有一次死掉且显示不对,估计那帧视频JPG数据有问题,所在这个功能还是必不可少的!
多谢!
回复

使用道具 举报

4

主题

13

帖子

50

积分

注册会员

Rank: 2

积分
50
 楼主| 发表于 2024-5-13 16:58:52 | 显示全部楼层
实测通过SDIO模式读TF卡,480*500 MJPG格式视频中等质量,MP3格式音频, 能够实现流畅的约24帧速率的流畅解码播放!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|华芯微特开发论坛

GMT+8, 2024-10-18 15:08 , Processed in 0.037326 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表