2021-11-10 12:49 AM
2021-11-14 11:44 PM
Hello,
Finally, in the form NVIC, I checked "Flash global interrupt" with priority "0" and I called the function "HAL_FLASH_Program_IT" instead of "HAL_FLASH_Program". Nothing else.
Best regards.
Henri
2021-11-10 01:01 AM
Hello,
maybe because the Systick cannot increase while your interrupt is executing, because of its priority ?
2021-11-10 09:32 AM
Hello Mike,
Thank you for your attention.
From time to time, I work arround this problem since many days.
Due to your answer, I moved the code from the interrupt sub-routine to the infinite loop "while();" of the file containing the main function. The behavior is the same.
Please, would you have another suggestion ?
For information, the processor runs at 168Mhz.
Precisely, the errors are HAL_FLASH_ERROR_PGP and HAL_FLASH_ERROR_PGS.
Best regards.
Henri
2021-11-10 10:00 PM
Hello Mike,
You put me on the right track.
With the code in the infinite loop of the main function, without interruption, the writes in the flash are effective.Like the image above, increasing the level of preemption of "Time base: System tick timer" has no effect.
So, how to allow Systick to be incremented when other interruptions are active ?
Please, would you have suggestion ?
Best regards.
Henri
2021-11-14 11:12 PM
Hello,
Help !
In my reply above, there is a mistake.
The NVIC table, preemption priority, is actualy:
"Time base : System tick timer" is now at the highest premption priority.
As I could read somewhere, I put the code (mine) of all ISR in RAM (why not), specialy "Time base : System tick timer".
The problem persists.
I can read that I am not the only one facing this difficulty.
It would seem that no one has a solution
Should I give up ?
Best regards.
Henri
2021-11-14 11:44 PM
Hello,
Finally, in the form NVIC, I checked "Flash global interrupt" with priority "0" and I called the function "HAL_FLASH_Program_IT" instead of "HAL_FLASH_Program". Nothing else.
Best regards.
Henri