Archive for the ‘Uncategorized’ Category

OpenOCD git server only

Wednesday, December 16th, 2009

The old svn server has caused some unnecessary confusion lately and since nobody has responded to the message posted to the openocd development mailinglist as to whether there is a reason to keep it running, it will be shut down in the next few days.

The git server has been the official development git repository for a few months now.

Øyvind Harboe

OpenOCD 0.3.0-rc

Thursday, October 29th, 2009

OpenOCD has released its first -rc packages for testing: 0.3.0-rc0.
This version has been tagged in Git as ‘v0.3.0-rc0′.

By posting these packages on SourceForge and BerliOS, we hope users will test them and report problems to this list, so the final 0.3.0 release do not have lingering issues that must be resolved with a quick 0.3.1.

Please download these packages from one of our mirrors and let us know what you think. Unless we hear reports of problems, this may be the only -rc release before we tag the final 0.3.0 and branch 0.4.0-dev.

Please take this opportunity to mention any outstanding issues, or send a work of thanks to the folks that contributed to release. Thanks!

OpenOCD is alive and well

Sunday, October 12th, 2008

OpenOCD is alive and well.

However, you won’t find any news here about OpenOCD. For that you have to go to the openocd development mailing list.

svn version 1000 was committed a while ago… In addition to new features such as improved scripting, new targets(MIPS particularly), there is a steady stream of patches that fix bugs and improve performance.

I’ll be cleaning up old and misleading information on this web site now…

Øyvind Harboe

Loooooooooooooong time, no news

Monday, February 11th, 2008

It’s been over a year since I last posted to the OpenOCD website, but my posting frequency is by no means an indication of OpenOCD development activity. The mailinglist shows 184 posts for January ’08, and we’ve already reached 87 messages within the first 11 days of februrary. The Windows binaries available from Michael Fischer were downloaded 1907 times during January. This number doesn’t include those using one of the packages available for various Linux distributions or the SVN checkouts used by users who compile the OpenOCD themselves. Thanks a lot to all OpenOCD users!

With this posting I primarily want to thank those people that keep the OpenOCD alive while I’m busy with other things.

Michael Fischer does an amazing job keeping up with all the patches that get posted on the OpenOCD mailinglist, getting new Windows binaries out on his Yagarto page, and testing all that new stuff on the boards and programmers he has access to. Thanks a lot Michael!

Øyvind Harboe is responsible for a huge number of patches aiming to make the OpenOCD more useable and stable. He fixed numerous bugs in the past, and made the OpenOCD a lot more portable to smaller, embedded hosts. Thanks a lot Øyvind!

Spencer Oliver has been an active supporter for a long time and keeps submitting patches all the time. Last but not least he catches the numerous times were I forget to “svn add” new files that come with a patch. Thanks a lot Spen!

This list is certainly not comprehensive, so thanks a lot to all who I’ve missed, too! All patches and suggestions are highly appreciated, even if you don’t get an immediate answer.

The best of way of getting patches integrated is sending them to the OpenOCD mailinglist, see for instructions on how to subscribe.
The mailing list archive is available from that URL, too, so feel free to browse the past months to get an impression of the OpenOCD’s development progress.

Best regards,

Dominic Rath

Testers wanted (Cortex-M3, XScale)

Friday, November 10th, 2006

It’s been a while since the last post, but a lot has happened since then. OpenOCD is now at SVN revision 114 (115 once I commit my latest XScale changes).

Changes include:
- support for Cortex-M3 cores, including flash writing for Luminary Stellaris (This was contributed by Magnus Lundin, thanks a lot)
- support for XScale cores (tested with PXA250 for now, others to come)
- various fixes throughout the code improving stability and functionality
- improved writing performance on STR7x devices
- allow FT2232 to be opened by serial number instead of device description (ft2232_serial)
- see the SVN changelog for details

For now, Cortex-M3 support is only available as a separate branch, and has to be compiled by yourself. Grab the source from the OpenOCD SVN repository at svn:// ( if you can’t use the svn protocol).

XScale support isn’t in mainline yet, either. Grab the source from the OpenOCD SVN repository at svn:// ( if you can’t use the svn protocol).

Build instructions can be found here.

