1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- #include "cfg.h"
- #include "uart.h"
- #include "flash.h"
- #include <string.h>
- static uint64_t reflectionBuff[(sizeof(Config_type)>>3)+1];
- Config_type *config = (Config_type *)reflectionBuff;
- static void Factory_reset(void)
- {
- config->magic = CONFIG_MAGIC;
- config->addr = DEFAULT_ADDR;
- config->br_index = BaudRate_115200;
-
- //config->App2Size = 0;
- //config->App2Crc = 0;
- //config->IapFlag = 0;
- }
- int Config_Init(void)
- {
- //EFLASH_StatusType ret = EFLASH_STATUS_SUCCESS;
- //memcpy(reflectionBuff, (void *)CONFIG_ADDRESS, sizeof(Config_type));
- FLASH_DRV_Read(&g_Flash_Config,CONFIG_ADDRESS, (uint8_t*)reflectionBuff, sizeof(reflectionBuff));
- if (config->magic != CONFIG_MAGIC)
- {/* initiliaze config */
- memset(reflectionBuff, 0xFF, sizeof(reflectionBuff));
- //config->magic = CONFIG_MAGIC;
-
-
- Factory_reset();
-
- //
- config->IapFlag = Startup_Normal;
- config->hw_version = 0x0000;
- config->devicetype = 0x0000;
- config->deviceid = 0x00;
-
- SaveConfig();
-
- }
-
- //Factory_reset();
- return 0;
- }
- int SaveConfig(void)
- {
- status_t ret = STATUS_SUCCESS;
- ret = FLASH_DRV_UnlockCtrl();
- if(STATUS_SUCCESS != ret) return -1;
- ret = FLASH_DRV_EraseSector(&g_Flash_Config, CONFIG_ADDRESS, EFLASH_PAGE_SIZE_INIT);
- if(STATUS_SUCCESS != ret) return -1;
- ret = FLASH_DRV_VerifySection(&g_Flash_Config,CONFIG_ADDRESS, EFLASH_PAGE_SIZE_INIT/8);
- if(STATUS_SUCCESS != ret) return -1;
- ret = FLASH_DRV_Program(&g_Flash_Config, CONFIG_ADDRESS, sizeof(reflectionBuff), (uint8_t*)reflectionBuff);
-
- FLASH_DRV_LockCtrl();
-
- return 0;
-
- }
- int ResetConfig(void)
- {
- Factory_reset();
- //SaveConfig();
-
- return 0;
- }
|