搜索
bottom↓
回复: 14

请教下,使用stm的硬件dma功能解码jpg显示乱 ??

[复制链接]

出0入0汤圆

发表于 2017-5-21 12:40:54 | 显示全部楼层 |阅读模式
本帖最后由 hpdell 于 2017-5-21 20:07 编辑

请教下,使用stm的硬件dma功能解码jpg显示乱 ??

程序是移植st官网的硬件dma解码程序

原始图片:



使用stm的硬件 解码,dma 功能后显示如下:




使用 硬件 中断读取的数据


使用硬件 dma读取的数据



对比没有发现错误,但是为什么显示就乱了  ???

上面两个数据文件,图片都是同一幅图片



本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2017-5-21 23:27:48 来自手机 | 显示全部楼层
这个没弄过,不过提醒下要注意字节对齐,前阵测试文件系统FATFS就因为字节对齐问题折腾了2个星期。切记切记

出0入0汤圆

 楼主| 发表于 2017-5-22 09:16:39 | 显示全部楼层
tdh03z 发表于 2017-5-21 23:27
这个没弄过,不过提醒下要注意字节对齐,前阵测试文件系统FATFS就因为字节对齐问题折腾了2个星期。切记切记 ...

你说的这个字节对齐,指的是什么情况下,需要对齐哪些啊??

能否具体说一下,估计我的应该也是这个问题造成的吧 !!!

出0入0汤圆

发表于 2017-5-22 22:07:32 | 显示全部楼层
hpdell 发表于 2017-5-22 09:16
你说的这个字节对齐,指的是什么情况下,需要对齐哪些啊??

能否具体说一下,估计我的应该也是这个问题 ...

不知道你具体的程序流程

要注意的就是
1 首先你读取JPG文件数据时,定义的数据缓存必须要字节对齐,在MDK中变量数组定义时应该会对齐,但为了防止错误在变量前加__align(4)保险些,也可以查看MAP文件,看看变量地址。
2 估计你的STM的读取DMA肯定是32位方式,不知你是从SD卡中读取还是其它方式获取图片数据的,如果是从SD卡中获取数据的,注意读取SD卡中文件地址时,看看这个地址是否对齐,如果没有先读取不对齐的数据,再读取后续数据,分2次

你可以看看这个帖子https://www.amobbs.com/thread-5488537-1-1.html,我当时出现问题后,看了下,这个帖子中就主要讲了文件读取的问题,实际上数据写入也有同样问题。

我可能描述不清楚,但说到底还是DMA为32位方式下字节对齐造成的问题。如果是8位的单片机和8位DMA估计就不会出现这类问题了。

出0入0汤圆

发表于 2017-5-22 23:28:37 | 显示全部楼层
看样子像数据错位了。

出0入0汤圆

 楼主| 发表于 2017-5-22 23:58:36 | 显示全部楼层
tdh03z 发表于 2017-5-22 22:07
不知道你具体的程序流程

要注意的就是

你好,我也按照 这个方法该了

      hdma_sdmmc2_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD;
      hdma_sdmmc2_tx.Init.MemDataAlignment    = DMA_MDATAALIGN_BYTE;      // 这个地方就是修改的,!!!!!!!!


但还是不行

我记得以前没有使用硬件的 jpg 解码时, 图片显示是可以的,估计现在也还是 跟字节对齐有关

出0入0汤圆

 楼主| 发表于 2017-5-24 22:51:10 | 显示全部楼层
本帖最后由 hpdell 于 2017-5-25 09:29 编辑

终于搞定了,原来是 MPU 的配置错误导致的,哎,折腾了几天,他奶奶的,

如下配置解决了问题


  MPU_InitStruct.IsShareable = MPU_ACCESS_SHAREABLE;             // 这个设置 可以解决 显示图片错乱的问题,但是这样设置的话,整个系统程序运行的速度会有所降低


  MPU_InitStruct.IsShareable = MPU_ACCESS_NOT_SHAREABLE;               // 这个设置 会出现显示图片错乱,但是这样设置的话,整个系统程序运行的速度会提高
  

出100入101汤圆

发表于 2017-5-25 09:26:05 | 显示全部楼层
楼主用的st的什么型号单片机?

出0入0汤圆

 楼主| 发表于 2017-5-25 10:31:07 | 显示全部楼层
fengyunyu 发表于 2017-5-25 09:26
楼主用的st的什么型号单片机?

使用的是 stm32f777

出0入0汤圆

 楼主| 发表于 2017-5-25 14:01:15 | 显示全部楼层

哈哈哈,都已经说了是mpu 设置问题了啊,

如果真是分辨率的问题,那么怎么可能改mpu的设置就会好啊 ???

出0入0汤圆

发表于 2017-5-25 14:18:57 | 显示全部楼层
本帖最后由 byrin219 于 2017-5-25 14:19 编辑

DMA 传输,字节对齐很重要.之前做过DMA传输图像,碰到过类似的图像显示乱的现象.不过楼主既然解决过了,说得有点多余,哈哈.不过涨了见识

出0入0汤圆

 楼主| 发表于 2017-5-25 17:17:16 | 显示全部楼层
byrin219 发表于 2017-5-25 14:18
DMA 传输,字节对齐很重要.之前做过DMA传输图像,碰到过类似的图像显示乱的现象.不过楼主既然解决过了,说得有 ...

继续说啊,不会多余的啊,

比较碰到的具体问题应该会有的差别啊,解决的方法可能也不尽相同啊

说出来以后要是我目前的这个方法解决不了,也可以参考你的这个方法啊

大胆的说来,我一定会接受沃

出0入10汤圆

发表于 2017-5-29 08:45:19 来自手机 | 显示全部楼层
本帖最后由 bias 于 2017-5-29 08:46 编辑

f777大概多少钱
用103软解JPG像ppt故意做的效果

出0入0汤圆

 楼主| 发表于 2017-5-29 10:48:34 | 显示全部楼层
bias 发表于 2017-5-29 08:45
f777大概多少钱
用103软解JPG像ppt故意做的效果

f777 qfp208  大概75元左右吧,那时找的st代理买的
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-20 07:35

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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