Sign-In
Register
Please choose an option to Register
Register as Freelancer
Register as Client
Close
Bellgigs
Bridging Skills and Opportunities
Sign-In
Register
☰
Back To Interview Q & A
Back To Interview Q & A
Home
About Us
Apply for Jobs
Build Resume
Interview Questions & Answers
Contact Us
Help
Suggested Certification for Keil Uvision
Certified Embedded System Engineer from IPCS Global
Recommended Book for Keil Uvision
★★★★☆
Check Amazon for current price
View Deal
On Amazon
Recommended Book 1 for Keil Uvision
★★★★☆
Check Amazon for current price
View Deal
On Amazon
Recommended Book 2 for Keil Uvision
★★★★☆
Check Amazon for current price
View Deal
On Amazon
Recommended Book 3 for Keil Uvision
★★★★☆
Check Amazon for current price
View Deal
On Amazon
Recommended Book 5 for Keil Uvision
★★★★☆
Check Amazon for current price
View Deal
On Amazon
Note:
*Check out these useful books! As an Amazon Associate I earn from qualifying purchases.
Interview Questions and Answers
1. What is Keil µVision?
Keil µVision (now part of MDK-ARM by Arm) is an Integrated Development Environment (IDE) for developing, building, and debugging embedded applications primarily for Arm Cortex-M, Cortex-R, Arm7, Arm9, and 8051-based microcontrollers.
2. What are the main components of Keil MDK?
µVision IDE, Arm Compiler (armcc/armclang), CMSIS-Core, CMSIS-RTOS (RTX or RTX5), Software Packs (Device Family Packs - DFP), and ULINK/ J-LINK debug adapters.
3. What is a Device Family Pack (DFP) in Keil?
DFP is a software pack that contains startup files, CMSIS drivers, register definitions, flash programming algorithms, and example projects specific to a microcontroller family (e.g., STM32F4, NXP LPC, etc.).
4. How do you create a new project in Keil µVision?
Project ? New µVision Project ? Select directory ? Choose microcontroller from Database (Manage Run-Time Environment ? Select device) ? Add startup file and configure components.
5. What is the difference between Keil MDK-Lite and MDK-Professional?
MDK-Lite has a 32 KB code size limit and limited middleware; MDK-Standard/Professional removes the code size limit and includes full middleware (TCP/IP, USB, File System, etc.) and advanced debug features.
6. What is the startup file (startup_xxx.s) in Keil?
It is an assembly file that contains the vector table, reset handler, default exception handlers, and system initialization (stack pointer setup) before jumping to main().
7. How do you configure the debugger in Keil?
Project ? Options for Target ? Debug tab ? Select debugger (ULINK, J-LINK, CMSIS-DAP, ST-Link) ? Load the correct driver and flash algorithm from the pack.
8. What is the purpose of the Scatter file (or linker script) in Keil?
The .sct (scatter) file defines memory layout (Flash and RAM regions), placement of code, data, stack, heap, and RW/ZI sections for the linker.
9. What are __attribute__((section())) and __attribute__((at())) in Keil?
__attribute__((section("name"))) places a variable/function in a custom section. __attribute__((at(address))) places a variable at an absolute memory address (used for peripherals or special memory).
10. How do you view memory, registers, and peripherals while debugging?
Debug ? Windows ? System Viewer (for peripherals/SVD), Memory window, Watch window, or Registers window. Peripherals are visible only if the device SVD file is installed.
11. What is the difference between Debug and Release configuration in Keil?
Debug: Optimization Level 0, includes debug symbols (-g), larger code. Release: Higher optimization (O2/O3), no debug info, smaller and faster code.
12. How do you add an RTOS (RTX5) in Keil?
Open Manage Run-Time Environment ? CMSIS ? RTOS2 (Keil RTX5) ? Select components (Kernel, Event Flags, etc.) ? Keil automatically adds source files and configurations.
13. What is the use of the Pack Installer in Keil?
Pack Installer downloads and manages Device Family Packs, CMSIS, middleware packs, and legacy support packs from the Keil website.
14. How do you generate HEX/BIN files in Keil?
Project ? Options for Target ? Output tab ? Check "Create HEX File" or use the fromelf utility in User tab (after-build command) to generate .bin.
15. What is the difference between __weak and normal function declaration in startup file?
__weak functions (like HardFault_Handler) are default weak implementations that can be overridden by user-defined strong implementations in main code.
16. What is the difference between .axf, .elf, and .hex files?
.axf/.elf: Debuggable executable with symbols. .hex: Intel HEX format used by programmers for flashing. .bin: Raw binary image.
17. How do you enable semihosting in Keil?
Use #include and printf; in Options ? C/C++ ? check "Enable MicroLIB" or link with RTL that supports semihosting, and enable ITM Port 0 in debug settings.
18. What is the Event Recorder in Keil?
Event Recorder is a lightweight debugging tool using CMSIS-DAP that captures printf-like events, RTOS events, and user annotations with timestamps without stopping the target.
19. How do you use Software Packs instead of legacy support?
Use Manage Run-Time Environment (RTE) window instead of "Select Device for Target" ? legacy method. Packs provide automatic component selection and updates.
20. How do you perform code size and performance analysis in Keil?
Build Output shows code/data sizes. Use Performance Analyzer (Debug ? Performance Analyzer) or Instruction Trace (ETM) with ULINKpro for cycle-accurate profiling.