背景:NVM每次写会导致任务卡滞
原因:Fls写入时进入do while循环阻塞
do
{
result = Fls_WriteFlashPolling();
if( result == FLS_CONT )
{
counter = ( number_of_delay_loop != 0xFFFFFFFFUL )? number_of_delay_loop: 0UL;
while( counter > 0UL )
{
counter--;
}
if( number_of_delay_loop != 0xFFFFFFFFUL )
{
polling_cnt++;
}
else
{
if( ( prev_data_size - Fls_DataSize ) >= written_size_limit )
{
polling_cnt = polling_limit;
}
}
}
}
while( ( result == FLS_CONT ) && ( polling_cnt < polling_limit ) );
解决办法:修改fls相关参数