ChibiOS/RT  5.1.0
Time Measurement
Collaboration diagram for Time Measurement:

Detailed Description

Time Measurement APIs and services.

Data Structures

struct  tm_calibration_t
 Type of a time measurement calibration data. More...
 
struct  time_measurement_t
 Type of a Time Measurement object. More...
 

Functions

void _tm_init (void)
 Initializes the time measurement unit. More...
 
void chTMObjectInit (time_measurement_t *tmp)
 Initializes a TimeMeasurement object. More...
 
NOINLINE void chTMStartMeasurementX (time_measurement_t *tmp)
 Starts a measurement. More...
 
NOINLINE void chTMStopMeasurementX (time_measurement_t *tmp)
 Stops a measurement. More...
 
NOINLINE void chTMChainMeasurementToX (time_measurement_t *tmp1, time_measurement_t *tmp2)
 Stops a measurement and chains to the next one using the same time stamp. More...
 

Function Documentation

void _tm_init ( void  )

Initializes the time measurement unit.

Function Class:
Initializer, this function just initializes an object and can be invoked before the kernel is initialized.

Definition at line 77 of file chtm.c.

References ch, chTMObjectInit(), chTMStartMeasurementX(), chTMStopMeasurementX(), time_measurement_t::last, tm_calibration_t::offset, and ch_system::tm.

Referenced by chSysInit().

Here is the call graph for this function:

void chTMObjectInit ( time_measurement_t tmp)

Initializes a TimeMeasurement object.

Parameters
[out]tmppointer to a TimeMeasurement structure
Function Class:
Initializer, this function just initializes an object and can be invoked before the kernel is initialized.

Definition at line 97 of file chtm.c.

References time_measurement_t::best, time_measurement_t::cumulative, time_measurement_t::last, time_measurement_t::n, and time_measurement_t::worst.

Referenced by _stats_init(), _thread_init(), and _tm_init().

NOINLINE void chTMStartMeasurementX ( time_measurement_t tmp)

Starts a measurement.

Precondition
The time_measurement_t structure must be initialized.
Parameters
[in,out]tmppointer to a TimeMeasurement structure
Function Class:
This is an X-Class API, this function can be invoked from any context.

Definition at line 114 of file chtm.c.

References chSysGetRealtimeCounterX, and time_measurement_t::last.

Referenced by _stats_start_measure_crit_isr(), _stats_start_measure_crit_thd(), _tm_init(), and chSysInit().

NOINLINE void chTMStopMeasurementX ( time_measurement_t tmp)

Stops a measurement.

Precondition
The time_measurement_t structure must be initialized.
Parameters
[in,out]tmppointer to a time_measurement_t structure
Function Class:
This is an X-Class API, this function can be invoked from any context.

Definition at line 127 of file chtm.c.

References ch, chSysGetRealtimeCounterX, tm_calibration_t::offset, and ch_system::tm.

Referenced by _stats_stop_measure_crit_isr(), _stats_stop_measure_crit_thd(), and _tm_init().

NOINLINE void chTMChainMeasurementToX ( time_measurement_t tmp1,
time_measurement_t tmp2 
)

Stops a measurement and chains to the next one using the same time stamp.

Parameters
[in,out]tmp1pointer to the time_measurement_t structure to be stopped
[in,out]tmp2pointer to the time_measurement_t structure to be started
Function Class:
This is an X-Class API, this function can be invoked from any context.

Definition at line 144 of file chtm.c.

References chSysGetRealtimeCounterX, and time_measurement_t::last.

Referenced by _stats_ctxswc().