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.

[参考译文] TMS320F280039C:在 SysConfig 中设置 DCSM

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1232865/tms320f280039c-setting-for-dcsm-in-sysconfig

器件型号:TMS320F280039C
主题中讨论的其他器件:SysConfig

尊敬的 Champ:

我要求 为我的客户提供服务。

我们参考了文档。  SPRACP8A 和 SPRACS4、在 开始之前、仍有一些问题想要了解更多。

(1)。  如果用户只需要 JTAGLOCK 功能,是否必须检查 ZONE1 Per LINKPOINTER 的 Configure this Section?  

(2)。 继续第一个问题,如果我们没有 根据 LINKPOINTER 检查配置 ZONE1的此部分,这是否意味着 JTAGLOCK 的密码,始终是 JTAGPSWDH0 & JTAGPSWDH1中设置的密码 并且不再被修改,正确吗?

(3)。 如何知道 当前 LINKPOINTER 值是多少? 0x00003FFF 是否为默认值?

(4)。 为什么显示"此密码值的掩码为0x27ffffff 时出错。 输入在应用掩码时不会更改的密码。" 在 JTAGPSWDL1中,检查是否更新了 LINKPOINTER? 专家是否愿意澄清错误是什么,以及它如何正常工作?

谢谢。此致、

约翰尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Johnny、

    Unknown 说:
    (1).  如果用户只需要 JTAGLOCK 功能,是否必须检查 ZONE1 Per LINKPOINTER 的 Configure this Section?  [/报价]

    可以。 没错。 仅当勾选了 Configure this section 按钮、它才会允许您更新相应的部分。

    Unknown 说:
    (2)。 继续第一个问题,如果我们没有 根据 LINKPOINTER 检查配置 ZONE1的此部分,这是否意味着 JTAGLOCK 的密码,将始终是 JTAGPSWDH0 & JTAGPSWDH1中设置的密码 ,并且不再被修改,正确吗?

    否。 您也可以在稍后更新它。 但是,我们建议一次性对所有部分进行编程。 JTAGPSWDH0/1是128位 JTAGPSWD 的高64位、此位只可更新一次。

    Unknown 说:
    (3)。 如何知道 当前 LINKPOINTER 值是多少? 0x00003FFF 是否为默认值?

    可以。 0x00003FFF 是从 TI 发出器件时的初始值。 您可以选择保留当前链接指针、也可以通过检查 Update LINKPOINTER 字段移至下一个链接指针。

    Unknown 说:
    (4)。 为什么显示"此密码值的掩码为0x27ffffff 时出错。 输入在应用掩码时不会更改的密码。" 在 JTAGPSWDL1中,检查是否更新了 LINKPOINTER? 专家是否会澄清错误是什么,以及它如何正常工作?

    对于每个链接指针值、都有一个128位的默认密码、该密码已由 TI 编程。 DCSM 一章中的器件 TRM 中列出了基于链路指针的这些默认密码值。 您遇到的错误是、当链接指针更新时、CSM 密码需要与基于更新链接指针的默认密码对齐。 请使用给定的掩码0x27ffffffff 更新 CSMPSWD1值以解决该错误。 然后、您可以根据您的选择更新 CSMPSWD1、同时尊重此掩码值。   

    希望这一点很清楚。

    谢谢、此致

    普拉莫德

    [/quote]
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Pramod,

    是。 没错。 仅当勾选了配置此部分按钮时,它才允许您更新相应部分。

    我仍然很困惑。 由于 SysConfig 中的默认 DCSM 设置、因此在 Configure this section 按钮中会选中该设置。 或者我应该以另一种方式来问 、如果用户 只需要 JTAGLOCK 函数、那么选中和取消选中" Configure this section "按钮之间有什么区别?

    我真的不能确定 LINKPOINTER 是相关的、需要选择它。 所以我的问题是、如果 我只需要 JTAGLOCK 函数、是否需要勾选 Configure this Section of ZONE1 Per LINKPOINTER?  请您进一步说明 差异和 相关性吗?

    谢谢。此致、

    约翰尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好, Pramod,

    还有一个问题是、如果用户不希望一开始通过 SysConfig 启用 JTATGLOCK、并且希望 在主代码/应用代码中启用 JTATGLOCK、我可以只声明 void Set_JTATGLOCK (void)等函数并复制代码生成器。 添加到所声明的函数中?  

    如果无法通过上述方式实现,如何实现这种实现要求?  我是否应该 用位域方式实现 JTATGLOCK 的相关寄存器?  

    谢谢。此致、

    约翰尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Johnny、

    启用 JTAGLOCK 是一个包含两个步骤的过程、其中2个设置将控制器件 JTAGLOCK。 我来解释一下。

    1. JLM_ENABLE:这是一种 single-bit 配置、如果启用、您将能够在扫描128位 JTAGKEY 时连接到器件。 默认情况下、此功能被禁用、如果勾选 ZONE1 Header 部分中的 Enable JTAGLOCK 按钮、则可以启用此功能。

    2. 128位 JTAGPSWD (JTAGPSWDH1/JTAGPSWDH0 / JTAGPSWDL1/ JTAGPSWDL0):在这个128位 JTAGPSWD 中、高64位被放置在 Zone1标头段中(由 JTAGPSWDH1/JTAGPSWDH0表示)、此段只可更新一次。 JTAGPSWD 的低64位(由 JTAGPSWDL1/JTAGPSWDL0表示)被放置在 ZONE1 Per LINKPOINTER 部分中。 这可以通过移动到不同的 LINKPOINTER 来多次修改。

    如果你只想启用 JTAGLOCK、只需执行上面的操作1)将锁定 JTAG。 然而、由于128 JTAGPSWD 还未被修改并保留为缺省值、可通过扫描缺省128位 JTAG 密码来解锁 JTAG。 但我认为这对您来说是不够的、您将需要一个只有您知道的定制128位 JTAGPSWD、只有您可以扫描密码来解锁 JTAG。 为了实现这一目的、您必须对您选择的128位 JTAGPSWD 进行编程。 现在、根据您希望编程的值、如果您只想修改 JTAGPSWD 的高64位、那么只更新 ZONE1标头部分就足够了、您无需检查 ZONE1 LINKPOINTER 的"Configure this section"按钮。 但是、如果您希望更新 JTAGPSWD 的低64位、则必须检查 ZONE1 LINKPOINTER 部分的"Configure this section"按钮。

    希望这一点很清楚。

    谢谢、此致
    普拉莫德

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Johnny、

    可以通过应用更新使能 JTAGLOCK。 但是、这取决于您是如何定义您提到的函数的。 如果您有一个段作为可执行文件(.out 文件)的一部分、其中定义了此 JLM_ENABLE、则在 CCS 上使用片上闪存实用程序时、系统会自动对定义此寄存器的各个 OTP 位置进行编程、同时在 CCS 上将.out 加载到目标。  

    谢谢、此致

    普拉莫德

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Pramod,

    备注。 感谢您的澄清。  

    其他跟进问题:  

    (1)。 从我关于 启用  JTATGLOCK 和在主代码中设置密码的最后一个问题中可以看出、如果用户不想 在 CCS 上使用片上闪存实用程序来执行此操作、 并希望编写一个函数来启用 JTATGLOCK 和设置自定义的 JTATGLOCK 密码,如何实现? 我是否可以将 dcsm.asm (在代码段上面)中生成的代码复制到该函数中?  

    (2)。 我的客户正在同时使用项目中的 driverlib 和 bit 字段。 以及 SysConfig GUI 将根据 启用 JTATGLOCK 设置自动生成 dcsm.cmd。 显示 dcsm.cmd 中的内存与 f28003x_headers_noBIOS.cmd 中现有内存声明重叠时出现错误。  

    在 f28003x_headers_noBIOS.cmd 中的几行和各段中添加注释之后。 错误是地址。

    我想确认这些行没有注释掉(DCSMCOMMON、DCSMZ1、DCSMZ2、DcsmCommonRegsFile、DcsmZ1RegsFile、 DcsmZ2RegsFile),我是否应该保留它?  

    谢谢。此致、

    约翰尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Johnny、

    1) 1) JTAGLOCK 密码是闪存 OTP 中的一个位置、必须进行编程。 当您是指写入一个函数时-这意味着您需要一个函数来对 OTP 中的密码进行编程、OTP 位于闪存中、并且需要对密码进行编程。  如果您不希望使用片上闪存实用程序、而是通过应用程序代码来实现、那么我认为您需要使用闪存 API 来实现这一点。 只使用定义数据和地址位置的段作为.asm 和.cmd 的一部分是不够的。  

    2) 2)由于您提到和遇到的问题、建议不要将 driverlib 和 bit 字段同时作为同一项目的一部分。 这两种样式的.cmd 文件之间将存在内存重叠、需要 根据您访问哪些区域的位置逐一解决。  DCSMCOMMON、DCSMZ1、DCSMZ2、DcsmCommonRegsFile、DcsmZ1RegsFile、 DcsmZ2RegsFile 是 DCSM MMR 的几个段。 这些将用于基于位字段的函数、其中会访问 DCSM 的寄存器。  

    希望这一点很清楚。  

    谢谢、此致

    普拉莫德

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

     关于该线程的进一步请求将脱机处理。 从而关闭。  

    谢谢、此致

    普拉莫德