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.

[参考译文] TM4C129ENCPDT:dfuprog 更新失败器-扩散器件上的随机刻录失败器。

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1288504/tm4c129encpdt-dfuprog-update-failer--random-burn-failer-on-diffrent-devices

器件型号:TM4C129ENCPDT
主题中讨论的其他器件: TM4C123GH6PM、EK-TM4C1294XL 、TM4C1294NCPDT

您好、我们使用 TM4c 板已有几年了、这个问题似乎主要出现在 TM4C129ENCPDT 板上。

问题:我们有一个 Windows 应用程序使用 dfuprog.exe (由 TivaWare_C_Series-2.2.0.295提供)、在某些计算机上、相同的 bin 文件会使其更新失败(DFU 错误-7)、而在其他计算机中、它使用相同的 bin 文件和相同的电路板可以正常运行。 这给我们的客户在需要更新我们的新软件时带来了巨大的问题、同时也给我们的研发带来了问题。

到目前为止我们收集的信息:  
在 Tivaware c 系列中修改代码以获得包含有关该问题的详细信息的本地编译后、问题的主要源似乎在 lmdfu.dll 中。  
此问题出现在函数中:[LMDFUParamsget]。
在没有出现问题剂量的计算机中。 [DFUDeviceInfoGet]提供的信息似乎与 TM4C129ENCPDT 提供的预期规格相匹配。 这会导致稍后通过大小检查(我们使用 bin 文件、而不是完全 DFU 扭曲的文件)。
在问题发生的计算机中、 尽管该 电路板是 TM4C129ENCPDT 电路板、但我们得到的规格与 TM4C123GH6PM 相匹配。 不清楚为什么会出现这种情况。  
问题并不像 ROM 代码返回的值错误那么简单、因为即使在 Windows 端我们使用了应该使用的值、刻录也将不会继续、正如我们观察到的那样、  
此问题可能会在 Windows 10和 Windows 11上发生。 我们无法确定哪些因素会造成这种行为的发生。 这种行为也可能突然消失,而 dfuprog 工作如预期。  
当计算机有这个问题(大多数发生在 TM4C129ENCPDT ),它似乎也影响 dfuprog 燃烧的 TM4C123GH6PM ,但我们没有进一步研究它。  

从我们无法访问 ROM 代码的角度来说、我们无法调查 ROM 为什么突然返回错误的规格。

