This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Difference between BSL(Bootstrap loader) and Main Memory Bootloader

I found some documents BSL and Main Memory Bootloader.I wonder what is the difference between them? Can you tell me please?
  • I think BSL is just a label people slap on something. "When I use a word, it means just what I choose it to mean — neither more nor less."

  • Humpty-Dumpty was a real philosopher J

     

    However, the two terms out of context leave a lot room for ambiguity.

    Usually, BSL refers to the ‘console’-like code that is present on almost all MSPs in a separate memory, which allows uploading new firmware as well as erasing main flash or reading memory contents.
    ‘Main Memory Bootloader’ is essentially the same, but implemented as part of the application or at least residing in main memory along with the application. It is custom-made, to implement features that aren’t available in the factory-provided BSL. (like update through RF or reading firmware from SD card or I2C memory)
    On 5x family, the memory area of the BSL is rewritable, so the BSL can be replaced by the custom one instead of having it in main memory. For this reason, the term ‘custom BSL’ is usually used to describe a BSL that is not the original one.

  • Thanks for your answer.It is quiete enough for my question

    Best Regards..

  • Hi, 

    Here is my other question.How I can delete default BSL code and how I can write my own bootloader code in F6xx flash?When I debug my costum code It will be written instead BSL area? or before debug Am I have to do something ?

    Best Regards..

  • Because I quess BSL's area is protected

  • The 1x to 4x families have the factory-provided BSL in ROM. You cannot erase and rewrite ROM.

    5X/6x family devices (but not FR5x devices) have it in FLASH. However, it is protected by default. Once boot sequence has reached your application, BSL memory is not readable and cannot be written to or be erased anymore.

    Basically, writing to BSL memory is the same as to any other flash (main/info), but the SYS module provides some controls to protect it against accidental access, even accidental execution (of its potentially harmful code). You need to change the BSL configuration in the SYS module registers, which by itself are also password-protected against accidental access.
    Details are in the 5x/6x family users guide.

**Attention** This is a public forum