5.2.5. Application and library task timing information

When the application is executing, the platform is maintaining a series of tasks that iterate the application at periodic rates (and possibly on an angular rate if engine functionality is required). These tasks take an amount of time to execute and the following ASAP2 entries record how long the last ran.

Table 5.13. Automatic ASAP2 entries for application rate task timing information

ASAP2 nameDescriptionUnits
mpl_tt_task_[xxx]msThe duration of the last application iteration for the [xxx] model rate.microseconds
mpl_tt_task_angularThe duration of the last TDC-firing triggered application iteration.microseconds

When the application is executing, the platform is maintaining a series of tasks that support the application. These tasks perform basic input and output support as well as general housekeeping. Each task takes some time to execute and the following entries record the last execution time of each.

Table 5.14. Automatic ASAP2 entries for auxiliary task timing information

ASAP2 nameDescriptionUnits
mpl_tt_pan_taskThe duration of angular platform task. This task supports the angular application iteration.microseconds
mpl_tt_pan_knockThe duration of angular knock support task.microseconds
mpl_tt_pan_knock_refThe duration of angular knock reference support task.microseconds
mpl_tt_pcx_tcan_callbackThe duration of the CAN receive and transmit (event) support task.microseconds
mpl_tt_pcx_qemptierThe duration of the CAN receive and transmit (polled) support task.microseconds
mpl_tt_pcx_qemptier_mcp2515The duration of the CAN receive and transmit (event) support task.microseconds
mpl_tt_psp_receiveThe duration of the serial input and output support task.microseconds
mpl_tt_psc_watchdogThe duration of the watchdog support task.microseconds
mpl_tt_pcp_clientThe duration of the CCP support task. This task provides CCP support for the calibration tool.microseconds
mpl_tt_ppp_clientThe duration of the PixCal/tuning comms protocol task. This task provides support for tunable parameters via the PixCal calibration tool.microseconds

These entries support development by showing how long the software takes to run on the target hardware. As development progresses, new functionality can be compared to previous functionality to assess how much processing time is consumed.

The assessment can be made by noting how frequently the tasks run and how long they take, giving an estimated total consumption.

Table 5.15. Automatic ASAP2 entries for CPU loading information

ASAP2 nameDescriptionUnits
mpl_cpu_loadedThe amount of CPU used by the application and platform software in the last 50 milliseconds as a percentage. The CCP task may cause the loading to reach 100 percent under certain conditions but this is normal. The long running CCP task will not cause application iterations or other functionality to be delayed.percent

Some target ECU support loading measurement for processing devices other than the CPU. The eTPU device, or devices, are used for simple and complex I/O processing.

Table 5.16. Automatic ASAP2 entries for eTPU loading information

ASAP2 nameDescriptionUnits
mpl_etpu_a_loadedThe amount of eTPU (device A) used by the application and platform software in the last 50 milliseconds as a percentage.percent
mpl_etpu_b_loadedThe amount of eTPU (device B) used by the application and platform software in the last 50 milliseconds as a percentage.percent

Although previous entries record how long the last execution took, it is useful to know the longest execution that has occurred since power up. There are ASAP2 entries to support this.

Table 5.17. Automatic ASAP2 entries for maximum application rate task timing information

ASAP2 nameDescriptionUnits
mpl_mtt_[name]The largest value of the corresponding application duration ASAP2 variable seen since the last power up or reset.microseconds
mpl_max_cpu_loadedThe largest value of mpl_cpu_loaded seen since the last power up or reset.percent
mpl_max_etpu_a_loadedThe largest value of mpl_etpu_a_loaded seen since the last power up or reset.percent
mpl_max_etpu_b_loadedThe largest value of mpl_etpu_b_loaded seen since the last power up or reset.percent

Note that the maximum task duration entries record the longest execution seen since power up and not the worst case execution time of the task. It could be that a task will take longer to run if given different stimuli. OpenECU does not support the direct derivation of worst case execution times.

There is also a seconds counter which is cleared to zero when the ECU is turned on or resets. The counter can be used to determine if the ECU is resetting on a regular or irregular basis.

Table 5.18. Automatic ASAP2 entries for run-time information

ASAP2 nameDescriptionUnits
mpl_run_timeA seconds counter of the time since power up; range [0, 4294967294].seconds

Expected and unexpected resets are logged and counted. There are ASAP2 entries to report reset counts.

Table 5.19. Automatic ASAP2 entries for reset information (M110, M220, M250, M460, M461)

ASAP2 nameDescriptionUnits
mpl_unstable_reset_countNumber of resets since power-up, or since the application was last stable.events
mpl_reset_countNumber of resets since power-up.events

Table 5.20. Automatic ASAP2 entries for number of instances of period overruns of periodic tasks

ASAP2 nameDescriptionUnits
mpl_ovrc_[name]The number of times the task has taken longer that its period to run.count