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/TMS320F2.8054万F:如何使用0的原始OTP内容保护此器件

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/585215/ccs-tms320f28054f-how-to-secure-this-device-with-the-original-otp-contents-all-0s

部件号:TMS320F2.8054万F
主题中讨论的其他部件: MOTORWARE

工具/软件:Code Composer Studio

您好,  

    我正在尝试保护TMS320F2.8054万F。 以下是我的问题:

    1.当我将CCS连接到设备时(中没有程序),我检查内存浏览器以查看Z1 OTP区域,0x3D7A00~0X3D7BFF,全是0。

      而对于Z2,0x3D7800~0X3D79FF,这是完全0xFFFF。

      区域1正常吗? 我从Mouser购买了IC。

    2.不使用 F2805x_DCSM_Z1_ZoneSelectBlock._ASM (使用所有0xFFFFFFFF)时,可以使用CCS进行编程

      但当我将此文件包括到项目中时。 我无法再使用CCS进行编程。

    3.如果我不包含此ASM文件,我会连接到CCS并对我的项目进行编程。   DCSM寄存器 内容位于附件中。

      闪存,L1,L2,L3属于Z1,L0属于Z2。 但是不使用L0。 为什么要这样分配资源?

    4. 我只想确保Z1. 我尝试保护Z2,一切都正常,但如果我将资源分配给Z2,我就无法在Z2中运行instaspin程序(我不确定原因)。

此致

箭头

下面是ASM文件和 DCSM寄存器的图片。


