elmot / clion-embedded-arm

OpenOCD + STM32CubeMX support for CLion
https://blog.jetbrains.com/clion/2017/12/clion-for-embedded-development-part-ii
Other
170 stars 29 forks source link

Cannot point to OpenOCD home on Ubuntu 16.04 Desktop and CLion 2017.3 #59

Closed belussi closed 6 years ago

belussi commented 6 years ago

Expected Behavior

User can point to OpenOCD home directory on Linux

Actual Behavior

Getting "OpenOCD Home is invalid" when pointing to OpenOCD home. image

Directory content:

total 3292
lrwxrwxrwx 1 kamil kamil      17 gru  4 21:15 libftdi1.so -> libftdi1.so.2.2.0
lrwxrwxrwx 1 kamil kamil      17 gru  4 21:15 libftdi1.so.2 -> libftdi1.so.2.2.0
-rw-r--r-- 1 kamil kamil  150728 lis 10 12:31 libftdi1.so.2.2.0
lrwxrwxrwx 1 kamil kamil      25 gru  4 21:15 libhidapi-hidraw.so -> libhidapi-hidraw.so.0.0.0
lrwxrwxrwx 1 kamil kamil      25 gru  4 21:15 libhidapi-hidraw.so.0 -> libhidapi-hidraw.so.0.0.0
-rw-r--r-- 1 kamil kamil   26632 lis 10 12:31 libhidapi-hidraw.so.0.0.0
-rw-r--r-- 1 kamil kamil   31744 lis 10 12:31 librt-2.24.so
lrwxrwxrwx 1 kamil kamil      13 gru  4 21:15 librt.so -> librt-2.24.so
lrwxrwxrwx 1 kamil kamil      13 gru  4 21:15 librt.so.1 -> librt-2.24.so
lrwxrwxrwx 1 kamil kamil      16 gru  4 21:15 libudev.so -> libudev.so.1.6.5
lrwxrwxrwx 1 kamil kamil      16 gru  4 21:15 libudev.so.1 -> libudev.so.1.6.5
-rw-r--r-- 1 kamil kamil  131344 lis 10 12:31 libudev.so.1.6.5
lrwxrwxrwx 1 kamil kamil      19 gru  4 21:15 libusb-0.1.so -> libusb-0.1.so.4.4.4
lrwxrwxrwx 1 kamil kamil      19 gru  4 21:15 libusb-0.1.so.4 -> libusb-0.1.so.4.4.4
-rw-r--r-- 1 kamil kamil   28872 lis 10 12:31 libusb-0.1.so.4.4.4
lrwxrwxrwx 1 kamil kamil      19 gru  4 21:15 libusb-1.0.so -> libusb-1.0.so.0.1.0
lrwxrwxrwx 1 kamil kamil      19 gru  4 21:15 libusb-1.0.so.0 -> libusb-1.0.so.0.1.0
-rw-r--r-- 1 kamil kamil  139744 lis 10 12:31 libusb-1.0.so.0.1.0
-rwxr-xr-x 1 kamil kamil 2842912 lis 10 12:31 openocd

Steps to Reproduce the Problem

  1. Create OpenOCD configuration for new project.

Specifications

elmot commented 6 years ago

OpenOCD requires both bin and share/openocd/scripts folders in the structure. Most probably your OpenOCD setup is not complete. How does it look like on my Windows:

+---bin
+---drivers
|   +---FTDI CDM v2.08.28 Certified
|   |   +---amd64
|   |   +---i386
|   |   \---Static
|   |       +---amd64
|   |       \---i386
|   +---ST-Link
|   |   +---amd64
|   |   \---x86
|   +---WinUSB
|   |   +---amd64
|   |   \---x86
|   \---WinUSB_Mini
+---QuickSetup
\---share
    \---openocd
        +---contrib
        |   +---libdcc
        |   +---loaders
        |   |   +---checksum
        |   |   +---debug
        |   |   |   \---xscale
        |   |   +---erase_check
        |   |   +---flash
        |   |   |   +---at91sam7x
        |   |   |   +---fm4
        |   |   |   +---fpga
        |   |   |   +---kinetis
        |   |   |   +---kinetis_ke
        |   |   |   \---xmc1xxx
        |   |   \---watchdog
        |   +---remote_bitbang
        |   +---rpc_examples
        |   +---rtos-helpers
        |   \---xsvf_tools
        +---OpenULINK
        \---scripts
            +---board
            +---chip
            |   +---atmel
            |   |   \---at91
            |   +---st
            |   |   +---spear
            |   |   \---stm32
            |   \---ti
            |       \---lm3s
            +---cpld
            +---cpu
            |   \---arm
            +---fpga
            +---interface
            |   \---ftdi
            +---target
            +---test
            \---tools

On *nix it should look very similar way

belussi commented 6 years ago

Hi, Thanks for your reply. I'm using standard ARM-MCU-Eclipse plugin installation and I see that 'scripts' directory is located directly under OpenOCD home directory. There is no 'share' at all.

kamil@kamil-Latitude-E7450:~/workspace/same70-base$ ls /opt/gnu-mcu-eclipse/openocd/0.10.0-5-20171110-1117/ bin contrib doc gnu-mcu-eclipse info licenses man OpenULINK README.md scripts

I have created it manually and it worked.

elmot commented 6 years ago

Sorry, my plugin does not support that (yet?). Since you use ubuntu, try to install standard openocd distribution via sudo apt-get install openocd

elmot commented 6 years ago

@belussi, looks like you are trying to use this stuff with Microchip MCUs. Please let me know if you gain any success or not.

belussi commented 6 years ago

Flashing seems to working fine. But I get this when trying to debug:

Error during pretty printers setup: Undefined info command: "pretty-printer". Try "help info". Some features and performance optimizations will not be available. info pretty-printer Undefined info command: "pretty-printer". Try "help info". Debugger connected to tcp:localhost:3333

It seems to be python module, so I will try to install it.

elmot commented 6 years ago

Looks like you are using very old gdb. Try version 8 or at least 7.

belussi commented 6 years ago

Hi,

My SAME70 seems to be working fine with your plugin.

mintisan commented 6 years ago

It works for me with the directory you mentioned, thanks. @elmot

I used openocd binary from https://github.com/runtimeco/openocd-binaries for macOS, http://gnutoolchains.com/arm-eabi/openocd/ for Windows.

elmot commented 6 years ago

I got several requests to fix this through private channels.

mintisan commented 6 years ago

What else do you need except for openocd binary file? Why need the structure completely?

elmot commented 6 years ago

Bunch of scripts.

keatis commented 6 years ago

Some unofficial packages do not have share/ folder, but have scripts/right at top level.

As a workaround on Windows, just copy whole scripts/ folder to OPENOCD_HOME/share/openocd, so that there's OPENOCD_HOME/share/openocd/scripts/board folder. Or make a link (i didn't try this).

On *nix just make a symlink with smth like

cd OPENOCD_HOME && mkdir -p share/openocd && cd $_ && ln -s ../../scripts