Interview Prep & Tips /Semiconductor Validation
Bring-up and debug scenarios
Sample guide. Edit or replace it with your own material.
Interviewers use scenarios to see how you think, not just what you know. Talk through your steps in order and explain why each step comes before the next.
1. The debugger cannot connect to a new board. What do you check?
Work from the physical layer upwards:
- Power: are all rails present, correct, and stable? Is the part drawing a sensible current?
- Reset: is the reset line released? Is something holding it low?
- Clock: is the part getting a clock? Most MCUs boot on an internal RC oscillator, so a missing crystal usually doesn’t stop debug access.
- Debug pins: check SWDIO/SWCLK wiring, pull-ups, and connector pinout, and whether the pins have been reassigned as GPIO by firmware.
- Security: is the device locked, or is debug access disabled by fuses?
- Probe settings: lower the SWD clock, and try “connect under reset”.
2. Firmware ends up in HardFault. How do you find the cause?
On Armv7-M (Cortex-M3/M4/M7):
- Read the stacked exception frame (R0–R3, R12, LR, PC, xPSR). The stacked PC shows the instruction that faulted, or one close to it.
- Check the EXC_RETURN value in LR to see whether MSP or PSP was in use.
- Read the fault status registers:
- CFSR: the combined MemManage, BusFault, and UsageFault status
- HFSR: FORCED means a configurable fault was escalated to HardFault
- MMFAR / BFAR: the faulting address, valid only when the MMARVALID / BFARVALID bit is set
- Common causes: an invalid pointer, unaligned access, stack overflow, executing from a non-executable region, or a divide-by-zero trap if enabled.
3. A failure happens once in 10,000 runs. What is your strategy?
- Automate the reproduction and log every run with its conditions.
- Look for correlations: temperature, supply noise, timing, or order of operations.
- Increase stress to raise the failure rate: tighter margins, more traffic.
- Add low-overhead instrumentation such as GPIO toggles or trace, because heavy logging often changes the timing and hides the bug.
Practice
- Draw the steps you would follow for “the board draws 3× the expected current” as a flowchart.
- Explain what DHCSR.S_LOCKUP tells you and when it is set.