Advanced CPUs are providing higher levels of hardware integration than ever before, directly controlling such interfaces as CAN, J1850, and MOST. This approach saves on hardware costs by reducing the need for extra chips and circuitry, but it also raises concerns for the software developer.
For instance, a telematics control unit must be able to receive CAN messages within 30 to 100 milliseconds from the time that it's powered on. The problem is that the complex software running on such a telematics device can easily take hundreds of milliseconds—or more—to boot up.
As another example, consider the critical milestones during the boot process for an in-car telematics or infotainment unit that typically boots from a cold condition (completely powered off) or from CPU reboot condition (returning from a state where SDRAM has been turned off). The unit must be able to:
In order to address such timing requirements, many embedded system designs rely on a simple but expensive solution that uses an auxiliary communications processor or external power module. This auxiliary hardware can be reduced in scope and sometimes even eliminated by using Instant Device Activation. Also called minidriver technology, the approach consists of small, highly efficient device drivers that start executing before the OS kernel is initialized.