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:DSLite 问题-编程中断

Guru**** 2484305 points
Other Parts Discussed in Thread: UNIFLASH

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1427579/tms320f28379d-dslite-issues---interrupted-programming

器件型号:TMS320F28379D
主题中讨论的其他器件:UNIFLASH

工具与软件:

您好!

我们在 Linux 下使用 DSLite 在生产过程中对器件进行编程(XDS110用作 JTAG 仿真器)。
此过程包括以下步骤:

  1. 读取 CPUID
  2. 对 CPU2的闪存进行编程
  3. 对 CPU2的 OTP 存储器进行编程
  4. 对 CPU1的闪存进行编程
  5. 对 CPU1的 OTP 存储器进行编程


不幸的是,这个过程有时会被中断,这是大规模生产的真正问题。

我收集了几类错误的日志。

此致、
Piotr Romaniuk

e2e.ti.com/.../dslite_2D00_issues_2D00_logs.zip

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

    您好!

    我假设这里使用的是 UniFlash。 UniFlash 的确切版本是什么? 是直接调用 dslite、还是使用生成的命令行包?

    yan li10 说:
    遗憾的是、这个过程有时会被中断、

    "有时"的频率如何?

    谢谢

    Ki

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

    尊敬的 Ki:

    DSLite 版本12.7.0.3313.
    Linux 命令行包是从 Uniflash 生成的。

    统计:15%

    此致、
    Piotr Romaniuk  

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

    什么是 UniFlash 版本? 我之所以提出这个问题、是因为我们发现了针对多核环境生成的命令行软件包存在一些问题。 已在 UniFlash 8.8.0中修复

    https://sir.ext.ti.com/jira/browse/EXT_EP-11930

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

    我相信这来自 UniFlash 8.7、它会受到上述错误的影响。

    尽管上述错误确实是造成问题的原因、但我预计故障率会高于15%。 但仍值得更新到最新的 Uniflash 8.8.1。

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

    尊敬的 Ki:

    我会在明天检查它,让你知道。
    我需要访问我在其中生成了命令行包的第一个器件。

    此致、
    Piotr Romaniuk

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

    请注意、该问题与从8.7开始生成的软件包有关。 您将需要使用8.8重新生成软件包。

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

    尊敬的 Ki:

    我可能使用了 UniFlash 8.6.0.4688。

    您还记得我的器件上出现了 GUI 问题-速度非常慢且无法使用。
    如何在不运行 UniFlash 的情况下生成命令行包? 例如、运行某些脚本是 UniFlash 文件系统树。

    此致、

    Piotr Romaniuk

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如何在不运行 UniFlash 的情况下生成命令行包?

    您需要 UniFlash GUI 才能生成软件包。 没有 CLI 生成此信息。

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

    尊敬的 Ki:

    您能否发送创建命令行程序包的算法?

    我想编写一个执行同样操作的脚本。

    此致、

    Piotr Romaniuk

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

    生成软件包所涉及的过程非常复杂。 我不确定我是否会推荐这条路。 但我将与工程部门讨论、看看是否还有其他选择。

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

    尊敬的 Ki:

    我不需要通用型解决方案、只需要用于一个微控制器类型和一个 JTAG 仿真器类型(即 xds110)。
    也许这将简化该过程。

    此致、
    Piotr Romaniuk

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

    您可以从 CLI 运行一条命令、该命令将提取指定 ccxml 文件所需的所有调试器文件。 您仍需要添加诸如 out file 之类的附加文件、并为软件包创建主 dslite bat 文件。 如果这对您有效、我将尝试获取该命令的详细信息。  

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

    尊敬的 Ki:

    是的、它看起来非常有希望。 我对详情感兴趣。

    此致、
    Piotr Romaniuk

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

    尊敬的 Ki:

    我将 uniflash 更新到8.8.1并重新生成了 CLI 软件包。

    不幸的是、问题仍然存在:

    Executing: /home/pi/uniflash_linux-8.8.1-xds110/ccs_base/DebugServer/bin/DSLite flash -c /mnt/programator/settings/dev-01/f28379d.ccxml -l /mnt/programator/settings/dev-01/generated.ufsettings -e -f -v "/mnt/programator/Bootloader_cpu01-part2.hex"
    DSLite version 12.8.0.3522
    Configuring Debugger (may take a few minutes on first launch)...
            Initializing Register Database...
            Initializing: IcePick_C_0
            Executing Startup Scripts: IcePick_C_0
            Initializing: C28xx_CPU1
            Executing Startup Scripts: C28xx_CPU1
            Initializing: CPU1_CLA1
            Executing Startup Scripts: CPU1_CLA1
            Initializing: C28xx_CPU2
            Executing Startup Scripts: C28xx_CPU2
            Initializing: CPU2_CLA1
            Executing Startup Scripts: CPU2_CLA1
    Connecting...
    C28xx_CPU1: GEL Output:
    Memory Map Initialization Complete
    info: C28xx_CPU1: If erase/program (E/P) operation is being done on one core, the other core should not execute from shared-RAM (SR) as they are used for the E/P code. Also, CPU1 will be halted to determine SR ownership for the CPU which will run the Flash Plugin code, after which CPU1 will be set to run its application. User code execution from SR could commence after both flash banks are programmed.
    Loading Program: /mnt/programator/Bootloader_cpu01-part2.hex
            Preparing ...
            0 of 29386 at 0x80000
    error: C28xx_CPU1: Flash Programmer: Error erasing Sector A. OTP checksum mismatch detected. Operation Cancelled (4).
    error: C28xx_CPU1: File Loader: Memory write failed: Unknown error
            Finished

    这是在成功地对 cpu02的闪存和 OTP 进行编程后发生的。 启动时芯片空。

    不管打印出来是"已完成"、DSLite 过程似乎挂起[?]:

    pi@lopi-config-tool-3160:/var/www/html/tmp-get$ ps -axu |grep xds
    ...         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    ...      161770  199  0.8 493936 69464 ?        Sl   14:17  76:53 /home/pi/uniflash_linux-8.8.1-xds110/ccs_base/DebugServer/bin/DSLite flash -c /mnt/programator/settings/dev-01/f28379d.ccxml -l /mnt/programator/settings/dev-01/generated.ufsettings -e -f -v /mnt/programator/Bootloader_cpu01-part2.hex
    

    统计:5个程序有1个错误。

    此致、

    Piotr Romaniuk

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

    我不太熟悉这个错误。 在搜索时、我找到了几个线程:

    https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/700911/ccs-tms320f28377s-c28xx_cpu1-flash-programr-warning-the-configured-device-tms320f28377s-does-not-match-the-detected-device

    https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1372368/tms320f28377s-flash-err

    错误来自闪存编程器。 我会提请器件专家注意该主题、以便进一步调查。

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

    谢谢 Ki。  这对我们来说是非常紧迫的。

    此致、

    Piotr Romaniuk

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

    尊敬的 Piotr:

    如上面的相关主题中所述、您是否在对器件的闪存进行编程(擦除/编程操作)时检查了工作条件的电压范围?

    谢谢。此致、

    Charles

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

    尊敬的 Charles:

    我们将验证电源。
    f28379d 在 OTP 编程期间是否需要用于闪存的更高电流?

    此致、
    Piotr Romaniuk

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

    尊敬的 Ki:

    我自己开发了引导加载程序。
    在第一阶段将板载引导加载程序下载到 RAM 中仅取决于 DSS (JS)和 DebugServer (JTAG)。
    并在使用串行接口后返回。 在第二阶段、只有我的软件和 F28~硬件功能。

    下周我将检查该解决方案是否仍然存在问题。

    此致、
    Piotr Romaniuk

    PS
    我怀疑 OTP 编程后、有时开关电流内核存在问题。 这是目前的主题。
    使用我的解决方案进行的测试可能会导致进一步的混淆。

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

    尊敬的 Piotr:

    F28379D 需要对闪存和 OTP 进行相同的电流编程。

    此致、

    Charles

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

    已开发的解决方案在闪存和 OTP 编程方面没有问题。
    我用执行等效操作的代码替换了核心部分。

    结论是 DSlite 链(包括 Debug 服务器和为闪存和 OTP 操作发送 microprorgams)中有一些错误。
    在多个连续会话中使用 DSlite 时、会出现该错误。  

    此致、

    Piotr Romaniuk