master/master.c
changeset 663 38d9c37664d9
parent 661 bc1de1362efb
child 664 18c48cb7de06
equal deleted inserted replaced
662:9b9eaacbd71f 663:38d9c37664d9
  1127         }
  1127         }
  1128     }
  1128     }
  1129     if (none_open)
  1129     if (none_open)
  1130         goto queue_timer;
  1130         goto queue_timer;
  1131 
  1131 
       
  1132     if (master->request_cb(master->cb_data)) goto queue_timer;
       
  1133 
  1132     // receive datagrams
  1134     // receive datagrams
  1133     if (master->request_cb(master->cb_data)) goto queue_timer;
       
  1134     cycles_start = get_cycles();
  1135     cycles_start = get_cycles();
  1135     ecrt_master_receive(master);
  1136     ecrt_master_receive(master);
  1136     master->release_cb(master->cb_data);
       
  1137 
  1137 
  1138     // actual EoE processing
  1138     // actual EoE processing
  1139     list_for_each_entry(eoe, &master->eoe_handlers, list) {
  1139     list_for_each_entry(eoe, &master->eoe_handlers, list) {
  1140         ec_eoe_run(eoe);
  1140         ec_eoe_run(eoe);
  1141     }
  1141     }
  1142 
  1142 
  1143     // send datagrams
  1143     // send datagrams
  1144     if (master->request_cb(master->cb_data)) goto queue_timer;
       
  1145     ecrt_master_send(master);
  1144     ecrt_master_send(master);
  1146     cycles_end = get_cycles();
  1145     cycles_end = get_cycles();
       
  1146 
  1147     master->release_cb(master->cb_data);
  1147     master->release_cb(master->cb_data);
  1148 
  1148 
  1149     master->eoe_cycle_times[master->eoe_cycle_time_pos]
  1149     master->eoe_cycle_times[master->eoe_cycle_time_pos]
  1150         = (u32) (cycles_end - cycles_start) * 1000 / cpu_khz;
  1150         = (u32) (cycles_end - cycles_start) * 1000 / cpu_khz;
  1151     master->eoe_cycle_time_pos++;
  1151     master->eoe_cycle_time_pos++;