Hello,I Wrote Flash Memory Program in Dk S7G2 Board but when i make switch OFF and ON then In my GUIX screen Data was removed.My data was store in array.
Please give me answer where I do Mistake.
void data_flash_operations()
{
uint8_t read[64];
char write[4];
flash_result_t blankCheck;
/* Set write buffer, clear read buffer */
for(j=0;j<4;j++)
{
write[j] = g_target_temp_str[j];// array where my data was store
}
//char a[64]=write[j];
for(j=0;j<64;j++)
{
// // write[j] = g_target_temp_str[j];
read[j] =CLEAR_READ_BUFFER;//0x00000000
}
err = g_flash0.p_api->open(g_flash0.p_ctrl, g_flash0.p_cfg);
if(err != SSP_SUCCESS)
{
while(1);
}
/* Perform blank check */
err = g_flash0.p_api->blankCheck(g_flash0.p_ctrl, FLASH_DF_64B_BLOCK1, FLASH_DF_BLOCK_SIZE, &blankCheck);//FLASH_DF_64B_BLOCK1=0x40100040;
// if(err == SSP_SUCCESS)
// {
//
//
//
// /* Wait for callback function to set flag */
// while(!(flash_event_not_blank||flash_event_blank));
// if(flash_event_not_blank)
// {
//
// /* Reset Flag */
// flash_event_not_blank = false;
// }
// else if(flash_event_blank)
// {
//
// /* Reset Flag */
// flash_event_not_blank = false;
// }
// }
/* Erase a block */
err = g_flash0.p_api->erase(g_flash0.p_ctrl, FLASH_DF_64B_BLOCK1, 1 );
/* Perform blank check after erase to ensure block is blank */
err = g_flash0.p_api->blankCheck(g_flash0.p_ctrl, FLASH_DF_64B_BLOCK1, FLASH_DF_BLOCK_SIZE, &blankCheck);
if(err == SSP_SUCCESS)
{
if(blankCheck == FLASH_RESULT_BGO_ACTIVE)
{
/* Wait for callback function to set flag */
while(!(flash_event_not_blank||flash_event_blank));
if(flash_event_not_blank)
{
/* Reset Flag */
flash_event_not_blank = false;
}
else if(flash_event_blank)
{
/* Reset Flag */
flash_event_not_blank = false;
}
}
}
/* Write Data to Data Flash */
err = g_flash0.p_api->write(g_flash0.p_ctrl, (uint32_t) write, FLASH_DF_64B_BLOCK1, FLASH_DF_BLOCK_SIZE);
/* Delay of one cycle after write operation */
R_BSP_SoftwareDelay((uint32_t)DELAY, (bsp_delay_units_t)FREQ_Hz);
/* Read From DATA FLASH */
err = g_flash0.p_api->read(g_flash0.p_ctrl, read, FLASH_DF_64B_BLOCK1, FLASH_DF_BLOCK_SIZE);
}
/* Callback function for FLASH HP HAL. */
void BGO_Callback(flash_callback_args_t * p_args)
{
if(p_args->event == FLASH_EVENT_NOT_BLANK)
{
flash_event_not_blank = true;
}
else if(p_args->event == FLASH_EVENT_BLANK)
{
flash_event_blank = true;
}
else if(p_args->event == FLASH_EVENT_ERASE_COMPLETE)
{
flash_event_erase_complete = true;
}
else if(p_args->event == FLASH_EVENT_WRITE_COMPLETE)
{
flash_event_write_complete = true;
}
else if(p_args->event == FLASH_EVENT_ERR_DF_ACCESS)
{
flash_event_err_df_access = true;
}
else if(p_args->event == FLASH_EVENT_ERR_CF_ACCESS)
{
flash_event_err_cf_access = true;
}
else if(p_args->event == FLASH_EVENT_ERR_CMD_LOCKED)
{
flash_event_err_cmd_locked = true;
}
else if(p_args->event == FLASH_EVENT_ERR_FAILURE)
{
flash_event_err_failure = true;
}
}