2024-04-16 11:18 PM
rtos: zephyr
MCU: STM32H723VET6
Package: en.x-cube-classb-h7 v4.0.0
I‘m working on make my program running on H7 to meet the requirements of Class B.
The CPU and RAM test works well both on startup and run-time. I haven't prepared the CRC precalculated area and only want to see the Flash test failure, but the Flash test stuck at STL_SCH_RunFlashTM().
From CubeIDE I can get the stake message as belows. But I have no idea how to prevent it from fault.
2024-04-18 09:52 AM
Hello,
there are many factors to be checked. Initially, what is output reported by the failing module (STL_ERROR/FAILED/KO)? Is the run module properly initialized and configured in advance? What is the subset configured during the failing test? Does it go outside the binary area? Note CRC are computed for sections occupied by code exclusively!
Is the binary area to test defined at the subset fully contiguous without any gaps in between the linked sections of code? I suggest to check this by build analyzer window or linker map file. Does it start at begin of 1KB section and it is word/32-bit aligned at the end? If the area is not continuous, does it help to program the code by STM32CubeProgrammer? Note debugger downloader can fill the gaps by different values then those assumed as default applied by the Programmer during the CRC calculation.
Does the post build command invoking the CRC calculation match with the tested binary and its allocation? Does it fit inside the physical flash area of the product (note CRCs are stored at the end of the area defined by the command). Are the CRC checksum field truly present at the memory there? Check it by the memory dump.
I suggest to start with single section test initially starting from area begin while apply atomic step of the test set to 1 (~ test first 1KB of the code), check the module output, and increase the number of steps one by one to see when error happen.
Best regards,
Petr