主题 : tiny210 JPEG 紧急求救版主!!! 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 93240
精华: 0
发帖: 48
金钱: 240 两
威望: 48 点
综合积分: 96 分
注册时间: 2013-06-18
最后登录: 2017-09-13
楼主  发表于: 2013-12-18 14:57

 tiny210 JPEG 紧急求救版主!!!

我使用tiny210 的jpeg驱动,发现一个奇怪的现象,定位了好几天都没有找到问题到底在哪里,紧急请教楼主!帮忙判断下到底是不是210jpeg硬件的BUG问题啊!

环境:tiny210v2 内核版本:linux2.6.35.7

之前封装了应用库,其中编码函数save(),解码函数load()

save() 功能:
1 、打开Jpeg设备,mem设备。进行空间映射
2 、设置寄存器进行编码。
3、完成编码后 解除映射关系,关闭时钟。关闭jpeg设备

load()功能:
1、打开Jpeg设备、mem设备,进行空间映射
2、设置解码寄存器,进行解码
3、完成解码后,解除映射关系,关闭时钟,关闭Jpeg设备

一直使用load函数进行解码,均正常。
一直使用save函数进行编码,也正常。

但是问题是:load解码一次,在进行save编码,该过程正常,接着进行解码会失败。
解码失败的原因是JPGINTST(0xFB60_0038)寄存器值为0x20(bit 5 被置为1)该寄存器的描述如下:
Bitstream error status Vaild during decompression only
0: there is no syntax error on the compressed file 。
1: there is syntax error on the compressed file

很是奇怪,我在每次进行解码的时候,都是重新打开设备,进行地址映射,开时钟,进行软复位操作,在设置相关的寄存器,进行解码。按说是正常的,但是却出现这样的错误,
很是摸不准头脑,我也比较过开始解码启动前 所有寄存器的值,除了质量表和ham那个表有差异外,其他寄存器都是相同的,那几个表在解码时应该关系不大的,我试着写这些寄存器的值,
都没有办法写进去值,如果这样失败的话,在接着运行解码Locd函数,说不准什么时间就可以成功了,但是这个时间是不确定的,感觉比较像随机事件。

请问版主,之前测试的时候遇到过这种现象吗?这种问题大概会是什么原因?我自己感觉比较像硬件的原因!