mirror of
https://gitlab.com/etherlab.org/ethercat.git
synced 2026-08-18 09:07:24 +08:00
Improved dummy module.
This commit is contained in:
+4
-6
@@ -42,9 +42,7 @@
|
||||
#include "../master/domain.h"
|
||||
#include "../master/master.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
uint8_t dummy_data[PAGE_SIZE];
|
||||
uint8_t *get_dummy_data(void);
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
@@ -58,7 +56,7 @@ int ecrt_domain_register_pdo(
|
||||
void **data_ptr /**< address of the process data pointer */
|
||||
)
|
||||
{
|
||||
*data_ptr = dummy_data;
|
||||
*data_ptr = get_dummy_data();
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -79,7 +77,7 @@ int ecrt_domain_register_pdo_list(
|
||||
const ec_pdo_reg_t *reg;
|
||||
|
||||
for (reg = pdo_regs; reg->slave_address; reg++) {
|
||||
*(reg->data_ptr) = dummy_data;
|
||||
*(reg->data_ptr) = get_dummy_data();
|
||||
}
|
||||
|
||||
return 0;
|
||||
@@ -102,7 +100,7 @@ int ecrt_domain_register_pdo_range(
|
||||
void **data_ptr /**< address of the process data pointer */
|
||||
)
|
||||
{
|
||||
*data_ptr = dummy_data;
|
||||
*data_ptr = get_dummy_data();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
+4
-2
@@ -49,7 +49,8 @@
|
||||
|
||||
ec_domain_t *ecrt_master_create_domain(ec_master_t *master)
|
||||
{
|
||||
return (ec_domain_t *) 1;
|
||||
static unsigned int domain = 1;
|
||||
return (ec_domain_t *) domain++;
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
@@ -80,7 +81,8 @@ ec_slave_t *ecrt_master_get_slave(
|
||||
uint32_t p
|
||||
)
|
||||
{
|
||||
return (ec_slave_t *) 1;
|
||||
static unsigned int slave = 1;
|
||||
return (ec_slave_t *) slave++;
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
@@ -65,6 +65,23 @@ MODULE_VERSION(EC_MASTER_VERSION);
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
#define DUMMY_SIZE (PAGE_SIZE * 8)
|
||||
|
||||
uint8_t dummy_data[DUMMY_SIZE];
|
||||
off_t dummy_off = 0;
|
||||
|
||||
uint8_t *get_dummy_data(void)
|
||||
{
|
||||
off_t cur = dummy_off;
|
||||
|
||||
dummy_off += 64;
|
||||
dummy_off %= DUMMY_SIZE;
|
||||
|
||||
return dummy_data + cur;
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
/**
|
||||
* Module initialization.
|
||||
* Initializes \a ec_master_count masters.
|
||||
@@ -74,6 +91,9 @@ MODULE_VERSION(EC_MASTER_VERSION);
|
||||
int __init ec_init_module(void)
|
||||
{
|
||||
EC_INFO("Master DUMMY driver %s\n", EC_MASTER_VERSION);
|
||||
|
||||
memset(dummy_data, 0x00, DUMMY_SIZE);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user