• R/O
  • SSH
  • HTTPS

chibios: Commit


Commit MetaInfo

Revision14351 (tree)
Time2021-05-07 21:36:45
Authorgdisirio

Log Message

Fixed tick mode.

Change Summary

Incremental Difference

--- trunk/os/rt/src/chvt.c (revision 14350)
+++ trunk/os/rt/src/chvt.c (revision 14351)
@@ -291,7 +291,7 @@
291291 vtp->dlist.next->delta += vtp->dlist.delta;
292292
293293 /* Removing the element from the delta list, marking it as not armed.*/
294- dlist_dequeue(&vtp->dlist);
294+ ch_dlist_dequeue(&vtp->dlist);
295295 vtp->dlist.next = NULL;
296296
297297 /* The above code changes the value in the header when the removed element
@@ -374,22 +374,26 @@
374374 */
375375 sysinterval_t chVTGetRemainingIntervalI(virtual_timer_t *vtp) {
376376 virtual_timers_list_t *vtlp = &currcore->vtlist;
377- sysinterval_t deadline;
377+ sysinterval_t delta;
378378 ch_delta_list_t *dlp;
379379
380380 chDbgCheckClassI();
381381
382- deadline = (sysinterval_t)0;
382+ delta = (sysinterval_t)0;
383383 dlp = vtlp->dlist.next;
384384 do {
385- deadline += dlp->delta;
385+ delta += dlp->delta;
386386 if (dlp == &vtp->dlist) {
387+#if CH_CFG_ST_TIMEDELTA > 0
387388 systime_t now = chVTGetSystemTimeX();
388389 sysinterval_t nowdelta = chTimeDiffX(vtlp->lasttime, now);
389- if (nowdelta > deadline) {
390+ if (nowdelta > delta) {
390391 return (sysinterval_t)0;
391392 }
392- return nowdelta - deadline;
393+ return nowdelta - delta;
394+#else
395+ return delta;
396+#endif
393397 }
394398 dlp = dlp->next;
395399 } while (dlp != &vtlp->dlist);
@@ -415,7 +419,7 @@
415419
416420 #if CH_CFG_ST_TIMEDELTA == 0
417421 vtlp->systime++;
418- if (!is_vtlist_empty(&vtlp->dlist)) {
422+ if (ch_dlist_notempty(&vtlp->dlist)) {
419423 /* The list is not empty, processing elements on top.*/
420424 --vtlp->dlist.next->delta;
421425 while (vtlp->dlist.next->delta == (sysinterval_t)0) {
@@ -425,12 +429,11 @@
425429 vtp = (virtual_timer_t *)vtlp->dlist.next;
426430
427431 /* Removing the element from the delta list, marking it as not armed.*/
428- vtp->dlist.next->prev = &vtlp->dlist;
429- vtlp->dlist.next = vtp->dlist.next;
432+ ch_dlist_dequeue(&vtp->dlist);
430433 vtp->dlist.next = NULL;
431434
432435 chSysUnlockFromISR();
433- vtp->func(vtp->par);
436+ vtp->func(vtp, vtp->par);
434437 chSysLockFromISR();
435438 }
436439 }
Show on old repository browser