Skip to content
Snippets Groups Projects
Commit 4dcc0f00 authored by Florian Pose's avatar Florian Pose
Browse files

Completely lock master while an EoE cycle is executing.

parent a492c589
No related branches found
No related tags found
No related merge requests found
...@@ -28,7 +28,7 @@ $Id$ ...@@ -28,7 +28,7 @@ $Id$
- Interrupt master state machines state scan for other jobs. - Interrupt master state machines state scan for other jobs.
- Master state machine, slave configuration: Do not check every slave on - Master state machine, slave configuration: Do not check every slave on
a cycle. a cycle.
- Fix problem when lock ist not required for EoE sending. - Do only execute one EoE handler per EoE cycle.
* Less important issues: * Less important issues:
- Implement all EtherCAT datagram types. - Implement all EtherCAT datagram types.
......
...@@ -1129,11 +1129,11 @@ void ec_master_eoe_run(unsigned long data /**< master pointer */) ...@@ -1129,11 +1129,11 @@ void ec_master_eoe_run(unsigned long data /**< master pointer */)
if (none_open) if (none_open)
goto queue_timer; goto queue_timer;
// receive datagrams
if (master->request_cb(master->cb_data)) goto queue_timer; if (master->request_cb(master->cb_data)) goto queue_timer;
// receive datagrams
cycles_start = get_cycles(); cycles_start = get_cycles();
ecrt_master_receive(master); ecrt_master_receive(master);
master->release_cb(master->cb_data);
// actual EoE processing // actual EoE processing
list_for_each_entry(eoe, &master->eoe_handlers, list) { list_for_each_entry(eoe, &master->eoe_handlers, list) {
...@@ -1141,9 +1141,9 @@ void ec_master_eoe_run(unsigned long data /**< master pointer */) ...@@ -1141,9 +1141,9 @@ void ec_master_eoe_run(unsigned long data /**< master pointer */)
} }
// send datagrams // send datagrams
if (master->request_cb(master->cb_data)) goto queue_timer;
ecrt_master_send(master); ecrt_master_send(master);
cycles_end = get_cycles(); cycles_end = get_cycles();
master->release_cb(master->cb_data); master->release_cb(master->cb_data);
master->eoe_cycle_times[master->eoe_cycle_time_pos] master->eoe_cycle_times[master->eoe_cycle_time_pos]
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment