184 |
184 |
185 device->state = EC_DEVICE_STATE_SENT; |
185 device->state = EC_DEVICE_STATE_SENT; |
186 device->rx_data_size = 0; |
186 device->rx_data_size = 0; |
187 |
187 |
188 if (unlikely(device->master->debug_level > 1)) { |
188 if (unlikely(device->master->debug_level > 1)) { |
189 printk(KERN_DEBUG "EtherCAT: Sending frame:\n"); |
189 EC_DBG("Sending frame:\n"); |
190 ec_data_print(device->tx_skb->data + ETH_HLEN, device->tx_skb->len); |
190 ec_data_print(device->tx_skb->data + ETH_HLEN, device->tx_skb->len); |
191 } |
191 } |
192 |
192 |
193 // Senden einleiten |
193 // Senden einleiten |
194 rdtscl(device->tx_time); // Get CPU cycles |
194 rdtscl(device->tx_time); // Get CPU cycles |
238 Gibt alle Informationen über das Device-Objekt aus. |
238 Gibt alle Informationen über das Device-Objekt aus. |
239 */ |
239 */ |
240 |
240 |
241 void ec_device_print(ec_device_t *device /**< EtherCAT-Gerät */) |
241 void ec_device_print(ec_device_t *device /**< EtherCAT-Gerät */) |
242 { |
242 { |
243 printk(KERN_DEBUG "---EtherCAT device information begin---\n"); |
243 EC_DBG("---EtherCAT device information begin---\n"); |
244 |
244 |
245 if (device) |
245 if (device) { |
246 { |
246 EC_DBG("Assigned net_device: %X\n", (u32) device->dev); |
247 printk(KERN_DEBUG "Assigned net_device: %X\n", |
247 EC_DBG("Transmit socket buffer: %X\n", (u32) device->tx_skb); |
248 (unsigned) device->dev); |
248 EC_DBG("Time of last transmission: %u\n", (u32) device->tx_time); |
249 printk(KERN_DEBUG "Transmit socket buffer: %X\n", |
249 EC_DBG("Time of last receive: %u\n", (u32) device->rx_time); |
250 (unsigned) device->tx_skb); |
250 EC_DBG("Actual device state: %i\n", (u8) device->state); |
251 printk(KERN_DEBUG "Time of last transmission: %u\n", |
251 EC_DBG("Receive buffer: %X\n", (u32) device->rx_data); |
252 (unsigned) device->tx_time); |
252 EC_DBG("Receive buffer fill state: %u/%u\n", |
253 printk(KERN_DEBUG "Time of last receive: %u\n", |
253 (u32) device->rx_data_size, EC_MAX_FRAME_SIZE); |
254 (unsigned) device->rx_time); |
254 } |
255 printk(KERN_DEBUG "Actual device state: %i\n", |
255 else { |
256 (int) device->state); |
256 EC_DBG("Device is NULL!\n"); |
257 printk(KERN_DEBUG "Receive buffer: %X\n", |
257 } |
258 (unsigned) device->rx_data); |
258 |
259 printk(KERN_DEBUG "Receive buffer fill state: %u/%u\n", |
259 EC_DBG("---EtherCAT device information end---\n"); |
260 (unsigned) device->rx_data_size, EC_MAX_FRAME_SIZE); |
|
261 } |
|
262 else |
|
263 { |
|
264 printk(KERN_DEBUG "Device is NULL!\n"); |
|
265 } |
|
266 |
|
267 printk(KERN_DEBUG "---EtherCAT device information end---\n"); |
|
268 } |
260 } |
269 |
261 |
270 /*****************************************************************************/ |
262 /*****************************************************************************/ |
271 |
263 |
272 /** |
264 /** |
273 Gibt das letzte Rahmenpaar aus. |
265 Gibt das letzte Rahmenpaar aus. |
274 */ |
266 */ |
275 |
267 |
276 void ec_device_debug(const ec_device_t *device /**< EtherCAT-Gerät */) |
268 void ec_device_debug(const ec_device_t *device /**< EtherCAT-Gerät */) |
277 { |
269 { |
278 printk(KERN_DEBUG "EtherCAT: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n"); |
270 EC_DBG(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n"); |
279 ec_data_print(device->tx_skb->data + ETH_HLEN, device->tx_skb->len); |
271 ec_data_print(device->tx_skb->data + ETH_HLEN, device->tx_skb->len); |
280 printk(KERN_DEBUG "------------------------------------------------\n"); |
272 EC_DBG("------------------------------------------------\n"); |
281 ec_data_print_diff(device->tx_skb->data + ETH_HLEN, device->rx_data, |
273 ec_data_print_diff(device->tx_skb->data + ETH_HLEN, device->rx_data, |
282 device->rx_data_size); |
274 device->rx_data_size); |
283 printk(KERN_DEBUG "EtherCAT: <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n"); |
275 EC_DBG("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n"); |
284 } |
276 } |
285 |
277 |
286 /*****************************************************************************/ |
278 /*****************************************************************************/ |
287 |
279 |
288 /** |
280 /** |
363 memcpy(device->rx_data, data, size); |
361 memcpy(device->rx_data, data, size); |
364 device->rx_data_size = size; |
362 device->rx_data_size = size; |
365 device->state = EC_DEVICE_STATE_RECEIVED; |
363 device->state = EC_DEVICE_STATE_RECEIVED; |
366 |
364 |
367 if (unlikely(device->master->debug_level > 1)) { |
365 if (unlikely(device->master->debug_level > 1)) { |
368 printk(KERN_DEBUG "EtherCAT: Received frame:\n"); |
366 EC_DBG("Received frame:\n"); |
369 ec_data_print_diff(device->tx_skb->data + ETH_HLEN, device->rx_data, |
367 ec_data_print_diff(device->tx_skb->data + ETH_HLEN, device->rx_data, |
370 device->rx_data_size); |
368 device->rx_data_size); |
371 } |
369 } |
372 } |
370 } |
373 |
371 |