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.

Problems with the msp432 linux support package

Other Parts Discussed in Thread: SEGGER

I've downloaded msp432-gcc-1.0.0.1-linux-support-package-installer.run and am trying to get the XDS110-ET on the MSP-EXP432P401R Launch Pad to work.

If I fire up gdb_agent_console with no LD_LIBRARY_PATH, I see the following...

No LD_LIBRARY_PATH
zot (16): ./gdb_agent_console xds110_msp432_jtag.dat
Successfully configured xds110_msp432_jtag.dat
CPU Name Port
-------- ----
cortex_m4_0 :55000

Starting all cores
CPU Name Status
-------- ------
cortex_m4_0 Waiting for client
cortex_m4_0 Client connected...Connecting to Target
cortex_m4_0 - Processor type =CORTEX_MXX (Little endian)
cortex_m4_0 - Target device is connected
Unable to load libctools.so, Hardware breakpoints not available.
Target connected...Starting server


Can't find libctools.so.

zot (22): ldd gdb_agent_console
linux-gate.so.1 => (0xf77d6000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf77b3000)
libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf76ca000)
libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf76ad000)
libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf7691000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf74e2000)
/lib/ld-linux.so.2 (0xf77d7000)
libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf749c000)

no sign of libctools.so.

I've also tried pointing LD_LIBRARY_PATH at analysis/bin and drivers in my CCS 6.2 install tree but no change in results.

How can I put a gdb proxy on the XDS110 port?

thanks,

