野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6221|回复: 3

想开辟一块SDRAM存储空间存放图片数据

[复制链接]
发表于 2017-9-28 16:54:20 | 显示全部楼层 |阅读模式
如题,在F429+OV2640拍摄图像直接显示在液晶屏上那个例程的基础上,想开辟一块SDRAM存储空间存放图片数据!!!

1.因为此例程开辟了SDRAM 8m的空间这8m所有的空间都是属于显存吗,我能把我的图像数据存到这里吗?
2.如果不能存在之前开辟的空间里,我需要对结构体FMC_SDRAMInitTypeDef;FMC_SDRAMTimingInitTypeDef; 从新进行配置,对SDRAM从新初始化吗??
求助~告诉我大概的思路和方法~~谢谢大神了!!!!

回复

使用道具 举报

发表于 2017-9-28 17:44:12 | 显示全部楼层
只是开头部分用作显存。
看 教程的《MDK编译过程及文件类型详解》章节的实验,可以了解更完善的SDRAM使用方法
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-9-30 11:55:36 | 显示全部楼层
flyleaf 发表于 2017-9-28 17:44
只是开头部分用作显存。
看 教程的《MDK编译过程及文件类型详解》章节的实验,可以了解更完善的SDRAM使用 ...

我定义了一个绝对地址0XD050 0000作为我存图像的基地址,可以存了也能成功再搬运到显存显示出来

可是,我使用指针取值的方法取像素点做灰度处理,显示效果没有直接讲图片保存在内存的二维数组里的效果好,通过debug看了下数据在SDRAM里直接处理像素点并没有按我GRAY函数设置的走这是怎么回事啊??SDRAM存的数据也是正确的!!

前面是将显存里的数据直接用DMA存储器到存储器模式以16位为单位搬运(仿真结果显示一致搬运成功)
指针取SDROM里的数据值是不是这样*(uint32_t *)(IMAGE_FRAME_BUFFER+j*(img_width)*2+i)
(i++扫图片的行,j++扫图片的列)为什么用这个取数据不行?
我试着用的这个*((uint16_t *)IMAGE_FRAME_BUFFER+j*(img_width)*2+i)却能取出来。我看了SDROM那个读写例程,火哥用的就是*(uint32_t *)(base+偏移地址)来取值的啊!!
是不是因为什么其他硬件配置的问题??求助火哥!!!
回复 支持 反对

使用道具 举报

发表于 2017-10-9 09:00:57 | 显示全部楼层
小希希爱自己 发表于 2017-9-30 11:55
我定义了一个绝对地址0XD050 0000作为我存图像的基地址,可以存了也能成功再搬运到显存显示出来

可是 ...

8、16位和32位都可以的,都是指针读写
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-2 00:49 , Processed in 0.031323 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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