Embedded Systems - Software Design

0.0(0)
studied byStudied by 0 people
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/27

flashcard set

Earn XP

Description and Tags

Flashcards covering key vocabulary from lecture notes on embedded systems software design.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

28 Terms

1
New cards

Embedded Systems Software

Software in embedded systems interacts directly with hardware and operates under strict timing, memory, and power limitations.

2
New cards

Embedded Software

Code specifically written to run on embedded systems that interacts directly with hardware through I/O ports, memory-mapped registers, and interrupts.

3
New cards

Bare metal programming

A type of software development where applications interact directly with a system's hardware, bypassing any operating system or virtualization layers.

4
New cards

Firmware

The low-level software that directly interfaces with the hardware components, stored in read-only memory or flash storage.

5
New cards

Real-time operating system

Designed to provide minimal services necessary for running embedded applications, managing hardware resources and meeting real-time requirements.

6
New cards

Middleware

A layer of software that provides additional services needed by application software, such as communication protocols and device drivers.

7
New cards

Application Software

Software designed to accomplish specific tasks that the embedded system is intended for, interacting with the operating system and hardware.

8
New cards

Sequential or Superloop Model

Organizing tasks into a continuous loop where each task executes sequentially in a predetermined order.

9
New cards

Event-Driven Model

Organizes system behavior around the occurrence of external or internal events, triggering specific functions or routines.

10
New cards

Interrupt-Based Model

Uses hardware or software interrupts to respond immediately to specific conditions or events, suspending the main program temporarily.

11
New cards

RTOS-Based Model

Introduces an operating system layer which schedules tasks and manages time, memory, and resources.

12
New cards

Threads

Schedulers

Semaphores

Timers

Queues

Concepts in RTOS-based model

Separate units of execution.

Determine which task runs when.

Manage resource sharing and prevent conflicts.

Trigger actions at defined intervals.

Used for inter-task communication

13
New cards

Limited RAM and ROM

Embedded systems often operate with limited memory resources.

The RAM is used for the Stack, Heap, and Buffers. The ROM is used for firmware, lookup

tables, and constant data.

14
New cards

Static Memory Allocation

is preferred because it is predictable and avoids memory fragmentation

15
New cards

Dynamic Memory Allocation

can be risky due to memory leaks and heap fragmentation, especially in systems with long uptime or safety requirements.

16
New cards

Optimization Technique

It is advisable that programmers will reuse memory where possible such as minimizing global variables and use smaller data types

17
New cards

Deterministic Behavior

Embedded software often needs predictable execution timing, especially in real-time systems. Tasks must execute within strict time limits to meet deadlines (e.g., respond to sensor input in milliseconds).

18
New cards

Software Delay

loops are inefficient and inaccurate because they depend on clock speed and processor load

19
New cards

Hardware Timer

provide precise time tracking and are better suited for generating delays, scheduling, and timeouts.

20
New cards

Task Scheduling

In RTOS-based systems, task priorities and deadlines must be carefully managed. Consider the worst-case execution time (WCET) of tasks to prevent deadline misses.

21
New cards

Power considerations

Power Budget and Energy Constraint

Usage of Low-Power Operating Modes

Peripheral Power Management

22
New cards

Editor

the development environment where a programmer writes the software in the programming language of choice, which becomes the source code for the device.

23
New cards

Compiler

transforms the code into low-level executable code that is specific to

the target microprocessor hosted by the device.

24
New cards

Assembler

converts human-written assembly code into machine language.

25
New cards

Debugger

a tool that allows a developer to thoroughly go through the code and makes sure there are no errors

26
New cards

Linker

that pulls together and formats low–level executable code in a

manner so that it executes properly on a target device

27
New cards

Libraries

rewritten program that is read to use and provides specific

functionalities. These can be system-provided or user-provided

28
New cards

Simulator

helps users see how the code works in real time. The input values can be changed to see corresponding outputs and parameter changes.