Completely lock master while an EoE cycle is executing.
This commit is contained in:
parent
7b6fca3d62
commit
f5d3ec538a
2
TODO
2
TODO
|
|
@ -28,7 +28,7 @@ $Id$
|
|||
- Interrupt master state machines state scan for other jobs.
|
||||
- Master state machine, slave configuration: Do not check every slave on
|
||||
a cycle.
|
||||
- Fix problem when lock ist not required for EoE sending.
|
||||
- Do only execute one EoE handler per EoE cycle.
|
||||
|
||||
* Less important issues:
|
||||
- Implement all EtherCAT datagram types.
|
||||
|
|
|
|||
|
|
@ -1129,11 +1129,11 @@ void ec_master_eoe_run(unsigned long data /**< master pointer */)
|
|||
if (none_open)
|
||||
goto queue_timer;
|
||||
|
||||
// receive datagrams
|
||||
if (master->request_cb(master->cb_data)) goto queue_timer;
|
||||
|
||||
// receive datagrams
|
||||
cycles_start = get_cycles();
|
||||
ecrt_master_receive(master);
|
||||
master->release_cb(master->cb_data);
|
||||
|
||||
// actual EoE processing
|
||||
list_for_each_entry(eoe, &master->eoe_handlers, list) {
|
||||
|
|
@ -1141,9 +1141,9 @@ void ec_master_eoe_run(unsigned long data /**< master pointer */)
|
|||
}
|
||||
|
||||
// send datagrams
|
||||
if (master->request_cb(master->cb_data)) goto queue_timer;
|
||||
ecrt_master_send(master);
|
||||
cycles_end = get_cycles();
|
||||
|
||||
master->release_cb(master->cb_data);
|
||||
|
||||
master->eoe_cycle_times[master->eoe_cycle_time_pos]
|
||||
|
|
|
|||
Loading…
Reference in New Issue