I’ve set up a mailinglist for OpenOCD development at If you’re interested in helping with development, or if you have questions/comments regarding the Cortex-M or XScale development branches, this list is the right place.

SVN is at revision 83, and Michael Fischer’s YAGARTO page

Friday, August 11th, 2006

Michael Fischer, who’s supporting OpenOCD with his Windows installer packages and how-to articles (among other things), has put a new site online for his “Yet Another Gnu ARm TOolchain (YAGARTO)”. It provides windows installer packages for OpenOCD, the GNU ARM toolchain and an integrated development environment using Eclipse and the Zylin CDT plugin. What makes YAGARTO special is that it runs completely native on Windows, i.e. it’s fully based on MinGW and doesn’t require Cygwin.

Among other things, the current code available from SVN (revision 83) unifies the ‘ftd2xx’ (with FTDI’s FTD2XX library) and ‘ftdi2232′ (with the open-source libftdi) interfaces. The new interface is called ‘ft2232′, and the library used to access the hardware is selected with the ./configure options –enable-ft2232_ftd2xx and –enable-ft2232_libftdi.

The configuration options are the same as the former ftd2xx options:
ft2232_device_desc “USB dev description”
ft2232_layout “layout name”

The ft2232_device_desc is only honored if the FTD2XX library is being used. The ft2232_vid_pid setting is used with both libraries, but only on Linux.

Revision 81 fixed several minor problems, and added support for ARM966E based devices like the new STR9 series from ST Microelectronics. This code was contributed by Spencer Oliver, thanks a lot.

Revision 79/80 added two new commands, jtag_ntrst_delay and jtag_nsrst_delay , to accommodate for situations where external or internal reset circuitry might keep a reset signal asserted for some time after the reset signal from the JTAG interface was deasserted. Revision 82 fixed a bug that required the arguments to these commands to be in microseconds, while they were intended to be miliseconds.

OpenOCD forum moved, and some updates

Monday, June 12th, 2006

The forum system at Berlios is a bit unhandy to use – at least when you’re used to the features offered by other systems. Tsvetan from Olimex has been kind enough to ask Sparkfun to host the OpenOCD forum, and they’ve just set up a new section at their forum. Thanks to both Tsvetan and Sparkfun. The new place to ask for help with OpenOCD, to discuss new features you’d like to have, or just to let everyone know what you think about OpenOCD is

The support for Intel XScale based devices is coming along nicely. So far uploading the debug handler, entry into debug, core register handling and memory access works. Working with the XScale requires the ability to identify some ARM instructions, to be able to calculate the next address that’s going to be executed. I decided to add a complete disassembler to the OpenOCD, which is now (trunk, revision 68) available from the telnet interface:

