MSP430外扩flash SST25VF032B,为什么只能写入32K的数据?
大家好!MSP430外扩flash SST25VF032B,为什么只能写入32K的数据?
串口每包接收256个字节,然后写入flash芯片,数据共有200包数据,也就是51.2k字节。200包数据接收完后发现只写入了32K字节,因为之后读出来的数据全是0xff,写flash的起始地址是0x0006。请朋友们指点迷津!谢谢了! 是不是 你长度计数的变量定义成char了?32K/256 = 128char -127~+128 sunshulin 发表于 2013-10-7 10:27 static/image/common/back.gif
是不是 你长度计数的变量定义成char了?32K/256 = 128char -127~+128
我也猜类似的原因!! 32K字节 对啊32K 很可能是 你某个计算数据量的 变量出错了 这种错误是很明显的,我不会犯!现在发现是地址计算错了,正在琢磨...
谢谢大家的指教! 把源代码上传瞅瞅 只需要 操作flash的这一段~ 祥子 发表于 2013-10-8 17:30 static/image/common/back.gif
把源代码上传瞅瞅 只需要 操作flash的这一段~
操作flash的代码都是历程,我错在送进写flash的地址到32K之后就出错了。
计算写flash的起始地址公式:
#define LoadStart 0x06
unsigned long addr_32;
addr_32=(unsigned long)(LoadStart+0xffe0-0x2000+i*16);
之前出错的公式是:
#define LoadStart ((unsigned long)0x06)
unsigned long addr_32;
addr_32=LoadStart+0xffe0-0x2000+i*16;
但是两者有区别吗?
yixuantaba 发表于 2013-10-9 14:21 static/image/common/back.gif
操作flash的代码都是历程,我错在送进写flash的地址到32K之后就出错了。
计算写flash的起始地址公式:
#d ...
用的是CCS, 还是用IAR?另外 变量 i 定义的什么类型? 祥子 发表于 2013-10-10 09:42 static/image/common/back.gif
用的是CCS, 还是用IAR?另外 变量 i 定义的什么类型?
编译器是IAR,i是uchar型的,宏定义的那2种方式,跟计算addr_32有影响吗?有区别吗? 刚验证了下,IAR环境,两种计算结果是一样的。#define LoadStartRight 0x06
#define LoadStartWrong ((unsigned long)0x06)
main()
{
unsigned long int right_addr_32;
unsigned long int wrong_addr_32;
unsigned char i,j;
volatile unsigned int result_same,result_different;
//变量清零
result_same=0;
result_different=0;
//i,j均从0开始计数
i=0;
j=0;
for(;i<255;)
{
//两种宏定义的表达式进行计算
right_addr_32=(unsigned long)(LoadStartRight+0xffe0-0x2000+i*16);
wrong_addr_32=LoadStartWrong+0xffe0-0x2000+j*16;
i++;
j++;
//对两种表达式的结果进行比较,并且统计计数
if(right_addr_32 == wrong_addr_32)
{
result_same++;
}
else
{
result_different++;
}
}
//在此处设置断点,查看统计变量result_same和result_different的值
result_same=result_same;
result_different= result_different;
} 呵呵不懂帮你顶顶 祥子 发表于 2013-10-10 11:03 static/image/common/back.gif
刚验证了下,IAR环境,两种计算结果是一样的。
谢谢你帮我验证了我的问题!
我有点郁闷了,会不会是优化搞的怪!我试试吧。 祥子 发表于 2013-10-10 11:03 static/image/common/back.gif
刚验证了下,IAR环境,两种计算结果是一样的。
我的单片机是16位的,可能跟这有关系!谢谢你帮我分析问题! 楼主能否上传下全部的源程序,多谢了
页:
[1]