1
votes

I'm writing a firmware to a STM32F103RCT6 microcontroller that has a flash of 256KB according to the datasheet.

Because of a mistake of mine, I was writing some data at 0x0807F800 that according to the reference manual is the last page of a high density device. (The ref. manual make no distinction of different sizes of 'high density devices' on the memory layout)

The data that I wrote, was being read with no errors, so I did some tests and read/wrote 512KB of random data and compared the files and they matched! files hash pic

I did some research I couldn't find similar experiences. Are those extra flash reliable? Is that some kind of industrial maneuver?

1
Probably. I do not believe that nowadays it has any sense to manufacture 2 different chips. Probably flash is disabled by laser cuts or something.0___________
Maybe use your account to ask here : electronics.stackexchange.com since this is not a code issue.VC.One
@VC.One you're right! I'll ask there, thank you very much!J. Santos
Just to be clear: You read and wrote both files in one go as opposed to writing one page, then reading it back, right? The observed behavior might just be a mirroring of available flash due to unused address lines otherwise.FRob

1 Answers

2
votes

I would not recommend using this extra FLASH memory for anything that matters.

  1. It is not guaranteed to be present on other chips with the same part number. If used in a product that would be a major problem. Even if a sample is successful now, the manufacturer could change the design or processes in the future and take it away.

  2. While it might be perfectly fine on your chip, it could also be prone to corruption if there are weak memory cells.

A common practice in the semiconductor industry is to have several parts that share a common die design. After manufacturing, the dies are tested and sorted. A die might have a defect in a peripheral, so is used as a part that doesn't have that peripheral. Alternatively, it might be perfectly good, but used as a lesser part for business reasons (i.e., supply and demand).

Often, the unused features are disabled by cutting traces, burning fuses, or special programming at the factory, but it's possible extra features might left intact if there are no negative effects and are unlikely to be observed.

If this is only for one-off use or experimentation, and corruption is an acceptable condition, I don't really see a harm in using it.