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/TMS320F28377S:C2000 32位微控制器论坛

Guru**** 2482225 points
Other Parts Discussed in Thread: UNIFLASH, TMS320F28377S, C2000WARE, CONTROLSUITE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/681700/ccs-tms320f28377s-c2000-32-bit-microcontrollers-forum

器件型号:TMS320F28377S
主题中讨论的其他器件:UNIFLASHC2000WAREcontrolSUITE

工具/软件:Code Composer Studio

大家好。

我正在使用 TMS320F28377S 以及 CCS 7.2和 UniFlash 开发 DCSM 功能。

CCS 7.2和 UniFlash 支持安全设置、编程密码(CSMKEY 0~3)和 GRABSECTR 的方法。

对于大规模生产、我不希望使用 CCS 7.2或 UniFlash。 相反、我想在内核中集成安全设置。

内核支持 通过 UART 协议从 PC 更新固件。

如何添加内核例程以设置安全、编程 CSMKEY 和 GRABSETR?

此致。

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

    请参阅 F2837xS_sci_flash_kernel 上的 C2000Ware 示例。
    www.ti.com/.../C2000Ware

    c2000ware\device_support\f2837xs\examples\cpu1\F2837xS_sci_flash_kernel

    我们有一个 SCI 闪存内核、用于通过 SCI 更新闪存并处理与安全相关的设置。

    请参阅此应用报告:
    www.ti.com/.../sprabv4b.pdf

    此致。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Meghana。
    感谢你的答复。
    我已阅读您的邮件和应用报告。 它显示了如何通过串行 UART 接口对受保护的器件进行编程。 我想获得使用串行接口设置安全性的解决方案、而不使用 JTAG。
    此致。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 YoungHwan Kim:

    即使一个区域没有密码保护、CSM 也会在复位时锁定。

    因此、仍必须对这些区域执行虚拟读取操作才能解锁。 为了方便、引导 ROM 代码执行此虚拟读取。

    AppNote 的预期目标是 CSM 锁定器件、该器件只需取消保护器件并执行操作。

    在引导 ROM 序列结束时从 SCI 引导后、必须完成器件的安全保护。

    将数据加载到闪存的类似方法必须扩展到 OTP 以更改为密码并锁定器件。

    目前、我们没有使用串行接口设置安全性的解决方案。

    您可以使用 AppNote 中的框架。

    此致。

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

    我们的制造商很难使用 UniFlash 或 CCS 设置安全性。 使用 UniFlash 或 CCS 仅对开发人员有用。

    我在 controlSUITE 中找到了一些用于使用串行接口设置安全性的示例代码。 我调用了闪存 API 函数 fapi_issueProgrammingCommand。 对于非安全器件、其过程如下所示。
    -我使用串行接口对固件进行了编程。
    -我检查了下载的固件是否运行良好。
    -我使用 API 函数编程安全性以设置安全性,如下所示。
    ;将0x2AAAAAAA 设置为地址0x78226、Z2-GRANSECT
    ;将128位密码设置为地址0x78228 ~ 0x7822e、Z2-CSMPSWD 0~3
    -我检查了使用 CCS 的片上闪存时安全性是否良好
    -之后,下载的固件在以下情况下无法正常工作
    ;关闭电源和打开电源
    ;CCS 调试器使用 JTAG 发送“CPU 复位”命令
    ;CCS 调试器使用 JTAG 通过“仅加载符号”选项开始调试
    -当下载的固件不起作用时、CPU 寄存器、PC 位于0x3FFxxx、主引导 ROM 中。
    但是、当我开始使用 JTAG 调试"Load Program"选项时、加载的固件运行良好。
    -下载的固件正常工作时、CPU 寄存器、PC 位于0x80000、固件的映射地址。

    我想认真地从你们那里得到解决办法。
    此致。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 YoungHwan Kim :

    当我们执行加载符号时、它仅提供用于调试的符号链接。

    您需要"重新启动"器件才能运行到 main。这将有助于从引导 ROM 进入代码空间。

    重新启动将强制 PC 进入应用程序的"入口点"、并将绕过执行引导 ROM 代码。

    您会发现这很有用

    此致。