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.

Reading and Writing into BSL Memory

Other Parts Discussed in Thread: MSP430F6736

Dear all,


Sorry if this question is too trivial. I tried looking into the datasheets but I was unable to find a clear answer.

I want to know if it is possible to read and/or write into BSL memory directly from my source code. I'm not talking about doing it by command.

For example, let's imagine BSL memory starts at 0x1000. Can I do the following?


uint8_t *pointer = (uint8_t*)0x1000;


and then read BSL memory from this pointer? Can I use this pointer to write into the BSL memory (not directly of course, but similar from what I would do to write to Flash memory).

I tried to read like this and couldn't do it(microcontroller resets). Reading the datasheet I found that BSL memory is protected from read/write operations. So my question really is: can I disable this protection from source code? If yes, how can I do this? Or I can only communicate with BSL using a communication channel? (like RS232).


My device is MSP430F6736

I thank you all in advance! Best regards.

  • You cannot access the BSL memory if SYSBSLPE (set by default with the TI BSL) or SYSBSLOFF are set.
    The SYSBSLC register can simply be written to.

    (Writing also requires clearing the appropriate flash lock bits.)

  • BSL Flash is like other Flash, you can read it or write 0's, and you cannot write 1's to bits that currently that bit are already a 0's. To change 0's into 1's, you need to erase the entire segment first.

    In addition, BSL Flash is "protected" by the settings of the SYSBSLC register. You need to change the setting of that register to "un-protect" before you attempt to read/write/erase BSL Flash. This is all spelled out in the User's Guide.

    Be aware that:

    (1) A few bytes at the high end of BSL Flash controls weather you can use JTAG. (This is the so-called JTAG Fuse.)

    (2) The other parts of BSL Flash controls weather you can use BSL to download code.

    Thus if you are not careful, you may risk "blown the JTAG fuse" and disable BSL. That makes the chip totally useless.

**Attention** This is a public forum