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.

[参考译文] TMS320F28379D:请求有关通过 CAN 转储到闪存中的代码的信息。

Guru**** 2535750 points
Other Parts Discussed in Thread: TMS320F28379D, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1543275/tms320f28379d-requesting-information-regarding-code-dump-into-flash-through-can

部件号:TMS320F28379D
主题: C2000WARE 中讨论的其他器件

工具/软件:

您好、

为了将代码转储到 379D 控制器的闪存中、我们目前通过 JTAG 使用调试器。 现在的要求是应执行一个公共代码转储点并且有多个 DSP、因此每个 DSP 将收到所需的代码。 所有 DSP 都连接到一条公共 CAN A 总线。 在给定 TI 的“sprad51a"关于“关于 C2000 微控制器 CAN 闪存编程的文档中、我们将按照步骤操作。 然而,我偶然发现了一些需要澄清的疑问:

1.我的理解是、在设置 GPIO 72 和 84 以进入引导模式(两个 GPIO 都通过 SW1 拉高)后、我们需要将 Z1 BOOTCTRL 寄存器 BMODE 和 KEY 设置为 0x07 和 0x5A、以便通过 CANA 将代码接收到 DSP 闪存中。 现在、与此相关的问题是、如何在 LaunchPad 中对引导模式进行编程? 我的理解是、我们需要在应用程序代码开始之前设置引导模式。 现在 BOOTCTRL 寄存器是只读的、所以我如何写入它、如果是、何时写入(在哪个文件中)。 我看到有一些基于 OTP 的概念、我不清楚。  

2.完成后,从文档中,我尝试使用 dcan 闪存编程器。 但是、文档中指定的示例为: dcan_flash_programr.exe -d f28003x -k flash_kernel_ex5_dcan_flash_kernel.txt -a led_ex1_blinky.txt -v。 我找到了闪存内核、并从应用代码中生成了 led_ex1_blinky.txt。 我的问题是、我在生成 application.txt 时是否选择了正确的设置? 我将附上所选选项的屏幕截图。


3、如果上述步骤正确,我有正确的应用程序 txt。 现在、我打开命令行并在 dcan flash programr.exe 所在的文件夹下编写命令。 现在、执行此操作时、根据我的 DSP、我只将器件名称从 f28003x 更改为 f2837xd。 但是、它无法识别器件名称、并会弹出以下消息:

-d. -要加载到的设备的名称。
f28003x、f28p65x、f280015x
请告诉我 TMS320F28379D DSP 的器件名称应该是什么。 此外、请告诉我我们是否需要针对此特定 DSP 无论如何修改闪存内核、因为我不确定当前的闪存内核是否可以与 F28379D DSP 一起使用? 如果是、应该特别修改什么? 有关 dcan flash programr.exe 的相同查询也是如此。

4.关于第 1 点,我已经尝试通过调试器在调试后从“工具“->"片“片上闪存设置“中编辑 BOOTCTRL 寄存器。 因为我遇到了 Z1 OTPBOOTCTRL。 它最初是 0x FFFFFFFF。 我将其写为 0x 0000 075A、以便能够在 CAN 转储模式下工作。 但是、即使在这样做之后、当我通过调试器进行调试时、代码也会转到 RAM、代码会运行。 不应该它只能在转储代码通过时才起作用、因为我重新编程 Z1 BOOT CTRL 获取引导模式。 还是通过调试器转储代码来覆盖所有这些内容? 但是、当我注释 RAM 链接器 cmd 文件并使用闪存链接器 cmd 文件时、代码会转到它、但它不会运行。 它说  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    现在 BOOTCTRL 寄存器是只读的、因此我如何写入该寄存器以及如果是、何时写入(在哪个文件中)。

    该器件有一个名为 EMU_BOOTCTRL 的寄存器用于调试。  调试时、EMU_BOOTCTRL 是 BOOTCTRL 寄存器的仿真等效、允许用户在不写入 OTP 存储器的情况下使用不同的引导模式进行实验。

    EMU_BOOTCTRL 位于 0x0000_0D00

    您可以将 0xFFFF 写入 0x0D00、将 0x5AFF 写入 0x0D01

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我的问题是、我在生成 application.txt 时是否选择了正确的设置? 我将附上所选选项的屏幕截图。

    正确、生成 txt 文件的最简单方法是使用 CCS 的编译后处理:

    “${CG_TOOL_HEX}““${BuildArtifactFileName}“-boot -sci8 -a -o “${BuildArtifactFileBaseName}.txt“

    2.要使用 C2000 十六进制实用程序生成 txt 文件、请检查“引导模式“和“SCI8"</s>“

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我的问题是在生成 application.txt 时是否选择了正确的设置? [/报价]

    1.正确。 生成 txt 文件的最简单方法是使用编译后处理属性:

    “${CG_TOOL_HEX}““${BuildArtifactFileName}“-boot -sci8 -a -o “${BuildArtifactFileBaseName}.txt“

    另一种方法是使用 C2000 十六进制实用程序

    请检查“引导模式“和“SCI8"</s>“

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    向我说明 TMS320F28379D DSP
    的器件名称应该是什么

    请尝试“-d f2837xD“。 您可以实现相同的闪存内核

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [quote userid=“576635" url="“ url="~“~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1543275/tms320f28379d-requesting-information-regarding-code-dump-into-flash-through-can 关于第 1 点、我尝试编辑 BOOTCTRL 寄存器

    请参阅我之前的消息。  

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

    QJ 您好:

    我在命令提示符中尝试了此操作、但它仍然无法正常工作。 附加的屏幕截图。


    另外、请告诉我、在哪个阶段、我必须使用 Peak PCAN、从哪里可以下载它?

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

    另外、我想通过 CAN 转储我的代码、因此根据给定的表、我看到我必须输入:
    0x0000 至 0x0D00(选择的引导模式引脚默认为 72 和 84)
    0x075A 至 0x0D01(引导模式为 CAN 0 和密钥 5A)

    这不是正确的配置吗? 或者我是否有误解、请您澄清一下吗?

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

    您好、

    我读取了 C2000Ware 文件夹中 dcan_flash_programr.cpp 的源代码。 编程器支持 F28003x 和 P65x、但不支持 F2837x 器件。  

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

    您可以将 F2837x 器件添加到  dcan_flash_programmer.cpp、然后使用 VC ++重新编译工程

    1. if (g_bf28003x || g_bf28p65x || g_bf280015x || g_bf28379x ){
    VERBOSEPRINT (_T(“\n 在比特率设置为 1 MBit/s\n“的情况下初始化 CAN USB-C1);
    if (g_bf28003x){
    SLEEP_TIME = 10;//以毫秒为单位
    }
    否则、if (g_bf28p65x){
    SLEEP_TIME = 1;//以毫秒为单位
    }
    否则 if (g_bf280015x){
    SLEEP_TIME = 1;//以毫秒为单位
    }

    否则 if (g_bf28379x){
    SLEEP_TIME = 1;//以毫秒为单位
    }

     2. if (wcsncmp (g_pszDeviceName、(wchar_t*) L“f28p65x",“,7、7)&& wcsncmp (g_pszDeviceName、(wchar_t*) L“f28003x",“,7、7)&& wcsncmp (g_pszDeviceName、 (wchar_t*) L“f280015x",“,8、8)  && wcsncmp (g_pszDeviceName、(wchar_t*) L“f28379x",“,7、7) )

    _tprintf (_T(“\n 未识别的设备名称:x%SX\n\n“)、g_pszDeviceName);
    showHelp();
    ExitApp (2);
    }

    3. else if(!wcsncmp (g_pszDeviceName、(wchar_t*) L“f28379x",“,7、7))

    G_bf021 = true;
    g_bf28379x = true;
    }

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

    C2000Ware 没有适用于 F28479 的 DCAN 闪存内核示例、您需要为您的应用开发一个。

    有关其他器件、请参阅 DCAN 闪存内核:

    C:\ti\c2000\C2000Ware_5_05_00_00\driverlib\f28p65x\examples\c28x_dual\flash_kernel

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

    您好、

    我将检查 SW 团队是否可以提供帮助

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

    QJ 您好:

    谢谢。 请告诉我。

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

    尊敬的 Parambhik:

    我已申请为 F28379x 创建闪存内核示例、并且会在我获得任何反馈时让您随时更新。   

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

    尊敬的 Parambhik:

    我即将结束该主题。 当示例准备就绪时、我将再次 ping 您。 谢谢