What is firmware?
Firmware is low-level code that drives the system, stored in non-volatile memory, and performs direct hardware interactions.
Where is firmware stored?
In non-volatile memory such as EEPROM or flash memory.
Is firmware application specific?
Yes
How does firmware relate to software and hardware?
Firmware is positioned between application software/operating system and hardware, enabling direct hardware interactions.
What diagram illustrates the relationship between software, firmware, and hardware?

List the components involved in the firmware relationship diagram.
What aspects could firmware classification indicate?
It suggests complexity and security measures of the firmware types.
What is a Type I Embedded System?
General purpose OS-based; uses a popular OS like Linux retrofitted for embedded systems. Example: Linux on a router.
Describe the characteristics of Type I Embedded Systems.
What defines a Type II Embedded System?
Embedded OS-based; uses a custom OS designed for embedded systems. Example: VxWorks on NASA's Curiosity Rover.
What are the characteristics of Type II Embedded Systems?
What is a Type III Embedded System?
No OS-abstraction; can be entirely custom. Example: Firmware on a Logitech G600 Mouse (Atmel ATmega32 HW).
Identify a characteristic of Type III Embedded Systems.
May include an 'OS-library' but system and application code are compiled together; no strict kernel/user separation.
What are the advantages of classifying firmware?
How is firmware important in embedded systems?
Firmware enables crucial low-level software functionalities for hardware operations.
What are the disadvantages of classifying firmware?
Which ARM profile is optimized for rich operating systems and offers highest performance?
Cortex-A
Identify the ARM profile designed for hard real-time applications.
Cortex-R
Which ARM profile is best for low power and microcontrollers?
Cortex-M
List typical uses of the Cortex-A ARM profile.
Describe the optimization focus of the Cortex-R ARM profile.
Fast response for high performance, hard real-time applications.
List typical uses of the Cortex-R ARM profile.
What are common applications of the Cortex-M profile?
What is firmware's role in embedded systems?
It is crucial low-level software enabling hardware operations.
What does the instruction add r0, r1, r2 do?
Adds the value in r1 to r2 and stores the result in r0.
What does the instruction ldr r0, [sp] accomplish?
Loads the value stored at the address in sp into r0.
What is the purpose of the instruction str r0, [sp, 4]?
Stores the value of r0 at the address calculated as sp + 4.
Explain the function of bl 0x0800144.
Branches to the instruction located at address 0x0800144.
What type of memory structure is typical in deeply embedded firmware?
Memory maps; A single physical address space where memory and peripherals are mapped at predefined addresses.
Do memory maps usually use virtual address spaces?
No, there is generally no need for virtual address spaces in embedded systems.
What does the memory map include?
Summarize the importance of firmware in embedded systems.
Firmware is crucial low-level software that enables hardware operations.
What is firmware?
Firmware is low-level code that drives the system, stored in non-volatile memory, and performs direct hardware interactions.
How does firmware relate to software and hardware?
Firmware is positioned between application software/operating system and hardware, enabling direct hardware interactions.
List the components involved in the firmware relationship diagram.
What aspects could firmware classification indicate?
It suggests complexity and security measures of the firmware types.
What is a Type I Embedded System?
General purpose OS-based; uses a popular OS like Linux retrofitted for embedded systems. Example: Linux on a router.
Describe the characteristics of Type I Embedded Systems.
What defines a Type II Embedded System?
Embedded OS-based; uses a custom OS designed for embedded systems. Example: VxWorks on NASA's Curiosity Rover.
What are the characteristics of Type II Embedded Systems?
What is a Type III Embedded System?
No OS-abstraction; can be entirely custom. Example: Firmware on a Logitech G600 Mouse (Atmel ATmega32 HW).
Identify a characteristic of Type III Embedded Systems.
May include an 'OS-library' but system and application code are compiled together; no strict kernel/user separation.
What are the advantages of classifying firmware?
How is firmware important in embedded systems?
Firmware enables crucial low-level software functionalities for hardware operations.
What are the disadvantages of classifying firmware?
Describe the optimization focus of the Cortex-R ARM profile.
Fast response for high performance, hard real-time applications.
What is firmware's role in embedded systems?
It is crucial low-level software enabling hardware operations.
What does the instruction add r0, r1, r2 do?
Adds the value in r1 to r2 and stores the result in r0.
What does the instruction ldr r0, [sp] accomplish?
Loads the value stored at the address in sp into r0.
What is the purpose of the instruction str r0, [sp, 4]?
Stores the value of r0 at the address calculated as sp + 4.
What type of memory structure is typical in deeply embedded firmware?
Memory maps; A single physical address space where memory and peripherals are mapped at predefined addresses.
Do memory maps usually use virtual address spaces?
No, there is generally no need for virtual address spaces in embedded systems.
Summarize the importance of firmware in embedded systems.
Firmware is crucial low-level software that enables hardware operations.

Classification helps gauge firmware complexity and security:
| Type | Name | OS Abstraction | Characteristics | Example |
|---|---|---|---|---|
| Type I | General purpose OS-based | Uses popular OS retrofitted for embedded systems. | Kernel abstracts hardware interaction; can use custom components. | Linux on a router |
| Type II | Embedded OS-based | Uses a custom OS designed for embedded systems. | Created for real-time constraints; reduced functionality compared to typical OS. | VxWorks on NASA's Curiosity Rover |
| Type III | No OS-Abstraction | Can be entirely custom. | System and application code compiled together; no strict kernel separation. | Firmware on a Logitech G600 Mouse |
| ARM Profile | Optimisation | Typical Use |
|---|---|---|
| Cortex-A (occasion) | Highest performance, optimized for rich operating systems. | Mobile devices (phones, tablets) |
| Cortex-R (real time) | Fast response, optimized for hard real-time applications. | Automotive, industrial robotics |
| Cortex-M (microprocessor) | Smallest/lowest power, optimized for microcontrollers. | Wearables, lighting, headphones |

| Registers | Example Instructions: | Explanations: |
|---|---|---|
| r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13 (sp), r14 (lr), r15 (pc), xpsr | Arithmetic: add r0, r1, r2 | Add r2 to r1 and store result in r0 |
| Load: ldr r0, [sp] | Load the value stored at sp into r0 | |
| Store: str r0, [sp, 4] | Store the value of r0 into the location pointed by sp+4 | |
| Branch: bl 0x0800144 | Store address of next instruction and jump to 0x08000144 |
More details available in supplementary materials.

Are you sure you want to delete 0 flashcard(s)? This cannot be undone.
Select tags to remove from 0 selected flashcard(s):
Loading tags...