SaveSetting.c
上传用户:hjhsjcl
上传日期:2020-09-25
资源大小:11378k
文件大小:9k
源码类别:

压缩解压

开发平台:

C++ Builder

  1. /*==========================================================================
  2. Copyright (c) 2004 ALi Corporation. All Rights Reserved
  3. File: SaveSetting.c
  4. content: Save Setting to NAND FLASH PRIVATE area
  5. History: Created by TNE 2005/01/07
  6. ==========================================================================*/
  7. #define _SAVE_SETTING_H_
  8. #include <DP8051XP.H>
  9. #include "TypeDef.h"
  10. #include "Const.h"
  11. #include "Reg5661.h"
  12. #include "Common.h"
  13. #include "UiCommon.h"
  14. #include "FileSystem.h"
  15. #include "NandFlash.h"
  16. #if(_C_MODE_)
  17. #include "OledString.h"
  18. #include "OLED.h"
  19. #else
  20. #include "Lcd.h"
  21. #endif
  22. #include "SaveSetting.h"
  23. #include "SD.h"
  24. #define FM_FREQ   (FM_DEFAULT_FREQ-FM_FREQ_MIN)
  25. #define AUTO_OFF_H  ((BYTE)(AUTO_OFF_DEFAULT>>8))
  26. #define AUTO_OFF_L  ((BYTE)AUTO_OFF_DEFAULT)
  27. #define REC_S_Q_DEFAULT  ((REC_S_DEFAULT<<4)|(REC_Q_DEFAULT&0x0F))
  28. //tne 2007/01/08 #1
  29. #if(_PM_SAVE_|_PM_SYS_|_PM_INIT_) //Walace060931#1 START
  30. CBYTE cbSramDefault[]={
  31.     DEV_MUSIC,                                              // SRAM_LAST_MODE       0x00
  32.     00,                                                     // SRAM_LAST_PLAY_TIME  0x01
  33.     00,                                                     // Unused               0x02
  34.     LANGUAGE_TYPE_DEFAULT,                                  // SRAM_LANGUAGE_TYPE   0x03
  35.     DEFAULT_VOL,                                            // SRAM_VOLUME          0x04
  36.     EQ_MODE_DEFAULT,                                        // SRAM_EQ              0x05
  37.     REPT_MODE_DEFAULT|REPEAT_SETTING_DIR_FLAG_J,            // SRAM_REPT_MODE       0x06
  38.     LCD_DEFAULT_CONTRAST,                                   // SRAM_CONTRAST        0x07
  39.     LCD_BACKLIGHT_DEFAULT_NUM,                              // SRAM_BACK_LIGHT      0x08
  40.     STOR_NAND,                                              // SRAM_STORAGE         0x09
  41.     EQ_MODE_DEFAULT,                                        // SRAM_DVR_EQ          0x0A
  42.     SOUND_3D_DEFAULT,                                       // SRAM_DVR_3D          0x0B
  43.     00,00,00,00,                                            // SRAM_CLOCK_OFFSET1   0x0C~0x0x0F
  44.     REPT_MODE_DEFAULT|REPEAT_SETTING_DIR_FLAG_J,            // SRAM_DVR_REPEAT_MODE 0x10
  45.     PLAY_CLASS_MODE_DEFAULT,                                // SRAM_PLAY_CLASS_MODE 0x11
  46.     MSC_MODIFY_FLASG_DEFAULT,                               // SRAM_MSC_MODIFY_FLAG 0x12
  47.     0, 0, 0, 0, 0, 0, 0, 0,                                 // Unused               0x13~0x1A
  48.     DRM_OPTION_DEFAULT|S_CLOCK_READY_DEFAULT,               // SRAM_DRM_OPTION_MODE 0x1B
  49.     REC_VAD_DEFAULT,                                        // SRAM_VAD_MODE        0x1C
  50.     00,                                                     // SRAM_BYT_LOW_FLAG    0x1D
  51.     USER_EQ_DEFAULT,                                        // SRAM_USER_EQ_LV1     0x1E
  52.     USER_EQ_DEFAULT,                                        // SRAM_USER_EQ_LV2     0x1F
  53.     USER_EQ_DEFAULT,                                        // SRAM_USER_EQ_LV3     0x20
  54.     USER_EQ_DEFAULT,                                        // SRAM_USER_EQ_LV4     0x21
  55.     USER_EQ_DEFAULT,                                        // SRAM_USER_EQ_LV5     0x22
  56.     USER_EQ_DEFAULT,                                        // SRAM_USER_EQ_ALL     0x23
  57.     00,00,                                                  // SRAM_LAST_DVR_TIME   0x24                    
  58.     00,                                                     // Unused               0x26
  59.     UI_SPECTRUM_WAV_DISPLAY,                                // SRAM_SPECTRUM_MODE   0x27
  60.     0,                                                // Unused         0x28 
  61.     0,                                                      // SRAM_FM_PRESET_NUM   0x29
  62.     AUTO_OFF_H,AUTO_OFF_L,                                  // SRAM_AUTO_OFF_H      0x2A~0x2B
  63.     REC_S_Q_DEFAULT,                                        // SRAM_REC_S_Q         0x2C
  64.     SOUND_3D_DEFAULT,                                       // SRAM_3D              0x2D
  65.     0x56,                                                   // SRAM_RECORD_ID1      0x2E
  66.     0x61,                                                   // SRAM_RECORD_ID2      0x2F
  67.     TIME_ZONE_DEFAULT,                                      // SRAM_TIME_ZONE       0x30
  68. };
  69. #endif
  70. //Walace060931#1 END
  71. #if(_PM_SAVE_)
  72. //init to original system state (for host module come back)
  73. void InitToNormalSys(void)
  74. {
  75. BYTE btemp1,btemp2;
  76. //tne 2005/11/28 #2
  77. CKCON &= 0xF8;
  78. CKCON |= 0x02;
  79. //SetSysSpeed(SYS_SPEED_UP_INIT); 
  80. SetSysSpeed(SYS_SPEED_UP_NAND_INIT); //Walace060703#4
  81. //obCLKMCUDIVF=obCLKSRAMDIVF=obCLKSMDIVF=0x02; //147/4=36.5(33.5)
  82. #if(NEW_FLASH)
  83. NandInit(NDINIT_DONE); //allen060622 new_nf
  84. #else
  85. NandInit();
  86. #endif
  87. ReCheckStorage(gxbStorType);
  88. FsInit();
  89. if(!gbFsUnableUse) //Walace060629#2 //Walace060720#2
  90. {
  91. LoadRecInfo();
  92. FsRecInit();    //Walace060503#1
  93. //ET0=0; //disable timer0 for more exact delay time
  94. for(btemp2=0; btemp2<REC_DIR_NUM; btemp2++)
  95. {
  96. FsFindDir(btemp2,gxbUiDirName[btemp2],1,ATTR_SUB_DIR); //find record dir or create it. tne 2006/12/07 #3
  97. }
  98. //ET0=1;
  99. for(btemp2=0; btemp2<REC_DIR_NUM; btemp2++)
  100. {
  101. for(btemp1=0;btemp1<REC_PREFIX_LEN;btemp1++)
  102. gxbFileName[btemp1]=gxbUiFileName[btemp2][btemp1];
  103. if(btemp2==REC_DIR_NUM-1)
  104. FsOpenNewFile(btemp2,TRUE);
  105. else
  106. FsOpenNewFile(btemp2,FALSE);
  107. }
  108. }
  109. SetSysSpeed(SYS_SPEED_NORMAL);
  110. CKCON &= 0xF8;
  111. //obCLKMCUDIVF=obCLKSRAMDIVF=obCLKSMDIVF=0x08; //147/10=14.7
  112. }
  113. #endif
  114. #if(_PM_SAVE_|_PM_SYS_|_PM_INIT_)
  115. /*--------------------------------------------------------------------------
  116. Description:
  117. Load default setting data to FsData[]
  118.  
  119. Arguments:
  120. Global arguments:
  121. Returns: 
  122. --------------------------------------------------------------------------*/
  123. void SetDefaultSetting(void) large
  124. {
  125. WORD wSramAddr;
  126. for(wSramAddr=0; wSramAddr<sizeof(cbSramDefault); wSramAddr++)
  127. { gxbFsData[wSramAddr+gxwOffsetDataSec]=cbSramDefault[wSramAddr]; }
  128. //tne 2005/11/10 #2 //clean all setting data
  129. for(;wSramAddr<512;wSramAddr++)
  130. { gxbFsData[wSramAddr+gxwOffsetDataSec]=0x00; }
  131. //tne 2006/01/16
  132. for(wSramAddr=SRAM_DVR_USER_EQ_LV1;wSramAddr<=SRAM_DVR_USER_EQ_ALL;wSramAddr++)
  133. { gxbFsData[wSramAddr+gxwOffsetDataSec]=USER_EQ_DEFAULT; }
  134. gxbFsData[SRAM_LAST_DRM_OPTION+gxwOffsetDataSec]=DRM_OPTION_DEFAULT;
  135. *((PWORD)(gxbFsData+SRAM_FM_FREQ+gxwOffsetDataSec))=(WORD)(FM_DEFAULT_FREQ-FM_FREQ_MIN); //Dennis060515#1
  136. for(wSramAddr=0;wSramAddr<FM_MAX_PRESET;wSramAddr++) 
  137. {
  138. #if(FM_STEP_100K==1) //Dennis060517#1
  139. *(gxbFsData+SRAM_FM_PRESET_START+wSramAddr+gxwOffsetDataSec) = (FM_INVALID_FREQ_NUM-FM_FREQ_MIN);   //tne 2007/01/08 #1
  140. #else
  141. *((PWORD)(gxbFsData+gxwOffsetDataSec+SRAM_FM_PRESET_START)+wSramAddr) = (FM_INVALID_FREQ_NUM-FM_FREQ_MIN);    //tne 2007/01/08 #1
  142. #endif
  143. }
  144. gxbFsData[SRAM_FM_STATE+gxwOffsetDataSec]=FM_STATE_STEREO_SET; //Walace060217#1
  145.  //Walace060307#2
  146.         #if(_C_MODE_)
  147. gxbFsData[SRAM_VIDEO_REPEAT_MODE+gxwOffsetDataSec]=(REPT_MODE_DEFAULT|REPEAT_SETTING_DIR_FLAG_J);
  148.         #endif
  149. }
  150. //Walace060931#1 END
  151. #if 0//Walace060926#1 VideoResume Remove to Common.c
  152. /*--------------------------------------------------------------------------
  153. Description:
  154. write setting data to Nand Flash private area
  155. Arguments:
  156. bStorPath: DMA path
  157.  
  158. Global arguments:
  159. Returns: 
  160. --------------------------------------------------------------------------*/
  161. void WriteSettingData(BYTE bStorPath) large
  162. {
  163. //gbSpecialRW=RW_PRIVATE;
  164. FsWrite(SAVE_SETTING_NAND_ADD,1,bStorPath);
  165. //NandFinishJob();
  166. //gxdwKeptDataSec=FORCE_REFLASH_SECTOR;
  167. //gbSpecialRW=RW_NORMAL;
  168. }
  169. #endif
  170. /*--------------------------------------------------------------------------
  171. Description:
  172. Restore default setting from Nand Flash private area
  173.  
  174. Arguments:
  175. Global arguments:
  176. gxbFsData[]: writing data
  177. Returns: 
  178. --------------------------------------------------------------------------*/
  179. API void RestoreDefaultSetting(void) large
  180. {
  181. SetDefaultSetting();
  182. gxbLcdContrast=LCD_DEFAULT_CONTRAST;
  183. gxbBackLightTime=LCD_BACKLIGHT_DEFAULT_NUM;  //Walace060320#2
  184. gxbDrmOptionMode=(USB_MODE_DEFAULT|S_CLOCK_READY_DEFAULT); //tne 2005/04/26
  185. //======================add by Rojam for PedoMeter=============================
  186. #if(_PEDOMETER_Mode_)
  187. gxbCustomerAge=20;
  188. gxbUserWeight=60;
  189. gxbWalkingStride=76;
  190. gxbUserStanding=170;
  191. gxbCustomerSEX=1;
  192. gxwCurrentMotionTime=0;
  193. gxdCurrentStepNum=0;
  194. gxdCurrentMotionDistance=0;
  195. #endif
  196. //=============================end==========================================
  197. //tne 2005/11/21 #3
  198. #if( (!_C_MODE_) && (_PM_SYS_) )
  199. LCD_CTRL_EN();
  200. LcdSendCommand(LCD_REF_VOT_MODE);
  201. LcdSendCommand(LCD_SET_REF_VOL(gxbLcdContrast));
  202. LCD_CTRL_DIS();
  203. #endif
  204. SramWrite(SRAM_BACK_LIGHT, &gxbBackLightTime);//Walace060320#2
  205. SramWrite(SRAM_CONTRAST, &gxbLcdContrast);
  206. SramWrite(SRAM_DRM_OPTION_MODE,&gxbDrmOptionMode);
  207. #if(_PEDOMETER_Mode_)
  208. SramWrite(SRAM_CUSTOMERAGE, &gxbCustomerAge);
  209. SramWrite(SRAM_CUSTOMERSTATURE, &gxbUserStanding);
  210. SramWrite(SRAM_CUSTOMERWEIGHT, &gxbUserWeight);
  211. SramWrite(SRAM_CUSTOMERSTRIDE, &gxbWalkingStride);
  212. SramWrite(SRAM_CUSTOMERSEX, &gxbCustomerSEX);
  213. #endif
  214. #if(!_PM_MTP_INIT_)
  215. SetSettingToVariable();
  216. #endif
  217. WriteSettingData(FS_DATA_0_0);
  218. }
  219. #endif //#if(_PM_SAVE_|_PM_SYS_|_PM_INIT_)