The code
Embedded C for Cortex-M. It compiles. There are 4 real bugs in it: the kind that pass a bench test and fail in the field.
#define SENSOR_ADDR 0x48 /* from the datasheet */
int sensor_read(uint8_t reg, uint8_t *val)
{
HAL_I2C_Master_Transmit(&hi2c1, SENSOR_ADDR, ®, 1, HAL_MAX_DELAY);
HAL_I2C_Master_Receive(&hi2c1, SENSOR_ADDR, val, 1, HAL_MAX_DELAY);
return 0;
}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.
AMD IndiaChipmaker · India hiring: MediumEatonIndustrial · India hiring: HighHCLTech ER&DEngineering services · India hiring: HighInfosys Engineering ServicesEngineering services · India hiring: HighIntel IndiaChipmaker · India hiring: HighMicrochipChipmaker · India hiring: HighNXP SemiconductorsChipmaker · India hiring: HighQuest GlobalEngineering services · India hiring: High
Related challenges
UART receive ring bufferDrivers & ISRs · Medium · 4 bugs · ~6 minSPI NOR flash driverDrivers & ISRs · Medium · 4 bugs · ~6 minButton debounce in an EXTI ISRDrivers & ISRs · Warm-up · 3 bugs · ~4 minIndependent watchdog usageDrivers & ISRs · Medium · 3 bugs · ~5 minFlags shared with an ISRDrivers & ISRs · Medium · 2 bugs · ~5 minADC self-test at bootTest & validation · Warm-up · 3 bugs · ~5 min
Flag the lines, say what breaks, then fix it and build it with clang in your browser.
Find the bugs