eric

 

  • Hi Eric,

    Let me give this a try and I'll get back to you.

    Regards,

    David
  • thanks david,

    please let us know what version of Linux you are running on so we can tell if we have different types of oranges.

    I'm running Ubuntu 14.04  64 bit with i386 enabled as a foreign architecture.

    CCS is v6.2.0.48

  • Hi Eric,

     I'm running Ubuntu 12.04 32 bit and with CCS v6.1.3 and I got a similar behavior.

    I can connect to the target, stop and run but I could not set any breakpoints.

    And I found out that some DLL are missing from the standalone package. A bug has been filed but I do not have a timeline on the resolution. please take a look at this thread e2e.ti.com/.../522572

      Regards,

        David

  • "I can connect to the target, stop and run but I could not set any breakpoints (I also confirmed that this works on windows)."

    Not sure why the above didn't appear in the forum but did show up in the email version.

    Anyway...  When you say it works on Windows do you mean the gdb_agent on windows talking to the XDS 110 works properly?

    That you are able to set breakpoints?

    thanks,

    eric

  • Hi Eric,

     That's correct. I had to add it in my debug configuration.

    Best regards,

      David

  • For what is worth, I see the missing lib in CCS 6.2 for linux

    $ find . -name 'libctools.so'
    ./ccsv6/ccs_base/emulation/analysis/bin/libctools.so
  • Rick Kimball said:
    For what is worth, I see the missing lib in CCS 6.2 for linux

    $ find . -name 'libctools.so'
    ./ccsv6/ccs_base/emulation/analysis/bin/libctools.so

    I found that as well.  I have added that lib in various ways and it still doesn't work.  According to XDS GDB Agent (processors.wiki.ti.com/index.php/XDS_GDB_Agent), one should set LD_LIBRARY_PATH to contain ccs_base/emulation/drivers and ccs_base/emulation/analysis/bin directories.  I did and it doesn't help.  (Why?  Because TI bypassed the normal library mechanisms, see below).

    what is even stranger is I looked at what libraries are linked into gdb_agent_console:

    zot (17): ldd gdb_agent_console
        linux-vdso.so.1 =>  (0x00007fff399fe000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f1e9141a000)
        libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f1e91115000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f1e90eff000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f1e90ce1000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f1e9091b000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f1e9163b000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f1e90615000)

    notice libctool doesn't show up.  This is pretty weird.  I also did a search for strings inside of gdb_agent_console and see:

    /emulation/drivers//
    CTOOLS_BIN
    PATH
    Reusing environment from previous session.
    libctools.so
    Failed to load ctools library
    ctoolsBinDir
    pathinfo.ini

    So it looks like the code is doing somekind of hard coded library open bypassing all the normal mechanisms.  So it is very unclear how to teach it where to find it.

    Other library names buried inside gdb_agent_console are:

    libgdb_agent.so
    libxdsboard.so
    libxdsfast3.so
    libti_targetdb_parser.so
    libmsp430.so
    libctools.so
    libtargetadapter.so
    libTargetAdapter.so
    libFlashMSP432.so
    libjioxds110

    It looks like there are various local (ie. some where in the install directory tree) places that it looks, rather than following normal library path search.

  • Maybe you should try running gdb_agent_console using strace and see exactly which directories and files it is trying to open.

    -rick

  • Hi Rick,

    I'm seeing this problem as well. Here's more details, including the strace output.

    test group 3

    • SOFTWARE
      • gdb-agent-console
        • Versions tested: 6.0.407.3, 6.0.407.6
        • environment variable: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/ti-emu/ccs_base/common/bin
        • data file: /opt/ti-arm-lsp/emulation/common/uscif/xds110_msp432_jtag.dat
    • FAILURE: libti_targetdb_parser.so missing

      • + - error msg
        • Failed to load libti_targetdb_parser.so
        • Unable to find required libraries.  Check installation
      • strace
        • strace ./gdb_agent_console /opt/ti-arm-lsp/emulation/common/uscif/xds110_msp432_jtag.dat
        • sample output
          • open("/opt/ti-emu/ccs_base/common/uscif/../../common/bin/./libxerces-c_2_8.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/opt/ti-emu/ccs_base/common/uscif/../../common/bin/../../common/uscif/libxerces-c_2_8.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/opt/ti-emu/ccs_base/common/uscif/../../common/bin/../../common/bin/libxerces-c_2_8.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/opt/ti-emu/ccs_base/common/uscif/./libxerces-c_2_8.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/opt/ti-emu/ccs_base/common/uscif/../../common/uscif/libxerces-c_2_8.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/opt/ti-emu/ccs_base/common/uscif/../../common/bin/libxerces-c_2_8.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/opt/ti-emu/ccs_base/common/uscif/../../DebugServer/drivers/libxerces-c_2_8.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/opt/ti-emu/ccs_base/common/uscif/../../emulation/analysis/bin/libxerces-c_2_8.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("tls/i686/sse2/cmov/libxerces-c_2_8.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("tls/i686/sse2/libxerces-c_2_8.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("tls/i686/cmov/libxerces-c_2_8.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("tls/i686/libxerces-c_2_8.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("tls/sse2/cmov/libxerces-c_2_8.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("tls/sse2/libxerces-c_2_8.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("tls/cmov/libxerces-c_2_8.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("tls/libxerces-c_2_8.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("i686/sse2/cmov/libxerces-c_2_8.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("i686/sse2/libxerces-c_2_8.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("i686/cmov/libxerces-c_2_8.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("i686/libxerces-c_2_8.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("sse2/cmov/libxerces-c_2_8.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("sse2/libxerces-c_2_8.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("cmov/libxerces-c_2_8.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("libxerces-c_2_8.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/opt/ti-emu/ccs_base/common/bin/libxerces-c_2_8.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 4 fstat64(4, {st_mode=S_IFREG|0644, st_size=52606, ...}) = 0 mmap2(NULL, 52606, PROT_READ, MAP_PRIVATE, 4, 0) = 0xfffffffff777b000 close(4)                                = 0 access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory) open("/lib/i386-linux-gnu/libxerces-c_2_8.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/usr/lib/i386-linux-gnu/libxerces-c_2_8.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/lib/libxerces-c_2_8.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/usr/lib/libxerces-c_2_8.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) munmap(0xf777b000, 52606)               = 0 munmap(0xf73bd000, 78212)               = 0 fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 3), ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xfffffffff7787000 write(1, "Failed to load libti_targetdb_pa"..., 40Failed to load libti_targetdb_parser.so ) = 40 close(3)                                = 0 write(1, "Unable to find required librarie"..., 55Unable to find required libraries.  Check installation ) = 55

      • libxerces-c_2_8.so not found
        • open("/opt/ti-emu/ccs_base/common/bin/libxerces-c_2_8.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)

          $ ls /opt/ti-emu/ccs_base/common/bin/ libftd2xx.so.1.3.6  libftdi.tar.gz            libusb-1.0.so  libxerces-c.so     libxerces-c.so.28.0 libftdi1.so         libti_targetdb_parser.so  libusb.tar.gz  libxerces-c.so.28

          $ ldd /opt/ti-emu/ccs_base/common/bin/* /opt/ti-emu/ccs_base/common/bin/libftd2xx.so.1.3.6: linux-gate.so.1 =>  (0xf77c6000) libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf775f000) libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf775a000) librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xf7750000) libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf75a1000) /lib/ld-linux.so.2 (0xf77c7000) /opt/ti-emu/ccs_base/common/bin/libftdi1.so: linux-gate.so.1 =>  (0xf7763000) libusb-1.0.so => /opt/ti-emu/ccs_base/common/bin/./libusb-1.0.so (0xf7735000) libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf7579000) librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xf756f000) /lib/ld-linux.so.2 (0xf7764000) libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf7553000) /opt/ti-emu/ccs_base/common/bin/libftdi.tar.gz: not a dynamic executable /opt/ti-emu/ccs_base/common/bin/libti_targetdb_parser.so: linux-gate.so.1 =>  (0xf77d7000) libxerces-c_2_8.so => not found libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf76ca000) libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf76ad000) libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf74fe000) libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf74b8000) /lib/ld-linux.so.2 (0xf77d8000) /opt/ti-emu/ccs_base/common/bin/libusb-1.0.so: linux-gate.so.1 =>  (0xf76ef000) librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xf76bb000) libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf750c000) libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf74ef000) /lib/ld-linux.so.2 (0xf76f0000) /opt/ti-emu/ccs_base/common/bin/libusb.tar.gz: not a dynamic executable /opt/ti-emu/ccs_base/common/bin/libxerces-c.so: linux-gate.so.1 =>  (0xf777a000) libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf7336000) libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf72f0000) libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf72d2000) libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf72b6000) libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf7107000) /lib/ld-linux.so.2 (0xf777b000) /opt/ti-emu/ccs_base/common/bin/libxerces-c.so.28: linux-gate.so.1 =>  (0xf777d000) libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf7339000) libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf72f3000) libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf72d5000) libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf72b9000) libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf710a000) /lib/ld-linux.so.2 (0xf777e000) /opt/ti-emu/ccs_base/common/bin/libxerces-c.so.28.0: linux-gate.so.1 =>  (0xf77b2000) libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf736e000) libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf7328000) libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf730a000) libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf72ee000) libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf713f000) /lib/ld-linux.so.2 (0xf77b3000) 

    thanks for your help,

    Dan

    err.txt

  • Dan, I would target your response to someone at ti. I'm just a casual crash observer. maybe DavidL (2005340) could help?

    [Edit note: I can barely read in this editor, the font is so small ... .. sorry for misspelling your name Dan]

  • Thanks for the pointer to the right place. I will post directly to TI. You just seemed like a helpful (and clueful) guy :-)

  • I've recently bought the new standalone XDS110 debug probe and have connected it to my msp-exp432p401r launchpad.  I've disabled the on board XDS110-ET via pulling the jumpers.

    I've download the most current gcc support package for linux: msp432-gcc-1.1.0.1.  I've installed this into /opt/ti/ti-arm-lsp

        cd /opt/ti/ti-arm-lsp/emulation/common/uscif
        gdb_agent_console -f MSP432 xds110_msp432_jtag.dat
    

    Fires up, works.  Is on the slow side (especially vs. the Segger JLink).  Note that I didn't need to make use of any LD_LIBRARY_PATHs.

    As noted somewhere, doesn't support s/w breakpoints in Flash.    You have to use hbreak.  On the msp432 you are limited to 6 h/w break points.

    So nice job TI on fixing this and making it reasonably easy to install.

  • I've recently bought the new standalone XDS110 debug probe and have connected it to my msp-exp432p401r launchpad.  I've disabled the on board XDS110-ET via pulling the jumpers.

    I've download the most current gcc support package for linux: msp432-gcc-1.1.0.1.  I've installed this into /opt/ti/ti-arm-lsp

      cd /opt/ti/ti-arm-lsp/emulation/common/uscif
      gdb_agent_console -f MSP432 xds110_msp432_jtag.dat
    

    Fires up, works.  Is on the slow side (especially vs. the Segger JLink).  Note that I didn't need to make use of any LD_LIBRARY_PATHs.

    As noted somewhere, doesn't support s/w breakpoints in Flash.    You have to use hbreak.  On the msp432 you are limited to 6 h/w break points.

    So nice job TI on fixing this and making it reasonably easy to install.

**Attention** This is a public forum