Hi
I’m working with the C40 flash memory driver and used the following configuration, which works fine with the default project settings:
#define EXAMPLE_MASTER_ID (0U)
#define EXAMPLE_SECTOR_START_ADDR (0x00600000U)
#define EXAMPLE_SECTOR_TEST (C40_CODE_ARRAY_0_BLOCK_1_S256)
#define EXAMPLE_BUFFER_SIZE (64U) // or 128U
However, when I change the settings to:
#define EXAMPLE_MASTER_ID (0U)
#define EXAMPLE_SECTOR_START_ADDR (0x00500000U)
#define EXAMPLE_SECTOR_TEST (C40_CODE_ARRAY_0_BLOCK_0_S128)
#define EXAMPLE_BUFFER_SIZE (64U) // or 128U
the program hits a hard fault.
Could anyone clarify what might cause this issue?
From my understanding, possible causes could be:
The selected start address overlaps with a protected or reserved flash region.
The sector/block size definition (C40_CODE_ARRAY_0_BLOCK_0_S128) doesn’t match the actual memory map for the device.
Attempting to write or erase from a block where the code is currently executing.
Misalignment with the flash controller’s sector boundaries.
I’ve attached an image showing the issue in more detail.
Thanks and Regards,
Ganesh Bhagwat