Обновление

This commit is contained in:
cfif 2026-02-05 10:59:40 +03:00
parent fbb6fd8914
commit dc57806a84
2 changed files with 28 additions and 12 deletions

View File

@ -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);
} }

View File

@ -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