For selected families of processors, Peripheral initialization and processor components use static peripheral initialization drivers.
Each instance of MCU peripheral has its own initialization driver placed in static (i.e. not generated) module. Processor module, which covers MCU startup, is also implemented using static code.
Peripheral Initialization Components covers all MCU peripherals, with exception for system and bus clock generator peripherals, which are controlled by processor component as they are part of Processor Expert timing model and their initialization is done during the startup.
Each Peripheral Initialization Component configures one peripheral and covers all its features based on the full set of peripheral registers.
Peripheral registers are initialized in the component static initialization method according to component settings represented in configuration header file which is included in static driver. See Typical usage of peripheral initialization components topic for more details about Peripheral Initialization Component initialization method.
Some additional features associated with the peripheral functionality but controlled by registers belonging to different peripherals might be also included in component settings, for example pin routing, interrupts configuration or clock gate control. Such settings lead to initialization of registers not covered by component itself. See Multiple properties accessing common register topic for more information about accessing register from multiple properties.
For example, application uses Init_ADC component to configure A/D converter with measurement synchronized with external device connected via pin on chip package. Routing of the pin involves initialization of General Purpose I/O port A (GPIOA) peripheral. If Init_GPIO component configuring GPIOA peripheral is in the project then GPIOA registers involved in Init_ADC pin routing are initialized in the Init_GPIO static initialization method. If Init_GPIO for GPIOA is not used GPIOA registers initialization is generated into the Common_Init().