The search for the perfect ARM compiler/IDE

What is arm-insight?

For what I see I think I will settle for the Codesourcery and learn how to use it, as you say its up to date, or is the Yagarto a easier tool to use, I can use both windows vista, or ubuntu 10.04.

Thanks for your opinion/suggestion.

Senso:
What is arm-insight?

For what I see I think I will settle for the Codesourcery and learn how to use it, as you say its up to date, or is the Yagarto a easier tool to use, I can use both windows vista, or ubuntu 10.04.

Thanks for your opinion/suggestion.

If you run a dual environment Win/Linux , i’d chose Codesourcery.

Then you have the same compiler on both systems , as CS can be downloaded for both.

arm-insight is a gdb frontend (graphical debugger tool)

If you have a powerfull machine (lots of mhz+ram) , you might consider Eclipse (java app) for an ide.

Else i suggest Code::Blocks. Both are free and downloadable for Win/Linux.

I might even suggest Eclipse , as a lot of people seems to use it (lots of help)

And with Eclipse you don’t need arm-insight , as it has it’s own graphical debug frontend.

I can’t remember if CB has one , i always use insight and “plain” makefiles.

Else there is to much Clicky…Clicky.

One other advice if you run win/linux …

Keep all file names in lowercase , or you will be “bitten” in linux at some point.

/Bingo

Yagarto is quite easy to install and use, especially if you use it from the command line. I haven’t tried it with Eclipse.

I dont really need to have the “toolbox” in both OS, just in one of them, I think I will go the CodeSourcery and CodeBlocks or Eclipse, the one that I can find the best tutorial :lol:

Thanks for all the help provided.

Now, I have just one more little doubt :oops:

How can I upload code to the STM32 board and/or the LPCXpresso, I know that with some hacking I can access the STM32 chip using the built-in serial bootloader, as the provided programmers will most likely not work outside the fancy and paid IDE’s that are made for them, maybe the LPC programmer work stand alone, but using what tool to make it work? :oops:

Hello Senso,

