time to stop using the serial port and blinking leds to debug your code.
i second that. I want an environment that let's me set breakpoints, watch variables , modify the content of the variables and resume the run , trigger interrupts , watch io ports and registers and, if at all possible in real time and non-blocking so it does not impact the running code.
Being able to set a trap ( for example : if this registers or memory location content are equal to this : halt and show me where i am in my sourcecode. i need to know what portion mods this value) .
the ability to snoop around in memory is just tremendous. i have a system with cpu and fpga. the fpga has registers memory mapped in the ARM's main memory. using the ARM JTAG i am able to watch this , write to the fpga and verify the fpga is sending back the right information in the right spots. all without writing a singl line of code. i can debug the entire system, verify it works as expected and then write the HAL once , knowing it will be correct. all i needed was the Segger J-link and the segger Memprobe software ( comes with it ) this lets you snoop around anywhere in memory while the processor is running code. i can flick bits in there and see if my code reacts correctly . this way i can isolate code problems from hardware problems.
I upload the ARM code through the FPGA ( so there is a 'hardware' bootloader ) from a serial flash rom , straight into main memory ( the FPGA takes over tha address and data lines and holds the ARM in reset , then changes the bus multiplexer and arbiters around and let's the ARM run. )
getting this mechanism to run was a doddle. JTAg on fpga : perform the register operations. JTAG on ARM : read memory location and see if data arrived at the right spot. Not a single line of code involved. Everything was tested through the debuggers. Then write the software library and FPGA code. Compile, run and verify by simply dumping the memory using the JTAG. It took less than an hour to get this board in a bootable state.
Doing that with a text editor , command line compiler and a blinking led and a serial port is bonkers. Even for hobbyist use. a JTAG probe costs next to nothing (99$) and opens a whole new door. and most of the real probes are platform agnostic.