Добавлены правки настроек проекта и немного диагностики

This commit is contained in:
cfif 2026-09-03 14:29:11 +03:00
parent 55fde50ae2
commit 7858719e99
8 changed files with 101 additions and 29 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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