Plz don't hate me I'm not trying to start another compiler war!
I am trying to figure out which direction is best for my goals as I program both AVR and ARM micros and currently use WinAVR in AVR Studio and a linux build root for arm but I am not satisfied with many things.
Mainly I dislike running linux inside windows viz cygwin as its really 'hacky' and file management on a virtual machine is a pain in the but so I would like to have all my programming solutions on one box. My end goal is running a custom distro on an arm device that I build myself and write the drivers for but if I want to sell anything I make It needs to have a windows interface to get any customers.
So digging around I found really two options that meet the criteria all with their own cons.
1 - GCC everything. Code::Blocks IDE and GCC for arm and AVR develpment, MinGW for windows development. Con: NO DEBUGGERS!
2 - Rowley CrossWorks for ARM and AVR development, I really like the debugger and interface. Con, Worst documentation EVER. Great examples on their tasking library but zero on everything else. Also I swear their custom AVR compiler is not ANSI C standard...
I don't know whats up with CrossWorks but it has some very odd syntax and drops errors on function prototypes that are very cryptic. For example:
PORTD |= 1; PORTD |= (1<<2);
Nothing special about that code and yet the bit shift does NOT change anything in PORTD. Also their support ticket system is fast to respond but its always the same guy.. is it a one man show on support or something?
Why not stick with AVR Studio? The debugger is the big thing, its terrible. I can not follow the call stack, I can't see where bits of memory are going, and 90% of the time it takes three or four trys and different settings just to get my variables to show up in the watch list and then the delay routines take a week to execute.
So does anybody have a recommendation on how to develop AVR and ARM on the same machine without running two very different compilers and having good debug support?
EDIT: I would also like it if they supported c++, I know theirs a way to do it in WinAVR but you can no longer use the automatic makefile (not that big of a deal) but I'm not sure if CrossWorks allows any c++ at all...