Embedded systems have become an integral part of our daily life. Be it a cell phone, a TV, a music player, healthcare devices, or the electronics in an automobile - these systems have been touching and easing our lives like never before.
Applications of Embedded systems span across various sectors in our day-to-day life.
Fig. 1: Major application areas of Embedded Systems
Embedded systems monitoring plays a crucial role in the overall success of the entire system e.g. consider the situation where your car infotainment system automatically informs the service center that the tuner needs to be serviced, or the water purifier at your home informs the service center that the purifier membrane needs to be replaced. Even today, there exists some monitoring solutions which insurance companies are using to monitor the driving habits of the user to decide the insurance premium of the user respectively.
Embedded systems can present certain challenges for monitoring, as they have limited resources in terms of CPU, Memory, constrained RTOS, smaller silicon platforms and Power usage limitations. System internals are not easily observable, as many device features are incorporated deep within complex chip packages. These traits result in a need to minimize the overhead of monitoring.
In order to monitor a target system, there are multiple techniques which could be used for embedded systems, depending upon the scenario and the pros/cons of each technique.
In this technique, dedicated monitoring hardware is attached to the target system, the observed data is sent by the monitoring hardware for verification, external to the target system, thus minimizing the intrusion caused by the execution of the monitoring code to the target, by using separate hardware for system monitoring.
But hardware probes have certain cons too, i.e. nowadays’ silicon platform size (physical target size) is getting shorter day-by-day so using an additional hardware becomes difficult. Also, communication to the external hardware becomes an overhead, if the target has strict execution timelines.
With this technique, monitoring can be done by adding monitoring code to the target OS code or by using a separate monitoring process on the target.
Such monitors have access to extensive information about the operation of a complex system, in contrast to the limited information available externally to hardware probes. But one potential side effect is that the target system has to execute the additional software. Interference with the target system’s normal operation may arise if the execution of the target software is delayed because of the execution of the monitoring code.
Hybrid monitoring refers to approaches that use a combination of additional software and hardware to monitor a target system, relying on the advantages of each approach, and at the same time, attempting to mitigate their disadvantages.
As mentioned, it offers Hardware probe advantages of lesser intrusion with minimum additional physical requirements. Along with that, execution internals are monitored using the software probe (instrumentation) without interfering in target execution as partial monitoring is done by Hardware probes.
To conclude, there are various factors depending on which monitoring technique should be adopted such as Silicon platform, Target applications, Target RTOS, Execution timeline criticality, Cost etc.
In all, monitoring of embedded system will create a win-win situation for everybody, be it end-users who will be offered with rich and extensive experiences with their devices, or the industry for whom, it opens multiple gates for the new business opportunities. These range from silicon players like Freescale, Atmel, Intel, Fujitsu etc. who can use these monitoring techniques and sell it along with their micro-controllers, to service industry which can create generic monitoring solutions for the widely adopted micro-controllers.