OpenEdv-开源电子网

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

拍照功能OV5640例程的JPEG超过分配的300K了

[复制链接]

14

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
155
金钱
155
注册时间
2020-5-7
在线时间
92 小时
发表于 2020-5-12 10:19:57 | 显示全部楼层 |阅读模式
5金钱
本帖最后由 taotaotao 于 2020-5-12 11:16 编辑

jpeg_data_buf=mymalloc(SRAMEX,300*1024); 拍照得到的数据存储在这里
jpeg_data_len*4是900多K,也就是说文件大小超过了分配的空间300K了,为什么还可以了




调试时都出现这个地址了,明显超出1M了,0x68186000,这都能实现拍照

最佳答案

查看完整内容[请看2#楼]

可以是可以,单独的系统, 300K以后的内存空间没有其他程序用到就没问题(实际上内存溢出了)。 但是如果300K以后的空间 , 有其他程序用到,就容易hardfault
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2020-5-12 10:19:58 | 显示全部楼层
可以是可以,单独的系统, 300K以后的内存空间没有其他程序用到就没问题(实际上内存溢出了)。 但是如果300K以后的空间 , 有其他程序用到,就容易hardfault
回复

使用道具 举报

14

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
155
金钱
155
注册时间
2020-5-7
在线时间
92 小时
 楼主| 发表于 2020-5-12 11:21:47 | 显示全部楼层
思索了一天,有经验的进来看看,是不是我理解错了
回复

使用道具 举报

0

主题

57

帖子

0

精华

初级会员

Rank: 2

积分
62
金钱
62
注册时间
2018-12-27
在线时间
0 小时
发表于 2020-5-12 13:06:39 | 显示全部楼层
帮顶,大家来帮忙解答一下。。
回复

使用道具 举报

31

主题

2183

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
14424
金钱
14424
注册时间
2018-8-3
在线时间
1157 小时
发表于 2020-5-12 20:58:44 | 显示全部楼层
照相机开启的是双缓冲模式   数据是一行一行传输的
回复

使用道具 举报

14

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
155
金钱
155
注册时间
2020-5-7
在线时间
92 小时
 楼主| 发表于 2020-5-13 08:08:49 | 显示全部楼层
翼行园子 发表于 2020-5-12 20:58
照相机开启的是双缓冲模式   数据是一行一行传输的

两个双缓冲开辟了20K空间,但是最终都是汇总存在这个数组里面的
回复

使用道具 举报

14

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
155
金钱
155
注册时间
2020-5-7
在线时间
92 小时
 楼主| 发表于 2020-5-13 09:56:32 | 显示全部楼层
本帖最后由 taotaotao 于 2020-5-13 10:02 编辑
正点原子 发表于 2020-5-12 10:19
可以是可以,单独的系统, 300K以后的内存空间没有其他程序用到就没问题(实际上内存溢出了)。 但是如果30 ...

有谁知道原子哥这句话什么意思吗,超出了IS62WV51216的存储范围数据也能存储,是不是换成IS62WV6416或者更小的SRAM甚至不外扩SRAM也一样,反正没其他程序用到
回复

使用道具 举报

14

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
155
金钱
155
注册时间
2020-5-7
在线时间
92 小时
 楼主| 发表于 2020-5-13 09:58:10 | 显示全部楼层
翼行园子 发表于 2020-5-12 20:58
照相机开启的是双缓冲模式   数据是一行一行传输的

两个20K的DMA缓存区里的数据最终都是要存入这个数组里面的
回复

使用道具 举报

14

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
155
金钱
155
注册时间
2020-5-7
在线时间
92 小时
 楼主| 发表于 2020-5-14 07:20:57 | 显示全部楼层
再解释解释呗
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2020-5-18 00:52:55 | 显示全部楼层
taotaotao 发表于 2020-5-13 09:56
有谁知道原子哥这句话什么意思吗,超出了IS62WV51216的存储范围数据也能存储,是不是换成IS62WV6416或者 ...

很难理解?
你申请的内存是300K, 但是由于SRAM是1M的, 你超区域使用也不一定会出错(不超过1M), 因为内存是存在的, 只是你没申请而已。
但是如果你搞个64K的SRAM, 那就铁定死机了, 因为根本就没那么多内存
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

14

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
155
金钱
155
注册时间
2020-5-7
在线时间
92 小时
 楼主| 发表于 2020-5-18 07:24:07 | 显示全部楼层
本帖最后由 taotaotao 于 2020-5-18 11:15 编辑
正点原子 发表于 2020-5-18 00:52
很难理解?
你申请的内存是300K, 但是由于SRAM是1M的, 你超区域使用也不一定会出错(不超过1M), 因 ...

那这样的话分配的应该是300K以外1M以内的其他地址范围的空间,可是再怎么样内存地址总不应该超出0X68100000这个地址范围不是嘛,新人有很多问号
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-10 11:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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