[flashmagic is the most popular serial programming software for LPC. For STM32, I’ve been using [sloadhost (also mentioned [here) under Linux. I’ve not tried the windows version.

Of course you can’t run RS-232 (or EIA-232) levels directly to your uC pins. A [level shifter would seem like the simplest solution to that but then you have to power it… An [FTDI breakout board might be the easiest overall.

I was too lazy to study the schematics but be careful: the interface uCs are likely to be driving your bootloader control pins. (For the LPCXpresso, you might want to snap off the LPC-Link. It looks like the STM32xxDiscovery has jumpers?)](SparkFun USB to Serial Breakout - FT232RL - BOB-12731 - SparkFun Electronics)](RS232 Converter DIP - MAX232 MAX3232 - COM-00316 - SparkFun Electronics)](Olimex STM-H103 + ARM-USB-OCD + codesourcery + ubuntu - SparkFun Electronics Forum)](sloadhost download | SourceForge.net)](http://www.flashmagictool.com/)

Rowley CrossWorks can be used with the STM32 Discovery board. The LPCXpressso can only be used with the Code Red tools.

I’m not a Rowley fanboy.

IMO, since it uses GCC, it’s a hefty price for an IDE atop a public domain compiler.

It’s a very good IDE and they have written their own libraries. Support is excellent.

leon_heller:
It’s a very good IDE and they have written their own libraries. Support is excellent.

For anybody whose time costs money the support alone would be worth the purchase price.

The primary ARM IDE/compiler tool vendors I know of are

Rowley (GCC + their own libraries and IDE)

Keil (ARM’s preferred. Expensive but very good. Free version limited to 32KB)

IAR (My preferred. Expensive but very good. Free version limited to 32KB. Excellent Calif. phone support).

ImageCraft (inexpensive, limited capability)

GCC with IDEs called Yagarto, WinARM, others.

Code:Blocks - an IDE for various open source compilers

any others?

In a professional setting, I’d go for IAR or Keil.

For a serious hobbyist, not for profit, Rowley’s low end version is likely a good investment to improve productivity versus the freebie GCC+IDE which can be awkward to get setup.

Atollic and Code Red. Both are based on gcc. The former is one of the tools available for the STM32 Discovery and the latter is used for the LPCXpressso.

stevech:
The primary ARM IDE/compiler tool vendors I know of are

any others?

Yes. See the list on ARM's website:

http://www.arm.com/community/partners/c … tTypes/10/

I think that I can say sucess!

But I just think, after reading and following the nice tutorial given by mr. drwho9437(from the dangerousprototypes forum) I have created/compiled my toolchain, but in this part:

http://fun-tech.se/stm32/gcc/compile_blinky.php

When the tutorial author says that I should not get any errors or warnings I get this:

tiago@tiago-laptop:~/stm32-example/projects/stm_h103$ make clean
rm crt.lst a.lst main.lst crt.o main.o main.out main.hex main.map stm32f10x_rcc.o stm32f10x_gpio.o
rm: impossível remover `crt.lst': Ficheiro ou directoria inexistente
rm: impossível remover `a.lst': Ficheiro ou directoria inexistente
rm: impossível remover `main.lst': Ficheiro ou directoria inexistente
rm: impossível remover `crt.o': Ficheiro ou directoria inexistente
rm: impossível remover `main.hex': Ficheiro ou directoria inexistente
rm: impossível remover `main.map': Ficheiro ou directoria inexistente
make: [clean] Erro 1 (ignorado)
tiago@tiago-laptop:~/stm32-example/projects/stm_h103$ make
.compiling
arm-none-eabi-gcc -I./ -c -fno-common -O0 -g -mcpu=cortex-m3 -mthumb  main.c
main.c:76:6: warning: conflicting types for 'myDelay'
main.c:61:14: note: previous implicit declaration of 'myDelay' was here
main.c:90:6: warning: conflicting types for 'Clk_Init'
main.c:43:4: note: previous implicit declaration of 'Clk_Init' was here
.compil
arm-none-eabi-gcc -I./ -c -fno-common -O0 -g -mcpu=cortex-m3 -mthumb  stm32f10x_rcc.c 
.compili
arm-none-eabi-gcc -I./ -c -fno-common -O0 -g -mcpu=cortex-m3 -mthumb  stm32f10x_gpio.c 
..linking
arm-none-eabi-ld -v -Tstm_h103_blink_rom.cmd -nostartfiles -o main.out  main.o stm32f10x_rcc.o stm32f10x_gpio.o 
GNU ld (Sourcery G++ Lite 2010.09-51) 2.20.51.20100809
...copying
arm-none-eabi-objcopy -Obinary main.out main.bin
arm-none-eabi-objdump -S main.out > main.list
tiago@tiago-laptop:~/stm32-example/projects/stm_h103$

So, I get 4 warnings, the only difference is that I used the most actuall release of CodeSourcery, have I done bad by choosing it?

I’ve been using CrossStudio from Rowley for almost a year and think it is a really great development system.

The features I like include:

  • Debugger that allows you to see all the peripheral registers for the device you are using.

  • Ability to read/write files on the host

  • Ability to quickly print and get user input from the host

  • High speed downloads (I see download to RAM on my STM32 in the 300K+ Bytes/sec. range)

  • Ability to run Javascript code to interact with the debug environment/embedded target

  • A reasonably priced hobbyist license

PS: I’m not affiliated with Rowley - just a satisfied customer.

But there are free alternatives, and I will use this as an hobby tool, and I’m a student I dont even have 50€ to buy a PicKit3 to start programming the load of pics and dsPics that I already have.

Any suggestion to my little “problem”?

If you have a parallel port you can build a simple JTAG interface. I have a design with PCB files in the LPC2000 Yahoo group Files section.

I only have USB ports in my laptop :frowning:

You can download and use Atollic TrueStudio for free. And if you can put together US$12, you can get the STM32 VLDiscovery dev system http://search.digikey.com/scripts/DkSea … &x=23&y=18

I already have one STM32 discovery board, and I also have the Attolic IDE, but it bugs me a lot not having simple things like the size of my compiled program or how much ram it uses.

EDIT:

Ok, for some strange reason I cant import the given example projects or the Master Workspace and some other things found in the stm32vldiscovery_package.zip from ST to the Attolic IDE, any ideas why?