cancel
Showing results for 
Search instead for 
Did you mean: 

Bootloader Version

jean-jacques
Associate II
Posted on May 21, 2010 at 09:49

Bootloader Version

7 REPLIES 7
jean-jacques
Associate II
Posted on May 17, 2011 at 13:51

Hi,

thank's for your response.

The chip is an STM32F101C.

If I read the ID at @ 0x1FFFF7D6, I read 0xFF.

The ID is not at the 2 last byte of system Memory (read in the AN2606 page 7). So the ID should be at @ 0x1FFFF7FE... (Just before the Options Bytes).???

At this @ I read 0x40 0xBF ????

I want to read this information in order to perform a traceability of products sold, and for maintenance.

Regard's

Yac

chikos332
Associate II
Posted on May 17, 2011 at 13:51

Hi,

Do you mean that you want to read the bootloader version when your application is running from flash memory?

If that's what you want, then it is possible only for latest bootloader versions on Medium-density Value line devices (STM32F100x) and XL-Density (STM32F10x with 1MB flash) devices:

for these two device families you can directly read the Bootloader ID @ 0x1FFFF7D6.

I think that it will also be implemented for all next products (Any confirmation from ST guys?)

For previous devices, I think that there is no way to do it except booting from system memory and communicating with bootloader.

Have a look at AN2606 for more details.

Can't you just read the device ID or the memory flash size instead of bootloader ID ? What kind of issues are you trying to solve by reading the bootloader ID? may be you can find a different solution ?

chikos332
Associate II
Posted on May 17, 2011 at 13:51

Hi,

The address of the ID I gave you is correct (@ 0x1FFFFD6).

But for STM32F101C this feature is not available (this is a medium or low or access line density family device) for which the feature is not available (there is no Id at this address).

As I said it is available only for Value line devices (STM32F100x) and XL-Density line (STM32F101/3RG/ZG if my memory is correct).

So try to use something else, like Device Unique ID (Address: 0xE0042000) it contains very useful information (device family, revision version, ...)

Cheers.

Posted on May 17, 2011 at 13:51

The address of the ID I gave you is correct (@ 0x1FFFFD6).

or  0x1FFFF7D6 which you gave earlier?

0x1FFFF7D6 is 0xFFFF on the parts I'm looking at. And the versioning data returned by the bootloader is scattered directly in the code. It would be better to do a CRC32 of the static portion of the boot loader (0x1FFFF000..7DF) and use that as a database signature/fingerprint

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
chikos332
Associate II
Posted on May 17, 2011 at 13:51

That seems to be a nice idea too 🙂

(Sorry for the typo error: yes the address is 0x1FFFF7D6 (I'm referring to AN2606).)
damh
Associate II
Posted on May 17, 2011 at 13:51

The byte at 0x1FFFF484 holds the internal bootloader version in the devices, we are using. But as you see, it is a hardcoded constant in code area. In the next version it will certainly be at an other position. So I recommend the same way as clive1. In addition you can read out the complete internal bootloader for every different CRC.

jean-jacques
Associate II
Posted on May 17, 2011 at 13:51

OK.

Thank's a lot for all of you're response.

Regard's

Yac