Przeglądaj źródła

update: remove ununsed has_dc_system_time

Signed-off-by: sakumisu <1203593632@qq.com>
sakumisu 1 tydzień temu
rodzic
commit
e68dfe389b
4 zmienionych plików z 13 dodań i 38 usunięć
  1. 0 1
      include/ec_slave.h
  2. 6 10
      src/ec_cmd.c
  3. 2 12
      src/ec_master.c
  4. 5 15
      src/ec_slave.c

+ 0 - 1
include/ec_slave.h

@@ -82,7 +82,6 @@ typedef struct ec_slave {
     uint8_t base_fmmu_bit_operation;   /**< FMMU bit operation is supported. */
     uint8_t base_dc_supported;         /**< Distributed clocks are supported. */
     ec_slave_dc_range_t base_dc_range; /**< DC range. */
-    uint8_t has_dc_system_time;        /**< The slave supports the DC system time register. Otherwise it can only be used for delay measurement. */
     uint32_t transmission_delay;       /**< DC system time transmission delay (offset from reference clock). */
 
     uint32_t logical_start_address;

+ 6 - 10
src/ec_cmd.c

@@ -205,18 +205,14 @@ static void ec_cmd_show_slave_detail(ec_master_t *master, uint32_t slave_idx)
     EC_LOG_RAW("  Distributed clocks: ");
 
     if (slave_data.base_dc_supported) {
-        if (slave_data.has_dc_system_time) {
-            EC_LOG_RAW("yes, ");
-            if (slave_data.base_dc_range) {
-                EC_LOG_RAW("64 bit\n");
-            } else {
-                EC_LOG_RAW("32 bit\n");
-            }
-            EC_LOG_RAW("  DC system time transmission delay: %d ns\n",
-                       slave_data.transmission_delay);
+        EC_LOG_RAW("yes, ");
+        if (slave_data.base_dc_range) {
+            EC_LOG_RAW("64 bit\n");
         } else {
-            EC_LOG_RAW("yes, delay measurement only\n");
+            EC_LOG_RAW("32 bit\n");
         }
+        EC_LOG_RAW("  DC system time transmission delay: %d ns\n",
+                   slave_data.transmission_delay);
     } else {
         EC_LOG_RAW("no\n");
     }

+ 2 - 12
src/ec_master.c

@@ -45,9 +45,6 @@ EC_FAST_CODE_SECTION static void ec_master_send_datagrams(ec_master_t *master, u
     unsigned int datagram_count, more_datagrams_waiting;
     ec_dlist_t sent_datagrams;
 
-#ifdef CONFIG_EC_CAL_TX_TIME
-    uint64_t cycles_start = jiffies;
-#endif
     datagram_count = 0;
     ec_dlist_init(&sent_datagrams);
 
@@ -138,10 +135,6 @@ EC_FAST_CODE_SECTION static void ec_master_send_datagrams(ec_master_t *master, u
             datagram_count++;
         }
     } while (more_datagrams_waiting);
-
-#ifdef CONFIG_EC_CAL_TX_TIME
-    EC_LOG_INFO("Sent %u datagrams in %uus.\n", datagram_count, (unsigned int)(jiffies - cycles_start));
-#endif
 }
 
 EC_FAST_CODE_SECTION void ec_master_receive_datagrams(ec_master_t *master,
@@ -155,7 +148,6 @@ EC_FAST_CODE_SECTION void ec_master_receive_datagrams(ec_master_t *master,
     const uint8_t *cur_data;
     uint32_t datagram_count;
     ec_datagram_t *datagram;
-    uint64_t start_time;
 
     if (size < EC_FRAME_HEADER_SIZE) {
         EC_LOG_ERR("Corrupted frame received on %s (size %u < %u byte)\n",
@@ -177,8 +169,6 @@ EC_FAST_CODE_SECTION void ec_master_receive_datagrams(ec_master_t *master,
         return;
     }
 
-    start_time = jiffies;
-
     datagram_count = 0;
     cmd_follows = 1;
     while (cmd_follows) {
@@ -239,7 +229,7 @@ EC_FAST_CODE_SECTION void ec_master_receive_datagrams(ec_master_t *master,
 
         // dequeue the received datagram
         datagram->state = EC_DATAGRAM_RECEIVED;
-        datagram->jiffies_received = jiffies - start_time;
+        datagram->jiffies_received = jiffies;
         ec_master_unqueue_datagram(master, datagram);
 
         datagram_count++;
@@ -833,4 +823,4 @@ EC_FAST_CODE_SECTION static void ec_master_period_process(void *arg)
     }
 
     master->interval++;
-}
+}

+ 5 - 15
src/ec_slave.c

@@ -432,7 +432,7 @@ static int ec_slave_config_dc_systime_and_delay(ec_slave_t *slave)
 
     datagram = &slave->master->main_datagram;
 
-    if (slave->base_dc_supported && slave->has_dc_system_time) {
+    if (slave->base_dc_supported) {
         ec_datagram_fprd(datagram, slave->station_address, ESCREG_OF(ESCREG->SYS_TIME), 24);
         datagram->netdev_idx = slave->netdev_idx;
         ret = ec_master_queue_ext_datagram(slave->master, datagram, true, true);
@@ -737,9 +737,7 @@ static int ec_slave_config(ec_slave_t *slave)
     }
 
     if (slave->config && slave->config->dc_assign_activate) {
-        if (!slave->base_dc_supported) {
-            EC_SLAVE_LOG_WRN("Slave %u does not support DC, but DC is activated in master config\n", slave->index);
-        }
+        EC_ASSERT_MSG(slave->base_dc_supported, "Slave %u does not support DC", slave->index);
 
         ec_slave_config_dc_systime_and_delay(slave);
 
@@ -891,7 +889,7 @@ static void ec_master_find_dc_ref_clock(ec_master_t *master)
     for (slave = master->slaves;
          slave < master->slaves + master->slave_count;
          slave++) {
-        if (slave->base_dc_supported && slave->has_dc_system_time) {
+        if (slave->base_dc_supported) {
             ref = slave;
             break;
         }
@@ -1173,12 +1171,12 @@ void ec_slaves_scanning(ec_master_t *master)
 
             slave->base_fmmu_count = EC_READ_U8(datagram->data + 4);
             EC_ASSERT_MSG(slave->base_fmmu_count <= EC_MAX_FMMUS,
-                          "Slave %u FMMU count %u is overflow\n",
+                          "Slave %u FMMU count %u is overflow",
                           slave->index, slave->base_fmmu_count);
 
             slave->base_sync_count = EC_READ_U8(datagram->data + 5);
             EC_ASSERT_MSG(slave->base_sync_count <= EC_MAX_SYNC_MANAGERS,
-                          "Slave %u sync managers count %u is overflow\n",
+                          "Slave %u sync managers count %u is overflow",
                           slave->index, slave->base_fmmu_count);
 
             uint8_t data = EC_READ_U8(datagram->data + 7);
@@ -1203,14 +1201,6 @@ void ec_slaves_scanning(ec_master_t *master)
                     goto mutex_unlock;
                 }
 
-                if (datagram->working_counter == 1) {
-                    slave->has_dc_system_time = 1;
-                    EC_SLAVE_LOG_DBG("Slave has the System Time register\n");
-                } else {
-                    slave->has_dc_system_time = 0;
-                    EC_SLAVE_LOG_DBG("Slave has no System Time register; delay measurement only\n");
-                }
-
                 // Read DC port receive times
                 ec_datagram_fprd(datagram, slave->station_address, ESCREG_OF(ESCREG->RCV_TIME[0]), 16);
                 ec_datagram_zero(datagram);