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.

[参考译文] TMS320F28388S:将 OTP 存储器配置代码集成到现有应用程序中

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1275982/tms320f28388s-integrating-otp-memory-configuration-code-into-existing-application

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

您好

︎ 了 TMS320F28388S 中建议的提到的步骤:将 OTP 存储器配置集成到现有应用- C2000微控制器论坛- C2000 Δ Σ 微控制器- TI E2E 支持论坛


使用 dscm 安全工具.syscfg、添加了具有所需设置的 DCSM 模块、并使用这些设置生成 dcsm.cmd 和 dcsm.asm 文件。

此外、还在工程中附加了生成的文件、

但是得到以下错误:

 

你能帮我解决这个问题吗?

此致、

迪潘坎

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

    Deepankan、您好!

    似乎有两个链接器.cmd 文件(或同一链接器 cmd 文件中的两个条目)试图分配相同的存储器位置。 DCSMZ1OTP 和 DCSM2OTP 可能来自手动创建的.cmd 文件、而其他代码部分由 SysConfig 保留。 如果您仅使用 SysConfig 配置 DCSM、是否可以从.cmd 文件中删除 DCSMZ1OTP 和 DCSMZ2OTP 条目?

    谢谢!

    卢克

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

    Luke、您好!

    如所示、根据建议的更改、能够成功构建、但在刷写时出现以下错误。


    谢谢。

    迪潘坎

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

    Deepankan、您好!

    尝试在不对 JLM_ENABLE 字段进行编程的情况下对 LINKPOINTER3进行编程时、通常会发生此错误。 闪存被编程为64位块、所以32位 LINKPOINTER3与 JLM_ENABLE 一起进行编程。 如果未指定 JLM_ENABLE、.out 文件将尝试将其编程到所有 F、这会导致错误、因为您要尝试将位从0编程到1。 此时您是否在使用手动创建的.asm 和.cmd 文件? 如果是、您能否更新文件以将 JLM_ENABLE 字段(地址0x78006)编程为其当前值(0xFFFF000F)?

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

    Luke、您好!
    实际上、我在我的现有应用中同时使用 Dscm.asm 和 Dscm.cmd 文件(从 DCSM_SECURITY_TOOL 生成)来对 OTP 存储器进行编程、而不使用 DSCM_SECURITY_TOOL。

    JLM_ENABLE_字段 (地址0x78006)已经存在于 DSCM.cmd 文件 中、它也被分配给 DSCM.asm 文件中的0xFFFFFF000F。



    dscm.cmd 文件

    dscm.asm 文件

    我是否还需要更新我的现有.cmd 文件? 需要您的帮助。  

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

    Deepankan、您好!

    我注意到、LINKPOINTER 值未在 DSCM.asm 文件中进行编程(这些行被注释掉)。 尝试将 LINKPOINTER3编程到所有 FS、这将导致我在上一篇文章中描述的类似问题。 必须对链接指针和 JLM_ENABLE 一起进行编程。 如果点击 Per LINKPOINTER 菜单中的复选框、这将对链接指针进行编程、同时也会对区域选择块进行编程。 如果不希望对区域选择块进行编程、则需要创建自己的定制 dcsm.asm 和 dcsm.cmd 文件、以便仅对区域标头和链接指针进行编程。

    谢谢!

    卢克

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

    Luke、您好!


    我在定制的 DSCM.cmd 文件中只对区域标头和 LINKPOINTER 的值进行了编程、从而解决了上述错误。

    我将通过串行闪存编程器发送我的现有应用程序二进制文件(现在还具有 OTP 存储器配置代码)、但收到以下错误:

    这是因为我已经通过 DSCM 安全工具对 OTP 进行了编程、还是因为有任何其他原因?


    谢谢!
    迪潘坎

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

    Deepankan、您好!

    您是说您已经使用 CCS 闪存插件对 ZONE1 OTP 链路指针1、2、3和 JLM_ENABLE 字段进行编程了吗?

    如果是、那么如果您现在尝试使用不同的值对相同的字段进行编程、从而使某个位从0更改为1、则会出现您提到的错误。

    此致、

    拉杰什怀特