.sect "DCSM_OTP_Z1" 长0xFFFFFFFF ;Z1-LINKPOINTER 。长0xFFFFFFFF ;OTPSECLOCK .LONE 0xFFFFFFFF ;引导模式 .sect "DCSM_Zsel_Z1" 长 0xFFFFFFFF ;Z1-EXEONLYRAM //仅限闪存保护 长 0xFFFFFFFF ;Z1-EXEONLYSECT //只能读取 长 0xFFFFFFFF ;Z1-GRABRAM //设置柱塞保护 长 0xFFFFFFFF ;Z1-GRABECT //设置闪存的受保护区域 长 0xFFFFFFFF ;Z1-CSMPSWD0 (128位密码的LSW) 长 0xFFFFFFFF ;Z1-CSMPSWD1 长 0xFFFFFFFF ;Z1-CSMPSWD2 长 0xFFFFFFFF ;Z1-CSMPSWD3 (128位密码的MSW)

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

    您好,

    看起来Z1的密码值已编程,因此Z1是安全的。 这就是Z1 OTP中的值显示为0x0的原因。 在新(未编程)设备上,您将看到这些值为all_1 (就像Z2)。 要重新设定这些值,您需要使用已设定的密码解锁Z1。 我假设您不知道密码值,但如果您有之前尝试过的.out /映射文件, 请检查Z1密码位置是否有任何映射。 如果是,则必须将.out与十六进制文件一致(检查此线程-  并 尝试提取 已编程的密码值。 如果您知道密码,请使用此密码解锁Z1,并在新的Zone_Select_Block位置(根据新的链接指针)设定新的链接指针值和其他安全设置。

    如果找不到密码值,则需要更换部件。

    希望这有所帮助。

    此致,


    Vivek Singh

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

    你好,Vivek

    1.我很确定我没有对DSP进行编程,因为我得到了一个全新的PCB板。 情况是一样的。

    2.我只需将新主板连接到6.0。 控制台窗口显示区域1已安全。 我很难理解。

      我检查“注册”窗口,Z1的ZR为0x0040,这意味着当我连接设备时,CCS按照2.8054万F.gel读取密码。

      当此设备出厂时,ZR寄存器只显示设备具有密码,这不是全部为1,也不是0。

    3.我使用片上闪存解锁设备。

     对于Z2, 如果密码全部为1,则会导致设备解锁。

     对于Z1 ,如果密码全部为1,则会导致解锁此区域时出现错误。  

    3.您手中是否有备用2.8054万F器件? 请您为我做测试吗?只需连接设备,查看CCS控制台窗口是否显示Zone1处于安全状态。

    此致

    箭头

    下图为 连接和解锁设备的过程。

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

    您好,

    [引述] 3. 您手中是否有备用2.8054万F设备? 请您为我做测试吗?只需连接设备,查看CCS控制台窗口是否显示Zone1处于安全状态。 [/引述]

    我们过去对这些设备进行过测试, 但从未发现此问题。 也没有其他客户报告此问题。 如果您有 更多设备/主板,请同时检查它们。 如果您在多个设备上看到此问题,请向我们发送此设备的屏幕截图(顶视图)。

    此致,

    Vivek Singh

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

    你好 ,Vivek

    1.我测试了数十块主板。 它们完全一样。

      由于时间差,我现在下班了。  明天早上我会将这些设备的制作代码屏幕截图发送给您。

    2.我在上海办事处与TI的AE进行了讨论。 他们现在拥有2.8054万M controlCARD,他们发现这是正常的。 但是他们没有

      2.8054万F芯片周围。

    3.我手上还有一个2.8035万 controlCARD。 我检查了此设备。  我可以读取 0x003F7FF8~0x003F7FFF,全部为1。

      我只是想表明我确实以正确的方式测试了设备。

    此致

    箭头

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

    你好,Vivek

    下面是设备的屏幕商店(顶视图)

    此致

    箭头

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

    谢谢。 在您访问之前,这些设备是否已在闪存中编程了一些数据(出厂时已编程),或者没有任何内容应编程到闪存中。

    此致,

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

    您好,

    我认为没有任何东西可以编程到闪存中。因为 我检查了闪存A到闪存J,所有都是1。

    最近,我为TI应用了10件2.8054万M。

    我用2.8054万M更换了2.8054万F。 但是情况是一样的。 我无法读取Zone1 OTP区域,对我来说全是0。

    我所做的只是使用2.8054万M.gel文件 将CCS与  主板连接起来。

    顺便说一句,我用了汽车器具的程序2805x。

    在 hal.c 源文件中, 有些Lins 很奇怪:

    HAL_HANDLE HAL_INIT (void *pMemory, const size_t numBytes)
    {
    uint_least8_t cn;
    HAL_HANDLE句柄;
    HAL_Obj *obj;
    
    volatile int tmp;
    
    enable_protected_register_write_mode;
    
    tmp =*(int *) 0x003D7A18;
    tmp =*(int *) 0x003D7A19;
    tmp =*(int *) 0x003D7A1b;
    
    *(int *) 0x003D7A1b;*(int *) 0xB90 = 0xCEEC;
    *(int *) 0xB91 = 0x4CA7;
    *(int *) 0x70EB
    
    
    保护;*
    
    

    如果芯片不安全(出厂),为什么我需要此分段程序?

    此致

    箭头

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的,看起来这些是您订购的一些特定部件。 我正在进一步检查此问题,并将很快回复给您。

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

    我想知道现在是否有任何进展。


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

    我发现有人像我一样有类似的问题。 但该线程没有结果。
    这是他的线程路径:
    e2e.ti.com/.../46.0922万
    该磁贴是'How to get the update value of memory map register of Z1_LINKPOINTER(0xB80)in DCSM module on TMS320F2805x device (如何获取TMS320F2805x器件上DCSM模块中Z1_LINKPOINTER的内存映射寄存器的更新值

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

    您好,

    正如预期的那样,这些是 TI对Zone1的密码位置进行编程的特定部件,因此用户不能将此区域用于他们的用途。 此外, 在这些部件上,RAML0是安全的,并保留给TI使用,因此用户也不能使用 此RAM。 用户仍应能够将Zone2用于其自身的安全使用案例。

    希望这能澄清问题。

    很抱歉,我们最后花费了一些时间,因为我们没有测试此特定部件 。

    此致,

    Vivek Singh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,
    是的,这澄清了我为什么不能保护区域1。

    还有两个问题:
    1.所有2.8054万F/28054M都2.8054万都有这个问题,还是过去有这个问题? 因为我使用的是2015年制造的,我在上海的FAE表示他们的2.8054万M对此没有问题。

    2.正如我上面所说,是的,我可以用Zon2来处理我的安全问题。 但是,如果我将所有闪存分配到Zone2 (不是exeonly,只是属于它),则CAN总线通信正常,但电机不运行。
    这可能是由于受Zone1保护的Instaspin ROM所致。

    那么,在这种情况下,如何确保我的程序安全并确保电机正常工作?
    此问题是否属于您的论坛案例,或者我是否应该在Instaspin论坛中发布新的主题?

    此致

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

    这不是问题。 这些是Zone1为TI使用而固定的特定部件。 这未得到充分说明,我们将进行更新。

    FAE可能具有Pre-TMS样本。

    允许在区域1和区域2之间调用函数,因此您应该能够使用区域2安全性。 只需确保这两个区域之间没有数据传输,因为这将不起作用。

    此致,

    Vivek Singh
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的,我将进行一些测试,看看是否存在任何冲突。

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

    我发现Zone1和Zone2之间存在数据传输。
    现在我解决了这个问题。
    谢谢,您的建议非常有帮助。

    箭头