Optimizing bootup time

The more time it takes to boot your base system (IPL, kernel, Core OS) and Screen, the more time that it takes to start you QNX Platform for ADAS system.

Therefore, you must consider how to optimize the boot time for your base system. Though it isn't the primary purpose of this document to discuss these generic system optimization techniques, we have summarized common techniques in the Other System Optimization Practices chapter.

Generally, after your system boots, a boot script runs to start device drivers, start services, and run applications.

Areas in the bootup sequence where time can be optimized

Note:

Remember that not all optimization techniques are applicable to all systems. For example, if your system doesn't have displays or a GPU, refer to optimization techniques that aren't associated with using a GPU and displaying content.

It's important to mention that this process of going through the following areas isn't linear, but best done in an iterative manner. For example, you might be able to further optimize your Screen or SLM configuration files after you optimize your camera application.



Figure 1. Areas that can be optimized.
Here are the areas where you can look to optimize bootup time:
1. Configure your system to have a primary and a secondary IFS (image filesystem)
We recommend that you make the IFS as small as possible. If you have many files that need to be loaded into RAM, split the IFS into a primary and a secondary IFS. The primary IFS should have only the minimum files and libraries required to boot the system and start Screen. It's important to remember that you require a secondary IFS only if files need to be loaded into memory; otherwise, you can put the files into the filesystem. For more information about creating a primary and secondary IFS, see the Configure a Primary and Secondary IFS on the System chapter.
2. Optimize the Screen configuration file
To potentially reduce the time it takes for the Screen to come up, you should remove any unnecessary parts from Screen's configuration file. For more information, see the Optimize the Screen Configuration File chapter.
3. Optimize your boot script

In your boot script (which is generated and configured in the script section of the buildfile that comes with your hardware platform's board support package—BSP), run the minimal services you need for your camera application.

In the boot script, you should start Screen. You might also need to load any libraries that your camera application depends on or start device drivers required for your camera application.

For more information, see the Optimize the Boot Script chapter.

4. Optimize the SLM configuration files

You don't need to rebuild the target image to change the launch order of applications; you simply need to change the SLM configuration files. However, if you want certain applications to start even earlier, you may consider moving them to the primary IFS or even secondary IFS. However, any files or binaries you move to your IFS can potentially slow the startup time of your system.

For more information, see the Optimize SLM Configuration Files chapter.

5. Optimize your camera application
For systems whose camera application displays content, most of the optimizations occur in the implementation of the camera application. For more information, see the Optimize your Camera Application chapter.

Hardware considerations

If your target supports it, we recommend that you put the IFS on the eMMC on your board.

If you're using a camera that requires additional drivers (e.g., a USB camera), then starting these drivers will increase the time before your camera application can start capturing image buffers from the camera. This additional time, in turns, increases the time it takes to display content. Consider using an attached camera.

For other hardware considerations, see those that are described in “Hardware considerations when working with Screen section of Screen's Optimizing Startup Times guide.