void Flash_Write(uint32 addr, uint8 *buf, uint16 cnt) { FLASH_Unlock(); FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_WRPERR | FLASH_FLAG_PGERR ); Flash_WriteData(addr, (uint16_t*)buf, (cnt+1)/2); FLASH_Lock(); }
void Flash_SaveTagState(void) { uint8 buff[64] = {0}; FLASH_Unlock(); FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_WRPERR | FLASH_FLAG_PGERR ); if(FLASH_COMPLETE != FLASH_ErasePage(STORE_SYS_STATE_PAGE_ADDR)) { return; } memcpy(buff, (uint8*)&state_para.ackflag_set, sizeof(state_para)); Flash_WriteData(STORE_SYS_STATE_PAGE_ADDR, (uint16*)buff, (sizeof(state_para)+1)/2); FLASH_Lock(); }
void Flash_SaveTagInfo(void) { uint8 buff[1024] = {0}; FLASH_Unlock(); FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_WRPERR | FLASH_FLAG_PGERR ); if(FLASH_COMPLETE != FLASH_ErasePage(STORE_SYS_INFO_PAGE_ADDR)) { return; } memcpy(buff, (uint8*)&tag_flash_info.net_flag_set, sizeof(tag_flash_info)); Flash_WriteData(STORE_SYS_INFO_PAGE_ADDR, (uint16*)buff, (sizeof(tag_flash_info)+1)/2); FLASH_Lock(); }
void Flash_SaveLastGUI(void) { uint8 buff[1024] = {0}; FLASH_Unlock(); FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_WRPERR | FLASH_FLAG_PGERR ); if(FLASH_COMPLETE != FLASH_ErasePage(STORE_LAST_GUI_PAGE_ADDR)) { return; } memcpy(buff, (uint8*)&backgroud, 1024); Flash_WriteData(STORE_LAST_GUI_PAGE_ADDR, (uint16*)buff, 1024/2); FLASH_Lock(); }
void store_gui_page(uint32 addr, uint8 offset, uint8* data) { uint8 buff[1024] = {0}; FLASH_Unlock(); FLASH_Unlock(); FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_WRPERR | FLASH_FLAG_PGERR ); if(FLASH_COMPLETE != FLASH_ErasePage(addr)) { return; } memcpy(buff, data, 1024); Flash_WriteData((uint32)(addr + offset*0x400), (uint16_t*)buff, (0x400 + 1)/2); FLASH_Lock(); }
void Save_Sensor_Configs(uint8 Offset) { Flash_WriteData(CONFIGS_ADDR_BASE,&DevRun_Value.FullWeight,sizeof(DevRun_Value.CROSS_DATA)+4); }