move globals to ecat_slv
parent
aa811ae2f4
commit
e27b6bcbb1
|
@ -10,20 +10,9 @@
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "utypes.h"
|
#include "utypes.h"
|
||||||
|
|
||||||
/* Global variables used by the stack */
|
|
||||||
uint8_t MBX[MBXBUFFERS * MAX(MBXSIZE,MBXSIZEBOOT)];
|
|
||||||
_MBXcontrol MBXcontrol[MBXBUFFERS];
|
|
||||||
_ESCvar ESCvar;
|
|
||||||
_SMmap SMmap2[MAX_MAPPINGS_SM2];
|
|
||||||
_SMmap SMmap3[MAX_MAPPINGS_SM3];
|
|
||||||
|
|
||||||
/* Application variables */
|
/* Application variables */
|
||||||
_Objects Obj;
|
_Objects Obj;
|
||||||
|
|
||||||
/* Private variables */
|
|
||||||
static uint8_t inputs[MAX_INPUT_SIZE] __attribute__((aligned (8)));
|
|
||||||
static uint8_t outputs[MAX_OUTPUT_SIZE] __attribute__((aligned (8)));
|
|
||||||
|
|
||||||
void cb_get_inputs (void)
|
void cb_get_inputs (void)
|
||||||
{
|
{
|
||||||
Obj.IN1 = 1;
|
Obj.IN1 = 1;
|
||||||
|
@ -36,7 +25,6 @@ void cb_set_outputs (void)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Setup of DC */
|
/* Setup of DC */
|
||||||
uint16_t dc_checker (void)
|
uint16_t dc_checker (void)
|
||||||
{
|
{
|
||||||
|
@ -57,10 +45,6 @@ int main (void)
|
||||||
.mbxsize = MBXSIZE,
|
.mbxsize = MBXSIZE,
|
||||||
.mbxsizeboot = MBXSIZEBOOT,
|
.mbxsizeboot = MBXSIZEBOOT,
|
||||||
.mbxbuffers = MBXBUFFERS,
|
.mbxbuffers = MBXBUFFERS,
|
||||||
.rxpdos_address = outputs,
|
|
||||||
.rxpdos_mappings = MAX_SM_MAPPINGS,
|
|
||||||
.txpdos_address = inputs,
|
|
||||||
.txpdos_mappings = MAX_SM_MAPPINGS,
|
|
||||||
.mb[0] = {MBX0_sma, MBX0_sml, MBX0_sme, MBX0_smc, 0},
|
.mb[0] = {MBX0_sma, MBX0_sml, MBX0_sme, MBX0_smc, 0},
|
||||||
.mb[1] = {MBX1_sma, MBX1_sml, MBX1_sme, MBX1_smc, 0},
|
.mb[1] = {MBX1_sma, MBX1_sml, MBX1_sme, MBX1_smc, 0},
|
||||||
.mb_boot[0] = {MBX0_sma_b, MBX0_sml_b, MBX0_sme_b, MBX0_smc_b, 0},
|
.mb_boot[0] = {MBX0_sma_b, MBX0_sml_b, MBX0_sme_b, MBX0_smc_b, 0},
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
|
/*
|
||||||
#ifndef SOES_V1
|
* Licensed under the GNU General Public License version 2 with exceptions. See
|
||||||
|
* LICENSE file in the project root for full license information
|
||||||
|
*/
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#include "esc.h"
|
#include "esc.h"
|
||||||
#include "esc_coe.h"
|
#include "esc_coe.h"
|
||||||
|
@ -10,12 +12,16 @@
|
||||||
#define IS_TXPDO(index) ((index) >= 0x1A00 && (index) < 0x1C00)
|
#define IS_TXPDO(index) ((index) >= 0x1A00 && (index) < 0x1C00)
|
||||||
|
|
||||||
/* Global variables used by the stack */
|
/* Global variables used by the stack */
|
||||||
extern _ESCvar ESCvar;
|
uint8_t MBX[MBXBUFFERS * MAX(MBXSIZE,MBXSIZEBOOT)];
|
||||||
extern _SMmap SMmap2[];
|
_MBXcontrol MBXcontrol[MBXBUFFERS];
|
||||||
extern _SMmap SMmap3[];
|
_SMmap SMmap2[MAX_MAPPINGS_SM2];
|
||||||
|
_SMmap SMmap3[MAX_MAPPINGS_SM3];
|
||||||
|
_ESCvar ESCvar;
|
||||||
|
|
||||||
/* Private variables */
|
/* Private variables */
|
||||||
static volatile int watchdog;
|
static volatile int watchdog;
|
||||||
|
static uint8_t rxpdo[MAX_RXPDO_SIZE] __attribute__((aligned (8)));
|
||||||
|
static uint8_t txpdo[MAX_TXPDO_SIZE] __attribute__((aligned (8)));
|
||||||
|
|
||||||
/** Mandatory: Function to pre-qualify the incoming SDO download.
|
/** Mandatory: Function to pre-qualify the incoming SDO download.
|
||||||
*
|
*
|
||||||
|
@ -92,8 +98,8 @@ void TXPDO_update (void)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
COE_pdoPack (ESCvar.txpdos_address, ESCvar.sm3mappings, SMmap3);
|
COE_pdoPack (txpdo, ESCvar.sm3mappings, SMmap3);
|
||||||
ESC_write (ESC_SM3_sma, ESCvar.txpdos_address , ESCvar.ESC_SM3_sml);
|
ESC_write (ESC_SM3_sma, txpdo, ESCvar.ESC_SM3_sml);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -107,8 +113,8 @@ void RXPDO_update (void)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ESC_read (ESC_SM2_sma, ESCvar.rxpdos_address, ESCvar.ESC_SM2_sml);
|
ESC_read (ESC_SM2_sma, rxpdo, ESCvar.ESC_SM2_sml);
|
||||||
COE_pdoUnpack (ESCvar.rxpdos_address, ESCvar.sm2mappings, SMmap2);
|
COE_pdoUnpack (rxpdo, ESCvar.sm2mappings, SMmap2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -305,4 +311,3 @@ void ecat_slv_init (esc_cfg_t * config)
|
||||||
ESC_stopinput();
|
ESC_stopinput();
|
||||||
ESC_stopoutput();
|
ESC_stopoutput();
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
10
soes/esc.c
10
soes/esc.c
|
@ -7,6 +7,7 @@
|
||||||
#include "esc.h"
|
#include "esc.h"
|
||||||
#include "esc_coe.h"
|
#include "esc_coe.h"
|
||||||
#include "esc_foe.h"
|
#include "esc_foe.h"
|
||||||
|
#include "options.h"
|
||||||
|
|
||||||
/** \file
|
/** \file
|
||||||
* \brief
|
* \brief
|
||||||
|
@ -1037,7 +1038,7 @@ void ESC_state (void)
|
||||||
case SAFEOP_TO_SAFEOP:
|
case SAFEOP_TO_SAFEOP:
|
||||||
{
|
{
|
||||||
ESCvar.ESC_SM2_sml = sizeOfPDO (RX_PDO_OBJIDX, &ESCvar.sm2mappings,
|
ESCvar.ESC_SM2_sml = sizeOfPDO (RX_PDO_OBJIDX, &ESCvar.sm2mappings,
|
||||||
SMmap2, ESCvar.rxpdos_mappings);
|
SMmap2, MAX_MAPPINGS_SM2);
|
||||||
if (ESCvar.sm2mappings < 0)
|
if (ESCvar.sm2mappings < 0)
|
||||||
{
|
{
|
||||||
an = ESCpreop | ESCerror;
|
an = ESCpreop | ESCerror;
|
||||||
|
@ -1046,7 +1047,7 @@ void ESC_state (void)
|
||||||
}
|
}
|
||||||
|
|
||||||
ESCvar.ESC_SM3_sml = sizeOfPDO (TX_PDO_OBJIDX, &ESCvar.sm3mappings,
|
ESCvar.ESC_SM3_sml = sizeOfPDO (TX_PDO_OBJIDX, &ESCvar.sm3mappings,
|
||||||
SMmap3, ESCvar.txpdos_mappings);
|
SMmap3, MAX_MAPPINGS_SM3);
|
||||||
if (ESCvar.sm3mappings < 0)
|
if (ESCvar.sm3mappings < 0)
|
||||||
{
|
{
|
||||||
an = ESCpreop | ESCerror;
|
an = ESCpreop | ESCerror;
|
||||||
|
@ -1151,11 +1152,6 @@ void ESC_config (esc_cfg_t * cfg)
|
||||||
ESCvar.mbxsizeboot = cfg->mbxsizeboot;
|
ESCvar.mbxsizeboot = cfg->mbxsizeboot;
|
||||||
ESCvar.mbxbuffers = cfg->mbxbuffers;
|
ESCvar.mbxbuffers = cfg->mbxbuffers;
|
||||||
|
|
||||||
ESCvar.rxpdos_address = cfg->rxpdos_address;
|
|
||||||
ESCvar.rxpdos_mappings = cfg->rxpdos_mappings;
|
|
||||||
ESCvar.txpdos_address = cfg->txpdos_address;
|
|
||||||
ESCvar.txpdos_mappings = cfg->txpdos_mappings;
|
|
||||||
|
|
||||||
ESCvar.mb[0] = cfg->mb[0];
|
ESCvar.mb[0] = cfg->mb[0];
|
||||||
ESCvar.mb[1] = cfg->mb[1];
|
ESCvar.mb[1] = cfg->mb[1];
|
||||||
ESCvar.mbboot[0] = cfg->mb_boot[0];
|
ESCvar.mbboot[0] = cfg->mb_boot[0];
|
||||||
|
|
|
@ -240,10 +240,6 @@ typedef struct esc_cfg
|
||||||
size_t mbxsize;
|
size_t mbxsize;
|
||||||
size_t mbxsizeboot;
|
size_t mbxsizeboot;
|
||||||
int mbxbuffers;
|
int mbxbuffers;
|
||||||
void * rxpdos_address;
|
|
||||||
int rxpdos_mappings;
|
|
||||||
void * txpdos_address;
|
|
||||||
int txpdos_mappings;
|
|
||||||
sm_cfg_t mb[2];
|
sm_cfg_t mb[2];
|
||||||
sm_cfg_t mb_boot[2];
|
sm_cfg_t mb_boot[2];
|
||||||
sm_cfg_t pdosm[2];
|
sm_cfg_t pdosm[2];
|
||||||
|
@ -362,10 +358,6 @@ typedef struct
|
||||||
size_t mbxsize;
|
size_t mbxsize;
|
||||||
size_t mbxsizeboot;
|
size_t mbxsizeboot;
|
||||||
int mbxbuffers;
|
int mbxbuffers;
|
||||||
void * rxpdos_address;
|
|
||||||
int rxpdos_mappings;
|
|
||||||
void * txpdos_address;
|
|
||||||
int txpdos_mappings;
|
|
||||||
sm_cfg_t mb[2];
|
sm_cfg_t mb[2];
|
||||||
sm_cfg_t mbboot[2];
|
sm_cfg_t mbboot[2];
|
||||||
sm_cfg_t pdosm[2];
|
sm_cfg_t pdosm[2];
|
||||||
|
|
|
@ -119,14 +119,14 @@
|
||||||
#define SM3_act 1
|
#define SM3_act 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Max processdata size (inputs) */
|
/* Max processdata size (outputs) */
|
||||||
#ifndef MAX_INPUT_SIZE
|
#ifndef MAX_RXPDO_SIZE
|
||||||
#define MAX_INPUT_SIZE 128
|
#define MAX_RXPDO_SIZE 128
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Max processdata size (outputs) */
|
/* Max processdata size (inputs) */
|
||||||
#ifndef MAX_OUTPUT_SIZE
|
#ifndef MAX_TXPDO_SIZE
|
||||||
#define MAX_OUTPUT_SIZE 128
|
#define MAX_TXPDO_SIZE 128
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Max number of mapped objects in SM2 */
|
/* Max number of mapped objects in SM2 */
|
||||||
|
|
Loading…
Reference in New Issue