The code
Embedded C for Cortex-M. It compiles. There are 5 real bugs in it: the kind that pass a bench test and fail in the field.
void set_duty(float pct)
{
uint32_t arr = TIM3->ARR;
TIM3->CCR1 = (uint32_t)(pct * arr / 100.0f);
}
void set_freq(uint32_t hz)
{
uint32_t arr = (TIMER_CLK / hz) - 1;
TIM3->ARR = arr;
}What an interviewer expects
- Point to each line you'd stop in a code review.
- Say what actually breaks: the failure mode, not just the rule it violates.
- Fix it, then defend the fix when asked the follow-up.
The bugs, reference fixes and the follow-up question are in the practice app, after you've tried it.
Companies that test this
Matched on the skills each company's embedded roles emphasise.
ABBIndustrial · India hiring: MediumAMD IndiaChipmaker · India hiring: MediumAnalog DevicesChipmaker · India hiring: MediumDysonConsumer devices · India hiring: LowEatonIndustrial · India hiring: HighHCLTech ER&DEngineering services · India hiring: HighInfineonChipmaker · India hiring: MediumInfosys Engineering ServicesEngineering services · India hiring: High
Related challenges
Flag the lines, say what breaks, then fix it and build it with clang in your browser.
Find the bugs