#define BOOTFLASH_ADDRESS 0xFF000 struct fapp_params_flash *fnet_params = (struct fapp_params_flash *)BOOTFLASH_ADDRESS; struct fapp_params_flash fnet_params_ram = {{0}}; int main(void) { char stringTX[512]; status_t result; uint32_t failAddr, failDat; static flash_config_t s_flashDriver; BOARD_InitBootPins(); BOARD_InitBootClocks(); BOARD_InitBootPeripherals(); SCB->VTOR = 0xF000; sprintf( stringTX, "delay(%d)(%x)\n", fnet_params->boot_params.delay, &fnet_params->boot_params.delay ); printf( stringTX ); memcpy( &fnet_params_ram, fnet_params, sizeof(struct fapp_params_flash)); fnet_params_ram.boot_params.delay = 2; sprintf( stringTX, "fnet_params_ram delay(%d)(%x)\n", fnet_params_ram.boot_params.delay, &fnet_params_ram.boot_params.delay ); printf( stringTX ); result = FLASH_Init(&s_flashDriver); if (kStatus_FTFx_Success != result){ sprintf( stringTX, "Erro\n" ); printf( stringTX ); } result = FLASH_Program(&s_flashDriver, BOOTFLASH_ADDRESS, (uint8_t *)&fnet_params_ram, sizeof(fnet_params_ram)); if (kStatus_FTFx_Success != result){ sprintf( stringTX, "Erro %d\n", result ); printf( stringTX ); } result = FLASH_VerifyProgram(&s_flashDriver, BOOTFLASH_ADDRESS, sizeof(fnet_params_ram), (const uint8_t *)&fnet_params_ram, kFTFx_MarginValueUser, &failAddr, &failDat); if (kStatus_FTFx_Success != result){ sprintf( stringTX, "Erro %d\n", result ); printf( stringTX ); } sprintf( stringTX, "delay(%d)(%x)\n", fnet_params->boot_params.delay, &fnet_params->boot_params.delay ); printf( stringTX ); while(1) { } return 0 ; }