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.

EXPLANATION for “Fetches From 0-1FF will Reset the Device”

A recent enhancement has been made to the MSP430x2xx System Reset. This enhancement will reset the microcontroller whenever a CPU instruction fetch is made from the address range 0x0000 - 0x01FF.

I don't understand how this enhancement works, since my firmware can read and write to registers in that address range without resetting the microcontroller.

  1. What is really meant by the statement An instruction fetch from the address range 0x0000 - 0x01FF will reset the device?
  2. What is the scenario that applies to this enhancement?
  • Hi Thomas,

    Good question.  As you may be already aware, the address space described (0x0000-0x01FF) is the peripheral register space in the memory map.  You can read, modify, and write to this memory space- in fact, if you couldn't, you would not be able to do very much with the processor!

    Thomas Foxcroft said:
    What is really meant by the statement An instruction fetch from the address range 0x0000 - 0x01FF will reset the device?

    What is forbidden is an instruction fetch from this area.  An instruction fetch is the loading of a memory location's contents into the CPU to be interpreted as an opcode, or an instruction.  The CPU grabs instructions based upon the value of the program counter.  If, somehow, the program counter ever contained the address in the peripheral range (0x0000-0x01FF), the CPU will detect that it's trying to fetch an instruction from the peripheral memory space, which wouldn't make any sense as there isn't any code there. 

    Thomas Foxcroft said:
    What is the scenario that applies to this enhancement?

    To protect the application from executing random instructions (the peripheral memory would be interpreted as whatever instruction it looked like), the reset will be asserted.  This is meant to alert you during design that there is a problem, and to protect the application should the program counter (PC) ever get corrupted.

    Walter

  • I was hoping for such a well written explanation. I now completely understand. Well done Walter! Thank you.

**Attention** This is a public forum