Firmware Engineer

30+ Firmware Engineer Interview Questions and Answers

Updated 8 Nov 2024

Popular Companies

search-icon

Q1. In DSA part, 1. Code for merge sort 2. Check if two trees are mirror 3. Find element in rotated sorted array 4. Check if linked list is palindrome 5. Detect a loop in linked list 6. Remove loop in linked list

Ans.

List of DSA questions including merge sort, tree mirror check, rotated sorted array search, linked list palindrome and loop detection and removal.

  • Merge sort is a divide and conquer algorithm that sorts an array in O(nlogn) time complexity.

  • To check if two trees are mirror, we need to compare their left and right subtrees recursively.

  • To find an element in a rotated sorted array, we can use binary search algorithm.

  • To check if a linked list is palindrome, we can use stack or recu...read more

Q2. What is structure padding and why it happens?

Ans.

Structure padding is the insertion of unused bytes between members of a structure to align the data in memory.

  • Padding is added to ensure that each member of the structure is aligned to a memory address that is a multiple of its size.

  • Padding can be compiler-dependent and can vary based on the target architecture.

  • Padding can affect the size of the structure and the performance of the program.

  • Example: struct MyStruct { char a; int b; char c; }; - padding will be added between a ...read more

Firmware Engineer Interview Questions and Answers for Freshers

illustration image

Q3. Digital Electronics - FSM based design Programs - Generate square wave with 1KHz and 2KHz frequency on ports P1,P2 Prime number code and optimise it using any algorithm

Ans.

Design FSM to generate square waves at 1KHz and 2KHz on ports P1 and P2, optimize prime number code.

  • Implement a Finite State Machine (FSM) to generate square waves at 1KHz and 2KHz on ports P1 and P2.

  • Use counters and timers to control the frequency of the square waves.

  • Optimize the prime number code by using algorithms like Sieve of Eratosthenes or trial division.

Q4. SOLVE TRAFFIC SIGNAL USING C (FIRST ALGORITHM AND THEN PROGRAM). PASCAL S TRIANGLE.

Ans.

Implement traffic signal using C and Pascal's triangle.

  • For traffic signal, use a state machine to switch between red, yellow, and green lights.

  • For Pascal's triangle, use nested loops to calculate and print the triangle.

  • Ensure proper timing and synchronization for the traffic signal.

  • Use appropriate data structures and algorithms for efficient implementation.

Are these interview questions helpful?

Q5. difference between diode and Zener diode

Ans.

A diode is a two-terminal electronic component that allows current to flow in one direction, while a Zener diode is a special type of diode that allows current to flow in reverse direction when a certain voltage is reached.

  • Diodes are used for rectification, signal demodulation, and voltage regulation.

  • Zener diodes are used for voltage regulation and protection against voltage spikes.

  • Diodes have a forward voltage drop, while Zener diodes have a breakdown voltage.

  • Diodes have a s...read more

Q6. write a programm to print interger in a array which is repeated thrice

Ans.

The program prints integers in an array that are repeated thrice.

  • Iterate through the array and count the occurrences of each integer.

  • Print the integers that have a count of three.

Share interview questions and help millions of jobseekers 🌟

man-with-laptop

Q7. Explain the Masters Thesis Project in detail. What is CNF and DNF ? How project is relevant to Binarized Neural Network ? Other questions were C language related.

Ans.

Master's thesis project focused on CNF and DNF in relation to Binarized Neural Networks.

  • CNF stands for Conjunctive Normal Form and DNF stands for Disjunctive Normal Form.

  • CNF is a conjunction of clauses, while DNF is a disjunction of clauses.

  • Binarized Neural Networks use binary values (0 or 1) for weights and activations to reduce memory and computation requirements.

  • The project likely explored how CNF and DNF can be used in the context of Binarized Neural Networks to optimize ...read more

Q8. make int a = 0xabcd to a=0xcdab without using 2nd variable

Ans.

Use bitwise operations to swap the bytes of the integer without using a second variable.

  • Use bitwise AND and bitwise OR operations to swap the bytes of the integer.

  • Shift the bytes to the correct positions using bitwise operations.

  • Example: a = 0xabcd; a = ((a & 0x00FF) << 8) | ((a & 0xFF00) >> 8);

Firmware Engineer Jobs

Firmware Engineer 4-7 years
VMware India
4.4
Bangalore / Bengaluru
Engineer II Firmware Engineering X 4-8 years
Vertiv Group Corp
4.0
Kolkata
Firmware Engineer 2-6 years
IBM India Pvt. Limited
4.1
Bangalore / Bengaluru

Q9. what is the use of pull-up resistance in i2c ?

Ans.

Pull-up resistors in I2C are used to ensure proper communication by providing a defined voltage level when the bus is in an idle state.

  • Pull-up resistors are used to pull the signal high when no device is actively driving it low.

  • They prevent floating bus conditions and help in maintaining signal integrity.

  • Pull-up resistors are typically connected to the SDA and SCL lines in an I2C bus.

  • Common values for pull-up resistors in I2C are around 2.2kΩ to 10kΩ.

  • Without pull-up resistors...read more

Q10. write a programm to reverse a string on paper in c language

Ans.

This program reverses a given string in C language.

  • Declare a character array to store the input string.

  • Find the length of the string using the strlen() function.

  • Initialize two variables, one pointing to the start of the string and the other pointing to the end.

  • Swap the characters at the start and end positions using a temporary variable.

  • Increment the start pointer and decrement the end pointer until they meet in the middle.

  • Print the reversed string.

Q11. Different communication protocols

Ans.

Communication protocols are sets of rules that govern the exchange of data between devices.

  • Some common communication protocols include UART, SPI, I2C, CAN, Ethernet, and USB.

  • Each protocol has its own advantages and disadvantages, and is suited for different types of applications.

  • For example, UART is a simple protocol commonly used for serial communication between microcontrollers and sensors, while Ethernet is a more complex protocol used for networking.

  • Understanding differen...read more

Q12. what is meant by code bloating ???

Ans.

Code bloating refers to the unnecessary increase in the size of software code due to redundant or inefficient programming practices.

  • Code bloating can occur when developers use inefficient algorithms or write redundant code.

  • It can also happen when unnecessary features or libraries are included in the codebase.

  • Code bloating can lead to slower performance, increased memory usage, and longer development times.

  • Examples of code bloating include using nested loops when a single loop...read more

Q13. explain the compilation steps for a C code ?

Ans.

Compilation steps for C code involve preprocessing, compiling, assembling, and linking.

  • Preprocessing: Includes header files, macro expansion, and conditional compilation.

  • Compiling: Translates source code to assembly code specific to the target architecture.

  • Assembling: Converts assembly code to machine code in object files.

  • Linking: Combines object files with libraries to create an executable file.

Q14. which is faster a++ or a=a+1

Ans.

a++ is faster than a=a+1 because it is a single operation compared to two operations in a=a+1.

  • a++ is a single operation that increments the value of a directly

  • a=a+1 involves two operations - addition and assignment

  • Example: int a = 5; int b = a++; // b will be 5, a will be 6

  • Example: int a = 5; int b = a=a+1; // b will be 6, a will be 6

Q15. Draw bjt and mosfet model

Ans.

BJT and MOSFET are models used to represent transistors in electronic circuits.

  • BJT stands for Bipolar Junction Transistor and has three regions: emitter, base, and collector.

  • MOSFET stands for Metal Oxide Semiconductor Field Effect Transistor and has three terminals: source, gate, and drain.

  • BJT is a current-controlled device while MOSFET is a voltage-controlled device.

  • BJT has a low input impedance while MOSFET has a high input impedance.

  • BJT is used in low power applications wh...read more

Q16. map vs unordered_map, vector vs list

Ans.

map and unordered_map are associative containers while vector and list are sequence containers.

  • map and unordered_map are used to store key-value pairs while vector and list are used to store sequences of elements.

  • map and unordered_map provide faster search and insertion of elements while vector and list provide faster insertion and deletion of elements.

  • map and unordered_map use red-black trees and hash tables respectively while vector and list use arrays and linked lists resp...read more

Q17. Volatile keywords in c work in which way

Ans.

Volatile keyword in C is used to indicate that a variable may be changed unexpectedly by external factors.

  • Volatile keyword tells the compiler not to optimize the variable because it can be changed by external factors.

  • Commonly used for memory-mapped hardware registers or variables accessed by multiple threads.

  • Example: volatile int *ptr = (int *)0x1234; // pointer to a memory-mapped hardware register

Q18. Code for fibonacci series

Ans.

