<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://www.opencircuits.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Adamfeuer</id>
	<title>OpenCircuits - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://www.opencircuits.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Adamfeuer"/>
	<link rel="alternate" type="text/html" href="http://www.opencircuits.com/index.php?title=Special:Contributions/Adamfeuer"/>
	<updated>2026-06-26T05:46:14Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>http://www.opencircuits.com/index.php?title=Maple_JTAG_How_To&amp;diff=19983</id>
		<title>Maple JTAG How To</title>
		<link rel="alternate" type="text/html" href="http://www.opencircuits.com/index.php?title=Maple_JTAG_How_To&amp;diff=19983"/>
		<updated>2010-12-21T18:00:56Z</updated>

		<summary type="html">&lt;p&gt;Adamfeuer: /* Eclipse C/C++ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page about using [http://en.wikipedia.org/wiki/Joint_Test_Action_Group JTAG] with Maple - JTAG will allow you to use a debugger program like GDB to debug programs running on the Maple. You can also use the JTAG adapter to re-flash (re-install) the bootloader in case you &amp;quot;brick&amp;quot; the board and can't install programs on it via the bootloader.&lt;br /&gt;
&lt;br /&gt;
* [http://leaflabs.com/docs/jtag.html Maple JTAG information page]&lt;br /&gt;
&lt;br /&gt;
== JTAG Debugger ==&lt;br /&gt;
&lt;br /&gt;
You need a piece of hardware called a JTAG debugger to manage the connection and debugging of the Maple. These plug into your computer via USB and into the Maple via its JTAG port.&lt;br /&gt;
&lt;br /&gt;
* [http://www.olimex.com/dev/arm-usb-ocd.html Olimex ARM-USB-OCD] - only this debugger is known to work. Olimex's ARM-USB-TINY is known not to work.&lt;br /&gt;
* [http://www.sparkfun.com/products/7834 ARM-USB-OCD at Sparkfun] &lt;br /&gt;
&lt;br /&gt;
If you know of other JTAG debuggers that are known to work, add them here.&lt;br /&gt;
&lt;br /&gt;
== JTAG Adapter ==&lt;br /&gt;
&lt;br /&gt;
Maple's 8-pin JTAG port is non-standard, so you need an adapter circuit to go between the ARM 20-pin connector and the Maple 8-pin connector.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/adamfeuer/maple/tree/master/jtagadapter Maple JTAG adapter circuit and board layout] - the one in Maple's source tree works, but has unneeded resistors. This circuit is also known to work.&lt;br /&gt;
* [https://github.com/adamfeuer/maple/raw/master/jtagadapter/maple-jtagadapter.png Circuit diagram]&lt;br /&gt;
* [https://github.com/adamfeuer/maple/blob/master/jtagadapter/maple-jtagadapter-brd.png picture of PCB design]&lt;br /&gt;
&lt;br /&gt;
== OpenOCD ==&lt;br /&gt;
&lt;br /&gt;
[http://openocd.berlios.de/web/ OpenOCD] is a program that can talk with the JTAG debugger. You can give commands to it directly, or you can configure GDB to use it to control your Maple board.&lt;br /&gt;
&lt;br /&gt;
Download the latest version of OpenOCD, build it, and install it. Then you can use Maple's build tools (Make) to run the JTAG debugger, or run it standalone so you can connect via another program.&lt;br /&gt;
&lt;br /&gt;
You will need to edit the OpenOCD configuration files to make them work with recent OpenOCD versions. Make the following changes:&lt;br /&gt;
* File support/openocd/run.cfg:&lt;br /&gt;
** Add at the beginning of the file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#daemon configuration&lt;br /&gt;
telnet_port 4444&lt;br /&gt;
gdb_port 3333&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Replace this line:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
flash bank stm32x 0x08000000 0x00020000 0 0 $_TARGETNAME&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*: with this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set _FLASHNAME $_CHIPNAME.flash&lt;br /&gt;
flash bank $_FLASHNAME stm32x 0x08000000 0x00020000 0 0 $_TARGETNAME&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Eclipse C/C++ ==&lt;br /&gt;
&lt;br /&gt;
If you want to use a visual debugger instead of GDB, you can use the Eclipse C/C++ tools. Here is an outline of the steps:&lt;br /&gt;
&lt;br /&gt;
# OpenOCD 0.4.0 from source. &lt;br /&gt;
# Install the Codesourcery ARM toolchain from http://static.leaflabs.com/pub/codesourcery/ The direct URL for linux is: http://static.leaflabs.com/pub/codesourcery/arm-2009q3-68-arm-none-eabi-toolchain-linux32.tar.gz&lt;br /&gt;
# Install Eclipse C/C++ Helios from http://www.eclipse.org/downloads/&lt;br /&gt;
# Install the Zylin remote debugger Eclipse plugin using the instructions at http://opensource.zylin.com/embeddedcdt.html&lt;br /&gt;
# Configure OpenOCD and Zylin using this guide: http://linuxfreak.pl/elektronika/debugging-stm32-cortex-m3-microcontroller-using-eclipse-on-slackware&lt;br /&gt;
# Then I used Eclipse to launch OpenOCD, and started the debugger using a Debug Configuration. You can copy examples/blinky.cpp to main.cpp, then start and stop the program using the debugger!&lt;br /&gt;
&lt;br /&gt;
Here is a screenshot of blinky.cpp (main.cpp) stopped at a breakpoint: http://imgur.com/9CZ6q&lt;br /&gt;
&lt;br /&gt;
The USB interrupts are enabled, so single-stepping lands you in the USB interrupt service routine (ISR). You can disable the USB interrupts by commenting out the setupUSB() line in wirish/wirish.c .&lt;br /&gt;
&lt;br /&gt;
== Reflashing the bootloader ==&lt;br /&gt;
&lt;br /&gt;
You can use OpenOCD to re-flash (re-install) the bootloader if you accidentally &amp;quot;brick&amp;quot; the board somehow - if you can't install programs via the bootloader any more and resetting doesn't help. Here's how. &lt;br /&gt;
&lt;br /&gt;
* Read the guide here for background info: http://fun-tech.se/stm32/OpenOCD/gdb.php&lt;br /&gt;
* Build the Maple bootloader&lt;br /&gt;
** Check out a copy of the maple-bootloader from github: https://github.com/leaflabs/maple-bootloader&lt;br /&gt;
** Build it by typing 'make' in the root of the project&lt;br /&gt;
* Start OpenOCD:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ openocd -f support/openocd/run.cfg &lt;br /&gt;
Open On-Chip Debugger 0.4.0 (2010-11-28-20:19)&lt;br /&gt;
Licensed under GNU GPL v2&lt;br /&gt;
For bug reports, read&lt;br /&gt;
	http://openocd.berlios.de/doc/doxygen/bugs.html&lt;br /&gt;
1000 kHz&lt;br /&gt;
jtag_nsrst_delay: 100&lt;br /&gt;
jtag_ntrst_delay: 100&lt;br /&gt;
trst_and_srst separate srst_gates_jtag trst_push_pull srst_open_drain&lt;br /&gt;
Info : clock speed 1000 kHz&lt;br /&gt;
Info : JTAG tap: stm32.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)&lt;br /&gt;
Info : JTAG tap: stm32.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1)&lt;br /&gt;
Info : stm32.cpu: hardware has 6 breakpoints, 4 watchpoints&lt;br /&gt;
Info : JTAG tap: stm32.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)&lt;br /&gt;
Info : JTAG tap: stm32.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* From another terminal window, telnet to the OpenOCD shell:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
telnet localhost 4444&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You should see something like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Connected to localhost.&lt;br /&gt;
Escape character is '^]'.&lt;br /&gt;
Open On-Chip Debugger&lt;br /&gt;
&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Type the following into the OpenOCD shell:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
reset&lt;br /&gt;
halt&lt;br /&gt;
flash probe 0&lt;br /&gt;
stm32x mass_erase 0&lt;br /&gt;
flash write_bank 0 build/maple_boot.bin 0&lt;br /&gt;
reset&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Disconnect the JTAG connector from the Maple board.&lt;br /&gt;
* Now you should be able to reset the board using the reset switch, the LED should blink rapidly, and you should be able to use the bootloader again.&lt;br /&gt;
&lt;br /&gt;
== Reset Halt ==&lt;br /&gt;
&lt;br /&gt;
'reset halt' is an OpenOCD command that resets the board and then immediately halts it, leaving the debugger in control of the board before it starts executing code.&lt;br /&gt;
&lt;br /&gt;
You cannot do a 'reset halt' command with OpenOCD using Maple revisions up to Maple rev 5, because nJTRST and nTRST are currently connected. They may be separated on future Maple revisions, and then a 'reset halt' would work.&lt;/div&gt;</summary>
		<author><name>Adamfeuer</name></author>
		
	</entry>
	<entry>
		<id>http://www.opencircuits.com/index.php?title=Maple_JTAG_How_To&amp;diff=19982</id>
		<title>Maple JTAG How To</title>
		<link rel="alternate" type="text/html" href="http://www.opencircuits.com/index.php?title=Maple_JTAG_How_To&amp;diff=19982"/>
		<updated>2010-12-21T17:57:22Z</updated>

		<summary type="html">&lt;p&gt;Adamfeuer: /* JTAG Adapter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page about using [http://en.wikipedia.org/wiki/Joint_Test_Action_Group JTAG] with Maple - JTAG will allow you to use a debugger program like GDB to debug programs running on the Maple. You can also use the JTAG adapter to re-flash (re-install) the bootloader in case you &amp;quot;brick&amp;quot; the board and can't install programs on it via the bootloader.&lt;br /&gt;
&lt;br /&gt;
* [http://leaflabs.com/docs/jtag.html Maple JTAG information page]&lt;br /&gt;
&lt;br /&gt;
== JTAG Debugger ==&lt;br /&gt;
&lt;br /&gt;
You need a piece of hardware called a JTAG debugger to manage the connection and debugging of the Maple. These plug into your computer via USB and into the Maple via its JTAG port.&lt;br /&gt;
&lt;br /&gt;
* [http://www.olimex.com/dev/arm-usb-ocd.html Olimex ARM-USB-OCD] - only this debugger is known to work. Olimex's ARM-USB-TINY is known not to work.&lt;br /&gt;
* [http://www.sparkfun.com/products/7834 ARM-USB-OCD at Sparkfun] &lt;br /&gt;
&lt;br /&gt;
If you know of other JTAG debuggers that are known to work, add them here.&lt;br /&gt;
&lt;br /&gt;
== JTAG Adapter ==&lt;br /&gt;
&lt;br /&gt;
Maple's 8-pin JTAG port is non-standard, so you need an adapter circuit to go between the ARM 20-pin connector and the Maple 8-pin connector.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/adamfeuer/maple/tree/master/jtagadapter Maple JTAG adapter circuit and board layout] - the one in Maple's source tree works, but has unneeded resistors. This circuit is also known to work.&lt;br /&gt;
* [https://github.com/adamfeuer/maple/raw/master/jtagadapter/maple-jtagadapter.png Circuit diagram]&lt;br /&gt;
* [https://github.com/adamfeuer/maple/blob/master/jtagadapter/maple-jtagadapter-brd.png picture of PCB design]&lt;br /&gt;
&lt;br /&gt;
== OpenOCD ==&lt;br /&gt;
&lt;br /&gt;
[http://openocd.berlios.de/web/ OpenOCD] is a program that can talk with the JTAG debugger. You can give commands to it directly, or you can configure GDB to use it to control your Maple board.&lt;br /&gt;
&lt;br /&gt;
Download the latest version of OpenOCD, build it, and install it. Then you can use Maple's build tools (Make) to run the JTAG debugger, or run it standalone so you can connect via another program.&lt;br /&gt;
&lt;br /&gt;
You will need to edit the OpenOCD configuration files to make them work with recent OpenOCD versions. Make the following changes:&lt;br /&gt;
* File support/openocd/run.cfg:&lt;br /&gt;
** Add at the beginning of the file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#daemon configuration&lt;br /&gt;
telnet_port 4444&lt;br /&gt;
gdb_port 3333&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Replace this line:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
flash bank stm32x 0x08000000 0x00020000 0 0 $_TARGETNAME&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*: with this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set _FLASHNAME $_CHIPNAME.flash&lt;br /&gt;
flash bank $_FLASHNAME stm32x 0x08000000 0x00020000 0 0 $_TARGETNAME&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Eclipse C/C++ ==&lt;br /&gt;
&lt;br /&gt;
If you want to use a visual debugger instead of GDB, you can use the Eclipse C/C++ tools. Here is an outline of the steps:&lt;br /&gt;
&lt;br /&gt;
# OpenOCD 0.4.0 from source. I installed the Codesourcery ARM toolchain from http://static.leaflabs.com/pub/codesourcery/ The direct URL for linux is: http://static.leaflabs.com/pub/codesourcery/arm-2009q3-68-arm-none-eabi-toolchain-linux32.tar.gz&lt;br /&gt;
# Install Eclipse C/C++ Helios from http://www.eclipse.org/downloads/&lt;br /&gt;
# Install the Zylin remote debugger Eclipse plugin using the instructions at http://opensource.zylin.com/embeddedcdt.html&lt;br /&gt;
# Configure OpenOCD and Zylin using this guide: http://linuxfreak.pl/elektronika/debugging-stm32-cortex-m3-microcontroller-using-eclipse-on-slackware&lt;br /&gt;
# Then I used Eclipse to launch OpenOCD, and started the debugger using a Debug Configuration. You can copy examples/blinky.cpp to main.cpp, then start and stop the program using the debugger!&lt;br /&gt;
&lt;br /&gt;
Here is a screenshot of blinky.cpp (main.cpp) stopped at a breakpoint: http://imgur.com/9CZ6q&lt;br /&gt;
&lt;br /&gt;
The USB interrupts are enabled, so single-stepping lands you in the USB interrupt service routine (ISR). You can disable the USB interrupts by commenting out the setupUSB() line in wirish/wirish.c .&lt;br /&gt;
&lt;br /&gt;
== Reflashing the bootloader ==&lt;br /&gt;
&lt;br /&gt;
You can use OpenOCD to re-flash (re-install) the bootloader if you accidentally &amp;quot;brick&amp;quot; the board somehow - if you can't install programs via the bootloader any more and resetting doesn't help. Here's how. &lt;br /&gt;
&lt;br /&gt;
* Read the guide here for background info: http://fun-tech.se/stm32/OpenOCD/gdb.php&lt;br /&gt;
* Build the Maple bootloader&lt;br /&gt;
** Check out a copy of the maple-bootloader from github: https://github.com/leaflabs/maple-bootloader&lt;br /&gt;
** Build it by typing 'make' in the root of the project&lt;br /&gt;
* Start OpenOCD:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ openocd -f support/openocd/run.cfg &lt;br /&gt;
Open On-Chip Debugger 0.4.0 (2010-11-28-20:19)&lt;br /&gt;
Licensed under GNU GPL v2&lt;br /&gt;
For bug reports, read&lt;br /&gt;
	http://openocd.berlios.de/doc/doxygen/bugs.html&lt;br /&gt;
1000 kHz&lt;br /&gt;
jtag_nsrst_delay: 100&lt;br /&gt;
jtag_ntrst_delay: 100&lt;br /&gt;
trst_and_srst separate srst_gates_jtag trst_push_pull srst_open_drain&lt;br /&gt;
Info : clock speed 1000 kHz&lt;br /&gt;
Info : JTAG tap: stm32.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)&lt;br /&gt;
Info : JTAG tap: stm32.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1)&lt;br /&gt;
Info : stm32.cpu: hardware has 6 breakpoints, 4 watchpoints&lt;br /&gt;
Info : JTAG tap: stm32.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)&lt;br /&gt;
Info : JTAG tap: stm32.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* From another terminal window, telnet to the OpenOCD shell:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
telnet localhost 4444&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You should see something like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Connected to localhost.&lt;br /&gt;
Escape character is '^]'.&lt;br /&gt;
Open On-Chip Debugger&lt;br /&gt;
&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Type the following into the OpenOCD shell:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
reset&lt;br /&gt;
halt&lt;br /&gt;
flash probe 0&lt;br /&gt;
stm32x mass_erase 0&lt;br /&gt;
flash write_bank 0 build/maple_boot.bin 0&lt;br /&gt;
reset&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Disconnect the JTAG connector from the Maple board.&lt;br /&gt;
* Now you should be able to reset the board using the reset switch, the LED should blink rapidly, and you should be able to use the bootloader again.&lt;br /&gt;
&lt;br /&gt;
== Reset Halt ==&lt;br /&gt;
&lt;br /&gt;
'reset halt' is an OpenOCD command that resets the board and then immediately halts it, leaving the debugger in control of the board before it starts executing code.&lt;br /&gt;
&lt;br /&gt;
You cannot do a 'reset halt' command with OpenOCD using Maple revisions up to Maple rev 5, because nJTRST and nTRST are currently connected. They may be separated on future Maple revisions, and then a 'reset halt' would work.&lt;/div&gt;</summary>
		<author><name>Adamfeuer</name></author>
		
	</entry>
	<entry>
		<id>http://www.opencircuits.com/index.php?title=LeafLabs&amp;diff=19981</id>
		<title>LeafLabs</title>
		<link rel="alternate" type="text/html" href="http://www.opencircuits.com/index.php?title=LeafLabs&amp;diff=19981"/>
		<updated>2010-12-21T17:45:36Z</updated>

		<summary type="html">&lt;p&gt;Adamfeuer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page about the LeafLabs STM32 boards, such as the Maple - an open source hardware and software ARM Cortex M3 single board computer with Arduino-compatible expansion connectors and form factor.&lt;br /&gt;
&lt;br /&gt;
[[File:maple.jpg|thumb|alt=Maple revision 5 board|Maple revision 5 board]]&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
* [http://leaflabs.com/ LeafLabs website]&lt;br /&gt;
* [http://leaflabs.com/devices/maple/ Maple board] at LeafLabs website&lt;br /&gt;
* [http://leaflabs.com/docs/ Maple documentation]&lt;br /&gt;
* [http://leaflabs.com/devices/maple/ LeafLabs forums] - support and discussion&lt;br /&gt;
* [http://leaflabs.com/devices/maple/ LeafLabs on Github] - source code for board designs, firmware, IDE, and documentation&lt;br /&gt;
* [http://www.st.com/internet/mcu/class/1734.jsp STM 32 page] at [http://www.st.com ST Electronics] - the system-on-chip that the Maple uses. Get STM32 reference manuals and application notes here.&lt;br /&gt;
&lt;br /&gt;
== How to guides ==&lt;br /&gt;
&lt;br /&gt;
* [[Maple JTAG How To]] - how to use Maple's JTAG adapter for debugging; how to build a Maple JTAG adapter; re-flashing the board; and more.&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&lt;br /&gt;
* Add documentation supplementation or errata pages here&lt;/div&gt;</summary>
		<author><name>Adamfeuer</name></author>
		
	</entry>
	<entry>
		<id>http://www.opencircuits.com/index.php?title=LeafLabs&amp;diff=19980</id>
		<title>LeafLabs</title>
		<link rel="alternate" type="text/html" href="http://www.opencircuits.com/index.php?title=LeafLabs&amp;diff=19980"/>
		<updated>2010-12-21T16:33:16Z</updated>

		<summary type="html">&lt;p&gt;Adamfeuer: correcting the spelling of LeafLabs (no space)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page about the LeafLabs STM32 boards, such as the Maple - an open source hardware and software ARM Cortex M3 single board computer with Arduino-compatible expansion connectors and form factor.&lt;br /&gt;
&lt;br /&gt;
[[File:maple.jpg|thumb|alt=Maple revision 5 board|Maple revision 5 board]]&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
* [http://leaflabs.com/ LeafLabs website]&lt;br /&gt;
* [http://leaflabs.com/devices/maple/ Maple board] at LeafLabs website&lt;br /&gt;
* [http://leaflabs.com/docs/ Maple documentation]&lt;br /&gt;
* [http://leaflabs.com/devices/maple/ LeafLabs forums] - support and discussion&lt;br /&gt;
* [http://leaflabs.com/devices/maple/ LeafLabs on Github] - source code for board designs, firmware, IDE, and documentation&lt;br /&gt;
* [http://www.st.com/internet/mcu/class/1734.jsp STM 32 page] at [http://www.st.com ST Electronics] - the system-on-chip that the Maple uses. Get STM32 reference manuals and application notes here.&lt;br /&gt;
&lt;br /&gt;
== How to guides ==&lt;br /&gt;
&lt;br /&gt;
* [[Maple JTAG How To]] - how to use Maple's JTAG adapter for debugging; how to build a Maple JTAG debugger; re-flashing the board; and more.&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&lt;br /&gt;
* Add documentation supplementation or errata pages here&lt;/div&gt;</summary>
		<author><name>Adamfeuer</name></author>
		
	</entry>
	<entry>
		<id>http://www.opencircuits.com/index.php?title=LeafLabs&amp;diff=19978</id>
		<title>LeafLabs</title>
		<link rel="alternate" type="text/html" href="http://www.opencircuits.com/index.php?title=LeafLabs&amp;diff=19978"/>
		<updated>2010-12-21T16:14:08Z</updated>

		<summary type="html">&lt;p&gt;Adamfeuer: moved Leaf Labs to LeafLabs:&amp;amp;#32;LeafLabs is one word - I mistakenly made it two words when I created the page.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page about the Leaf Labs STM32 boards, such as the Maple - an open source hardware and software ARM Cortex M3 single board computer with Arduino-compatible expansion connectors and form factor.&lt;br /&gt;
&lt;br /&gt;
[[File:maple.jpg|thumb|alt=Maple revision 5 board|Maple revision 5 board]]&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
* [http://leaflabs.com/ Leaf Labs website]&lt;br /&gt;
* [http://leaflabs.com/devices/maple/ Maple board] at Leaf Labs website&lt;br /&gt;
* [http://leaflabs.com/docs/ Maple documentation]&lt;br /&gt;
* [http://leaflabs.com/devices/maple/ Leaf Labs forums] - support and discussion&lt;br /&gt;
* [http://leaflabs.com/devices/maple/ Leaf Labs on Github] - source code for board designs, firmware, IDE, and documentation&lt;br /&gt;
* [http://www.st.com/internet/mcu/class/1734.jsp STM 32 page] at [http://www.st.com ST Electronics] - the system-on-chip that the Maple uses. Get STM32 reference manuals and application notes here.&lt;br /&gt;
&lt;br /&gt;
== How to guides ==&lt;br /&gt;
&lt;br /&gt;
* [[Maple JTAG How To]] - how to use Maple's JTAG adapter for debugging; how to build a Maple JTAG debugger; re-flashing the board; and more.&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&lt;br /&gt;
* Add documentation supplementation or errata pages here&lt;/div&gt;</summary>
		<author><name>Adamfeuer</name></author>
		
	</entry>
	<entry>
		<id>http://www.opencircuits.com/index.php?title=Leaf_Labs&amp;diff=19979</id>
		<title>Leaf Labs</title>
		<link rel="alternate" type="text/html" href="http://www.opencircuits.com/index.php?title=Leaf_Labs&amp;diff=19979"/>
		<updated>2010-12-21T16:14:08Z</updated>

		<summary type="html">&lt;p&gt;Adamfeuer: moved Leaf Labs to LeafLabs:&amp;amp;#32;LeafLabs is one word - I mistakenly made it two words when I created the page.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[LeafLabs]]&lt;/div&gt;</summary>
		<author><name>Adamfeuer</name></author>
		
	</entry>
	<entry>
		<id>http://www.opencircuits.com/index.php?title=Maple_JTAG_How_To&amp;diff=19976</id>
		<title>Maple JTAG How To</title>
		<link rel="alternate" type="text/html" href="http://www.opencircuits.com/index.php?title=Maple_JTAG_How_To&amp;diff=19976"/>
		<updated>2010-12-21T04:08:15Z</updated>

		<summary type="html">&lt;p&gt;Adamfeuer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page about using [http://en.wikipedia.org/wiki/Joint_Test_Action_Group JTAG] with Maple - JTAG will allow you to use a debugger program like GDB to debug programs running on the Maple. You can also use the JTAG adapter to re-flash (re-install) the bootloader in case you &amp;quot;brick&amp;quot; the board and can't install programs on it via the bootloader.&lt;br /&gt;
&lt;br /&gt;
* [http://leaflabs.com/docs/jtag.html Maple JTAG information page]&lt;br /&gt;
&lt;br /&gt;
== JTAG Debugger ==&lt;br /&gt;
&lt;br /&gt;
You need a piece of hardware called a JTAG debugger to manage the connection and debugging of the Maple. These plug into your computer via USB and into the Maple via its JTAG port.&lt;br /&gt;
&lt;br /&gt;
* [http://www.olimex.com/dev/arm-usb-ocd.html Olimex ARM-USB-OCD] - only this debugger is known to work. Olimex's ARM-USB-TINY is known not to work.&lt;br /&gt;
* [http://www.sparkfun.com/products/7834 ARM-USB-OCD at Sparkfun] &lt;br /&gt;
&lt;br /&gt;
If you know of other JTAG debuggers that are known to work, add them here.&lt;br /&gt;
&lt;br /&gt;
== JTAG Adapter ==&lt;br /&gt;
&lt;br /&gt;
Maple's 8-pin JTAG port is non-standard, so you need an adapter circuit to go between the ARM 20-pin connector and the Maple 8-pin connector.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/adamfeuer/maple/tree/master/jtagadapter Maple JTAG adapter circuit and board layout] - the one in Maple's source tree may work, but has extra resistors and other errors. This circuit is known to work.&lt;br /&gt;
* [https://github.com/adamfeuer/maple/raw/master/jtagadapter/maple-jtagadapter.png Circuit diagram]&lt;br /&gt;
* [https://github.com/adamfeuer/maple/blob/master/jtagadapter/maple-jtagadapter-brd.png picture of PCB design]&lt;br /&gt;
&lt;br /&gt;
== OpenOCD ==&lt;br /&gt;
&lt;br /&gt;
[http://openocd.berlios.de/web/ OpenOCD] is a program that can talk with the JTAG debugger. You can give commands to it directly, or you can configure GDB to use it to control your Maple board.&lt;br /&gt;
&lt;br /&gt;
Download the latest version of OpenOCD, build it, and install it. Then you can use Maple's build tools (Make) to run the JTAG debugger, or run it standalone so you can connect via another program.&lt;br /&gt;
&lt;br /&gt;
You will need to edit the OpenOCD configuration files to make them work with recent OpenOCD versions. Make the following changes:&lt;br /&gt;
* File support/openocd/run.cfg:&lt;br /&gt;
** Add at the beginning of the file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#daemon configuration&lt;br /&gt;
telnet_port 4444&lt;br /&gt;
gdb_port 3333&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Replace this line:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
flash bank stm32x 0x08000000 0x00020000 0 0 $_TARGETNAME&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*: with this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set _FLASHNAME $_CHIPNAME.flash&lt;br /&gt;
flash bank $_FLASHNAME stm32x 0x08000000 0x00020000 0 0 $_TARGETNAME&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Eclipse C/C++ ==&lt;br /&gt;
&lt;br /&gt;
If you want to use a visual debugger instead of GDB, you can use the Eclipse C/C++ tools. Here is an outline of the steps:&lt;br /&gt;
&lt;br /&gt;
# OpenOCD 0.4.0 from source. I installed the Codesourcery ARM toolchain from http://static.leaflabs.com/pub/codesourcery/ The direct URL for linux is: http://static.leaflabs.com/pub/codesourcery/arm-2009q3-68-arm-none-eabi-toolchain-linux32.tar.gz&lt;br /&gt;
# Install Eclipse C/C++ Helios from http://www.eclipse.org/downloads/&lt;br /&gt;
# Install the Zylin remote debugger Eclipse plugin using the instructions at http://opensource.zylin.com/embeddedcdt.html&lt;br /&gt;
# Configure OpenOCD and Zylin using this guide: http://linuxfreak.pl/elektronika/debugging-stm32-cortex-m3-microcontroller-using-eclipse-on-slackware&lt;br /&gt;
# Then I used Eclipse to launch OpenOCD, and started the debugger using a Debug Configuration. You can copy examples/blinky.cpp to main.cpp, then start and stop the program using the debugger!&lt;br /&gt;
&lt;br /&gt;
Here is a screenshot of blinky.cpp (main.cpp) stopped at a breakpoint: http://imgur.com/9CZ6q&lt;br /&gt;
&lt;br /&gt;
The USB interrupts are enabled, so single-stepping lands you in the USB interrupt service routine (ISR). You can disable the USB interrupts by commenting out the setupUSB() line in wirish/wirish.c .&lt;br /&gt;
&lt;br /&gt;
== Reflashing the bootloader ==&lt;br /&gt;
&lt;br /&gt;
You can use OpenOCD to re-flash (re-install) the bootloader if you accidentally &amp;quot;brick&amp;quot; the board somehow - if you can't install programs via the bootloader any more and resetting doesn't help. Here's how. &lt;br /&gt;
&lt;br /&gt;
* Read the guide here for background info: http://fun-tech.se/stm32/OpenOCD/gdb.php&lt;br /&gt;
* Build the Maple bootloader&lt;br /&gt;
** Check out a copy of the maple-bootloader from github: https://github.com/leaflabs/maple-bootloader&lt;br /&gt;
** Build it by typing 'make' in the root of the project&lt;br /&gt;
* Start OpenOCD:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ openocd -f support/openocd/run.cfg &lt;br /&gt;
Open On-Chip Debugger 0.4.0 (2010-11-28-20:19)&lt;br /&gt;
Licensed under GNU GPL v2&lt;br /&gt;
For bug reports, read&lt;br /&gt;
	http://openocd.berlios.de/doc/doxygen/bugs.html&lt;br /&gt;
1000 kHz&lt;br /&gt;
jtag_nsrst_delay: 100&lt;br /&gt;
jtag_ntrst_delay: 100&lt;br /&gt;
trst_and_srst separate srst_gates_jtag trst_push_pull srst_open_drain&lt;br /&gt;
Info : clock speed 1000 kHz&lt;br /&gt;
Info : JTAG tap: stm32.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)&lt;br /&gt;
Info : JTAG tap: stm32.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1)&lt;br /&gt;
Info : stm32.cpu: hardware has 6 breakpoints, 4 watchpoints&lt;br /&gt;
Info : JTAG tap: stm32.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)&lt;br /&gt;
Info : JTAG tap: stm32.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* From another terminal window, telnet to the OpenOCD shell:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
telnet localhost 4444&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You should see something like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Connected to localhost.&lt;br /&gt;
Escape character is '^]'.&lt;br /&gt;
Open On-Chip Debugger&lt;br /&gt;
&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Type the following into the OpenOCD shell:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
reset&lt;br /&gt;
halt&lt;br /&gt;
flash probe 0&lt;br /&gt;
stm32x mass_erase 0&lt;br /&gt;
flash write_bank 0 build/maple_boot.bin 0&lt;br /&gt;
reset&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Disconnect the JTAG connector from the Maple board.&lt;br /&gt;
* Now you should be able to reset the board using the reset switch, the LED should blink rapidly, and you should be able to use the bootloader again.&lt;br /&gt;
&lt;br /&gt;
== Reset Halt ==&lt;br /&gt;
&lt;br /&gt;
'reset halt' is an OpenOCD command that resets the board and then immediately halts it, leaving the debugger in control of the board before it starts executing code.&lt;br /&gt;
&lt;br /&gt;
You cannot do a 'reset halt' command with OpenOCD using Maple revisions up to Maple rev 5, because nJTRST and nTRST are currently connected. They may be separated on future Maple revisions, and then a 'reset halt' would work.&lt;/div&gt;</summary>
		<author><name>Adamfeuer</name></author>
		
	</entry>
	<entry>
		<id>http://www.opencircuits.com/index.php?title=Maple_JTAG_How_To&amp;diff=19975</id>
		<title>Maple JTAG How To</title>
		<link rel="alternate" type="text/html" href="http://www.opencircuits.com/index.php?title=Maple_JTAG_How_To&amp;diff=19975"/>
		<updated>2010-12-21T04:06:53Z</updated>

		<summary type="html">&lt;p&gt;Adamfeuer: added section on re-flashing bootloader&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page about using [http://en.wikipedia.org/wiki/Joint_Test_Action_Group JTAG] with Maple - JTAG will allow you to use a debugger program like GDB to debug programs running on the Maple. You can also use the JTAG adapter to re-flash (re-install) the bootloader in case you &amp;quot;brick&amp;quot; the board and can't install programs on it via the bootloader.&lt;br /&gt;
&lt;br /&gt;
* [http://leaflabs.com/docs/jtag.html Maple JTAG information page]&lt;br /&gt;
&lt;br /&gt;
== JTAG Debugger ==&lt;br /&gt;
&lt;br /&gt;
You need a piece of hardware called a JTAG debugger to manage the connection and debugging of the Maple. These plug into your computer via USB and into the Maple via its JTAG port.&lt;br /&gt;
&lt;br /&gt;
* [http://www.olimex.com/dev/arm-usb-ocd.html Olimex ARM-USB-OCD] - only this debugger is known to work. Olimex's ARM-USB-TINY is known not to work.&lt;br /&gt;
* [http://www.sparkfun.com/products/7834 ARM-USB-OCD at Sparkfun] &lt;br /&gt;
&lt;br /&gt;
If you know of other JTAG debuggers that are known to work, add them here.&lt;br /&gt;
&lt;br /&gt;
== JTAG Adapter ==&lt;br /&gt;
&lt;br /&gt;
Maple's 8-pin JTAG port is non-standard, so you need an adapter circuit to go between the ARM 20-pin connector and the Maple 8-pin connector.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/adamfeuer/maple/tree/master/jtagadapter Maple JTAG adapter circuit and board layout] - the one in Maple's source tree may work, but has extra resistors and other errors. This circuit is known to work.&lt;br /&gt;
* [https://github.com/adamfeuer/maple/raw/master/jtagadapter/maple-jtagadapter.png Circuit diagram]&lt;br /&gt;
* [https://github.com/adamfeuer/maple/blob/master/jtagadapter/maple-jtagadapter-brd.png picture of PCB design]&lt;br /&gt;
&lt;br /&gt;
== OpenOCD ==&lt;br /&gt;
&lt;br /&gt;
[http://openocd.berlios.de/web/ OpenOCD] is a program that can talk with the JTAG debugger. You can give commands to it directly, or you can configure GDB to use it to control your Maple board.&lt;br /&gt;
&lt;br /&gt;
Download the latest version of OpenOCD, build it, and install it. Then you can use Maple's build tools (Make) to run the JTAG debugger, or run it standalone so you can connect via another program.&lt;br /&gt;
&lt;br /&gt;
You will need to edit the OpenOCD configuration files to make them work with recent OpenOCD versions. Make the following changes:&lt;br /&gt;
* File support/openocd/run.cfg:&lt;br /&gt;
** Add at the beginning of the file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#daemon configuration&lt;br /&gt;
telnet_port 4444&lt;br /&gt;
gdb_port 3333&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Replace this line:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
flash bank stm32x 0x08000000 0x00020000 0 0 $_TARGETNAME&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*: with this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set _FLASHNAME $_CHIPNAME.flash&lt;br /&gt;
flash bank $_FLASHNAME stm32x 0x08000000 0x00020000 0 0 $_TARGETNAME&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Eclipse C/C++ ==&lt;br /&gt;
&lt;br /&gt;
If you want to use a visual debugger instead of GDB, you can use the Eclipse C/C++ tools. Here is an outline of the steps:&lt;br /&gt;
&lt;br /&gt;
# OpenOCD 0.4.0 from source. I installed the Codesourcery ARM toolchain from http://static.leaflabs.com/pub/codesourcery/ The direct URL for linux is: http://static.leaflabs.com/pub/codesourcery/arm-2009q3-68-arm-none-eabi-toolchain-linux32.tar.gz&lt;br /&gt;
# Install Eclipse C/C++ Helios from http://www.eclipse.org/downloads/&lt;br /&gt;
# Install the Zylin remote debugger Eclipse plugin using the instructions at http://opensource.zylin.com/embeddedcdt.html&lt;br /&gt;
# Configure OpenOCD and Zylin using this guide: http://linuxfreak.pl/elektronika/debugging-stm32-cortex-m3-microcontroller-using-eclipse-on-slackware&lt;br /&gt;
# Then I used Eclipse to launch OpenOCD, and started the debugger using a Debug Configuration. You can copy examples/blinky.cpp to main.cpp, then start and stop the program using the debugger!&lt;br /&gt;
&lt;br /&gt;
Here is a screenshot of blinky.cpp (main.cpp) stopped at a breakpoint: http://imgur.com/9CZ6q&lt;br /&gt;
&lt;br /&gt;
The USB interrupts are enabled, so single-stepping lands you in the USB interrupt service routine (ISR). You can disable the USB interrupts by commenting out the setupUSB() line in wirish/wirish.c .&lt;br /&gt;
&lt;br /&gt;
== Reflashing the bootloader ==&lt;br /&gt;
&lt;br /&gt;
You can use OpenOCD to re-flash (re-install) the bootloader if you accidentally &amp;quot;brick&amp;quot; the board somehow - if you can't install programs via the bootloader any more and resetting doesn't help. Here's how. &lt;br /&gt;
&lt;br /&gt;
* Read the guide here for background info: http://fun-tech.se/stm32/OpenOCD/gdb.php&lt;br /&gt;
* Build the Maple bootloader&lt;br /&gt;
** Check out a copy of the maple-bootloader from github: https://github.com/leaflabs/maple-bootloader&lt;br /&gt;
** Build it by typing 'make' in the root of the project&lt;br /&gt;
* Start OpenOCD:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ openocd -f support/openocd/run.cfg &lt;br /&gt;
Open On-Chip Debugger 0.4.0 (2010-11-28-20:19)&lt;br /&gt;
Licensed under GNU GPL v2&lt;br /&gt;
For bug reports, read&lt;br /&gt;
	http://openocd.berlios.de/doc/doxygen/bugs.html&lt;br /&gt;
1000 kHz&lt;br /&gt;
jtag_nsrst_delay: 100&lt;br /&gt;
jtag_ntrst_delay: 100&lt;br /&gt;
trst_and_srst separate srst_gates_jtag trst_push_pull srst_open_drain&lt;br /&gt;
Info : clock speed 1000 kHz&lt;br /&gt;
Info : JTAG tap: stm32.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)&lt;br /&gt;
Info : JTAG tap: stm32.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1)&lt;br /&gt;
Info : stm32.cpu: hardware has 6 breakpoints, 4 watchpoints&lt;br /&gt;
Info : JTAG tap: stm32.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)&lt;br /&gt;
Info : JTAG tap: stm32.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Telnet to the OpenOCD shell:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
telnet localhost 4444&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You should see something like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Connected to localhost.&lt;br /&gt;
Escape character is '^]'.&lt;br /&gt;
Open On-Chip Debugger&lt;br /&gt;
&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Type the following into the OpenOCD shell:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
reset&lt;br /&gt;
halt&lt;br /&gt;
flash probe 0&lt;br /&gt;
stm32x mass_erase 0&lt;br /&gt;
flash write_bank 0 build/maple_boot.bin 0&lt;br /&gt;
reset&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Disconnect the JTAG connector from the Maple board.&lt;br /&gt;
* Now you should be able to reset the board using the reset switch, the LED should blink rapidly, and you should be able to use the bootloader again.&lt;br /&gt;
&lt;br /&gt;
== Reset Halt ==&lt;br /&gt;
&lt;br /&gt;
'reset halt' is an OpenOCD command that resets the board and then immediately halts it, leaving the debugger in control of the board before it starts executing code.&lt;br /&gt;
&lt;br /&gt;
You cannot do a 'reset halt' command with OpenOCD using Maple revisions up to Maple rev 5, because nJTRST and nTRST are currently connected. They may be separated on future Maple revisions, and then a 'reset halt' would work.&lt;/div&gt;</summary>
		<author><name>Adamfeuer</name></author>
		
	</entry>
	<entry>
		<id>http://www.opencircuits.com/index.php?title=Maple_JTAG_How_To&amp;diff=19974</id>
		<title>Maple JTAG How To</title>
		<link rel="alternate" type="text/html" href="http://www.opencircuits.com/index.php?title=Maple_JTAG_How_To&amp;diff=19974"/>
		<updated>2010-12-21T03:37:01Z</updated>

		<summary type="html">&lt;p&gt;Adamfeuer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page about using [http://en.wikipedia.org/wiki/Joint_Test_Action_Group JTAG] with Maple - JTAG will allow you to use a debugger program like GDB to debug programs running on the Maple. You can also use the JTAG adapter to re-flash (re-install) the bootloader in case you &amp;quot;brick&amp;quot; the board and can't install programs on it via the bootloader.&lt;br /&gt;
&lt;br /&gt;
== JTAG Debugger ==&lt;br /&gt;
&lt;br /&gt;
You need a piece of hardware called a JTAG debugger to manage the connection and debugging of the Maple. These plug into your computer via USB and into the Maple via its JTAG port.&lt;br /&gt;
&lt;br /&gt;
* [http://www.olimex.com/dev/arm-usb-ocd.html Olimex ARM-USB-OCD] - only this debugger is known to work. Olimex's ARM-USB-TINY is known not to work.&lt;br /&gt;
* [http://www.sparkfun.com/products/7834 ARM-USB-OCD at Sparkfun] &lt;br /&gt;
&lt;br /&gt;
If you know of other JTAG debuggers that are known to work, add them here.&lt;br /&gt;
&lt;br /&gt;
== JTAG Adapter ==&lt;br /&gt;
&lt;br /&gt;
Maple's 8-pin JTAG port is non-standard, so you need an adapter circuit to go between the ARM 20-pin connector and the Maple 8-pin connector.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/adamfeuer/maple/tree/master/jtagadapter Maple JTAG adapter circuit and board layout] - the one in Maple's source tree may work, but has extra resistors and other errors. This circuit is known to work.&lt;br /&gt;
* [https://github.com/adamfeuer/maple/raw/master/jtagadapter/maple-jtagadapter.png Circuit diagram]&lt;br /&gt;
* [https://github.com/adamfeuer/maple/blob/master/jtagadapter/maple-jtagadapter-brd.png picture of PCB design]&lt;br /&gt;
&lt;br /&gt;
== OpenOCD ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://openocd.berlios.de/web/ OpenOCD] is a program that can talk with the JTAG debugger. You can give commands to it directly, or you can configure GDB to use it to control your Maple board.&lt;br /&gt;
&lt;br /&gt;
Download the latest version of OpenOCD, build it, and install it. Then you can use Maple's build tools (Make) to run the JTAG debugger, or run it standalone so you can connect via another program.&lt;br /&gt;
&lt;br /&gt;
You will need to edit the OpenOCD configuration files to make them work with recent OpenOCD versions. Make the following changes:&lt;br /&gt;
* File support/openocd/run.cfg:&lt;br /&gt;
** Add at the beginning of the file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#daemon configuration&lt;br /&gt;
telnet_port 4444&lt;br /&gt;
gdb_port 3333&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Replace this line:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
flash bank stm32x 0x08000000 0x00020000 0 0 $_TARGETNAME&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*: with this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set _FLASHNAME $_CHIPNAME.flash&lt;br /&gt;
flash bank $_FLASHNAME stm32x 0x08000000 0x00020000 0 0 $_TARGETNAME&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Eclipse C/C++ ==&lt;br /&gt;
&lt;br /&gt;
If you want to use a visual debugger instead of GDB, you can use the Eclipse C/C++ tools. Here is an outline of the steps:&lt;br /&gt;
&lt;br /&gt;
# OpenOCD 0.4.0 from source. I installed the Codesourcery ARM toolchain from http://static.leaflabs.com/pub/codesourcery/ The direct URL for linux is: http://static.leaflabs.com/pub/codesourcery/arm-2009q3-68-arm-none-eabi-toolchain-linux32.tar.gz&lt;br /&gt;
# Install Eclipse C/C++ Helios from http://www.eclipse.org/downloads/&lt;br /&gt;
# Install the Zylin remote debugger Eclipse plugin using the instructions at http://opensource.zylin.com/embeddedcdt.html&lt;br /&gt;
# Configure OpenOCD and Zylin using this guide: http://linuxfreak.pl/elektronika/debugging-stm32-cortex-m3-microcontroller-using-eclipse-on-slackware&lt;br /&gt;
# Then I used Eclipse to launch OpenOCD, and started the debugger using a Debug Configuration. You can copy examples/blinky.cpp to main.cpp, then start and stop the program using the debugger!&lt;br /&gt;
&lt;br /&gt;
Here is a screenshot of blinky.cpp (main.cpp) stopped at a breakpoint: http://imgur.com/9CZ6q&lt;br /&gt;
&lt;br /&gt;
The USB interrupts are enabled, so single-stepping lands you in the USB interrupt service routine (ISR). You can disable the USB interrupts by commenting out the setupUSB() line in wirish/wirish.c .&lt;/div&gt;</summary>
		<author><name>Adamfeuer</name></author>
		
	</entry>
	<entry>
		<id>http://www.opencircuits.com/index.php?title=Maple_JTAG_How_To&amp;diff=19973</id>
		<title>Maple JTAG How To</title>
		<link rel="alternate" type="text/html" href="http://www.opencircuits.com/index.php?title=Maple_JTAG_How_To&amp;diff=19973"/>
		<updated>2010-12-21T03:36:07Z</updated>

		<summary type="html">&lt;p&gt;Adamfeuer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page about using [http://en.wikipedia.org/wiki/Joint_Test_Action_Group JTAG] with Maple - JTAG will allow you to use a debugger program like GDB to debug programs running on the Maple. You can also use the JTAG adapter to re-flash (re-install) the bootloader in case you &amp;quot;brick&amp;quot; the board and can't install programs on it via the bootloader.&lt;br /&gt;
&lt;br /&gt;
== JTAG Debugger ==&lt;br /&gt;
&lt;br /&gt;
You need a piece of hardware called a JTAG debugger to manage the connection and debugging of the Maple. These plug into your computer via USB and into the Maple via its JTAG port.&lt;br /&gt;
&lt;br /&gt;
* [http://www.olimex.com/dev/arm-usb-ocd.html Olimex ARM-USB-OCD] - only this debugger is known to work. Olimex's ARM-USB-TINY is known not to work.&lt;br /&gt;
* [http://www.sparkfun.com/products/7834 ARM-USB-OCD at Sparkfun] &lt;br /&gt;
&lt;br /&gt;
If you know of other JTAG debuggers that are known to work, add them here.&lt;br /&gt;
&lt;br /&gt;
== JTAG Adapter ==&lt;br /&gt;
&lt;br /&gt;
Maple's 8-pin JTAG port is non-standard, so you need an adapter circuit to go between the ARM 20-pin connector and the Maple 8-pin connector.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/adamfeuer/maple/tree/master/jtagadapter Maple JTAG adapter circuit and board layout] - the one in Maple's source tree may work, but has extra resistors and other errors. This circuit is known to work.&lt;br /&gt;
* [https://github.com/adamfeuer/maple/raw/master/jtagadapter/maple-jtagadapter.png Circuit diagram]&lt;br /&gt;
* [https://github.com/adamfeuer/maple/blob/master/jtagadapter/maple-jtagadapter-brd.png picture of PCB design]&lt;br /&gt;
&lt;br /&gt;
== OpenOCD ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://openocd.berlios.de/web/ OpenOCD] is a program that can talk with the JTAG debugger. You can give commands to it directly, or you can configure GDB to use it to control your Maple board.&lt;br /&gt;
&lt;br /&gt;
Download the latest version of OpenOCD, build it, and install it. Then you can use Maple's build tools (Make) to run the JTAG debugger, or run it standalone so you can connect via another program.&lt;br /&gt;
&lt;br /&gt;
You will need to edit the OpenOCD configuration files to make them work with recent OpenOCD versions. Make the following changes:&lt;br /&gt;
* File support/openocd/run.cfg:&lt;br /&gt;
** Add at the beginning of the file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#daemon configuration&lt;br /&gt;
telnet_port 4444&lt;br /&gt;
gdb_port 3333&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Replace this line:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-flash bank stm32x 0x08000000 0x00020000 0 0 $_TARGETNAME&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*: with this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set _FLASHNAME $_CHIPNAME.flash&lt;br /&gt;
flash bank $_FLASHNAME stm32x 0x08000000 0x00020000 0 0 $_TARGETNAME&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Eclipse C/C++ ==&lt;br /&gt;
&lt;br /&gt;
If you want to use a visual debugger instead of GDB, you can use the Eclipse C/C++ tools. Here is an outline of the steps:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# OpenOCD 0.4.0 from source. I installed the Codesourcery ARM toolchain from http://static.leaflabs.com/pub/codesourcery/ The direct URL for linux is: http://static.leaflabs.com/pub/codesourcery/arm-2009q3-68-arm-none-eabi-toolchain-linux32.tar.gz&lt;br /&gt;
# Install Eclipse C/C++ Helios from http://www.eclipse.org/downloads/&lt;br /&gt;
# Install the Zylin remote debugger Eclipse plugin using the instructions at http://opensource.zylin.com/embeddedcdt.html&lt;br /&gt;
# Configure OpenOCD and Zylin using this guide: http://linuxfreak.pl/elektronika/debugging-stm32-cortex-m3-microcontroller-using-eclipse-on-slackware&lt;br /&gt;
# Then I used Eclipse to launch OpenOCD, and started the debugger using a Debug Configuration. You can copy examples/blinky.cpp to main.cpp, then start and stop the program using the debugger!&lt;br /&gt;
&lt;br /&gt;
Here is a screenshot of blinky.cpp (main.cpp) stopped at a breakpoint: http://imgur.com/9CZ6q&lt;br /&gt;
&lt;br /&gt;
The USB interrupts are enabled, so single-stepping lands you in the USB interrupt service routine (ISR). You can disable the USB interrupts by commenting out the setupUSB() line in wirish/wirish.c .&lt;/div&gt;</summary>
		<author><name>Adamfeuer</name></author>
		
	</entry>
	<entry>
		<id>http://www.opencircuits.com/index.php?title=Maple_JTAG_How_To&amp;diff=19972</id>
		<title>Maple JTAG How To</title>
		<link rel="alternate" type="text/html" href="http://www.opencircuits.com/index.php?title=Maple_JTAG_How_To&amp;diff=19972"/>
		<updated>2010-12-21T03:26:38Z</updated>

		<summary type="html">&lt;p&gt;Adamfeuer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page about using [http://en.wikipedia.org/wiki/Joint_Test_Action_Group JTAG] with Maple - JTAG will allow you to use a debugger program like GDB to debug programs running on the Maple. You can also use the JTAG adapter to re-flash (re-install) the bootloader in case you &amp;quot;brick&amp;quot; the board and can't install programs on it via the bootloader.&lt;br /&gt;
&lt;br /&gt;
== JTAG Debugger ==&lt;br /&gt;
&lt;br /&gt;
You need a piece of hardware called a JTAG debugger to manage the connection and debugging of the Maple. These plug into your computer via USB and into the Maple via its JTAG port.&lt;br /&gt;
&lt;br /&gt;
* [http://www.olimex.com/dev/arm-usb-ocd.html Olimex ARM-USB-OCD] - only this debugger is known to work. Olimex's ARM-USB-TINY is known not to work.&lt;br /&gt;
* [http://www.sparkfun.com/products/7834 ARM-USB-OCD at Sparkfun] &lt;br /&gt;
&lt;br /&gt;
If you know of other JTAG debuggers that are known to work, add them here.&lt;br /&gt;
&lt;br /&gt;
== JTAG Adapter ==&lt;br /&gt;
&lt;br /&gt;
Maple's 8-pin JTAG port is non-standard, so you need an adapter circuit to go between the ARM 20-pin connector and the Maple 8-pin connector.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/adamfeuer/maple/tree/master/jtagadapter Maple JTAG adapter circuit and board layout] - the one in Maple's source tree may work, but has extra resistors and other errors. This circuit is known to work.&lt;br /&gt;
* [https://github.com/adamfeuer/maple/raw/master/jtagadapter/maple-jtagadapter.png Circuit diagram]&lt;br /&gt;
* [https://github.com/adamfeuer/maple/blob/master/jtagadapter/maple-jtagadapter-brd.png picture of PCB design]&lt;br /&gt;
&lt;br /&gt;
== OpenOCD ==&lt;br /&gt;
&lt;br /&gt;
[http://openocd.berlios.de/web/ OpenOCD] is a program that can talk with the JTAG debugger. You can give commands to it directly, or you can configure GDB to use it to control your Maple board.&lt;br /&gt;
&lt;br /&gt;
Download the latest version of OpenOCD, build it, and install it. Then you can use Maple's build tools (Make) to run the JTAG debugger, or run it standalone so you can connect via another program.&lt;br /&gt;
&lt;br /&gt;
You will need to edit the OpenOCD configuration files to make them work with recent OpenOCD versions. Make the following changes:&lt;br /&gt;
* File support/openocd/run.cfg:&lt;br /&gt;
** Add at the beginning of the file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#daemon configuration&lt;br /&gt;
telnet_port 4444&lt;br /&gt;
gdb_port 3333&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Replace this line:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-flash bank stm32x 0x08000000 0x00020000 0 0 $_TARGETNAME&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set _FLASHNAME $_CHIPNAME.flash&lt;br /&gt;
flash bank $_FLASHNAME stm32x 0x08000000 0x00020000 0 0 $_TARGETNAME&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Eclipse C/C++ ==&lt;br /&gt;
&lt;br /&gt;
You&lt;/div&gt;</summary>
		<author><name>Adamfeuer</name></author>
		
	</entry>
	<entry>
		<id>http://www.opencircuits.com/index.php?title=Maple_JTAG_How_To&amp;diff=19971</id>
		<title>Maple JTAG How To</title>
		<link rel="alternate" type="text/html" href="http://www.opencircuits.com/index.php?title=Maple_JTAG_How_To&amp;diff=19971"/>
		<updated>2010-12-21T03:24:47Z</updated>

		<summary type="html">&lt;p&gt;Adamfeuer: /* OpenOCD */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page about using [http://en.wikipedia.org/wiki/Joint_Test_Action_Group JTAG] with Maple - JTAG will allow you to use a debugger like GDB to debug programs running on the Maple. You can also use the JTAG adapter to re-flash (re-install) the bootloader in case you &amp;quot;brick&amp;quot; the board and can't install programs on it via the bootloader.&lt;br /&gt;
&lt;br /&gt;
== JTAG Debugger ==&lt;br /&gt;
&lt;br /&gt;
You need a piece of hardware called a JTAG debugger to manage the connection and debugging of the Maple. These plug into your computer via USB and into the Maple via its JTAG port.&lt;br /&gt;
&lt;br /&gt;
* [http://www.olimex.com/dev/arm-usb-ocd.html Olimex ARM-USB-OCD] - only this debugger is known to work. Olimex's ARM-USB-TINY is known not to work.&lt;br /&gt;
* [http://www.sparkfun.com/products/7834 ARM-USB-OCD at Sparkfun] &lt;br /&gt;
&lt;br /&gt;
If you know of other JTAG debuggers that are known to work, add them here.&lt;br /&gt;
&lt;br /&gt;
== JTAG Adapter ==&lt;br /&gt;
&lt;br /&gt;
Maple's 8-pin JTAG port is non-standard, so you need an adapter circuit to go between the ARM 20-pin connector and the Maple 8-pin connector.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/adamfeuer/maple/tree/master/jtagadapter Maple JTAG adapter circuit and board layout] - the one in Maple's source tree may work, but has extra resistors and other errors. This circuit is known to work.&lt;br /&gt;
* [https://github.com/adamfeuer/maple/raw/master/jtagadapter/maple-jtagadapter.png Circuit diagram]&lt;br /&gt;
* [https://github.com/adamfeuer/maple/blob/master/jtagadapter/maple-jtagadapter-brd.png picture of PCB design]&lt;br /&gt;
&lt;br /&gt;
== OpenOCD ==&lt;br /&gt;
&lt;br /&gt;
[http://openocd.berlios.de/web/ OpenOCD] is a program that can talk with the JTAG debugger. You can give commands to it directly, or you can configure GDB to use it to control your Maple board.&lt;br /&gt;
&lt;br /&gt;
Download the latest version of OpenOCD, build it, and install it. Then you can use Maple's build tools (Make) to run the JTAG debugger, or run it standalone so you can connect via another program.&lt;br /&gt;
&lt;br /&gt;
You will need to edit the OpenOCD configuration files to make them work with recent OpenOCD versions. Make the following changes:&lt;br /&gt;
* File support/openocd/run.cfg:&lt;br /&gt;
** Add at the beginning of the file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#daemon configuration&lt;br /&gt;
telnet_port 4444&lt;br /&gt;
gdb_port 3333&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 Replace this line:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-flash bank stm32x 0x08000000 0x00020000 0 0 $_TARGETNAME&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set _FLASHNAME $_CHIPNAME.flash&lt;br /&gt;
flash bank $_FLASHNAME stm32x 0x08000000 0x00020000 0 0 $_TARGETNAME&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Eclipse C/C++ ==&lt;br /&gt;
&lt;br /&gt;
You&lt;/div&gt;</summary>
		<author><name>Adamfeuer</name></author>
		
	</entry>
	<entry>
		<id>http://www.opencircuits.com/index.php?title=Maple_JTAG_How_To&amp;diff=19970</id>
		<title>Maple JTAG How To</title>
		<link rel="alternate" type="text/html" href="http://www.opencircuits.com/index.php?title=Maple_JTAG_How_To&amp;diff=19970"/>
		<updated>2010-12-21T03:22:57Z</updated>

		<summary type="html">&lt;p&gt;Adamfeuer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page about using [http://en.wikipedia.org/wiki/Joint_Test_Action_Group JTAG] with Maple - JTAG will allow you to use a debugger like GDB to debug programs running on the Maple. You can also use the JTAG adapter to re-flash (re-install) the bootloader in case you &amp;quot;brick&amp;quot; the board and can't install programs on it via the bootloader.&lt;br /&gt;
&lt;br /&gt;
== JTAG Debugger ==&lt;br /&gt;
&lt;br /&gt;
You need a piece of hardware called a JTAG debugger to manage the connection and debugging of the Maple. These plug into your computer via USB and into the Maple via its JTAG port.&lt;br /&gt;
&lt;br /&gt;
* [http://www.olimex.com/dev/arm-usb-ocd.html Olimex ARM-USB-OCD] - only this debugger is known to work. Olimex's ARM-USB-TINY is known not to work.&lt;br /&gt;
* [http://www.sparkfun.com/products/7834 ARM-USB-OCD at Sparkfun] &lt;br /&gt;
&lt;br /&gt;
If you know of other JTAG debuggers that are known to work, add them here.&lt;br /&gt;
&lt;br /&gt;
== JTAG Adapter ==&lt;br /&gt;
&lt;br /&gt;
Maple's 8-pin JTAG port is non-standard, so you need an adapter circuit to go between the ARM 20-pin connector and the Maple 8-pin connector.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/adamfeuer/maple/tree/master/jtagadapter Maple JTAG adapter circuit and board layout] - the one in Maple's source tree may work, but has extra resistors and other errors. This circuit is known to work.&lt;br /&gt;
* [https://github.com/adamfeuer/maple/raw/master/jtagadapter/maple-jtagadapter.png Circuit diagram]&lt;br /&gt;
* [https://github.com/adamfeuer/maple/blob/master/jtagadapter/maple-jtagadapter-brd.png picture of PCB design]&lt;br /&gt;
&lt;br /&gt;
== OpenOCD ==&lt;br /&gt;
&lt;br /&gt;
[http://openocd.berlios.de/web/ OpenOCD] is a program that can talk with the JTAG debugger. You can give commands to it directly, or you can configure GDB to use it to control your Maple board.&lt;br /&gt;
&lt;br /&gt;
Download the latest version of OpenOCD, build it, and install it. Then you can use Maple's build tools (Make) to run the JTAG debugger, or run it standalone so you can connect via another program.&lt;br /&gt;
&lt;br /&gt;
You will need to edit the OpenOCD configuration files to make them work with recent OpenOCD versions. Make the following changes:&lt;br /&gt;
* File support/openocd/run.cfg:&lt;br /&gt;
** Add at the beginning of the file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#daemon configuration&lt;br /&gt;
telnet_port 4444&lt;br /&gt;
gdb_port 3333&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
** Replace this line:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-flash bank stm32x 0x08000000 0x00020000 0 0 $_TARGETNAME&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set _FLASHNAME $_CHIPNAME.flash&lt;br /&gt;
flash bank $_FLASHNAME stm32x 0x08000000 0x00020000 0 0 $_TARGETNAME&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Eclipse C/C++ ==&lt;br /&gt;
&lt;br /&gt;
You&lt;/div&gt;</summary>
		<author><name>Adamfeuer</name></author>
		
	</entry>
	<entry>
		<id>http://www.opencircuits.com/index.php?title=Maple_JTAG_How_To&amp;diff=19969</id>
		<title>Maple JTAG How To</title>
		<link rel="alternate" type="text/html" href="http://www.opencircuits.com/index.php?title=Maple_JTAG_How_To&amp;diff=19969"/>
		<updated>2010-12-21T03:12:37Z</updated>

		<summary type="html">&lt;p&gt;Adamfeuer: initial page creation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page about using [http://en.wikipedia.org/wiki/Joint_Test_Action_Group JTAG] with Maple - JTAG will allow you to use a debugger like GDB to debug programs running on the Maple. You can also use the JTAG adapter to re-flash (re-install) the bootloader in case you &amp;quot;brick&amp;quot; the board and can't install programs on it via the bootloader.&lt;br /&gt;
&lt;br /&gt;
== JTAG Debugger ==&lt;br /&gt;
&lt;br /&gt;
You need a JTAG debugger to manage the connection and debugging of the Maple. These plug into your computer via USB and into the Maple via its JTAG port.&lt;br /&gt;
&lt;br /&gt;
* [http://www.olimex.com/dev/arm-usb-ocd.html Olimex ARM-USB-OCD] - only this debugger is known to work. Olimex's ARM-USB-TINY is known not to work.&lt;br /&gt;
* [http://www.sparkfun.com/products/7834 ARM-USB-OCD at Sparkfun] &lt;br /&gt;
&lt;br /&gt;
== JTAG Adapter ==&lt;br /&gt;
&lt;br /&gt;
Maple's 8-pin JTAG port is non-standard, so you need an adapter circuit to go between the ARM 20-pin connector and the Maple 8-pin connector.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/adamfeuer/maple/tree/master/jtagadapter Maple JTAG adapter circuit and board layout] - the one in Maple's source tree may work, but has extra resistors and other errors. This circuit is known to work.&lt;br /&gt;
* [https://github.com/adamfeuer/maple/raw/master/jtagadapter/maple-jtagadapter.png Circuit diagram]&lt;br /&gt;
* [https://github.com/adamfeuer/maple/blob/master/jtagadapter/maple-jtagadapter-brd.png picture of PCB design]&lt;/div&gt;</summary>
		<author><name>Adamfeuer</name></author>
		
	</entry>
	<entry>
		<id>http://www.opencircuits.com/index.php?title=LeafLabs&amp;diff=19968</id>
		<title>LeafLabs</title>
		<link rel="alternate" type="text/html" href="http://www.opencircuits.com/index.php?title=LeafLabs&amp;diff=19968"/>
		<updated>2010-12-21T02:56:58Z</updated>

		<summary type="html">&lt;p&gt;Adamfeuer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page about the Leaf Labs STM32 boards, such as the Maple - an open source hardware and software ARM Cortex M3 single board computer with Arduino-compatible expansion connectors and form factor.&lt;br /&gt;
&lt;br /&gt;
[[File:maple.jpg|thumb|alt=Maple revision 5 board|Maple revision 5 board]]&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
* [http://leaflabs.com/ Leaf Labs website]&lt;br /&gt;
* [http://leaflabs.com/devices/maple/ Maple board] at Leaf Labs website&lt;br /&gt;
* [http://leaflabs.com/docs/ Maple documentation]&lt;br /&gt;
* [http://leaflabs.com/devices/maple/ Leaf Labs forums] - support and discussion&lt;br /&gt;
* [http://leaflabs.com/devices/maple/ Leaf Labs on Github] - source code for board designs, firmware, IDE, and documentation&lt;br /&gt;
* [http://www.st.com/internet/mcu/class/1734.jsp STM 32 page] at [http://www.st.com ST Electronics] - the system-on-chip that the Maple uses. Get STM32 reference manuals and application notes here.&lt;br /&gt;
&lt;br /&gt;
== How to guides ==&lt;br /&gt;
&lt;br /&gt;
* [[Maple JTAG How To]] - how to use Maple's JTAG adapter for debugging; how to build a Maple JTAG debugger; re-flashing the board; and more.&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&lt;br /&gt;
* Add documentation supplementation or errata pages here&lt;/div&gt;</summary>
		<author><name>Adamfeuer</name></author>
		
	</entry>
	<entry>
		<id>http://www.opencircuits.com/index.php?title=LeafLabs&amp;diff=19967</id>
		<title>LeafLabs</title>
		<link rel="alternate" type="text/html" href="http://www.opencircuits.com/index.php?title=LeafLabs&amp;diff=19967"/>
		<updated>2010-12-21T02:56:28Z</updated>

		<summary type="html">&lt;p&gt;Adamfeuer: added Maple docs link; added Maple JTAG How To page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page about the Leaf Labs STM32 boards, such as the Maple - an open source hardware and software ARM Cortex M3 single board computer with Arduino-compatible expansion connectors and form factor.&lt;br /&gt;
&lt;br /&gt;
[[File:maple.jpg|thumb|alt=Maple revision 5 board|Maple revision 5 board]]&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
* [http://leaflabs.com/ Leaf Labs website]&lt;br /&gt;
* [http://leaflabs.com/devices/maple/ Maple board] at Leaf Labs website&lt;br /&gt;
* [http://leaflabs.com/docs/ Maple documentation]&lt;br /&gt;
* [http://leaflabs.com/devices/maple/ Leaf Labs forums] - support and discussion&lt;br /&gt;
* [http://leaflabs.com/devices/maple/ Leaf Labs on Github] - source code for board designs, firmware, IDE, and documentation&lt;br /&gt;
* [http://www.st.com/internet/mcu/class/1734.jsp STM 32 page] at [http://www.st.com ST Electronics] - the system-on-chip that the Maple uses. Get STM32 reference manuals and application notes here.&lt;br /&gt;
&lt;br /&gt;
== How to guides ==&lt;br /&gt;
&lt;br /&gt;
* [Maple JTAG How To] - how to use Maple's JTAG adapter for debugging; how to build a Maple JTAG debugger; re-flashing the board; and more.&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&lt;br /&gt;
* Add documentation supplementation or errata pages here&lt;/div&gt;</summary>
		<author><name>Adamfeuer</name></author>
		
	</entry>
	<entry>
		<id>http://www.opencircuits.com/index.php?title=LeafLabs&amp;diff=19966</id>
		<title>LeafLabs</title>
		<link rel="alternate" type="text/html" href="http://www.opencircuits.com/index.php?title=LeafLabs&amp;diff=19966"/>
		<updated>2010-12-20T17:23:19Z</updated>

		<summary type="html">&lt;p&gt;Adamfeuer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page about the Leaf Labs STM32 boards, such as the Maple - an open source hardware and software ARM Cortex M3 single board computer with Arduino-compatible expansion connectors and form factor.&lt;br /&gt;
&lt;br /&gt;
[[File:maple.jpg|thumb|alt=Maple revision 5 board|Maple revision 5 board]]&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
* [http://leaflabs.com/ Leaf Labs website]&lt;br /&gt;
* [http://leaflabs.com/devices/maple/ Maple board] at Leaf Labs website&lt;br /&gt;
* [http://leaflabs.com/devices/maple/ Leaf Labs forums] - support and discussion&lt;br /&gt;
* [http://leaflabs.com/devices/maple/ Leaf Labs on Github] - source code for board designs, firmware, IDE, and documentation&lt;br /&gt;
* [http://www.st.com/internet/mcu/class/1734.jsp STM 32 page] at [http://www.st.com ST Electronics] - the system-on-chip that the Maple uses. Get STM32 reference manuals and application notes here.&lt;br /&gt;
&lt;br /&gt;
== How to guides ==&lt;br /&gt;
&lt;br /&gt;
* Add your pages here&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&lt;br /&gt;
* Add documentation supplementation or errata pages here&lt;/div&gt;</summary>
		<author><name>Adamfeuer</name></author>
		
	</entry>
	<entry>
		<id>http://www.opencircuits.com/index.php?title=LeafLabs&amp;diff=19965</id>
		<title>LeafLabs</title>
		<link rel="alternate" type="text/html" href="http://www.opencircuits.com/index.php?title=LeafLabs&amp;diff=19965"/>
		<updated>2010-12-20T17:22:47Z</updated>

		<summary type="html">&lt;p&gt;Adamfeuer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page about the Leaf Labs ST32 boards, such as the Maple - an open source hardware and software ARM Cortex M3 single board computer with Arduino-compatible expansion connectors and form factor.&lt;br /&gt;
&lt;br /&gt;
[[File:maple.jpg|thumb|alt=Maple revision 5 board|Maple revision 5 board]]&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
* [http://leaflabs.com/ Leaf Labs website]&lt;br /&gt;
* [http://leaflabs.com/devices/maple/ Maple board] at Leaf Labs website&lt;br /&gt;
* [http://leaflabs.com/devices/maple/ Leaf Labs forums] - support and discussion&lt;br /&gt;
* [http://leaflabs.com/devices/maple/ Leaf Labs on Github] - source code for board designs, firmware, IDE, and documentation&lt;br /&gt;
* [http://www.st.com/internet/mcu/class/1734.jsp STM 32 page] at [http://www.st.com ST Electronics] - the system-on-chip that the Maple uses. Get STM32 reference manuals and application notes here.&lt;br /&gt;
&lt;br /&gt;
== How to guides ==&lt;br /&gt;
&lt;br /&gt;
* Add your pages here&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&lt;br /&gt;
* Add documentation supplementation or errata pages here&lt;/div&gt;</summary>
		<author><name>Adamfeuer</name></author>
		
	</entry>
	<entry>
		<id>http://www.opencircuits.com/index.php?title=LeafLabs&amp;diff=19963</id>
		<title>LeafLabs</title>
		<link rel="alternate" type="text/html" href="http://www.opencircuits.com/index.php?title=LeafLabs&amp;diff=19963"/>
		<updated>2010-12-20T16:19:12Z</updated>

		<summary type="html">&lt;p&gt;Adamfeuer: moved Leaf Labs Maple to Leaf Labs:&amp;amp;#32;I realized that there are more STM32 boards coming from Leaf, it applies to not just Maple.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page about the Leaf Labs Maple board - an open source hardware and software ARM Cortex M3 single board computer with Arduino-compatible expansion connectors and form factor.&lt;br /&gt;
&lt;br /&gt;
[[File:maple.jpg|thumb|alt=Maple revision 5 board|Maple revision 5 board]]&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
* [http://leaflabs.com/ Leaf Labs website]&lt;br /&gt;
* [http://leaflabs.com/devices/maple/ Maple board] at Leaf Labs website&lt;br /&gt;
* [http://leaflabs.com/devices/maple/ Leaf Labs forums] - support and discussion&lt;br /&gt;
* [http://leaflabs.com/devices/maple/ Leaf Labs on Github] - source code for board designs, firmware, IDE, and documentation&lt;br /&gt;
* [http://www.st.com/internet/mcu/class/1734.jsp STM 32 page] at [http://www.st.com ST Electronics] - the system-on-chip that the Maple uses. Get STM32 reference manuals and application notes here.&lt;br /&gt;
&lt;br /&gt;
== How to guides ==&lt;br /&gt;
&lt;br /&gt;
* Add your pages here&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&lt;br /&gt;
* Add documentation supplementation or errata pages here&lt;/div&gt;</summary>
		<author><name>Adamfeuer</name></author>
		
	</entry>
	<entry>
		<id>http://www.opencircuits.com/index.php?title=Leaf_Labs_Maple&amp;diff=19964</id>
		<title>Leaf Labs Maple</title>
		<link rel="alternate" type="text/html" href="http://www.opencircuits.com/index.php?title=Leaf_Labs_Maple&amp;diff=19964"/>
		<updated>2010-12-20T16:19:12Z</updated>

		<summary type="html">&lt;p&gt;Adamfeuer: moved Leaf Labs Maple to Leaf Labs:&amp;amp;#32;I realized that there are more STM32 boards coming from Leaf, it applies to not just Maple.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Leaf Labs]]&lt;/div&gt;</summary>
		<author><name>Adamfeuer</name></author>
		
	</entry>
	<entry>
		<id>http://www.opencircuits.com/index.php?title=LeafLabs&amp;diff=19960</id>
		<title>LeafLabs</title>
		<link rel="alternate" type="text/html" href="http://www.opencircuits.com/index.php?title=LeafLabs&amp;diff=19960"/>
		<updated>2010-12-20T06:27:15Z</updated>

		<summary type="html">&lt;p&gt;Adamfeuer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page about the Leaf Labs Maple board - an open source hardware and software ARM Cortex M3 single board computer with Arduino-compatible expansion connectors and form factor.&lt;br /&gt;
&lt;br /&gt;
[[File:maple.jpg|thumb|alt=Maple revision 5 board|Maple revision 5 board]]&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
* [http://leaflabs.com/ Leaf Labs website]&lt;br /&gt;
* [http://leaflabs.com/devices/maple/ Maple board] at Leaf Labs website&lt;br /&gt;
* [http://leaflabs.com/devices/maple/ Leaf Labs forums] - support and discussion&lt;br /&gt;
* [http://leaflabs.com/devices/maple/ Leaf Labs on Github] - source code for board designs, firmware, IDE, and documentation&lt;br /&gt;
* [http://www.st.com/internet/mcu/class/1734.jsp STM 32 page] at [http://www.st.com ST Electronics] - the system-on-chip that the Maple uses. Get STM32 reference manuals and application notes here.&lt;br /&gt;
&lt;br /&gt;
== How to guides ==&lt;br /&gt;
&lt;br /&gt;
* Add your pages here&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&lt;br /&gt;
* Add documentation supplementation or errata pages here&lt;/div&gt;</summary>
		<author><name>Adamfeuer</name></author>
		
	</entry>
	<entry>
		<id>http://www.opencircuits.com/index.php?title=LeafLabs&amp;diff=19959</id>
		<title>LeafLabs</title>
		<link rel="alternate" type="text/html" href="http://www.opencircuits.com/index.php?title=LeafLabs&amp;diff=19959"/>
		<updated>2010-12-20T06:26:05Z</updated>

		<summary type="html">&lt;p&gt;Adamfeuer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page about the Leaf Labs Maple board - an open source hardware and software ARM Cortex M3 single board computer with Arduino-compatible expansion connectors and form factor.&lt;br /&gt;
&lt;br /&gt;
[[File:maple.jpg|thumb|alt=Maple revision 5 board|Maple revision 5 board]]&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
* [http://leaflabs.com/ Leaf Labs website]&lt;br /&gt;
* [http://leaflabs.com/devices/maple/ Maple board] at Leaf Labs website&lt;br /&gt;
* [http://leaflabs.com/devices/maple/ Leaf Labs forums] - support and discussion&lt;br /&gt;
* [http://leaflabs.com/devices/maple/ Leaf Labs on Github] - source code for board designs, firmware, IDE, and documentation&lt;br /&gt;
* [http://www.st.com/internet/mcu/class/1734.jsp STM 32 page] at [http://www.st.com ST Electronics] - the system-on-chip that the Maple uses. Get STM32 reference manuals and application notes here.&lt;br /&gt;
&lt;br /&gt;
== How to guides ==&lt;br /&gt;
&lt;br /&gt;
* Add your pages here&lt;/div&gt;</summary>
		<author><name>Adamfeuer</name></author>
		
	</entry>
	<entry>
		<id>http://www.opencircuits.com/index.php?title=File:Maple.jpg&amp;diff=19958</id>
		<title>File:Maple.jpg</title>
		<link rel="alternate" type="text/html" href="http://www.opencircuits.com/index.php?title=File:Maple.jpg&amp;diff=19958"/>
		<updated>2010-12-20T06:24:27Z</updated>

		<summary type="html">&lt;p&gt;Adamfeuer: Leaf Labs Maple revision 5 board&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Leaf Labs Maple revision 5 board&lt;/div&gt;</summary>
		<author><name>Adamfeuer</name></author>
		
	</entry>
	<entry>
		<id>http://www.opencircuits.com/index.php?title=LeafLabs&amp;diff=19957</id>
		<title>LeafLabs</title>
		<link rel="alternate" type="text/html" href="http://www.opencircuits.com/index.php?title=LeafLabs&amp;diff=19957"/>
		<updated>2010-12-20T06:21:59Z</updated>

		<summary type="html">&lt;p&gt;Adamfeuer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page about the Leaf Labs Maple board - an open source hardware and software ARM Cortex M3 single board computer with Arduino-compatible expansion connectors and form factor.&lt;br /&gt;
&lt;br /&gt;
[[File:maple.jpg|thumb|alt=Maple revision 5 board|Maple revision 5 board]]&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
* [http://leaflabs.com/ Leaf Labs website]&lt;br /&gt;
* [http://leaflabs.com/devices/maple/ Maple board] at Leaf Labs website&lt;br /&gt;
* [http://leaflabs.com/devices/maple/ Leaf Labs forums]&lt;br /&gt;
* [http://leaflabs.com/devices/maple/ Leaf Labs on Github] - source code for board designs, firmware, IDE, and documentation&lt;br /&gt;
* [http://www.st.com/internet/mcu/class/1734.jsp STM 32 page] at [http://www.st.com ST Electronics] - the system-on-chip that the Maple uses. Get STM32 reference manuals and application notes here.&lt;br /&gt;
&lt;br /&gt;
== How to guides ==&lt;br /&gt;
&lt;br /&gt;
* Add your pages here&lt;/div&gt;</summary>
		<author><name>Adamfeuer</name></author>
		
	</entry>
	<entry>
		<id>http://www.opencircuits.com/index.php?title=LeafLabs&amp;diff=19956</id>
		<title>LeafLabs</title>
		<link rel="alternate" type="text/html" href="http://www.opencircuits.com/index.php?title=LeafLabs&amp;diff=19956"/>
		<updated>2010-12-20T06:17:14Z</updated>

		<summary type="html">&lt;p&gt;Adamfeuer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page about the Leaf Labs Maple board - an open source hardware and software ARM Cortex M3 single board computer with Arduino-compatible expansion connectors and form factor.&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
* [http://leaflabs.com/ Leaf Labs website]&lt;br /&gt;
* [http://leaflabs.com/devices/maple/ Maple board] at Leaf Labs website&lt;br /&gt;
* [http://leaflabs.com/devices/maple/ Leaf Labs forums]&lt;br /&gt;
* [http://leaflabs.com/devices/maple/ Leaf Labs on Github] - source code for board designs, firmware, IDE, and documentation&lt;br /&gt;
* [http://www.st.com/internet/mcu/class/1734.jsp STM 32 page] at [http://www.st.com ST Electronics] - the system-on-chip that the Maple uses. Get STM32 reference manuals and application notes here.&lt;br /&gt;
&lt;br /&gt;
== How to guides ==&lt;br /&gt;
&lt;br /&gt;
* Add your pages here&lt;/div&gt;</summary>
		<author><name>Adamfeuer</name></author>
		
	</entry>
	<entry>
		<id>http://www.opencircuits.com/index.php?title=Microbuilder_LPC1343&amp;diff=19955</id>
		<title>Microbuilder LPC1343</title>
		<link rel="alternate" type="text/html" href="http://www.opencircuits.com/index.php?title=Microbuilder_LPC1343&amp;diff=19955"/>
		<updated>2010-12-20T06:05:48Z</updated>

		<summary type="html">&lt;p&gt;Adamfeuer: initial page creation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page about the Microbuilder LPC1343 reference board which is based on an ARM Cortex M3 system on a chip by Phillips NXP&lt;br /&gt;
&lt;br /&gt;
* [http://www.microbuilder.eu Microbuilder website]&lt;br /&gt;
* [http://www.microbuilder.eu/Projects/LPC1343ReferenceDesign.aspx LPC1343 board]&lt;/div&gt;</summary>
		<author><name>Adamfeuer</name></author>
		
	</entry>
	<entry>
		<id>http://www.opencircuits.com/index.php?title=LeafLabs&amp;diff=19954</id>
		<title>LeafLabs</title>
		<link rel="alternate" type="text/html" href="http://www.opencircuits.com/index.php?title=LeafLabs&amp;diff=19954"/>
		<updated>2010-12-20T06:02:16Z</updated>

		<summary type="html">&lt;p&gt;Adamfeuer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page about the Leaf Labs Maple board - an open source hardware and software single board computer with Arduino-compatible expansion connectors and form factor.&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
* [http://leaflabs.com/ Leaf Labs website]&lt;br /&gt;
* [http://leaflabs.com/devices/maple/ Maple board] at Leaf Labs website&lt;br /&gt;
* [http://leaflabs.com/devices/maple/ Leaf Labs forums]&lt;br /&gt;
* [http://leaflabs.com/devices/maple/ Leaf Labs on Github] - source code for board designs, firmware, IDE, and documentation&lt;br /&gt;
&lt;br /&gt;
== How to guides ==&lt;br /&gt;
&lt;br /&gt;
* Add your pages here&lt;/div&gt;</summary>
		<author><name>Adamfeuer</name></author>
		
	</entry>
	<entry>
		<id>http://www.opencircuits.com/index.php?title=LeafLabs&amp;diff=19953</id>
		<title>LeafLabs</title>
		<link rel="alternate" type="text/html" href="http://www.opencircuits.com/index.php?title=LeafLabs&amp;diff=19953"/>
		<updated>2010-12-20T06:00:15Z</updated>

		<summary type="html">&lt;p&gt;Adamfeuer: initial page creation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page about the Leaf Labs Maple board - an open source hardware and software single board computer with Arduino-compatible expansion connectors and form factor.&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
* [http://leaflabs.com/ Leaf Labs website]&lt;br /&gt;
* [http://leaflabs.com/devices/maple/ Maple board] at Leaf Labs website&lt;br /&gt;
* [http://leaflabs.com/devices/maple/ Leaf Labs forums]&lt;br /&gt;
&lt;br /&gt;
== How to guides ==&lt;/div&gt;</summary>
		<author><name>Adamfeuer</name></author>
		
	</entry>
	<entry>
		<id>http://www.opencircuits.com/index.php?title=ARM_links&amp;diff=19952</id>
		<title>ARM links</title>
		<link rel="alternate" type="text/html" href="http://www.opencircuits.com/index.php?title=ARM_links&amp;diff=19952"/>
		<updated>2010-12-20T05:55:24Z</updated>

		<summary type="html">&lt;p&gt;Adamfeuer: Created page with 'This is a page for links to the various embedded ARM boards.  * Leaf Labs Maple - Cortex M3 design based on the STM32 ARM variant. * Microbuilder LPC1343 - Cortex M3 base…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page for links to the various embedded ARM boards.&lt;br /&gt;
&lt;br /&gt;
* [[Leaf Labs Maple]] - Cortex M3 design based on the STM32 ARM variant.&lt;br /&gt;
* [[Microbuilder LPC1343]] - Cortex M3 based on the Phillips/NXP LPC143&lt;/div&gt;</summary>
		<author><name>Adamfeuer</name></author>
		
	</entry>
	<entry>
		<id>http://www.opencircuits.com/index.php?title=Demo_board&amp;diff=19951</id>
		<title>Demo board</title>
		<link rel="alternate" type="text/html" href="http://www.opencircuits.com/index.php?title=Demo_board&amp;diff=19951"/>
		<updated>2010-12-20T05:49:36Z</updated>

		<summary type="html">&lt;p&gt;Adamfeuer: added ARM links page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Small PCBs (is there a better term than &amp;quot;small PCB&amp;quot; for the sorts of PCBs that are specifically designed to be hacked and modified -- they have pins that are perfectly aligned to be plugged into a solderless breadboard, or they have a prototyping area on-board?)&lt;br /&gt;
&lt;br /&gt;
Designed to be used as a [[components]].&lt;br /&gt;
&lt;br /&gt;
Rather than buying a raw [[microcontroller]], many people buy a small PCB that includes the microcontroller and other essential [[Popular Parts]] on a tiny little [[Microcontroller#Development_Boards | microcontroller development board]]. Many such boards are demo board, easy to plug into your solderless breadboard (or your custom PCB) that has just a few more things that make your project special.&lt;br /&gt;
&lt;br /&gt;
Later I learn:&lt;br /&gt;
&amp;quot;A plugin is a small electronic [http://en.wikibooks.org/wiki/Practical_Electronics/Plugins plug-in module] capable of being plugged directly into a breadboard, that fulfills a (usually simple) function.&amp;quot;&lt;br /&gt;
I also discover some people call these things &amp;quot;breadboardable&amp;quot; or &amp;quot;DIP-like&amp;quot;[http://spiffie.org/electronics/archives/hardware/Single%20Sided%20FT232RL%20USB-Serial%20Converter.html][http://www.usbmicro.com/documents/2CDECB6069BC98A8B0B408E789A25B26FDF6DF71.html] or &amp;quot;breadboard compatible&amp;quot;[http://sanguino.cc/].&lt;br /&gt;
&lt;br /&gt;
Occasionally called a &amp;quot;breakout board&amp;quot; or &amp;quot;adapter board&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== further reading ==&lt;br /&gt;
&lt;br /&gt;
=== Demo board comparisons and reviews ===&lt;br /&gt;
&lt;br /&gt;
* [http://diydrones.com/profiles/blog/show?id=705844%3ABlogPost%3A34592 A decision on Basic Stamps and Parallax -- Basic Stamp vs. Arduino vs. Propeller]&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
=== Lists of demo boards ===&lt;br /&gt;
&lt;br /&gt;
* [http://massmind.org/techref/microchip/alternatives.htm &amp;quot;Microchip PIC Alternatives&amp;quot;] lists many demo boards.&lt;br /&gt;
* [http://www.instructables.com/id/EBHMG9LHPCEWIFO3BC/ Instructables: Modules, bootloaders, and &amp;quot;hidden&amp;quot; microcontrollers] also lists many demo boards.&lt;br /&gt;
* Some people are looking for a &amp;quot;a plugin PCB, with a DIP-like interface&amp;quot; that can run Linux: [http://www.embeddedrelated.com/usenet/embedded/show/115403-1.php &amp;quot;Developing Embedded Systems (uC-Linux) on Breadboards.&amp;quot;] ''Does such a thing exist ?''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Demo boards, in no particular order ===&lt;br /&gt;
&lt;br /&gt;
==== PIC based boards ====&lt;br /&gt;
* Ready to use  [http://www.esipcb.com/embedded.htm daughter boards] based on PIC microcontrollers. Each model is designed to meet different price/performance requirements with the smallest possible footprint&lt;br /&gt;
&lt;br /&gt;
* [http://oopic.com/ OOPic: The Object-Oriented PIC.] The &amp;quot;ooPIC-S&amp;quot; board is a PCB with a large prototyping area and a PIC16F877. The &amp;quot;ooPIC-C&amp;quot; is a tiny stamp-like PCB that plugs into a solderless breadboard. Both hold a PIC16F877, a Flash memory chip, 3 LEDs, a voltage regulator, and a RS-232 tranciever). Both run the &amp;quot;ooPIC III+&amp;quot; firmware.&lt;br /&gt;
&lt;br /&gt;
* [http://en.wikipedia.org/wiki/PICAXE PICAXE] ... a variety of development boards ... from [http://www.rev-ed.co.uk/picaxe/ Revolution Education]&lt;br /&gt;
&lt;br /&gt;
* [http://beaglerobotics.com/catalog.pl?pID=32 BeagleBoard PIC module] plugs into standard solderless breadboard&lt;br /&gt;
&lt;br /&gt;
* [http://www.loginway.com/products PIC-01 Development Board]&lt;br /&gt;
&lt;br /&gt;
* [[USB Bit Whacker]]: [http://www.greta.dhs.org/UBW/ UBW (USB Bit Whacker)]&lt;br /&gt;
by Brian Schmalz&lt;br /&gt;
...&lt;br /&gt;
&amp;quot;The UBW board ... contains a Microchip PIC USB-capable microcontroller, headers to bring out all of the PICs signal lines (to a breadboard for example) ... costs about $15-$20 to build and is powered from the USB connection. ... All tools used to design this project are free, and the design is open to anyone to use for whatever they wish. Please build your own and improve upon it! If you don't want to build your own, you can buy them assembled and tested ... SparkFun hosts a USB forum where the UBW is a common discussion topic.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* [http://www.modtronix.com/ &amp;quot;modular PIC based single board computers (SBC) and expansion boards.&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
* http://microcontrollershop.com/ has a bunch of development boards (click on the type of CPU in the left column ... then when the sub-menu opens underneath the CPU type, click on the &amp;quot;boards&amp;quot; in that sub-menu ...) such as, for example, the [http://microcontrollershop.com/product_info.php?products_id=2326&amp;quot; PIC18F67J60 Web Server Prototyping Board, Ethernet, RS232]&lt;br /&gt;
&lt;br /&gt;
* Dontronics sells a variety of PIC-oriented [http://www.dontronics-shop.com/Proto-Boards-p-1-c-355.html proto boards] and [http://www.dontronics-shop.com/Development-Boards-p-1-c-356.html development boards] (as well as development boards for several other popular microprocessors).&lt;br /&gt;
&lt;br /&gt;
* [http://web.media.mit.edu/~ayb/irx/ iRX Prototyping Board]: a simple but malleable prototyping board for PIC based projects. It features the EEPROM programmable PIC16F84A, an MAX233 for RS232 port and infrared I/O. About half of the board is an empty prototyping area. Compare: Atmex.&lt;br /&gt;
&lt;br /&gt;
* [http://www.siriusmicro.com/ Sirius microSystems] has several &amp;quot;easily hackable&amp;quot; development boards, mostly based on Microchip PICmicro. Also posts circuits and schematic diagrams under a &amp;quot;Creative Commons Attribution-Noncommercial-Share Alike 3.0 License&amp;quot;, making them &amp;quot;open hardware&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* (FIXME: there may be a few more mentioned at http://massmind.org/techref/microchip/piclinks.htm that ought to be listed here.)&lt;br /&gt;
&lt;br /&gt;
* [http://www.melabs.com/ microEngineering Labs, Inc.] specializes in development tools for Microchip PIC® microcontrollers.&amp;quot; Lots of completely empty boards designed to be stuffed with various PICmicro chips and associated components ... such as the $19.95 [http://www.melabs.com/products/picproto/28pproto.htm PICPROTO-USB] -- compatible with 28 and 40-pin devices, this board is equipped with additional USB circuitry and connector for use with the USB-equipped PICmicros like the 16C745 and 18F4550.&lt;br /&gt;
&lt;br /&gt;
* [http://www.sourceboost.com/Products/EBlocks/Overview.html E-Blocks plug and play modules] for PICmicro prototyping. Compatible with many PIC16F and PIC18F MCUs.&lt;br /&gt;
&lt;br /&gt;
* [http://esipcb.com/embedded_E8100.htm E8100] based on dsPIC33F OEM single board sized in credit card footprint &lt;br /&gt;
&lt;br /&gt;
*[http://esipcb.com/embedded_E8140.htm E8140] based on PIC18F4680 single low cost board sized for minimum footprint&lt;br /&gt;
&lt;br /&gt;
*[http://esipcb.com/embedded_E8160.htm E8160] based on PIC18F2510single low cost board sized for minimum footprint&lt;br /&gt;
&lt;br /&gt;
* PIC [http://en.wikipedia.org/wiki/BASIC_Stamp BASIC Stamp]&lt;br /&gt;
* PIC [http://www.c-stamp.com/ C Stamp] intended to be a step up from the BASIC Stamp; uses a PIC18F6520 (32 KByte flash, 2 KByte RAM)&lt;br /&gt;
&lt;br /&gt;
* [http://www.protean-logic.com/ Protean Logic TICkit] -- The module is directly programmable in a library-centric Functional Basic&lt;br /&gt;
&lt;br /&gt;
* [http://www.k9spud.com/hoodmicro/ the HOODMICRO]&lt;br /&gt;
* [http://www.sskteracon.com/ SerReg] (FIXME: is this really a development board?)&lt;br /&gt;
* [http://massmind.org/techref/io/stepper/linistep LiniStepper] designed to drive stepper motors&lt;br /&gt;
* [http://massmind.org/techref/piclist/cump Communitary Universal Microcontroller Programmer]&lt;br /&gt;
&lt;br /&gt;
* [http://www.school-electronics.co.uk/ School electronics] has many &amp;quot;system module designs&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* AXEme Picaxe Construction Kit http://www.qrpme.com/ includes a small solderless protoboard&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Arduino boards ====&lt;br /&gt;
&lt;br /&gt;
* There's a huge number of AVR-based Arduino-like boards at [[Arduino Links]], most of which are breadboard-friendly.&lt;br /&gt;
&lt;br /&gt;
==== ARM boards =====&lt;br /&gt;
&lt;br /&gt;
* [[ARM links]] - there are a growing number of Arduino-like embedded ARM boards, offering more CPU power than Arduino but many of the same capabilities.&lt;br /&gt;
&lt;br /&gt;
==== Other demo boards ====&lt;br /&gt;
&lt;br /&gt;
* $4.30 [http://processors.wiki.ti.com/index.php/MSP430_LaunchPad_(MSP-EXP430G2) TI MSP430 LaunchPad]&lt;br /&gt;
* [http://www.uchobby.com/index.php/2008/02/19/bread-board-power-supply/ Bread Board Power Supply] -- a tiny little board that fits between a wall-wart and plugs into a solderless breadboard to supply regulated power. It accepts a wide variety of wall-warts because its full-wave rectifier and LM317 handle a wide range of AC and DC power supply, and its screw terminal headers let you plug in the wires.&lt;br /&gt;
&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Microcontroller#Development_platforms_for_hobbyists Wikipedia: microcontroller development platforms for hobbyists]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* A huge list of [http://blog.makezine.com/archive/kits/ Makezine kits], a few of which (&amp;quot;Daisy MP3 player&amp;quot;, some of the RepRap projects, &amp;quot;The IR-ritator&amp;quot;, etc.) use PICmicros, a few others that use Atmel AVRs (TV-B-Gone, etc.), one that uses a Freescale processor ...&lt;br /&gt;
&lt;br /&gt;
* AVR [http://thingm.com/products/blinkm BlinkM], which can be used as a AVR ATtiny45 development board&lt;br /&gt;
&lt;br /&gt;
* [http://ucontroller.com/ SpinStudio], a system designed for development using Parallax's Propeller(TM) Microcontroller.&lt;br /&gt;
&lt;br /&gt;
* AVR [http://ladyada.net/techproj/Atmex/index.html Atmex]: An entry-level Atmel Experimentation System. less than $10; includes Atmel ATtiny2313; a DB-9 and MAX232 for serial communication and downloading new programs (using a bootloader); LED. About half of the board is an empty prototyping area. Meant to be better than the iRX board.&lt;br /&gt;
&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;nanocore12&amp;quot;, much like the BASIC Stamp but using a Motorola/Freescale HCS12 instruction set http://www.nanocore12.com/ ; http://www.technologicalarts.com/myfiles/nc12.html from technological arts.&lt;br /&gt;
&lt;br /&gt;
* Micromint http://www.micromint.com/ sells little boards with DIP pinouts (and so can plug into protoboards) based on ARM7, Atmel AVR, and 8051 cores ...&lt;br /&gt;
&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;The uCsimm module is a microcontroller module built specifically for the uClinux Operating System. It stands an inch high, with a standard 30-pin SIMM form factor. ... The uCsimm is driven by a Motorola DragonBall 68EZ328 processor, and comes well equiped with 2 MB of FLASH and 8Mb of DRAM. We have also included a 10Base-T ethernet and RS 232 high-speed serial.&amp;quot; http://uclinux.org/ucsimm/&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;The Minotaur BF537 is a sub miniature Computer On Module ... 26.5mm x 26.5mm x 4.2mm ... 10/100 Ethernet MAC and PHY onboard ... uClinux support&amp;quot; http://www.camsig.co.uk/products.htm&lt;br /&gt;
&lt;br /&gt;
*...&lt;br /&gt;
&lt;br /&gt;
* [http://www.tincantools.com/product.php?productid=16142&amp;amp;cat=0&amp;amp;page=1&amp;amp;featured &amp;quot;the Hammer&amp;quot;]: a Samsung S3C2410A ARM9 CPU board in a 40-pin DIP package, ready to plug into a solderless breadboard. Pre-loaded with Linux. ... [http://www.lynxmotion.net/viewtopic.php?p=37306&amp;amp;sid=2a20efcadf8e6cb81383cf548f85cc3f discussion forum] ... [http://www.elinux.org/Hammer_Board Hammer wiki] ''(FIXME: add to [[WikiNode]])'' ...&lt;br /&gt;
&lt;br /&gt;
* uC Hobby occasionally discusses various development boards http://www.uchobby.com/&lt;br /&gt;
&lt;br /&gt;
* Some people use the [http://atmel.com/dyn/products/tools_card.asp?tool_id=3879 AT90USBKey] as a prototyping board.&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Picotux was the smallest computer running Linux in the world. ... 35 mm × 19 mm × 19 mm and just barely larger than [its] RJ45 connector&amp;quot; and its DB9 serial connector. &amp;quot;... Two communication interfaces are provided, 10/100 Mbit/s half/full duplex Ethernet and a serial port with up to 230.400 bit/s. Five additional lines can be used for either general input/output or serial handshaking. ... 55 MHz 32-bit ARM7 Netsilicon NS7520 processor, with 2 MB of Flash Memory (750 KB of which contains the OS) and 8 MB SDRAM Memory. The operating system is µClinux&amp;quot; -- [http://en.wikipedia.org/wiki/Picotux Wikipedia: Picotux]&lt;br /&gt;
&lt;br /&gt;
* AVR [http://www.bipom.com/staver.php StAVeR-24M32] &amp;quot;a microcontroller module based on an Atmel ATmega32 in a small DIP24 package with a standard pin out.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* [http://store.stackfoundry.com/dev-tools/copper-avr32-stick.html Copper (AVR32 Stick)] &amp;quot;Copper is an Atmel AVR32 UC3B1256 mounted on a DIP32 breadboard friendly module, giving you the smallest AVR32 development board available (and one of the cheapest!). Features integrated voltage regulator, USB connector, and in-system programming via the USB port. ... The board design and schematics are available under the Creative Commons Attribution Share-Alike 3.0 license. ... 256KB of flash, 32KB of RAM, on board USB, up to 60MHz CPU clock ...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[category:modules]][[Category:Components]]&lt;/div&gt;</summary>
		<author><name>Adamfeuer</name></author>
		
	</entry>
</feed>