⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 flash擦除.c

📁 Norflash通用的读写
💻 C
字号:
int flash_sec_erase(unsigned int sector_index)
{
          unsigned int address;
          volatile unsigned short *_p=FLASH_BASE;
          address=Sec2Addr(sector_index);                                                    //开始进行sector擦除操作
          _p[0x555]=0x00AA;                                                                  //第一周期的写操作
          _p[0x2AA]=0x0055;                                                                  //第二周期的写操作
          _p[0x555]=0x0080;                                                                  //第三周期的写操作
          _p[0x555]=0x00AA;                                                                  //第四周期的写操作
          _p[0x2AA]=0x0055;                                                                  //第五周期的写操作
          printk("Erasing sector %d.\n\rErasing...\n\rWait a second.\n\r",sector_index);     
          _p[address]=0x0030;                                                                //第六周期的写操作             
          return FlashDataToggle(address);                                                   //等待擦除过程结束
}

int FlashData Toggle(unsigned int address)
{
          unsigned short uc1,uc2;
          volatile unsigned short *_p=FLASH_BASE;
          while(1){
             uc1=_p[address];
             uc2=_p[address];                                                                //读取两次
             if((uc1&0x40)==(uc2&0x40))                                                       //如果Toggle bit 没有Toggle,则操作成功
               {_p[0]=0xf0;return 1;}
             if((uc2&0x20)==0x20)break;                                                          //D5是否为1?
             }
          uc1=_p[address];
          uc2=_p[address];                                                                   //读取两次
          if((uc2&0x40)==(uc1&0x40))                                                          //如果Toggle 位没有Toggle,则操作成功
            {_p[0]=0xf0;return 1;}
          _p[0]=0xf0;  
          return 0;                                                                          //操作失败
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -