Board logo

标题: 【请教】Flash读文件的问题 [打印本页]

作者: zengxuan    时间: 2007-3-28 15:35     标题: 【请教】Flash读文件的问题

我的flash是8bit4M的,里面从首地址(0x00800000)开始存放一个mp3音频文件,我需要每次读16bit数据,将数据放入数组。

我的程序是这样的:

unsigned short voicedata[5204];

for(add=0x00800000,j=0;add<0x00829398,j<5204;add+=2, j++) 
        {
         voicedata[j]=IORD(add,0);
        }

结果读出来的数据除了开始几个其他全为65535

我先前用同样的程序读wav文件却是正确的,请教,如果我要读mp3数据应该怎么读!!


作者: caopengly    时间: 2007-3-29 11:06

我觉得数据应该和什么格式的没有关系,你是怎么确定数据已经在flash中了的,如果flash写入不成功呢?
作者: zengxuan    时间: 2007-3-29 14:56

我用的是DE2板,自带有control Panel软件,可以把文件写到flash的指定地址,所以我确定数据是已经写到flash里的了。

如果我把voicedata[5204]设成unsigned int (32bit)的话,读出来就是正常的数据,很奇怪

8位的flash,每个地址存的数据不是8bit吗?难道是32bit?还是读数据的时候连续读了4个地址?

请指点,谢谢!


作者: kzw    时间: 2007-3-29 18:28

应该说不管是读16bit还是32bit都会是正确的,读多少是由nios管理的,如果是8bitflash,16bit的读取应该读两次,32bit就是读三次。

IORD读出来的是32bit的数据,应该nios的寄存器都是32bit的。


作者: zengxuan    时间: 2007-3-30 09:04

谢谢版主和Kzw的讲解




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0