Embedded Software Developer Interview Questions

4,751 embedded software developer interview questions shared by candidates

For the drivetrain of a prototype vehicle you are asked to implement the part that determines the requested torque based on the user input. The user does this by pressing the throttle pedal. There are multiple options regarding the throttle pedal, but for now the engineers seem to have selected one that produces two analog output signals, which are connected to a microcontroller. The relation between the analog signals (redundant for safety reasons) and the pedal angle (min = 0 degrees, max = 30 degrees) are as follows: - `adc1 = 0.5 + 0.1 * angle` - `adc2 = 1.0 + 0.08 * angle` Where adc1 and adc2 are voltages and the angle is in degrees. These analog inputs require some basic low pass filtering (moving average). This pedal angle corresponds to an amount of torque that the motors must provide. This torque is not only dependent on the pedal angle, it’s also dependent on the current speed of the vehicle. The torque for each speed and pedal angle can be found in the graph below. ![pedal map](./doc/Pedalmap.png) In case something goes wrong, in our prototype an LED should light up on the dashboard to indicate something is wrong (in a real production vehicle an error message will be shown on the instrument cluster).
avatar

Embedded Software Engineer

Interviewed at Lightyear

4.2
Feb 1, 2021

For the drivetrain of a prototype vehicle you are asked to implement the part that determines the requested torque based on the user input. The user does this by pressing the throttle pedal. There are multiple options regarding the throttle pedal, but for now the engineers seem to have selected one that produces two analog output signals, which are connected to a microcontroller. The relation between the analog signals (redundant for safety reasons) and the pedal angle (min = 0 degrees, max = 30 degrees) are as follows: - `adc1 = 0.5 + 0.1 * angle` - `adc2 = 1.0 + 0.08 * angle` Where adc1 and adc2 are voltages and the angle is in degrees. These analog inputs require some basic low pass filtering (moving average). This pedal angle corresponds to an amount of torque that the motors must provide. This torque is not only dependent on the pedal angle, it’s also dependent on the current speed of the vehicle. The torque for each speed and pedal angle can be found in the graph below. ![pedal map](./doc/Pedalmap.png) In case something goes wrong, in our prototype an LED should light up on the dashboard to indicate something is wrong (in a real production vehicle an error message will be shown on the instrument cluster).

They give you an assignment which has the question like this. Obviously one is allowed to decide what he wants and documents everything or every assumption made. However you are not allowed to ask them questions about the assignment The exercise exists in the implementation of a non-volatile memory storage component. This component should be able to backup and restore values corresponding to a unique attribute identifier. For the simplicity of the exercise the underlying non-volatile memory (eeprom, flash, …) can be modelled as a file. Component Specification • Implement the basic implementation of this component based on following API description: typedef unsigned char UInt8; typedef UInt8 gpNvm_AttrId; typedef UInt8 gpNvm_Result; gpNvm_Result gpNvm_GetAttribute(gpNvm_AttrId attrId, UInt8* pLength, UInt8* pValue); gpNvm_Result gpNvm_SetAttribute(gpNvm_AttrId attrId, UInt8 length, UInt8* pValue); • Make sure the implementation supports different datatypes for pValue. Some examples: o Basic datatypes like UInt8, UInt32,… o An array of UInt8 o Structs like for instance: #define MAX_LENGTH 20 typedef struct { UInt8 id; UInt32 options; UInt8 length; UInt8 data[MAX_LENGTH]; } gpTestData_t; • Ensure the implementation discovers and corrects corruptions in the underlying storage. • Extend your solution with a unit test. • Pay attention to optimize knowledge transfer to other developers
avatar

Senior Embedded Software Engineer

Interviewed at Qorvo

3.5
Sep 25, 2020

They give you an assignment which has the question like this. Obviously one is allowed to decide what he wants and documents everything or every assumption made. However you are not allowed to ask them questions about the assignment The exercise exists in the implementation of a non-volatile memory storage component. This component should be able to backup and restore values corresponding to a unique attribute identifier. For the simplicity of the exercise the underlying non-volatile memory (eeprom, flash, …) can be modelled as a file. Component Specification • Implement the basic implementation of this component based on following API description: typedef unsigned char UInt8; typedef UInt8 gpNvm_AttrId; typedef UInt8 gpNvm_Result; gpNvm_Result gpNvm_GetAttribute(gpNvm_AttrId attrId, UInt8* pLength, UInt8* pValue); gpNvm_Result gpNvm_SetAttribute(gpNvm_AttrId attrId, UInt8 length, UInt8* pValue); • Make sure the implementation supports different datatypes for pValue. Some examples: o Basic datatypes like UInt8, UInt32,… o An array of UInt8 o Structs like for instance: #define MAX_LENGTH 20 typedef struct { UInt8 id; UInt32 options; UInt8 length; UInt8 data[MAX_LENGTH]; } gpTestData_t; • Ensure the implementation discovers and corrects corruptions in the underlying storage. • Extend your solution with a unit test. • Pay attention to optimize knowledge transfer to other developers

Viewing 601 - 610 interview questions

Glassdoor has 4,751 interview questions and reports from Embedded software developer interviews. Prepare for your interview. Get hired. Love your job.