Terminology and Glossary
You can look up some terms in this terminology chapter if you have never heard them before or need a brief explanation.
- Peripheral: Dedicated hardware unit. On microcontrollers, this can be something like a UART, SPI or timer hardware block.
- Flash: Non-volatile memory which you can use to store your code and constants.
- Stack: Local memory that your program uses as it executes functions.
- Heap: Free memory that can be allocated in blocks. Oftentimes not available on microcontrollers.
- Static: Usually refers to the lifetime of a variable. A static variable is valid for the whole program duration.
- RAM: Volatile memory used to store your stack, heap and static variables.
- Processor: Hardware block which executes your code.
- Crate: Rust specific term for a library. The term crate and library might be used interchangeably in this book. Library is a more general term.
- MCU or Microcontroller: Integrates the processor, peripherals, flash, RAM and is usually placed on a printed circuit board as part of an embedded system.
- Firmware: Software which interacts closely with hardware. Usually refers to the finished software product on your MCU which runs the embedded system.
- PCB - Printed Circuit Board: This is usually an electronic circuit integrated on a sandwich structure. Often, chips, sensors, and other components will be soldered on top of the PCB.
- UART - Universal Asynchronous Receiver-Transmitter: Asynchronous serial communication interface that only requires two physical pins, one for transmission and one for reception. Basics of UART communication.
- DMA - Direct Memory Access: A hardware subsystem can access the memory of a system directly without CPU intervention.
- CPU - Central Processing Unit: The core hardware block of a computer or microcontroller that executes instructions.
- HAL - Hardware Abstraction Layer: High level library providing drivers for the hardware blocks on a microcontroller.
- I2C - Inter-Integrated Circuit: Communication bus commonly used on embedded systems. Basics of the I2C communication.
- TWI - Two-Wire Interface: Another name for I2C that vendors sometimes use.
- GPIO - General Purpose Input/Output: A digital signal pin on a microcontroller that can be configured as an input to read a digital level or as an output to set a digital level.
- SPI - Serial Peripheral Interface: A synchronous serial communication bus commonly used on embedded systems, typically requiring four signals: clock, chip select, MOSI and MISO. Basics of SPI communication.
- RTT - Real-Time Transfer: A SEGGER protocol for transferring data between a host computer and an embedded target, commonly used for logging output during development.
- BSP - Board Support Package: A library that provides drivers and abstractions specific to a particular hardware board, building on top of a HAL.
- IPC - Inter-Process Communication: Mechanisms that allow concurrent tasks or processes to exchange data and synchronize with each other.
- CCSDS - Consultative Committee for Space Data Systems: An international organization that develops standards for space data and information systems. The CCSDS space packet protocol is a widely used standard for structuring data packets in space communication systems.
- COBS - Consistent Overhead Byte Stuffing: A data encoding technique that removes zero bytes from a data stream, allowing for efficient packet framing and error recovery in communication protocols.
- CRC - Cyclic Redundancy Check: An error-detecting code used to detect accidental changes to raw data in digital networks and storage devices. It is commonly used to verify the integrity of data packets in communication protocols.
- serde - Rust library for serialization and deserialization of Rust data structures.
- TC - Telecommand: A packet which is a request packet and is oftentimes sent from the ground to the satellite station or from the main device to a slave device.
- TM - Telemetry: A packet which is a reply packet and is oftentimes sent from the satellite to the ground station or from a slave device to the main device.