打印

aduc7020 flash 读写异常,求教!

[复制链接]
1580|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
fanguluke|  楼主 | 2007-9-9 09:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
unsigned short int read_flash_word(unsigned short int addr)
{unsigned char ss;
    FEEMOD =0x00;                         //关闭页面,禁止修改
    FEEADR = addr;                      // set address
    FEECON = 0x01;                  // single read command
    flash_error = 0x00;
    ss = FEESTA&0x01;
    while (!ss && (flash_error++<=2000)) ss = FEESTA&0x01;             // wait data read ready
    return(FEEDAT);               // one byte data
}


void write_flash_word(unsigned short int addr, unsigned short int *word, unsigned short int count)
{ unsigned short int erased_page, i;
  unsigned char ss;
  erased_page = 0x01;             //页面起始地址的低九位应该为0,设置为1表示开始就需要页面清空
  for(i=0; i<count; i++)
  {
    if (erased_page!=(addr&0xFE00))
    {
        Erase_Page(addr);
        erased_page = addr&0xFE00;
    }
    FEEADR = addr++;        addr++;     // set address  //地址必须 “+ 2”
    FEEDAT = *word; word++;            // set data value
    FEECON = 0x02;                      // write command
    flash_error = 0x00;
    ss = FEESTA&0x01;
    while (!ss && (flash_error++<=2000)) ss = FEESTA&0x01;             // wait data read ready
  }
  FEEMOD =0x00;                         //关闭页面,禁止修改
}


执行完上面的任意一个函数,调试中断异常,仿真程序也飞了,求教大虾了!

相关帖子

沙发
123654789| | 2007-9-9 10:53 | 只看该作者

本人 123654789 于 ↑ 这个 时间,到此地 一游

使用特权

评论回复
板凳
steaven| | 2007-9-10 22:14 | 只看该作者

请使用__ramfunc关键字将Flash操作函数放在RAM中执行

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

37

帖子

0

粉丝