您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> [求助]请教怎么将一个很大的数组存到flash里... 
本帖共有749个阅读者
发表帖子 发表投票 回复主题
[求助]请教怎么将一个很大的数组存到flash里面
minglfeng(论坛新手)
minglfeng
头衔:社区公民
帮派:无帮无派
帖数:18
金钱:267
积分:25
注册时间:2012/7/25
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
[求助]请教怎么将一个很大的数组存到flash里面
需要显示一副图片,我先用matlab可以读到图片的灰度值,是一个很大的数组,我怎么把这个数组存到我的flash里面去呢,貌似CCS可以读取.dat格式的文件,这样就可以用matlab把数组变成.dat格式的文件,但是Visual dsp4.5不支持.dat格式的吧,哪位大侠帮帮忙啊

「该帖子被 minglfeng 在 2012-08-16 15:15:47 编辑过」

好好工作
等级:论坛新手 参考IP地址:*.*.*.*
2012/8/16 15:15:21
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

先用ultraedit软件把.dat文件打开,看看数据是否有“,”隔开没,没有的话用软件的替换功能将“0x”替换为",0x",然后删除第一个多余的逗号。

将.dat文件加入工程,如这个.dat文件叫“test.dat”,在代码中写如下代码:

unsigned char buffer[]={

#include"test.dat"

};

即可在编译代码时,将.dat的数据加载入到buffer中去。

这样生成的ldr文件,test.dat数据是被写入flash中的。


这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2012/8/16 17:04:44
minglfeng(论坛新手)
minglfeng
头衔:社区公民
帮派:无帮无派
帖数:18
金钱:267
积分:25
注册时间:2012/7/25
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
我按照你说的,有错误说是无法识别test.dat,然后我发现有的例程中用fopen来打开.dat文件,我用一下的语句来读取.dat文件
  FILE *ptr;  
   ptr = fopen("test.txt", "rb");

    if(ptr1 == NULL)
    {
        printf("unable to open ptr\n");
    }
运行结果总是unable to open ptr,请问版主有用过fopen么,我这样写对不对,.dat里的数必须是16进制,而且用逗号隔开么

好好工作
等级:论坛新手 参考IP地址:*.*.*.*
2012/8/19 18:45:50
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
3信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

fopen无法将数据加载到flash,所以无法下载到flashboot,除非你的fopen映射的设备是SD卡。如果使用fopen,则数据中不应加“,”。

你找不到test.dat文件,可能你的相对路径映射的不正确,你在工程下的debug文件夹中,工程文件夹中,工程上级文件夹下都复制一个test.dat文件看看。

如果使用fopen,可以写入它的绝对路径看看。


这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2012/8/20 10:00:09
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.159331 Call, 1 Queries, Processed in 0.013672 second(s),