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.

[参考译文] CCS/MSP430-GCC-opensource:gdb_agent_console 不能在 Linux 上与 MSP-exp5969 Launchpad 配合使用

Guru**** 2614905 points

Other Parts Discussed in Thread: MSP-EXP430FR5969, MSP430FR5959, MSP-FET, UNIFLASH

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/647037/ccs-msp430-gcc-opensource-gdb_agent_console-not-working-with-msp-exp5969-launchpad-on-linux

器件型号:MSP430-GCC-opensource
主题中讨论的其他器件:MSP-EXP430FR5969MSP430FR5959MSP-FETUNIFLASH

工具/软件:Code Composer Studio

本主题与 此主题接近 、但我认为 Studio 论坛更接近我的问题、而不是网络。

我有 CCSv7和 MSP-exp430fr5969 Launchpad (eZ-FET)。 它们在理想情况下匹配、我可以将项目加载并调试到目标 msp430fr5959 MCU。 我使用随 Studio 一起安装的 MSP430-gcc。

现在、我需要在没有 CCS 的情况下启动调试会话

首先、上载程序。 我安装了 MSPFlasher、工作正常。 它要求更新我的 Lauchpad 的固件。 由于 MSPFlasher 是非常新的(11月30日版本)、我接受了它、现在我很好地烧录了目标器件。 尝试返回 CCS -它也加载和调试程序。 因此固件更新不会以任何方式破坏 Launchpad。

第二、调试。 但现在我尝试启动 GDB。 我  从 MSP430-gcc 软件包(6.4.0)中的另一个终端运行 gdb_agent_console:

导出 PREF=/home/user/ti/msp430_gcc

$PREF/bin/gdb_agent_console $PREF/msp430.dat 

我看到了一个响应

已成功配置/home/user/ti/msp430_gcc/msp430.dat
CPU 名称端口
--- ---
MSP430 :55000

Starting All Cores
CPU Name Status
---(MSP430 :55000启动所有内核 CPU 名称状态) ----
MSP430正在等待客户端 

现在、我启动 A  

$PREF/bin/msp430-elf-gdb foo.elf 

在 gdb 提示中 插入命令  

(gdb)目标远程 localhost:55000 

代理服务器  gdb_agent_console 连接到 Launchpad 并立即 开始 更新固件! 更多信息。 在"更新"后、它无法正常工作。 更多信息。 尝试 将 Launchpad 与 CCS 配合使用也失败。 只有 MSPFlasher 会恢复固件、Launchpad 可能会再次使用。

gdb_agent_console 有什么问题? 还是我的故障?

msp430.dat 就是这样:

# config version=3.5
$ MSP430
MSP430_drvr=MSP430.dll
MSP430_port=TIUSB
MSP430_VCC=3.3
$/ 

但我尝试以这样的方式对其进行编辑:

# config version=3.5
$ MSP430
MSP430_drvr=/home/user/MSPFlasher_1.3.16/libmsp430.so
MSP430_port=TIUSB
MSP430_VCC=3.3
$/ 

