OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3400|回复: 4

使用LibJPEG解480*272程序會跑飛

[复制链接]

4

主题

11

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2016-8-3
在线时间
10 小时
发表于 2017-3-14 10:35:01 | 显示全部楼层 |阅读模式
10金钱
請問一下,我使用stm32f429移植LibJPEG來解JPEG圖檔,我是參考原子的實驗45範例,也有申請內存。將JPEG圖檔用陣列的形式放在flash內,
但執行jpeg_start_decompress(cinfo)後程序就跑飛了,查了一下發現程序是在執行jmemmgr.c裡面的access_virt_barray()內的
    if (ptr->pre_zero) {
      size_t bytesperrow = (size_t) ptr->blocksperrow * SIZEOF(JBLOCK);
      undef_row -= ptr->cur_start_row; /* make indexes relative to buffer */
      end_row -= ptr->cur_start_row;
      while (undef_row < end_row) {
        MEMZERO((void FAR *) ptr->mem_buffer[undef_row], bytesperrow); ------>會跳進來執行這行,程序就跳至void HardFault_Handler(void)了。
        undef_row++;
      }

請救助各位,可否告訴我哪裡出了問題,因為我放小一點的圖不會這樣,放480*272就會出問題了,還請各位指點。感謝~

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165287
金钱
165287
注册时间
2010-12-1
在线时间
2107 小时
发表于 2017-3-15 21:16:33 | 显示全部楼层
八成是数组溢出,或者指针跑飞,或者堆栈小了
回复

使用道具 举报

4

主题

11

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2016-8-3
在线时间
10 小时
 楼主| 发表于 2017-3-16 15:20:54 | 显示全部楼层
正点原子 发表于 2017-3-15 21:16
八成是数组溢出,或者指针跑飞,或者堆栈小了

請問原子哥:
您說的沒錯數組溢出,目前已修改完成。有幾個問題想請教您一下,
1、執行完jpeg_start_decompress(&cinfo);這行後,是用
(void) jpeg_read_scanlines(&cinfo, buffer, 1);將資料讀取。請問若我移值原子的範例程序想要取RGB565的格式,是不是需要將RGB888轉RGB565呢? 因為我看範例裡的jdmerge.c內的h2v1_merged_upsample()程序好像將RGB888轉RGB565的程序拿掉了。

謝謝~

回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165287
金钱
165287
注册时间
2010-12-1
在线时间
2107 小时
发表于 2017-3-17 00:15:04 | 显示全部楼层
是要转成565
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

4

主题

11

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2016-8-3
在线时间
10 小时
 楼主| 发表于 2017-3-17 10:12:04 | 显示全部楼层

原子哥 您好:
您的意思是說原子的範例程式已將RGB565轉換拿掉了是嗎? 那是否將mark拿掉就可以了呢?
另外想請問執行完jpeg_start_decompress(cinfo); 之後,執行
while (cinfo->output_scanline < cinfo->output_height)
{
                jpeg_read_scanlines(cinfo, buffer, 1);
}        
上述程式意思是否將JPEG解碼後的資料放在buffer內呢? 請問要看程式的哪個段落可以明白知道已經轉碼成功呢?

謝謝您的回覆~
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-2 00:27

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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