I have programmed my JTAG device through the JTAG interface. How do I start the device and run code before I disconnect my hardware programmer?
The JTAG IR (Instruction Register) has two fields: StateCntl (bits 15:12) and DRAddress (bits 11:0). The StateCntl bits control the state of the debug hardware and have the following values:
StateCntl (bits 15:12)
CPU Core Suspend
All unlisted states of the StateCntl bits are Reserved.
In a Flash programming operation, the system is in Halt, and the CPU is held in Suspend to bypass the Watchdog Timer so it doesn't generate a reset while debugging.
To start the CPU after programming the device:
1) Explicitly set the StateCntl bits to 'CPU Core Suspend' (0100b). 2) Issue a system reset by setting the StateCntl bits to 'System Reset' (0010b). 3) Set the CPU core running by setting the StateCntl bits to 'Normal' (either 0000b or 1111b).
The CPU should then start executing the code that was programmed into the device.
For more information on JTAG programming, please see Application Note AN105. Application Notes can be found on the Silicon Laboratories website: