The JTAG adapter or any other communication device between Arduino and a computer is of my choice - however it needs to be at reasonable price (say, under 25$).
Ok then, so what exactly do I need to write since I am not developing an actual system?
I need to describe the situations of what happens with the CPU timer while being in debugging mode
bootloader - does JTAG somehow exchange it?
which IDE/tool can do source code level debugging?
Alas, most JTAG probes are more expensive than that, up to several hundred dollars. Particular vendors will sometimes have cheap probes (like ST's STlink2), but they tend to be somehow limited to working only with that particular vendor's chips, and/or only with their development environment (not OpenOCD.)You already found the Bus Pirate. There are also assorted FTDI FT232H Breakout boards. that are documented to work with openOCD.Microchip now has their SNAP Debugger, but I don't think I've seen any info on using it with OpenOCD.
Trying to second-guess a university professor? Hmm.I would say, at a minimum:write a tutorial describing how to achieve some level of debugging of the Due. (Breakpoints, examining registers, loading code.) Include all the bits and pieces you need to buy or download, how to connect them up, and how to use them.Describe how they work together.Cross-reference all the individual and scattered documentation that is relevant (SAM datasheet, ARM documents, JTAG references, FTDI datasheet, OpenOCD Docuementation, GDB (or whatever) documentation. (As you've noticed, it can be painful to try to find everything in one place.)For extra credit:Document more than one probe (FT232H, J-Link EDU Mini, Bus Pirate)Compare to a non-openOCD system (JLink Commander?)figure out how to get OpenOCD to talk to something (like SNAP) that isn't already done. (could range between "slight modifications to a CMSIS/DAP profile" to "not possible.)Analyze/optimize performance.
Perhaps you're supposed to do that to prove that you got the debugging working?Some chips have a per-peripheral configuration flag controlling whether the peripheral "operates" during debug mode. I don't know if the SAM3X8e is one of them or not.
I don't understand the question.