So after trailing a few IDEs, I ended up going the free approach with Eclipse, Sourcery G++ and OpenOCD. All seems to work OK, albeit far from the ideal IDE experience (that's probably largely in part due to my lack of in-depth knowledge of Eclipse, and how to set up the seemly millions of options.) But it's manageable enough.
So the debugging aspects work reasonably, and I found the memory monitor which I can monitor addresses. However, it would be really nice not to have to work out 0x48000810 is the PORTC ODR whenever I want to have a quick look at it (as an example.)
Is there any way to label memory addresses in Eclipse debugger? I've done quite a bit of searching, and it seems like you have to build an Eclipse plugin. It seems a bit nonsensical not to be able to just define a bunch of memory address labels in a file.
Take a look at
http://embsysregview.sourceforge.net/.
Don't know the current status of the project, but last year i used it with an Energy-Micro Cortex-M3 and it worked well.
Regards,
Martin
Thanks Marin, that's great
Really good plugin with all the definitions as well.
They probably just need to throw a keywords section in their webpage, because it's not all that easy to find with google.
Cheers
They probably just need to throw a keywords section in their webpage, because it's not all that easy to find with google.
Cheers
You're right.
I saw this plugin mentioned in application note AN0023 from Energy-Micro:
http://www.energymicro.com/downloads/application-notesThis is an interesting HowTo for setting up an eclipse toolchain, not only for Energy-Micro devices!
I think they even updated this AppNote in August 2012 to cover the current Indigo-Version of eclipse.
Martin
Take a look at http://embsysregview.sourceforge.net/.
Hey, that looks potentially useful. Thanks for the tip! Just installed it and did a few quick tests. The interface for setting register values seems a bit clunky, but for quickly viewing peripheral registers it does the job nicely.
Tested with an stm32f4 discovery board...
edit: looks like setting register values also works nicely as long as you press the right buttons.
Yeah I really like it. Though it threw me for about 20 min before I worked out you had to double click the icon and turn them green for it to monitor the memory location...
I've switched to Eclipse+OOCD+arm-gcc-eabi recently too. I think that learning curve is like almost vertical at the beggining, but after a while you get used to it. And of course it has the merit of forcing you to look deeper inside the MCU, not only "press compile and it just works".
I'm currently using the toolchain with STLink V1 integrated on STM32 VLDiscovery. Works pretty well. I've managed to connect and debug the base STM32F100 on discovery board and also LPC1768 via ST-Link's SWD. Sadly Stellaris Launchpad is not officially supported by OOCD. Although there is an experimental patch which adds Stallaris ICDI compatibility, but one would have to recompile OOCD from source and I don't feel that hardcore yet
I've tried to setup sysregview but i was getting some system-level error (like access violation or something). Anyone of you tried to run that under Windoze 7 32-bit with AVG antivirus installed?
For me it works with this configuration:
Win 7 64bit, Threadfire and Microsoft Security Essentials
Eclipse Version: Indigo Service Release 2; Build id: 20120216-1857
Embedded Systems Register View (SFR); Version 0.2.2
Martin
I've managed to connect and debug ... LPC1768 via ST-Link's SWD.
So the ST-Link works with chips other than ST chips? Just to clarify, you were using SWD with the LPC, not JTAG? I was looking if I could do SWD now with OCD, but it looks like ST-Link is the only one that really works. The ST-Link says it only does their chips, but if I can use it with my LPC Cortex M0 (SWD only) chips, I'll make the switch.
I did not blink the LED on that LPC, but it seemed to be recognized in OOCD, so I assumed it would work. I will have to check that once again, but I don't have the LPC board anymore (woops+poof+smoke). But i guess same test could be done on Stallaris Launchpad with ICDI disconnected.
I was not able to get the ST-Link to work with an LPC over SWD. I got an error during programming. Using Crossworks, though, not OOCD.
Damn. But thanks for trying.
My test was with Crossworks and LPC1114, so I can't speak for anything else.
Anyway, my j-link clone is fast and cheap, so I only tried the once. Used an ST Link/V2 on my F0 board.