in your first project we use a STM32F415ZGT without any problems. Then we switch to the smaller version STM32F415RGT in a new design. With the same source code we got some times a hard fault when die MCU is booting up.
After two or three days of software and hardware bug finding and trying different versions of CubeMX and F4 firmware we find a solution to disable the Instruction Cache in CubeMX:
After that your simple LED blink code runs fine without any hard fault.
Errata sheet lists a bug in Revision "A" devices for the ART Accelerator:
ART Accelerator prefetch queue instruction is not supported
The ART Accelerator prefetch queue instruction is not supported on revision A devices.
This limitation does not prevent the ART Accelerator from using the cache enable/disable
capability and the selection of the number of wait states according to the system frequency.
• Revision A devices: none
• Revision Z and 1 devices: fixed.
We found out that your STM32F415RGT is at Revision "2" and that revision is not listed in fixed devices.
Is this bug still existing in Revision "2" devices? And when not: Do you have any solution to your problem?