Hidden pinouts Even with reasonable clock rates, the physical interface to your target hardware can frustrate debugging efforts. Package pinouts may prevent probing because they are too fine or they are hidden under the chip. Large-scale ASICs may not even bring needed bus signals to an external pin. These circumstances may force you to create a discrete-component debugging target that will not match production units. You could then spend hours chasing bugs that may not even appear in production hardware.
Processor architecture can also impact embedded-system debugging.
For example, a program loop executing entirely in on-chip cache does not show up on external bus pins. Yes, you can program the processor to show all activity on the external bus, but you lose the cache performance enhancements. A similar debugging problem exists with RISC processors that include multiple execution units for parallel-instruction execution. If your software design relies on these processor features to function properly, you cannot see all of the processor activity. Your most memorable debugging problems will probably include real-time software issues.