Add option to skip default initialization

Change-Id: I08bad59fe5adbb616a9005570a153511738bee1e
pull/86/head
Lars Danielsson 2020-09-07 08:53:06 +02:00
parent dd21bd3423
commit 59728c994c
3 changed files with 9 additions and 0 deletions

View File

@ -1160,6 +1160,7 @@ void ESC_config (esc_cfg_t * cfg)
ESCvar.mbboot[0] = mbboot0;
ESCvar.mbboot[1] = mbboot1;
ESCvar.skip_default_initialization = cfg->skip_default_initialization;
ESCvar.set_defaults_hook = cfg->set_defaults_hook;
ESCvar.pre_state_change_hook = cfg->pre_state_change_hook;
ESCvar.post_state_change_hook = cfg->post_state_change_hook;

View File

@ -308,6 +308,7 @@ typedef struct esc_cfg
void * user_arg;
int use_interrupt;
int watchdog_cnt;
bool skip_default_initialization;
void (*set_defaults_hook) (void);
void (*pre_state_change_hook) (uint8_t * as, uint8_t * an);
void (*post_state_change_hook) (uint8_t * as, uint8_t * an);
@ -431,6 +432,7 @@ typedef struct
int use_interrupt;
sm_cfg_t mb[2];
sm_cfg_t mbboot[2];
bool skip_default_initialization;
void (*set_defaults_hook) (void);
void (*pre_state_change_hook) (uint8_t * as, uint8_t * an);
void (*post_state_change_hook) (uint8_t * as, uint8_t * an);

View File

@ -1630,6 +1630,12 @@ void COE_initDefaultValues (void)
int n;
uint8_t maxsub;
/* Let application decide if initialization will be skipped */
if (ESCvar.skip_default_initialization)
{
return;
}
/* Set default values from object descriptor */
for (n = 0; SDOobjects[n].index != 0xffff; n++)
{