主题中讨论的其他器件: UNIFLASH、 SEGGER
工具/软件:
尊敬的支持:
-
ADC_TO_UART
-
SYSCTL_MCLK_syspll
-
SysTick 周期计时器
-
LaunchPad MCU 具有以下识别信息:M0G3519SX46AVGCW
-
使用以下 MCU 标识建立自己的硬件时所看到的情况MOG3519SX51C78JW
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.
工具/软件:
尊敬的支持:
您可以尝试在问题 M0 上运行这个演示代码吗? 在 SDK 中:
C:\ti\mspm0_sdk_2_05_00_05\examples\nortos\LP_MSPM0G3519\driverlib\timx_timer_mode_periodic_sleep
或者我在这里上传的同一个文件:
它将进入计时器中断状态。
MCU 仅在批次中不同。
此外、由于您的测试基于 MSPM0 SDK、因此如果有任何修改、请告诉我。
此外、请告诉我 LaunchPad 上的测试和您自己的 PCB 之间是否存在 CCS/SDK 环境差异。
我通过 LaunchPad 将硬件 (ID 0006) 连接到 CCS Studio、该 LaunchPad 上有 XDS110 探针、并执行原始的简单 SysTick 示例。 这样才能进入 ISR。 然后我回到了我们的开发环境并执行了相同的简单 SysTick 示例、它也起了作用。
然后、我尝试 在硬件 (ID 0006) 上执行测试线束项目 、其中简单的 SysTick 示例刚刚起作用、但无法加载。 Test Harness 应用程序的二进制大小为 55 KB。 IDE 加载约 40KB、然后挂起。
但在我们硬件的一个单独单元 (ID 0008) 上、我们从 LaunchPad 制作了 MCU 交换、我们能够在同一环境中下载并执行测试线束应用。 我们的开发环境是 Rowley Cross Studio ARM 5.2.0、带有 GNU 编译器 14.2.1。 我们使用了交叉连接作为调试器探头。
这确实建议 CCS 配置 MCU 的特殊存储器部分以供下载和执行固件。 我 在目录 C:\ti\ccs2010\ccs\ccs_base\emulation\gel 中找到了一个*。gel 文件、它看起来会设置这些特殊区域、但我无法找到文件中导致此问题的设置的位置。
是否有办法读取存储器的所有部分、甚至读取特殊区域?
使用 CCS Studio 20.2.0
MSPM0 SDK 2_5_1_0
SYS_CONFIG 1.24.0
我通过 LaunchPad 将我们的硬件 (ID 0006) 连接到 CCS Studio、该 LaunchPad 上有一个 XDS110 探针、并执行原始的简单 SysTick 示例。 这样才能进入 ISR。 然后我回到了我们的开发环境并执行了相同的简单 SysTick 示例、它也起了作用。
中断问题似乎已解决、这可能是由硬件引起的。
然后我尝试 在我们的硬件 (ID 0006) 上执行我们的测试线束项目 、其中简单的 SysTick 示例刚刚起作用、但加载失败。 Test Harness 应用程序的二进制大小为 55 KB。 IDE 将加载约 40KB、然后挂起。
尝试低速 SWD。
尝试使用较短的 SWD 电缆。
检查 ID 0006 SWD 信号波形、尝试确认 SWD 上是否有很多噪声。
在下一个编程之前、请尝试运行恢复出厂设置以恢复器件。
我们的开发环境是带有 GNU 编译器 14.2.1 的 Rowley Cross Studio ARM 5.2.0。 我们使用交叉连接作为调试器探头。
我对这些工具链没有任何经验。
是否有办法可以读取内存的所有部分、甚至是特殊区域?
您可以尝试使用 TI.com 中的 Uniflash 使用 XDS110 将所有存储器下载到 txt 文件。
此致、
Helic
您好、Helic、
对于我们来说、这不是一个解决方案、特别是在目前我们需要对硬件进行两次编程才能使其正常工作的生产环境中。
经过进一步调查、为了使我们的测试线束在新提供 MCU 的情况下正常工作、或执行恢复出厂设置、并解决加载固件和在 LaunchPad 或硬件上运行中断的问题、我们需要首先从 SDK 加载“开箱即用“示例。
这建议 Code Composer Studio 在加载期间正确设置一个存储器段以使其正常工作。 您能否确定此处理器的所有特殊存储器区域以及任何可用于介绍这些部分的文档。 我只知道从 0x41C00000 到 0x41C00020 的 NONMAIN 区域
我还尝试获取 MCU 的存储器转储并使用 UniFlash 工具将其保存到一个文件 中、但会持续崩溃、如附件中所示。

