Explorar o código

update: remove ununsed system time diff monitor

Signed-off-by: sakumisu <1203593632@qq.com>
sakumisu hai 1 semana
pai
achega
8b9e325c6a
Modificáronse 3 ficheiros con 4 adicións e 79 borrados
  1. 0 8
      include/ec_master.h
  2. 3 36
      src/ec_cmd.c
  3. 1 35
      src/ec_master.c

+ 0 - 8
include/ec_master.h

@@ -77,14 +77,6 @@ typedef struct ec_master {
     ec_datagram_t dc_ref_sync_datagram; /**< Datagram used for synchronizing the reference clock to the master clock. */
     ec_datagram_t dc_all_sync_datagram; /**< Datagram used for synchronizing all slaves to the dc ref clock. */
 
-    ec_datagram_t systime_diff_mon_datagram; /**< Datagram used for reading the system time difference between master and reference clock. */
-    bool systime_diff_enable;
-    uint32_t min_systime_diff;
-    uint32_t max_systime_diff;
-    uint32_t curr_systime_diff;
-    uint32_t systime_diff_count;
-    uint64_t total_systime_diff;
-
     bool dc_sync_with_dc_ref_enable; /**< true: Sync the reference clock by dc ref clock, false: by master */
     uint32_t cycle_time;             /**< Cycle time [ns]. */
     int32_t shift_time;              /**< Shift time [ns]. */

+ 3 - 36
src/ec_cmd.c

@@ -59,9 +59,6 @@ static void ec_master_cmd_show_help(void)
     EC_LOG_RAW("  perf -s                                        Start performance test\n");
     EC_LOG_RAW("  perf -d                                        Stop performance test\n");
     EC_LOG_RAW("  perf -v                                        Show performance statistics\n");
-    EC_LOG_RAW("  timediff -s                                    Enable system time diff monitor\n");
-    EC_LOG_RAW("  timediff -d                                    Disable system time diff monitor\n");
-    EC_LOG_RAW("  timediff -v                                    Show system time diff statistics\n");
     EC_LOG_RAW("  help                                           Show this help\n\n");
 }
 
@@ -804,37 +801,7 @@ int ethercat(int argc, const char **argv)
         return 0;
     }
 #endif
-    else if (argc >= 3 && strcmp(argv[1], "timediff") == 0) {
-        if (strcmp(argv[2], "-s") == 0) {
-            uintptr_t flags;
-
-            flags = ec_osal_enter_critical_section();
-            global_cmd_master->systime_diff_enable = true;
-            global_cmd_master->curr_systime_diff = 0;
-            global_cmd_master->min_systime_diff = 0xffffffff;
-            global_cmd_master->max_systime_diff = 0;
-            global_cmd_master->systime_diff_count = 0;
-            global_cmd_master->total_systime_diff = 0;
-            ec_osal_leave_critical_section(flags);
-
-        } else if (strcmp(argv[2], "-d") == 0) {
-            uintptr_t flags;
-
-            flags = ec_osal_enter_critical_section();
-            global_cmd_master->systime_diff_enable = false;
-            ec_osal_leave_critical_section(flags);
-        } else if (strcmp(argv[2], "-v") == 0) {
-            for (uint32_t i = 0; i < 10; i++) {
-                EC_LOG_RAW("System Time Diff curr = %u, min = %u, max = %u, avg = %u ns\n",
-                           global_cmd_master->curr_systime_diff,
-                           global_cmd_master->min_systime_diff,
-                           global_cmd_master->max_systime_diff,
-                           (unsigned int)(global_cmd_master->total_systime_diff / global_cmd_master->systime_diff_count));
-                ec_osal_msleep(1000);
-            }
-        }
-        return 0;
-    } else if (strcmp(argv[1], "perf") == 0) {
+    else if (strcmp(argv[1], "perf") == 0) {
         if (strcmp(argv[2], "-s") == 0) {
             uintptr_t flags;
 
@@ -850,8 +817,8 @@ int ethercat(int argc, const char **argv)
             global_cmd_master->total_exec_ns = 0;
             global_cmd_master->exec_count = 0;
 
-            global_cmd_master->min_offset_ns = 0xffffffff;
-            global_cmd_master->max_offset_ns = 0;
+            global_cmd_master->min_offset_ns = INT32_MAX;
+            global_cmd_master->max_offset_ns = INT32_MIN;
             ec_osal_leave_critical_section(flags);
             return 0;
         } else if (strcmp(argv[2], "-d") == 0) {

+ 1 - 35
src/ec_master.c

@@ -372,9 +372,6 @@ int ec_master_init(ec_master_t *master, uint8_t master_index)
     ec_datagram_init(&master->main_datagram, EC_MAX_DATA_SIZE);
     ec_datagram_init(&master->dc_ref_sync_datagram, 8);
     ec_datagram_init(&master->dc_all_sync_datagram, 8);
-    ec_datagram_init(&master->systime_diff_mon_datagram, 4);
-
-    ec_datagram_brd(&master->systime_diff_mon_datagram, ESCREG_OF(ESCREG->SYS_TIME_DIFF), 4);
 
     master->scan_lock = ec_osal_mutex_create();
     if (!master->scan_lock) {
@@ -439,7 +436,6 @@ int ec_master_start(ec_master_t *master)
     master->phase = EC_OPERATION;
     master->nonperiod_suspend = true;
     master->interval = 0;
-    master->systime_diff_enable = false;
     master->dc_sync_integral = 0;
 
     // wait for non-periodic thread to suspend
@@ -759,7 +755,6 @@ EC_FAST_CODE_SECTION static void ec_master_period_process(void *arg)
     uint8_t netdev_idx;
     uint64_t dc_ref_systime = 0;
     int32_t offsettime = 0;
-    uint32_t delta = 0;
     uint64_t start_time;
     uint32_t period_ns;
     uint32_t exec_ns;
@@ -777,15 +772,7 @@ EC_FAST_CODE_SECTION static void ec_master_period_process(void *arg)
 
                 ec_master_dc_sync_with_pi(master, dc_ref_systime, &offsettime);
 
-                if (offsettime > 0) {
-                    delta = offsettime;
-                } else {
-                    delta = -offsettime;
-                }
-
-                if (delta > 0) {
-                    ec_htimer_update((master->cycle_time / 1000 + offsettime / 1000));
-                }
+                ec_htimer_update(master->cycle_time / 1000 + offsettime / 1000);
             }
         } else {
             EC_WRITE_U32(master->dc_ref_sync_datagram.data, ec_timestamp_get_time_ns() & 0xffffffff);
@@ -824,27 +811,6 @@ EC_FAST_CODE_SECTION static void ec_master_period_process(void *arg)
         ec_master_queue_datagram(master, &pdo_datagram->datagrams[EC_NETDEV_MAIN]);
     }
 
-    if (master->systime_diff_enable) {
-        if (master->systime_diff_mon_datagram.state == EC_DATAGRAM_RECEIVED) {
-            master->curr_systime_diff = EC_READ_U32(master->systime_diff_mon_datagram.data) & 0x7fffffff;
-
-            if (master->curr_systime_diff < master->min_systime_diff) {
-                master->min_systime_diff = master->curr_systime_diff;
-            }
-
-            if (master->curr_systime_diff > master->max_systime_diff) {
-                master->max_systime_diff = master->curr_systime_diff;
-            }
-            master->systime_diff_count++;
-            master->total_systime_diff += master->curr_systime_diff;
-        }
-
-        if ((master->interval % 10) == 0) {
-            ec_datagram_zero(&master->systime_diff_mon_datagram);
-            ec_master_queue_datagram(master, &master->systime_diff_mon_datagram);
-        }
-    }
-
     ec_master_send(master);
 
     period_ns = start_time - master->last_start_time;