EmbeddedRelated.com
Forums

ARM Cortex M3 newbie questions

Started by Boo May 4, 2012
Hi,

I'm working on a project which is currently planned to use an ARM Cortex M3 from 
ST (device is from the STM32L151xC series).  I've never used the Cortex chips 
before and my ARM experience is quite limited too, is anyone here prepared to 
give me the executive precis of the state of the compiler/debugger situation for 
these chips ?

If I'd been asked the same question 10 years ago about the 8051 I'd have said 
Keil compilers + Hitex emulators, and that is the kind of level of reply I'm 
looking for.  Of course a more detailed response would be appreciated too ;-)

Also, what is the panel's thoughts on RTOS for these small devices ?  I see 
Safe/OpenRTOS is available but RTEMS also supports the ARM Thumb instruction set 
since the version before the current one, is there a generally preferred RTOS 
for the M3 architecture ?  Requirements are a small/cut down tcp stack but ony 
if it's easier then rolling my own to suite very limited requirements.

Many thanks,

Boo
On Fri, 04 May 2012 13:39:07 +0100, Boo
<reply_to_group_not_me@spam_me_no_spam.net> wrote:

>Hi, > >I'm working on a project which is currently planned to use an ARM Cortex M3 from >ST (device is from the STM32L151xC series). I've never used the Cortex chips >before and my ARM experience is quite limited too, is anyone here prepared to >give me the executive precis of the state of the compiler/debugger situation for >these chips ? > >If I'd been asked the same question 10 years ago about the 8051 I'd have said >Keil compilers + Hitex emulators, and that is the kind of level of reply I'm >looking for. Of course a more detailed response would be appreciated too ;-) > >Also, what is the panel's thoughts on RTOS for these small devices ? I see >Safe/OpenRTOS is available but RTEMS also supports the ARM Thumb instruction set >since the version before the current one, is there a generally preferred RTOS >for the M3 architecture ? Requirements are a small/cut down tcp stack but ony >if it's easier then rolling my own to suite very limited requirements.
I've been happy with Rowley's CrossWorks for general CM3 and STM32 development. They do include an RTOS as part of the package. No network stack, as yet, but they do say they're working on one. -- Rich Webb Norfolk, VA
On Fri, 04 May 2012 13:39:07 +0100, Boo
<reply_to_group_not_me@spam_me_no_spam.net> wrote:

>Hi, > >I'm working on a project which is currently planned to use an ARM Cortex M3 from >ST (device is from the STM32L151xC series). I've never used the Cortex chips >before and my ARM experience is quite limited too, is anyone here prepared to >give me the executive precis of the state of the compiler/debugger situation for >these chips ? > >If I'd been asked the same question 10 years ago about the 8051 I'd have said >Keil compilers + Hitex emulators, and that is the kind of level of reply I'm >looking for. Of course a more detailed response would be appreciated too ;-) > >Also, what is the panel's thoughts on RTOS for these small devices ? I see >Safe/OpenRTOS is available but RTEMS also supports the ARM Thumb instruction set >since the version before the current one, is there a generally preferred RTOS >for the M3 architecture ? Requirements are a small/cut down tcp stack but ony >if it's easier then rolling my own to suite very limited requirements. > >Many thanks, > >Boo
I've been working with the TI Stellaris parts for about 3 months. Like you (but 3 months ago), I was an ARM newbie and a Cortex newbie. I did find this book quite helpful to get me up to speed: http://www.amazon.com/Definitive-Guide-Cortex-M3-Second-Edition/dp/185617963X I'm using an older version of the Keil suite (it is what my company owns). I did contact Keil for a quote on Quantity 1 of the newest tools ... it was $2,495. So, expect to pay about $2,500 for the tools from Keil if you go that direction ... I have not investigated or used IAR. Both Keil and IAR have freebie tools you can download (severe limitations, of course). I have no complaints about my older version of the Keil tools. They work as expected. DTA
On 5/4/2012 6:39 AM, Boo wrote:
> Hi, > > I'm working on a project which is currently planned to use an ARM Cortex > M3 from ST (device is from the STM32L151xC series). I've never used the > Cortex chips before and my ARM experience is quite limited too, is > anyone here prepared to give me the executive precis of the state of the > compiler/debugger situation for these chips ? > > If I'd been asked the same question 10 years ago about the 8051 I'd have > said Keil compilers + Hitex emulators, and that is the kind of level of > reply I'm looking for. Of course a more detailed response would be > appreciated too ;-) > > Also, what is the panel's thoughts on RTOS for these small devices ? I > see Safe/OpenRTOS is available but RTEMS also supports the ARM Thumb > instruction set since the version before the current one, is there a > generally preferred RTOS for the M3 architecture ? Requirements are a > small/cut down tcp stack but ony if it's easier then rolling my own to > suite very limited requirements. > > Many thanks, > > Boo
http://www.coocox.org/Index.html
On Friday, May 4, 2012 6:32:00 AM UTC-7, Rich Webb wrote:
> > I've been happy with Rowley's CrossWorks for general CM3 and STM32 > development. They do include an RTOS as part of the package. No network > stack, as yet, but they do say they're working on one. >
I also have been happy with Crossworks. I've used it with the Segger J-Link and also with Rowley's CrossConnect (Lite). I wasted a week of my life trying to get an OpenOCD package to work, then went to Rowley and haven't looked back.
On Fri, 04 May 2012 07:42:16 -0700, mjsilva wrote:

