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.

[参考译文] XDS110ISO-EVM:CCS 8 + XDS510USB:在存在引导加载程序的 TMS320F28034 上对闪存擦除/编程的 CPU 停止要求

Guru**** 2773145 points

Other Parts Discussed in Thread: TMS320F28034

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1610042/xds110iso-evm-ccs-8-xds510usb-cpu-halt-requirements-for-flash-erase-program-on-tms320f28034-with-bootloader-present

器件型号: XDS110ISO-EVM
主题中讨论的其他器件: TMS320F28034

TI 团队大家好、

我正在使用的器件 TMS320F28034 消息流 Code Composer Studio v8 和较旧版本 Spectrum Digital XDS510USB 仿真器。

消息

  • 引导加载程序 闪存扇区 A (0x3F6000–0x3F7FFF)

  • 应用程序 闪存扇区 B–H

  • 单个 JTAG 链上的两个 F28034 器件

    • 一个器件处于活动状态

    • 绕过一个器件

  • 使用执行闪存编程 Tools→On-Chip Flash

  • 问题

    在应用程序重新编程期间、闪存擦除或编程通常会失败、并出现以下错误:

    • Timed out waiting for target to halt

    • Timed out waiting for target to halt while executing FlashAPIInterface2803xV1_00.out

    • Flash operation timed out waiting for the algorithm to complete

    • Target is not connected

    • CPU Reset error

    当存在引导加载程序时、CCS 似乎无法保持 CPU 暂停的时间足够长、以执行闪存 API。

    问题

    1. F28034 上的闪存擦除/编程所需的 CPU 状态是多少?

      • CPU 必须始终处于什么位置 已暂停/已暂停 在擦除或编程闪存之前?

      • 在 CPU 运行时尝试进行闪存操作是不正确还是不安全?

    2. 实时仿真 (RTE/Realtime Mode) 是否会影响闪存编程可靠性 硬件设计?

    3. 有任何问题 建议的 CCS 8 设置 在已从闪存执行引导加载程序的器件上对闪存进行编程时(连接时停止,连接时复位等)?

      感谢您的澄清。

      此致、
      Swapnil

      image.pngimage.pngimage.png
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid=“681233" url="“ url="~“~/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1610042/xds110iso-evm-ccs-8-xds510usb-cpu-halt-requirements-for-flash-erase-program-on-tms320f28034-with-bootloader-present
    • F28034 上的闪存擦除/编程所需的 CPU 状态是多少?

      • CPU 必须始终处于什么位置 已暂停/已暂停 在擦除或编程闪存之前?

      • 在 CPU 运行时尝试进行闪存操作是不正确还是不安全?

    • 实时仿真 (RTE/Realtime Mode) 是否会影响闪存编程可靠性 硬件设计?

    • 有任何问题 建议的 CCS 8 设置 在已从闪存执行引导加载程序的器件上对闪存进行编程时(连接时停止,连接时复位等)?

    [/报价]

    我认为、如果启用了实时仿真、它将会阻止调试启动的复位(例如,从 CCS 运行->CPU 复位)、很可能会将程序加载到闪存 (CCS 必须在器件上加载和运行闪存 API)。  因此、我建议在将新程序加载到闪存时禁用此功能。   

    此外、闪存 API 不应被中断、上述实时情况可能会发生干扰。  这也让我想到以下几点、即对闪存进行编程时、系统无法从调试器可靠地运行。

    为此、我还建议在加载新的.out 文件之前停止器件、尽管我认为 CCS 可能会尝试为您执行此操作。  这一点很重要、以便系统处于已知状态、尤其是在编程选项完成时、您不希望 ePWM(例如)保持静态/未知状态、因此在运行系统时。   

    这与您在功能代码内对闪存进行编程不同、因为该代码可以处理上述问题和其他闪存 API 关注点;但是、CCS 对此一无所知。

    如您所述、CCS 提供了一些在仿真器连接时停止和/或复位的选项。  我想说的是、这实际上取决于您打算对调试会话执行的操作。  例如、如果正在调试系统行为、则可能需要将其保留为禁用状态、并在系统处于已知状态时自行处理暂停。

    总之、考虑到 CCS 是如何调用 API、我建议在使用 CCS 执行代码加载之前禁用实时仿真并手动停止器件、尤其是刷写。

    此致、

    Matthew