12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- #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->xaxis_threshold = 0.015;
- config->yaxis_threshold = 0.015;
- config->zaxis_threshold = 0.015;
-
- //
- 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;
- }
|