xzy03101271 发表于 2015-3-30 13:15

2812外扩flash问题

开发板上外扩SST39VF800 flash,映射在Zone 2,下面是芯片擦除程序,FlashStart指向Zone 2区起始地址,while中循环条件为i<5,这个5是怎么计算得来的?!还有++TimeOut>0x1000000,这个0x1000000又是怎么来的?!
Uint16      ChipErase(void)
                {
                        Uint32      i,Data;//要定义为32位,已更正
                        Uint32      TimeOut;                              
                        *(FlashStart + 0x5555) = 0xAAAA;
                        *(FlashStart + 0x2AAA) = 0x5555;
                        *(FlashStart + 0x5555) = 0x8080;
                        *(FlashStart + 0x5555) = 0xAAAA;
                        *(FlashStart + 0x2AAA) = 0x5555;
                        *(FlashStart + 0x5555) = 0x1010;      
                        i = 0;
                        TimeOut = 0;
                        while(i<5)
                              {
                                        Data = *(FlashStart +0x3FFFF);
                                        if      (Data == 0xFFFF)      i++;
                                        else      i=0;
                                        if ( ++TimeOut>0x1000000)      return (TimeOutErr);
                              }
                        for      (i=0;i<0x80000;i++)      //共256K Words
                              {
                                        Data = *(FlashStart + i);
                                        if (Data !=0xFFFF)      return (EraseErr);
                              }
                        return(EraseOK);                                                                                       
                                                                                       
                }
开发板上外扩SST39VF800 flash,上面是芯片擦除程while中循环条件为i<5,这个5是怎么计算得来的?!还有++TimeOut>0x1000000,这个0x1000000又是怎么来的?!

海中水 发表于 2015-3-30 16:51

这个你要仔细看一下flash的数据手册了,我刚刚看了一下。这个i的值其实就是整个芯片总共包含了6个块。而TimeOut就是一个时间限定值。整个flash擦除所需要的最大时间是100ms,如果在100ms以后还没有擦除完成,就会判断有故障。

zhangmangui 发表于 2015-3-31 22:59

片擦出等待时间

zhangmangui 发表于 2015-3-31 23:07

从8M来计算   每个256k的话   不应该为5啊
页: [1]
查看完整版本: 2812外扩flash问题