没有变化。

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

    您好!

    您答对了;MSP-FET 调试探针中固件的更新过程是自动的、并且会自动发生。 防止这种情况发生的一种方法是从 GCC 安装覆盖 MSP430.dll。  

    我注意到的一个细节是、更新后、GDB 从连接中启动、我必须重新连接以发出相同的目标远程 localhost:55000。 检查以下顺序:

    [引用 user="GDB"]

    用户@主机:~/ti/msp430_gcc/bin ./msp430-elf-gdb
    GNU gdb (SOMNIUM Technologies Limited - MSP430-gcc 6.4.0.32) 7.11
    版权所有(C) 2016 Free Software Foundation、Inc.
    许可证 GPLv3+:GNU GPL 版本3或更高版本<gnu.org/.../gpl.html>
    这是免费软件:您可以自由地更改和重新分发它。
    在法律允许的范围内、不提供任何保证。 键入"show copying"
    和"显示保修"以了解详细信息。
    此 GDB 配置为"--host=i686-redhat-linux-target=MSP430-elf "。
    键入"show configuration"了解配置详情。
    有关错误报告说明、请参阅:
    <www.gnu.org/.../>。
    有关 GDB 手册和其他在线文档资源的信息,请访问:
    <www.gnu.org/.../>。
    如需帮助、请键入"帮助"。
    键入"apropos word"以搜索与"word"相关的命令。
    (gdb)目标远程 localhost:55000
    使用 localhost:55000进行远程调试
    忽略数据包错误、继续...
    警告:"qSupported"响应中无法识别的项目"timeout"
    忽略数据包错误、继续...
    目标的伪跟踪状态回复:QStartNoAckMode+;PacketSize=3f0

    (gdb)目标远程 localhost:55000
    使用 localhost:55000进行远程调试
    0x00004400在?? ()
    (Gdb)将拆卸-下一行设置为打开
    (gdb)斯提比
    0x00004404英寸?? ()
    => 0x00004404:35 d0 08 5a bis #23048、R5;#0x5a08

    [/报价]

    但是、我能够使用 CCS7.3与 MSP430工具链版本7.4.2进行连接、而不会出现任何问题。 它要求进行固件更新、但仅因为它是比 GCC 5.0.36提供的软件包版本更新的。

    在这种情况下、我真的无法找出您所经历的问题的根本原因。 我也会通知 MSP 团队的某个人来看看这个问题-也许他们还有其他想法。

    此致、

    拉斐尔

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

    拉斐尔

    感谢你的帮助! 很高兴见到你。 几年前、您已经为我提供了帮助。

    首先、我想澄清一下:我们能不能分别谈论 MSP430.dll 和 libmsp430..作为 Windows 和 Linux OS 的同等类别吗?

    下一步。 我们是否可以假定可以替换不同的(但在时间/版本/大小方面接近) libmsp430.so? 请查看此处:

    THU 2017年9月28日 2402176字节 ti/ccsv7/ccs_base/DebugServer/drivers/libmsp430.so
    WED 2017年9月27日 2402176字节 MSPFlasher_1.3.16/libmsp430.so

    2017年7月7日星期五 2448020字节 ti/msp430_gcc/bin/libmsp430.so

    使用 DIFF 程序检查第1个和第2个库没有差异。 我是否可以自由地将 MSP430_gcc 工具链中的库替换为 CCS 中的较新库?  不会! 我尝试运行 gdb_agent_console、但失败了

    VPE@TKM ~/ti/msp430_gcc/bin $~/ti/msp430_gcc/bin/gdb_agent_console ~/ti/msp430_gcc/msp430.dat
    错误 loadinglibmsp430.so:libmsp430.so:错误的 ELF 类:ELFCLASS64
    未能配置/home/vpe/ti/msp430_gcc/msp430.dat:无法加载 MSP430库
    
    

    ( MSP430.dat 中有变体、在 CCS 和 Flasher dirs 中向库显示)

    当我从 gcc 工具链返回到日期为7月7日星期五("最早")的库的链接 时-工程师开始执行。 并希望 "更新"固件!

    但是您关于更新后重置 GDB 会话的提示-它起作用了! 现在、我可以在 CLion 中进行调试。 很好。 我看不到反汇编、但其余的还可以。

    因此、我们遇到了这样的问题:MSP430-gcc gdb 代理需要在 我的 Launchpad 中使用较旧的固件(降级)、但它为我提供了所需的结果:使用 CLion IDE。但如果需要、每次返回 CCS 或 MSPFlasher 都会导致固件更新。 之后、工程师将再次降级。

    希望 您能从 MSP 团队获得一些答案!

    谢谢、

    尤里

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

    尤里、

    [引述 user="Iurii Vlasenko 的说法]感谢您的帮助! 很高兴见到你。 几年前、您已经为我提供了帮助。

    很高兴能与您联系。 我很高兴能提供帮助。

    [引用用户="Iurii Vlasenko"]

    使用 DIFF 程序检查第1个和第2个库没有差异。 我是否可以自由地将 MSP430_gcc 工具链中的库替换为 CCS 中的较新库?  不会! 我尝试运行 gdb_agent_console、但失败了

    VPE@TKM ~/ti/msp430_gcc/bin $~/ti/msp430_gcc/bin/gdb_agent_console ~/ti/msp430_gcc/msp430.dat
    错误 loadinglibmsp430.so:libmsp430.so:错误的 ELF 类:ELFCLASS64
    未能配置/home/vpe/ti/msp430_gcc/msp430.dat:无法加载 MSP430库 

    [/报价]

    两个库的数据路径大小不同。 我在这里进行了检查、发现了 libmsp430.so 随 CCS 一同提供的现在是64位、而 GCC 中内置的是32位。 ldd 有助于:

    [引用 user="ldd"]

    用户@主机:~/ti/msp430_gcc/bin ldd libmsp430.so
    linux-gate.so.1=>(0xf7792000)
    librt.SO.1 =>/lib/i386-linux-gnu/librt.so.1 (0xf7513000)
    libpthread.SO.0 =>/lib/i386-linux-gnu/libpthread.so.0 (0xf74f6000)
    libstdc++.SO.6 =>/usr/lib32/libstdc ++.SO.6 (0xf737e000)
    libm.so.6 =>/lib/i386-linux-gnu/libm.so.6 (0xf7329000)
    libgcc_so.1 =>/lib/i386-linux-gnu/libgcc_s.so.1 (0xf730c000)
    libc.so.6 =>/lib/i386-linux-gnu/libc.so.6 (0xf7156000)
    /lib/ld-linux.so.2 (0x56639000)
    用户@主机:~/ti/msp430_gcc/bin ldd /opt/CCS_7_3_0/ccsv7/ccs_base/DebugServer/drivers/libmsp430.so
    linux-vdso.so.1=>(0x00007fffd3ad7000)
    librt.so.1 =>/lib/x86_64-linux-gnu/librt.so.1 (0x00007faaa8d9d000)
    libpthread.SO.0 =>/lib/x86_64-linux-gnu/libpthread.so.0 (0x00007faaa8b80000)
    libstdc++.SO.6 =>/usr/lib/x86_64-linux-gnu/libstdc ++.SO.6 (0x00007faaa87fd000)
    libm.so.6 =>/lib/x86_64-linux-gnu/libm.so.6 (0x00007faaa84f4000)
    libgcc_so.1 =>/lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007faaa82de000)
    libc.so.6 =>/lib/x86_64-linux-gnu/libc.so.6 (0x00007faaa7f13000)
    /lib64/ld-linux-x86-64 SO.2 (0x00005648a91bf000)

    [/报价]

    [引用用户="Iurii Vlasenko"]

    因此、我们遇到了这样的问题:MSP430-gcc gdb 代理需要在 我的 Launchpad 中使用较旧的固件(降级)、但它为我提供了所需的结果:使用 CLion IDE。但如果需要、每次返回 CCS 或 MSPFlasher 都会导致固件更新。 之后、工程师将再次降级。

    希望 您能从 MSP 团队获得一些答案!

    [/报价]

    这是将两个不同的软件版本与 MSP-FET 一起使用的不幸场景-其固件在没有控制的情况下持续降级/升级(这也是 MSP 团队的声明)。 理想情况下、应更新 GCC 提供的库、但我需要查找负责此集成的正确人员。

    一旦找到此信息并可能提交错误报告、我将立即返回到此主题。

    给您带来的不便、我深表歉意、

    拉斐尔

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

    谢谢、Rafael!

    所以,我不得不等待,希望:)

    我的方案 现在拆分了。

    当我编辑 代码、编译代码和闪存-我使用 CLion + MSP430-gcc + MSPDEBUG 作为闪存器。 后者只能与 eZ430一起工作、所以我的目标板被连接至 eZ430编程器。  

    有时 、我很少需要分步调试。 我必须刷写程序、连接 eZ-FET 编程器、并且可以使用 gdb_agent_console 作为 GDB 存根在 CLion 中进行调试。 libmsp430.so 是32位的、正如您所发现的。

    如果我需要 CCS 进行调试(例如、使用反汇编器代码)-我必须 eZ-FET 重新刷新到64位库。 嗯,我希望不会有这样的情况:)

    谢谢、

    尤里

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

    尤里、

    CCS 基于 Eclipse、可与 GDB 良好配合使用(因此无需执行固件更新)。

    如 下面的屏幕截图所示、您必须从 CCS 应用中心安装 CDT GNU 支持、但它肯定会为您提供使用 Eclipse GUI 执行步调试的极大灵活性。  

      ↓μ A  

    其他详细信息显示在下面的参考资料中-跳过步骤2.4、因为它是通过上面的应用中心步骤完成的。  

    通过在下面的链接中使用软件包 MSPDS-OPEN-SOURCE、可以有另外一种方法来重建 libmsp430.so 的更新版本。 我从未这么做过、但我看到它支持 Linux。

    www.ti.com/tool/mspds 

    希望这对您有所帮助、

    拉斐尔

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

    尤里、

    今天发布了新的 MSP-GCC 封装。 您能否尝试一下、看看固件切换问题是否已解决?

    http://www.ti.com/tool/MSP430-GCC-OPENSOURCE 

    此致、

    拉斐尔

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

    拉斐尔

    我当然可以、我也想! 谢谢!

    嗯、它起作用了。 也就是:新的 gdb_agent_console 升级程序 myeZ-FET、上次似乎 降级了。 我使用 MSP430-elf-gdb 执行了一个短命令行调试会话。

    然后、我使用 MSPFlasher 通过相同的 eZ-FET 进行烧写-好的! 下一步是使用 CLion 调试新的 gdb_agent_console -尽管必须更深入地进行测试、但也是如此。  我要做一些其他的工作直到星期天,所以它会有点挂起。

    但是、总的来说、我认为问题已经解决了。 感谢您和 MSP430-GCC 团队!

    谢谢、

    尤里

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

    我还注意到、此版本具有64位 Linux 版本、可能与最新的 libmsp430.so 兼容、随 Uniflash 和 CCS 等其他产品一起提供。

    我没有时间测试所有这些、但我将在第一次机会时进行测试。

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

    拉斐尔

    我在 临时创建的博客中报告了我的所有结果。