Обновление
This commit is contained in:
parent
fbb6fd8914
commit
dc57806a84
37
CanPorts.c
37
CanPorts.c
|
|
@ -7,6 +7,9 @@
|
||||||
#include "fc7xxx_driver_gpio.h"
|
#include "fc7xxx_driver_gpio.h"
|
||||||
#include "candb.h"
|
#include "candb.h"
|
||||||
|
|
||||||
|
#define LOG_SIGN "INIT"
|
||||||
|
#define LOGGER logger
|
||||||
|
|
||||||
tCanPorts CAN_PORTS;
|
tCanPorts CAN_PORTS;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|
@ -67,7 +70,7 @@ static void vCanPort_InitCAN0RxTxPin() {
|
||||||
|
|
||||||
#define countIdCanSoftFilterCan0 31
|
#define countIdCanSoftFilterCan0 31
|
||||||
const FilterTo_FLEXCAN_RxMbFilterType IdCanSoftFilterCan0[countIdCanSoftFilterCan0] = {
|
const FilterTo_FLEXCAN_RxMbFilterType IdCanSoftFilterCan0[countIdCanSoftFilterCan0] = {
|
||||||
{FLEXCAN_ID_STD, EMS_Veh_CANID, PROTOCOL_CAN_XCP},
|
{FLEXCAN_ID_STD, EMS_Veh_CANID, PROTOCOL_CAN_XCP},
|
||||||
{FLEXCAN_ID_STD, BCM_Powertrain_CANID, 0},
|
{FLEXCAN_ID_STD, BCM_Powertrain_CANID, 0},
|
||||||
{FLEXCAN_ID_STD, EMS_Veh_02_CANID, 0},
|
{FLEXCAN_ID_STD, EMS_Veh_02_CANID, 0},
|
||||||
{FLEXCAN_ID_STD, BCM_EEM_CANID, 0},
|
{FLEXCAN_ID_STD, BCM_EEM_CANID, 0},
|
||||||
|
|
@ -96,8 +99,8 @@ const FilterTo_FLEXCAN_RxMbFilterType IdCanSoftFilterCan0[countIdCanSoftFilterCa
|
||||||
{FLEXCAN_ID_STD, FIU_CCU1_CANID, 0},
|
{FLEXCAN_ID_STD, FIU_CCU1_CANID, 0},
|
||||||
{FLEXCAN_ID_STD, FIU_CCU2_CANID, 0},
|
{FLEXCAN_ID_STD, FIU_CCU2_CANID, 0},
|
||||||
{FLEXCAN_ID_STD, FIU_CCU3_CANID, 0},
|
{FLEXCAN_ID_STD, FIU_CCU3_CANID, 0},
|
||||||
{FLEXCAN_ID_STD, Diag_To_CCU_CANID, PROTOCOL_CAN_UDS},
|
{FLEXCAN_ID_STD, Diag_To_CCU_CANID, PROTOCOL_CAN_UDS},
|
||||||
{FLEXCAN_ID_STD, Diag_Functional_CANID, PROTOCOL_CAN_UDS},
|
{FLEXCAN_ID_STD, Diag_Functional_CANID, PROTOCOL_CAN_UDS},
|
||||||
};
|
};
|
||||||
|
|
||||||
#define countIdCanFilterFifoCan0 8
|
#define countIdCanFilterFifoCan0 8
|
||||||
|
|
@ -107,7 +110,7 @@ const FLEXCAN_RxMbFilterType IdCanFilterFifoCan0[countIdCanFilterFifoCan0] = {
|
||||||
{FLEXCAN_ID_STD, 0x280, 0x7E0},
|
{FLEXCAN_ID_STD, 0x280, 0x7E0},
|
||||||
{FLEXCAN_ID_STD, 0x300, 0x700},
|
{FLEXCAN_ID_STD, 0x300, 0x700},
|
||||||
{FLEXCAN_ID_STD, 0x4D0, 0x7F0},
|
{FLEXCAN_ID_STD, 0x4D0, 0x7F0},
|
||||||
{FLEXCAN_ID_STD, 0x500, 0x700},
|
{FLEXCAN_ID_STD, 0x500, 0x700},
|
||||||
{FLEXCAN_ID_STD, Diag_To_CCU_CANID, 0xFFF},
|
{FLEXCAN_ID_STD, Diag_To_CCU_CANID, 0xFFF},
|
||||||
{FLEXCAN_ID_STD, Diag_Functional_CANID, 0xFFF}
|
{FLEXCAN_ID_STD, Diag_Functional_CANID, 0xFFF}
|
||||||
};
|
};
|
||||||
|
|
@ -146,7 +149,7 @@ const FLEXCAN_RxMbFilterType IdCanFilterFifoCan0[countIdCanFilterFifoCan0] = {
|
||||||
};
|
};
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static void vCanPort_InitCan0() {
|
static bool vCanPort_InitCan0() {
|
||||||
vCanPort_InitCAN0RxTxPin();
|
vCanPort_InitCAN0RxTxPin();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
@ -157,7 +160,7 @@ static void vCanPort_InitCan0() {
|
||||||
mask |= z[i];
|
mask |= z[i];
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
vCanSerialPortFrameDMAInit(
|
bool result = vCanSerialPortFrameDMAInit(
|
||||||
&CAN_PORTS.Can0,
|
&CAN_PORTS.Can0,
|
||||||
|
|
||||||
FLEXCAN0,
|
FLEXCAN0,
|
||||||
|
|
@ -194,6 +197,7 @@ static void vCanPort_InitCan0() {
|
||||||
NULL
|
NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -231,10 +235,10 @@ static void vCanPort_InitCAN1RxTxPin() {
|
||||||
GPIO_InitPins(GPIO_A, &tGpioInitStruct);
|
GPIO_InitPins(GPIO_A, &tGpioInitStruct);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void vCanPort_InitCan1() {
|
static bool vCanPort_InitCan1() {
|
||||||
vCanPort_InitCAN1RxTxPin();
|
vCanPort_InitCAN1RxTxPin();
|
||||||
|
|
||||||
vCanSerialPortFrameDMAInit(
|
bool result = vCanSerialPortFrameDMAInit(
|
||||||
&CAN_PORTS.Can1,
|
&CAN_PORTS.Can1,
|
||||||
|
|
||||||
FLEXCAN0,
|
FLEXCAN0,
|
||||||
|
|
@ -271,16 +275,27 @@ static void vCanPort_InitCan1() {
|
||||||
NULL
|
NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void CanPorts_Init() {
|
void CanPorts_Init(tLoggerInterface *logger) {
|
||||||
CAN_PORTS.Can0.reInit = false;
|
CAN_PORTS.Can0.reInit = false;
|
||||||
vCanPort_InitCan0();
|
bool result = vCanPort_InitCan0();
|
||||||
|
if (result) {
|
||||||
|
LoggerInfoStatic(LOGGER, LOG_SIGN, "Initialization CAN0 - OK")
|
||||||
|
} else {
|
||||||
|
LoggerInfoStatic(LOGGER, LOG_SIGN, "Initialization CAN0 - ERROR")
|
||||||
|
}
|
||||||
CAN_PORTS.Can0_IO = CanPortFrame_GetIo(&CAN_PORTS.Can0);
|
CAN_PORTS.Can0_IO = CanPortFrame_GetIo(&CAN_PORTS.Can0);
|
||||||
|
|
||||||
CAN_PORTS.Can1.reInit = false;
|
CAN_PORTS.Can1.reInit = false;
|
||||||
vCanPort_InitCan1();
|
result = vCanPort_InitCan1();
|
||||||
|
if (result) {
|
||||||
|
LoggerInfoStatic(LOGGER, LOG_SIGN, "Initialization CAN1 - OK")
|
||||||
|
} else {
|
||||||
|
LoggerInfoStatic(LOGGER, LOG_SIGN, "Initialization CAN1 - ERROR")
|
||||||
|
}
|
||||||
CAN_PORTS.Can1_IO = CanPortFrame_GetIo(&CAN_PORTS.Can1);
|
CAN_PORTS.Can1_IO = CanPortFrame_GetIo(&CAN_PORTS.Can1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@
|
||||||
#define SMART_COMPONENTS_CANPORTS_H
|
#define SMART_COMPONENTS_CANPORTS_H
|
||||||
|
|
||||||
#include "CanSerialPortFrame.h"
|
#include "CanSerialPortFrame.h"
|
||||||
|
#include "LoggerInterface.h"
|
||||||
|
|
||||||
#define PROTOCOL_CAN_RAW 0
|
#define PROTOCOL_CAN_RAW 0
|
||||||
|
|
||||||
|
|
@ -27,6 +28,6 @@ typedef struct {
|
||||||
|
|
||||||
extern tCanPorts CAN_PORTS;
|
extern tCanPorts CAN_PORTS;
|
||||||
|
|
||||||
void CanPorts_Init();
|
void CanPorts_Init(tLoggerInterface *logger);
|
||||||
|
|
||||||
#endif //SMART_COMPONENTS_CANPORTS_H
|
#endif //SMART_COMPONENTS_CANPORTS_H
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue