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.

[参考译文] TMS320F28386D:JLM 使能 OTP 中的寄存器可&'t 可以使用 CCS 进行编程

Guru**** 2459230 points
Other Parts Discussed in Thread: UNIFLASH

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1208346/tms320f28386d-jlm-enable-register-in-otp-can-t-be-programmed-using-ccs

器件型号:TMS320F28386D
主题中讨论的其他器件:UNIFLASH

大家好!

我正在尝试使用值0xFFFF0000对 Z1OTP_JLM_ENABLE 寄存器(地址0x78006)进行编程、以在器件上启用 JTAGLOCK 功能。 Code Composer Studio v12和 Uniflash v8.2返回下面相同的错误。 其余的闪存过程成功完成。

C28xx_CPU1:闪存编程期间出现错误。 地址0x00078004、FMSTAT (某些器件上的 STATCMD) 0x00000030
C28xx_CPU1:请确保您正在编程的存储器位置尚未进行编程。

我确定该位置尚未进行编程、另外我只对0x78006而不是0x78004进行编程、那么该地址来自哪里?

使用片上闪存工具来手动编程 JTAGLOCK 始终在我的器件上正常工作、但我们需要将其嵌入.out 文件中。

链接器脚本中的相关行:

MEMORY
{
PAGE 0:

PAGE 1:

    Z1_OTP_JLM_ENABLE       : origin = 0x78006, length = 0x000002



}

SECTIONS
{
    z1_otp_jtaglock_enable     : > Z1_OTP_JLM_ENABLE

}

asm 部件:

  .sect "Z1_OTP_jtaglock_enable"
     .retain 配置文件
     .long 0xFFFF0000

提前感谢您的帮助!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Unknown 说:
    我确定该位置还没有编程、而且我只编程0x78006而不是0x78004、所以这个地址来自哪里?

    闪存位置编程为64位字、因此您看到地址0x78004存在错误。

    我建议使用安全(DCSM) 工具生成 asm 文件和 cmd 文件、以避免这些问题。

    此致、

    Vivek Singh

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

    我使用了该安全工具、它会生成相同的内容(只是命名有点不同)、否则地址和值是相同的。

    闪存位置编程为64位字、因此您看到地址0x78004存在错误。

    这是否意味着不能直接对0x78006进行编程、但地址需要与64位对齐? 在这种情况下、片上闪存工具如何做到这一点?

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

    在将0xFFFF0000的值编程到地址0x78006时、请考虑使用 OTP 中已存在的相同值对0x78004的值进行编程。  检查是否可以解决您看到的错误。  

    谢谢、此致

    Pramod

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

    编辑:这确实解决了问题、我只需要对地址0x78000中的所有链接指针进行编程。  非常感谢!

    您好,Pramod,

    感谢您的答复、

    0x78004位置是 linkpointer3、默认为0x3FFF0000。 遗憾的是、对该值进行编程会产生相同的错误、并且加载会被取消。

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

    您好、我认为默认值是0x00003FFF、而不是0x3FFF0000。 请在尝试编程前检查此项。  

    谢谢、此致

    Pramod