搜索
bottom↓
回复: 6

MSP430读写FLASH的问题,掉电再读就全变成1

[复制链接]

出0入0汤圆

发表于 2009-3-18 18:28:42 | 显示全部楼层 |阅读模式
读写FLASH的问题,掉电再读就全变成1

#include <msp430x16x.h>

unsigned char  writebuff[4]={0x01,0x02,0x04,0x08}; //用于存放被数组
unsigned char readbuff[4];

void erase_SegB(void);
void read_SegB(unsigned char *readbuff);
void write_SegB(unsigned char *writebuff);
void main( void )
{
  WDTCTL = WDTPW + WDTHOLD;                          //关闭看门狗
  FCTL2 = FWKEY + FSSEL0 + FN0;

  erase_SegB();                 //掉电后,//注释此函数  
  write_SegB(writebuff);        //掉电后,//注释此函数  重新下载程序,读出全是1
  read_SegB(readbuff);
  while(1);
}

void erase_SegB(void)
{
  char *Flash_ptrB;                     
  
  Flash_ptrB = (char *) 0x01080;
  FCTL1 = FWKEY + ERASE ;                            //允许段擦除
  FCTL3 = FWKEY ;
  *Flash_ptrB = 0;                                    //擦除
}

void read_SegB(unsigned char *readbuff)
{
  char *Flash_ptrB;
  unsigned int i;
  
  Flash_ptrB = (char *) 0x01080;
  
  FCTL1 = FWKEY;   
  FCTL3 = FWKEY;
  
  for( i =0; i < 4; i++ )
  {
    *readbuff++ = *Flash_ptrB++;
  }
  FCTL1 = FWKEY;                          
  FCTL3 = FWKEY + LOCK;   
}

void write_SegB(unsigned char *writebuff)
{                       
  char *Flash_ptrB;                     
  unsigned int i;

  Flash_ptrB = (char *) 0x01080;

  FCTL1 = FWKEY + WRT;   
  FCTL3 = FWKEY;
  
  for( i =0; i < 4; i++ )
  {
    *Flash_ptrB++ = *writebuff++;
  }
  FCTL1 = FWKEY;                          
  FCTL3 = FWKEY + LOCK;     
}

第一次运行程序,可以写,可以读,读出来的结果跟写入的一样,修改程序后,只读,就全变成1,这究竟是怎么回事?程序错了吗?请前辈多多指教!谢谢!!!

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2009-3-18 18:44:25 | 显示全部楼层
修改程序后,重新下载FW,flash被下载软件给擦除了

出0入0汤圆

发表于 2009-3-18 18:46:42 | 显示全部楼层
IAR设置一下,download只更新main memory

出0入0汤圆

 楼主| 发表于 2009-3-18 20:04:16 | 显示全部楼层
多谢xuanyusyj的答案  原来这么简单 竟然耽误了1天  再次对xuanyusyj表示感谢

出0入0汤圆

发表于 2009-8-17 12:15:57 | 显示全部楼层
请问download只更新main memory怎样设置,能给截个图吗?

出0入0汤圆

发表于 2011-4-6 19:30:15 | 显示全部楼层
project--》option--》FET Debugger-->download.

出0入0汤圆

发表于 2011-11-29 21:41:03 | 显示全部楼层
mark
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-28 10:33

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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