Added FMMU debugging.
This commit is contained in:
parent
e3a571e08d
commit
dafb6721a3
|
|
@ -710,6 +710,18 @@ void ec_fmmu_config(const ec_fmmu_t *fmmu, /**< FMMU */
|
|||
|
||||
sync_size = ec_slave_calc_sync_size(slave, fmmu->sync);
|
||||
|
||||
if (slave->master->debug_level) {
|
||||
EC_DBG("Slave %i, FMMU %i:\n",
|
||||
slave->ring_position, fmmu->index);
|
||||
|
||||
EC_DBG(" Logical address: 0x%04X\n", fmmu->logical_start_address);
|
||||
EC_DBG(" Size: %i\n", sync_size);
|
||||
EC_DBG(" Physical address: 0x%04X\n",
|
||||
fmmu->sync->physical_start_address);
|
||||
EC_DBG(" Direction: %s\n",
|
||||
((fmmu->sync->control_register & 0x04) ? "output" : "input"));
|
||||
}
|
||||
|
||||
EC_WRITE_U32(data, fmmu->logical_start_address);
|
||||
EC_WRITE_U16(data + 4, sync_size); // size of fmmu
|
||||
EC_WRITE_U8 (data + 6, 0x00); // logical start bit
|
||||
|
|
|
|||
|
|
@ -464,11 +464,14 @@ int ec_slave_prepare_fmmu(ec_slave_t *slave, /**< EtherCAT slave */
|
|||
)
|
||||
{
|
||||
unsigned int i;
|
||||
ec_fmmu_t *fmmu;
|
||||
|
||||
// FMMU configuration already prepared?
|
||||
for (i = 0; i < slave->fmmu_count; i++)
|
||||
if (slave->fmmus[i].domain == domain && slave->fmmus[i].sync == sync)
|
||||
for (i = 0; i < slave->fmmu_count; i++) {
|
||||
fmmu = &slave->fmmus[i];
|
||||
if (fmmu->domain == domain && fmmu->sync == sync)
|
||||
return 0;
|
||||
}
|
||||
|
||||
// reserve new FMMU...
|
||||
|
||||
|
|
@ -477,9 +480,13 @@ int ec_slave_prepare_fmmu(ec_slave_t *slave, /**< EtherCAT slave */
|
|||
return -1;
|
||||
}
|
||||
|
||||
slave->fmmus[slave->fmmu_count].domain = domain;
|
||||
slave->fmmus[slave->fmmu_count].sync = sync;
|
||||
slave->fmmus[slave->fmmu_count].logical_start_address = 0;
|
||||
fmmu = &slave->fmmus[slave->fmmu_count];
|
||||
|
||||
fmmu->index = slave->fmmu_count;
|
||||
fmmu->domain = domain;
|
||||
fmmu->sync = sync;
|
||||
fmmu->logical_start_address = 0;
|
||||
|
||||
slave->fmmu_count++;
|
||||
slave->registered = 1;
|
||||
|
||||
|
|
|
|||
|
|
@ -173,6 +173,7 @@ ec_sii_pdo_entry_t;
|
|||
|
||||
typedef struct
|
||||
{
|
||||
unsigned int index; /**< FMMU index */
|
||||
const ec_domain_t *domain; /**< domain */
|
||||
const ec_sii_sync_t *sync; /**< sync manager */
|
||||
uint32_t logical_start_address; /**< logical start address */
|
||||
|
|
|
|||
Loading…
Reference in New Issue