Skip to content
doctek edited this page Aug 4, 2011 · 10 revisions

Welcome to the COOCDFlash wiki! (Pronounced "Cooked Flash".) As you might guess from the name, this project is related to the OpenOCD project and seeks to support it by explaining a key component.

OpenOCD is a tool that supports the use of GDB for programming and debugging ARM processors in embedded applications. There are a number of ARMs that are low cost and ideal for embedded applications with more being introduced almost weekly. I have used OpenOCD / GDB and found the combination to be a great tool.

The problem is that OpenOCD needs a flash programming driver for each version of ARM that it supports. Since there is no commercial incentive for chip makers to add this support, it's left to someone in the community to do it. So new flavors of ARM, which typically have specific programming requirements, cannot be programmed with OpenOCD until someone writes a new flash driver for them. This means the newest (often cheapest and/or most powerful) ARMs aren't supported in OpenOCD.

The purpose of this project is to create a tutorial, with working examples, on creating a flash driver for OpenOCD. This will build on the existing documentation now in OpenOCD and will make it possible to add support for a new ARM quickly. With the tutorial, a competent programmer could add the necessary support with relative ease. YMMV.

The first step is an Introduction to OpenOCD. Someday, I hope this turns into an introduction and tutorial for anyone wanting to use OpenOCD and GDB for developing microcontroller applications - especially on the smaller ARMs. But for now, it just contains a short intro and a few (perhaps) useful links.

Be sure to look at the Licensing Info for this project. If you came to this page directly and aren't sure where the source code is, then click the Source tab on the menu bar above.

The code for this project contains a copy of an existing OpenOCD flash driver which I have extensively commented. There is also code for a flash driver I am developing. (Access the code by clicking the Source tab at the top of this page.) As that development proceeds, I will post the progress. If others want to post drivers that they work on, I will add them. Let's get on to Creating and Using Flash Drivers.

Clone this wiki locally