> On Friday, May 4, 2012 6:32:00 AM UTC-7, Rich Webb wrote: >> >> I've been happy with Rowley's CrossWorks for general CM3 and STM32 >> development. They do include an RTOS as part of the package. No network >> stack, as yet, but they do say they're working on one. >> > I also have been happy with Crossworks. I've used it with the Segger > J-Link and also with Rowley's CrossConnect (Lite). > > I wasted a week of my life trying to get an OpenOCD package to work, > then went to Rowley and haven't looked back.
I wasted a week of my life trying to get OpenOCD to work, then spent one more day at it and found success! (It seems to be fairly trouble-free now, at least on Linux, but I couldn't guarantee anything). -- Tim Wescott Control system and signal processing consulting www.wescottdesign.com
On 04/05/2012 13:39, Boo wrote:
> Hi, > > I'm working on a project which is currently planned to use an ARM Cortex > M3 from ST (device is from the STM32L151xC series). I've never used the > Cortex chips before and my ARM experience is quite limited too, is > anyone here prepared to give me the executive precis of the state of the > compiler/debugger situation for these chips ? > > If I'd been asked the same question 10 years ago about the 8051 I'd have > said Keil compilers + Hitex emulators, and that is the kind of level of > reply I'm looking for. Of course a more detailed response would be > appreciated too ;-) > > Also, what is the panel's thoughts on RTOS for these small devices ? I > see Safe/OpenRTOS is available but RTEMS also supports the ARM Thumb > instruction set since the version before the current one, is there a > generally preferred RTOS for the M3 architecture ? Requirements are a > small/cut down tcp stack but ony if it's easier then rolling my own to > suite very limited requirements. > > Many thanks, > > Boo
I can recommend the Keil/ARM C compiler but I have serious reservations about their "middleware" (file and network support). Keil/ARM support is not as good as it was but I don't know how it compares with IAR or Rowley. ARM have announced a standard RTOS API and their own simple RTOS is available FOC which complies. I expect Rowley and IAR will support it but you should check. http://www.keil.com/pr/article/1253.htm If I were starting from nothing now I would look very carefully at Keil, IAR and Rowley. My experience of network stacks is that none of them work properly (ie comply with RFCs and don't fall over) in the price range free -> &#4294967295;5000 (I haven't tested them all !!!) so my advice is go for open source/liberal license and expect to have to work on it. Michael Kellett
Hi Boo,

On 5/4/2012 5:39 AM, Boo wrote:
> I'm working on a project which is currently planned to use an ARM Cortex > M3 from ST (device is from the STM32L151xC series). I've never used the > Cortex chips before and my ARM experience is quite limited too, is > anyone here prepared to give me the executive precis of the state of the > compiler/debugger situation for these chips ?
<frown> Choice of toolchain depends a *lot* on your budget and level of comfort/confidence with the parts/technology/etc. If you feel you'll need a bit more hand-holding, then spend the money on one of the better supported (i.e., "more responsive") vendors' products. If you've been around the block a few times (other devices, etc.) the "free" solution may be more to your liking.
> If I'd been asked the same question 10 years ago about the 8051 I'd have > said Keil compilers + Hitex emulators, and that is the kind of level of > reply I'm looking for. Of course a more detailed response would be > appreciated too ;-) > > Also, what is the panel's thoughts on RTOS for these small devices ? I
First, do you really need an RTOS? Or, is an MTOS acceptable? What sorts of services do you expect from the OS? Is your design relatively static (a fixed set of tasks that run in perpetuity)? Or, does it's duties vary more dynamically?
> see Safe/OpenRTOS is available but RTEMS also supports the ARM Thumb > instruction set since the version before the current one, is there a > generally preferred RTOS for the M3 architecture ? Requirements are a > small/cut down tcp stack but ony if it's easier then rolling my own to > suite very limited requirements.
<frown> I don't think the parts you cited have "ethernet" hardware -- or, are you planning on adding this externally? Do you really need TCP or is UDP adequate? How friendly/adversarial is the environment in which you must operate? How much of a honey-pot do you represent? There are a couple of trimmed back, "public" stacks out there that don't require too much work to port. But, they make assumptions about how they will shoehorn into your system (so you need to understand if you can tolerate their requirements). Depending on how much/little you require from the stack, you might find it easier to write those portions that you will need. Comer has some good texts for The Basics of a simple stack. Stevens if you're looking for the GrownUp course... (Either/both would be good reads to consider the issues that each aspect of the stack addresses -- and, by extension, how "your"/any implementation can be vulnerable to exploits)
Rich Webb wrote:

> I've been happy with Rowley's CrossWorks for general CM3 and STM32 > development. They do include an RTOS as part of the package. No network > stack, as yet, but they do say they're working on one.
lwip is a nice open-source network stack. http://savannah.nongnu.org/projects/lwip/
On Sun, 06 May 2012 16:17:10 +0200, Noob <root@localhost> wrote:

>Rich Webb wrote: > >> I've been happy with Rowley's CrossWorks for general CM3 and STM32 >> development. They do include an RTOS as part of the package. No network >> stack, as yet, but they do say they're working on one. > >lwip is a nice open-source network stack. >http://savannah.nongnu.org/projects/lwip/
Yes, one of these days. ;-) I try to stick to a minimalist network implementation with just ARP and UDP and eschew all of the folderol with a compliant TCP stack. That's assuming that a CANbus solution can't be made to work ... -- Rich Webb Norfolk, VA