# Cortex-M3 Debugger & Tools

**URL:** <https://community.sparkfun.com/t/cortex-m3-debugger-tools/7975>\
**Category:** MicroMod\
**Tags:** arm-lpc\
**Created:** [July 22, 2008, 6:25pm UTC](https://community.sparkfun.com/t/cortex-m3-debugger-tools/7975 "2008-07-22T18:25:42Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![tharonhall](https://avatars.discourse-cdn.com/v4/letter/t/ed8c4c/32.png) [@tharonhall](https://community.sparkfun.com/u/tharonhall)\
**Post date:** [July 22, 2008, 6:25pm UTC](https://community.sparkfun.com/t/cortex-m3-debugger-tools/7975/1 "2008-07-22T18:25:42Z")

</div>

What tools are available for debugging the Cortex-M3 micros, such as the ST32 and Luminary Micro lines? Also, has a GCC toolchain been ported to those processors?

My understanding is that the Cortex-M3 core has a new debug port - the Serial Wire JTAG Debug Port.

I see SF carries an ST32 board. I wonder what folks have used to develop with it? It is from IAR and might include a trial version of their software.

_Thanks!_

---

<div class="post-metadata">

**Author:** ![gdisirio](https://avatars.discourse-cdn.com/v4/letter/g/c4cdca/32.png) [@gdisirio](https://community.sparkfun.com/u/gdisirio)\
**Post date:** [July 22, 2008, 9:55pm UTC](https://community.sparkfun.com/t/cortex-m3-debugger-tools/7975/2 "2008-07-22T21:55:26Z")

</div>

There is an experimental WinARM toolchain that supports the Cortex-M3:

[http://www.siwawi.arubi.uni-kl.de/avr\_p … tml#winarm](http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/index.html#winarm)

I am using it for my project and it seems to work.

---

<div class="post-metadata">

**Author:** ![tharonhall](https://avatars.discourse-cdn.com/v4/letter/t/ed8c4c/32.png) [@tharonhall](https://community.sparkfun.com/u/tharonhall)\
**Post date:** [July 23, 2008, 2:48pm UTC](https://community.sparkfun.com/t/cortex-m3-debugger-tools/7975/3 "2008-07-23T14:48:18Z")

</div>

Fantastic.

What debugger are you using? Are you using a Solaris or ST32 device?

For what it is worth, the Luminary Micro development kits serve not only as starter kits, but can also debug an external target. The only other board I have seen that can do that is the AVR Dragon. I don’t know if the LM kits would work with OpenOCD or not, though Codesourcery has their own port of the Gnu toolchain that works with it they call G++.

I have really warmed up to the LM devices, but I need a really fast SPI and so far the SAM7 family is the only thing that gets me the speeds I need.

A quick question for the ARM gurus, is the Thumb2 mode of the CM3 the same as the ARM7 Thumb mode, or are there differences? I had the impression the CM3 Thumb mode is a superset of the previous Thumb mode, so Thumb mode code could work on the CM3, but a compiler optimized for the CM3 would be better.

_Regards_

---

<div class="post-metadata">

**Author:** ![gdisirio](https://avatars.discourse-cdn.com/v4/letter/g/c4cdca/32.png) [@gdisirio](https://community.sparkfun.com/u/gdisirio)\
**Post date:** [July 23, 2008, 4:48pm UTC](https://community.sparkfun.com/t/cortex-m3-debugger-tools/7975/4 "2008-07-23T16:48:20Z")

</div>

I am using STM32. Thumb2 is different from Thumb, it has both 16 and 32 bit instructions and other improvements.

OpenOCD supports the STM32 but I have not tested it with GDB yet.

About speed and performance, read this thread:

[viewtopic.php?t=10870](http://forum.sparkfun.com/viewtopic.php?t=10870)

SAM7 is not the fastest thing around it seems.

regards,

Giovanni

---

<div class="post-metadata">

**Author:** ![tharonhall](https://avatars.discourse-cdn.com/v4/letter/t/ed8c4c/32.png) [@tharonhall](https://community.sparkfun.com/u/tharonhall)\
**Post date:** [July 24, 2008, 3:37pm UTC](https://community.sparkfun.com/t/cortex-m3-debugger-tools/7975/5 "2008-07-24T15:37:13Z")

</div>

_Thanks!_

I would definitely prefer to go with a CM3 processor if I could. The LM devices’ SPI port is much too slow and the STM32s do not have built-in Ethernet controllers.

On the flip side, Atmel is coming out with their own CM3 micros later this year, including ones with Ethernet early next year - the SAM3 line. According to their early claims, they are looking to really increase the clock speed up near the ARM9 speeds. While SAM7 is my default choice due to the SPI issue, I am hoping that down the road it gives us a good migration path to the SAM3 line.

I have been a fan of the CM3 ever since it was announced and I am glad that we finally have silicon to work with. I may break down and work with the 28-SOIC LM device at home just to get some time on a CM3 processor.

_Regards_

---

<div class="post-metadata">

**Author:** ![tharonhall](https://avatars.discourse-cdn.com/v4/letter/t/ed8c4c/32.png) [@tharonhall](https://community.sparkfun.com/u/tharonhall)\
**Post date:** [July 24, 2008, 3:42pm UTC](https://community.sparkfun.com/t/cortex-m3-debugger-tools/7975/6 "2008-07-24T15:42:25Z")

</div>

Here are some links:

Article:

[http://www.design-reuse.com/news/18545/ … ex-m3.html](http://www.design-reuse.com/news/18545/atmel-arm-cortex-m3.html)

Atmel Website:

[http://www.atmel.com/products/AT91/](http://www.atmel.com/products/AT91/)

---

<div class="post-metadata">

**Author:** ![boothowto](https://avatars.discourse-cdn.com/v4/letter/b/67e7ee/32.png) [@boothowto](https://community.sparkfun.com/u/boothowto)\
**Post date:** [July 28, 2008, 1:01am UTC](https://community.sparkfun.com/t/cortex-m3-debugger-tools/7975/7 "2008-07-28T01:01:14Z")

</div>

> According to their early claims, they are looking to really increase the clock speed up near the ARM9 speeds.

I agreed with Cortex-M3 is a really good processor, and my impression is CM3 is aimed for ARM7 replacement. The CM3 "virtue" is made with the reversed disciplines; extremely short pipleline and cache less memory architecture. Note that longer pipeline and complicated cache mechanics have been the essentials of modern ultra fast processors. CM3 looks like a small blass instrument unearthed from a lost civilization while your Pentium stands high and noisely like a moutain pile of plumber works. We should wait for the arrival of A1 class to see how ARM camp approachs to win the classic speed competitions.

Toru Nishimura / ALKYL Technology

---

<div class="post-metadata">

**Author:** ![tharonhall](https://avatars.discourse-cdn.com/v4/letter/t/ed8c4c/32.png) [@tharonhall](https://community.sparkfun.com/u/tharonhall)\
**Post date:** [July 28, 2008, 3:15pm UTC](https://community.sparkfun.com/t/cortex-m3-debugger-tools/7975/8 "2008-07-28T15:15:12Z")

</div>

That is interesting that you mention the pipeline length. ST promotes their STR9 single-chip micros as being better than their ARM7 competitors in part because of their larger pipeline. The logic might appear backwards, however. If either pipeline remains full in theory they should essentially run the same, but just as soon as you flush the pipeline I would think you would prefer a shorter pipeline to get your pipeline full and running again.

I just pulled up the chart I read the comparison in and they make the argument that load and store regs stall out the processor on the ARM7 3-stage pipeline, but that they flow seamlessly in the 5 stage pipeline. They also claim that typically 30% of instructions are of this type. I can only guess that the CM3 may have found a way to streamline those sequences and avoid that penalty. The chart I am referring to is part of an online presentation at DigiKey:

[http://dkc1.digikey.com/us/en/tod/STMic … Audio.html](http://dkc1.digikey.com/us/en/tod/STMicroelectronics/ARM9MCUsTools_NoAudio/ARM9_MCU%27s_and_Tools_NoAudio.html)

_Regards_

---

<div class="post-metadata">

**Author:** ![BusError](https://avatars.discourse-cdn.com/v4/letter/b/c4cdca/32.png) [@BusError](https://community.sparkfun.com/u/BusError)\
**Post date:** [July 29, 2008, 7:19am UTC](https://community.sparkfun.com/t/cortex-m3-debugger-tools/7975/9 "2008-07-29T07:19:04Z")

</div>

The lag of the pipeline is pretty impressive on the Cortex-M3. We were synchronizing Luminary’s the other day with I/Os & spinloop, and the latency of the pipeline stall coupled with the IOs was not very pretty. It was pretty clear on the scope. About 12 cycles worth of stall…

---

<div class="post-metadata">

**Author:** ![tharonhall](https://avatars.discourse-cdn.com/v4/letter/t/ed8c4c/32.png) [@tharonhall](https://community.sparkfun.com/u/tharonhall)\
**Post date:** [July 29, 2008, 2:56pm UTC](https://community.sparkfun.com/t/cortex-m3-debugger-tools/7975/10 "2008-07-29T14:56:53Z")

</div>

Ouch.

I can’t recall where I saw it exactly, but I recall seeing a chart that shows Cortex-M3 performance being greater than ARM7-Thumb and even ARM7-ARM modes, but it did not compare them with ARM9 and its 5-stage pipeline (if memory serves correctly.) They also claim 1.25 DMIPS per MHz.

The goal of CM3 was to target 8 bit applications, and one way to do that is by reducing transistor count. A simplified architecture and instruction set is one way to accomplish that goal, and is true to some of the founding principles behind RISC.

I for one was surprised to see data suggesting that CM3 would be faster than ARM7, as I expected the opposite for the sake of reduced complexity and cost. If what I am reading is true, it is hard to imagine how ARM7 will have a future as manufacturers move over to CM3.

(Now if I can only get my Olimex debugger and development board up and running like I need to, I can at least join the ARM7 crowd!)

_Regards_

---

<div class="post-metadata">

**Author:** ![boothowto](https://avatars.discourse-cdn.com/v4/letter/b/67e7ee/32.png) [@boothowto](https://community.sparkfun.com/u/boothowto)\
**Post date:** [August 10, 2008, 6:16am UTC](https://community.sparkfun.com/t/cortex-m3-debugger-tools/7975/11 "2008-08-10T06:16:42Z")

</div>

Domestic news source tells that NXP is developing their version of CM3. The product line will become LPC1700 and LPC1000. I naively feel confused about how the company aligns LPC2917/LPC3180 and LH7A product lines.

Toru Nishimura / ALKYL Technology

---

<div class="post-metadata">

**Author:** ![tharonhall](https://avatars.discourse-cdn.com/v4/letter/t/ed8c4c/32.png) [@tharonhall](https://community.sparkfun.com/u/tharonhall)\
**Post date:** [September 5, 2008, 7:23pm UTC](https://community.sparkfun.com/t/cortex-m3-debugger-tools/7975/12 "2008-09-05T19:23:24Z")

</div>

The Cortex-M3 has certainly created a lot of confusion in the ARM(7) market.

---

<div class="post-metadata">

**Author:** ![jrayfiel](https://avatars.discourse-cdn.com/v4/letter/j/7bcc69/32.png) [@jrayfiel](https://community.sparkfun.com/u/jrayfiel)\
**Post date:** [September 8, 2008, 10:21pm UTC](https://community.sparkfun.com/t/cortex-m3-debugger-tools/7975/13 "2008-09-08T22:21:28Z")

</div>

Another source of reasonably priced quality development tools for the Cortex-M3:

[www.code-red-tech.com](http://www.code-red-tech.com)

Red Suite makes full use of the on-chip debug features on the M3 to show runtime trace information graphically and textually.

---

<div class="post-metadata">

**Author:** ![tharonhall](https://avatars.discourse-cdn.com/v4/letter/t/ed8c4c/32.png) [@tharonhall](https://community.sparkfun.com/u/tharonhall)\
**Post date:** [September 9, 2008, 2:37pm UTC](https://community.sparkfun.com/t/cortex-m3-debugger-tools/7975/14 "2008-09-09T14:37:50Z")

</div>

Unless I am mistaken, the price is 1,000 USD.

---

<div class="post-metadata">

**Author:** ![fordp](https://avatars.discourse-cdn.com/v4/letter/f/4bbf92/32.png) [@fordp](https://community.sparkfun.com/u/fordp)\
**Post date:** [September 12, 2008, 7:13am UTC](https://community.sparkfun.com/t/cortex-m3-debugger-tools/7975/15 "2008-09-12T07:13:08Z")

</div>

If you want free tools look to CodeSourcery Lite or a GCC Compiler from Anglia.

You can use these with free Eclispe and OpenOCD if you wish.

I can recomend FreeRTOS as a starting point.

This is the best starting point I have found :-

[http://www.freertos.org/portLM3Sxxxx\_Eclipse.html](http://www.freertos.org/portLM3Sxxxx_Eclipse.html)

Good Luck!

---

<div class="post-metadata">

**Author:** ![tharonhall](https://avatars.discourse-cdn.com/v4/letter/t/ed8c4c/32.png) [@tharonhall](https://community.sparkfun.com/u/tharonhall)\
**Post date:** [September 12, 2008, 2:27pm UTC](https://community.sparkfun.com/t/cortex-m3-debugger-tools/7975/16 "2008-09-12T14:27:39Z")

</div>

I had discovered that application. In fact, I have been in touch with a Luminary Micro rep about an application for work and he provided information regarding three commercial development solutions. I made him aware that it might be possible to go the route you recommended.

I am toying with the idea of using that board and environment at home. I like the LM line. I like their hardware but I also like their innovative attitude. If they need an application engineer in the Midwest of the USA, I might talk to them!

_Regards_

---

<div class="post-metadata">

**Author:** ![SodaAnt](https://avatars.discourse-cdn.com/v4/letter/s/3be4f8/32.png) [@SodaAnt](https://community.sparkfun.com/u/SodaAnt)\
**Post date:** [September 13, 2008, 10:52pm UTC](https://community.sparkfun.com/t/cortex-m3-debugger-tools/7975/17 "2008-09-13T22:52:47Z")

</div>

I’ve been evaluating the Rowley CrossWorks for ARM tools and I’m very favorably impressed with the results so far.

If you’re a hobbyist doing non-commercial work, a personal license is only $150, which is a bargain for a commercially-supported toolset.

---

<div class="post-metadata">

**Author:** ![stevech](https://avatars.discourse-cdn.com/v4/letter/s/ba8739/32.png) [@stevech](https://community.sparkfun.com/u/stevech)\
**Post date:** [September 14, 2008, 7:00am UTC](https://community.sparkfun.com/t/cortex-m3-debugger-tools/7975/18 "2008-09-14T07:00:22Z")

</div>

> SodaAnt:  
> I’ve been evaluating the Rowley CrossWorks for ARM tools and I’m very favorably impressed with the results so far.
> 
> If you’re a hobbyist doing non-commercial work, a personal license is only $150, which is a bargain for a commercially-supported toolset.

You do know that Rowley uses GCC?

---

<div class="post-metadata">

**Author:** ![edmoore](https://avatars.discourse-cdn.com/v4/letter/e/e274bd/32.png) [@edmoore](https://community.sparkfun.com/u/edmoore)\
**Post date:** [September 14, 2008, 8:34am UTC](https://community.sparkfun.com/t/cortex-m3-debugger-tools/7975/19 "2008-09-14T08:34:03Z")

</div>

Yep, but with its own rather good libraries. And use the debugger… I was sold.

---

<div class="post-metadata">

**Author:** ![LooseTooth](https://avatars.discourse-cdn.com/v4/letter/l/b487fb/32.png) [@LooseTooth](https://community.sparkfun.com/u/LooseTooth)\
**Post date:** [December 20, 2009, 4:26am UTC](https://community.sparkfun.com/t/cortex-m3-debugger-tools/7975/20 "2009-12-20T04:26:00Z")

</div>

Any new thoughts on this? I’m wanting to make the move from the LPC2000 series to the LPC1768 for my next project. I’ve been using WinArm.

[Next page](https://community.sparkfun.com/t/cortex-m3-debugger-tools/7975.md?page=2)
