2016-11-15 04:19 PM
I am using STM32F411RET6 and RCT6 chips. For some reasons, I can't tell the chip number in the board because it is blocked by something else.
Therefore I present all the chips are RCT6, which has a smaller code space.
In the program of keil, I assume the chip is RCT6. Everything is working well.
Now I have a new board with RET6, which has a larger code space.
My question is can I pretend the chip is RCT6 in keil and still access the flash space beyond 256k?
The RCT6 chip only has 256k flash space.
Thanks
2016-11-16 08:04 AM
They likely share the same DEVID, and die, and there is likely to be a half-word in the ''ROM'' describing the size of the FLASH as marked.
In Keil you can change the size of IROM and IRAM regions independently of the Target part selection, although if you reselect the part it will likely reassert the original settings it has for that part in its tables.The memory will be accessible using regular means, the core will Hard Fault if you wander off into undecoded memory regions. ie beyond what's actually on the die.2016-11-17 11:59 AM
Yes. Thanks, clive1
I tested.
Both chips has same configuration for most items, except the flash space.
I can switched to another chip without changing anything.
In code, we can access all the flash space as long as it is available in hardware.
In summary,whether we are able to access to the flash is not determined by the setting of program(selection of the chip in keil), but simply determined by the hardware.
by the way a small trick to decide the flash available to use is trying to view the flash at the time of debug. If you set a flash addr not available, there is error popup. In this way it is easy to figure out the real space available. For example the chip stm32f411ret6 has a flash space of 512k, the last address is 0x8080000-1. When I put 0x8060000 or 0x8070000, it has no problem. If I put 0x8080000, it has problem, as the picture below. Definitely it is RET6 instead of RCT6 chip.
2016-11-17 03:27 PM
The size of the FLASH should be in the ''ROM'' at 0x1FFF7A22 (16-bit word)