mirror of https://github.com/rusefi/ChibiOS.git
Time calibration data moved in ch_system, it is now shared.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@14175 27425a3e-05d8-49a3-a47f-9c15f0e5edd8
This commit is contained in:
parent
0738442a0c
commit
261a59db50
|
@ -384,12 +384,6 @@ struct ch_os_instance {
|
|||
*/
|
||||
trace_buffer_t trace_buffer;
|
||||
#endif
|
||||
#if (CH_CFG_USE_TM == TRUE) || defined(__DOXYGEN__)
|
||||
/**
|
||||
* @brief Time measurement calibration data.
|
||||
*/
|
||||
tm_calibration_t tmc;
|
||||
#endif
|
||||
#if (CH_DBG_STATISTICS == TRUE) || defined(__DOXYGEN__)
|
||||
/**
|
||||
* @brief Global kernel statistics.
|
||||
|
@ -416,6 +410,12 @@ typedef struct ch_system {
|
|||
* @brief Initialized OS instances or @p NULL.
|
||||
*/
|
||||
os_instance_t *instances[PORT_CORES_NUMBER];
|
||||
#if (CH_CFG_USE_TM == TRUE) || defined(__DOXYGEN__)
|
||||
/**
|
||||
* @brief Time measurement calibration data.
|
||||
*/
|
||||
tm_calibration_t tmc;
|
||||
#endif
|
||||
#if ((CH_CFG_USE_REGISTRY == TRUE) && (CH_CFG_SMP_MODE == TRUE)) || \
|
||||
defined(__DOXYGEN__)
|
||||
/**
|
||||
|
|
|
@ -88,7 +88,7 @@ typedef struct {
|
|||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
void __tm_calibration_init(tm_calibration_t *tcp);
|
||||
void __tm_calibration_init(void);
|
||||
void chTMObjectInit(time_measurement_t *tmp);
|
||||
NOINLINE void chTMStartMeasurementX(time_measurement_t *tmp);
|
||||
NOINLINE void chTMStopMeasurementX(time_measurement_t *tmp);
|
||||
|
|
|
@ -329,11 +329,6 @@ void chSchObjectInit(os_instance_t *oip,
|
|||
__trace_init(oip);
|
||||
#endif
|
||||
|
||||
/* Time Measurement initialization.*/
|
||||
#if CH_CFG_USE_TM == TRUE
|
||||
__tm_calibration_init(&oip->tmc);
|
||||
#endif
|
||||
|
||||
/* Statistics initialization.*/
|
||||
#if CH_DBG_STATISTICS == TRUE
|
||||
__stats_object_init(&oip->kernel_stats);
|
||||
|
|
|
@ -96,6 +96,11 @@ void chSysInit(void) {
|
|||
ch_queue_init(&ch_system.reglist);
|
||||
#endif
|
||||
|
||||
#if CH_CFG_USE_TM == TRUE
|
||||
/* Time Measurement initialization.*/
|
||||
__tm_calibration_init();
|
||||
#endif
|
||||
|
||||
/* User system initialization hook.*/
|
||||
CH_CFG_SYSTEM_INIT_HOOK();
|
||||
|
||||
|
|
|
@ -84,14 +84,14 @@ static inline void tm_stop(time_measurement_t *tmp,
|
|||
*
|
||||
* @notapi
|
||||
*/
|
||||
void __tm_calibration_init(tm_calibration_t *tcp) {
|
||||
void __tm_calibration_init(void) {
|
||||
time_measurement_t tm;
|
||||
unsigned i;
|
||||
|
||||
/* Time Measurement subsystem calibration, it does a null measurement
|
||||
and calculates the call overhead which is subtracted to real
|
||||
measurements.*/
|
||||
tcp->offset = (rtcnt_t)0;
|
||||
ch_system.tmc.offset = (rtcnt_t)0;
|
||||
chTMObjectInit(&tm);
|
||||
i = TM_CALIBRATION_LOOP;
|
||||
do {
|
||||
|
@ -99,7 +99,7 @@ void __tm_calibration_init(tm_calibration_t *tcp) {
|
|||
chTMStopMeasurementX(&tm);
|
||||
i--;
|
||||
} while (i > 0U);
|
||||
tcp->offset = tm.best;
|
||||
ch_system.tmc.offset = tm.best;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -141,7 +141,7 @@ NOINLINE void chTMStartMeasurementX(time_measurement_t *tmp) {
|
|||
*/
|
||||
NOINLINE void chTMStopMeasurementX(time_measurement_t *tmp) {
|
||||
|
||||
tm_stop(tmp, chSysGetRealtimeCounterX(), currcore->tmc.offset);
|
||||
tm_stop(tmp, chSysGetRealtimeCounterX(), ch_system.tmc.offset);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue