Debugging/programming protocols – What are they and what are they used for?
The in-circuit debugging protocols have legitimate usages that we can use and abuse for our tests. First, let's see how they are supposed to be used.
Legitimate usage
The debug protocols are used to achieve multiple goals and some are listed here:
- Test the physical soldering of the boards (this was the initial goal of JTAG).
- Program the chips in development or production.
- Help in debugging the programs during development.
Since the board will have the main micro-controller interact with the chips that are on the circuit board, it can be hard to develop in a completely simulated environment. This is because, unlike a general-purpose computer, there is almost no commonality between two different boards (a general-purpose computer has an OS and this OS provides a good layer of hardware abstraction).
Using JTAG to attack a system
The test subsystem is a very interesting...