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

📄 nvram.lst

📁 MSTARXX.rar
💻 LST
📖 第 1 页 / 共 2 页
字号:
                      MCUXFR_40_SSPI_WD0=0xab;
                      MCUXFR_41_SSPI_WD1=0x00;
                      MCUXFR_42_SSPI_WD2=0x00;
                      MCUXFR_43_SSPI_WD3=0x00;
                      MCUXFR_48_SSPI_TRIG=0xc4;
              
                      i=MCUXFR_4C_SSPI_RD3; // PMC Manufacture ID =0x9d
              
                      if (i==0x9d)
                      {
                              // PMC flash
              
                              // 20051207 seven
                              MCUXFR_40_SSPI_WD0=0x06;  // Write Enable WREN
                              MCUXFR_48_SSPI_TRIG=0xf8;
              
                              // Write Status 0x00
                              MCUXFR_40_SSPI_WD0=0x01;
                              MCUXFR_41_SSPI_WD1=0x00;
                              MCUXFR_48_SSPI_TRIG=0xf9;
              
                              // Write Enable WREN + Sector Erase
                              MCUXFR_40_SSPI_WD0=0x06;  // Write Enable WREN
                              MCUXFR_48_SSPI_TRIG=0xf8;
                              MCUXFR_40_SSPI_WD0=0xd7; //  Sector Erase 0x00e000
                              MCUXFR_41_SSPI_WD1=(BYTE)(address);
                              MCUXFR_42_SSPI_WD2=(BYTE)(address>>8);
                              MCUXFR_43_SSPI_WD3=0x00;
                              MCUXFR_48_SSPI_TRIG=0xfb;
                              Delay1ms(100);
              
                              // WREN + Write Byte
                              for (i=0;i<sizeof(g_VideoSetting);i++)
                              {
                                      MCUXFR_40_SSPI_WD0=0x06;  // Write Enable WREN
                                      MCUXFR_48_SSPI_TRIG=0xf8;
                                      MCUXFR_40_SSPI_WD0=0x02;  //FlashWriteByte  SST
                                      MCUXFR_41_SSPI_WD1=(BYTE)(address);
                                      MCUXFR_42_SSPI_WD2=(BYTE)(address>>8);
                                      MCUXFR_43_SSPI_WD3=i;
                                      MCUXFR_44_SSPI_WD4=*(&g_VideoSetting.ucVersion+i);
                                      MCUXFR_48_SSPI_TRIG=0xfc;
                                      Delay1ms(5);
                              }
              
                              MCUXFR_40_SSPI_WD0=0x06;  // Write Enable WREN
                              MCUXFR_48_SSPI_TRIG=0xf8;
              
                              // Write Status 0x0C    // 20051207 seven
C51 COMPILER V8.18   NVRAM                                                                 09/29/2009 23:58:03 PAGE 5   

                              MCUXFR_40_SSPI_WD0=0x01;
                              MCUXFR_41_SSPI_WD1=0x0C;
                              MCUXFR_48_SSPI_TRIG=0xf9;
              
                              //  Write disable       : Reset write enable latch
                              MCUXFR_40_SSPI_WD0=0x04;  // Write disable
                              MCUXFR_48_SSPI_TRIG=0xf8;
                              //sysWriteString("Save Flash Data finish.\x0d\x0a");
              
                      }
                      else if(i==0x05)//20050923
                      {
                              // SAIFUN flash
                              // 20051207 seven
                              MCUXFR_40_SSPI_WD0=0x06;  // Write Enable WREN
                              MCUXFR_48_SSPI_TRIG=0xf8;
              
                              // Write Status 0x00
                              MCUXFR_40_SSPI_WD0=0x01;
                              MCUXFR_41_SSPI_WD1=0x00;
                              MCUXFR_48_SSPI_TRIG=0xF9;
              
                              // Write Enable WREN + Sector Erase
                              MCUXFR_40_SSPI_WD0=0x06;  // Write Enable WREN
                              MCUXFR_48_SSPI_TRIG=0xF8;
                              MCUXFR_40_SSPI_WD0=0x81; //  Sector Erase 0x00e000
                              MCUXFR_41_SSPI_WD1=(BYTE)(address);
                              MCUXFR_42_SSPI_WD2=(BYTE)(address>>8);
                              MCUXFR_43_SSPI_WD3=0x00;
                              MCUXFR_48_SSPI_TRIG=0xFb;
                              Delay1ms(6);
              
                              // WREN + Write Byte
                              for (i=0;i<sizeof(g_VideoSetting);i++)
                              {
                                      MCUXFR_40_SSPI_WD0=0x06;  // Write Enable WREN
                                      MCUXFR_48_SSPI_TRIG=0xF8;
                                      MCUXFR_40_SSPI_WD0=0x02;  //FlashWriteByte  SST
                                      MCUXFR_41_SSPI_WD1=(BYTE)(address);
                                      MCUXFR_42_SSPI_WD2=(BYTE)(address>>8);
                                      MCUXFR_43_SSPI_WD3=i;
                                      MCUXFR_44_SSPI_WD4=*(&g_VideoSetting.ucVersion+i);
                                      MCUXFR_48_SSPI_TRIG=0xFC;
                                      Delay1ms(10);
                              }
              
                              //  Write Protect
                              MCUXFR_40_SSPI_WD0=0x01;
                              MCUXFR_41_SSPI_WD1=0x0C;
                              MCUXFR_48_SSPI_TRIG=0xF9;
                      }
                      else
                      {
                              // SST flash
                              // 20051207 seven
                              MCUXFR_40_SSPI_WD0=0x06;  // Write Enable WREN
                              MCUXFR_48_SSPI_TRIG=0xc1;
              
                              // disable Write Protect
                              MCUXFR_40_SSPI_WD0=0x50;
                              MCUXFR_41_SSPI_WD1=0x01;
                              MCUXFR_42_SSPI_WD2=0x00;
C51 COMPILER V8.18   NVRAM                                                                 09/29/2009 23:58:03 PAGE 6   

                              MCUXFR_48_SSPI_TRIG=0xc8;
              
                              // Write Enable WREN + Sector Erase
                              MCUXFR_40_SSPI_WD0=0x06;  // Write Enable WREN
                              MCUXFR_48_SSPI_TRIG=0xc1;
                              MCUXFR_40_SSPI_WD0=0x20; //  Sector Erase 0x00e000
                              MCUXFR_41_SSPI_WD1=(BYTE)(address);
                              MCUXFR_42_SSPI_WD2=(BYTE)(address>>8);
                              MCUXFR_43_SSPI_WD3=0x00;
                              MCUXFR_48_SSPI_TRIG=0xc4;
                              Delay1ms(25);  //from spec page 19
                              // WREN + Write Byte
                              for (i=0;i<sizeof(g_VideoSetting);i++)
                              {
                                      MCUXFR_40_SSPI_WD0=0x06;  // Write Enable WREN
                                      MCUXFR_48_SSPI_TRIG=0xc1;
                                      MCUXFR_40_SSPI_WD0=0x02;  //FlashWriteByte  SST
                                      MCUXFR_41_SSPI_WD1=(BYTE)(address);
                                      MCUXFR_42_SSPI_WD2=(BYTE)(address>>8);
                                      MCUXFR_43_SSPI_WD3=i;
                                      MCUXFR_44_SSPI_WD4=*(&g_VideoSetting.ucVersion+i);
                                      MCUXFR_48_SSPI_TRIG=0xc5;
                                      Delay1ms(5);
                              }
              
                              // Enable Write Protect
                              MCUXFR_40_SSPI_WD0=0x50;
                              MCUXFR_41_SSPI_WD1=0x01;
                              MCUXFR_42_SSPI_WD2=0x0c;
                              MCUXFR_48_SSPI_TRIG=0xc8;
                  }
              }
              
              
              void mstSaveDisplayData(WORD address)
              {
                  mstSaveDisplayDataBanked(address);
                  Delay1ms(100);
                  mstSaveDisplayDataBanked(address+0x1000);
              }
              
              
              void mstLoadDisplayData(WORD address)
              {
                      BYTE i;
                      BYTE code *add;
                      add = address;
              
                      WatchDogClear();
                      //printf("\r\nRD<%x>",address);
              
                      for (i=0 ; i< sizeof(g_VideoSetting); i++)
                      {
                              *(&g_VideoSetting.ucVersion+ i) = *(add+i);
                      }
              
              }
              
              void NVRam_WriteByte(WORD addr, BYTE value)
              {
                       addr=addr;
                       value=value;
C51 COMPILER V8.18   NVRAM                                                                 09/29/2009 23:58:03 PAGE 7   

                       mstSaveDisplayData(SFD_ADDRESS);
              }
              
              void NVRam_WriteTbl(WORD addr, BYTE *buffer, WORD count)
              {
                       addr=addr;
                       buffer=buffer;
                       count=count;
                       mstSaveDisplayData(SFD_ADDRESS);
              }
              
              #endif


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    185    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      30
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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