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.

Code protection. Intelectual property.



Hi,

I just would like to know how the problem of intellectual property is solved. Our customers insist that the microprocessors with the program could not be replicated. 

It does make sense. As far as I understand, the memory of the microprocessor could be read and downloaded as a binary which cold be used to configure an identical chip.

I found some information on so called code protection fuze in slaa089d. Not much actualy. It is said that blowing that fuze stops JTAG/test functionality. But what is about Bi-Spy?

It will be blocked also?

So, to put my question short - What are the methods to block the MSP430 program from duplication and the memory from reading?

Thanks a lot.

 

  • The JTAG fuse, when triggered will stop any further JTAG access, both for "normal" 4-wire JTAG and for 2-wire (aka Spy-bi-wire). Once the JTAG fuse is blown, the JTAG access can never be re-enabled.

    The only other way to access the MSP430's code is via BSL, and that is password protected. If the incorrect password is given, the chip is erased.

  • Thanks for the answer very much.

    Where the BootStrap Password is defined?

  • As discussed in the SLAA089 app note the BSL password is defined as the following:

    "The password itself consists of the 16 interrupt vectors located at addresses FFE0h to FFFFh (256 bits), starting with the first byte at address FFE0h. After mass erase and with unprogrammed devices, all password bits are logical high (1)."

  • Hi Friend,

    I am also working on same kind of project in which Firmware Update by using UART by sending command through PC. I am making custom BSL ,now i am able to write data in flash and also program counter But when i am going to reset my code it is giving  "No source available for "0x00". i couldn't go my application code. please suggest me i need to erase Stack Memory / Stack Pointer .....?

  • The simplest BSL only needs to erase Flash and load the image as generated by Compiler/Assembler/Linker. There is no need to load RAM, peripherals, PC, or other registers. Once the Flash is loaded correctly, the BSL code could enter an infinity loop or go to  LPM doing nothing. After that, whenever you cycle the power or cause a Reset, the chip will automatically start to run the program currently reside in Flash.

    If you want BSL to invoke the program without going through power cycle, that can be done very simply too. Instead of go to an infinity loop or go to LPM, the BSL code could do something to cause a Reset (such as WDT=0;).

**Attention** This is a public forum