环境规范:
-  在 Windows 应用程序调用 defuprog 之前,该电路板位于 ROM_UpdateUSB 函数中。 激活的 USB 外设。 在这种状态下时钟速度为50MHz、并且禁用其他中断。
- 问题剂量不会产生在一些计算机,主要是因为我们得到的 spescs 是正确的。 在工作计算机和非工作计算机中、直到规格达到的整个过程都是相同的。  
-当我们试图从 ROM 中提供正确的值而不是错误的值时,lmusbdll.dll 出现了错误,就像我们发送的一样, ROM 去匹配本身会导致自己从 DFU 模式退出。



  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    问题:我们有一个 Windows 应用程序使用 dfuprog.exe (由 TivaWare_C_Series-2.2.0.295提供)、在某些计算机上、相同的 bin 文件会导致更新失败(DFU 错误-7)、而在其他计算机中、它可以正常使用相同的 bin 文件和相同的电路板。 [/报价]

    您好!

     我 没有遇到这样的报告。 它似乎与计算机相关。 我无法理解并解释 dfuprog.exe 为什么会在不同的计算机之间以不同的方式运行。  

    在出现问题的计算机中, 尽管主 板是 TM4C129ENCPDT 主板,但我们获得的规格与 TM4C123GH6PM 相符。

    您能否演示一下如何显示 TM4C123GH6PM 的截图。 我不知道 dfuprog.exe 会显示像  TM4C123GH6PM 或 TM4C129ENCPDT 这样的器件型号  。 话虽如此、dfuprog.exe 已问世多年。 这是我第一次听到这样的关于 lmdfu.dll 问题的报告。 我没有参与 dfuprog.exe 和 dll 的开发。 不确定是什么导致了您的问题、以及它是否确实是 lmdfu.dll 问题。  

    这种行为也可能会突然消失,而且 dfuprog 可以正常工作。  [/报价]

    当您在其他计算机上工作时、听到该问题可能消失或出现在同一台计算机上、这一点尤其奇怪、正如您所说的。  

    如果我们没有 ROM 代码访问权限、我们就无法调查 ROM 突然返回错误规范的原因。
    [/报价]

    您能解释一下表示是 TM4C123GH6PM 而不是 TM4C129ENCPDT 的 ROM 代码返回了什么内容吗? 您如何得出 ROM 代码返回错误规范的结论。  

    -  在 Windows 应用程序调用 defuprog 之前,电路板处于 ROM_UpdateUSB 函数中。 激活的 USB 外设。 在这种状态下时钟速度为50MHz,并且禁用其它中断。
    [/quote]

    您是否还可以尝试一些实验?

     -尝试在 LaunchPad 板上运行现有的应用程序,而不是计算机上显示问题的定制板? 您可以重复同样的问题吗?

    -在 C:\ti\TivaWare_C_Series-2.2.0.295\examples\boards\ek-tm4c1294xl\boot_demo_uart_rom 中有一个调用 ROM_UpdateUSB 的示例。 您是否可以在计算机上的定制板上运行此示例、似乎有问题? 您可以重复同样的问题吗?

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

    尊敬的 Charles:  

    您能不能显示 TM4C123GH6PM 的显示方式屏幕截图吗? 我不知道 dfuprog.exe 会显示像  TM4C123GH6PM 或 TM4C129ENCPDT 这样的器件型号  。 话虽如此、dfuprog.exe 已问世多年。 这是我第一次听到这样的关于 lmdfu.dll 问题的报告。 我没有参与 dfuprog.exe 和 dll 的开发。 不确定是什么导致了您的问题、以及它是否确实是 lmdfu.dll 问题。  [/报价]

    如前所述、为了尝试找到问题的根源、我们修改了基本代码来打印日志。 令人信服的是,dfuprog 不提供此信息,但是,使用本地构建,你可以使代码创建日志与附加的信息。  

    您能否详细说明 ROM 代码返回的内容是 TM4C123GH6PM 而不是 TM4C129ENCPDT。 您如何得出 ROM 代码返回错误规范的结论。  [/报价]

    正如我所提到的、在调用 dfuprog 之前、电路板会调用函数 [ROM_UpdateUSB]。 此函数 由 TI driverlib 提供、从那一刻起、在复位前唯一能够运行的就是此处的代码。  在我们的程序中,唯一的沟通方式,并且在一般情况下,唯一遵循 DFU 格式的东西就是这里的函数剂量。  

    通过修改 lmdfu,将日志添加到 刻录过程中的不同功能。 在该过程中、lmdfu 调用函数:[DFUDeviceInfoGet]

    此功能  以 DFU 格式询问器件闪存的相关器件(在本例中为 TM4C129ENCPDT 板)。 稍后、它使用这些信息来确定 bin 文件是否可以烧录。 如果无法访问、则返回错误代码-7。 从"无效 计算机"的日志中, 从 dfudeviceinfoget 收到的信息如下所示:  

    [开始添加:6144][FLASH Top:262144][FLASH block size:1024][num flash block add:256] 

    闪存大小、块大小和增加闪存的规格都与 TM4C123GH6PM 的规格相匹配 。
    同时,相同的功能,从同一个板,从一个计算机工作返回以下:

    [开始添加:0][flash top:1048576][flash block size:16384][num flash block add:64] 


    这些 规格与  TM4C129ENCPDT 的闪存大小和闪存块大小相符、符合预期。

    这就是为什么我说我目前怀疑的 是 ROM 中的代码。 鉴于在我们测试的两台计算机上的 dll 和 dfuprog 是相同的、问题在于设备的响应。 我 想把窗口归咎于它,lmusb dll 中用来传输的函数非常简单,而且使用范围很广,这使人们最有可能怀疑 ROM 或它 与 lmdfu.dll 的通信。  

    下面是日志的屏幕截图:  

    这尤其奇怪的是,当您在其他计算机上工作时,该问题可能消失或出现在同一台计算机上,正如您所述。  [/报价]

    我不能更多地同意你,这就是为什么我认为问题的根源不是计算机本身。  

    您是否还可以尝试一些实验?

     -尝试在 LaunchPad 板上运行现有的应用程序,而不是计算机上显示问题的定制板? 您可以重复同样的问题吗?

    -在 C:\ti\TivaWare_C_Series-2.2.0.295\examples\boards\ek-tm4c1294xl\boot_demo_uart_rom 中有一个调用 ROM_UpdateUSB 的示例。 您是否可以在计算机上的定制板上运行此示例、似乎有问题? 您可以重复同样的问题吗?

    [/报价]

    遗憾的是、我目前没有  TM4C129ENCPDT 支架。 感觉我们 之前使用了 TM4C123GH6PM、当我们搬到129时、我们没有获得 午餐板。 我确实有一个 TM4C123G lunchpad ,但我 不知道它 和 TM4C123GH6PM 之间有什么区别,我也没有 充分 测试 TM4C123GH6PM 板来告诉你,与 TM4C129ENCPDT 板 的问题是相同的。

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

    您好!

    如上所述,为了试图找到问题的根源,我们修改了基本代码以打印日志

    我甚至不知道提供了源代码。 我想知道您在哪里可以找到源代码?

    正如我所提到的、在调用 dfuprog 之前、电路板会调用函数 [ROM_UpdateUSB]。 此函数 由 TI driverlib 提供、从那一刻起、在复位前唯一能够运行的就是此处的代码。  在我们的程序中,唯一的沟通方式,并且在一般情况下,唯一遵循 DFU 格式的东西就是这里的函数剂量。  

    通过修改 lmdfu,将日志添加到 刻录过程中的不同功能。 在该过程中、lmdfu 调用函数:[DFUDeviceInfoGet]

    此功能  以 DFU 格式询问器件闪存的相关器件(在本例中为 TM4C129ENCPDT 板)。 稍后、它使用这些信息来确定 bin 文件是否可以烧录。 如果无法访问、则返回错误代码-7。 从"无效 计算机"的日志中, 从 dfudeviceinfoget 收到的信息如下所示:  

    [开始添加:6144][FLASH Top:262144][FLASH block size:1024][num flash block add:256] 

    闪存大小、块大小和增加闪存的规格都与 TM4C123GH6PM 的规格相匹配 。
    同时,相同的功能,从同一个板,从一个计算机工作返回以下:

    [开始添加:0][flash top:1048576][flash block size:16384][num flash block add:64] 


    这些 规格与  TM4C129ENCPDT 的闪存大小和闪存块大小相符、符合预期。

    [/报价]

    感谢您提供此详细信息。   除了我想提供帮助外、我真的不知道为什么 ROM 引导加载程序 会在同一电路板和同一计算机上提供不同的信息、包括一次(显示为 TM4C123GH6PM)到另一次(TM4C129ENCPDT)。  

    您能否说明一下有多少块板像这样工作? 百分比是多少?

    我想您有一些电路板可以在任何计算机中正常工作。 是这样吗?

    如果您的已知正常工作的电路板在任何计算机上都能正常工作、您可以进行 ABA 交换测试吗? 将已知正常的板中的 MCU 交换到可疑板上、并将可疑板上的 MCU 交换到已知正常的板上。 结果如何? 可疑的 MCU 是否会在已知正常的电路板上重复执行相同的行为? 已知良好的 MCU 是否会在疑似故障的电路板上继续工作。 在我看来、这项 ABA 交换测试对于进一步查明问题非常重要。   

    遗憾的是,我目前没有  TM4C129ENCPDT 的支架。 感觉我们 之前使用了 TM4C123GH6PM、当我们搬到129时、我们没有获得 午餐板。 我确实有一个 TM4C123G lunchpad ,但我 不知道它 和 TM4C123GH6PM 之间有什么区别,也没有 充分 测试 TM4C123GH6PM 板来告诉你,与该板的问题是相同的 TM4C129ENCPDT 。[/报价]

    如果您没有 EK-TM4C1294XL LaunchPad、是否至少可以 在当前电路板上运行 C:\ti\TivaWare_C_Series-2.2.0.295\examples\boards\ek-tm4c1294xl\boot_demo_uart_rom 示例? 该示例调用 ROM_UpdateUSB ()以启动 ROM 引导加载程序。 你看到同样的问题吗?  

    我非常希望您能够获取一个 LaunchPad。  

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

    尊敬的 Charles:

    我甚至不知道提供了源代码。 我想知道您在哪里找到源代码?


    您可以在 TI 网站上找到源代码: https://www.ti.com/tool/SW-TM4C 
    它包含所有程序 proveded abote 和更多。 据我所知、在 CCS 中正确编译是至关重要的。  
    在仿真中、defuprog、lmusbdll  和 mldfu 的代码都可以在 ti\TivaWare_C_Series-2.2.0.295\tools 中找到。

    您能告诉有多少电路板像这样工作吗? 百分比是多少?

    正如我在报价单中提到的。 同一个板在一台计算机上工作,剂量不在其他计算机上工作,并且从我们的印象,没有任何板工作在所有的计算机,一旦预言出现。  
    仅从 R&D 中对电路板的暗暗影可以告诉您、当计算机有问题时、它们都不起作用、而当计算机有问题时可以正常工作、而不会出现该问题。  

    如果您没有 EK-TM4C1294XL LaunchPad,您是否可以 在当前电路板上至少运行 C:\ti\TivaWare_C_Series-2.2.0.295\examples\boards\ek-tm4c1294xl\boot_demo_uart_rom 示例? 该示例调用 ROM_UpdateUSB ()以启动 ROM 引导加载程序。 你看到同样的问题吗?  [/报价]

    我曾尝试在 您计划的 TM4C129ENCPDT 上对其进行膨胀后,将其烧坏,但它的剂量不起作用,并在运行时进行粉碎。  

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

    Amit、您好!

    正如我在问题发布中所提到的。 同一个板在一台计算机上工作,剂量不在其他计算机上工作,并且从我们的印象,没有任何板工作在所有的计算机,一旦预言出现。  
    仅从 R&D 中对电路板的暗暗影可以告诉您、当计算机有问题时、它们都不起作用、而当计算机有问题时可以正常工作、而不会出现该问题。  [/报价]

    抱歉、我仍然很难解释和诊断您的问题。 这是我第一次看到这样的报告。 您说的是、一旦某个特定计算机上出现问题、那么   所有主板在该计算机上的故障率将是100%。  

    也许、我应该问一下、您的研发部门有多少台计算机会出现这个问题? 百分比是多少?  

    另一个问题是、您是否至少有一个可在任何计算机上工作的电路板? 或者所有主板都会在其中一台计算机上发生故障?  

    在上一次回复中、我要求进行 ABA 交换测试。 这在您身边可行吗? 此步骤取决于您是否至少有一个板始终在所有计算机上工作。

     当您展开时,我试图在 TM4C129ENCPDT 上对其进行压缩后,将其刻录,但它不起作用,并在运行时进行压缩[/报价]

    我给出了错误的例子。 我 在上次回复中向您提供了 C:\ti\TivaWare_C_Series-2.2.0.295\examples\boards\ek-tm4c1294xl\boot_demo_uart_rom。 这个用于 UART 引导加载程序。 我想说 C:\ti\TivaWare_C_Series-2.2.0.295\examples\boards\ek-tm4c1294xl\boot_demo_usb。 这是一个将调用 ROM_UpdateUSB 以进入 ROM 引导加载程序的示例。  

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

    尊敬的 Charles:

    很抱歉,我真的很难解释和诊断您的问题。 这是我第一次看到这样的报告。 您说的是、一旦某个特定计算机上出现问题、那么   所有主板在该计算机上的故障率将是100%。  [/报价]

    是的、一旦问题发生、所有板与该计算机通信的故障率都是100%。  

    或许,我应该问你研发中有多少台计算机会看到这个问题? 百分比是多少?  [/报价]

    我不打算告诉您这个数字、但研发部门的计算机中有75%现在已经遇到或遇到过这个问题。 目前、大约20%的计算机遇到了此问题。 这不包括客户端计算机、因为客户端计算机的相关信息要少得多。

    另一个问题是、您是否至少有一个可在任何计算机上工作的电路板? 或者所有主板都会在其中一台计算机上发生故障?  

    [/报价]
    正如我在问题发布中所提到的。 同一个板在一台计算机上工作,剂量不在其他计算机上工作,并且从我们的印象,没有任何板工作在所有的计算机,一旦预言出现。  [/报价]
    在我上次的回复中,我要求进行 ABA 交换测试。 这在您身边可行吗? 此步骤取决于您是否至少有一个板始终在所有计算机上工作。
    [/quote]
    [/quote][/quote]
    [/quote][/quote][/quote]

    没有此类电路板。

    我给出了错误的例子。 我 在上次回复中向您提供了 C:\ti\TivaWare_C_Series-2.2.0.295\examples\boards\ek-tm4c1294xl\boot_demo_uart_rom。 这个用于 UART 引导加载程序。 我想说 C:\ti\TivaWare_C_Series-2.2.0.295\examples\boards\ek-tm4c1294xl\boot_demo_usb。 这是一个将调用 ROM_UpdateUSB 以进入 ROM 引导加载程序的示例。  [/报价]

    已尝试在  TM4C129ENCPDT 上运行该示  例,刷新的比上一个示例更多。 也许 EK-tm4c1294xl 规范与 TM4C129ENCPDT 规范差异太大、内存映射也太不同。 如果您已经考虑了、我不介意尝试运行不同的代码、或者创建专门用于 TM4C129ENCPDT 的代码 、该代码只会激活引导加载程序。

    如前所述、根据日志、最可能的问题是 ROM、但我可以看到您可能认为它是 winusb.h 的原因
    请帮我解决这个问题、对于我们和我们的客户来说、这是一个巨大的头痛问题。 如果您将指定 rom.c 及其编译依赖性、我们更愿意继续调试过程、以找到问题的根本原因。 对我们来说,花时间解决问题已经足够大了。

    如果您不愿意提供 rom.c、您能否向我们提供 driverlib.lib 的编译版本、其中包含有关该部分问题的相关信息提取、以便我们可以继续解决问题? 否则,它是计算机问题,如你怀疑,你能告诉我计算机的问题是什么? 这不是一个问题,我们可以继续生活或容忍,如果我们需要改变计算机的东西,所以它是。  

    [/quote][/quote][/quote][/quote]
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尝试在  TM4C129ENCPDT 上运行示例 ,刷新的是上一个示 例。 也许 EK-tm4c1294xl 规范与 TM4C129ENCPDT 规范差异太大、内存映射也太不同。 我不介意如果您已经考虑过的话、可以运行另外一个代码、或者创建一个专用于 TM4C129ENCPDT 的代码、该代码将只激活引导加载程序。

    TM4C129EENCPDT 和 TM4C1294NCPDT 几乎是相同的。 唯一的区别是  TM4C129ENCPDT 具有 AES/DES 硬件加速器。 就运行 USB 示例而言、无需考虑这些硬件加速器。 它们的存储器映射相同。  

    什么意思?  您可以单步执行一下、找出原因和崩溃位置吗?

    我刚刚在 EK-TM4C1294XL LaunchPad 上运行了该示例、该示例构建成功、运行正常。 运行示例后、我可以看到两个 DFU 器件。 一个是 ICDI DFU、另一个是带器件固件升级的鼠标、这是 USB 器件端口上枚举的示例。  

    在设备管理器中、我还看到了两个 DFU。  

    如果我使用新固件进行升级、我看不到任何错误。 我必须说、当我在我的唯一计算机上运行时、我从未遇到过像您这样的问题。  

    我强烈建议您解决崩溃问题、因为此示例是我们能够与您的程序进行比较的唯一参考。  

    我不知道问题的根本原因,但看到你的所有主板不能在你的大多数计算机上工作,或者只在一个时刻工作,然后在同一台计算机上失败,这真的让我感到困惑。 这是特别令人困惑的,当你说你已经有这个问题多年。  如果 ROM 引导加载程序有问题、我预计会有很多人在 e2e 论坛上抱怨。 但是、事实并非如此、您是第一个报告此类问题的人。   

    您可以在家用电脑上试用一下吗? 我想知道您是否可以在您的家用电脑上重复相同的操作?

    我真的建议您购买 LaunchPad。 如果可以、请在 LaunchPad 上运行、然后查看是否可以重复相同的操作。 对于您遇到的问题、任何工具都有价值地隔离问题。  

    您是否有 USB 分析仪? 它将有助于分析枚举期间失败的地方。  

    如果您不愿意提供 rom.c,那么您能提供一个 driverlib.lib 的编译版本,其中包含有关该问题部分的相关信息提取,以便我们可以继续解决问题吗?

    我不知道在哪里可以找到 ROM.c。 存储在 ROM 中的不仅是引导加载程序、还存储了整个外设驱动程序 API 等。  ROM 代码是很久以前、10年前发布的器件的一部分。 基于 ROM 的 USB 引导加载程序的实现与基于闪存的 USB 引导加载程序的实现类似、该引导加载程序位于 C:\ti\TivaWare_C_Series-2.2.0.295\boot_loader\bl_usb.c 中。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    崩溃意味着什么?  您可以单步执行并找出崩溃的原因和位置吗?

    调试器与 CCS 一起刷新 buttonsInit()。 可能是电路板硬故障、因为它似乎会平稳启动(通过引线指示)  

    我真的建议您购买 LaunchPad。 如果可以、请在 LaunchPad 上运行、然后查看是否可以重复相同的操作。 对于您遇到的问题、任何工具都有价值地隔离问题。  [/报价]

    我将看到我可以在这方面做什么

    您是否有 USB 分析仪? 它将有助于分析枚举期间失败的地方。  [/报价]

    我现在最好的方法是 Wireshark、但它不像是无法获取信息。 Wireshark 只会提供与 Windows 驱动程序相同的信息、因此我认为它没有太多要点。

    我不知道在哪里可以找到 rom.c。 存储在 ROM 中的不仅是引导加载程序、还存储了整个外设驱动程序 API 等。  ROM 代码是很久以前、10年前发布的器件的一部分。 基于 ROM 的 USB 引导加载程序的实现与基于闪存的 USB 引导加载程序的实现类似、该引导加载程序位于 C:\ti\TivaWare_C_Series-2.2.0.295\boot_loader\bl_usb.c
    [/quote]

    我担心差别一定太大,在 BL_USB 中,有关块大小的信息使用定义,在这种情况下,为了能够识别错误,它应该在所有计算机上都是通用的。 可悲的是,看看 bl_sub.c 似乎是一个死机。

    [报价 userid="93620" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1288504/tm4c129encpdt-dfuprog-update-failer--random-burn-failer-on-diffrent-devices/4895691 #4895691"]如果 ROM 引导加载程序有问题,我预计许多人会在 e2e 论坛抱怨。 但是、事实并非如此、您是第一个报告此类问题的人。   [/报价]

    我非常希望你会得到很多报告。 你自己说过,你知道有一些计算机的问题,这也是我们心不在焉地想的。 如果我们没有做额外的努力来修改 DLL 以写入日志,我不会得出计算机得到错误的信息的结论。 我花了几天时间才做到这一点,我想到目前为止,我们所使用的"使用另一台计算机"是我们所选择的解决方案,因为问题不是最常见的。  

    我强烈建议您解决崩溃问题,因为此示例是我们可以与您的程序进行比较的唯一参考。  [/报价]

    我已经调制了 exmaple 以防止它被粉碎。 在进行测试后、问题仍然在计算机内因错误而存在。 我将指出,该示例中的剂量在正常程序剂量能够更新的计算机上也不起作用。  

    [/quote][/quote]
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您自己说过,您知道某些计算机存在问题,这也是我们默示的想法。 如果我们没有额外的努力来修改 DLL 以写入日志,我就不会得出计算机获取错误信息的结论。

    您好!

     我从来没有说过、我知道存在一些已知的 DFU 问题、这些问题在某些计算机上无法正常工作。 我是什么时候说的? 也许你误解了我。 我说的唯一一件事是,这是我第一次遇到这样一个问题, USB DFU 不能在所有的计算机上工作,正如你所说的,它可以失败,并在一些计算机上随机传递。 失败时、ROM 引导加载程序将返回与 TM4C123器件而非 TM4C129器件匹配的闪存大小。 这是我从你那里得到的所有描述,而不是我以前从其他人那里听到的描述。  

    调试器与 CCS 一起刷新 buttonsInit()。 可能是电路板硬故障、因为它似乎会平稳启动(通过引线指示)  

    [/报价]

    您能说明链接到 button.c 文件的位置吗? ButtonInit()位于 C:\ti\TivaWare_C_Series-2.2.0.295\examples\boards\ek-tm4c1294xl\drivers\buttons.c 中。 我希望确保您正在链接到正确的文件。  

    您是否可以单步执行 ButtonsInit(),确定哪一行正在崩溃?

    您是如何运行该示例的? 您是否从最新的 TivaWare SDK 中导入此示例? 或者、您只需将源文件复制到现有项目之一并重新构建。 我建议您创建一个新的 CCS 工作区并将示例"导入"到工作区。 这是为了确保您具有正确的构建配置。  

    我将看到我可以在这方面做什么

    [/报价]

    是的。 LaunchPad 成本低。 除了当前情况、这是一个用于查看您是否可以在 Launchpad 上重现问题的关键数据点。  示例 C:\ti\TivaWare_C_Series-2.2.0.295\examples\boards\ek-tm4c1294xl\boot_demo_usb 会在 LaunchPad 上正确运行、尽管它也应该在您的自定义电路板上运行、但您认为它会在您的一侧崩溃。  

     

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

    Amit、您好!

     只是快速地思考一下。 如果擦除闪存、电路板是否曾无法枚举为任何计算机上的 DFU 器件? 当闪存被擦除时、意味着没有有效的应用程序、ROM 引导加载程序将扫描每个支持的通信接口、以便生成下载新应用程序固件的命令。

     如果您打开设备管理器并查看 Stellaris DFU 设备属性的驱动程序信息、您是否在不同的计算机之间看到相同的数据/版本?

    我对 DFU 结果也很好奇、因为您使用的是 LM Flash 程序员、而不是 dfuprog.exe。 您是否在发生故障的计算机上看到与正常工作的计算机上相同的问题?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [开始添加:6144][FLASH Top:262144][FLASH block size:1024][num flash block add:256] 

    闪存大小、块大小和增加闪存的规格都与 TM4C123GH6PM 的规格相匹配 。
    同时,相同的功能,从同一个板,从一个计算机工作返回以下:

    [开始添加:0][flash top:1048576][flash block size:16384][num flash block add:64] 


    这些 规格与  TM4C129ENCPDT 的闪存大小和闪存块大小相符、符合预期。

    [/报价]

    Amit、您好!

     我想再次回顾一下您观察到的闪存大小。 我尚未了解 为什么闪存大小 有时会匹配 TM4C123而不是 TM4C129器件、但您可以做个实验吗?

     在调用 ROM_UpdateUSB ()之前,请先从 FLASHPP 寄存器中读取 SIZE 字段,然后通过 UART 将其转储到 COM 端口。 我希望这将引导我们走向某个地方。 您说过它返回的大小等于256KB。 如果是这种情况、您为 TM4C123GH6PM 读取0x7F、而为 TM4C129ENCPDT 读取0x1FF。  

     请尽可能多地运行此程序、因为您说有时它可能在发生故障的计算机上工作、尽管它在同一台计算机上大部分时间都发生故障。 如果有时它不返回0x1FF、则可以 很好地提示出问题所在。 但是、如果始终读取0x1FF 但仍然无法通过 DFU 枚举、则 需要研究另一个区域。  

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

    Amit、您好!

     您有任何更新吗?

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

    Amit、您好!

     我没有听到你的回应。 我现在将关闭该主题。 如果您有任何更新、您可以在此处写回、该帖子将其状态更改为自动打开。 我建议您使用示波器来查看 DP 和 DM 信号、因为我看到另一位客户解决了不稳定信号问题、他们最初报告说一些 PC 在 DFU 期间工作、而其他 PC 不工作。