Embedded Design Handbook

ID 683689
Date 8/28/2023
Public
Document Table of Contents

5.4.3.3. Peripheral Initialization

Nios® II systems initialize all HAL peripherals before main() by default, therefore the boot time has a dependency on the peripherals selected. Peripherals that are slow to initialize or have external dependencies, will increase the boot time and potentially make it less deterministic. If this occurs, you need to calibrate the external memory such as DDR3 for it to work properly.

DDR3 is an example of a peripheral where the initialization time is significant in comparison to the boot time. The calibration time is long particularly when compared to boot times for execute-in-place boot configurations. The calibration time will significantly impact Nios® II application that execute-in-place.

To avoid this, in execute-in-place boot configurations, remove the external memory from the Nios® II linker region if it is not in use. If size is not an issue, you can choose to use OCRAM. If you are confident working with Nios® II software, another option is to remove the DDR3 initialization routine from the boot code and initialize the memory later–once the application code has started running.