Перенесены стеки в SRAM1

This commit is contained in:
cfif 2026-08-25 13:47:02 +03:00
parent 1e05c81c9c
commit c627ba1ee9
37 changed files with 268 additions and 62 deletions

View File

@ -365,7 +365,9 @@ bool vCanSerialPortFrameMbInit(
env->tInitCfg.eClkSrcSel = FLEXCAN_CLOCK_FUNCTION; // functional clock env->tInitCfg.eClkSrcSel = FLEXCAN_CLOCK_FUNCTION; // functional clock
env->tInitCfg.eClkSrcHz = (FLEXCAN_BaudClkType) u32FuncClk; // function clock frequency env->tInitCfg.eClkSrcHz = (FLEXCAN_BaudClkType) u32FuncClk; // function clock frequency
// __disable_irq();
tRetVal = FLEXCAN_Init(CAN_INDEX, &env->tInitCfg); tRetVal = FLEXCAN_Init(CAN_INDEX, &env->tInitCfg);
// __enable_irq();
if (tRetVal == FLEXCAN_ERROR_OK) { if (tRetVal == FLEXCAN_ERROR_OK) {

View File

@ -118,7 +118,8 @@ typedef struct {
struct { struct {
osThreadId_t id; osThreadId_t id;
uint32_t stack[384]; //uint32_t stack[384];
uint32_t *stack;
StaticTask_t controlBlock; StaticTask_t controlBlock;
osThreadAttr_t attr; osThreadAttr_t attr;
} threadCanListener; } threadCanListener;

View File

@ -8,6 +8,7 @@
#include "SystemMutexCmsis.h" #include "SystemMutexCmsis.h"
#include "CanPorts.h" #include "CanPorts.h"
#include <stdio.h> #include <stdio.h>
#include "MainStack.h"
#define LOG_SIGN "CAN_TP" #define LOG_SIGN "CAN_TP"
#define LOGGER env->logger #define LOGGER env->logger
@ -527,8 +528,13 @@ void CanSerialPortFrameTpInit(
env->logger = logger; env->logger = logger;
// InitThreadBlock(env->T_can_Listener, "CanTpUds", osPriorityNormal); // InitThreadBlock(env->T_can_Listener, "CanTpUds", osPriorityNormal);
InitThreadAtrStatic(&env->threadCanListener.attr, "CanTpUds", env->threadCanListener.controlBlock, env->threadCanListener.stack,
osPriorityNormal); env->threadCanListener.stack = tCanSerialPortFrameTp_stack;
InitThreadAtr(&env->threadCanListener.attr,"CanSpamDebugRec",&env->threadCanListener.controlBlock,sizeof(env->threadCanListener.controlBlock),env->threadCanListener.stack,tCanSerialPortFrameTp_stack_size,osPriorityNormal);
env->threadCanListener.id = 0;
// InitThreadAtrStatic(&env->threadCanListener.attr, "CanTpUds", env->threadCanListener.controlBlock, env->threadCanListener.stack,
// osPriorityNormal);
} }

View File

@ -653,7 +653,8 @@ typedef struct {
struct { struct {
osThreadId_t id; osThreadId_t id;
uint32_t stack[384]; //uint32_t stack[384];
uint32_t *stack;
StaticTask_t controlBlock; StaticTask_t controlBlock;
osThreadAttr_t attr; osThreadAttr_t attr;
} thread_Listener_XCP; } thread_Listener_XCP;

View File

@ -8,6 +8,7 @@
#include "SystemMutexCmsis.h" #include "SystemMutexCmsis.h"
#include "CanPorts.h" #include "CanPorts.h"
#include <stdio.h> #include <stdio.h>
#include "MainStack.h"
#define LOG_SIGN "CAN_XCP" #define LOG_SIGN "CAN_XCP"
#define LOGGER env->logger #define LOGGER env->logger
@ -1908,7 +1909,14 @@ _Noreturn void CanXcpProcessing_ListenerTask(tCanSerialPortFrameXCP *env) {
void CanXcpProcessing_Listener_Start(tCanSerialPortFrameXCP *env) { void CanXcpProcessing_Listener_Start(tCanSerialPortFrameXCP *env) {
// ThreadBlock_Start(env->T_can_Listener_XCP, env, CanXcpProcessing_ListenerTask); // ThreadBlock_Start(env->T_can_Listener_XCP, env, CanXcpProcessing_ListenerTask);
if (!env->thread_Listener_XCP.id) { if (!env->thread_Listener_XCP.id) {
env->thread_Listener_XCP.id = osThreadNew((osThreadFunc_t) (CanXcpProcessing_ListenerTask), (void *) (env), &env->thread_Listener_XCP.attr); // env->thread_Listener_XCP.id = osThreadNew((osThreadFunc_t) (CanXcpProcessing_ListenerTask), (void *) (env), &env->thread_Listener_XCP.attr);
env->thread_Listener_XCP.stack = tCanSerialPortFrameXCP_stack;
InitThreadAtr(&env->thread_Listener_XCP.attr,"CanXCP",&env->thread_Listener_XCP.controlBlock,sizeof(env->thread_Listener_XCP.controlBlock),env->thread_Listener_XCP.stack,tCanSerialPortFrameXCP_stack_size,osPriorityNormal);
env->thread_Listener_XCP.id = 0;
} }
// CanXcpProcessing_Service_Start(env); // CanXcpProcessing_Service_Start(env);

View File

@ -1 +1 @@
#define VERSION_RANDOM_BUILD_IDENTIFIER "SbbbJ" #define VERSION_RANDOM_BUILD_IDENTIFIER "vasYn"

View File

@ -7,6 +7,7 @@
#include "memory.h" #include "memory.h"
#include "ADC_Temp.h" #include "ADC_Temp.h"
#include "ADC_Temp_Fast.h" #include "ADC_Temp_Fast.h"
#include "MainStack.h"
#define LOG_SIGN "ADC" #define LOG_SIGN "ADC"
@ -67,8 +68,12 @@ void Adc_0_Init(tAdc0Task *env,
ADC_Filter_Init(&env->ADC0_Filter_data.BTS5180_2EKA_ChannelPTCPower2, MAX_ADC_FILTER_SIZE); ADC_Filter_Init(&env->ADC0_Filter_data.BTS5180_2EKA_ChannelPTCPower2, MAX_ADC_FILTER_SIZE);
InitThreadAtrStatic(&env->thread.attr, "Adc0", env->thread.controlBlock, env->thread.stack, env->thread.stack = tAdc0Task_stack;
osPriorityNormal); InitThreadAtr(&env->thread.attr,"Adc0",&env->thread.controlBlock,sizeof(env->thread.controlBlock),env->thread.stack,tAdc0Task_stack_size,osPriorityNormal);
env->thread.id = 0;
// InitThreadAtrStatic(&env->thread.attr, "Adc0", env->thread.controlBlock, env->thread.stack,
// osPriorityNormal);
} }
void BTS5180_120(tAdc0Task *env, char *desc, uint16_t adc_value) { void BTS5180_120(tAdc0Task *env, char *desc, uint16_t adc_value) {
@ -625,8 +630,12 @@ void Adc_1_Init(tAdc1Task *env,
ADC_Filter_Init(&env->ADC1_Filter_data.VN7008AJ_FrontLINActuatorPowerDriverAB, MAX_ADC_FILTER_SIZE); ADC_Filter_Init(&env->ADC1_Filter_data.VN7008AJ_FrontLINActuatorPowerDriverAB, MAX_ADC_FILTER_SIZE);
ADC_Filter_Init(&env->ADC1_Filter_data.VN7008AJ_RearLINActuatorPowerDriverC, MAX_ADC_FILTER_SIZE); ADC_Filter_Init(&env->ADC1_Filter_data.VN7008AJ_RearLINActuatorPowerDriverC, MAX_ADC_FILTER_SIZE);
InitThreadAtrStatic(&env->thread.attr, "Adc1", env->thread.controlBlock, env->thread.stack, env->thread.stack = tAdc1Task_stack;
osPriorityNormal); InitThreadAtr(&env->thread.attr,"Adc1",&env->thread.controlBlock,sizeof(env->thread.controlBlock),env->thread.stack,tAdc1Task_stack_size,osPriorityNormal);
env->thread.id = 0;
// InitThreadAtrStatic(&env->thread.attr, "Adc1", env->thread.controlBlock, env->thread.stack,
// osPriorityNormal);
} }

View File

@ -224,7 +224,8 @@ typedef struct {
struct { struct {
osThreadId_t id; osThreadId_t id;
uint32_t stack[384]; //uint32_t stack[384];
uint32_t *stack;
StaticTask_t controlBlock; StaticTask_t controlBlock;
osThreadAttr_t attr; osThreadAttr_t attr;
} thread; } thread;
@ -262,7 +263,8 @@ typedef struct {
struct { struct {
osThreadId_t id; osThreadId_t id;
uint32_t stack[384]; //uint32_t stack[384];
uint32_t *stack;
StaticTask_t controlBlock; StaticTask_t controlBlock;
osThreadAttr_t attr; osThreadAttr_t attr;
} thread; } thread;

View File

@ -7,6 +7,7 @@
#include "CanPorts.h" #include "CanPorts.h"
#include "string.h" #include "string.h"
#include "HVAC_model.h" #include "HVAC_model.h"
#include "MainStack.h"
#define LOG_SIGN "CAN_DEBUG_RECEIVED" #define LOG_SIGN "CAN_DEBUG_RECEIVED"
#define LOGGER env->logger #define LOGGER env->logger
@ -19,8 +20,12 @@ void CanSpamDebugReceiver_Init(tCanSpamDebugReceiver *env,
env->logger = logger; env->logger = logger;
env->access = osMutexNew(NULL); env->access = osMutexNew(NULL);
InitThreadAtrStatic(&env->thread.attr, "CanSpamDebugRec", env->thread.controlBlock, env->thread.stack, env->thread.stack = tCanSpamDebugReceiver_stack;
osPriorityNormal); InitThreadAtr(&env->thread.attr,"CanSpamDebugRec",&env->thread.controlBlock,sizeof(env->thread.controlBlock),env->thread.stack,tCanSpamDebugReceiver_stack_size,osPriorityNormal);
env->thread.id = 0;
// InitThreadAtrStatic(&env->thread.attr, "CanSpamDebugRec", env->thread.controlBlock, env->thread.stack,
// osPriorityNormal);
} }
static void ListenCanSpamDebugReceiver(tCanSpamDebugReceiver *env) { static void ListenCanSpamDebugReceiver(tCanSpamDebugReceiver *env) {

View File

@ -21,7 +21,8 @@ typedef struct {
struct { struct {
osThreadId_t id; osThreadId_t id;
uint32_t stack[384]; //uint32_t stack[384];
uint32_t *stack;
StaticTask_t controlBlock; StaticTask_t controlBlock;
osThreadAttr_t attr; osThreadAttr_t attr;
} thread; } thread;

View File

@ -9,6 +9,7 @@
#include "HVAC_model.h" #include "HVAC_model.h"
#include "candb_dbg_fixed.h" #include "candb_dbg_fixed.h"
#include "StatusData.h" #include "StatusData.h"
#include "MainStack.h"
extern tStatus_Set_For_Model model_Status_Set_For_Model_output; extern tStatus_Set_For_Model model_Status_Set_For_Model_output;
extern tStatus_Pwm_For_Model model_Status_Pwm_For_Model_output; extern tStatus_Pwm_For_Model model_Status_Pwm_For_Model_output;
@ -34,8 +35,14 @@ void CanSpamDebugTransmitter_Init(tCanSpamDebugTransmitter *env,
env->queue_ccu_candb_dbg_tx = osMessageQueueNew(1, sizeof(ccu_candb_dbg_tx_t), NULL); env->queue_ccu_candb_dbg_tx = osMessageQueueNew(1, sizeof(ccu_candb_dbg_tx_t), NULL);
InitThreadAtrStatic(&env->thread.attr, "CanSpamDebugTrans", env->thread.controlBlock, env->thread.stack,
osPriorityNormal); env->thread.stack = tCanSpamDebugTransmitter_stack;
InitThreadAtr(&env->thread.attr,"CanSpamDebugTrans",&env->thread.controlBlock,sizeof(env->thread.controlBlock),env->thread.stack,tCanSpamDebugTransmitter_stack_size,osPriorityNormal);
env->thread.id = 0;
// InitThreadAtrStatic(&env->thread.attr, "CanSpamDebugTrans", env->thread.controlBlock, env->thread.stack,
// osPriorityNormal);
} }

View File

@ -168,7 +168,8 @@ typedef struct {
struct { struct {
osThreadId_t id; osThreadId_t id;
uint32_t stack[384]; //uint32_t stack[384];
uint32_t *stack;
StaticTask_t controlBlock; StaticTask_t controlBlock;
osThreadAttr_t attr; osThreadAttr_t attr;
} thread; } thread;

View File

@ -7,6 +7,7 @@
#include "CanPorts.h" #include "CanPorts.h"
#include "string.h" #include "string.h"
#include "HVAC_model.h" #include "HVAC_model.h"
#include "MainStack.h"
#define LOG_SIGN "CAN_RECEIVED" #define LOG_SIGN "CAN_RECEIVED"
#define LOGGER env->logger #define LOGGER env->logger
@ -32,8 +33,12 @@ void CanSpamReceiver_Init(tCanSpamReceiver *env,
env->ccu_candb_rx_HVC_Err_Status_Msg = osMessageQueueNew(1, sizeof(ccu_candb_rx.HVC_Err_Status_Msg), NULL); env->ccu_candb_rx_HVC_Err_Status_Msg = osMessageQueueNew(1, sizeof(ccu_candb_rx.HVC_Err_Status_Msg), NULL);
InitThreadAtrStatic(&env->thread.attr, "CanSpamRec", env->thread.controlBlock, env->thread.stack, env->thread.stack = tCanSpamReceiver_stack;
osPriorityNormal); InitThreadAtr(&env->thread.attr,"CanSpamRec",&env->thread.controlBlock,sizeof(env->thread.controlBlock),env->thread.stack,tCanSpamReceiver_stack_size,osPriorityNormal);
env->thread.id = 0;
// InitThreadAtrStatic(&env->thread.attr, "CanSpamRec", env->thread.controlBlock, env->thread.stack,
// osPriorityNormal);
} }
static void set_CanSpamReceiver(tCanSpamReceiver *env, uint32_t recid) { static void set_CanSpamReceiver(tCanSpamReceiver *env, uint32_t recid) {

View File

@ -32,7 +32,8 @@ typedef struct {
struct { struct {
osThreadId_t id; osThreadId_t id;
uint32_t stack[384]; //uint32_t stack[384];
uint32_t *stack;
StaticTask_t controlBlock; StaticTask_t controlBlock;
osThreadAttr_t attr; osThreadAttr_t attr;
} thread; } thread;

View File

@ -7,6 +7,7 @@
#include "CanPorts.h" #include "CanPorts.h"
#include "memory.h" #include "memory.h"
#include "HVAC_model.h" #include "HVAC_model.h"
#include "MainStack.h"
#define LOG_SIGN "CAN_TRANSMITTER" #define LOG_SIGN "CAN_TRANSMITTER"
#define LOGGER env->logger #define LOGGER env->logger
@ -21,8 +22,12 @@ void CanSpamTransmitter_Init(tCanSpamTransmitter *env,
env->queue_ccu_candb_tx = osMessageQueueNew(1, sizeof(ccu_candb_tx_t), NULL); env->queue_ccu_candb_tx = osMessageQueueNew(1, sizeof(ccu_candb_tx_t), NULL);
InitThreadAtrStatic(&env->thread.attr, "CanSpamTrans", env->thread.controlBlock, env->thread.stack, env->thread.stack = tCanSpamTransmitter_stack;
osPriorityNormal); InitThreadAtr(&env->thread.attr,"CanSpamTrans",&env->thread.controlBlock,sizeof(env->thread.controlBlock),env->thread.stack,tCanSpamTransmitter_stack_size,osPriorityNormal);
env->thread.id = 0;
// InitThreadAtrStatic(&env->thread.attr, "CanSpamTrans", env->thread.controlBlock, env->thread.stack,
// osPriorityNormal);
} }

View File

@ -73,7 +73,8 @@ typedef struct {
struct { struct {
osThreadId_t id; osThreadId_t id;
uint32_t stack[384]; //uint32_t stack[384];
uint32_t *stack;
StaticTask_t controlBlock; StaticTask_t controlBlock;
osThreadAttr_t attr; osThreadAttr_t attr;
} thread; } thread;

View File

@ -16,6 +16,7 @@
#include "EraseMemory.h" #include "EraseMemory.h"
#include "InternalFlashPage.h" #include "InternalFlashPage.h"
#include "BootJump.h" #include "BootJump.h"
#include "MainStack.h"
#define LOG_SIGN "CAN_UDS" #define LOG_SIGN "CAN_UDS"
#define LOGGER env->logger #define LOGGER env->logger
@ -2920,8 +2921,13 @@ void CanUds_Init(
env->currentSession = UDS_session_defaultSession; env->currentSession = UDS_session_defaultSession;
statusData.Status_Active_Diagnostic_Session.Active_Diagnostic_Session = UDS_session_defaultSession; statusData.Status_Active_Diagnostic_Session.Active_Diagnostic_Session = UDS_session_defaultSession;
env->thread_Uds.stack = tCanUds_stack;
InitThreadAtr(&env->thread_Uds.attr,"UdsTester",&env->thread_Uds.controlBlock,sizeof(env->thread_Uds.controlBlock),env->thread_Uds.stack,tCanUds_stack_size,osPriorityNormal);
env->thread_Uds.id = 0;
// InitThreadBlock(env->T_can_Uds, "UdsTester", osPriorityNormal); // InitThreadBlock(env->T_can_Uds, "UdsTester", osPriorityNormal);
InitThreadAtrStatic(&env->thread_Uds.attr, "UdsTester", env->thread_Uds.controlBlock, env->thread_Uds.stack, // InitThreadAtrStatic(&env->thread_Uds.attr, "UdsTester", env->thread_Uds.controlBlock, env->thread_Uds.stack,
osPriorityNormal); // osPriorityNormal);
}; };

View File

@ -289,7 +289,8 @@ typedef struct {
struct { struct {
osThreadId_t id; osThreadId_t id;
uint32_t stack[384]; //uint32_t stack[384];
uint32_t *stack;
StaticTask_t controlBlock; StaticTask_t controlBlock;
osThreadAttr_t attr; osThreadAttr_t attr;
} thread_Uds; } thread_Uds;

View File

@ -10,6 +10,7 @@
#include "math.h" #include "math.h"
#include "stdlib.h" #include "stdlib.h"
#include "fc7xxx_driver_rgm.h" #include "fc7xxx_driver_rgm.h"
#include "MainStack.h"
int32_t CliCmd_baseCommandHelp(void *env, tCliCmd *cli) { int32_t CliCmd_baseCommandHelp(void *env, tCliCmd *cli) {
@ -41,9 +42,12 @@ void CommandLine_Init(tCommandLine *env, tLoggerToSerialPort *loggerToSerialPort
CliRedirectionTable_RecAddStatic(&env->redirectTable, "mem", vTaskGetRunTime, env); CliRedirectionTable_RecAddStatic(&env->redirectTable, "mem", vTaskGetRunTime, env);
CliRedirectionTable_RecAddStatic(&env->redirectTable, "reboot", CliCmd_baseCommandReboot, NULL); CliRedirectionTable_RecAddStatic(&env->redirectTable, "reboot", CliCmd_baseCommandReboot, NULL);
env->thread.stack = tCommandLine_stack;
InitThreadAtr(&env->thread.attr,"CommandLine",&env->thread.controlBlock,sizeof(env->thread.controlBlock),env->thread.stack,tCommandLine_stack_size,osPriorityNormal);
env->thread.id = 0;
InitThreadAtrStatic(&env->thread.attr, "CommandLine", env->thread.controlBlock, env->thread.stack, // InitThreadAtrStatic(&env->thread.attr, "CommandLine", env->thread.controlBlock, env->thread.stack,
osPriorityNormal); // osPriorityNormal);
} }
void ListenCLICommand(tCommandLine *env) { void ListenCLICommand(tCommandLine *env) {

View File

@ -26,7 +26,8 @@ typedef struct {
struct { struct {
osThreadId_t id; osThreadId_t id;
uint32_t stack[400]; //uint32_t stack[400];
uint32_t *stack;
StaticTask_t controlBlock; StaticTask_t controlBlock;
osThreadAttr_t attr; osThreadAttr_t attr;
} thread; } thread;

View File

@ -8,6 +8,7 @@
#include "LinActuatorWork.h" #include "LinActuatorWork.h"
#include "StatusError.h" #include "StatusError.h"
#include "ADC_Temp.h" #include "ADC_Temp.h"
#include "MainStack.h"
const char LOG_TASK_ARB[] = "Arb"; const char LOG_TASK_ARB[] = "Arb";
@ -33,7 +34,11 @@ void Mma_Init(
env->flash = flash; env->flash = flash;
env->pwms = pwms; env->pwms = pwms;
InitThreadAtrStatic(&env->thread.attr, "Mma", env->thread.controlBlock, env->thread.stack, osPriorityNormal); env->thread.stack = tMma_stack;
InitThreadAtr(&env->thread.attr,"Mma",&env->thread.controlBlock,sizeof(env->thread.controlBlock),env->thread.stack,tMma_stack_size,osPriorityNormal);
env->thread.id = 0;
// InitThreadAtrStatic(&env->thread.attr, "Mma", env->thread.controlBlock, env->thread.stack, osPriorityNormal);
env->thread.id = 0; env->thread.id = 0;
} }

View File

@ -82,7 +82,8 @@ typedef struct {
struct { struct {
osThreadId_t id; osThreadId_t id;
uint32_t stack[512]; //uint32_t stack[512];
uint32_t *stack;
StaticTask_t controlBlock; StaticTask_t controlBlock;
osThreadAttr_t attr; osThreadAttr_t attr;
} thread; } thread;

View File

@ -0,0 +1,28 @@
//
// Created by cfif on 24.08.2026.
//
#include "MainStack.h"
uint32_t __attribute__((section(".stack_data"))) tCanSpamDebugReceiver_stack[384];
uint32_t __attribute__((section(".stack_data"))) tCanSerialPortFrameTp_stack[384];
uint32_t __attribute__((section(".stack_data"))) tCanSerialPortFrameXCP_stack[384];
uint32_t __attribute__((section(".stack_data"))) tAdc0Task_stack[384];
uint32_t __attribute__((section(".stack_data"))) tAdc1Task_stack[384];
uint32_t __attribute__((section(".stack_data"))) tCanSpamDebugTransmitter_stack[384];
uint32_t __attribute__((section(".stack_data"))) tCanSpamReceiver_stack[384];
uint32_t __attribute__((section(".stack_data"))) tCanSpamTransmitter_stack[384];
uint32_t __attribute__((section(".stack_data"))) tCanUds_stack[384];
uint32_t __attribute__((section(".stack_data"))) tCommandLine_stack[400];
uint32_t __attribute__((section(".stack_data"))) tMma_stack[512];
//uint32_t __attribute__((section(".stack_data"))) tIndication_stack[128];
uint32_t __attribute__((section(".stack_data"))) tLin1TaskActuator_stack[384];
uint32_t __attribute__((section(".stack_data"))) tLin2TaskActuator_stack[384];
uint32_t __attribute__((section(".stack_data"))) tLin3TaskActuator_stack[384];
uint32_t __attribute__((section(".stack_data"))) tLin4TaskSensor_stack[384];
uint32_t __attribute__((section(".stack_data"))) tLin5TaskSensor_stack[384];
//uint32_t __attribute__((section(".stack_data"))) tModelTask_stack[1024];
uint32_t tModelTask_stack[1024];
uint32_t __attribute__((section(".stack_data"))) tLoggerToSerialPort_stack[384];
uint32_t __attribute__((section(".stack_data"))) tVarsTabDumpObserver_stack[384];

View File

@ -0,0 +1,60 @@
//
// Created by cfif on 24.08.2026.
//
#ifndef HVAC_M7_MAINSTACK_H
#define HVAC_M7_MAINSTACK_H
#include "inttypes.h"
extern uint32_t __attribute__((section(".stack_data"))) tCanSpamDebugReceiver_stack[384];
extern uint32_t __attribute__((section(".stack_data"))) tCanSerialPortFrameTp_stack[384];
extern uint32_t __attribute__((section(".stack_data"))) tCanSerialPortFrameXCP_stack[384];
extern uint32_t __attribute__((section(".stack_data"))) tAdc0Task_stack[384];
extern uint32_t __attribute__((section(".stack_data"))) tAdc1Task_stack[384];
extern uint32_t __attribute__((section(".stack_data"))) tCanSpamDebugTransmitter_stack[384];
extern uint32_t __attribute__((section(".stack_data"))) tCanSpamReceiver_stack[384];
extern uint32_t __attribute__((section(".stack_data"))) tCanSpamTransmitter_stack[384];
extern uint32_t __attribute__((section(".stack_data"))) tCanUds_stack[384];
extern uint32_t __attribute__((section(".stack_data"))) tCommandLine_stack[400];
extern uint32_t __attribute__((section(".stack_data"))) tMma_stack[512];
//extern uint32_t __attribute__((section(".stack_data"))) tIndication_stack[128];
extern uint32_t __attribute__((section(".stack_data"))) tLin1TaskActuator_stack[384];
extern uint32_t __attribute__((section(".stack_data"))) tLin2TaskActuator_stack[384];
extern uint32_t __attribute__((section(".stack_data"))) tLin3TaskActuator_stack[384];
extern uint32_t __attribute__((section(".stack_data"))) tLin4TaskSensor_stack[384];
extern uint32_t __attribute__((section(".stack_data"))) tLin5TaskSensor_stack[384];
//extern uint32_t __attribute__((section(".stack_data"))) tModelTask_stack[1024];
extern uint32_t tModelTask_stack[1024];
extern uint32_t __attribute__((section(".stack_data"))) tLoggerToSerialPort_stack[384];
extern uint32_t __attribute__((section(".stack_data"))) tVarsTabDumpObserver_stack[384];
#define tCanSpamDebugReceiver_stack_size sizeof(tCanSpamDebugReceiver_stack)
#define tCanSerialPortFrameTp_stack_size sizeof(tCanSerialPortFrameTp_stack)
#define tCanSerialPortFrameXCP_stack_size sizeof(tCanSerialPortFrameXCP_stack)
#define tAdc0Task_stack_size sizeof(tAdc0Task_stack)
#define tAdc1Task_stack_size sizeof(tAdc1Task_stack)
#define tCanSpamDebugTransmitter_stack_size sizeof(tCanSpamDebugTransmitter_stack)
#define tCanSpamReceiver_stack_size sizeof(tCanSpamReceiver_stack)
#define tCanSpamTransmitter_stack_size sizeof(tCanSpamTransmitter_stack)
#define tCanUds_stack_size sizeof(tCanUds_stack)
#define tCommandLine_stack_size sizeof(tCommandLine_stack)
#define tMma_stack_size sizeof(tMma_stack)
//#define tIndication_stack_size sizeof(tIndication_stack)
#define tLin1TaskActuator_stack_size sizeof(tLin1TaskActuator_stack)
#define tLin2TaskActuator_stack_size sizeof(tLin2TaskActuator_stack)
#define tLin3TaskActuator_stack_size sizeof(tLin3TaskActuator_stack)
#define tLin4TaskSensor_stack_size sizeof(tLin4TaskSensor_stack)
#define tLin5TaskSensor_stack_size sizeof(tLin5TaskSensor_stack)
#define tModelTask_stack_size sizeof(tModelTask_stack)
#define tLoggerToSerialPort_stack_size sizeof(tLoggerToSerialPort_stack)
#define tVarsTabDumpObserver_stack_size sizeof(tVarsTabDumpObserver_stack)
#endif //HVAC_M7_MAINSTACK_H

View File

@ -4,6 +4,7 @@
#include "Indication.h" #include "Indication.h"
#include <SystemDelayInterface.h> #include <SystemDelayInterface.h>
#include <CmsisRtosThreadUtils.h> #include <CmsisRtosThreadUtils.h>
#include "MainStack.h"
tStringStatic eDeviceModesNames[] = { tStringStatic eDeviceModesNames[] = {
StringStaticInit("Запуск"), StringStaticInit("Запуск"),
@ -24,8 +25,15 @@ void Indication_Init(
env->mode = initMode; env->mode = initMode;
Indication_Update(env); Indication_Update(env);
InitThreadAtrStatic(&env->thread.attr, "Indication", env->thread.controlBlock, env->thread.stack, osPriorityNormal);
env->thread.id = 0; // env->thread.stack = tIndication_stack;
// InitThreadAtr(&env->thread.attr,"Indication",&env->thread.controlBlock,sizeof(env->thread.controlBlock),env->thread.stack,tIndication_stack_size,osPriorityNormal);
// env->thread.id = 0;
// InitThreadAtrStatic(&env->thread.attr, "Indication", env->thread.controlBlock, env->thread.stack, osPriorityNormal);
// env->thread.id = 0;
} }
void Indication_SetMode(tIndication *env, eHvacDevModes mode) { void Indication_SetMode(tIndication *env, eHvacDevModes mode) {

View File

@ -21,7 +21,8 @@ typedef struct {
struct { struct {
osThreadId_t id; osThreadId_t id;
uint32_t stack[128]; //uint32_t stack[128];
uint32_t *stack;
StaticTask_t controlBlock; StaticTask_t controlBlock;
osThreadAttr_t attr; osThreadAttr_t attr;
} thread; } thread;

View File

@ -11,6 +11,7 @@
#include "string.h" #include "string.h"
#include "LinActuatorWork.h" #include "LinActuatorWork.h"
#include "HVAC_model.h" #include "HVAC_model.h"
#include "MainStack.h"
//#define LOG_SIGN "Lin0" //#define LOG_SIGN "Lin0"
#define LOGGER env->logger #define LOGGER env->logger
@ -1167,8 +1168,12 @@ void Lin_1_Init(tLinTaskActuator *env,
memcpy(env->SIGN_LOG, "Ln1 ", sizeof("Ln1 ") - 1); memcpy(env->SIGN_LOG, "Ln1 ", sizeof("Ln1 ") - 1);
InitThreadAtrStatic(&env->threadLin.attr, "Ln1", env->threadLin.controlBlock, env->threadLin.stack, env->threadLin.stack = tLin1TaskActuator_stack;
osPriorityNormal); InitThreadAtr(&env->threadLin.attr,"Ln1",&env->threadLin.controlBlock,sizeof(env->threadLin.controlBlock),env->threadLin.stack,tLin1TaskActuator_stack_size,osPriorityNormal);
env->threadLin.id = 0;
// InitThreadAtrStatic(&env->threadLin.attr, "Ln1", env->threadLin.controlBlock, env->threadLin.stack,
// osPriorityNormal);
} }
@ -1251,8 +1256,12 @@ void Lin_2_Init(tLinTaskActuator *env,
memcpy(env->SIGN_LOG, "Ln2 ", sizeof("Ln2 ") - 1); memcpy(env->SIGN_LOG, "Ln2 ", sizeof("Ln2 ") - 1);
InitThreadAtrStatic(&env->threadLin.attr, "Ln2", env->threadLin.controlBlock, env->threadLin.stack, env->threadLin.stack = tLin2TaskActuator_stack;
osPriorityNormal); InitThreadAtr(&env->threadLin.attr,"Ln2",&env->threadLin.controlBlock,sizeof(env->threadLin.controlBlock),env->threadLin.stack,tLin2TaskActuator_stack_size,osPriorityNormal);
env->threadLin.id = 0;
// InitThreadAtrStatic(&env->threadLin.attr, "Ln2", env->threadLin.controlBlock, env->threadLin.stack,
// osPriorityNormal);
} }
@ -1332,8 +1341,12 @@ void Lin_3_Init(tLinTaskActuator *env,
memcpy(env->SIGN_LOG, "Ln3 ", sizeof("Ln3 ") - 1); memcpy(env->SIGN_LOG, "Ln3 ", sizeof("Ln3 ") - 1);
InitThreadAtrStatic(&env->threadLin.attr, "Ln3", env->threadLin.controlBlock, env->threadLin.stack, env->threadLin.stack = tLin3TaskActuator_stack;
osPriorityNormal); InitThreadAtr(&env->threadLin.attr,"Ln3",&env->threadLin.controlBlock,sizeof(env->threadLin.controlBlock),env->threadLin.stack,tLin3TaskActuator_stack_size,osPriorityNormal);
env->threadLin.id = 0;
// InitThreadAtrStatic(&env->threadLin.attr, "Ln3", env->threadLin.controlBlock, env->threadLin.stack,
// osPriorityNormal);
} }

View File

@ -474,7 +474,8 @@ typedef struct {
struct { struct {
osThreadId_t id; osThreadId_t id;
uint32_t stack[384]; //uint32_t stack[384];
uint32_t *stack;
StaticTask_t controlBlock; StaticTask_t controlBlock;
osThreadAttr_t attr; osThreadAttr_t attr;
} threadLin; } threadLin;

View File

@ -9,6 +9,7 @@
#include "Lins.h" #include "Lins.h"
#include "LoggerInterface.h" #include "LoggerInterface.h"
#include "memory.h" #include "memory.h"
#include "MainStack.h"
#define LOG_SIGN4 "Ln4" #define LOG_SIGN4 "Ln4"
@ -493,8 +494,12 @@ void Lin_4_Init(tLin4TaskSensor *env,
env->queue_input_Lin4_Stat = osMessageQueueNew(1, sizeof(SensorLin4CmdBusInput), NULL); env->queue_input_Lin4_Stat = osMessageQueueNew(1, sizeof(SensorLin4CmdBusInput), NULL);
InitThreadAtrStatic(&env->threadLin.attr, "Ln4", env->threadLin.controlBlock, env->threadLin.stack, env->threadLin.stack = tLin4TaskSensor_stack;
osPriorityNormal); InitThreadAtr(&env->threadLin.attr,"Ln4",&env->threadLin.controlBlock,sizeof(env->threadLin.controlBlock),env->threadLin.stack,tLin4TaskSensor_stack_size,osPriorityNormal);
env->threadLin.id = 0;
// InitThreadAtrStatic(&env->threadLin.attr, "Ln4", env->threadLin.controlBlock, env->threadLin.stack,
// osPriorityNormal);
} }
@ -868,8 +873,12 @@ void Lin_5_Init(tLin5TaskSensor *env,
env->queue_led_count = osMessageQueueNew(1, sizeof(env->linStateSensor.LED_COUNT), NULL); env->queue_led_count = osMessageQueueNew(1, sizeof(env->linStateSensor.LED_COUNT), NULL);
env->queue_led_input_model_count = osMessageQueueNew(1, sizeof(LinStateSensorModel), NULL); env->queue_led_input_model_count = osMessageQueueNew(1, sizeof(LinStateSensorModel), NULL);
InitThreadAtrStatic(&env->threadLin.attr, "Ln5", env->threadLin.controlBlock, env->threadLin.stack, env->threadLin.stack = tLin5TaskSensor_stack;
osPriorityNormal); InitThreadAtr(&env->threadLin.attr,"Ln5",&env->threadLin.controlBlock,sizeof(env->threadLin.controlBlock),env->threadLin.stack,tLin5TaskSensor_stack_size,osPriorityNormal);
env->threadLin.id = 0;
// InitThreadAtrStatic(&env->threadLin.attr, "Ln5", env->threadLin.controlBlock, env->threadLin.stack,
// osPriorityNormal);
} }

View File

@ -344,7 +344,8 @@ typedef struct {
struct { struct {
osThreadId_t id; osThreadId_t id;
uint32_t stack[384]; //uint32_t stack[384];
uint32_t *stack;
StaticTask_t controlBlock; StaticTask_t controlBlock;
osThreadAttr_t attr; osThreadAttr_t attr;
} threadLin; } threadLin;
@ -404,7 +405,8 @@ typedef struct {
struct { struct {
osThreadId_t id; osThreadId_t id;
uint32_t stack[384]; //uint32_t stack[384];
uint32_t *stack;
StaticTask_t controlBlock; StaticTask_t controlBlock;
osThreadAttr_t attr; osThreadAttr_t attr;
} threadLin; } threadLin;

View File

@ -8,6 +8,7 @@
#include "memory.h" #include "memory.h"
#include "SystemDelayInterface.h" #include "SystemDelayInterface.h"
#include "fc7xxx_driver_smc.h" #include "fc7xxx_driver_smc.h"
#include "MainStack.h"
#define LOG_SIGN "ModelTask" #define LOG_SIGN "ModelTask"
#define LOGGER env->logger #define LOGGER env->logger
@ -37,8 +38,6 @@ tStatus_Ionizer_Aroma_For_Model model_Status_Ionizer_Aroma_For_Model_output;
tStatus_Duct_Select_For_Model model_Status_Duct_Select_For_Model_output; tStatus_Duct_Select_For_Model model_Status_Duct_Select_For_Model_output;
//uint32_t __attribute__((section(".stack_data"))) tModelTask_stack[1024];
void ModelTask_Init( void ModelTask_Init(
tModelTask *env, tModelTask *env,
tLinTaskActuator *linTaskActuator1, tLinTaskActuator *linTaskActuator1,
@ -87,10 +86,10 @@ void ModelTask_Init(
env->access = osMutexNew(NULL); env->access = osMutexNew(NULL);
env->logger = logger; env->logger = logger;
InitThreadAtrStatic(&env->thread.attr, "ModelTask", env->thread.controlBlock, env->thread.stack, osPriorityNormal); // InitThreadAtrStatic(&env->thread.attr, "ModelTask", env->thread.controlBlock, env->thread.stack, osPriorityNormal);
// env->thread.stack = tModelTask_stack; env->thread.stack = tModelTask_stack;
// InitThreadAtr(&env->thread.attr,"ModelTask",&env->thread.controlBlock,sizeof(env->thread.controlBlock),env->thread.stack,sizeof(env->thread.stack),osPriorityNormal); InitThreadAtr(&env->thread.attr,"ModelTask",&env->thread.controlBlock,sizeof(env->thread.controlBlock),env->thread.stack,tModelTask_stack_size,osPriorityNormal);
env->thread.id = 0; env->thread.id = 0;
} }

View File

@ -75,8 +75,8 @@ typedef struct {
struct { struct {
osThreadId_t id; osThreadId_t id;
uint32_t stack[1024]; //uint32_t stack[1024];
//uint32_t *stack; uint32_t *stack;
StaticTask_t controlBlock; StaticTask_t controlBlock;
osThreadAttr_t attr; osThreadAttr_t attr;
} thread; } thread;

View File

@ -53,7 +53,8 @@ typedef struct {
struct { struct {
osThreadId_t id; osThreadId_t id;
uint32_t stack[384]; //uint32_t stack[384];
uint32_t *stack;
StaticTask_t controlBlock; StaticTask_t controlBlock;
osThreadAttr_t attr; osThreadAttr_t attr;
} thread; } thread;

View File

@ -9,6 +9,7 @@
#include <time.h> #include <time.h>
#include "CmsisRtosThreadUtils.h" #include "CmsisRtosThreadUtils.h"
#include "memory.h" #include "memory.h"
#include "MainStack.h"
#include CMSIS_device_header #include CMSIS_device_header
static uint8_t * static uint8_t *
@ -269,8 +270,12 @@ void LoggerToSerialPort_Init(
// env->showLoglevel = showLoglevel; // env->showLoglevel = showLoglevel;
// env->showAuthor = showAuthor; // env->showAuthor = showAuthor;
InitThreadAtrStatic(&env->thread.attr, "LogTransmitter", env->thread.controlBlock, env->thread.stack, env->thread.stack = tLoggerToSerialPort_stack;
osPriorityNormal); InitThreadAtr(&env->thread.attr,"LogTransmitter",&env->thread.controlBlock,sizeof(env->thread.controlBlock),env->thread.stack,tLoggerToSerialPort_stack_size,osPriorityNormal);
env->thread.id = 0;
// InitThreadAtrStatic(&env->thread.attr, "LogTransmitter", env->thread.controlBlock, env->thread.stack,
// osPriorityNormal);
LogTransmitter_StartThread(env); LogTransmitter_StartThread(env);
} }

View File

@ -1480,7 +1480,8 @@ FLEXCAN_ErrorType FLEXCAN_Init(uint8_t u8CanIndex, const FLEXCAN_InitType *const
FLEXCAN_Type *pCan; FLEXCAN_Type *pCan;
FLEXCAN_BaudCfgType tBaudCfg; FLEXCAN_BaudCfgType tBaudCfg;
SystemDelayMs(0); // SystemDelayMs(0);
// __get_IPSR();
#if FLEXCAN_CHECK_PARAMETERS == STD_ON #if FLEXCAN_CHECK_PARAMETERS == STD_ON
/* check parameter */ /* check parameter */

View File

@ -7,7 +7,7 @@
#include "SystemDelayInterface.h" #include "SystemDelayInterface.h"
#include "string.h" #include "string.h"
#include "StorageOnFlashFlagchip.h" #include "StorageOnFlashFlagchip.h"
#include "MainStack.h"
#define LOGGER env->logger #define LOGGER env->logger
#define LOG_SIGN "Storage" #define LOG_SIGN "Storage"
@ -44,7 +44,11 @@ void VarsTabDumpObserver_Init(
env->access = osMutexNew(NULL); env->access = osMutexNew(NULL);
env->accessDumper = osMutexNew(NULL); env->accessDumper = osMutexNew(NULL);
InitThreadAtrStatic(&env->thread.attr, "Data", env->thread.controlBlock, env->thread.stack, osPriorityNormal); env->thread.stack = tVarsTabDumpObserver_stack;
InitThreadAtr(&env->thread.attr,"Data",&env->thread.controlBlock,sizeof(env->thread.controlBlock),env->thread.stack,tVarsTabDumpObserver_stack_size,osPriorityNormal);
env->thread.id = 0;
// InitThreadAtrStatic(&env->thread.attr, "Data", env->thread.controlBlock, env->thread.stack, osPriorityNormal);
env->thread.id = 0; env->thread.id = 0;
} }

View File

@ -28,7 +28,8 @@ typedef struct {
struct { struct {
osThreadId_t id; osThreadId_t id;
uint32_t stack[384]; //uint32_t stack[384];
uint32_t *stack;
StaticTask_t controlBlock; StaticTask_t controlBlock;
osThreadAttr_t attr; osThreadAttr_t attr;
} thread; } thread;