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.

[参考译文] TMS320F28388D:如何将基于 RAM 的工程转换为基于闪存的工程?

Guru**** 2680595 points

Other Parts Discussed in Thread: TMDSHSECDOCK, TMDSCNCD28388D, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1591060/tms320f28388d-how-can-i-convert-ram-based-project-to-flash-based-one

器件型号: TMS320F28388D
主题中讨论的其他器件: TMDSCNCD28388D、TMDSHSECDOCK、 C2000WARE

尊敬的支持团队:

我在 CPU1 上有一个运行中的基于 RAM 的工程。 现在、我要将其转换为基于闪存的闪存。

请帮帮我。 如果你能提供它的详细程序,这将对我很有帮助.

仅供参考、我   在 Windows 笔记本电脑上安装了 C2000Ware 6.00.00.00 和 CCS 20.2.0。  我使用 TMDSCNCD28388D 版本 MCU063B-003 和 TMDSHSECDOCK controlCARD 集线站版本 F 板进行测试。  

如果您需要我方面的更多信息、请告诉我。

期待您的答复。

此致、

LIN

 

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

    如需更多信息、我修改了闪存链接器文件。  调用 InitFlash() 时、会出现未解析符号错误。 然后我找到 Flash_initModule(uint32_t ctrlBase、uint32_t eccBase、uint16_t 等待状态);。 但是不知道如何设置这些参数。 还是需要调用该函数?

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

    您好 Lin、

    您是否在工程属性的预定义符号中定义了_FLASH?

    此致、

    IRA

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

    尊敬的 Ira:

    感谢您的答复。

    是的、将构建配置从 CPU1_RAM 更改为 CPU1_FLASH 后、我在预定义符号下找到了_FLASH、如下所示。

    我是否需要在我的工程中添加一些代码来进行转换?

    此致、

    LIN

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

    尊敬的 Ira:

    以下是更新。 现在、 代码在从 CCS 刷写后运行、但在下电上电后不运行。 请帮帮我。

    谢谢、

    LIN

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

    您好 Lin、

    下面有几个问题可以帮助我更好地理解您的问题

    1.您使用的引导模式是什么? 您可以通过控制卡上的“引导“开关找到此信息。 在执行下电上电之前、请确保处于“从闪存引导“模式。

    2.在您的闪存链接器中,是否在有效的闪存位置生效?

    3.在闪存链接器中、codestart 是否映射到闪存而不是 RAM? 您的链接器在 sections {}部分应该会显示类似“codestart :> begin “的内容。

    4.此外、在闪存链接器中、确保.text 完全位于闪存中、并确保在使用闪存构建时只有闪存链接器处于活动状态。

    5.如果它仍然不起作用,你可以尝试添加  sysctl_disableWatchdog();当你进入 main() 函数. (这很可能不是问题,但您可以尝试处理)

    谢谢、

    IRA

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

    尊敬的 Ira:

    感谢您的答复和所有问题。 以下是我的答案。

    1) 将 S1:A — 位置 1 设置为关闭或保持为从闪存引导模式。

    2) 在闪光灯: 开始       : origin = 0x080000, length = 0x000002

    3) codestart       :>开始,对齐 (8)

     4).text         :>> FLASH1 | FLASH2 | FLASH3 | FLASH4、ALIGN (8)

    5) 我尝试了,但同样的结果。

    “你以为你赢了吗?

    此致、

    LIN

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

    尊敬的 Ira:

    再更新一次。

    在我将 S1:a –1 设置为关或左侧后、当我右键点击 ProjectName 并选择 Flash Project 时、我收到以下错误: IcePick_C_0:连接到目标时出错:(错误–2131 @ 0x0)无法访问器件寄存器。 重置器件、然后重试此操作。 如果错误仍然存在、请确认配置、对电路板进行下电上电、和/或尝试更可靠的 JTAG 设置(例如下 TCLK)。 (仿真包 20.2.0.3536)

    如果我将 S1:A –1 设置为 ON、则可以无任何错误地刷写工程。

    我的 CCS 设置或硬件板上是否有问题?

    此致、

    LIN

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

    您好 Lin、

    当您将 S1:A 设置为 ON(打开)时、您是否能够在下电上电后刷新任何错误?

    您是否可以尝试将 S1 设置为 OFF、将 S2 设置为 ON、以进入等待引导模式并尝试?

    谢谢。此致、

    IRA

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

    尊敬的 Ira:

    我尝试将 S1:A 设置为 ON、但仍然可以刷写电路板。 也可以将 S1 设置为 OFF、将 S2 设置为 ON、所以不能幸运地使其正常工作。

    您是否  手头有 TMDSCNCD28388D 版本 MCU063B-003 和 TMDSHSECDOCK controlCARD 集线站版本 F 板、以便复制我的测试?

    我创建了一个简单的 led 切换项目进行测试,它根本不工作。

    谢谢、

    LIN

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

    您好 Lin、

    我很抱歉迟来的答复。 我现在在办公室里没有您的硬件。 我们是否可以安排会议来解决此问题?

    谢谢。此致、

    IRA

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

    尊敬的 Ira:  

    是的、请让我们召开会议来处理它。

    谢谢、

    LIN

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

    您好 Lin、

    已通过电子邮件与您连接以参加会议。

    谢谢。此致、

    IRA

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

    已回复您的电子邮件。

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

    LIN、  

    您是否可以参阅 https://www.ti.com/lit/ug/spruil8b/spruil8b.pdf 、了解有关如何配置电路板上的引脚的更多信息。

    另外、我建议您从 C2000Ware 导入一个基于闪存的空工程示例。 将所有项目文件迁移到这个新项目。 将任何自定义链接器命令文件设置合并到基于闪存的链接器命令文件中。 如 Ira 之前所述、确保指定的入口点正确无误。

    您需要确保的另一件事是 工程中包含 f2838x_codestartbranch.asm 文件。 此功能是必需的、因为它将存储器的 codestart 段映射到您的代码。 这将允许 bootROM 将代码重定向到此处。

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

    您好:

    我确实按照说明在控制卡上设置开关。 但是、它对解决问题没有帮助。 我想知道文档中的说明不正确。 您能否使用我在这里拥有的相同硬件对其进行验证?

    这是一段很长的时间。 我希望有人能帮助解决这个问题。

    谢谢、

    LIN

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

    您能否尝试导入 C2000Ware 上的其中一个示例、并确认闪烁示例是否在从闪存模式独立启动中工作。 这样就可以排除任何潜在的硬件问题。