gcc can compile the code for ARM processors, powerpc, and some others, it depends what processor your microcontroller use. In general, the most feasible way to program microcontroller, is still to test and compile the code for your microprocessor, and then write it into the chip. For testing the program, you most likely need to emulate the hardware of your microcontroller, like as some debug code. It again depends on your microcontroller, there should be some debuggers available for any controller type, which would help you to test your program in the right environment.
When it comes to programming embedded devices, I expect people to have a great deal of self motivation in digging out information for themselves. Because one thing is for sure, if all the debug you have is the number of times an LED flashes say, then you really, REALLY need to have your wits about you.