I'm using my own IDE design, it uses a collection of applications written by others, like many IDE's.
I wrote a "Project Builder' application which pulls in all the needed programs, files, templates, data etc and creates a IDE tailored for each new project in about 1 second.
It's designed for STM32Fxx 32 bit MCU's tho I tend to only use STM32F051 QFN (64KB Flash, 8KB Ram) MCU's so far as they have far more resources than I'll ever need.
My design environment is near real time and uses cooperative multitasking, in other words I can light a LED driven by a GPIO by a command typed in the IDE, then turn it off the same way. I can see the contents of any MCU register in near real time, any time I want, while a LED is blinking.
The many benefits of interactivity are too many to list, but one of my favorites is examining the effect on the MCU when a bit or bits ares changed in a register to confirm what I *think* should happen when I find the STM documentation ambiguous. Even the "simple" STM32F051 has 37 peripherals, 413 registers and 3044 register bit-fields so you can imagine the humongous number of different combinations.
My system doesn't use a compiler on the PC, so it doesn't need the usual edit, compile, upload, test, repeat methodology of C. Overall my code runs about three times slower than that produced by a optimized C compiler, however it's a price I'm more than happy to pay for the interactivity of the system.
Everything I use is GPL or FreeBSD Copyright
Elements integrated into my IDE are:
- Editor: Gvim
- Serial Terminal: GnuScreen
- Schematic Capture: Geda
- Flowchart: Graphviz
- SCM: Fossil
- OS: Mecrisp-Stellaris
The IDE:
http://hightechdoc.net/misc/ide-tp-1600.jpgThe SCM which is in a separate window being Web Browser based:
http://hightechdoc.net/misc/ide-fossil-1024.jpg