git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@14725 27425a3e-05d8-49a3-a47f-9c15f0e5edd8
This commit is contained in:
parent
99bda6d99f
commit
ca85e9e28f
|
@ -232,6 +232,7 @@ static void guard_cb(virtual_timer_t *vtp, void *p) {
|
||||||
*/
|
*/
|
||||||
void vt_storm_execute(const vt_storm_config_t *cfg) {
|
void vt_storm_execute(const vt_storm_config_t *cfg) {
|
||||||
unsigned i;
|
unsigned i;
|
||||||
|
bool delta_warning;
|
||||||
|
|
||||||
config = cfg;
|
config = cfg;
|
||||||
|
|
||||||
|
@ -285,6 +286,7 @@ void vt_storm_execute(const vt_storm_config_t *cfg) {
|
||||||
|
|
||||||
delay = TIME_US2I(128);
|
delay = TIME_US2I(128);
|
||||||
saturated = false;
|
saturated = false;
|
||||||
|
delta_warning = false;
|
||||||
do {
|
do {
|
||||||
sysinterval_t decrease;
|
sysinterval_t decrease;
|
||||||
|
|
||||||
|
@ -319,12 +321,20 @@ void vt_storm_execute(const vt_storm_config_t *cfg) {
|
||||||
chVTResetI(&guard1);
|
chVTResetI(&guard1);
|
||||||
chVTResetI(&guard2);
|
chVTResetI(&guard2);
|
||||||
chVTResetI(&guard3);
|
chVTResetI(&guard3);
|
||||||
|
|
||||||
|
/* Check for relevant RFCU events.*/
|
||||||
|
delta_warning = chRFCUGetAndClearFaultsI(CH_RFCU_VT_INSUFFICIENT_DELTA |
|
||||||
|
CH_RFCU_VT_SKIPPED_DEADLINE) != (rfcu_mask_t)0;
|
||||||
chSysUnlock();
|
chSysUnlock();
|
||||||
|
|
||||||
if (saturated) {
|
if (saturated) {
|
||||||
chprintf(cfg->out, "#");
|
chprintf(cfg->out, "#");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
else if (delta_warning) {
|
||||||
|
chprintf(cfg->out, "+");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
palToggleLine(config->line);
|
palToggleLine(config->line);
|
||||||
chprintf(cfg->out, ".");
|
chprintf(cfg->out, ".");
|
||||||
|
@ -338,14 +348,19 @@ void vt_storm_execute(const vt_storm_config_t *cfg) {
|
||||||
delay = delay - decrease;
|
delay = delay - decrease;
|
||||||
} while (delay >= (sysinterval_t)VT_STORM_CFG_MIN_DELAY);
|
} while (delay >= (sysinterval_t)VT_STORM_CFG_MIN_DELAY);
|
||||||
|
|
||||||
|
if (delta_warning) {
|
||||||
|
chprintf(cfg->out, "\r\nRFCU warning detected", TIME_I2US(delay), delay);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
chprintf(cfg->out, "\r\nNo warnings");
|
||||||
|
}
|
||||||
if (saturated) {
|
if (saturated) {
|
||||||
chprintf(cfg->out, "\r\nSaturated at %u uS %u ticks", TIME_I2US(delay), delay);
|
chprintf(cfg->out, "\r\nSaturated at %u uS %u ticks", TIME_I2US(delay), delay);
|
||||||
chprintf(cfg->out, "\r\nContinuous ticks %u\r\n\r\n", vtcus);
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
chprintf(cfg->out, "\r\nNon saturated");
|
chprintf(cfg->out, "\r\nNon saturated");
|
||||||
chprintf(cfg->out, "\r\nContinuous ticks %u\r\n\r\n", vtcus);
|
|
||||||
}
|
}
|
||||||
|
chprintf(cfg->out, "\r\nContinuous ticks %u\r\n\r\n", vtcus);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue