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.

CCS/MSP430FR6972: Code protection on FR6972

Part Number: MSP430FR6972


Tool/software: Code Composer Studio

Dear Team

One of my customer has been working on MSP430FR6972 for different water-meter projects. They are having some questions regarding to the code protection on FR6972. They also want to get an example code for the code protection.  Could you please check below question and provide your feedback if possible?

We have some questions about CCS v8.0.0 and MSP430FR6972.

1- When JTAG password and IPE are enabled in the project, first programming attempt gives an error which is shown below. Second programming attempt is successful but next one fails again. As a result even number of programming attempts are successful. Why do odd number of programming attempts fail?

MSP430: File Loader: Verification failed: Values at address 0x04800 do not match Please verify target memory and memory map.
MSP430: GEL: File: C:\Users\...\Debug\project.out: a data verification error occurred, file load failed.

2- slaa685 says that vector table could be used as JTAG password. If we use JTAG password, which is longer than 30 word, an error, which is shown below, is given before reaching end of the vector table. Is there any document which shows maximum JTAG password length supported by MCUs?

MSP430: Error connecting to the target: Provided password exceeded the maximum length supported for the current device.

3- If length of JTAG password is 2 word, there is no problem in other words no need to change JTAG password in CCS. If length of JTAG password is 30 word, first programming attempt fails, second programming attempt is successful when password is deleted from CCS. Why should we write and delete JTAG password in CCS for each programming, if the length of JTAG password is 30 word?

4- If an IPE function is just called by non-IPE interrupt, where should be the function located, IPE function area or IPE interrupt area? In other words which below pragmas are correct? Additionally, if this IPE function has sub IPE function, is same pragma correct for it too?

#pragma CODE_SECTION(ipeFunctionJustCa

lledByNonIpeISR, ".ipe")
#pragma CODE_SECTION(ipeFunctionJustCalledByNonIpeISR, ".ipe:_isr")

#pragma CODE_SECTION(ipeFunctionJustCalledByIpeISR, ".ipe")
#pragma CODE_SECTION(ipeFunctionJustCalledByIpeISR, ".ipe:_isr")

5- Is it ok that all functions and all variables are in the IPE area? If yes, is there an option to tell that all project will be in IPE area instead of telling it for each functions and for each variables?

6- Why is "enable realtime mode" in passive, in other words why cannot we enable it in CCS v8.0.0 for MSP430FR6972? How can we debug a running device without resetting it?



We have some questions about static library project with using CCS v8.0.0 and MSP430FR6972.

1- IPE will be used in both static library project and main project. Should we enable IPE in the project properties for both static library project and main project or just for main project?

2- Does it matter to choose debug or release configuration and optimization level for static library project? In other words, does *.lib file use project properties of the main project?

3- Is there any document about static library project for MSP430 other than below wiki?
http://processors.wiki.ti.com/index.php/Creating_Library_for_MSP430_Project_using_CCS_v5#Creating_Static_Library_Code

 

Best regards

  • Hi, we will study your question and reply soon
  • Hi Xiaodong

    Could you please let me know when you will be able to answer below?


    Best Regards

    Yunus
  • Hi Yunus
    Sorry to be late!
    I will reply the partial of your questions today.
    2) slaa685 says that vector table could be used as JTAG password
    I think you mentioned is BSL password. BSL password is vector table. For the specification, please check SLAU550P: MSP430™ FRAM Devices Bootloader (BSL) User's Guide
    6) How can we debug a running device without resetting it?
    Yes. we have handle this request before. If customer have source code he will able to see where the code stopped.
    I will send the process to your TI mailbox.
  • Hi Yunus,

    To better understand the programming errors, I'm trying to duplicate these issues with the hardware I have. For the questions related to the library I will need to work with someone in the software group that can better address these. Please let your customer know we are looking into these and will have a response as quickly as possible.
  • Hi Yunus,

    I have some answers for you.

    1 - Regarding the JTAG and IPE programming only successful on every other attempt, I have not been able to reproduce this. I am using CCS8 and will continue to see what might be causing this for the customer.

    2 - Regarding the JTAG password length, the datasheet indicates for this device that from location 0x0FF88 to 0x0FFC6 (up to the start of the AES16 interrupt vector) is available and this works out to be 30 words. So although the datasheet doesn't explicitly say this, it can be calculated. So is your customer wanting to use more than the 30 words or are they just seeing the limit is?

    3 - As with #1 above, I haven't been able to duplicate the customer's error so let me keep trying on this one.

    4 - Regarding the non-IPE function calling an IPE function, the non-IPE function is located in normal memory space. The #pragmas the customer is referring to are for allocating space for the IPE functions, including IPE functions called from within other IPE functions, constants, variables and interrupt subroutines.

    5 - Unfortunately, there is no elegant way to specify all functions to be located in the IPE memory that I am aware of. Let me ping the compiler team for further confirmation.

    6 - I'm not quite sure I understand this question, but as far as I am aware, there is no way to enable debugging on a device that is actively running without executing a reset. Again, let me check on this with the debug team.

    The software library questions are being looked at by our folks in Freising and should respond as soon as possible.
  • Yunus,

    We are trying to locate someone who has more experience with these issues. I am not able to figure out what is going on.
  • Yunus,
    We will continue support your question through mail. Thanks!

**Attention** This is a public forum