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:通过 BOOTCTRL & AMP 更改引导引脚;EMU_BOOTCTRL

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/786691/ccs-tms320f28377s-changing-boot-pins-via-bootctrl-emu_bootctrl

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

工具/软件:Code Composer Studio

为了尝试并简化这一过程、我使用了一个运行 blinky_cpu01且连接了 TMS320F28377S 和 CCS v8.2的 LaunchpadXL。 我正在尝试将引导引脚移动到 GPIO70、以便我可以将 GPIO70拉高并在 上电时获得闪烁的 LED、而不是使用 GPIO72和 GPIO84。  如果有一种更简单的方法来实现这一点、请告诉我。 考虑到这一点:

1) 1)如何配置 EMU_BOOTCTRL 并测试此更改? 我找不到任何用于执行此操作的示例代码。 存储器地址的唯一引用是数据表的6.9.1。

2) 2)如何测试该变化? 我在 google 上找到了一些有关发出"调试重启"的内容、但这个新版本的 CCS 在工具栏中有"CPU Reset"和"Restart"。 我是否应该暂停调试器、单击"CPU Reset"、然后单击"Resume (F8)"以检查只有当 GPIO70被拉高时、指示灯才会闪烁?

3) 3)在我稳定 EMU_BOOTCTRL 设置后、如何写入 BOOTCTRL 寄存器? 它是什么存储器地址? 我需要为多个区域设置多个 BOOTCTRL 寄存器吗? 我是否需要使用 Flash_API 库并编写使用该库的程序? 我在这个论坛上看到了一些对 CCS 的旧 Flash 编辑器插件的引用、这些插件显然可以完成任务-这是否仍然存在于某个地方? 这里还有人修改了 codestart.asm 文件来实现它、我应该这么做吗?

4) 4)我想为两个引导引脚分配 GPIO70、如果该引脚为高电平、则引导到闪存中、如果该引脚为低电平、则不会运行代码、您需要插入调试器以从 CCS 运行代码。 那么、我是否正确地理解 EMU_BOOTCTRL 和 BOOTCTRL 应写入0x46460B5A?

谢谢、

David

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

    尊敬的 David:  

    您似乎已走上了正确的道路、可以实现您想要实现的目标。  总之、您正在尝试让闪烁应用程序与编程到闪存中的应用程序以及配置为闪存引导的器件一起工作。  是这样吗?  

    首先、您能否使用标准配置确认应用程序是否正常工作?  也就是说、通过 GPIO72和 GPIO84配置的闪存启动均为高电平。  

    假设上述操作正常、请参阅 TRM 中的第4.4节配置引导模式引脚。  要写入 BOOTCTRL 寄存器的值应为0x47470B5A。  这将在您查看上述 TRM 部分后有意义。  如果不清楚、请告知我们。

    谢谢!

    Krishna

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

    您好、Krishna、

    是的、我可以使用电路板上的 J1开关确认闪烁功能在原始程序中正常工作。 我一直在对它进行修整、我想我让 EMUBOOT 寄存器以我想要的方式处理新值。 该过程似乎是:

    配置要为闪存构建的工程  

    打开存储器浏览器至0xD00、双击该值并写入0x0B5A

    转至0xD01、写入0x4747

    按下"CPU Reset"

    按绿色的播放按钮

    如果该引脚被拉高、则观察灯闪烁;如果被拉低、则不会执行任何操作

    现在我一直坚持的是如何将该值写入用户可配置 DCSM OTP 中的实际 BOOTCTRL 寄存器。 是否有演示此功能(或类似功能)的示例代码?

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

    尊敬的 David:

    有两种方法可以在 OTP 中对 BOOTCTRL 位置进行编程(寄存器是只读的、因此您无法对其进行写入)。

    1) 1)闪存插件 GUI

    在 CCS 中点击"Tools"->"On-Chip Flash"。 这将打开 GUI、您可以在此处找到可编程的 BOOTCTRL 字段。

    2) 2)包含.out 中的值

    在 C2000Ware 中、您可以参考示例"Blinky_with Dcsm"、了解如何将其包含在代码中并让.out 进行编程。

    请注意、这是 OTP 区域(一次性可编程)、也具有其他安全设置、因此在对其进行编程时必须小心。 编程后、您无法更改该值。 另外、 最好先对 Z2 BOOTCTRL 进行编程、这样、如果存在任何问题、您就有机会对 Z1 BOOTCTRL 进行编程、这将覆盖 Z2 BOOTCTRL 设置。

    此致、

    Vivek Singh