Search This Blog

Showing posts with label Olimex. Show all posts
Showing posts with label Olimex. Show all posts

Sunday, 14 October 2007

Source level debugging working

After the success earlier today getting GDB to work through OpenOCD via Olimex ARM-USB-TINY JTAG connector, I thought I'd revisit Eclipse and check out the Insight debugger supplied with the Yagarto tool chain.

I closely followed Jim Lynch's Eclipse/Insight tutorial (PDF link) to get Eclipse setup with CDT, Insight, and OpenOCD. His tutorial is geared towards using an Olimex prototype board, but can be easily refactored to work with Yagarto and OpenOCD.

I setup the Virtual COGs 'touch' example within Eclipse, and also setup two external tools; namely OpenOCD (using the VC config script from the VC wiki, see previous blog post) and the Insight debugger (found in the Yagarto tool chain).

With the MX212+MM1 device connected via USB (as before) and the ARM-USB-TINY JTAG connected, it was a simple case of running OpenOCD server from inside Eclipse, then calling Insight from inside Eclipse. Insight was able to run to 'main', and then source step through the code :)

After some initial teething issues, everything now seems to be falling in to place. Very encouraging. Irrilicht here I come... :)

JTAG/GDB

Before popping out for lunch I thought I'd try JTAG/GDB debugging on the MX212. Wow, how easy :) After the shenanigans of getting the right PID setup on the Olimex ARM-USB-TINY JTAG connector XP driver, I wasn't hopefull that the OpenOCD server would be properly working. I came across the config file from VC wiki for the server and sparked it up (link to config file here). OpenOCD server looked like it was running fine in the cmd window (with the ARM-USB-TINY connected first to a USB port of course).

Making sure that JP300 and JP500 (for stack power via USB) were shorted I connected up the MX212 to another USB port on the laptop. The three LEDs on the back of the MX212 were all lit, so ready to go. Also have the VC21MM1 connected to the MX212 in my current default configuration.

Using the 'touch' VC21 example, that I know worked via uMon download, I called up the arm-elf-gdb from Cygwin. Hey-presto GDB kicks into life (thanks to the .gdbinit supplied with this example) and the VC21MM1 becomes active and the 'touch' example is running. Broke into the program in GDB and single stepped the code. All working lovely.

Now just need to go back and setup Eclipse properly for JTAG/GDB work with the MX212... And then on to looking at writing that software driver for the VC21MM1 touchscreen LCD in Irrilicht.

Thursday, 11 October 2007

Olimex ARM-USB-TINY

I tried to get the Olimex ARM-USB-TINY working tonight with OpenOCD. At first I tried the drivers supplied with OpenOCD. No joy. Driver installation kept failing to recognize the ARM-USB-TINY device using the OpenOCD supplied driver. Thankfully it didn't take long to find out that the PID in the inf/ini driver files are for another Olimex devier and not setup for the Tiny USB version. This link http://forum.sparkfun.com/viewtopic.php?t=7629, and other posts on Sparkfun's forum, describe the changes required to the inf and ini files. After making the changes I can now get the ARM-USB-TINY device recognized and OpenOCD server running. How stable it'll be I'll check this weekend.

After seeing Rush in concert last night, and last week's holiday, time for an early night. More fun this weekend with the COGs and Eclipse...

Sunday, 23 September 2007

Shopping list (part 1)

I recently came across a, relatively, new Canadian company called Virtual Cogs (http://www.virtualcogs.com/). Their VC21 series of stackable devices is superb. I'd used ARM processors before in handheld game programming, and always like their chips. So seeing them used on a VC21 stack modules got me thinking about making a robot again.

VC's Robot COG looked perfect as the main HW interface, with the i.MX212 handling the bulk of any SW processing. Throw in the Multimedia COG with touch screen, Linux running on the i.MX212, integrated JTAG, and lots of new avenues open.

So first on the shopping list is;
  • i.MX212 COG (VCMX212) (Actually went for the Starter Kit)
  • Breakout COG (VC21BR1)
  • Multimedia COG (VC21MM1)
  • Robot COG (VC21RB1)
  • JTAG interface (VC21JTAG)
  • Assorted connector cables and mounting hardware
The next step was Pololu's robot kits (http://www.pololu.com/). Particularly the Round Robot Chassis. Impetuously I went ahead and ordered the chassis kit, with Tamiya gearbox and assorted plates. Only later reading up on the H-Bridge used in the VC21RB1 :S More on that later.
Plus it was also later that I discovered that I could have bought them from Technobots Ltd here in the UK (http://www.technobots.co.uk/). Oh well, another supplier found...

Next up was the JTAG interface. For which I went for the Olimex (http://www.olimex.com/dev/index.html) ARM-USB-TINY and ARM-JTAG (as backup, just in case OpenOCD had trouble with the USB varient). Ordered these via Sparkfun Electronics (http://www.sparkfun.com/).

Another great find is the CMUCAM2 and, importantly, the pan/tilt turret head and servos. This time I got it from Active-Robot :) (http://www.active-robots.com/products/accessories/cmucam.shtml). Only one of these to start with, but I'll grab another further down the line.

Finally, in this first line of purchases, is a cheap laptop from eBay. Took a couple of days to win a good bid, but managed to get an IBM Thinkpad T42 for under £200.

Yay, first purchasing round is complete. Now just need to wait for it all to turn up.

In the mean time I can start at getting together all the development software required...