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:FR6972上的代码保护

Guru**** 2386620 points
Other Parts Discussed in Thread: MSP430FR6972
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/689820/ccs-msp430fr6972-code-protection-on-fr6972

器件型号:MSP430FR6972

工具/软件:Code Composer Studio

尊敬的团队

我的一位客户 一直在为不同的水表项目使用 MSP430FR6972。 他们对 FR6972上的代码保护有一些疑问。 他们还希望获取用于代码保护的示例代码。  请检查以下问题并在可能的情况下提供反馈吗?

我们有关于 CCS v8.0.0和 MSP430FR6972的一些问题。

1 -当项目中启用 JTAG 密码和 IPE 时、首次编程尝试会产生错误、如下所示。 第二次编程尝试成功、但下一次编程尝试再次失败。 因此、即使是尝试编程的次数也是成功的。 为什么奇数的编程尝试失败?

MSP430:文件加载器:验证失败:地址0x04800处的值不匹配请验证目标存储器和存储器映射。
MSP430:GEL:文件:C:\Users\...\Debug\project.out:发生数据验证错误、文件加载失败。

2- slaa685表示向量表可以用作 JTAG 密码。 如果我们使用超过30个字的 JTAG 密码、则在到达矢量表末尾之前会给出如下所示的错误。 是否有任何文档显示了 MCU 支持的最大 JTAG 密码长度?

MSP430:连接到目标时出错:提供的密码超出当前器件支持的最大长度。

3 -如果 JTAG 密码的长度为2个字、那么换句话说、无需在 CCS 中更改 JTAG 密码就没有问题。 如果 JTAG 密码长度为30个字、则第一次编程尝试失败、当密码从 CCS 中删除时、第二次编程尝试成功。 如果 JTAG 密码的长度为30个字、我们为什么要在 CCS 中为每次编程写入和删除 JTAG 密码?

4 -如果 IPE 函数刚刚被非 IPE 中断调用、则该函数应位于何处、IPE 函数区域或 IPE 中断区域? 换句话说、以下哪些 pragma 是正确的? 此外、如果此 IPE 函数具有子 IPE 函数、同一 pragma 是否也正确?

#pragma CODE_SECTION (ipeFunctionJustCa

LledByNonIPeISR、".IPE")
#pragma CODE_SECTION (ipeFunctionJustCalledByNonIPISR、".IPE:_ISR")

#pragma CODE_SECTION (ipeFunctionJustCalledByIPISR、".IPE")
#pragma CODE_SECTION (ipeFunctionJustCalledByIPISR、".IPE:_ISR")

5 -所有函数和所有变量都位于 IPE 区域中是否正常? 如果是、是否可以选择将所有工程都放在 IPE 区域中、而不是将每个函数和每个变量都告知该区域?

6 -为什么"启用实时模式"为被动模式、换句话说、我们为什么不能在 MSP430FR6972的 CCS v8.0.0中启用它? 我们如何在不重置正在运行的器件的情况下对其进行调试?



对于使用 CCS v8.0.0和 MSP430FR6972的静态库工程、我们有一些问题。

1- IPE 将在静态库项目和主项目中使用。 我们应该为静态库工程和主工程或仅为主工程在工程属性中启用 IPE 吗?

2-为静态库工程选择调试或发布配置和优化级别是否重要? 换句话说、*。lib 文件是否使用主工程的工程属性?

3-除下面的 wiki 之外、是否有关于 MSP430静态库项目的任何文档?
http://processors.wiki.ti.com/index.php/Creating_Library_for_MSP430_Project_using_CCS_v5#Creating_Static_Library_Code

 

此致

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、我们将很快研究您的问题并作出答复
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好,小东

    请告诉我、您何时能够回答以下问题?


    此致

    Yunus
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Yunus
    很抱歉迟到了!
    我今天将回答你的部分问题。
    2) slaa685说矢量表可以用作 JTAG 密码
    我想您提到的是 BSL 密码。 BSL 密码是矢量表。 有关规范,请参阅 SLAU550P:MSP430TmFRAM 器件引导加载程序(BSL)用户指南
    6) 6)如何在不重置正在运行的器件的情况下对其进行调试?
    是的。 我们以前处理过此请求。 如果客户有源代码、他将能够查看代码停止的位置。
    我会将该过程发送到您的 TI 邮箱。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Yunus、

    为了更好地了解编程错误、我尝试将这些问题与我拥有的硬件重复。 对于与库相关的问题、我需要与软件组中能够更好地解决这些问题的人员合作。 请告知您的客户、我们正在研究这些问题、并将尽快做出响应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Yunus、

    我有一些答案。

    1 -关于 JTAG 和 IPE 编程只在每次尝试时成功、我无法重现此问题。 我正在使用 CCS8、并将继续查看可能导致客户出现此问题的原因。

    2 -关于 JTAG 密码长度、数据表指示此器件的位置0x0FF88到0x0FFC6 (一直到 AES16中断向量的起始)可用、并且计算结果为30个字。 因此、尽管数据表没有明确说明这一点、但可以计算出它。 那么、您的客户是否希望使用超过30个字、或者他们是否只是看到了限制?

    3 -与上面的#1一样、我无法复制客户的错误、因此让我继续尝试此错误。

    4 -关于调用 IPE 函数的非 IPE 函数、非 IPE 函数位于正常存储器空间中。 客户参考的#pragma 用于为 IPE 函数分配空间、包括从其他 IPE 函数、常量、变量和中断子例程中调用的 IPE 函数。

    5 -不幸的是、没有一种巧妙的方法来指定 IPE 存储器中的所有函数、我知道这些函数。 让我 ping 编译器团队以进行进一步确认。

    6 -我不确定我是否理解这个问题、但据我所知、在没有执行复位的情况下、无法在正在运行的器件上启用调试。 让我再次与调试团队一起检查这一点。

    我们在弗莱辛的员工正在研究软件库问题、应尽快做出响应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Yunus、

    我们正在努力寻找对这些问题有更多经验的人。 我无法弄清发生了什么。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Yunus、
    我们将继续通过邮件支持您的问题。 谢谢!