这已成为公司面临的一个关键问题
此致、
Jes
我还尝试了获取 MCU 的内存转储并使用 UniFlash 工具将其保存到文件 中、但会持续崩溃、如附件中所示。
尝试两次或三次、查看是否有任何错误。
使用 Uniflash 第一次读取时很常见、无法正常工作。
经过进一步调查、为了使我们的测试线束在新源 MCU 下正常工作或执行恢复出厂设置、并解决加载固件和在 LaunchPad 或硬件上使中断工作的问题、我们需要首先从 SDK 加载“开箱即用“示例。 [/报价]在您自己的固件有助于解决这些问题之前、先尝试从 SDK 进行编程和编写代码?
这是不正常的。
您在工厂中使用的编程工具是什么?
这样确实建议 CCS 配置 MCU 的特殊存储器部分、以便其下载和执行固件。 我 在目录 C:\ti\ccs2010\ccs\ccs_base\emulation\gel 中找到了一个*。gel 文件、它看起来会设置这些特殊区域、但我无法找到文件中导致此问题的设置的位置。您能告诉我这些 gel 文件中的哪些步骤吗?
也许、此处有一个函数会影响程序步骤、但这取决于您是否启用它(默认情况下禁用)
和调试器还将在编程之前尝试复位 MSPM0:
[/quote]
Helic Chi,
您在工厂中使用的编程工具是什么?
我们会在工厂中将映像 BSL 到 MCU。 这一过程仍有待验证。
我成功地使用 SEGGER 工具、将运行我们的测试线束应用的工作和非工作 MCU 的内存转储。 我看到 PPB 区域 0xE0000000 size=“0x1000000" 在“在工作和不工作的 MCU 之间的区域有所不同。 这是否是问题的根源? 将在该区域中加载矢量表偏移量。

如前文所述 、我们的开发环境是带有 GNU 编译器 14.2.1 的 Rowley Cross Studio ARM 5.2.0。 我们使用了交叉连接作为调试器探头。 我发现、如果我使用连接到同一 IDE Rowley Cross Studio 的 SEGGER j-Link、新源 MCU 上的测试线束将正确执行。 我已经与 Rowley 谈论过这个问题、他们认为这与调试器探针无关;他们确实说 TI 为他们提供了一个、“。 FLM“文件、用于执行闪存编程。 您是否有关于此文件的其他信息? 我在过去一周中发现的其他信息是、我们能够对 80 引脚变体进行编程、而不会在我们的开发环境中出现问题。
[引述 userid=“571933" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1537177/mspm0g3519-unable-to-enter-into-any-isr-with-newly-sourced-mcu-s-but-firmware-works-without-fault-on-launchpad/5936686您能告诉我这些 gel 文件中的哪些步骤吗?
也许、此处有一个函数会影响程序步骤、但这取决于您是否启用它(默认情况下禁用)
[/报价]我希望你能为我提供这个答案。 使用 CCS 工具、可通过哪个配置来对 PPB 区域进行编程?
此致、
Jes
我希望您能为我提供这个答案。 使用 CCS 工具、可在哪个配置下对 PPB 区域进行编程?
https://www.ti.com/lit/an/slaaeo5/slaaeo5.pdf
1.2 处于空白/低功耗状态的 MSPM0 的行为
我不确定您的问题是由这种低功耗还是空白芯片状态引起的。
您可以尝试一下第 1.2 节中的说明吗?