git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@14725 27425a3e-05d8-49a3-a47f-9c15f0e5edd8

This commit is contained in:
Giovanni Di Sirio 2021-09-01 13:27:46 +00:00
parent 99bda6d99f
commit ca85e9e28f
1 changed files with 18 additions and 3 deletions

View File

@ -232,6 +232,7 @@ static void guard_cb(virtual_timer_t *vtp, void *p) {
*/
void vt_storm_execute(const vt_storm_config_t *cfg) {
unsigned i;
bool delta_warning;
config = cfg;
@ -284,7 +285,8 @@ void vt_storm_execute(const vt_storm_config_t *cfg) {
vtcus = 0;
delay = TIME_US2I(128);
saturated = false;
saturated = false;
delta_warning = false;
do {
sysinterval_t decrease;
@ -319,12 +321,20 @@ void vt_storm_execute(const vt_storm_config_t *cfg) {
chVTResetI(&guard1);
chVTResetI(&guard2);
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();
if (saturated) {
chprintf(cfg->out, "#");
break;
}
else if (delta_warning) {
chprintf(cfg->out, "+");
break;
}
palToggleLine(config->line);
chprintf(cfg->out, ".");
@ -338,14 +348,19 @@ void vt_storm_execute(const vt_storm_config_t *cfg) {
delay = delay - decrease;
} 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) {
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 {
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);
}
}