Fibonacci series is a sequence of numbers where each number is the sum of the two preceding ones.

  • Declare variables for first, second and next numbers

  • Initialize first and second numbers as 0 and 1 respectively

  • Loop through the desired number of terms and calculate the next number as the sum of the previous two

  • Store the result in an array

  • Return the array

Q19. What do you know about HDD?

Ans.

HDD stands for Hard Disk Drive, a data storage device used in computers to store and retrieve digital information.

  • HDDs use magnetic storage to store data on spinning disks called platters.

  • They have read/write heads that move across the platters to access and modify data.

  • HDDs are typically used for long-term storage of large amounts of data in desktops, laptops, servers, and other devices.

  • Examples of HDD manufacturers include Seagate, Western Digital, and Toshiba.

Q20. Synchronisation of given thread blocks

Ans.

Synchronizing thread blocks is important for efficient and correct execution of parallel programs.

  • Thread blocks must be synchronized to avoid race conditions and ensure correct program output.

  • Synchronization can be achieved using locks, semaphores, or barriers.

  • Examples of synchronization include ensuring that shared resources are accessed by only one thread at a time, or that threads wait for each other before proceeding.

  • Synchronization can also be used to optimize program pe...read more

Q21. How to check stack overflow

Ans.

To check stack overflow, monitor stack usage and compare it to the maximum stack size.

  • Monitor stack usage by keeping track of the current stack pointer.

  • Compare the current stack pointer to the start of the stack and the maximum stack size.

  • Use a watchdog timer to detect stack overflow if the stack pointer exceeds the maximum stack size.

  • Use a stack overflow handler to gracefully handle stack overflow and prevent system crashes.

Q22. How to design a path for plane

Ans.

Designing a path for a plane involves considering factors like altitude, speed, weather conditions, and air traffic.

  • Consider the altitude and speed requirements for the flight

  • Take into account weather conditions and potential turbulence

  • Plan the route to avoid congested airspaces and potential conflicts with other aircraft

  • Use navigation systems and communication with air traffic control to ensure a safe and efficient path

Q23. Explain dynamic polymorphism

Ans.

Dynamic polymorphism is the ability of an object to take on multiple forms during runtime.

  • It allows objects of different classes to be treated as if they are of the same class.

  • It is achieved through virtual functions and inheritance.

  • Examples include function overriding and templates in C++.

Q24. Types of casts in C++

Ans.

C++ has four types of casts: static_cast, dynamic_cast, const_cast, and reinterpret_cast.

  • static_cast is used for implicit conversions between related types

  • dynamic_cast is used for runtime type checking and casting of polymorphic types

  • const_cast is used to remove const or volatile qualifiers from a variable

  • reinterpret_cast is used for low-level casting between unrelated types

  • Examples: static_cast(3.14), dynamic_cast(basePtr), const_cast(str), reinterpret_cast(&ptr)

Q25. What does Micron do ?

Ans.

Micron is a global leader in memory and storage solutions, providing innovative products for a wide range of applications.

  • Micron manufactures memory and storage products such as DRAM, NAND, and SSDs.

  • They cater to various industries including data centers, automotive, consumer electronics, and more.

  • Micron focuses on developing cutting-edge technologies to meet the growing demands of the digital world.

Q26. Make a counter using d flipflops

Ans.

A counter can be created using D flip-flops by connecting the output of one flip-flop to the input of the next.

  • Connect the Q output of one D flip-flop to the D input of the next flip-flop

  • Use clock signal to trigger the flip-flops and increment the count

  • Use additional logic gates if needed for specific counter functionality

Q27. Functors in C++, uses

Ans.

Functors are objects that can be treated as functions in C++. They are used for generic programming and can be passed as arguments.

  • Functors are often used in algorithms that require a function object as a parameter.

  • They can be used to implement callbacks and event handlers.

  • Functors can be used to create custom comparators for sorting algorithms.

  • They can also be used to implement function objects for mathematical operations.

  • Examples of functors in C++ include std::function, st...read more

Q28. IPC mechanisms in Linux

Ans.

IPC mechanisms in Linux are used for inter-process communication between processes running on the same system.

  • IPC mechanisms include pipes, message queues, shared memory, and semaphores.

  • Pipes are used for one-way communication between two processes.

  • Message queues allow for asynchronous communication between processes.

  • Shared memory allows multiple processes to access the same memory space.

  • Semaphores are used for synchronization between processes.

  • IPC mechanisms can be accessed ...read more

Q29. Storage class explanation

Ans.

Storage classes in C specify the lifetime and visibility of variables.

  • auto: default storage class for local variables

  • register: stores variables in CPU registers for faster access

  • static: retains value between function calls

  • extern: used to declare variables that are defined in another file

  • typedef: creates a new name for an existing data type

Q30. Coding threads with rtos

Ans.

Coding threads with RTOS involves creating and managing multiple threads in real-time operating systems.

  • Understand the RTOS scheduling algorithm to prioritize threads.

  • Use synchronization mechanisms like semaphores and mutexes to avoid race conditions.

  • Implement thread-safe data structures to share data between threads.

  • Consider the stack size and priority of each thread to prevent stack overflow and ensure timely execution.

Q31. interest of field for working

Ans.

I have always been fascinated by the intersection of hardware and software, and enjoy the challenge of working on low-level programming.

  • Passion for working on embedded systems

  • Interest in developing efficient and reliable firmware

  • Enjoy problem-solving and debugging at a low level

  • Excitement for working on cutting-edge technology

  • Desire to work in a dynamic and fast-paced environment

Q32. predict output [ c programs]

Ans.

The question asks to predict the output of C programs.

  • Understand the logic and flow of the program.

  • Consider the input values and how they affect the output.

  • Check for any conditional statements or loops that may alter the output.

  • Compile and run the program to verify the output.

Q33. Implement memcpy function

Ans.

Implementing memcpy function in C programming language

  • Use a loop to copy each byte from source to destination

  • Ensure to handle overlapping memory regions correctly

  • Consider using pointer arithmetic for efficient copying

Q34. C program for array swapping

Ans.

A C program to swap elements in an array of strings

  • Use a temporary variable to swap elements in the array

  • Iterate through the array and swap elements at each index

Q35. MQTT experience

Ans.

Experience with MQTT protocol for communication in IoT devices.

  • Developed firmware using MQTT protocol for real-time communication

  • Implemented MQTT client libraries in embedded systems

  • Worked on MQTT topics, QoS levels, and message retention policies

Q36. Explain controllers

Ans.

Controllers are devices that manage the operation of other devices or systems.

  • Controllers receive input, process it, and send output signals to control the operation of other devices.

  • Examples of controllers include microcontrollers, PLCs (Programmable Logic Controllers), and PID controllers.

  • Controllers can be used in various applications such as industrial automation, robotics, and consumer electronics.

Q37. Explain interupts

Ans.

Interrupts are signals sent to the CPU to temporarily suspend the current program and execute a specific task.

  • Interrupts allow the CPU to handle external events without constantly checking for them.

  • There are different types of interrupts such as hardware interrupts and software interrupts.

  • Examples of interrupts include keyboard input, timer expiration, and hardware errors.

Q38. Design a liked list

Ans.

A linked list is a linear data structure where each element is a separate object called a node.

  • Nodes contain data and a reference to the next node in the sequence.

  • Linked lists can be singly linked (each node points to the next) or doubly linked (each node points to both the next and previous).

  • Example: Node 1 -> Node 2 -> Node 3 -> null

Interview Tips & Stories
Ace your next interview with expert advice and inspiring stories

Top Interview Questions for Firmware Engineer Related Skills

Interview experiences of popular companies

3.8
 • 4.6k Interviews
3.8
 • 267 Interviews
4.2
 • 217 Interviews
4.3
 • 135 Interviews
3.7
 • 112 Interviews
3.5
 • 55 Interviews
View all

Calculate your in-hand salary

Confused about how your in-hand salary is calculated? Enter your annual salary (CTC) and get your in-hand salary

Firmware Engineer Interview Questions
Share an Interview
Stay ahead in your career. Get AmbitionBox app
qr-code
Helping over 1 Crore job seekers every month in choosing their right fit company
65 L+

Reviews

4 L+

Interviews

4 Cr+

Salaries

1 Cr+

Users/Month

Contribute to help millions
Get AmbitionBox app

Made with ❤️ in India. Trademarks belong to their respective owners. All rights reserved © 2024 Info Edge (India) Ltd.

Follow us
  • Youtube
  • Instagram
  • LinkedIn
  • Facebook
  • Twitter