Revision 3e1a9c79 os/core/src/aos_system.c

View differences:

os/core/src/aos_system.c
80 80
static aos_timestamp_t _syssynctime;
81 81
#endif
82 82

  
83
#if ((AMIROOS_CFG_SSSP_MASTER != true) && (AMIROOS_CFG_PROFILE == true)) || defined(__DOXYGEN__)
84
static float _syssyncskew;
85
#define SYSTEM_SYSSYNCSKEW_LPFACTOR   (0.1f / AOS_SYSTEM_TIME_RESOLUTION)
86
#endif
87

  
83 88
#if (AMIROOS_CFG_SHELL_ENABLE == true) || defined(__DOXYGEN__)
84 89
/**
85 90
 * @brief   Shell thread working area.
......
461 466
  _printSystemInfo(stream);
462 467

  
463 468
  // print time measurement precision
464
  chprintf(stream, "system time resolution: %uus\n", AOS_SYSTEM_TIME_RESOLUTION);
469
  chprintf(stream, "module time resolution: %uus\n", AOS_SYSTEM_TIME_RESOLUTION);
465 470

  
466 471
  // print system uptime
467 472
  aos_timestamp_t uptime;
......
473 478
  chprintf(stream, "%10u seconds\n", (uint8_t)(uptime % MICROSECONDS_PER_MINUTE / MICROSECONDS_PER_SECOND));
474 479
  chprintf(stream, "%10u milliseconds\n", (uint16_t)(uptime % MICROSECONDS_PER_SECOND / MICROSECONDS_PER_MILLISECOND));
475 480
  chprintf(stream, "%10u microseconds\n", (uint16_t)(uptime % MICROSECONDS_PER_MILLISECOND / MICROSECONDS_PER_MICROSECOND));
481
#if (AMIROOS_CFG_SSSP_MASTER != true) && (AMIROOS_CFG_PROFILE == true)
482
  chprintf(stream, "SSSP synchronization offset: %.3fus per %uus\n", _syssyncskew, AMIROOS_CFG_SSSP_SYSSYNCPERIOD);
483
#endif
484
  _printSystemInfoSeparator(stream, '=', SYSTEM_INFO_WIDTH);
476 485

  
477 486
  return AOS_OK;
478 487
}
......
615 624
      // align the uptime with the synchronization period
616 625
      if (uptime % AMIROOS_CFG_SSSP_SYSSYNCPERIOD < AMIROOS_CFG_SSSP_SYSSYNCPERIOD / 2) {
617 626
        _uptime -= uptime % AMIROOS_CFG_SSSP_SYSSYNCPERIOD;
627
#if (AMIROOS_CFG_PROFILE == true)
628
        _syssyncskew = ((1.0f - SYSTEM_SYSSYNCSKEW_LPFACTOR) * _syssyncskew) + (SYSTEM_SYSSYNCSKEW_LPFACTOR * (uptime % AMIROOS_CFG_SSSP_SYSSYNCPERIOD));
629
#endif
618 630
      } else {
619 631
        _uptime += AMIROOS_CFG_SSSP_SYSSYNCPERIOD - (uptime % AMIROOS_CFG_SSSP_SYSSYNCPERIOD);
632
#if (AMIROOS_CFG_PROFILE == true)
633
        _syssyncskew = ((1.0f - SYSTEM_SYSSYNCSKEW_LPFACTOR) * _syssyncskew) - (SYSTEM_SYSSYNCSKEW_LPFACTOR * (AMIROOS_CFG_SSSP_SYSSYNCPERIOD - (uptime % AMIROOS_CFG_SSSP_SYSSYNCPERIOD)));
634
#endif
620 635
      }
621 636
    }
622 637
  }
......
709 724
  chVTObjectInit(&_syssynctimer);
710 725
  _syssynctime = 0;
711 726
#endif
727
#if (AMIROOS_CFG_SSSP_MASTER != true) && (AMIROOS_CFG_PROFILE == true)
728
  _syssyncskew = 0.0f;
729
#endif
712 730

  
713 731
  // set aos configuration
714 732
  aos.sssp.stage = AOS_SSSP_STARTUP_2_1;

Also available in: Unified diff