Eclipse from Box to Debug

From Gumstix User Wiki
Revision as of 20:18, 10 November 2010 by Gaoerer (Talk | contribs) (Setting up Minicom)

Jump to: navigation, search

This page is meant to serve as a quickstart guide that takes you from opening an Overo + Expansion out of the Box up to Remote Debugging with Eclipse on Ubuntu.

Setting up Minicom

  1. sudo apt-get install minicom
  2. sudo minicom -s
  3. [Serial port setup] -> A - Serial Device -> /dev/ttyUSB0 -> [enter]
  4. [Serial port setup] -> F - Hardware Flow Control -> NO -> [enter]
  5. [Modem and dialing] -> A - Init String -> [empty] -> [enter]
  6. [Modem and dialing] -> B - Reset String -> [empty] -> [enter]
  7. [Modem and dialing] -> K - Hang-up String -> [empty] -> [enter]
  8. [Save as dfl]
  9. [Exit from Minicom]

On this site in the lowest consumption 60 USD calvin klein Underwear Known as the world's finest designer underwear, Calvin Klein Underwear was formed in 1982 and would forever alter the way the world viewed-and bought - Men's Calvin klein underwear. On this site in the lowest consumption 60 USD Once a utilitarian product, Men's calvin klein underwearsuddenly became an object of desire. New advertising campaigns communicated the message of the updated, sexy sensibility that distinguished ck underwear from all others. A complete woMen's underwear line followed in 1983. Each season since then, the brand has delivered a new line including basics, basics in fashion colors, as well as fashion-forward, trendy ck underwear to their customers. Defined by iconic simplicity and subtle seduction, there is nothing like a Calvin Klein design.

Power & Boot

  1. Plug the gumstix into the expansion board
  2. Plug the expansion board into your ethernet router / switch / whatever
  3. Plug in the micro-SD
  4. Plug a mini-usb plug (as you would use with a camera) into the mini-usb port labeled console
  5. sudo minicom -o # disables modem and dialing settings
  6. Plug in the 5v power supply
  7. Watch the system boot

OpenEmbedded [OE] Toolchain on Ubuntu

Official (and Thorough) Documentation

   sudo apt-get install git-core
   cd
   mkdir -p ~/overo-oe/user.collection
   cd ~/overo-oe
   git clone git://gitorious.org/gumstix-oe/mainline.git org.openembedded.dev
   cd org.openembedded.dev
   git checkout --track -b overo origin/overo
   cd ~/overo-oe
   git clone git://git.openembedded.net/bitbake bitbake # just try this again if it hangs up
   cd bitbake
   git checkout 1.8.18
   cd ~/overo-oe
   cp -r org.openembedded.dev/contrib/gumstix/build .
   cp ~/.bashrc ~/bashrc.bak
   cat ~/overo-oe/build/profile >> ~/.bashrc
   source ~/overo-oe/build/profile

The important part:

   bitbake gdb-cross

Gumstix Setup

From the previous step your Gumstix should have started configuring itself and hopefully is done, leaving you at the login prompt

   root
   passwd #(change your password)
   ifconfig # configure as necessary. I assume that your IP address is 192.168.1.150
   opkg install gdbserver

Hello World!

This is all taking place on the Ubuntu system (192.18.1.100)

hello.c

   mkdir ~/overo-oe/Code/
   cd ~/overo-oe/Code/
   vim hello.c
   #include <cstdio>
   
   int main(int argc, char ** argv) {
     printf("Hello World!\n");
   }

Makefile

   vim Makefile
   CGTOOLS = ~/overo-oe/tmp/cross/armv7a
   
   # Compiler and Linker flags
   C_FLAGS += -Wall -g
   CPP_FLAGS += -Iinclude
   LD_FLAGS += -g -lm
   
   # compiler
   CC = $(CGTOOLS)/bin/arm-angstrom-linux-gnueabi-g++ $(C_FLAGS) $(CPP_FLAGS) -c
   LINK = $(CGTOOLS)/bin/arm-angstrom-linux-gnueabi-g++ $(LD_FLAGS)
   STRIP = $(CGTOOLS)/bin/arm-angstrom-linux-gnueabi-strip 
   
   .PHONY: all clean
   all: clean hello
   clean:
        rm hello *.o -rf
   hello: hello.o
        $(LINK) -o hello hello.o
        cp hello hello.debug
        $(STRIP) hello
   hello.o: hello.c
        $(CC) -o hello.o hello.c

Compile

Now we'll compile the program with the debug symbols, strip the symbols, and copy it to the gumstix (192.168.1.150)

   make
   cp ./hello ./hello.debug
   ~/overo-oe/tmp/cross/armv7a/bin/arm-angstrom-linux-gnueabi-strip ./hello
   
   ./hello # fails because it can't run on your architecture
   ssh-copy-id root@192.168.1.150
   scp ./hello root@192.168.1.150:/hello #
   ssh root@192.168.1.150 "/hello" # succeeds
   ssh root@192.168.1.150 "gdbserver 192.168.1.100:43276 /hello" # starts remote gdb
   # use ctrl-z and then bg 1 to background this process, or run it from another ssh session
   ~/overo-oe/tmp/cross/armv7a/bin/arm-angstrom-linux-gnueabi-gdb --symbols ./hello.debug
   target remote 192.168.1.150:43276
   continue

Debug

Now we can introduce a bug and test again

   mkdir ~/overo-oe/Code/
   cd ~/overo-oe/Code/
   vim hello.c
   #include <cstdio>
   
   int main(int argc, char ** argv) {
     printf("Hello World!\n");
     char * h;
     delete h;
     delete h;
   }

Eclipse

We explore how to use eclipse.

I'm currently grokking through http://old.nabble.com/Solution:-Using-Eclipse-CDT-for-Gusmtix-development-tt18251552.html#a18251552 and http://krupets.com/index.php?option=com_content&view=article&id=18&Itemid=20

Plugins

Update sites and plugins

Configuration

Navigating through menus

Remote Deployment Debugging

Having it somehow all come together to this culminating point