> armv4_5 disassemble 0x0 11
0x00000000 0xe59ff018 LDR r15, [r15, #0x18]
0x00000004 0xe59ff018 LDR r15, [r15, #0x18]
0x00000008 0xe59ff018 LDR r15, [r15, #0x18]
0x0000000c 0xe59ff018 LDR r15, [r15, #0x18]
0x00000010 0xe59ff018 LDR r15, [r15, #0x18]
0x00000014 0xb9205f84 STMLTDB r0!, {r2, r7, r8, r9, r10, r11, r12, r14}
0x00000018 0xe51ffff0 LDR r15, [r15, #-0xff0]
0x0000001c 0xe59ff014 LDR r15, [r15, #0x14]

Branching, a few updates, and no more comments

Saturday, June 3rd, 2006

Yesterday I’ve changed the OpenOCD SVN repository layout to allow additional branches to be kept. The reason for this is that I started working on support for Intel XScale based systems. To be able to work on this without breaking the stable ARM7/9 stuff, I’ve moved the current stable OpenOCD code to /trunk, and created a new subdirectory /branches which for now holds the /xscale branch. Once I’m confident that any changes to the common code don’t negatively affect the stable stuff, I’m going to merge everything back into trunk.

To fetch the current stable OpenOCD, use the following svn command:
svn checkout

To fetch the XScale development branch (which is currently simply a copy of the stable code), use this svn command instead:
svn checkout

In the meantime, mostly bugs in the OpenOCD code have been fixed. These are, among others:
- “flash erase_check” would crash for CFI flashes when there was no working_area specified.
- register valid/dirty tracking was buggy. The result was an occasional “register xxx dirty but no valid data” error.
- The INTDIS signal wasn’t high during debug execution (i.e. flash writing, DCC downloads, …). This would corrupt memory or flash writing, if a system was already up and running with interrupts enabled.
- The working area reserved for LPC2000 flash operations was too small, and could corrupt flash writing.

Added/changed functionality includes, among others:
- Access to ETM registers. This is for a new project of mine, and isn’t currently usable (another reason for branching)
- DCC downloads have been disabled by default. Use the “arm7_9 dcc_downloads ” command to enable them. DCC drastically increases download performance (host->target), but requires a working area that must NOT be written to, and is potentially unsafe on targets running at a very low speed, like the 32kHz startup clock of some Atmel ARMs.
- Fast memory writes have been disabled by default. Use the “arm7_9 fast_writes
” command to enable them. Fast writes drastically increase download performance, especially when using a USB JTAG interface (Amontec JTAGkey, Olimex ARM-USB-OCD, homebrew).

There might be an issue left with LPC2000 systems:
If the CCLK frequency specified in the config file lists the crystal frequency, but your startup code enabled the PLL already, flash writing might fail. This has been reported only once so far, and a possible solution might be to manually turn the PLL off before starting any flash operations:

mwb 0xe01fc080 0x0
mwb 0xe01fc08c 0xaa
mwb 0xe01fc08c 0x55

Commenting in the blog has been disabled, because some spam bots sent me >10 messages per day. If you have something to say, use the forums, bug tracker, feature requests, or send me an email.

Spring Tiredness…

Saturday, April 1st, 2006

Seems there is no (common) english word or phrase to express the german “Fruehjahrsmuedigkeit” – but that’s just what I felt the last week or so. Luckily that doesn’t mean that the OpenOCD remained unattended. I’ve fixed a few minor bugs (added others, but those got fixed, too), added the one thing or the other, and merged some patches people sent me.

Improvements include:

  • Support for ST Microelectronics STR7xx on-chip flash programming (Thanks to Spen).
  • Configurable driver type (push-pull or open-drain) for the reset signals. The Amontec devices and the USBJTAG-1 already support this, other designs should follow. Default is push-pull for TRST and open-drain for SRST (as implemented on most Wigglers).
  • A configuration command (working_area) has been added to specify a working area that’s used by the OpenOCD to speed up memory downloads and flash programming.

I’d like to thank Jim Lynch for his excellent tutorial “ARM Cross Development with Eclipse”. There’s an updated draft version available at megaupload (ATTENTION: Some people reported advertisments that are not suitable for viewing at work) which shows how to use the OpenOCD. The package (190mb) includes all necessary software (Eclipse, Zylin tools, GNUarm, OpenOCD, …).

Michael Fischer (mifi) has put a very nice site online explaining how to get a GNU development system (using OpenOCD as the debugger) running on Windows without having to install Cygwin (which seems to cause trouble for some people). He also wrote an installer for the OpenOCD, allowing very easy evaluation of the OpenOCD. Thanks a lot to Michael.

Back from Fosdem, OpenOCD updates, AT91SAM7 support, …

Friday, March 10th, 2006

I’ve been a bit busy latey, and haven’t had time to update this blog as often as I’d wanted to. Fosdem was really fun, and especially I’d like to thank Timo Hoenig (blog), Fred Blaise (blog), Holger Macht (blog) and the rest of the OpenSUSE team for the nice time in brussels.
You can grab the slides of my OpenOCD talk or even the video (thanks to Michael Opdenacker from Free Electrons).

I’ve put a rather large update into the subversion repository, which should make OpenOCD more usable (you don’t have to shut the daemon down so often anymore, initialization scripts, …)and more stable (reinitialize Embedded-ICE after a testlogic-reset, better timeout handling, …).

This also includes a patch for writing the internal flash found on Atmel AT91SAM7 flashes by Magnus Lundin (thanks a lot). I don’t have a SAM7 to test myself, so please report back if you encounter any problems.

I’ve started moving the OpenOCD documentation to the OpenOCD’s entry in the Berlios OpenFacts Wiki. Currently, there’s documentation for the configuration file, and I’m planning to document every available feature as well as some general usage notes there. Please feel free to contribute, if you feel there’s something missing.