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.

MSP432 Security and Update Tool GUI Application...

Other Parts Discussed in Thread: UNIFLASH

Hi Everyone,

I have downloaded the MSP432 Security and Update Tool.

Is this intended for securing the firmware from being copied?

If I generate the C File, it looks like an array declaration.

How and where to insert this file to secure my code with this?

 

Thanks and Good Day,

Leo

  • Leo,

       This tool provides a lot of different features and one of those is to create protected zones of memory to prevent copying or reading out the content.  This code is written to the flash over-ride mailbox.  If you create a .c file this can simply be added to your project and it will write the data to the memory location.

    As an alternative you should look at the msp432_flashmailbox.c found in the example project:  http://www.ti.com/lit/zip/slaa659 . 

    Let me know if this is not clear or if you have more questions.

    Chris

  • Hi Mr. Chris,

    If this is the case, this looks like the "ORG" instruction of the 8051 architecture. Where you can physically locate the beginning of your firmware at a specific code memory address? This is not intended to secure the code from being read and debugged?

    What do you mean "adding this to the project"?
    Does it mean just use "Add File" and compile it together?
    It is producing a lot of error when I did that.
    Or inserting the code inside the initial source file of the project?

    Thanks,
    Leo
  • Leo,
    Thank you for pointing this out. I will need to investigate and correct. The top of the file should look like what I have included below. The definition of the flash mailbox can be found in the linker command file; .flashMailbox : > 0x00200000.

    Regards,
    Chris

    #include "msp.h"

    #if defined (__TI_ARM__) /* TI CGT Compiler */
    #pragma DATA_SECTION(FlashMailBox, ".flashMailbox")
    #pragma RETAIN(FlashMailBox)
    const volatile uint32_t FlashMailBox[] =

    #elif defined (__ICCARM__) /* IAR Compiler */
    __root const uint32_t FlashMailBox [] @ 0x00200000 =

    #elif defined (__CC_ARM) /* ARM Compiler */
    const volatile uint32_t FlashMailBox [] __attribute__((at(0x00200000))) =

    #elif defined (__GNUC__) /* GCC Compiler */
    const volatile uint32_t FlashMailBox [] __attribute__((section(".flashMailbox"))) =
    #endif
    {
    /*------General Configuration Group--------------------*/
  • Hi Mr. Chris,

    I will do my simulation as well tomorrow.
    Will let you know the results.

    Thanks,
    Leo
  • Hi Mr. Chris,

    I have simulated the code on both my (2) Black launchpad.

    The code in IAR looks for a file "core_cm4.h" and cannot proceed even if I add this file on the project.

    I successfully built the code in ccs once and it succeeded writing the 0x0ACE on the code memory space 0x00200000,

    and i cannot replicate it again and remove that setting on that launchpad.

    I tried locking the device using Uniflash and successful to disable the JTAG.

    But most of the code memory are still readable when I apply the settings MSP432 Security and Update tool.

    I tried to insert the generated hex file as an image together with original the working image.

    And it can burn the program all together. Encrypt.hex is the generated file in the MSP432 Security and Update tool in Intel Hex File format.

    I am not sure if the setting is invoked already when the hex file is loaded together.

    The file size of the original image increases when it gets added to the Encrypt.hex when I tried reading, exporting and burning it again.  

    But I cannot mask the sectors individually using the MSP432 Security and Update Tool.

    Programmatically on the source code links you provided,

    the JTAG settings will be declared by the headers on the "disable_jtag" example project?

    The problem now is how to revert it back. Even if I tried erasing with different modes in Uniflash.

    The "0x0ACE" symbol is still there. The other launchpad, I did not burn that program so you cannot see this along 0x00200000 code memory address.

    Is there a way to revert it back to the normal settings of JTAG at the 0x00200000 code memory location?

     

    For info..

    Thanks and Good Day,

    Leo

**Attention** This is a public forum