Добавлены правки настроек проекта и немного диагностики
This commit is contained in:
parent
55fde50ae2
commit
7858719e99
|
|
@ -85,6 +85,15 @@ int main(void) {
|
||||||
|
|
||||||
Bsp_CLOCK_Init();
|
Bsp_CLOCK_Init();
|
||||||
|
|
||||||
|
uint32_t a = 10;
|
||||||
|
|
||||||
|
++a;
|
||||||
|
|
||||||
|
uint32_t v = 0;
|
||||||
|
for (int i=0; i<11; ++i) {
|
||||||
|
v++;
|
||||||
|
}
|
||||||
|
|
||||||
NVIC_SetPriorityGrouping(NVIC_PRIORITY_GROUP_4);
|
NVIC_SetPriorityGrouping(NVIC_PRIORITY_GROUP_4);
|
||||||
|
|
||||||
osKernelInitialize();
|
osKernelInitialize();
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,12 @@ SET(CMAKE_TOOLCHAIN_FILE ${CMAKE_SOURCE_DIR}/MODULES/CmakeConfig_GCC_CortexM7/gc
|
||||||
ENABLE_LANGUAGE(ASM)
|
ENABLE_LANGUAGE(ASM)
|
||||||
CMAKE_MINIMUM_REQUIRED(VERSION 3.8.0)
|
CMAKE_MINIMUM_REQUIRED(VERSION 3.8.0)
|
||||||
|
|
||||||
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0")
|
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ")
|
||||||
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O0")
|
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O0 ")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
IF (${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
|
IF (${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
|
||||||
MESSAGE(
|
MESSAGE(
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,8 @@ SET(CMAKE_OBJDUMP "arm-none-eabi-objdump${TOOL_EXECUTABLE_SUFFIX}" CACHE STRING
|
||||||
SET(CMAKE_SIZE "arm-none-eabi-size${TOOL_EXECUTABLE_SUFFIX}" CACHE STRING "size tool")
|
SET(CMAKE_SIZE "arm-none-eabi-size${TOOL_EXECUTABLE_SUFFIX}" CACHE STRING "size tool")
|
||||||
|
|
||||||
#-- Common flags ---------------------------------------------------------------
|
#-- Common flags ---------------------------------------------------------------
|
||||||
SET(COMPILER_COMMON_FLAGS "-mcpu=cortex-m7 -march=armv7e-m+fp -mthumb -mfloat-abi=hard -mfpu=fpv5-sp-d16 -Wall -Wextra -ffunction-sections -fdata-sections -mlong-calls -Wno-unused-function -Wno-unused-variable -Wno-unused-parameter -fno-builtin -fno-builtin-printf")
|
#SET(COMPILER_COMMON_FLAGS "-mcpu=cortex-m7 -march=armv7e-m+fp -mthumb -mfloat-abi=hard -mfpu=fpv5-sp-d16 -Wall -Wextra -ffunction-sections -fdata-sections -mlong-calls -Wno-unused-function -Wno-unused-variable -Wno-unused-parameter -fno-builtin -fno-builtin-printf")
|
||||||
|
SET(COMPILER_COMMON_FLAGS "-mcpu=cortex-m7 -march=armv7e-m+fp -mthumb -mfloat-abi=hard -mfpu=fpv5-sp-d16 -Wall -Wextra -ffunction-sections -fdata-sections -Wno-unused-function -Wno-unused-variable -Wno-unused-parameter -fno-builtin -fno-builtin-printf")
|
||||||
SET(CMAKE_C_FLAGS "${COMPILER_COMMON_FLAGS} -std=gnu99" CACHE STRING "c compiler flags")
|
SET(CMAKE_C_FLAGS "${COMPILER_COMMON_FLAGS} -std=gnu99" CACHE STRING "c compiler flags")
|
||||||
SET(CMAKE_CXX_FLAGS "${COMPILER_COMMON_FLAGS} -std=c++11" CACHE STRING "c++ compiler flags")
|
SET(CMAKE_CXX_FLAGS "${COMPILER_COMMON_FLAGS} -std=c++11" CACHE STRING "c++ compiler flags")
|
||||||
SET(CMAKE_ASM_FLAGS "-mthumb -mcpu=cortex-m7" CACHE STRING "assembler compiler flags")
|
SET(CMAKE_ASM_FLAGS "-mthumb -mcpu=cortex-m7" CACHE STRING "assembler compiler flags")
|
||||||
|
|
@ -26,8 +27,8 @@ SET(CMAKE_MODULE_LINKER_FLAGS "-mcpu=cortex-m7 -march=armv7e-m+fp -mthumb -mfloa
|
||||||
SET(CMAKE_SHARED_LINKER_FLAGS "-mcpu=cortex-m7 -march=armv7e-m+fp -mthumb -mfloat-abi=hard -mfpu=fpv5-sp-d16" CACHE STRING "shared linker flags")
|
SET(CMAKE_SHARED_LINKER_FLAGS "-mcpu=cortex-m7 -march=armv7e-m+fp -mthumb -mfloat-abi=hard -mfpu=fpv5-sp-d16" CACHE STRING "shared linker flags")
|
||||||
|
|
||||||
#-- Debug flags ----------------------------------------------------------------
|
#-- Debug flags ----------------------------------------------------------------
|
||||||
SET(CMAKE_C_FLAGS_DEBUG "-g -Og -DDEBUG" CACHE STRING "c compiler flags debug")
|
SET(CMAKE_C_FLAGS_DEBUG " -g -Og -DDEBUG " CACHE STRING "c compiler flags debug")
|
||||||
SET(CMAKE_CXX_FLAGS_DEBUG "-g -Og -DDEBUG" CACHE STRING "c++ compiler flags debug")
|
SET(CMAKE_CXX_FLAGS_DEBUG "-g -Og -DDEBUG " CACHE STRING "c++ compiler flags debug")
|
||||||
SET(CMAKE_ASM_FLAGS_DEBUG "-g" CACHE STRING "assembler compiler flags debug")
|
SET(CMAKE_ASM_FLAGS_DEBUG "-g" CACHE STRING "assembler compiler flags debug")
|
||||||
SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "" CACHE STRING "linker flags debug")
|
SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "" CACHE STRING "linker flags debug")
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
#include "HVAC_model.h"
|
#include "HVAC_model.h"
|
||||||
|
|
||||||
#define LOG_LIN4_SENSOR 0
|
#define LOG_LIN4_SENSOR 0
|
||||||
#define LOG_LIN5_SENSOR 1
|
#define LOG_LIN5_SENSOR 0
|
||||||
|
|
||||||
|
|
||||||
#define LIN4_SENSOR_COUNT 7
|
#define LIN4_SENSOR_COUNT 7
|
||||||
|
|
|
||||||
|
|
@ -677,7 +677,7 @@ static _Noreturn void ModelTask_Thread(tModelTask *env) {
|
||||||
|
|
||||||
|
|
||||||
//начало--------------------------------------------------ВХОД МОДЕЛИ CAN-----------------------------------------------
|
//начало--------------------------------------------------ВХОД МОДЕЛИ CAN-----------------------------------------------
|
||||||
get_CanSpamReceiver(env->canSpamReceiver, env->GET_HVAC_VIN, &env->CAN_ERROR_MISSLE, &env->CAN_TIME_MISSLE);
|
get_CanSpamReceiver(env->canSpamReceiver, env->GET_HVAC_VIN, &env->CAN_ERROR_MISSING, &env->CAN_TIME_MISSING);
|
||||||
|
|
||||||
// Если был захват в UDS (подмена)
|
// Если был захват в UDS (подмена)
|
||||||
if (model_Status_Set_For_Model_output.EMS == 1) {
|
if (model_Status_Set_For_Model_output.EMS == 1) {
|
||||||
|
|
@ -702,11 +702,11 @@ static _Noreturn void ModelTask_Thread(tModelTask *env) {
|
||||||
//конец--------------------------------------------------ВХОД МОДЕЛИ SLEEP----------------------------------------------
|
//конец--------------------------------------------------ВХОД МОДЕЛИ SLEEP----------------------------------------------
|
||||||
|
|
||||||
//начало-------------------------------------------------ВХОД МОДЕЛИ LIN4 LIN5------------------------------------------
|
//начало-------------------------------------------------ВХОД МОДЕЛИ LIN4 LIN5------------------------------------------
|
||||||
Lin123_Output_Get_From_Model(env->linTaskActuator1, env->LIN1_ERROR_MISSLE);
|
Lin123_Output_Get_From_Model(env->linTaskActuator1, env->LIN1_ERROR_MISSING);
|
||||||
Lin123_Output_Get_From_Model(env->linTaskActuator2, env->LIN2_ERROR_MISSLE);
|
Lin123_Output_Get_From_Model(env->linTaskActuator2, env->LIN2_ERROR_MISSING);
|
||||||
Lin123_Output_Get_From_Model(env->linTaskActuator3, env->LIN3_ERROR_MISSLE);
|
Lin123_Output_Get_From_Model(env->linTaskActuator3, env->LIN3_ERROR_MISSING);
|
||||||
Lin4_Output_Get_From_Model(env->lin4TaskSensor, env->LIN4_ERROR_MISSLE);
|
Lin4_Output_Get_From_Model(env->lin4TaskSensor, env->LIN4_ERROR_MISSING);
|
||||||
Lin5_Output_Get_From_Model(env->lin5TaskSensor, env->LIN5_ERROR_MISSLE);
|
Lin5_Output_Get_From_Model(env->lin5TaskSensor, env->LIN5_ERROR_MISSING);
|
||||||
//конец--------------------------------------------------ВХОД МОДЕЛИ LIN4 LIN5------------------------------------------
|
//конец--------------------------------------------------ВХОД МОДЕЛИ LIN4 LIN5------------------------------------------
|
||||||
|
|
||||||
//ШАГ МОДЕЛИ------------------------------------------------------------------------------------------------------------
|
//ШАГ МОДЕЛИ------------------------------------------------------------------------------------------------------------
|
||||||
|
|
@ -902,7 +902,9 @@ static _Noreturn void ModelTask_Thread(tModelTask *env) {
|
||||||
|
|
||||||
if (SystemGetMs() > timeDTC) {
|
if (SystemGetMs() > timeDTC) {
|
||||||
set_Dtc_state(env->diagnostic, &env->ccu_candb_tx.CCU_Errors, env->dtc_state_error,
|
set_Dtc_state(env->diagnostic, &env->ccu_candb_tx.CCU_Errors, env->dtc_state_error,
|
||||||
env->GET_HVAC_VIN, &env->CAN_ERROR_MISSLE, &env->CAN_TIME_MISSLE);
|
env->GET_HVAC_VIN, &env->CAN_ERROR_MISSING, &env->CAN_TIME_MISSING, env->LIN1_ERROR_MISSING,
|
||||||
|
env->LIN2_ERROR_MISSING, env->LIN3_ERROR_MISSING, env->LIN4_ERROR_MISSING,
|
||||||
|
env->LIN5_ERROR_MISSING);
|
||||||
}
|
}
|
||||||
//конец--------------------------------------------------ВЫХОД МОДЕЛИ ДЛЯ DTC-------------------------------------------
|
//конец--------------------------------------------------ВЫХОД МОДЕЛИ ДЛЯ DTC-------------------------------------------
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -40,16 +40,16 @@ typedef struct {
|
||||||
osMutexId_t access;
|
osMutexId_t access;
|
||||||
|
|
||||||
char GET_HVAC_VIN[17];
|
char GET_HVAC_VIN[17];
|
||||||
ccu_candb_error_missing_rx_t CAN_ERROR_MISSLE;
|
ccu_candb_error_missing_rx_t CAN_ERROR_MISSING;
|
||||||
ccu_candb_time_missing_rx_t CAN_TIME_MISSLE;
|
ccu_candb_time_missing_rx_t CAN_TIME_MISSING;
|
||||||
|
|
||||||
|
|
||||||
uint8_t LIN1_ERROR_MISSLE[9];
|
uint8_t LIN1_ERROR_MISSING[9];
|
||||||
uint8_t LIN2_ERROR_MISSLE[9];
|
uint8_t LIN2_ERROR_MISSING[9];
|
||||||
uint8_t LIN3_ERROR_MISSLE[9];
|
uint8_t LIN3_ERROR_MISSING[9];
|
||||||
|
|
||||||
uint8_t LIN4_ERROR_MISSLE[LIN4_SENSOR_COUNT];
|
uint8_t LIN4_ERROR_MISSING[LIN4_SENSOR_COUNT];
|
||||||
uint8_t LIN5_ERROR_MISSLE[LIN5_SENSOR_COUNT];
|
uint8_t LIN5_ERROR_MISSING[LIN5_SENSOR_COUNT];
|
||||||
|
|
||||||
uint8_t dtc_state_error[127];
|
uint8_t dtc_state_error[127];
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -354,7 +354,8 @@ setErrorDTC_CAN_VIN(uint8_t *dtc_state_error_model, ccu_candb_error_missing_rx_t
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void setErrorDTC_CAN(tDiagnostic *env, uint8_t *dtc_state_error_model, ccu_candb_error_missing_rx_t *CAN_ERROR_MISSLE) {
|
static void
|
||||||
|
setErrorDTC_CAN(tDiagnostic *env, uint8_t *dtc_state_error_model, ccu_candb_error_missing_rx_t *CAN_ERROR_MISSLE) {
|
||||||
|
|
||||||
uint32_t timeCanSpamReceiver = getCanTimeReceived(env->canSpamReceiver) + 3000;
|
uint32_t timeCanSpamReceiver = getCanTimeReceived(env->canSpamReceiver) + 3000;
|
||||||
uint32_t time = SystemGetMs();
|
uint32_t time = SystemGetMs();
|
||||||
|
|
@ -427,13 +428,63 @@ static void setErrorDTC_CAN(tDiagnostic *env, uint8_t *dtc_state_error_model, cc
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void setErrorDTC_LIN() {
|
static void
|
||||||
// Actuator_Ch0_Status_Model.
|
setErrorDTC_LIN(uint8_t *dtc_state_error_model, uint8_t *LIN1_ERROR_MISSING, uint8_t *LIN2_ERROR_MISSING, uint8_t
|
||||||
|
*LIN3_ERROR_MISSING, uint8_t *LIN4_ERROR_MISSING, uint8_t *LIN5_ERROR_MISSING) {
|
||||||
|
|
||||||
|
for (uint8_t i = 0; i < 9; ++i) {
|
||||||
|
if (LIN1_ERROR_MISSING[i]) {
|
||||||
|
dtc_state_error_model[i + 93] = DTC_TEST_FAILED_CONFIRMED;
|
||||||
|
} else {
|
||||||
|
dtc_state_error_model[i + 93] = dtc_state_error[i + 93] & (~(DTC_TEST_FAILED));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (uint8_t i = 0; i < 6; ++i) {
|
||||||
|
if (LIN2_ERROR_MISSING[i]) {
|
||||||
|
dtc_state_error_model[i + 102] = DTC_TEST_FAILED_CONFIRMED;
|
||||||
|
} else {
|
||||||
|
dtc_state_error_model[i + 102] = dtc_state_error[i + 102] & (~(DTC_TEST_FAILED));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
for (uint8_t i = 0; i < 9; ++i) {
|
||||||
|
if (LIN3_ERROR_MISSING[i]) {
|
||||||
|
dtc_state_error_model[i + 109] = DTC_TEST_FAILED_CONFIRMED;
|
||||||
|
} else {
|
||||||
|
dtc_state_error_model[i + 109] = dtc_state_error[i + 109] & (~(DTC_TEST_FAILED));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (uint8_t i = 0; i < 7; ++i) {
|
||||||
|
if (LIN4_ERROR_MISSING[i]) {
|
||||||
|
dtc_state_error_model[i + 117] = DTC_TEST_FAILED_CONFIRMED;
|
||||||
|
} else {
|
||||||
|
dtc_state_error_model[i + 117] = dtc_state_error[i + 117] & (~(DTC_TEST_FAILED));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if ((LIN5_ERROR_MISSING[2]) || (LIN5_ERROR_MISSING[3]) || (LIN5_ERROR_MISSING[6]) || (LIN5_ERROR_MISSING[7])) {
|
||||||
|
dtc_state_error_model[DTC_LOST_COMM_DRS_FRONT] = DTC_TEST_FAILED_CONFIRMED;
|
||||||
|
} else {
|
||||||
|
dtc_state_error_model[DTC_LOST_COMM_DRS_FRONT] = dtc_state_error[DTC_LOST_COMM_DRS_FRONT] & (~(DTC_TEST_FAILED));
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((LIN5_ERROR_MISSING[0]) || (LIN5_ERROR_MISSING[1]) || (LIN5_ERROR_MISSING[4]) || (LIN5_ERROR_MISSING[5])) {
|
||||||
|
dtc_state_error_model[DTC_LOST_COMM_DRS_REAR] = DTC_TEST_FAILED_CONFIRMED;
|
||||||
|
} else {
|
||||||
|
dtc_state_error_model[DTC_LOST_COMM_DRS_REAR] = dtc_state_error[DTC_LOST_COMM_DRS_REAR] & (~(DTC_TEST_FAILED));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void set_Dtc_state(tDiagnostic *env, CCU_Errors_t *CCU_Errors,
|
void set_Dtc_state(tDiagnostic *env, CCU_Errors_t *CCU_Errors,
|
||||||
uint8_t *dtc_state_error_model, char *VIN,
|
uint8_t *dtc_state_error_model, char *VIN,
|
||||||
ccu_candb_error_missing_rx_t *CAN_ERROR_MISSLE, ccu_candb_time_missing_rx_t *CAN_TIME_MISSLE) {
|
ccu_candb_error_missing_rx_t *CAN_ERROR_MISSING, ccu_candb_time_missing_rx_t *CAN_TIME_MISSING,
|
||||||
|
uint8_t *LIN1_ERROR_MISSING, uint8_t *LIN2_ERROR_MISSING, uint8_t *LIN3_ERROR_MISSING,
|
||||||
|
uint8_t *LIN4_ERROR_MISSING, uint8_t *LIN5_ERROR_MISSING) {
|
||||||
|
|
||||||
if (osMutexAcquire(env->access, 5000) == osOK) {
|
if (osMutexAcquire(env->access, 5000) == osOK) {
|
||||||
|
|
||||||
|
|
@ -445,7 +496,6 @@ void set_Dtc_state(tDiagnostic *env, CCU_Errors_t *CCU_Errors,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
for (uint8_t i = 0; i < COUNT_DTC_CODE_ERROR; ++i) {
|
for (uint8_t i = 0; i < COUNT_DTC_CODE_ERROR; ++i) {
|
||||||
if (dtc_state_error_model[i]) {
|
if (dtc_state_error_model[i]) {
|
||||||
dtc_state_error_model[i] = DTC_TEST_FAILED_CONFIRMED;
|
dtc_state_error_model[i] = DTC_TEST_FAILED_CONFIRMED;
|
||||||
|
|
@ -454,8 +504,11 @@ void set_Dtc_state(tDiagnostic *env, CCU_Errors_t *CCU_Errors,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
setErrorDTC_CAN_VIN(dtc_state_error_model, CAN_ERROR_MISSLE, VIN, CCU_Errors);
|
setErrorDTC_LIN(dtc_state_error_model, LIN1_ERROR_MISSING, LIN2_ERROR_MISSING, LIN3_ERROR_MISSING,
|
||||||
setErrorDTC_CAN(env, dtc_state_error_model, CAN_ERROR_MISSLE);
|
LIN4_ERROR_MISSING,
|
||||||
|
LIN5_ERROR_MISSING);
|
||||||
|
setErrorDTC_CAN_VIN(dtc_state_error_model, CAN_ERROR_MISSING, VIN, CCU_Errors);
|
||||||
|
setErrorDTC_CAN(env, dtc_state_error_model, CAN_ERROR_MISSING);
|
||||||
|
|
||||||
if (memcmp(dtc_state_error, dtc_state_error_model, sizeof(dtc_state_error)) != 0) {
|
if (memcmp(dtc_state_error, dtc_state_error_model, sizeof(dtc_state_error)) != 0) {
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -36,8 +36,11 @@ typedef struct {
|
||||||
|
|
||||||
void Diagnostic_Init(tDiagnostic *env, tCanSpamReceiver *canSpamReceiver, tLoggerInterface *logger);
|
void Diagnostic_Init(tDiagnostic *env, tCanSpamReceiver *canSpamReceiver, tLoggerInterface *logger);
|
||||||
void set_NoBitsDTC(tDiagnostic *env, bool noBitsDTC);
|
void set_NoBitsDTC(tDiagnostic *env, bool noBitsDTC);
|
||||||
void set_Dtc_state(tDiagnostic *env, CCU_Errors_t *CCU_Errors, uint8_t *dtc_state_error_model, char *VIN,
|
void set_Dtc_state(tDiagnostic *env, CCU_Errors_t *CCU_Errors,
|
||||||
ccu_candb_error_missing_rx_t *CAN_ERROR_MISSLE, ccu_candb_time_missing_rx_t *CAN_TIME_MISSLE);
|
uint8_t *dtc_state_error_model, char *VIN,
|
||||||
|
ccu_candb_error_missing_rx_t *CAN_ERROR_MISSLE, ccu_candb_time_missing_rx_t *CAN_TIME_MISSLE,
|
||||||
|
uint8_t *LIN1_ERROR_MISSING, uint8_t *LIN2_ERROR_MISSING, uint8_t *LIN3_ERROR_MISSING,
|
||||||
|
uint8_t *LIN4_ERROR_MISSING, uint8_t *LIN5_ERROR_MISSING);
|
||||||
uint32_t diagnostic_ClearDiagnosticInformation_14(tDiagnostic *env);
|
uint32_t diagnostic_ClearDiagnosticInformation_14(tDiagnostic *env);
|
||||||
uint32_t diagnostic_UDS_ReadDTCInformation_19_count(tDiagnostic *env, tDiagnosticDTC *diagnosticDTC);
|
uint32_t diagnostic_UDS_ReadDTCInformation_19_count(tDiagnostic *env, tDiagnosticDTC *diagnosticDTC);
|
||||||
uint32_t diagnostic_UDS_ReadDTCInformation_19_dtc(tDiagnostic *env, tDiagnosticDTC *diagnosticDTC);
|
uint32_t diagnostic_UDS_ReadDTCInformation_19_dtc(tDiagnostic *env, tDiagnosticDTC *diagnosticDTC);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue