Modules
The firmware (and its releases) is divided into several functional blocks, as shown in the figure below. Some blocks are common across all YOS products, while others vary by product type. Each block maintains its own version:
- Application: Implements the user application, defining how outputs respond to inputs and determining overall device behavior. This block is detailed in your Application documentation (either public, or private).
- Common I/O: Manages user inputs, outputs, and their configuration. This hardware-dependent block is described in the corresponding device family manual.
- Driver: Implements the core product functionality (e.g., motor driver algorithm). For the controllers, it processes motor sensor data, measures currents and voltages, and controls power stage transistors. This block is documented in the corresponding device family manual.
- O/S: Serves as the firmware foundation, enabling other blocks to operate. It manages system resources, allocates them to running processes, and handles communication. The O/S block is detailed in here.
- LIB: Contains shared, hardware-independent libraries utilized by other blocks.
info
From versioning perspective, each release encompasses version information for all individual modules. The application sits at the top of the hierarchical structure.