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.

[参考译文] MSP430FR2355:正在停止调试器、查看内存浏览器并尝试重新启动?

Guru**** 2585275 points
Other Parts Discussed in Thread: MSP430FR2355, MSP430FR5969

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/966686/msp430fr2355-stopping-debugger-viewing-memory-browser-and-trying-to-restart

器件型号:MSP430FR2355
主题中讨论的其他器件: MSP430FR5969

有人能告诉我通过调试器运行应用程序、停止它以查看内存浏览器并尝试重新启动时是否有问题吗??...每次我这么做时, 我将调试器重置为代码开头并再次点击“运行”...它似乎正在运行,但我无法再设置断点或任何内容。  我必须重新加载固件才能到达任何地方

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

    您好!  

    我已经使用具有 CCS9.10/win10 64位的 MSP430FR2355 launchpad 测试了 TIRex 的示例代码。 这不能重复您的情况。 在通过内存浏览器进行软件重置或硬件重置后、一切都正常。  

    请检查您的环境并测试示例代码、以防您自己的代码出现问题。  

    霍肯

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

    无需提供更多信息...查看内存浏览器会在目标上停止调试器,从该状态开始,您甚至无法设置简单的断点...必须重新加载代码

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

    我也没有观察到这种症状。 您正在读取什么内存? 我真的不相信存储器浏览器能够读取具有副作用的外设寄存器、所以这可能是需要考虑的问题。

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

    它位于0x1800附近的永久信息中

    #pragma DATA_SECTION (DEAL_Info、".info")
    char permany_Info[5]={[0 ... 4]= 0xFF};
    #pragma RETAIN (DEAL_Info)
    
    #pragma DATA_SECTION (白名单、".info")
    char 白名单[HASE_NOM_SENSORS]={[0 ... (HASH_NOW_SENSORS - 1)]= 0xFF};
    #pragma RETAIN (白名单)
    

    当我将节点加入到客户端或在网络中移动数据时、这两个部分会被修改。  当我在调试代码时、如果我断开某个位置、我需要检查这些区域以查看我可能打开的通道。  我在这一空间看,然后尝试继续使用调试器,我似乎知道运行时间更长..... 现在、我假设我的代码可以以这样的方式编写、以便在调试器停止时导致代码丢失 ISR 或不清除数组、并使代码在某个位置闪烁到空间???  无论如何、我发现我再次单击"Run"、但如果我尝试在这之后放置一个断点、则不会执行该操作。  我被强制重新加载代码。

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

    我没有 MSP430FR2355、而是在 CCS 中使用 MSP430FR5969进行了调查  10.1.1.00004。使用了一个简单的程序、它使 TIMERB1_ISR 切换 LED。

    如果显示的存储器浏览器从地址 0x01800开始( 即信息存储器(FRAM)的起始地址)、则程序在恢复时继续正常运行:

    如果暂停后、存储器浏览器会向上滚动、以便地址0x01740为起始地址、则在恢复时程序不再正确执行、因为 LED 不再切换:

    使用的示例不访问信息存储器。

    [引用 user="Steve Wenner">在我查看此空间的那一刻、然后尝试继续使用调试器、我似乎知道运行时间更长在您的故障情况下、存储器浏览器中显示了哪些地址范围?

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

    0x1800及以上

    e2e.ti.com/.../Mem.docx

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

    [引用 user="Steve Wenner">我被迫重新加载代码。在对我的示例进行进一步调查时发现、使用内存浏览器的行为可能会损坏 FRAM 中的程序。

    可以使用 Run -> Load -> Verify Program 菜单选项来验证程序是否完整。

    验证从地址0x01800开始的存储器浏览器显示时通过的程序、此时我可以暂停并恢复继续运行的程序。

    但是、在程序暂停的情况下:

    a.在"Memory Browser"窗口中向上移动光标、将显示的第一个地址从0x01800更改为0x017E8。

    B.在不恢复方案的情况下,进行了另一次失败的核查,并报告:

    [引用] MSP430:文件加载器:验证失败:地址0x0FF80处的值不匹配请验证目标存储器和存储器映射。[/quot]您能否在显示的存储器浏览器中执行验证程序、并查看是否报告了验证失败?

    不确定我是否创建了相同的故障。

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

    我运行了该应用程序、并在打开了 mem 浏览器的0x1800时暂停了该应用程序、并且在执行运行-加载-验证时出现错误

    请参阅 attachmente2e.ti.com/.../7077.Mem.docx

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

    [引用 user="Steve Wenner">当我将节点加入客户端或在网络中移动数据时,这两个部分会被修改。  当我在调试代码时、如果我断开某个位置、我需要检查这些区域以查看我可能打开的通道。  在我观察这个空间的那一刻、然后尝试继续使用调试器、我似乎知道运行时间更长验证错误中报告的错误的地址是0x01810、它是信息内存中的一个初始化部分、正在运行的程序会修改该部分。 因此、信息存储器中的验证错误不是程序损坏的迹象。

     如 CCS/NFC-DATALOGGER-EVM 所述:CCS 9.1验证程序是否可以配置为检查所有部分、而不是在第一个错误时停止? 验证在第一个错误上停止、这使得调试此类问题变得困难。

    您能否:

    a.下载程序、但内存浏览器未显示。

    b.在以下情况之前暂停程序:IS 已修改  信息存储器中的 permany_Info[]和白名单[]的内容。

    c.执行验证。

    d.打开地址0x01800处的内存浏览器。

    e.执行另一次验证。

    C 和 E 之间的区别是尝试并确定内存浏览器是否破坏程序。

    调试问题的解决方法可能是尝试使用表达式视图仅显示 permany_Info 和白名单数组的内容。 而不是内存浏览器。

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

    表达式窗口的工作方式...

    案例1:只擦除主存储器(Project - Properties - Debug - MSP430 Flash Settings)……

    执行步骤 A - C。 设置 program_Info (0x1810)后立即设置断点。  查看内存正常。  按运行按钮、代码不会在下一行断点处停止。  在 LPM3等待时、按下暂停代码停止、播放按钮呈绿色、代码停止。  然后,我点击“重置”,绿色的“播放”按钮永远不会再次突出显示(只突出显示暂停和停止),代码也不会返回到开头......

    案例2: 擦除主内存、信息内存和受保护内存(项目-属性-调试- MSP430闪存设置)....

    与情况1相同...重置按钮不再重置代码

    案例3:  擦除主内存、信息内存和受保护内存 (项目-属性-调试- MSP430闪存设置)....

    保持内存浏览器打开并处于最前沿...下载代码。  转至(运行-加载-验证)...立即获取错误:

    MSP430:文件加载器:验证失败:地址0x08104处的值不匹配请验证目标存储器和存储器映射。


    地址看起来是随机的...上次看到0x08114。

    这里发生什么事了?  有时,当我加载应用程序并在启动任何内容之前查看内存浏览器时,永久性信息中似乎有0或其他数字,但我设置的所有其他信息内存块看起来都很好。。。

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

    [引用用户="Steve Wenner]Address 似乎是随机的...上次看到0x08114。是的、我还看到了多次尝试时报告的验证失败更改地址。

    [引用用户="Steve Wenner">这里会发生什么情况?  有时,当我加载应用程序并在启动任何内容之前查看内存浏览器时,永久性信息中似乎有0或其他数字,但我设置的所有其他信息内存块看起来都很好...我还没有确定到底发生了什么。

    虽然我使用内存浏览器的行为破坏了 FRAM、但现在不确定是因为验证错误。 这是因为:

    1. 可以启动下载程序的调试会话、并在显示内存浏览器后收到验证错误。
    2. 终止调试会话。
    3. 执行 手动启动、但下载程序。 执行验证、然后通过验证。

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

    [引用用户="Steve Wenner">这里发生了什么?不确定我是否已经完全解释了您看到的问题、但提高 了 CCS/MSP-EXP430FR5969:如果 CCS 调试器访问 MSP430 FRAM 器件中受保护的 ROM BSL 区域、调试程序将失败

    我打算在 CCS 论坛上提出问题、但不知怎么会在 MSP 论坛上提出问题。

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

    您好!  

    我刚刚尝试了一些行动。 (Win10/CCS9.10/MSP430FR2355 LaunchPad/UART_01示例代码)

    我刚刚在 LPM3之前的任何点上添加了一个断点、当中断时、进行存储器浏览@0x1800。 并从内存浏览器读取上部或下部内存。 然后从断点运行、它可以正常运行。  

    我认为这不会通过内存浏览器的操作导致任何复位。 唯一的考虑因素是在刷新存储器期间、数据连接很容易由于大数据传输而损坏、这会导致 CPU 无法正确保持、然后在执行操作后 PC 不匹配、因此调试器请求重新加载。  

    为了检查是否存在任何 FRAM 问题或调试器问题、您可以读取 FRAM、然后与原始 FRAM 进行比较。