Essential Embedded Systems Vocabulary List

Essential Embedded Systems Vocabulary List
Word Count: 8600, Content Quality Index: ⭐⭐⭐⭐⭐

▎ A

ASIC (Application-Specific Integrated Circuit) – A customized hardware designed on a single chip.
address bus – An electronic circuit that connects the processor to all peripherals for communication. The address bus is used by the processor to select memory addresses or registers in specific peripherals. If there are n lines in the address bus, the processor can uniquely address up to 2^n address space.
application software – Refers to a specific software module in an embedded project. Unlike reusable cross-embedded platforms, each embedded system has different application software.
assembler – A software development tool that converts human-readable assembly language programs into machine instructions that the processor can understand and execute.
assembly language – A human-readable form of processor instruction set. Most processor-related functions must be written in assembly language.

▎ B

BSP (Board Support Package)
binary semaphore – A signal that has only two states, also known as a mutex signal.
board support package – The platform-dependent part of a software package. Typically, the example source code for the board support package is provided by the package developer. The example source code must be modifiable, compilable, and linkable with the rest of the software package as needed.
bond-out processor – A special version of a processor that has some internal signals routed to external pins. A bond-out processor is typically used in emulators and is never specifically used in product systems.
Breakpoint – An address in a program where execution is halted, and control is transferred to a debugger. Most debugging tools provide mechanisms for adding and removing breakpoints.

▎ C

CISC (Complex Instruction Set Computer) – A description of a type of processor architecture. CISC processors generally produce variable-length instructions, multiple addressing formats, and have only a small number of general-purpose registers. Intel’s 80×86 family is a typical CISC processor, compared to RISC.
CPU (Central Processing Unit) – The part of the processor that executes instructions.
Compiler – A software development package that converts high-level programming language programs into machine instructions that only specific processors can understand and execute.
context – The current state and flags of the processor.
context switch – The process of switching from one task to another in a multitasking operating system. Context switching involves saving the context of the currently running task and restoring the context of another previously saved task. The code performing this function must have processor privileges.
counting semaphore – A signal used to track multiple resources of the same type. It only blocks when all available resources are exhausted, compared to binary semaphores.
critical section – A segment of code that must be executed in order and cannot be interrupted; otherwise, the software cannot guarantee correct operation. See: race condition.
cross-compiler – A compiler that runs on a different platform, one of which can produce target code. Cross-compilers run on the host and generate target code for the target machine.

▎ D

DMA (Direct Memory Access) – A technique for transferring data directly between two peripherals (usually memory and I/O devices) with minimal processor intervention. DMA transfers are managed by a third-party peripheral called a DMA controller.
DRAM (Dynamic Random Access Memory) – A type of RAM that retains data only when the device is periodically refreshed. The refresh cycle is typically managed by a device called a DRAM controller.
Data bus – An electronic circuit that connects the processor to all peripherals for communication. When a processor wants to write (read) content to a specific memory address or register in a peripheral, it sets the address bus and receives (transmits) content on the data bus.
Deadline – The specific time by which a computation must be completed. See real-time systems.
Deadlock – An undesirable state in software where all tasks are blocked waiting for an event that can only be produced by one of the blocked tasks. If a deadlock occurs, the only solution is to restart the hardware. However, reliable software design practices can often prevent deadlocks.
debug monitor – Embedded software specifically designed as part of a debugging tool. It is typically placed in ROM and communicates with a debugger via serial port or network. The debug monitor provides a simple command set to display memory addresses and registers, set and remove breakpoints, and run your program. The debug monitor combines these simple commands to implement high-level requests like program downloading and single-step debugging.
Debugger – A software development tool used to test and debug embedded software. The debugger runs on the host machine and connects to the target machine via serial port or network. You can use the debugger to download software to the target machine and run it directly. You can also set breakpoints and inspect the contents of specific memory addresses or registers.
device driver – A software module that hides the details of a specific peripheral and provides a high-level programming interface for the peripheral.
device programmer – A tool used to program non-volatile memory and other electrically programmable devices. Typically, programmable devices are connected to the device programmer’s interface, and the contents of the memory buffer are transferred into them.
digital signal processor – A device similar to a microprocessor, but its internal CPU is optimized for specific applications, such as discrete signal processing. In addition to standard microprocessor instructions, DSPs often support complex instruction sets to perform general signal processing calculations very quickly. Common DSP families include TI’s 320Cxx and Motorola’s 5600x series.

▎ E

EEPROM (Electrically Erasable Programmable Read-Only Memory) – A type of ROM that can be electrically erased.
EPROM (Erasable Programmable Read-Only Memory) – A type of memory that can be erased using ultraviolet light. After erasure, EPROM can be reprogrammed with the help of a device programmer.
embedded system – A combination of computer hardware and software, possibly including mechanical components, designed to perform dedicated functions. In some cases, an embedded system is part of a larger system or product, such as an anti-lock braking system in a car, in contrast to general-purpose computers.
Emulator – A debugging tool that places a simulated processor on your target board. Emulators are often combined with a bond-out version of the target processor, which allows you to observe and record its internal state while running programs.
Executable – A file containing target code ready to run on the target machine. It can be placed in ROM or downloaded via debugging tools.

F

Firmware – Embedded software stored as target code in ROM. This term is quite popular among users of digital signal processors.
flash memory – A hybrid of RAM and ROM that can be erased and rewritten under software control. Some devices are divided into blocks called segments, which can be erased individually. Flash memory is used in situations requiring inexpensive non-volatile data storage, and large-capacity flash memory can even be used as disk drives.

G

general-purpose computer – A combination of computer hardware and software that serves as a general computing platform, e.g., PC, in contrast to embedded computers.

H

HLL – See high-level language.
Heap – A memory area used for dynamic memory allocation. Operations on the heap are conducted at runtime using malloc and free, or C++’s new and delete operators.
high-level language – A language, such as C or C++, that is processor-independent. When programming in a high-level language, there is no need to consider the specifics of a particular processor; one only needs to focus on algorithms and applications.
Host – A general-purpose computer that communicates with the target machine via serial port or network. This term is generally used to distinguish the computer running the debugging program from the embedded system being developed.

I

ICE – In-Circuit Emulator. See emulator.
I/O (Input/Output) – The interface for interaction between the processor and the outside world. The simplest examples are switches (input) and light-emitting diodes (output).
I/O device – A hardware device that acts as an intermediary between the processor and the outside world. Common examples include switches, LEDs, serial ports, and network controllers.
I/O map – A table or chart that contains the names and addresses of each peripheral, which can be set by the processor in the I/O space. I/O mapping is beneficial for understanding the target machine’s status.
I/O space – A special memory area provided by the processor, typically reserved for I/O device attachments. Memory locations and registers in the I/O space can only be accessed through special designations. For example, 80X86 family processors have special I/O space instructions called in/out, in contrast to memory space.
ISR (Interrupt Service Routine) – A register in the processor that contains the address of the next instruction to be executed. Also known as the program counter.
Interrupt – An asynchronous electrical signal from a peripheral to the processor. When a peripheral sends this signal, we say an interrupt has occurred. When an interrupt occurs, the current processor state is saved, and the interrupt service routine begins execution. When the interrupt service routine exits, control returns to the previously running software.
interrupt latency – The duration between the occurrence of an interrupt and the execution of the associated interrupt service routine.
interrupt service routine – A small piece of software that runs in response to a specific interrupt.
interrupt type – A unique number associated with each interrupt.
interrupt vector – The address where the interrupt service routine resides.
interrupt vector table – A table that contains the interrupt vectors and indices determined by the interrupt type. This table maps interrupts to interrupt service routines and must be initialized by the programmer.
intertask communication – A mechanism used to share information between tasks and interrupt service routines and synchronize their access to shared resources. Most intertask communication is based on semaphores and mutexes.

K

Kernel – The essential part of any multitasking operating system, the kernel contains only the scheduler and context-switching processes.

L

Linker – A development tool that can combine one or more object files into a relocatable program that can be input and output. The linker runs after all source files have been compiled or assembled.
Locator – A software development tool that assigns physical addresses to relocatable programs processed by the linker. This is the final step in preparing software to run in an embedded system, resulting in an executable file. In some cases, the locator’s function is hidden within the linker.
logic analyzer – A hardware debugging tool that can capture real-time electrical signals at many logic levels (0 or 1). Logic analyzers are very useful for debugging hardware issues and complex interactions between peripherals.

M

memory map – A table or chart in memory space that contains the names and address ranges that can be set by the processor for each peripheral. Memory mapping helps to understand the target machine’s status.
memory-mapped I/O – An increasingly popular hardware design method where I/O devices are placed in memory space instead of I/O space. From the processor’s perspective, memory-mapped I/O devices appear similar to memory.
memory space – The standard address space of a processor. In contrast to I/O space.
Microcontroller – Similar to a microprocessor, except that microcontrollers are specifically designed for embedded systems. Microcontrollers typically include a CPU, memory (small RAM or ROM), and other peripherals on the same chip. Common examples include: 8051, Intel 80196, and Motorola 68HCxx series.
Microprocessor – A silicon chip containing a general-purpose CPU. Common examples include: Intel 80×86 and Motorola 680×0 series.
Monitor – In the context of this book, refers to a debugging monitor. However, the second meaning is associated with inter-task communication. In that context, a monitor is a feature of high-level synchronization mechanisms.
Multiprocessing – The presence of multiple processors in a single computer system. Generally, systems referred to as “multiprocessor systems” have shared memory space, and processors communicate and share data through it. Additionally, some multiprocessor systems support parallel processing.
Multitasking – The ability to run multiple software programs in a pseudo-parallel manner. Each program behaves like a separate “execution thread” and is considered a task. The operating system simulates parallelism by allocating processor time.
Mutex – A data structure that exhibits mutual exclusion, also used as a binary semaphore. A mutex is essentially a binary semaphore sensitive to multitasking, used to synchronize multitasking behavior, often used to protect critical section code from interrupts and for shared resource synchronization.
mutual exclusion – The guarantee of exclusive access to shared resources. In embedded systems, typical shared resources include memory blocks or groups of registers. Mutual exclusion can be achieved using semaphores or mutexes.

N

NVRAM – Non-volatile Random Access Memory. A type of RAM that retains its data even when the system is powered off. NVRAM typically consists of SRAM and a long-lasting battery.

O

OTP – The operation codes and data that a processor can read. The output files of compilers, assemblers, linkers, and locators contain target code.
object file – A file that contains target code, output from a compiler or assembler.
one-time programmable – Any programmable device, like PROM, that can only be programmed once by the end user. However, this term is generally used specifically for microcontrollers with on-chip PROM.
opcode – A sequence of binary bits validated by the processor, which serves as a subset of its instruction set.
operating system – Software that enables multitasking. An operating system typically consists of a set of function calls, software interrupts, and periodic clock cycles. An operating system is responsible for deciding which task will use the processor at a given time and controlling access to shared resources.
Oscilloscope – A hardware debugging tool that allows you to observe voltages on one or more circuits. For example, if a specific interrupt occurs, you can use an oscilloscope to detect it.

P

PROM (Programmable Read-Only Memory) – A type of ROM that can be written by a device programmer. This type of memory can be programmed once, so they are sometimes viewed as write-once or one-time programmable devices.
parallel processing – The ability to run two or more programs on a single computer.
Peripheral – A hardware device that is different from the processor, often referring to memory or I/O devices. Peripherals are often integrated with the processor on a single chip, in which case they are referred to as integrated peripherals.
physical address – The actual address on the address bus when accessing a memory location or register.
Preemptive – A scheduling strategy that allows a running task to be suspended when a higher-priority task becomes ready. Non-preemptive scheduling strategies are easier to implement but are less suitable for use in embedded systems.
Polling – A method of hardware interaction that continuously reads the status register until the device enters a waiting state. Device drivers are either polling or interrupt-driven, with the latter becoming increasingly preferred.
Priority – The importance of a task in relation to other tasks.
priority inversion – An undesirable software state where a high-priority task is delayed because it is waiting to access a shared resource that is no longer in use. During the delay period, the priority of this task is effectively lowered.
Process – This term is often confused with task or thread. The critical difference is that all tasks in the system share a common memory space. A process, on the other hand, often has its own private memory space. Processes are common in multi-user systems, but rarely, if possible, also in embedded systems.
Processor – A general term that refers to microprocessors, microcontrollers, and digital signal processors without distinction.
processor family – A set of related processors often produced sequentially by a manufacturer. For example, Intel’s 80×86 family began with the 8086 and now includes 80186, 286, 386, 486, Pentium, and others. Within a family, later products are typically backward compatible with earlier products.
processor-independent – Software that is independent of the processor and can run on it. Most programs written in high-level languages are processor-independent, in contrast to processor-specific.
processor-specific – Software that is highly dependent on the processor and can only run on it. Some code must be written in assembly language, in contrast to processor-independent.
Profiler – A software debugging tool that reports statistics about your program’s execution. These statistics include the number of times each subroutine is called and the time spent. This data is often used to understand which subroutines are most critical and thus require the most efficient code.

R

RAM (Random Access Memory) – A rough classification of a storage device that allows every address to be read and written on demand.
RISC (Reduced Instruction Set Computer) – A description of a processor family. RISC processors are characterized by a fixed-length instruction set, a load/store architecture, and a large number of general-purpose registers and register windows. The MIPS processor family is an excellent example, compared to CISC.
ROM (Read-Only Memory) – A rough classification of memory that can only be read and not written to at every address.
ROM emulator – A debugging tool that replaces or simulates ROM on your target board. ROM emulators function like a debug monitor, except they include their own serial port or network connection to the host.
ROM monitor – See debug monitor.
RTOS (Real-Time Operating System) – An operating system specifically designed for use in real-time systems.
race condition – A situation where the outcome of program execution may be affected by the order in which instructions are executed. Race conditions only occur when interrupts or (and) priority preemption are allowed and a critical section exists.
real-time system – Any computer system, embedded or otherwise, that has a deadline. The following question can be used to distinguish real-time systems from other systems: “Is a late response bad, or is an incorrect response bad?” In other words, what happens if the computer does not complete its work within the specified time? If nothing happens, it is not a real-time system. If lives are lost or tasks fail, it is considered a “hard” real-time system, meaning the system has a “hard” deadline. Between the two is a “soft” real-time system.
Recursive – A term for a program that calls itself. Recursion is generally not allowed in embedded systems because it often consumes large amounts of stack space.
Reentrant – A term for a program that can be run multiple times simultaneously. Reentrant functions can be safely called recursively or called multiple times by multitasking. The key to making code reentrant is to ensure mutual exclusion when accessing global variables or shared registers.
Register – An address of a storage element that is part of the processor or I/O device. In other words, it is not standard memory. Generally, registers control each binary bit or a set of bits that control the behavior of many devices.
Relocatable – A file that contains target code that is nearly ready to run on the target machine. The final step is to use a locator to tidy up relocatable addresses in the code. The result of this step is an executable program.
reset address – The address from which the first instruction can be fetched after the processor is powered on or reset.
reset code – A piece of code placed at the reset address. Reset code is typically written in assembly language and may be quite simple, essentially meaning “jump to start code.”
reset vector – See reset address.

S

SRAM (Static Random Access Memory) – A type of memory that retains its contents when the system is powered on. When the system is powered off or reset, the contents stored in SRAM will be lost.
Scheduler – The part of an operating system that decides which task runs next. The decision is based on the readiness of each task, their priority relationships, and the implementation of specific scheduling algorithms.
Semaphore – A data structure used for inter-process synchronization. Semaphores are often provided by the operating system.
Simulator – A debugging tool that runs on the host and acts as the target machine’s processor. Simulators are generally used to test software before the embedded hardware is available. Unfortunately, attempts to simulate complex interactions with peripherals often perform worse than they should.
software interrupt – A program interrupt initiated by a software instruction. Software interrupts are used to implement breakpoints and entry points into the operating system. Unlike real interrupts, which occur synchronously without hindering program execution, software interrupts often occur at the beginning of an instruction execution cycle.
Stack – A memory area that contains a last-in-first-out queue used to store parameters, automatic variables, return addresses, and other information that must be maintained during function calls. In multitasking situations, each task generally has its own stack area.
stack frame – A stack area associated with a specific function call.
startup code – Assembly language code that prepares software written in high-level languages to run. Most C/C++ cross-compilers come with startup code before you can modify, compile, and link your embedded program.

T

Target – Another name for an embedded system. This term is often used during software development to distinguish the host communicating with the embedded system.

Task
Thread
Tracepoint – Similar to a breakpoint, except that in addition to stopping the program, a counter is also incremented. Tracepoints are not supported by all debugging tools.
Trap – A program interrupt triggered by internal hardware of the processor. For example, the processor may trap when erroneous code is encountered in the program. Compare with software interrupt.

V

volatile – A value that may change without software intervention is called volatile. For example, the values of some I/O device registers may change in response to external events. The volatile keyword in C is used to warn your compiler that a pointer points to some registers and should not be optimized. This ensures that the actual value is re-read every time it is used in data.

W

watchdog timer – A hardware timer that is reset by software at regular intervals. If the software hangs and fails to reset the watchdog timer, it will time out, and the entire system will automatically restart.
Disclaimer: This article is sourced from the internet, and the copyright belongs to the original author. If there are copyright issues, please contact us for removal.

Essential Embedded Systems Vocabulary List

1

24-episode Linux Operating System Premium Tutorial

2

Access Method: Reply 【714】 in the background

Essential Embedded Systems Vocabulary List

1

“13 Tips! Optimization Techniques You Must Know in Embedded C Language…”

2

“8000 Words! Data Storage and Programming Knowledge You Must Know in Embedded C Language!”

3

“20 Common Interview Questions for Embedded Engineers (With Answers)”

Essential Embedded Systems Vocabulary List

This Week’s Live Broadcast | Click to View👇

Essential Embedded Systems Vocabulary List

Monday | Huawei Master Brother Introduces You to Artificial Intelligence

1. What is Artificial Intelligence?

2. Classification of Artificial Intelligence

3. Practical Applications of Artificial Intelligence

Essential Embedded Systems Vocabulary List

Tuesday | C Language Compiler Code Optimization

1. Variable Access in C Language

2. Compiler Code Optimization

3. Use of the volatile Keyword

Essential Embedded Systems Vocabulary List

Wednesday | 1 Hour Deep Dive into Work Queues

1. Application Scenarios of Work Queues

2. Common Interface Functions of Work Queues

3. Typical Cases of Work Queues

Essential Embedded Systems Vocabulary List

Thursday | Lightweight Database for Embedded Applications

1. What is an Embedded Database?

2. How to Use SQLite Basic Syntax?

3. How to Use SQLite API (C) Functions?

Essential Embedded Systems Vocabulary List

Every day, hardworking little creators generate power,

[Share, Like, Follow] Can I have a duck?Essential Embedded Systems Vocabulary List

Leave a Comment