Completely lock master while an EoE cycle is executing.

This commit is contained in:
Florian Pose 2007-03-16 14:42:04 +00:00
parent 7b6fca3d62
commit f5d3ec538a
2 changed files with 4 additions and 4 deletions

2
TODO
View File

@ -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.

View File

@ -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]