equal
deleted
inserted
replaced
296 ec_data_reg_t *data_reg; |
296 ec_data_reg_t *data_reg; |
297 ec_slave_t *slave; |
297 ec_slave_t *slave; |
298 ec_fmmu_t *fmmu; |
298 ec_fmmu_t *fmmu; |
299 unsigned int i, j, datagram_count; |
299 unsigned int i, j, datagram_count; |
300 uint32_t pdo_off, pdo_off_datagram; |
300 uint32_t pdo_off, pdo_off_datagram; |
301 uint32_t datagram_offset; |
301 uint32_t datagram_offset, log_addr; |
302 size_t datagram_data_size, sync_size; |
302 size_t datagram_data_size, sync_size; |
303 ec_datagram_t *datagram; |
303 ec_datagram_t *datagram; |
304 |
304 |
305 domain->base_address = base_address; |
305 domain->base_address = base_address; |
306 |
306 |
348 fmmu = &data_reg->slave->fmmus[i]; |
348 fmmu = &data_reg->slave->fmmus[i]; |
349 if (fmmu->domain == domain && fmmu->sync == data_reg->sync) { |
349 if (fmmu->domain == domain && fmmu->sync == data_reg->sync) { |
350 pdo_off = fmmu->logical_start_address + data_reg->sync_offset; |
350 pdo_off = fmmu->logical_start_address + data_reg->sync_offset; |
351 // search datagram |
351 // search datagram |
352 list_for_each_entry(datagram, &domain->datagrams, list) { |
352 list_for_each_entry(datagram, &domain->datagrams, list) { |
353 pdo_off_datagram = pdo_off - datagram->address.logical; |
353 log_addr = EC_READ_U32(datagram->address); |
354 if (pdo_off >= datagram->address.logical && |
354 pdo_off_datagram = pdo_off - log_addr; |
|
355 if (pdo_off >= log_addr && |
355 pdo_off_datagram < datagram->mem_size) { |
356 pdo_off_datagram < datagram->mem_size) { |
356 *data_reg->data_ptr = datagram->data + |
357 *data_reg->data_ptr = datagram->data + |
357 pdo_off_datagram; |
358 pdo_off_datagram; |
358 } |
359 } |
359 } |
360 } |