18 Commits
Author SHA1 Message Date
raduetandCursor 10691b77f2 Add TonHe 30kW PSU control with LV/HV restart (v1.0.37).
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-23 14:05:53 +02:00
raduet 644fcf1692 Clamp connector current from InfoBlock connector1CurrentLimitA (v1.0.36). 2026-09-02 17:21:35 +02:00
raduetandCursor d3c9855f02 Log DC contactor open/close events for Everest diagnostics (v1.0.35).
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-28 16:21:29 +02:00
raduetandCursor efcdd4aec1 Add SET_AUX_RELAY (0xB2) to drive RELAY3 site lamp (v1.0.34).
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-26 13:57:53 +02:00
raduetandCursor 0a37e28b14 fix meter uint32 wrap causing bogus multi-GWh session energy (v1.0.33).
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-12 17:40:45 +02:00
raduetandCursor 9d2158d04f Ignore expected PSU output drop after Everest Mode Off (v1.0.32).
Disarm sudden-off diagnostics when host setpoint is already 0 V / 0 A so ISO15118 Welding teardown no longer logs false output_lost.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 15:10:04 +02:00
raduetandCursor b98207da4c Add SET_LIGHTING (0xB1) and AC22-style init LED shimmer.
Mutable status palette over serial; Unknown uses HSV saturation pulse instead of dim-red/fade-to-black.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-30 17:12:09 +02:00
raduetandCursor 940e3f4a3d Add charging-phase PSU sudden-off diagnostics (v1.0.28).
Observability only: log can_lost/output_lost and status flags during Charging, without changing PSU recovery behavior.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-12 01:03:13 +02:00
raduetandCursor fdc83c5b9f Clean repo hygiene: drop junk, normalize docs layout.
Remove chat/testplan/zip/scratch docs; move PDFs/scripts/board-rev ioc; standardize README + docs/.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-11 23:53:49 +02:00
raduetandCursor 52d4685673 Standardize .gitignore and untrack build/IDE artifacts; keep firmware images only.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-11 23:40:12 +02:00
raduetandCursor af8bbd5275 Expose charging session elapsed time in monitoring packet (v1.0.27).
CONN.ChargingTime ticks at 1 Hz during Charging; serial GET_STATUS reports elapsed min/sec instead of zero stubs.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-08 11:29:01 +02:00
raduetandCursor 96826da0e0 Add PSU diagnostic logging for setpoints and state transitions (v1.0.26).
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-06 09:19:36 +02:00
raduetandCursor 49a4fd8ee1 Replace hv_mode gate with CS60 hv_limit logic for unrestricted HV setpoints (v1.0.25).
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-30 19:27:47 +02:00
raduet 86b0bfc0fc Remove FAKE_500V Everest workaround; use real setpoints on the bus (v1.0.24). 2026-06-30 18:30:07 +02:00
raduetandCursor a583e12132 Add PSU fast discharge API for DC precharge step-down (v1.0.23).
Policy/executor hooks, event-driven OFF/ON state machine, and release binaries.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-30 16:28:25 +02:00
raduetandCursor ecf8e3d2f0 Build artifacts updated.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-17 12:43:15 +02:00
achamaikin 622644a6a1 added WS2812 support 2026-06-12 12:17:57 +03:00
achamaikin ac1ce30121 Add fire alarm support and update firmware version to 1.0.19
- Introduced CONN_ERR_FIRE_ALARM to handle fire alarm conditions in charger control.
- Added CMD_FIRE_ALARM command for external trigger handling in serial control.
- Updated firmware version from 1.0.17 to 1.0.19.
- Integrated fire alarm functionality into the charging loop and command handler.
2026-06-11 15:33:22 +03:00
106 changed files with 11917 additions and 54374 deletions
Vendored
BIN
View File
Binary file not shown.
+87 -50
View File
@@ -1,63 +1,100 @@
# macOS # =============================================================================
.DS_Store # STM32 / ARM GCC / STM32CubeIDE — standardized firmware .gitignore
**/.DS_Store # Track: sources + final firmware images (*.elf *.bin *.hex *.srec)
# Ignore: build intermediates, IDE noise, logs, captures, backups
#
# NOTE: Only root /Debug /Release /Build are build dirs.
# Do NOT use **/Debug — on Windows (core.ignorecase) that also matches
# source folders like Libs/**/DEBUG/.
# =============================================================================
# Temporary/editor files # -----------------------------------------------------------------------------
*.swp # Build dirs (project root only): ignore all, then re-include firmware images
*.swo # -----------------------------------------------------------------------------
*~ /Debug/*
*.tmp !/Debug/
*.bak /Release/*
!/Release/
/Build/*
!/Build/
# STM32CubeIDE build intermediates # -----------------------------------------------------------------------------
Debug/**/*.o # Object / dependency / analysis outputs (any path)
Debug/**/*.d # -----------------------------------------------------------------------------
Debug/**/*.su
Debug/**/*.cyclo
Debug/**/*.mk
Debug/**/*.lst
Debug/**/*.log
Debug/**/*.tmp
Debug/**/*.a
Debug/**/*.obj
Release/**/*.o
Release/**/*.d
Release/**/*.su
Release/**/*.cyclo
Release/**/*.mk
Release/**/*.lst
Release/**/*.log
Release/**/*.tmp
Release/**/*.a
Release/**/*.obj
# Generic C/C++ intermediates
*.o *.o
*.obj *.obj
*.d *.d
*.su *.su
*.gch *.cyclo
*.pch
*.ilk
*.exp
*.idb
*.pdb
*.dSYM/
# Preserve firmware artifacts in git # -----------------------------------------------------------------------------
!*.hex # Generated make fragments (CubeIDE)
!*.bin # -----------------------------------------------------------------------------
!*.srec *.mk
!*.elf makefile
Makefile
objects.list
objects.mk
sources.mk
subdir.mk
# Eclipse local workspace metadata # -----------------------------------------------------------------------------
.metadata/ # Linker listings (not needed in repo)
# -----------------------------------------------------------------------------
*.map
*.list
# -----------------------------------------------------------------------------
# Backups / temp
# -----------------------------------------------------------------------------
**/Backup/
*.bak
*.tmp
*.swp
*.swo
*~
# -----------------------------------------------------------------------------
# IDE / tooling (local machine)
# -----------------------------------------------------------------------------
.settings/
.mxproject
.externalToolBuilders/ .externalToolBuilders/
.metadata/
# Optional local launch configs .idea/
*.launch *.launch
*.code-workspace
# VS Code local settings # -----------------------------------------------------------------------------
# Logs / analyzer captures
# -----------------------------------------------------------------------------
log.txt
log*.txt
*.log
*.asc
# -----------------------------------------------------------------------------
# OS junk
# -----------------------------------------------------------------------------
.DS_Store
Thumbs.db
# =============================================================================
# Keep final firmware images under root build dirs
# =============================================================================
!/Debug/*.elf
!/Debug/*.bin
!/Debug/*.hex
!/Debug/*.srec
!/Release/*.elf
!/Release/*.bin
!/Release/*.hex
!/Release/*.srec
!/Build/*.elf
!/Build/*.bin
!/Build/*.hex
!/Build/*.srec
# IDE local
.vscode/ .vscode/
-41
View File
File diff suppressed because one or more lines are too long
@@ -1,2 +0,0 @@
eclipse.preferences.version=1
sfrviewstate={"fFavorites"\:{"fLists"\:{}},"fProperties"\:{"fNodeProperties"\:{}}}
-25
View File
@@ -1,25 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project>
<configuration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.1370229639" name="Debug">
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="529144383163155105" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/>
</provider>
</extension>
</configuration>
<configuration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.1286135127" name="Release">
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="529144383163155105" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/>
</provider>
</extension>
</configuration>
</project>
-6
View File
@@ -1,6 +0,0 @@
doxygen/doxygen_new_line_after_brief=true
doxygen/doxygen_use_brief_tag=false
doxygen/doxygen_use_javadoc_tags=true
doxygen/doxygen_use_pre_tag=false
doxygen/doxygen_use_structural_commands=false
eclipse.preferences.version=1
-5
View File
@@ -1,5 +0,0 @@
2F62501ED4689FB349E356AB974DBE57=0A9B2D4C5DCB32842F05F53136A1D1D7
66BE74F758C12D739921AEA421D593D3=1
8DF89ED150041C4CBC7CB9A9CAA90856=0A9B2D4C5DCB32842F05F53136A1D1D7
DC22A860405A8BF2F2C095E5B6529F12=283F84148D7B38E239E7ECD52C68B71F
eclipse.preferences.version=1
-6
View File
@@ -1,6 +0,0 @@
{
"files.associations": {
"charger_config.h": "c",
"charger_gbt.h": "c"
}
}
+8 -7
View File
@@ -311,10 +311,10 @@ PC12.GPIOParameters=GPIO_Label
PC12.GPIO_Label=HEATER PC12.GPIO_Label=HEATER
PC12.Mode=Asynchronous PC12.Mode=Asynchronous
PC12.Signal=UART5_TX PC12.Signal=UART5_TX
PC14-OSC32_IN.Mode=LSE-External-Oscillator PC14-OSC32_IN.Locked=true
PC14-OSC32_IN.Signal=RCC_OSC32_IN PC14-OSC32_IN.Signal=GPIO_Analog
PC15-OSC32_OUT.Mode=LSE-External-Oscillator PC15-OSC32_OUT.Locked=true
PC15-OSC32_OUT.Signal=RCC_OSC32_OUT PC15-OSC32_OUT.Signal=GPIO_Analog
PC2.GPIOParameters=GPIO_Speed,GPIO_Label PC2.GPIOParameters=GPIO_Speed,GPIO_Label
PC2.GPIO_Label=DBG1 PC2.GPIO_Label=DBG1
PC2.GPIO_Speed=GPIO_SPEED_FREQ_HIGH PC2.GPIO_Speed=GPIO_SPEED_FREQ_HIGH
@@ -332,8 +332,9 @@ PC5.GPIOParameters=GPIO_Label
PC5.GPIO_Label=LOCK_B PC5.GPIO_Label=LOCK_B
PC5.Locked=true PC5.Locked=true
PC5.Signal=GPIO_Output PC5.Signal=GPIO_Output
PC9.GPIOParameters=GPIO_Label PC9.GPIOParameters=GPIO_Speed,GPIO_Label
PC9.GPIO_Label=LED_DATA PC9.GPIO_Label=LED_DATA
PC9.GPIO_Speed=GPIO_SPEED_FREQ_HIGH
PC9.Locked=true PC9.Locked=true
PC9.Signal=GPIO_Output PC9.Signal=GPIO_Output
PD0.Locked=true PD0.Locked=true
@@ -461,8 +462,8 @@ RCC.PLLSourceVirtual=RCC_PLLSOURCE_HSE
RCC.Prediv1Source=RCC_PREDIV1_SOURCE_PLL2 RCC.Prediv1Source=RCC_PREDIV1_SOURCE_PLL2
RCC.Prediv2=RCC_HSE_PREDIV2_DIV5 RCC.Prediv2=RCC_HSE_PREDIV2_DIV5
RCC.Prediv2FreqValue=5000000 RCC.Prediv2FreqValue=5000000
RCC.RTCClockSelection=RCC_RTCCLKSOURCE_LSE RCC.RTCClockSelection=RCC_RTCCLKSOURCE_LSI
RCC.RTCFreq_Value=32768 RCC.RTCFreq_Value=40000
RCC.SYSCLKFreq_VALUE=72000000 RCC.SYSCLKFreq_VALUE=72000000
RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK
RCC.TimSysFreq_Value=72000000 RCC.TimSysFreq_Value=72000000
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+32 -8
View File
@@ -1,6 +1,7 @@
#pragma once #pragma once
#include <stdint.h> #include <stdint.h>
#include "charger_config.h"
typedef enum{ typedef enum{
RELAY_AUX0 = 0, RELAY_AUX0 = 0,
@@ -40,16 +41,39 @@ typedef enum{
uint8_t IN_ReadInput(inputNum_t input_n); uint8_t IN_ReadInput(inputNum_t input_n);
// Версия устройства // ConfigBlock: new bootloader at 0x08007800, legacy at 0x080001E4
#define VERSION_OFFSET (0x1E4) #define VERSION_OFFSET (0x08007800u)
#define VERSION_OFFSET_LEGACY (0x080001E4u)
typedef struct __attribute__((packed)) { typedef struct __attribute__((packed)) {
uint32_t serialNumber; // Байты 0-3: серийный номер станции (little-endian) uint32_t serialNumber; // Байты 0-3
uint8_t stationType; // Байт 4: тип станции uint8_t stationType; // Байт 4
uint8_t boardVersion; // Байт 5: версия платы uint8_t boardVersion; // Байт 5
uint8_t addrEdcan; // Байт 6: адрес EDCAN uint8_t addrEdcan; // Байт 6
uint8_t maxPower; // Байт 7: максимальная мощность станции (5кВт/bit) uint8_t contactorConfig; // Байт 7
uint8_t reserved[56]; // Байты 8-63: зарезервированы uint8_t connectorConfig; // Байт 8
uint8_t maxPower; // Байт 9, 5 кВт/bit
uint8_t psuType; // Байт 10
uint8_t meterType; // Байт 11
uint8_t balancerType; // Байт 12
uint8_t autostartMode; // Байт 13
uint8_t motorEnable; // Байт 14
uint16_t connector1CurrentLimitA; // Байты 15-16, A; 0 = legacy PSU_MAX_CURRENT
uint16_t connector2CurrentLimitA; // Байты 17-18
uint16_t connector3CurrentLimitA; // Байты 19-20
uint8_t reserved[43]; // Байты 21-63
} InfoBlock_t; } InfoBlock_t;
#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L)
_Static_assert(sizeof(InfoBlock_t) == 64, "InfoBlock_t must be 64 bytes");
#endif
extern InfoBlock_t *InfoBlock; extern InfoBlock_t *InfoBlock;
void Board_SelectInfoBlockAddress(void);
void Board_LoadInfoBlockLimits(void);
uint16_t Board_GetConnectorCurrentLimit_0p1A(void);
uint16_t Board_ClampCurrent_0p1A(uint16_t current_0p1A);
PsuType_t Board_GetPsuType(void);
uint16_t Board_GetPsuMaxCurrentA(void);
uint32_t Board_GetPsuMaxPowerW(void);
+37 -4
View File
@@ -7,9 +7,42 @@
#define PSU_MIN_CURRENT 1 //1A/bit #define PSU_MIN_CURRENT 1 //1A/bit
#define PSU_MAX_POWER 40000 //1W/bit #define PSU_MAX_POWER 40000 //1W/bit
#define PSU_BLOCK_POWER_30KW 30000u
#define PSU_BLOCK_POWER_40KW 40000u
#define PSU_BLOCK_CURRENT_30KW 100u
#define PSU_BLOCK_CURRENT_40KW 133u
#define PSU_NUM 1 #define PSU_NUM 1
/* Everest / стенд: запрос «500 В» на шине — реально на PSU задаются U/I ниже; статус может оставаться 500 В (serial.c). */ /* Values match bootloader-flasher firmwares.json psuTypes[].value (InfoBlock byte 10). */
#define FAKE_EVREQ_VOLTAGE_V 500u typedef enum {
#define FAKE_PSU_VOLTAGE_V 300u PSU_TYPE_NONE = 0,
#define FAKE_PSU_CURRENT_0P1A 10u PSU_TYPE_NIUERA_30KW = 1,
PSU_TYPE_NIUERA_40KW = 2,
PSU_TYPE_TONHE_30KW = 3
} PsuType_t;
/* Dynamic LV clamp (CS60 hv_limit): active only on overload at low bus voltage. */
#define PSU_LV_CLAMP_V 499u
#define PSU_HV_LIMIT_ON_THRESHOLD 480u
#define PSU_HV_LIMIT_OFF_THRESHOLD 495u
#define PSU_HV_SWITCH_DELAY_MS 1000u
#define PSU_HV_LOAD_CURRENT 300u /* 30.0 A, MeasuredCurrent is 0.1 A/bit */
#define PSU_HV_LIMIT_MAX_COUNT 3u
/* TonHe group start: ≤500 V = LV, >500 V = HV. LV→HV while ON dies; HV→LV stays ON. */
#define TONHE_HV_THRESHOLD_V 500u
/* Fast discharge: Niuera off/on cycle on step-down (unloaded bus). TonHe skips this. */
#define PSD_ENABLE 1u
#define PSD_MAX_CMD_CURRENT_0P1A 20u /* 2.0 A */
#define PSD_MAX_MEASURED_CURRENT_0P1A 30u /* 3.0 A */
#define PSD_MEASURED_LATCH_MS 500u
#define PSD_MIN_VOLTAGE_STEP_V 50u
#define PSD_DISCHARGE_MARGIN_V 15u
#define PSD_DEBOUNCE_MS 2000u
#define PSD_MAX_PER_SESSION 4u
#define PSD_OFF_TIMEOUT_MS 10000u /* как PSU_WAIT_ACK_OFF */
#define PSD_ON_TIMEOUT_MS 10000u
#define PSD_ON_RETRY_MS 500u /* повтор SET+ON в ON_WAIT */
#define PSD_PRECHARGE_TOLERANCE_V 40u /* ~±10% for 350 V precharge window */
+6
View File
@@ -47,6 +47,7 @@ typedef enum __attribute__((packed)){
CONN_ERR_HOTPLUG = 8, // Коннектор неожиданно отключился CONN_ERR_HOTPLUG = 8, // Коннектор неожиданно отключился
CONN_ERR_EV_COMM = 9, // Ошибка протокола связи с электромобилем CONN_ERR_EV_COMM = 9, // Ошибка протокола связи с электромобилем
CONN_ERR_PSU_FAULT = 10, // Ошибка PSU CONN_ERR_PSU_FAULT = 10, // Ошибка PSU
CONN_ERR_FIRE_ALARM = 11, // Пожарная тревога (до перезагрузки)
}CONN_Error_t; }CONN_Error_t;
@@ -67,6 +68,10 @@ typedef struct{
uint16_t WantedCurrent; //0.1A/bit uint16_t WantedCurrent; //0.1A/bit
CONN_Error_t chargingError; // 0 if okay CONN_Error_t chargingError; // 0 if okay
uint8_t EvConnected; uint8_t EvConnected;
uint32_t ChargingTime; // seconds of active charging in current session
uint8_t hv_limit; // Limits PSU voltage to LV range when set
uint32_t hv_tick; // Timer for delayed HV limit switching
uint8_t hv_limit_count; // Anti-chatter counter for LV limit switching
} ChargingConnector_t; } ChargingConnector_t;
@@ -78,3 +83,4 @@ extern ChargingConnector_t CONN;
void CONN_Init(); void CONN_Init();
void CONN_Loop(); void CONN_Loop();
void CONN_GetElapsedForMonitoring(uint16_t *min, uint8_t *sec);
+9
View File
@@ -0,0 +1,9 @@
#ifndef INC_FIRE_ALARM_H_
#define INC_FIRE_ALARM_H_
#include <stdint.h>
uint8_t FireAlarm_IsLatched(void);
void FireAlarm_Activate(void);
#endif /* INC_FIRE_ALARM_H_ */
+1 -1
View File
@@ -27,7 +27,7 @@ extern "C" {
/* USER CODE BEGIN EC */ /* USER CODE BEGIN EC */
#define FW_VERSION_MAJOR 1 #define FW_VERSION_MAJOR 1
#define FW_VERSION_MINOR 0 #define FW_VERSION_MINOR 0
#define FW_VERSION_PATCH 17 #define FW_VERSION_PATCH 37
/* USER CODE END EC */ /* USER CODE END EC */
/* Exported macro ------------------------------------------------------------*/ /* Exported macro ------------------------------------------------------------*/
+21
View File
@@ -0,0 +1,21 @@
#pragma once
#include <stdint.h>
#include "power_setpoint_policy.h"
typedef enum {
PSD_TRY_IDLE = 0,
PSD_TRY_APPLIED_NORMAL,
PSD_TRY_START_FAST_DISCHARGE,
} PowerSetpointTryResult_t;
void PowerSetpoint_Init(void);
void PowerSetpoint_OnCommand(uint16_t voltage_V, uint16_t current_0p1A);
void PowerSetpoint_UpdateDeliveryLatch(void);
uint8_t PowerSetpoint_HasPending(void);
uint8_t PowerSetpoint_IsBusy(void);
PowerSetpointTryResult_t PowerSetpoint_TryApply(void);
void PowerSetpoint_GetFastDischargeTarget(PowerSetpoint_t *target);
void PowerSetpoint_OnFastDischargeComplete(void);
void PowerSetpoint_OnFastDischargeAbort(void);
+35
View File
@@ -0,0 +1,35 @@
#pragma once
#include <stdint.h>
#include "charger_config.h"
typedef struct {
uint16_t voltage_V;
uint16_t current_0p1A;
} PowerSetpoint_t;
typedef enum {
POWER_SETPOINT_NORMAL,
POWER_SETPOINT_FAST_DISCHARGE,
} PowerSetpointAction_t;
typedef struct {
uint8_t dc_contactor_closed;
uint8_t psu_hv_enabled;
uint16_t measured_voltage_V;
uint16_t measured_current_0p1A;
uint8_t power_delivery_active;
uint8_t enable_output;
uint8_t psu_state_connected;
uint8_t psu_cont_fault;
uint8_t psu_fault;
uint8_t fast_discharge_count;
uint32_t last_fast_discharge_ms;
uint32_t now_ms;
} PowerPathContext_t;
PowerSetpointAction_t PowerSetpoint_Decide(
const PowerSetpoint_t *applied,
const PowerSetpoint_t *next,
const PowerPathContext_t *ctx);
+7 -2
View File
@@ -5,7 +5,9 @@
void PSU_Init(); void PSU_Init();
void PSU_Enable(uint8_t addr, uint8_t enable); void PSU_Enable(uint8_t addr, uint8_t enable);
void PSU_SetVoltageCurrent(uint8_t addr, uint16_t voltage, uint16_t current);
void PSU_ReadWrite(void); void PSU_ReadWrite(void);
PsuType_t PSU_GetType(void);
// --- Состояние силового модуля (DC30, один PSU) --- // --- Состояние силового модуля (DC30, один PSU) ---
@@ -16,6 +18,11 @@ typedef enum{
PSU_WAIT_ACK_ON, // ждём подтверждение включения модуля (напряжение выше порога) PSU_WAIT_ACK_ON, // ждём подтверждение включения модуля (напряжение выше порога)
PSU_CONT_WAIT_ACK_ON, // включаем DC-контактор и ждём подтверждение PSU_CONT_WAIT_ACK_ON, // включаем DC-контактор и ждём подтверждение
PSU_CONNECTED, // модуль включён, DC-контактор замкнут PSU_CONNECTED, // модуль включён, DC-контактор замкнут
PSU_FAST_DISCHARGE_OFF,
PSU_FAST_DISCHARGE_WAIT, /* ждём подтверждение выключения (как PSU_WAIT_ACK_OFF) */
PSU_FAST_DISCHARGE_SET, /* задать целевое U/I при выключенном модуле */
PSU_FAST_DISCHARGE_ON, /* команда включения после set */
PSU_FAST_DISCHARGE_ON_WAIT, /* ждём подтверждение включения (как PSU_WAIT_ACK_ON) */
PSU_CURRENT_DROP, // снижение тока перед отключением PSU_CURRENT_DROP, // снижение тока перед отключением
PSU_WAIT_ACK_OFF, // ждём подтверждение выключения модуля (напряжение ниже порога) PSU_WAIT_ACK_OFF, // ждём подтверждение выключения модуля (напряжение ниже порога)
PSU_CONT_WAIT_ACK_OFF, // выключаем DC-контактор и ждём подтверждение PSU_CONT_WAIT_ACK_OFF, // выключаем DC-контактор и ждём подтверждение
@@ -78,8 +85,6 @@ typedef struct {
// Дополнительные параметры для одного модуля DC30 // Дополнительные параметры для одного модуля DC30
uint32_t power_limit; // лимит мощности [кВт] uint32_t power_limit; // лимит мощности [кВт]
uint8_t hv_mode; // HV-режим (ограничение напряжения)
uint32_t hv_tick; // таймер для задержки входа в HV-режим
uint32_t tempAmbient; // температура окружающего воздуха (из PSU_04) uint32_t tempAmbient; // температура окружающего воздуха (из PSU_04)
union { uint8_t raw; PSU_Status0_t bits; } status0; // modularForm0 union { uint8_t raw; PSU_Status0_t bits; } status0; // modularForm0
+5 -1
View File
@@ -1,6 +1,7 @@
#pragma once #pragma once
#include "main.h" #include "main.h"
#include "serial_control.h"
#pragma pack(push, 1) #pragma pack(push, 1)
@@ -40,4 +41,7 @@ typedef struct{
void LED_Task(); void LED_Task();
void LED_Write(); void LED_Write();
void LED_Init(); void LED_Init();
void LED_SetColor(RGB_Cycle_t *color); void LED_SetColor(const RGB_Cycle_t *color);
void RGB_SetColor(RGB_t *color);
void WS2812_SetColor(RGB_t *color);
uint8_t LED_ApplyLightingConfig(const LightingConfigPacket_t *config);
+1
View File
@@ -7,6 +7,7 @@
void CCS_SerialLoop(void); void CCS_SerialLoop(void);
void CCS_Init(void); void CCS_Init(void);
void CCS_UpdateMaxLoadFromInfoBlock(void);
void CCS_SendEmergencyStop(void); void CCS_SendEmergencyStop(void);
void CCS_SendStart(void); void CCS_SendStart(void);
void CCS_RxEventCallback(UART_HandleTypeDef *huart, uint16_t size); void CCS_RxEventCallback(UART_HandleTypeDef *huart, uint16_t size);
+25
View File
@@ -22,9 +22,13 @@
// Сервисные команды // Сервисные команды
#define CMD_SET_CONFIG 0xB0 #define CMD_SET_CONFIG 0xB0
#define CMD_SET_LIGHTING 0xB1
#define CMD_SET_AUX_RELAY 0xB2 /* RELAY3 / PE10, payload 1 byte 0|1 */
// Перезагрузка для входа в бутлоадер // Перезагрузка для входа в бутлоадер
#define CMD_DEVICE_RESET 0xB5 #define CMD_DEVICE_RESET 0xB5
// Пожарная тревога (внешний триггер)
#define CMD_FIRE_ALARM 0xB7
// Коды ответов // Коды ответов
#define RESP_SUCCESS 0x12 #define RESP_SUCCESS 0x12
@@ -145,6 +149,27 @@ typedef struct __attribute__((packed)) {
} ConfigBlock_t; } ConfigBlock_t;
typedef struct __attribute__((packed)) {
uint8_t r;
uint8_t g;
uint8_t b;
uint8_t brightness;
uint8_t effect;
uint8_t speed;
uint8_t fadeTo;
} LightingRolePacket_t;
typedef struct __attribute__((packed)) {
uint8_t mode;
uint8_t flags;
uint8_t previewSec;
uint8_t reserved;
LightingRolePacket_t roles[5];
} LightingConfigPacket_t;
_Static_assert(sizeof(LightingRolePacket_t) == 7, "Lighting role packet must be 7 bytes");
_Static_assert(sizeof(LightingConfigPacket_t) == 39, "Lighting config packet must be 39 bytes");
// Предварительное объявление структуры протокола // Предварительное объявление структуры протокола
typedef struct SerialControl_t SerialControl_t; typedef struct SerialControl_t SerialControl_t;
BIN
View File
Binary file not shown.
+80
View File
@@ -1,5 +1,6 @@
#include "board.h" #include "board.h"
#include "charger_config.h"
#include "adc.h" #include "adc.h"
#include "main.h" #include "main.h"
#include "sma_filter.h" #include "sma_filter.h"
@@ -7,6 +8,85 @@
InfoBlock_t *InfoBlock = (InfoBlock_t *)(VERSION_OFFSET); InfoBlock_t *InfoBlock = (InfoBlock_t *)(VERSION_OFFSET);
static uint16_t s_connector_max_current_0p1A = (uint16_t)PSU_MAX_CURRENT * 10u;
void Board_SelectInfoBlockAddress(void)
{
const volatile uint32_t *new_base = (const volatile uint32_t *)VERSION_OFFSET;
if (*new_base == 0xFFFFFFFFu) {
InfoBlock = (InfoBlock_t *)VERSION_OFFSET_LEGACY;
} else {
InfoBlock = (InfoBlock_t *)VERSION_OFFSET;
}
}
PsuType_t Board_GetPsuType(void)
{
/* Legacy ConfigBlock has no psuType field; keep Niuera path. */
if (InfoBlock == (InfoBlock_t *)VERSION_OFFSET_LEGACY) {
return PSU_TYPE_NONE;
}
return (PsuType_t)InfoBlock->psuType;
}
uint16_t Board_GetPsuMaxCurrentA(void)
{
switch (Board_GetPsuType()) {
case PSU_TYPE_TONHE_30KW:
case PSU_TYPE_NIUERA_30KW:
return (uint16_t)PSU_BLOCK_CURRENT_30KW;
case PSU_TYPE_NIUERA_40KW:
return (uint16_t)PSU_BLOCK_CURRENT_40KW;
case PSU_TYPE_NONE:
default:
return (uint16_t)PSU_MAX_CURRENT;
}
}
uint32_t Board_GetPsuMaxPowerW(void)
{
switch (Board_GetPsuType()) {
case PSU_TYPE_TONHE_30KW:
case PSU_TYPE_NIUERA_30KW:
return PSU_BLOCK_POWER_30KW;
case PSU_TYPE_NIUERA_40KW:
return PSU_BLOCK_POWER_40KW;
case PSU_TYPE_NONE:
default:
return (uint32_t)PSU_MAX_POWER;
}
}
static uint16_t Board_ResolveConnectorCurrentLimitA(uint16_t raw_limit_a)
{
return (raw_limit_a == 0u) ? Board_GetPsuMaxCurrentA() : raw_limit_a;
}
void Board_LoadInfoBlockLimits(void)
{
const uint16_t limit_a = Board_ResolveConnectorCurrentLimitA(InfoBlock->connector1CurrentLimitA);
uint32_t limit_0p1a = (uint32_t)limit_a * 10u;
const uint32_t hw_max_0p1a = (uint32_t)Board_GetPsuMaxCurrentA() * 10u;
if (limit_0p1a > hw_max_0p1a) {
limit_0p1a = hw_max_0p1a;
}
s_connector_max_current_0p1A = (uint16_t)limit_0p1a;
}
uint16_t Board_GetConnectorCurrentLimit_0p1A(void)
{
return s_connector_max_current_0p1A;
}
uint16_t Board_ClampCurrent_0p1A(uint16_t current_0p1A)
{
const uint16_t limit = Board_GetConnectorCurrentLimit_0p1A();
return (current_0p1A > limit) ? limit : current_0p1A;
}
uint8_t RELAY_State[RELAY_COUNT]; uint8_t RELAY_State[RELAY_COUNT];
static volatile uint8_t adc_lock = 0; static volatile uint8_t adc_lock = 0;
static SMAFilter_t conn_temp_adc_filter[2]; static SMAFilter_t conn_temp_adc_filter[2];
+28 -1
View File
@@ -2,6 +2,7 @@
#include "charger_config.h" #include "charger_config.h"
#include "debug.h" #include "debug.h"
#include "fire_alarm.h"
#include "psu_control.h" #include "psu_control.h"
ChargingConnector_t CONN; ChargingConnector_t CONN;
@@ -12,17 +13,24 @@ void CONN_Init(){
CONN.connControl = CMD_NONE; CONN.connControl = CMD_NONE;
CONN.connState = Unknown; CONN.connState = Unknown;
CONN.RequestedVoltage = PSU_MIN_VOLTAGE; CONN.RequestedVoltage = PSU_MIN_VOLTAGE;
CONN.ChargingTime = 0;
CONN.hv_limit = 0u;
CONN.hv_tick = 0u;
CONN.hv_limit_count = 0u;
} }
void CONN_Loop(){ void CONN_Loop(){
static uint32_t charging_time_tick = 0;
static CONN_State_t last_connState = Unknown; static CONN_State_t last_connState = Unknown;
if(last_connState != CONN.connState){ if(last_connState != CONN.connState){
last_connState = CONN.connState; last_connState = CONN.connState;
CONN.connControl = CMD_NONE; CONN.connControl = CMD_NONE;
} }
if(PSU0.cont_fault){ if (FireAlarm_IsLatched()) {
CONN.chargingError = CONN_ERR_FIRE_ALARM;
} else if(PSU0.cont_fault){
CONN.chargingError = CONN_ERR_CONTACTOR; CONN.chargingError = CONN_ERR_CONTACTOR;
} else if(PSU0.psu_fault){ } else if(PSU0.psu_fault){
CONN.chargingError = CONN_ERR_PSU_FAULT; CONN.chargingError = CONN_ERR_PSU_FAULT;
@@ -34,6 +42,25 @@ void CONN_Loop(){
log_printf(LOG_WARN, "CONN0 Error: %d\n", (int)CONN.chargingError); log_printf(LOG_WARN, "CONN0 Error: %d\n", (int)CONN.chargingError);
} }
if (HAL_GetTick() - charging_time_tick >= 1000U) {
charging_time_tick += 1000U;
if (CONN.connState == Charging) {
CONN.ChargingTime++;
}
if (CONN.connState == Unplugged) {
CONN.ChargingTime = 0;
}
}
}
void CONN_GetElapsedForMonitoring(uint16_t *min, uint8_t *sec) {
uint32_t elapsed_sec = CONN.ChargingTime;
if (min != NULL) {
*min = (uint16_t)(elapsed_sec / 60U);
}
if (sec != NULL) {
*sec = (uint8_t)(elapsed_sec % 60U);
}
} }
void CONN_SetState(CONN_State_t state){ void CONN_SetState(CONN_State_t state){
+1 -1
View File
@@ -105,7 +105,7 @@ void debug_buffer_send(void)
__enable_irq(); __enable_irq();
} }
#define LOG_BUFFER_SIZE 128 #define LOG_BUFFER_SIZE 256
uint8_t log_buffer[LOG_BUFFER_SIZE]; uint8_t log_buffer[LOG_BUFFER_SIZE];
// Кастомный printf с приоритетом лога // Кастомный printf с приоритетом лога
+20
View File
@@ -0,0 +1,20 @@
#include "fire_alarm.h"
#include "charger_control.h"
#include "debug.h"
#include "serial.h"
static uint8_t fire_alarm_latched = 0;
uint8_t FireAlarm_IsLatched(void) {
return fire_alarm_latched;
}
void FireAlarm_Activate(void) {
if (fire_alarm_latched) {
return;
}
fire_alarm_latched = 1;
log_printf(LOG_ERR, "FIRE ALARM activated\n");
}
+5 -5
View File
@@ -54,15 +54,15 @@ void MX_GPIO_Init(void)
/*Configure GPIO pin Output Level */ /*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOD, RELAY_DC_Pin|USART2_DIR_Pin, GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOD, RELAY_DC_Pin|USART2_DIR_Pin, GPIO_PIN_RESET);
/*Configure GPIO pin : DBG1_Pin */ /*Configure GPIO pins : DBG1_Pin LED_DATA_Pin */
GPIO_InitStruct.Pin = DBG1_Pin; GPIO_InitStruct.Pin = DBG1_Pin|LED_DATA_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
HAL_GPIO_Init(DBG1_GPIO_Port, &GPIO_InitStruct); HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
/*Configure GPIO pins : RELAY_CP_Pin LOCK_A_Pin LOCK_B_Pin LED_DATA_Pin */ /*Configure GPIO pins : RELAY_CP_Pin LOCK_A_Pin LOCK_B_Pin */
GPIO_InitStruct.Pin = RELAY_CP_Pin|LOCK_A_Pin|LOCK_B_Pin|LED_DATA_Pin; GPIO_InitStruct.Pin = RELAY_CP_Pin|LOCK_A_Pin|LOCK_B_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+12 -3
View File
@@ -214,8 +214,16 @@ int main(void)
SC_Init(); SC_Init();
log_printf(LOG_INFO, "CCS module start\n"); log_printf(LOG_INFO, "CCS module start\n");
ReadVersion(); ReadVersion();
CCS_UpdateMaxLoadFromInfoBlock();
log_printf(LOG_INFO, "Serial number: %d\n", infoPacket.serialNumber); log_printf(LOG_INFO, "Serial number: %d\n", infoPacket.serialNumber);
log_printf(LOG_INFO, "Board revision: %d\n", infoPacket.boardVersion); log_printf(LOG_INFO, "Board revision: %d\n", infoPacket.boardVersion);
log_printf(LOG_INFO, "Connector current limit: %u.%u A\n",
(unsigned)(Board_GetConnectorCurrentLimit_0p1A() / 10u),
(unsigned)(Board_GetConnectorCurrentLimit_0p1A() % 10u));
log_printf(LOG_INFO, "PSU type: %u (%u W / %u A)\n",
(unsigned)Board_GetPsuType(),
(unsigned)Board_GetPsuMaxPowerW(),
(unsigned)Board_GetPsuMaxCurrentA());
log_printf(LOG_INFO, "FW version: %d.%d.%d\n", infoPacket.fw_version_major, infoPacket.fw_version_minor, infoPacket.fw_version_patch); log_printf(LOG_INFO, "FW version: %d.%d.%d\n", infoPacket.fw_version_major, infoPacket.fw_version_minor, infoPacket.fw_version_patch);
CAN1_MinimalReInit(); CAN1_MinimalReInit();
PSU_Init(); PSU_Init();
@@ -257,11 +265,12 @@ void SystemClock_Config(void)
/** Initializes the RCC Oscillators according to the specified parameters /** Initializes the RCC Oscillators according to the specified parameters
* in the RCC_OscInitTypeDef structure. * in the RCC_OscInitTypeDef structure.
*/ */
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE|RCC_OSCILLATORTYPE_LSE; RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE|RCC_OSCILLATORTYPE_LSI|RCC_OSCILLATORTYPE_LSE;
RCC_OscInitStruct.HSEState = RCC_HSE_ON; RCC_OscInitStruct.HSEState = RCC_HSE_ON;
RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV5; RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV5;
RCC_OscInitStruct.LSEState = RCC_LSE_ON; RCC_OscInitStruct.LSEState = RCC_LSE_OFF;
RCC_OscInitStruct.HSIState = RCC_HSI_ON; RCC_OscInitStruct.HSIState = RCC_HSI_ON;
RCC_OscInitStruct.LSIState = RCC_LSI_ON;
RCC_OscInitStruct.Prediv1Source = RCC_PREDIV1_SOURCE_PLL2; RCC_OscInitStruct.Prediv1Source = RCC_PREDIV1_SOURCE_PLL2;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
@@ -288,7 +297,7 @@ void SystemClock_Config(void)
Error_Handler(); Error_Handler();
} }
PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_RTC|RCC_PERIPHCLK_ADC; PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_RTC|RCC_PERIPHCLK_ADC;
PeriphClkInit.RTCClockSelection = RCC_RTCCLKSOURCE_LSE; PeriphClkInit.RTCClockSelection = RCC_RTCCLKSOURCE_LSI;
PeriphClkInit.AdcClockSelection = RCC_ADCPCLK2_DIV6; PeriphClkInit.AdcClockSelection = RCC_ADCPCLK2_DIV6;
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
{ {
+11 -6
View File
@@ -20,17 +20,24 @@ void METER_CalculateEnergy() {
uint32_t currentTick = HAL_GetTick(); // Получаем текущее время в миллисекундах uint32_t currentTick = HAL_GetTick(); // Получаем текущее время в миллисекундах
uint32_t elapsedTimeMs = currentTick - METER.lastTick; // Вычисляем время, прошедшее с последнего вызова в секундах uint32_t elapsedTimeMs = currentTick - METER.lastTick; // Вычисляем время, прошедшее с последнего вызова в секундах
METER.lastTick = currentTick; // Обновляем время последнего вызова для текущего коннектора METER.lastTick = currentTick; // Обновляем время последнего вызова для текущего коннектора
uint32_t energyWs = CONN.Power * elapsedTimeMs / 1000; // Рассчитываем энергию в ватт-секундах за прошедший промежуток времени // uint64: Power*dt can exceed 2^32 at high power / long dt
uint64_t energyWs = ((uint64_t)CONN.Power * elapsedTimeMs) / 1000U;
//Расчет энергии теперь идет всегда, смещение берем суммарное //Расчет энергии теперь идет всегда, смещение берем суммарное
METER.EnergyPSU_Ws += energyWs; METER.EnergyPSU_Ws += energyWs;
// Абсолютное значение энергии разъема складывается из накопленной дробной части и значения со счетчиков // Divide in 64-bit first — casting Ws to uint32 before /3600 truncates ~1193 kWh
METER.AbsoluteEnergy = (uint32_t)METER.EnergyPSU_Ws/3600; //переводим в Вт*час METER.AbsoluteEnergy = (uint32_t)(METER.EnergyPSU_Ws / 3600U);
if(METER.enable) { if(METER.enable) {
//enabled state //enabled state
CONN.Energy = METER.AbsoluteEnergy - METER.EnergyOffset;//переводим в Вт*час if (METER.AbsoluteEnergy >= METER.EnergyOffset) {
CONN.Energy = METER.AbsoluteEnergy - METER.EnergyOffset;
} else {
// Guard unsigned underflow (e.g. after Absolute wrap anomaly)
CONN.Energy = 0;
METER.EnergyOffset = METER.AbsoluteEnergy;
}
}else{ }else{
// Reset statе // Reset statе
@@ -42,5 +49,3 @@ void METER_CalculateEnergy() {
} }
+200
View File
@@ -0,0 +1,200 @@
#include "power_setpoint_executor.h"
#include "board.h"
#include "charger_config.h"
#include "charger_control.h"
#include "debug.h"
#include "psu_control.h"
#include "serial.h"
static PowerSetpoint_t applied;
static PowerSetpoint_t pending;
static PowerSetpoint_t fd_target;
static uint8_t setpoint_dirty;
static uint8_t fd_active;
static uint8_t power_delivery_latched;
static uint8_t fast_discharge_count;
static uint32_t last_fast_discharge_ms;
static uint32_t measured_high_current_since_ms;
static uint8_t session_ended_state(CONN_State_t state)
{
return (state == Unknown) || (state == Unplugged) || (state == Finished) ||
(state == FinishedEV) || (state == FinishedEVSE);
}
void PowerSetpoint_Init(void)
{
applied.voltage_V = PSU_MIN_VOLTAGE;
applied.current_0p1A = 0u;
pending = applied;
fd_target = applied;
setpoint_dirty = 0u;
fd_active = 0u;
power_delivery_latched = 0u;
fast_discharge_count = 0u;
last_fast_discharge_ms = 0u;
measured_high_current_since_ms = 0u;
}
void PowerSetpoint_OnCommand(uint16_t voltage_V, uint16_t current_0p1A)
{
#if PSD_ENABLE
current_0p1A = Board_ClampCurrent_0p1A(current_0p1A);
pending.voltage_V = voltage_V;
pending.current_0p1A = current_0p1A;
setpoint_dirty = 1u;
#else
(void)voltage_V;
(void)current_0p1A;
#endif
}
void PowerSetpoint_UpdateDeliveryLatch(void)
{
#if PSD_ENABLE
uint32_t now = HAL_GetTick();
if (!CONN.EnableOutput || !CONN.EvConnected || session_ended_state(CCS_EvseState)) {
power_delivery_latched = 0u;
fast_discharge_count = 0u;
last_fast_discharge_ms = 0u;
measured_high_current_since_ms = 0u;
return;
}
if (CONN.WantedCurrent > PSD_MAX_CMD_CURRENT_0P1A) {
power_delivery_latched = 1u;
}
if (CCS_EvseState == Charging) {
power_delivery_latched = 1u;
}
if (CONN.MeasuredCurrent >= PSD_MAX_MEASURED_CURRENT_0P1A) {
if (measured_high_current_since_ms == 0u) {
measured_high_current_since_ms = now;
} else if ((now - measured_high_current_since_ms) >= PSD_MEASURED_LATCH_MS) {
power_delivery_latched = 1u;
}
} else {
measured_high_current_since_ms = 0u;
}
#endif
}
uint8_t PowerSetpoint_HasPending(void)
{
#if PSD_ENABLE
return setpoint_dirty;
#else
return 0u;
#endif
}
uint8_t PowerSetpoint_IsBusy(void)
{
#if PSD_ENABLE
if (!fd_active) {
return 0u;
}
switch (PSU0.state) {
case PSU_FAST_DISCHARGE_OFF:
case PSU_FAST_DISCHARGE_WAIT:
case PSU_FAST_DISCHARGE_SET:
case PSU_FAST_DISCHARGE_ON:
case PSU_FAST_DISCHARGE_ON_WAIT:
return 1u;
default:
return 0u;
}
#else
return 0u;
#endif
}
static PowerPathContext_t build_context(void)
{
PowerPathContext_t ctx;
ctx.dc_contactor_closed = PSU0.CONT_enabled;
ctx.psu_hv_enabled = PSU0.PSU_enabled;
ctx.measured_voltage_V = CONN.MeasuredVoltage;
ctx.measured_current_0p1A = (uint16_t)CONN.MeasuredCurrent;
ctx.power_delivery_active = power_delivery_latched;
ctx.enable_output = CONN.EnableOutput;
ctx.psu_state_connected = (PSU0.state == PSU_CONNECTED) ? 1u : 0u;
ctx.psu_cont_fault = PSU0.cont_fault;
ctx.psu_fault = PSU0.psu_fault;
ctx.fast_discharge_count = fast_discharge_count;
ctx.last_fast_discharge_ms = last_fast_discharge_ms;
ctx.now_ms = HAL_GetTick();
return ctx;
}
PowerSetpointTryResult_t PowerSetpoint_TryApply(void)
{
#if PSD_ENABLE
PowerPathContext_t ctx;
PowerSetpointAction_t action;
if (!setpoint_dirty || fd_active) {
return PSD_TRY_IDLE;
}
ctx = build_context();
action = PowerSetpoint_Decide(&applied, &pending, &ctx);
/* TonHe dumps HV→LV itself; LV→HV is a group stop/start in psu_control. */
if ((action == POWER_SETPOINT_FAST_DISCHARGE) &&
(PSU_GetType() != PSU_TYPE_TONHE_30KW)) {
fd_target = pending;
fd_active = 1u;
setpoint_dirty = 0u;
log_printf(LOG_INFO, "Fast discharge trigger %u->%u I=%u\n",
(unsigned)applied.voltage_V,
(unsigned)fd_target.voltage_V,
(unsigned)fd_target.current_0p1A);
return PSD_TRY_START_FAST_DISCHARGE;
}
if (!PSU0.ready) {
return PSD_TRY_IDLE;
}
PSU_SetVoltageCurrent(0, pending.voltage_V, pending.current_0p1A);
applied = pending;
setpoint_dirty = 0u;
return PSD_TRY_APPLIED_NORMAL;
#else
return PSD_TRY_IDLE;
#endif
}
void PowerSetpoint_GetFastDischargeTarget(PowerSetpoint_t *target)
{
if (target != 0) {
*target = fd_target;
}
}
void PowerSetpoint_OnFastDischargeComplete(void)
{
#if PSD_ENABLE
applied = fd_target;
fd_active = 0u;
fast_discharge_count++;
last_fast_discharge_ms = HAL_GetTick();
log_printf(LOG_INFO, "Fast discharge complete, V=%u\n", (unsigned)CONN.MeasuredVoltage);
#endif
}
void PowerSetpoint_OnFastDischargeAbort(void)
{
#if PSD_ENABLE
fd_active = 0u;
pending = fd_target;
setpoint_dirty = 1u;
log_printf(LOG_WARN, "Fast discharge aborted, V=%u\n", (unsigned)CONN.MeasuredVoltage);
#endif
}
+77
View File
@@ -0,0 +1,77 @@
#include "power_setpoint_policy.h"
PowerSetpointAction_t PowerSetpoint_Decide(
const PowerSetpoint_t *applied,
const PowerSetpoint_t *next,
const PowerPathContext_t *ctx)
{
#if !PSD_ENABLE
(void)applied;
(void)next;
(void)ctx;
return POWER_SETPOINT_NORMAL;
#else
uint16_t delta_v;
if (applied == 0 || next == 0 || ctx == 0) {
return POWER_SETPOINT_NORMAL;
}
if (next->voltage_V >= applied->voltage_V) {
return POWER_SETPOINT_NORMAL;
}
delta_v = (uint16_t)(applied->voltage_V - next->voltage_V);
if (delta_v < PSD_MIN_VOLTAGE_STEP_V) {
return POWER_SETPOINT_NORMAL;
}
if (applied->current_0p1A > PSD_MAX_CMD_CURRENT_0P1A ||
next->current_0p1A > PSD_MAX_CMD_CURRENT_0P1A) {
return POWER_SETPOINT_NORMAL;
}
if (ctx->measured_current_0p1A >= PSD_MAX_MEASURED_CURRENT_0P1A) {
return POWER_SETPOINT_NORMAL;
}
if (ctx->measured_voltage_V <= (uint16_t)(next->voltage_V + PSD_DISCHARGE_MARGIN_V)) {
return POWER_SETPOINT_NORMAL;
}
if (ctx->power_delivery_active) {
return POWER_SETPOINT_NORMAL;
}
if (!ctx->enable_output) {
return POWER_SETPOINT_NORMAL;
}
if (!ctx->psu_state_connected) {
return POWER_SETPOINT_NORMAL;
}
if (!ctx->dc_contactor_closed) {
return POWER_SETPOINT_NORMAL;
}
if (!ctx->psu_hv_enabled) {
return POWER_SETPOINT_NORMAL;
}
if (ctx->psu_cont_fault || ctx->psu_fault) {
return POWER_SETPOINT_NORMAL;
}
if (ctx->fast_discharge_count >= PSD_MAX_PER_SESSION) {
return POWER_SETPOINT_NORMAL;
}
if (ctx->last_fast_discharge_ms != 0u &&
(ctx->now_ms - ctx->last_fast_discharge_ms) < PSD_DEBOUNCE_MS) {
return POWER_SETPOINT_NORMAL;
}
return POWER_SETPOINT_FAST_DISCHARGE;
#endif
}
+1154 -43
View File
File diff suppressed because it is too large Load Diff
+354 -116
View File
@@ -6,19 +6,28 @@
#include "tim.h" #include "tim.h"
#include <string.h> #include <string.h>
/* Второй светодиод в цепочке WS2812 */
static RGB_t ws2812_led1 = { .R = 0, .G = 0, .B = 0 };
#define WS2812_ERROR_BLINK_MS 100
#define WS2812_ERROR_BLINK_PAUSE 30
/* Яркость обоих WS2812 на плате, 0..255 */
#define WS2812_BRIGHTNESS 60
RGB_State_t LED_State; RGB_State_t LED_State;
RGB_Cycle_t LED_Cycle; RGB_Cycle_t LED_Cycle;
RGB_Cycle_t color_estop = { static const RGB_Cycle_t color_estop = {
.Color1 = { .R = 250, .G = 0, .B = 0 }, .Color1 = { .R = 250, .G = 0, .B = 0 },
.Color2 = { .R = 0, .G = 0, .B = 0 }, .Color2 = { .R = 0, .G = 0, .B = 0 },
.Tr = 10, .Tr = 40,
.Th = 5, .Th = 10,
.Tf = 10, .Tf = 40,
.Tl = 5, .Tl = 10,
}; };
RGB_Cycle_t color_unlock = { static const RGB_Cycle_t color_unlock = {
.Color1 = { .R = 255, .G = 0, .B = 0 }, .Color1 = { .R = 255, .G = 0, .B = 0 },
.Color2 = { .R = 0, .G = 0, .B = 0 }, .Color2 = { .R = 0, .G = 0, .B = 0 },
.Tr = 10, .Tr = 10,
@@ -27,139 +36,220 @@ RGB_Cycle_t color_unlock = {
.Tl = 10, .Tl = 10,
}; };
RGB_Cycle_t color_unknown = { /* Same init shimmer as AC22/tkzu22: hue=85, sat breathes 30↔250 (not fade-to-black). */
.Color1 = { .R = 64, .G = 0, .B = 0 }, static uint8_t lighting_init_active;
.Color2 = { .R = 64, .G = 0, .B = 0 },
.Tr = 50,
.Th = 10,
.Tf = 50,
.Tl = 0,
};
RGB_Cycle_t color_light = { static void LED_HsvToRgb(uint8_t hue, uint8_t sat, uint8_t val, RGB_t *out)
.Color1 = { .R = 0, .G = 255, .B = 0 }, {
.Color2 = { .R = 0, .G = 255, .B = 0 }, uint8_t region;
.Tr = 50, uint8_t remainder;
.Th = 10, uint8_t p;
.Tf = 50, uint8_t q;
.Tl = 0, uint8_t t;
};
RGB_Cycle_t color_disabled = { if (sat == 0U) {
.Color1 = { .R = 250, .G = 0, .B = 0 }, out->R = out->G = out->B = val;
.Color2 = { .R = 32, .G = 0, .B = 0 },
.Tr = 50,
.Th = 10,
.Tf = 50,
.Tl = 0,
};
RGB_Cycle_t color_unplugged = {
.Color1 = { .R = 0, .G = 128, .B = 0 },
.Color2 = { .R = 0, .G = 128, .B = 0 },
.Tr = 50,
.Th = 10,
.Tf = 50,
.Tl = 0,
};
RGB_Cycle_t color_preparing = {
.Color1 = { .R = 0, .G = 0, .B = 255 },
.Color2 = { .R = 0, .G = 0, .B = 0 },
.Tr = 10,
.Th = 10,
.Tf = 10,
.Tl = 10,
};
RGB_Cycle_t color_charging = {
.Color1 = { .R = 0, .G = 255, .B = 0 },
.Color2 = { .R = 0, .G = 32, .B = 0 },
.Tr = 50,
.Th = 10,
.Tf = 50,
.Tl = 0,
};
RGB_Cycle_t color_finished = {
.Color1 = { .R = 255, .G = 255, .B = 255 },
.Color2 = { .R = 255, .G = 255, .B = 255 },
.Tr = 50,
.Th = 10,
.Tf = 50,
.Tl = 0,
};
RGB_Cycle_t color_error = {
.Color1 = { .R = 255, .G = 0, .B = 0 },
.Color2 = { .R = 32, .G = 0, .B = 0 },
.Tr = 50,
.Th = 10,
.Tf = 50,
.Tl = 0,
};
void LED_Write(){
if(CONN.chargingError != CONN_NO_ERROR){
LED_SetColor(&color_error);
return; return;
} }
if(CONN.connControl == CMD_FORCE_UNLOCK){ region = (uint8_t)(hue / 43U);
LED_SetColor(&color_unlock); remainder = (uint8_t)((hue - (uint8_t)(region * 43U)) * 6U);
return; p = (uint8_t)((val * (255U - sat)) >> 8);
q = (uint8_t)((val * (255U - ((sat * remainder) >> 8))) >> 8);
t = (uint8_t)((val * (255U - ((sat * (255U - remainder)) >> 8))) >> 8);
switch (region) {
case 0:
out->R = val;
out->G = t;
out->B = p;
break;
case 1:
out->R = q;
out->G = val;
out->B = p;
break;
case 2:
out->R = p;
out->G = val;
out->B = t;
break;
case 3:
out->R = p;
out->G = q;
out->B = val;
break;
case 4:
out->R = t;
out->G = p;
out->B = val;
break;
default:
out->R = val;
out->G = p;
out->B = q;
break;
} }
if(CONN.connControl == CMD_STOP){ }
/** AC22-compatible init «перелив»: fixed green hue, saturation pulse. */
static void LED_RenderInitShimmer(void)
{
static uint8_t sat = 250U;
static uint8_t rising = 0U;
const uint8_t hue = 85U;
const uint8_t val = 245U;
if (sat >= 250U) {
rising = 0U;
}
if (sat <= 30U) {
rising = 1U;
}
if (rising) {
sat = (sat <= 246U) ? (uint8_t)(sat + 4U) : 250U;
} else {
sat = (sat >= 34U) ? (uint8_t)(sat - 4U) : 30U;
}
LED_HsvToRgb(hue, sat, val, &LED_State.color);
}
static LightingConfigPacket_t committed_lighting = {
.mode = 0,
.roles = {
{ 0, 128, 0, 100, 0, 40, 0 },
{ 0, 0, 255, 100, 1, 55, 100 },
{ 0, 255, 0, 100, 1, 40, 87 },
{ 255, 255, 255, 100, 0, 40, 0 },
{ 255, 0, 0, 100, 1, 50, 87 },
},
};
static LightingConfigPacket_t preview_lighting;
static uint32_t preview_expires_at;
static uint8_t preview_active;
static RGB_Cycle_t LED_CycleFromRole(const LightingRolePacket_t *role)
{
const uint8_t fade_to_black = role->fadeTo >= 95;
RGB_Cycle_t cycle = {
.Color1 = {
.R = (uint8_t)((uint16_t)role->r * role->brightness / 100),
.G = (uint8_t)((uint16_t)role->g * role->brightness / 100),
.B = (uint8_t)((uint16_t)role->b * role->brightness / 100),
},
.Tr = (uint8_t)((100 - role->speed) < 5 ? 5 : (100 - role->speed)),
.Th = 10,
.Tf = (uint8_t)((100 - role->speed) < 5 ? 5 : (100 - role->speed)),
.Tl = fade_to_black ? 10 : 0,
};
if (role->effect == 0) {
cycle.Color2 = cycle.Color1;
} else {
cycle.Color2.R = (uint8_t)((uint16_t)cycle.Color1.R * (100 - role->fadeTo) / 100);
cycle.Color2.G = (uint8_t)((uint16_t)cycle.Color1.G * (100 - role->fadeTo) / 100);
cycle.Color2.B = (uint8_t)((uint16_t)cycle.Color1.B * (100 - role->fadeTo) / 100);
}
return cycle;
}
static uint8_t LED_IsLightingConfigValid(const LightingConfigPacket_t *config)
{
if (config == NULL || config->mode > 1 || (config->flags & 0xFE) != 0 ||
config->reserved != 0 || ((config->flags & 0x01) && config->previewSec == 0) ||
(!(config->flags & 0x01) && config->previewSec != 0)) {
return 0;
}
for (uint8_t i = 0; i < 5; i++) {
const LightingRolePacket_t *role = &config->roles[i];
if (role->brightness > 100 || role->effect > 1 || role->speed > 100 || role->fadeTo > 100) {
return 0;
}
}
return 1;
}
uint8_t LED_ApplyLightingConfig(const LightingConfigPacket_t *config)
{
if (!LED_IsLightingConfigValid(config)) {
return 0;
}
if (config->flags & 0x01) {
memcpy(&preview_lighting, config, sizeof(preview_lighting));
preview_active = 1;
preview_expires_at = HAL_GetTick() + ((uint32_t)config->previewSec * 1000U);
} else {
memcpy(&committed_lighting, config, sizeof(committed_lighting));
preview_active = 0;
}
return 1;
}
void LED_Write(void)
{
const LightingConfigPacket_t *lighting = &committed_lighting;
RGB_Cycle_t cycle;
lighting_init_active = 0;
if (CONN.connControl == CMD_STOP) {
LED_SetColor(&color_estop); LED_SetColor(&color_estop);
return; return;
} }
switch(CONN.connState){ if (CONN.chargingError != CONN_NO_ERROR || CONN.connState == Disabled) {
case Unknown: cycle = LED_CycleFromRole(&lighting->roles[4]);
LED_SetColor(&color_unknown); LED_SetColor(&cycle);
break; return;
}
if (preview_active && (int32_t)(HAL_GetTick() - preview_expires_at) >= 0) {
preview_active = 0;
}
if (preview_active) {
lighting = &preview_lighting;
}
if (lighting->mode == 1) {
RGB_Cycle_t off = { 0 };
LED_SetColor(&off);
return;
}
if (CONN.connControl == CMD_FORCE_UNLOCK) {
LED_SetColor(&color_unlock);
return;
}
if (CONN.connState == Unknown) {
lighting_init_active = 1;
return;
}
switch (CONN.connState) {
case Unplugged: case Unplugged:
LED_SetColor(&color_unplugged); cycle = LED_CycleFromRole(&lighting->roles[0]);
break;
case Disabled:
LED_SetColor(&color_error);
break; break;
case Preparing: case Preparing:
LED_SetColor(&color_preparing);
break;
case AuthRequired: case AuthRequired:
LED_SetColor(&color_preparing); case Replugging:
cycle = LED_CycleFromRole(&lighting->roles[1]);
break; break;
case WaitingForEnergy: case WaitingForEnergy:
LED_SetColor(&color_charging);
break;
case ChargingPausedEV: case ChargingPausedEV:
LED_SetColor(&color_charging);
break;
case ChargingPausedEVSE: case ChargingPausedEVSE:
LED_SetColor(&color_charging);
break;
case Charging: case Charging:
LED_SetColor(&color_charging); cycle = LED_CycleFromRole(&lighting->roles[2]);
break; break;
case AuthTimeout: case AuthTimeout:
LED_SetColor(&color_finished);
break;
case Finished: case Finished:
LED_SetColor(&color_finished);
break;
case FinishedEVSE: case FinishedEVSE:
LED_SetColor(&color_finished);
break;
case FinishedEV: case FinishedEV:
LED_SetColor(&color_finished); cycle = LED_CycleFromRole(&lighting->roles[3]);
break;
case Replugging:
LED_SetColor(&color_preparing);
break; break;
default: default:
LED_SetColor(&color_unknown); lighting_init_active = 1;
break; return;
}
} }
LED_SetColor(&cycle);
}
void interpolateColors(RGB_t* color1, RGB_t* color2, uint16_t a, uint16_t b, RGB_t *result) { void interpolateColors(RGB_t* color1, RGB_t* color2, uint16_t a, uint16_t b, RGB_t *result) {
@@ -179,13 +269,150 @@ void interpolateColors(RGB_t* color1, RGB_t* color2, uint16_t a, uint16_t b, RGB
} }
#pragma GCC push_options
#pragma GCC optimize("O2")
#define WS2812_T0H_NOP 25
#define WS2812_T0L_NOP 52
#define WS2812_T1H_NOP 52
#define WS2812_T1L_NOP 25
#define _WS2812_DELAY_NOPS(n) __asm volatile(".rept " #n "\nnop\n.endr" ::: "memory")
#define WS2812_DELAY_NOPS(n) _WS2812_DELAY_NOPS(n)
static void ws2812_send_pixel(uint8_t r, uint8_t g, uint8_t b)
{
uint32_t tmp = ~(((uint32_t)g << 16) | ((uint32_t)r << 8) | (uint32_t)b);
for (int i = 0; i < 24; i++) {
LED_DATA_GPIO_Port->BSRR = LED_DATA_Pin;
if (tmp & (1U << 23)) {
WS2812_DELAY_NOPS(WS2812_T0H_NOP);
LED_DATA_GPIO_Port->BRR = LED_DATA_Pin;
WS2812_DELAY_NOPS(WS2812_T0L_NOP);
} else {
WS2812_DELAY_NOPS(WS2812_T1H_NOP);
LED_DATA_GPIO_Port->BRR = LED_DATA_Pin;
WS2812_DELAY_NOPS(WS2812_T1L_NOP);
}
tmp <<= 1;
}
}
static void ws2812_update(RGB_t *led0, RGB_t *led1)
{
uint32_t primask = __get_PRIMASK();
__disable_irq();
ws2812_send_pixel(led0->R, led0->G, led0->B);
ws2812_send_pixel(led1->R, led1->G, led1->B);
__set_PRIMASK(primask);
}
#pragma GCC pop_options
static RGB_t RGB_ScaleBrightness(const RGB_t *color)
{
RGB_t out = {
.R = (uint8_t)((uint16_t)color->R * WS2812_BRIGHTNESS / 255),
.G = (uint8_t)((uint16_t)color->G * WS2812_BRIGHTNESS / 255),
.B = (uint8_t)((uint16_t)color->B * WS2812_BRIGHTNESS / 255),
};
return out;
}
/*
* Моргание красным на втором WS2812 при chargingError > 0.
* Логика как Slave-LB24 LED_Task: N вспышек = код ошибки, пауза 30×100 ms.
* Вызывается из LED_Task каждые 20 ms; шаг FSM — 100 ms.
*/
static void LED_Ws2812ErrorBlinkUpdate(void)
{
static uint8_t err_counter;
static uint8_t led_state;
static uint8_t led_pause;
static uint32_t blink_tick;
static uint32_t flash_until;
static CONN_Error_t last_error = CONN_NO_ERROR;
const CONN_Error_t err = CONN.chargingError;
const uint32_t now = HAL_GetTick();
if (err == CONN_NO_ERROR) {
err_counter = 0;
led_state = 0;
led_pause = 0;
flash_until = 0;
last_error = CONN_NO_ERROR;
ws2812_led1.R = 0;
ws2812_led1.G = 0;
ws2812_led1.B = 0;
return;
}
if (err != last_error) {
err_counter = 0;
led_state = 0;
led_pause = 0;
flash_until = 0;
last_error = err;
}
if (now < flash_until) {
ws2812_led1.R = 255;
ws2812_led1.G = 0;
ws2812_led1.B = 0;
return;
}
ws2812_led1.R = 0;
ws2812_led1.G = 0;
ws2812_led1.B = 0;
if ((now - blink_tick) < WS2812_ERROR_BLINK_MS) {
return;
}
blink_tick = now;
uint8_t led_flash = 0;
if (led_pause > 0) {
led_pause--;
} else if (err_counter < (uint8_t)err) {
if (led_state == 0) {
led_state = 1;
} else {
led_flash = 1;
led_state = 0;
err_counter++;
}
} else {
err_counter = 0;
led_pause = WS2812_ERROR_BLINK_PAUSE;
}
if (led_flash) {
flash_until = now + WS2812_ERROR_BLINK_MS;
ws2812_led1.R = 255;
ws2812_led1.G = 0;
ws2812_led1.B = 0;
}
}
void RGB_SetColor(RGB_t *color){ void RGB_SetColor(RGB_t *color){
htim4.Instance->CCR2 = color->R * 100 / 255; htim4.Instance->CCR2 = color->R * 100 / 255;
htim4.Instance->CCR3 = color->G * 100 / 255; htim4.Instance->CCR3 = color->G * 100 / 255;
htim4.Instance->CCR4 = color->B * 100 / 255; htim4.Instance->CCR4 = color->B * 100 / 255;
} }
void LED_SetColor(RGB_Cycle_t *color){ void WS2812_SetColor(RGB_t *color){
RGB_t led0 = RGB_ScaleBrightness(color);
RGB_t led1 = RGB_ScaleBrightness(&ws2812_led1);
ws2812_update(&led0, &led1);
}
void LED_SetColor(const RGB_Cycle_t *color){
memcpy(&LED_Cycle, color, sizeof(RGB_Cycle_t)); memcpy(&LED_Cycle, color, sizeof(RGB_Cycle_t));
} }
@@ -196,12 +423,22 @@ void LED_Init(){
HAL_TIM_PWM_Start(&htim4, TIM_CHANNEL_3); HAL_TIM_PWM_Start(&htim4, TIM_CHANNEL_3);
HAL_TIM_PWM_Start(&htim4, TIM_CHANNEL_4); HAL_TIM_PWM_Start(&htim4, TIM_CHANNEL_4);
RGB_SetColor(&color); RGB_SetColor(&color);
WS2812_SetColor(&color);
} }
void LED_Task(){ void LED_Task(){
static uint32_t led_tick; static uint32_t led_tick;
if((HAL_GetTick() - led_tick) > 20){ if((HAL_GetTick() - led_tick) > 20){
led_tick = HAL_GetTick(); led_tick = HAL_GetTick();
LED_Ws2812ErrorBlinkUpdate();
if (lighting_init_active) {
LED_RenderInitShimmer();
RGB_SetColor(&LED_State.color);
WS2812_SetColor(&LED_State.color);
return;
}
LED_State.tick++; LED_State.tick++;
switch(LED_State.state){ switch(LED_State.state){
case LED_RISING: case LED_RISING:
@@ -240,5 +477,6 @@ void LED_Task(){
LED_State.state = LED_RISING; LED_State.state = LED_RISING;
} }
RGB_SetColor(&LED_State.color); RGB_SetColor(&LED_State.color);
WS2812_SetColor(&LED_State.color);
} }
} }
+30 -13
View File
@@ -7,6 +7,7 @@
#include "debug.h" #include "debug.h"
#include "isr_opt.h" #include "isr_opt.h"
#include "psu_control.h" #include "psu_control.h"
#include "power_setpoint_executor.h"
#include "serial_control.h" #include "serial_control.h"
#include <stdint.h> #include <stdint.h>
#include <string.h> #include <string.h>
@@ -46,7 +47,6 @@ static uint8_t enabled = 0;
static uint8_t pwm_duty_percent = 100; static uint8_t pwm_duty_percent = 100;
uint8_t isolation_enable = 0; uint8_t isolation_enable = 0;
static uint32_t last_host_seen = 0; static uint32_t last_host_seen = 0;
static uint8_t fake_500_voltage_mode = 0;
static uint8_t everest_timed_out = 0; static uint8_t everest_timed_out = 0;
static uint8_t everest_timeout_warn_latched = 0; static uint8_t everest_timeout_warn_latched = 0;
static uint8_t everest_timeout_stop_latched = 0; static uint8_t everest_timeout_stop_latched = 0;
@@ -330,6 +330,10 @@ void CCS_SerialLoop(void) {
} }
// 10s timeout: enforce safe-state until host communication recovers. // 10s timeout: enforce safe-state until host communication recovers.
{
static uint8_t prev_enable_output = 0xFFu;
uint8_t new_enable_output;
if (host_timeout_stop) { if (host_timeout_stop) {
CONN.EnableOutput = 0; CONN.EnableOutput = 0;
CCS_EvseState = Unknown; CCS_EvseState = Unknown;
@@ -337,6 +341,7 @@ void CCS_SerialLoop(void) {
if (CCS_ConnectorState != CCS_DISABLED && CCS_ConnectorState != CCS_UNKNOWN) { if (CCS_ConnectorState != CCS_DISABLED && CCS_ConnectorState != CCS_UNKNOWN) {
CCS_ConnectorState = CCS_DISABLED; CCS_ConnectorState = CCS_DISABLED;
} }
new_enable_output = 0u;
} else { } else {
if (last_cmd == CMD_STOP) { if (last_cmd == CMD_STOP) {
CONN.EnableOutput = 0; CONN.EnableOutput = 0;
@@ -346,6 +351,20 @@ void CCS_SerialLoop(void) {
CONN.EnableOutput = 0; CONN.EnableOutput = 0;
} }
} }
new_enable_output = CONN.EnableOutput;
}
if (prev_enable_output != 0xFFu && prev_enable_output != new_enable_output) {
log_printf(LOG_INFO,
"EnableOutput %u->%u ev=%u stop=%u host_to=%u err=%u\n",
(unsigned)prev_enable_output,
(unsigned)new_enable_output,
(unsigned)ev_enable_output,
(unsigned)(last_cmd == CMD_STOP),
(unsigned)host_timeout_stop,
(unsigned)CONN.chargingError);
}
prev_enable_output = new_enable_output;
} }
if ((cp_state_buffer == EV_STATE_B_CONN_PREP) || if ((cp_state_buffer == EV_STATE_B_CONN_PREP) ||
@@ -362,7 +381,7 @@ void CCS_Init(void){
CP_SetDuty(100); CP_SetDuty(100);
CCS_MaxLoad.maxVoltage = PSU_MAX_VOLTAGE; // 1000V CCS_MaxLoad.maxVoltage = PSU_MAX_VOLTAGE; // 1000V
CCS_MaxLoad.minVoltage = PSU_MIN_VOLTAGE; //150V CCS_MaxLoad.minVoltage = PSU_MIN_VOLTAGE; //150V
CCS_MaxLoad.maxCurrent = PSU_MAX_CURRENT*10; //100A CCS_MaxLoad.maxCurrent = Board_GetConnectorCurrentLimit_0p1A();
CCS_MaxLoad.minCurrent = PSU_MIN_CURRENT*10; //1A CCS_MaxLoad.minCurrent = PSU_MIN_CURRENT*10; //1A
CCS_MaxLoad.maxPower = PSU_MAX_POWER; //30000W CCS_MaxLoad.maxPower = PSU_MAX_POWER; //30000W
uart3_last_packet_tick = HAL_GetTick(); uart3_last_packet_tick = HAL_GetTick();
@@ -372,6 +391,12 @@ void CCS_Init(void){
log_printf(LOG_INFO, "CCS init\n"); log_printf(LOG_INFO, "CCS init\n");
} }
void CCS_UpdateMaxLoadFromInfoBlock(void)
{
CCS_MaxLoad.maxCurrent = Board_GetConnectorCurrentLimit_0p1A();
CCS_MaxLoad.maxPower = Board_GetPsuMaxPowerW();
}
ISR_FAST static uint16_t crc16_ibm(const uint8_t* data, uint16_t length) { ISR_FAST static uint16_t crc16_ibm(const uint8_t* data, uint16_t length) {
uint16_t crc = 0xFFFFu; uint16_t crc = 0xFFFFu;
for (uint16_t i = 0; i < length; i++) { for (uint16_t i = 0; i < length; i++) {
@@ -453,9 +478,6 @@ static void send_state(void) {
CCS_State.DutyCycle = CP_GetDuty(); CCS_State.DutyCycle = CP_GetDuty();
CCS_State.OutputEnabled = PSU0.CONT_enabled; CCS_State.OutputEnabled = PSU0.CONT_enabled;
CCS_State.MeasuredVoltage = (uint16_t)CONN.MeasuredVoltage; CCS_State.MeasuredVoltage = (uint16_t)CONN.MeasuredVoltage;
if (fake_500_voltage_mode) {
CCS_State.MeasuredVoltage = FAKE_EVREQ_VOLTAGE_V;
}
CCS_State.MeasuredCurrent = (uint16_t)CONN.MeasuredCurrent; CCS_State.MeasuredCurrent = (uint16_t)CONN.MeasuredCurrent;
CCS_State.Power = CCS_Power; CCS_State.Power = CCS_Power;
CCS_State.Energy = CCS_Energy; CCS_State.Energy = CCS_Energy;
@@ -533,15 +555,10 @@ ISR_FAST static void apply_command(uint8_t cmd, const uint8_t* payload, uint16_t
} }
case CMD_E2M_SET_OUTPUT_VOLTAGE: { case CMD_E2M_SET_OUTPUT_VOLTAGE: {
const e2m_set_output_t* p = (const e2m_set_output_t*)payload; const e2m_set_output_t* p = (const e2m_set_output_t*)payload;
if (p->voltage_V == FAKE_EVREQ_VOLTAGE_V) { const uint16_t clamped_current = Board_ClampCurrent_0p1A(p->current_0p1A);
fake_500_voltage_mode = 1u;
CONN.RequestedVoltage = FAKE_PSU_VOLTAGE_V;
CONN.WantedCurrent = FAKE_PSU_CURRENT_0P1A;
} else {
fake_500_voltage_mode = 0u;
CONN.RequestedVoltage = p->voltage_V; CONN.RequestedVoltage = p->voltage_V;
CONN.WantedCurrent = p->current_0p1A; CONN.WantedCurrent = clamped_current;
} PowerSetpoint_OnCommand(p->voltage_V, clamped_current);
break; break;
} }
case CMD_E2M_ISOLATION_CONTROL: { case CMD_E2M_ISOLATION_CONTROL: {
+2
View File
@@ -70,12 +70,14 @@ InfoPacket_t infoPacket = {
}; };
void ReadVersion(){ void ReadVersion(){
Board_SelectInfoBlockAddress();
infoPacket.serialNumber = InfoBlock->serialNumber; infoPacket.serialNumber = InfoBlock->serialNumber;
infoPacket.boardVersion = InfoBlock->boardVersion; infoPacket.boardVersion = InfoBlock->boardVersion;
infoPacket.stationType = InfoBlock->stationType; infoPacket.stationType = InfoBlock->stationType;
infoPacket.fw_version_major = FW_VERSION_MAJOR; infoPacket.fw_version_major = FW_VERSION_MAJOR;
infoPacket.fw_version_minor = FW_VERSION_MINOR; infoPacket.fw_version_minor = FW_VERSION_MINOR;
infoPacket.fw_version_patch = FW_VERSION_PATCH; infoPacket.fw_version_patch = FW_VERSION_PATCH;
Board_LoadInfoBlockLimits();
} }
// Внешняя функция обработки команд (определена в serial_handler.c) // Внешняя функция обработки команд (определена в serial_handler.c)
+29 -2
View File
@@ -3,7 +3,9 @@
#include "board.h" #include "board.h"
#include "charger_control.h" #include "charger_control.h"
#include "debug.h" #include "debug.h"
#include "fire_alarm.h"
#include "psu_control.h" #include "psu_control.h"
#include "rgb_controller.h"
#include "usart.h" #include "usart.h"
#include <string.h> #include <string.h>
@@ -57,6 +59,26 @@ void SC_CommandHandler(ReceivedCommand_t* cmd) {
} }
response_code = RESP_FAILED; response_code = RESP_FAILED;
break; break;
case CMD_SET_LIGHTING:
if (cmd->argument_length == sizeof(LightingConfigPacket_t) &&
LED_ApplyLightingConfig((const LightingConfigPacket_t *)cmd->argument)) {
response_code = RESP_SUCCESS;
break;
}
response_code = RESP_FAILED;
break;
case CMD_SET_AUX_RELAY:
if (cmd->argument_length == 1) {
uint8_t state = ((uint8_t*)cmd->argument)[0];
if (state <= 1) {
RELAY_Write(RELAY3, state);
log_printf(LOG_INFO, "AUX relay RELAY3: %u\n", state);
response_code = RESP_SUCCESS;
break;
}
}
response_code = RESP_FAILED;
break;
case CMD_SET_POWER_LIMIT: case CMD_SET_POWER_LIMIT:
if (cmd->argument_length == 1) { if (cmd->argument_length == 1) {
PSU0.power_limit = ((uint8_t*)cmd->argument)[0] * 1000; PSU0.power_limit = ((uint8_t*)cmd->argument)[0] * 1000;
@@ -86,6 +108,10 @@ void SC_CommandHandler(ReceivedCommand_t* cmd) {
// } // }
response_code = RESP_FAILED; response_code = RESP_FAILED;
break; break;
case CMD_FIRE_ALARM:
FireAlarm_Activate();
response_code = RESP_SUCCESS;
break;
case CMD_DEVICE_RESET: case CMD_DEVICE_RESET:
// 2. Отправляем SUCCESS (хост может успеть получить его перед ребутом) // 2. Отправляем SUCCESS (хост может успеть получить его перед ребутом)
SC_SendPacket(NULL, 0, RESP_SUCCESS); SC_SendPacket(NULL, 0, RESP_SUCCESS);
@@ -134,8 +160,9 @@ static void monitoring_data_callback(void) {
statusPacket.outputEnabled = CONN.outputEnabled; statusPacket.outputEnabled = CONN.outputEnabled;
statusPacket.chargingError = CONN.chargingError; statusPacket.chargingError = CONN.chargingError;
statusPacket.connState = CONN.connState; statusPacket.connState = CONN.connState;
statusPacket.chargingElapsedTimeMin = 0; CONN_GetElapsedForMonitoring(
statusPacket.chargingElapsedTimeSec = 0; &statusPacket.chargingElapsedTimeMin,
&statusPacket.chargingElapsedTimeSec);
statusPacket.estimatedRemainingChargingTime = 0; statusPacket.estimatedRemainingChargingTime = 0;
// состояние зарядной станции // состояние зарядной станции
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
+4686 -3753
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+4686 -3753
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
-5
View File
@@ -1,5 +0,0 @@
../Core/Src/adc.c:13:6:ADC_ScanStart 2
../Core/Src/adc.c:21:15:HAL_ADC_ConvCpltCallback 2
../Core/Src/adc.c:43:6:MX_ADC1_Init 8
../Core/Src/adc.c:130:6:HAL_ADC_MspInit 3
../Core/Src/adc.c:184:6:HAL_ADC_MspDeInit 2
-14
View File
@@ -1,14 +0,0 @@
../Core/Src/board.c:14:6:RELAY_Write 9
../Core/Src/board.c:47:9:RELAY_Read 1
../Core/Src/board.c:52:9:IN_ReadInput 8
../Core/Src/board.c:74:9:GetBoardTemp 1
../Core/Src/board.c:82:13:Heater_PinForceOutput 1
../Core/Src/board.c:95:6:Init_Peripheral 1
../Core/Src/board.c:114:7:pt1000_to_temperature 1
../Core/Src/board.c:125:7:calculate_NTC_resistance 2
../Core/Src/board.c:140:9:CONN_ReadTemp 4
../Core/Src/board.c:159:9:GBT_ReadTemp 1
../Core/Src/board.c:163:6:ADC_Select_Channel 2
../Core/Src/board.c:174:9:ADC_TryLock 4
../Core/Src/board.c:190:6:ADC_LockBlocking 2
../Core/Src/board.c:196:6:ADC_Unlock 2
-4
View File
@@ -1,4 +0,0 @@
../Core/Src/can.c:15:6:MX_CAN1_Init 2
../Core/Src/can.c:47:6:MX_CAN2_Init 2
../Core/Src/can.c:81:6:HAL_CAN_MspInit 5
../Core/Src/can.c:160:6:HAL_CAN_MspDeInit 5
-3
View File
@@ -1,3 +0,0 @@
../Core/Src/charger_control.c:10:6:CONN_Init 1
../Core/Src/charger_control.c:18:6:CONN_Loop 6
../Core/Src/charger_control.c:39:6:CONN_SetState 16
-2
View File
@@ -1,2 +0,0 @@
../Core/Src/connector.c:12:6:CONN_Task 5
../Core/Src/connector.c:28:6:CONN_SetState 16
-9
View File
@@ -1,9 +0,0 @@
../Core/Src/cp.c:20:16:CP_ReadVoltageMv 1
../Core/Src/cp.c:37:6:CP_Init 1
../Core/Src/cp.c:54:6:CP_SetDuty 1
../Core/Src/cp.c:67:9:CP_GetDuty 1
../Core/Src/cp.c:71:9:CP_GetVoltage 1
../Core/Src/cp.c:76:12:CP_GetState 12
../Core/Src/cp.c:100:12:CP_GetFilteredState 1
../Core/Src/cp.c:104:6:CP_FilterState 5
../Core/Src/cp.c:132:6:CP_Loop 5
-3
View File
@@ -1,3 +0,0 @@
../Core/Src/crc.c:14:6:MX_CRC_Init 2
../Core/Src/crc.c:35:6:HAL_CRC_MspInit 2
../Core/Src/crc.c:51:6:HAL_CRC_MspDeInit 2
-5
View File
@@ -1,5 +0,0 @@
../Core/Src/debug.c:35:5:_write 1
../Core/Src/debug.c:43:6:debug_buffer_add 3
../Core/Src/debug.c:63:10:debug_buffer_available 1
../Core/Src/debug.c:72:6:debug_buffer_send 5
../Core/Src/debug.c:112:5:log_printf 3
-1
View File
@@ -1 +0,0 @@
../Core/Src/dma.c:23:6:MX_DMA_Init 1
-3
View File
@@ -1,3 +0,0 @@
../Core/Src/gbt_control.c:10:6:GBT_SetConfig 1
../Core/Src/gbt_control.c:24:6:GBT_ControlRead 1
../Core/Src/gbt_control.c:33:6:GBT_ControlWrite 2
-1
View File
@@ -1 +0,0 @@
../Core/Src/gpio.c:28:6:MX_GPIO_Init 1
-9
View File
@@ -1,9 +0,0 @@
../Drivers/CMSIS/Include/core_cm3.h:1762:34:__NVIC_SystemReset 1
../Core/Src/main.c:69:13:VectorBase_Config 1
../Core/Src/main.c:80:9:ED_TraceWarning 3
../Core/Src/main.c:92:6:ED_Delay 3
../Core/Src/main.c:111:13:StopButtonControl 8
../Core/Src/main.c:152:13:CAN1_MinimalReInit 3
../Core/Src/main.c:170:5:main 1
../Core/Src/main.c:251:6:SystemClock_Config 4
../Core/Src/main.c:311:6:Error_Handler 1
-1
View File
@@ -1 +0,0 @@
../Core/Src/meter.c:9:6:METER_CalculateEnergy 3
-11
View File
@@ -1,11 +0,0 @@
../Core/Src/psu_control.c:35:13:PSU_SwitchState 1
../Core/Src/psu_control.c:40:17:PSU_StateTime 1
../Core/Src/psu_control.c:44:15:HAL_CAN_RxFifo1MsgPendingCallback 9
../Core/Src/psu_control.c:118:6:PSU_CAN_FilterInit 2
../Core/Src/psu_control.c:141:6:PSU_Init 1
../Core/Src/psu_control.c:159:6:PSU_Enable 3
../Core/Src/psu_control.c:171:6:PSU_SetHVMode 2
../Core/Src/psu_control.c:178:6:PSU_SetVoltageCurrent 5
../Core/Src/psu_control.c:205:6:PSU_SendCmd 4
../Core/Src/psu_control.c:240:6:PSU_ReadWrite 8
../Core/Src/psu_control.c:284:6:PSU_Task 41
-6
View File
@@ -1,6 +0,0 @@
../Core/Src/rgb_controller.c:102:6:LED_Write 18
../Core/Src/rgb_controller.c:164:6:interpolateColors 3
../Core/Src/rgb_controller.c:182:6:RGB_SetColor 1
../Core/Src/rgb_controller.c:188:6:LED_SetColor 1
../Core/Src/rgb_controller.c:193:6:LED_Init 1
../Core/Src/rgb_controller.c:201:6:LED_Task 10
-3
View File
@@ -1,3 +0,0 @@
../Core/Src/rtc.c:14:6:MX_RTC_Init 2
../Core/Src/rtc.c:40:6:HAL_RTC_MspInit 2
../Core/Src/rtc.c:59:6:HAL_RTC_MspDeInit 2
-20
View File
@@ -1,20 +0,0 @@
../Core/Src/serial.c:65:22:uart3_log_hal_error 3
../Core/Src/serial.c:85:22:uart3_arm_rx_or_log 3
../Core/Src/serial.c:101:15:CCS_RxEventCallback 4
../Core/Src/serial.c:124:15:HAL_UART_ErrorCallback 5
../Core/Src/serial.c:144:6:CCS_TxCpltCallback 4
../Core/Src/serial.c:160:6:CCS_SerialLoop 62
../Core/Src/serial.c:360:6:CCS_Init 1
../Core/Src/serial.c:375:26:crc16_ibm 3
../Core/Src/serial.c:390:17:CCS_BuildPacket 4
../Core/Src/serial.c:406:13:CCS_SendPacket 4
../Core/Src/serial.c:423:13:CCS_SendResetReason 1
../Core/Src/serial.c:427:6:CCS_SendEmergencyStop 1
../Core/Src/serial.c:431:6:CCS_SendStart 1
../Core/Src/serial.c:435:13:CCS_CalculateEnergy 2
../Core/Src/serial.c:450:13:send_state 3
../Core/Src/serial.c:480:26:expected_payload_len 2
../Core/Src/serial.c:496:22:apply_command 15
../Core/Src/serial.c:578:25:process_received_packet 8
../Core/Src/serial.c:631:13:CCS_UART3_Watchdog 4
../Core/Src/serial.c:644:13:CCS_LogUart3Error 1
-15
View File
@@ -1,15 +0,0 @@
../Core/Src/serial_control.c:72:6:ReadVersion 1
../Core/Src/serial_control.c:84:6:SC_Init 1
../Core/Src/serial_control.c:95:6:SC_Task 7
../Core/Src/serial_control.c:123:15:HAL_UARTEx_RxEventCallback 8
../Core/Src/serial_control.c:153:15:HAL_UART_TxCpltCallback 3
../Core/Src/serial_control.c:164:26:calculate_crc32 3
../Core/Src/serial_control.c:181:26:encode_packet 5
../Core/Src/serial_control.c:214:15:SC_SendPacket 4
../Core/Src/serial_control.c:231:25:parse_packet 3
../Core/Src/serial_control.c:264:25:process_received_packet 2
../Core/Src/serial_control.c:273:13:SC_UART2_Watchdog 5
../Core/Src/serial_control.c:294:13:SC_ArmUart2RxDma 4
../Core/Src/serial_control.c:302:13:SC_ArmUart5RxDma 3
../Core/Src/serial_control.c:311:6:SC_RecoverUartDma 3
../Core/Src/serial_control.c:326:13:SC_LogUartError 3
-3
View File
@@ -1,3 +0,0 @@
../Drivers/CMSIS/Include/core_cm3.h:1762:34:__NVIC_SystemReset 1
../Core/Src/serial_handler.c:26:6:SC_CommandHandler 19
../Core/Src/serial_handler.c:125:13:monitoring_data_callback 1
-2
View File
@@ -1,2 +0,0 @@
../Core/Src/sma_filter.c:3:6:SMAFilter_Init 3
../Core/Src/sma_filter.c:16:9:SMAFilter_Update 6
-10
View File
@@ -1,10 +0,0 @@
../Core/Src/soft_rtc.c:15:10:get_Current_Time 1
../Core/Src/soft_rtc.c:19:6:set_Time 1
../Core/Src/soft_rtc.c:23:9:to_bcd 1
../Core/Src/soft_rtc.c:27:6:unix_to_bcd 1
../Core/Src/soft_rtc.c:41:6:writeTimeReg 2
../Core/Src/soft_rtc.c:46:9:getTimeReg 5
../Core/Src/soft_rtc.c:67:17:RTC1_ReadTimeCounter 2
../Core/Src/soft_rtc.c:99:26:RTC1_WriteTimeCounter 3
../Core/Src/soft_rtc.c:131:26:RTC1_EnterInitMode 3
../Core/Src/soft_rtc.c:158:26:RTC1_ExitInitMode 3
-1
View File
@@ -1 +0,0 @@
../Core/Src/stm32f1xx_hal_msp.c:47:6:HAL_MspInit 1
-23
View File
@@ -1,23 +0,0 @@
../Core/Src/stm32f1xx_it.c:69:6:NMI_Handler 1
../Core/Src/stm32f1xx_it.c:84:6:HardFault_Handler 1
../Core/Src/stm32f1xx_it.c:99:6:MemManage_Handler 1
../Core/Src/stm32f1xx_it.c:114:6:BusFault_Handler 1
../Core/Src/stm32f1xx_it.c:129:6:UsageFault_Handler 1
../Core/Src/stm32f1xx_it.c:144:6:SVC_Handler 1
../Core/Src/stm32f1xx_it.c:157:6:DebugMon_Handler 1
../Core/Src/stm32f1xx_it.c:170:6:PendSV_Handler 1
../Core/Src/stm32f1xx_it.c:183:6:SysTick_Handler 1
../Core/Src/stm32f1xx_it.c:204:6:DMA1_Channel1_IRQHandler 1
../Core/Src/stm32f1xx_it.c:218:6:DMA1_Channel2_IRQHandler 1
../Core/Src/stm32f1xx_it.c:232:6:DMA1_Channel3_IRQHandler 1
../Core/Src/stm32f1xx_it.c:246:6:DMA1_Channel6_IRQHandler 1
../Core/Src/stm32f1xx_it.c:260:6:DMA1_Channel7_IRQHandler 1
../Core/Src/stm32f1xx_it.c:274:6:ADC1_2_IRQHandler 1
../Core/Src/stm32f1xx_it.c:288:6:CAN1_RX0_IRQHandler 1
../Core/Src/stm32f1xx_it.c:302:6:TIM3_IRQHandler 1
../Core/Src/stm32f1xx_it.c:316:6:USART1_IRQHandler 1
../Core/Src/stm32f1xx_it.c:330:6:USART2_IRQHandler 1
../Core/Src/stm32f1xx_it.c:344:6:USART3_IRQHandler 1
../Core/Src/stm32f1xx_it.c:358:6:UART5_IRQHandler 1
../Core/Src/stm32f1xx_it.c:372:6:CAN2_TX_IRQHandler 1
../Core/Src/stm32f1xx_it.c:386:6:CAN2_RX1_IRQHandler 1
-102
View File
@@ -1,102 +0,0 @@
################################################################################
# Automatically-generated file. Do not edit!
# Toolchain: GNU Tools for STM32 (13.3.rel1)
################################################################################
# Add inputs and outputs from these tool invocations to the build variables
C_SRCS += \
../Core/Src/adc.c \
../Core/Src/board.c \
../Core/Src/can.c \
../Core/Src/charger_control.c \
../Core/Src/cp.c \
../Core/Src/crc.c \
../Core/Src/debug.c \
../Core/Src/dma.c \
../Core/Src/gpio.c \
../Core/Src/main.c \
../Core/Src/meter.c \
../Core/Src/psu_control.c \
../Core/Src/rgb_controller.c \
../Core/Src/rtc.c \
../Core/Src/serial.c \
../Core/Src/serial_control.c \
../Core/Src/serial_handler.c \
../Core/Src/sma_filter.c \
../Core/Src/soft_rtc.c \
../Core/Src/stm32f1xx_hal_msp.c \
../Core/Src/stm32f1xx_it.c \
../Core/Src/syscalls.c \
../Core/Src/sysmem.c \
../Core/Src/system_stm32f1xx.c \
../Core/Src/tim.c \
../Core/Src/usart.c
C_DEPS += \
./Core/Src/adc.d \
./Core/Src/board.d \
./Core/Src/can.d \
./Core/Src/charger_control.d \
./Core/Src/cp.d \
./Core/Src/crc.d \
./Core/Src/debug.d \
./Core/Src/dma.d \
./Core/Src/gpio.d \
./Core/Src/main.d \
./Core/Src/meter.d \
./Core/Src/psu_control.d \
./Core/Src/rgb_controller.d \
./Core/Src/rtc.d \
./Core/Src/serial.d \
./Core/Src/serial_control.d \
./Core/Src/serial_handler.d \
./Core/Src/sma_filter.d \
./Core/Src/soft_rtc.d \
./Core/Src/stm32f1xx_hal_msp.d \
./Core/Src/stm32f1xx_it.d \
./Core/Src/syscalls.d \
./Core/Src/sysmem.d \
./Core/Src/system_stm32f1xx.d \
./Core/Src/tim.d \
./Core/Src/usart.d
OBJS += \
./Core/Src/adc.o \
./Core/Src/board.o \
./Core/Src/can.o \
./Core/Src/charger_control.o \
./Core/Src/cp.o \
./Core/Src/crc.o \
./Core/Src/debug.o \
./Core/Src/dma.o \
./Core/Src/gpio.o \
./Core/Src/main.o \
./Core/Src/meter.o \
./Core/Src/psu_control.o \
./Core/Src/rgb_controller.o \
./Core/Src/rtc.o \
./Core/Src/serial.o \
./Core/Src/serial_control.o \
./Core/Src/serial_handler.o \
./Core/Src/sma_filter.o \
./Core/Src/soft_rtc.o \
./Core/Src/stm32f1xx_hal_msp.o \
./Core/Src/stm32f1xx_it.o \
./Core/Src/syscalls.o \
./Core/Src/sysmem.o \
./Core/Src/system_stm32f1xx.o \
./Core/Src/tim.o \
./Core/Src/usart.o
# Each subdirectory must supply rules for building sources it contributes
Core/Src/%.o Core/Src/%.su Core/Src/%.cyclo: ../Core/Src/%.c Core/Src/subdir.mk
arm-none-eabi-gcc "$<" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F107xC -c -I../Core/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
clean: clean-Core-2f-Src
clean-Core-2f-Src:
-$(RM) ./Core/Src/adc.cyclo ./Core/Src/adc.d ./Core/Src/adc.o ./Core/Src/adc.su ./Core/Src/board.cyclo ./Core/Src/board.d ./Core/Src/board.o ./Core/Src/board.su ./Core/Src/can.cyclo ./Core/Src/can.d ./Core/Src/can.o ./Core/Src/can.su ./Core/Src/charger_control.cyclo ./Core/Src/charger_control.d ./Core/Src/charger_control.o ./Core/Src/charger_control.su ./Core/Src/cp.cyclo ./Core/Src/cp.d ./Core/Src/cp.o ./Core/Src/cp.su ./Core/Src/crc.cyclo ./Core/Src/crc.d ./Core/Src/crc.o ./Core/Src/crc.su ./Core/Src/debug.cyclo ./Core/Src/debug.d ./Core/Src/debug.o ./Core/Src/debug.su ./Core/Src/dma.cyclo ./Core/Src/dma.d ./Core/Src/dma.o ./Core/Src/dma.su ./Core/Src/gpio.cyclo ./Core/Src/gpio.d ./Core/Src/gpio.o ./Core/Src/gpio.su ./Core/Src/main.cyclo ./Core/Src/main.d ./Core/Src/main.o ./Core/Src/main.su ./Core/Src/meter.cyclo ./Core/Src/meter.d ./Core/Src/meter.o ./Core/Src/meter.su ./Core/Src/psu_control.cyclo ./Core/Src/psu_control.d ./Core/Src/psu_control.o ./Core/Src/psu_control.su ./Core/Src/rgb_controller.cyclo ./Core/Src/rgb_controller.d ./Core/Src/rgb_controller.o ./Core/Src/rgb_controller.su ./Core/Src/rtc.cyclo ./Core/Src/rtc.d ./Core/Src/rtc.o ./Core/Src/rtc.su ./Core/Src/serial.cyclo ./Core/Src/serial.d ./Core/Src/serial.o ./Core/Src/serial.su ./Core/Src/serial_control.cyclo ./Core/Src/serial_control.d ./Core/Src/serial_control.o ./Core/Src/serial_control.su ./Core/Src/serial_handler.cyclo ./Core/Src/serial_handler.d ./Core/Src/serial_handler.o ./Core/Src/serial_handler.su ./Core/Src/sma_filter.cyclo ./Core/Src/sma_filter.d ./Core/Src/sma_filter.o ./Core/Src/sma_filter.su ./Core/Src/soft_rtc.cyclo ./Core/Src/soft_rtc.d ./Core/Src/soft_rtc.o ./Core/Src/soft_rtc.su ./Core/Src/stm32f1xx_hal_msp.cyclo ./Core/Src/stm32f1xx_hal_msp.d ./Core/Src/stm32f1xx_hal_msp.o ./Core/Src/stm32f1xx_hal_msp.su ./Core/Src/stm32f1xx_it.cyclo ./Core/Src/stm32f1xx_it.d ./Core/Src/stm32f1xx_it.o ./Core/Src/stm32f1xx_it.su ./Core/Src/syscalls.cyclo ./Core/Src/syscalls.d ./Core/Src/syscalls.o ./Core/Src/syscalls.su ./Core/Src/sysmem.cyclo ./Core/Src/sysmem.d ./Core/Src/sysmem.o ./Core/Src/sysmem.su ./Core/Src/system_stm32f1xx.cyclo ./Core/Src/system_stm32f1xx.d ./Core/Src/system_stm32f1xx.o ./Core/Src/system_stm32f1xx.su ./Core/Src/tim.cyclo ./Core/Src/tim.d ./Core/Src/tim.o ./Core/Src/tim.su ./Core/Src/usart.cyclo ./Core/Src/usart.d ./Core/Src/usart.o ./Core/Src/usart.su
.PHONY: clean-Core-2f-Src
-18
View File
@@ -1,18 +0,0 @@
../Core/Src/syscalls.c:44:6:initialise_monitor_handles 1
../Core/Src/syscalls.c:48:5:_getpid 1
../Core/Src/syscalls.c:53:5:_kill 1
../Core/Src/syscalls.c:61:6:_exit 1
../Core/Src/syscalls.c:67:27:_read 2
../Core/Src/syscalls.c:80:27:_write 2
../Core/Src/syscalls.c:92:5:_close 1
../Core/Src/syscalls.c:99:5:_fstat 1
../Core/Src/syscalls.c:106:5:_isatty 1
../Core/Src/syscalls.c:112:5:_lseek 1
../Core/Src/syscalls.c:120:5:_open 1
../Core/Src/syscalls.c:128:5:_wait 1
../Core/Src/syscalls.c:135:5:_unlink 1
../Core/Src/syscalls.c:142:5:_times 1
../Core/Src/syscalls.c:148:5:_stat 1
../Core/Src/syscalls.c:155:5:_link 1
../Core/Src/syscalls.c:163:5:_fork 1
../Core/Src/syscalls.c:169:5:_execve 1
-1
View File
@@ -1 +0,0 @@
../Core/Src/sysmem.c:53:7:_sbrk 3
-2
View File
@@ -1,2 +0,0 @@
../Core/Src/system_stm32f1xx.c:175:6:SystemInit 1
../Core/Src/system_stm32f1xx.c:224:6:SystemCoreClockUpdate 8
-5
View File
@@ -1,5 +0,0 @@
../Core/Src/tim.c:15:6:MX_TIM3_Init 8
../Core/Src/tim.c:79:6:MX_TIM4_Init 8
../Core/Src/tim.c:141:6:HAL_TIM_Base_MspInit 3
../Core/Src/tim.c:171:6:HAL_TIM_MspPostInit 3
../Core/Src/tim.c:219:6:HAL_TIM_Base_MspDeInit 3
-6
View File
@@ -1,6 +0,0 @@
../Core/Src/usart.c:21:6:MX_UART5_Init 2
../Core/Src/usart.c:50:6:MX_USART1_UART_Init 2
../Core/Src/usart.c:79:6:MX_USART2_UART_Init 2
../Core/Src/usart.c:108:6:MX_USART3_UART_Init 2
../Core/Src/usart.c:136:6:HAL_UART_MspInit 9
../Core/Src/usart.c:333:6:HAL_UART_MspDeInit 5
-27
View File
@@ -1,27 +0,0 @@
################################################################################
# Automatically-generated file. Do not edit!
# Toolchain: GNU Tools for STM32 (13.3.rel1)
################################################################################
# Add inputs and outputs from these tool invocations to the build variables
S_SRCS += \
../Core/Startup/startup_stm32f107vctx.s
S_DEPS += \
./Core/Startup/startup_stm32f107vctx.d
OBJS += \
./Core/Startup/startup_stm32f107vctx.o
# Each subdirectory must supply rules for building sources it contributes
Core/Startup/%.o: ../Core/Startup/%.s Core/Startup/subdir.mk
arm-none-eabi-gcc -mcpu=cortex-m3 -g3 -DDEBUG -c -I/Users/colorbass/STM32CubeIDE/workspace_1.12.0/lib_EDCAN -x assembler-with-cpp -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" "$<"
clean: clean-Core-2f-Startup
clean-Core-2f-Startup:
-$(RM) ./Core/Startup/startup_stm32f107vctx.d ./Core/Startup/startup_stm32f107vctx.o
.PHONY: clean-Core-2f-Startup
BIN
View File
Binary file not shown.
@@ -1,25 +0,0 @@
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:142:19:HAL_Init 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:175:19:HAL_DeInit 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:200:13:HAL_MspInit 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:211:13:HAL_MspDeInit 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:234:26:HAL_InitTick 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:293:13:HAL_IncTick 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:304:17:HAL_GetTick 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:313:10:HAL_GetTickPrio 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:322:19:HAL_SetTickFreq 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:355:21:HAL_GetTickFreq 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:371:13:HAL_Delay 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:397:13:HAL_SuspendTick 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:413:13:HAL_ResumeTick 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:423:10:HAL_GetHalVersion 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:439:10:HAL_GetREVID 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:455:10:HAL_GetDEVID 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:464:10:HAL_GetUIDw0 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:473:10:HAL_GetUIDw1 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:482:10:HAL_GetUIDw2 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:491:6:HAL_DBGMCU_EnableDBGSleepMode 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:507:6:HAL_DBGMCU_DisableDBGSleepMode 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:537:6:HAL_DBGMCU_EnableDBGStopMode 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:553:6:HAL_DBGMCU_DisableDBGStopMode 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:569:6:HAL_DBGMCU_EnableDBGStandbyMode 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:585:6:HAL_DBGMCU_DisableDBGStandbyMode 1
@@ -1,27 +0,0 @@
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.c:411:19:HAL_ADC_Init 12
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.c:629:19:HAL_ADC_DeInit 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.c:777:13:HAL_ADC_MspInit 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.c:791:13:HAL_ADC_MspDeInit 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.c:1036:19:HAL_ADC_Start 13
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.c:1149:19:HAL_ADC_Stop 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.c:1193:19:HAL_ADC_PollForConversion 25
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.c:1332:19:HAL_ADC_PollForEvent 6
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.c:1385:19:HAL_ADC_Start_IT 13
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.c:1496:19:HAL_ADC_Stop_IT 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.c:1553:19:HAL_ADC_Start_DMA 14
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.c:1694:19:HAL_ADC_Stop_DMA 5
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.c:1762:10:HAL_ADC_GetValue 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.c:1779:6:HAL_ADC_IRQHandler 17
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.c:1909:13:HAL_ADC_ConvCpltCallback 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.c:1923:13:HAL_ADC_ConvHalfCpltCallback 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.c:1937:13:HAL_ADC_LevelOutOfWindowCallback 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.c:1952:13:HAL_ADC_ErrorCallback 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.c:2000:19:HAL_ADC_ConfigChannel 11
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.c:2110:19:HAL_ADC_AnalogWDGConfig 4
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.c:2197:10:HAL_ADC_GetState 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.c:2208:10:HAL_ADC_GetError 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.c:2232:19:ADC_Enable 6
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.c:2291:19:ADC_ConversionStop_Disable 5
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.c:2333:6:ADC_DMAConvCplt 5
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.c:2380:6:ADC_DMAHalfConvCplt 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.c:2398:6:ADC_DMAError 1
@@ -1,13 +0,0 @@
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc_ex.c:119:19:HAL_ADCEx_Calibration_Start 10
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc_ex.c:229:19:HAL_ADCEx_InjectedStart 10
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc_ex.c:328:19:HAL_ADCEx_InjectedStop 5
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc_ex.c:381:19:HAL_ADCEx_InjectedPollForConversion 25
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc_ex.c:507:19:HAL_ADCEx_InjectedStart_IT 10
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc_ex.c:606:19:HAL_ADCEx_InjectedStop_IT 5
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc_ex.c:675:19:HAL_ADCEx_MultiModeStart_DMA 7
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc_ex.c:801:19:HAL_ADCEx_MultiModeStop_DMA 4
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc_ex.c:889:10:HAL_ADCEx_InjectedGetValue 5
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc_ex.c:926:10:HAL_ADCEx_MultiModeGetValue 2
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc_ex.c:958:13:HAL_ADCEx_InjectedConvCpltCallback 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc_ex.c:1000:19:HAL_ADCEx_InjectedConfigChannel 23
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc_ex.c:1261:19:HAL_ADCEx_MultiModeConfigChannel 5
@@ -1,36 +0,0 @@
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c:275:19:HAL_CAN_Init 13
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c:460:19:HAL_CAN_DeInit 2
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c:507:13:HAL_CAN_MspInit 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c:523:13:HAL_CAN_MspDeInit 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c:840:19:HAL_CAN_ConfigFilter 8
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c:1006:19:HAL_CAN_Start 4
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c:1058:19:HAL_CAN_Stop 4
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c:1113:19:HAL_CAN_RequestSleep 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c:1144:19:HAL_CAN_WakeUp 5
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c:1191:10:HAL_CAN_IsSleepActive 4
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c:1222:19:HAL_CAN_AddTxMessage 8
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c:1322:19:HAL_CAN_AbortTxRequest 6
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c:1371:10:HAL_CAN_GetTxMailboxesFreeLevel 6
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c:1414:10:HAL_CAN_IsTxMessagePending 4
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c:1446:10:HAL_CAN_GetTxTimestamp 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c:1480:19:HAL_CAN_GetRxMessage 9
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c:1580:10:HAL_CAN_GetRxFifoFillLevel 4
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c:1633:19:HAL_CAN_ActivateNotification 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c:1666:19:HAL_CAN_DeactivateNotification 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c:1697:6:HAL_CAN_IRQHandler 51
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c:2108:13:HAL_CAN_TxMailbox0CompleteCallback 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c:2125:13:HAL_CAN_TxMailbox1CompleteCallback 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c:2142:13:HAL_CAN_TxMailbox2CompleteCallback 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c:2159:13:HAL_CAN_TxMailbox0AbortCallback 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c:2176:13:HAL_CAN_TxMailbox1AbortCallback 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c:2193:13:HAL_CAN_TxMailbox2AbortCallback 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c:2210:13:HAL_CAN_RxFifo0MsgPendingCallback 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c:2227:13:HAL_CAN_RxFifo0FullCallback 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c:2244:13:HAL_CAN_RxFifo1MsgPendingCallback 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c:2261:13:HAL_CAN_RxFifo1FullCallback 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c:2278:13:HAL_CAN_SleepCallback 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c:2294:13:HAL_CAN_WakeUpFromRxMsgCallback 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c:2311:13:HAL_CAN_ErrorCallback 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c:2348:22:HAL_CAN_GetState 5
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c:2383:10:HAL_CAN_GetError 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c:2395:19:HAL_CAN_ResetError 3
@@ -1,29 +0,0 @@
../Drivers/CMSIS/Include/core_cm3.h:1480:22:__NVIC_SetPriorityGrouping 1
../Drivers/CMSIS/Include/core_cm3.h:1499:26:__NVIC_GetPriorityGrouping 1
../Drivers/CMSIS/Include/core_cm3.h:1511:22:__NVIC_EnableIRQ 2
../Drivers/CMSIS/Include/core_cm3.h:1547:22:__NVIC_DisableIRQ 2
../Drivers/CMSIS/Include/core_cm3.h:1566:26:__NVIC_GetPendingIRQ 2
../Drivers/CMSIS/Include/core_cm3.h:1585:22:__NVIC_SetPendingIRQ 2
../Drivers/CMSIS/Include/core_cm3.h:1600:22:__NVIC_ClearPendingIRQ 2
../Drivers/CMSIS/Include/core_cm3.h:1617:26:__NVIC_GetActive 2
../Drivers/CMSIS/Include/core_cm3.h:1639:22:__NVIC_SetPriority 2
../Drivers/CMSIS/Include/core_cm3.h:1661:26:__NVIC_GetPriority 2
../Drivers/CMSIS/Include/core_cm3.h:1686:26:NVIC_EncodePriority 2
../Drivers/CMSIS/Include/core_cm3.h:1713:22:NVIC_DecodePriority 2
../Drivers/CMSIS/Include/core_cm3.h:1762:34:__NVIC_SystemReset 1
../Drivers/CMSIS/Include/core_cm3.h:1834:26:SysTick_Config 2
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c:142:6:HAL_NVIC_SetPriorityGrouping 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c:164:6:HAL_NVIC_SetPriority 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c:186:6:HAL_NVIC_EnableIRQ 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c:202:6:HAL_NVIC_DisableIRQ 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c:215:6:HAL_NVIC_SystemReset 0
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c:228:10:HAL_SYSTICK_Config 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c:369:10:HAL_NVIC_GetPriorityGrouping 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c:396:6:HAL_NVIC_GetPriority 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c:411:6:HAL_NVIC_SetPendingIRQ 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c:429:10:HAL_NVIC_GetPendingIRQ 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c:445:6:HAL_NVIC_ClearPendingIRQ 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c:462:10:HAL_NVIC_GetActive 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c:479:6:HAL_SYSTICK_CLKSourceConfig 2
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c:497:6:HAL_SYSTICK_IRQHandler 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c:506:13:HAL_SYSTICK_Callback 1
@@ -1,7 +0,0 @@
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_crc.c:95:19:HAL_CRC_Init 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_crc.c:126:19:HAL_CRC_DeInit 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_crc.c:170:13:HAL_CRC_MspInit 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_crc.c:185:13:HAL_CRC_MspDeInit 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_crc.c:227:10:HAL_CRC_Accumulate 2
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_crc.c:257:10:HAL_CRC_Calculate 2
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_crc.c:306:22:HAL_CRC_GetState 1
@@ -1,13 +0,0 @@
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c:142:19:HAL_DMA_Init 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c:219:19:HAL_DMA_DeInit 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c:318:19:HAL_DMA_Start 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c:361:19:HAL_DMA_Start_IT 4
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c:415:19:HAL_DMA_Abort 2
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c:456:19:HAL_DMA_Abort_IT 26
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c:501:19:HAL_DMA_PollForTransfer 102
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c:602:6:HAL_DMA_IRQHandler 58
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c:692:19:HAL_DMA_RegisterCallback 7
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c:743:19:HAL_DMA_UnRegisterCallback 8
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c:819:22:HAL_DMA_GetState 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c:831:10:HAL_DMA_GetError 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c:857:13:DMA_SetConfig 2
@@ -1,9 +0,0 @@
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c:142:19:HAL_EXTI_SetConfigLine 9
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c:237:19:HAL_EXTI_GetConfigLine 9
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c:316:19:HAL_EXTI_ClearConfigLine 4
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c:369:19:HAL_EXTI_RegisterCallback 2
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c:394:19:HAL_EXTI_GetHandle 2
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c:434:6:HAL_EXTI_IRQHandler 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c:466:10:HAL_EXTI_GetPending 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c:498:6:HAL_EXTI_ClearPending 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c:522:6:HAL_EXTI_GenerateSWI 1
@@ -1,14 +0,0 @@
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c:166:19:HAL_FLASH_Program 7
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c:265:19:HAL_FLASH_Program_IT 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c:327:6:HAL_FLASH_IRQHandler 12
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c:599:13:HAL_FLASH_EndOfOperationCallback 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c:617:13:HAL_FLASH_OperationErrorCallback 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c:650:19:HAL_FLASH_Unlock 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c:688:19:HAL_FLASH_Lock 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c:705:19:HAL_FLASH_OB_Unlock 2
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c:725:19:HAL_FLASH_OB_Lock 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c:738:6:HAL_FLASH_OB_Launch 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c:767:10:HAL_FLASH_GetError 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c:790:13:FLASH_Program_HalfWord 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c:819:19:FLASH_WaitForLastOperation 9
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c:907:13:FLASH_SetErrorCode 5
@@ -1,16 +0,0 @@
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c:157:19:HAL_FLASHEx_Erase 7
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c:317:19:HAL_FLASHEx_Erase_IT 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c:392:19:HAL_FLASHEx_OBErase 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c:441:19:HAL_FLASHEx_OBProgram 11
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c:522:6:HAL_FLASHEx_OBGetConfig 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c:544:10:HAL_FLASHEx_OBGetUserData 2
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c:590:13:FLASH_MassErase 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c:639:26:FLASH_OB_EnableWRP 10
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c:762:26:FLASH_OB_DisableWRP 10
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c:881:26:FLASH_OB_RDP_LevelConfig 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c:932:26:FLASH_OB_UserConfig 2
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c:983:26:FLASH_OB_ProgramData 2
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c:1016:17:FLASH_OB_GetWRP 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c:1029:17:FLASH_OB_GetRDP 2
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c:1055:16:FLASH_OB_GetUser 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c:1084:6:FLASH_PageErase 1
@@ -1,8 +0,0 @@
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c:178:6:HAL_GPIO_Init 34
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c:351:6:HAL_GPIO_DeInit 10
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c:431:15:HAL_GPIO_ReadPin 2
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c:465:6:HAL_GPIO_WritePin 2
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c:487:6:HAL_GPIO_TogglePin 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c:511:19:HAL_GPIO_LockPin 2
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c:546:6:HAL_GPIO_EXTI_IRQHandler 2
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c:561:13:HAL_GPIO_EXTI_Callback 1
@@ -1,3 +0,0 @@
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c:81:6:HAL_GPIOEx_ConfigEventout 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c:95:6:HAL_GPIOEx_EnableEventout 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c:104:6:HAL_GPIOEx_DisableEventout 1
@@ -1,18 +0,0 @@
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:116:13:PWR_OverloadWfe 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:155:6:HAL_PWR_DeInit 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:168:6:HAL_PWR_EnableBkUpAccess 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:181:6:HAL_PWR_DisableBkUpAccess 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:315:6:HAL_PWR_ConfigPVD 5
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:358:6:HAL_PWR_EnablePVD 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:368:6:HAL_PWR_DisablePVD 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:381:6:HAL_PWR_EnableWakeUpPin 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:396:6:HAL_PWR_DisableWakeUpPin 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:416:6:HAL_PWR_EnterSLEEPMode 2
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:462:6:HAL_PWR_EnterSTOPMode 2
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:502:6:HAL_PWR_EnterSTANDBYMode 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:527:6:HAL_PWR_EnableSleepOnExit 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:540:6:HAL_PWR_DisableSleepOnExit 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:553:6:HAL_PWR_EnableSEVOnPend 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:566:6:HAL_PWR_DisableSEVOnPend 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:579:6:HAL_PWR_PVD_IRQHandler 2
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c:596:13:HAL_PWR_PVDCallback 1
@@ -1,15 +0,0 @@
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c:200:19:HAL_RCC_DeInit 14
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c:345:19:HAL_RCC_OscConfig 73
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c:811:19:HAL_RCC_ClockConfig 19
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c:1000:6:HAL_RCC_MCOConfig 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c:1037:6:HAL_RCC_EnableCSS 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c:1046:6:HAL_RCC_DisableCSS 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c:1080:10:HAL_RCC_GetSysClockFreq 6
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c:1174:10:HAL_RCC_GetHCLKFreq 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c:1185:10:HAL_RCC_GetPCLK1Freq 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c:1197:10:HAL_RCC_GetPCLK2Freq 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c:1210:6:HAL_RCC_GetOscConfig 9
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c:1310:6:HAL_RCC_GetClockConfig 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c:1345:6:HAL_RCC_NMI_IRQHandler 2
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c:1363:13:RCC_Delay 2
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c:1377:13:HAL_RCC_CSSCallback 1
@@ -1,7 +0,0 @@
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c:98:19:HAL_RCCEx_PeriphCLKConfig 25
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c:292:6:HAL_RCCEx_GetPeriphCLKConfig 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c:385:10:HAL_RCCEx_GetPeriphCLKFreq 21
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c:611:19:HAL_RCCEx_EnablePLLI2S 9
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c:681:19:HAL_RCCEx_DisablePLLI2S 5
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c:737:19:HAL_RCCEx_EnablePLL2 10
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c:808:19:HAL_RCCEx_DisablePLL2 6
@@ -1,28 +0,0 @@
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc.c:276:19:HAL_RTC_Init 9
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc.c:412:19:HAL_RTC_DeInit 4
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc.c:651:13:HAL_RTC_MspInit 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc.c:666:13:HAL_RTC_MspDeInit 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc.c:704:19:HAL_RTC_SetTime 9
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc.c:803:19:HAL_RTC_GetTime 12
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc.c:914:19:HAL_RTC_SetDate 10
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc.c:1028:19:HAL_RTC_GetDate 5
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc.c:1093:19:HAL_RTC_SetAlarm 8
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc.c:1185:19:HAL_RTC_SetAlarm_IT 8
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc.c:1290:19:HAL_RTC_GetAlarm 4
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc.c:1335:19:HAL_RTC_DeactivateAlarm 5
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc.c:1405:6:HAL_RTC_AlarmIRQHandler 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc.c:1437:13:HAL_RTC_AlarmAEventCallback 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc.c:1453:19:HAL_RTC_PollForAlarmAEvent 6
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc.c:1508:21:HAL_RTC_GetState 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc.c:1541:19:HAL_RTC_WaitForSynchro 4
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc.c:1588:17:RTC_ReadTimeCounter 2
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc.c:1620:26:RTC_WriteTimeCounter 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc.c:1652:17:RTC_ReadAlarmCounter 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc.c:1669:26:RTC_WriteAlarmCounter 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc.c:1701:26:RTC_EnterInitMode 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc.c:1728:26:RTC_ExitInitMode 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc.c:1753:16:RTC_ByteToBcd2 2
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc.c:1771:16:RTC_Bcd2ToByte 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc.c:1785:13:RTC_DateUpdate 21
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc.c:1880:16:RTC_IsLeapYear 4
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc.c:1917:16:RTC_WeekDayNum 2
@@ -1,14 +0,0 @@
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc_ex.c:80:19:HAL_RTCEx_SetTamper 5
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc_ex.c:126:19:HAL_RTCEx_SetTamper_IT 5
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc_ex.c:174:19:HAL_RTCEx_DeactivateTamper 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc_ex.c:216:6:HAL_RTCEx_TamperIRQHandler 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc_ex.c:246:13:HAL_RTCEx_Tamper1EventCallback 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc_ex.c:262:19:HAL_RTCEx_PollForTamper1Event 6
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc_ex.c:318:19:HAL_RTCEx_SetSecond_IT 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc_ex.c:348:19:HAL_RTCEx_DeactivateSecond 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc_ex.c:378:6:HAL_RTCEx_RTCIRQHandler 4
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc_ex.c:418:13:HAL_RTCEx_RTCEventCallback 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc_ex.c:433:13:HAL_RTCEx_RTCEventErrorCallback 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc_ex.c:473:6:HAL_RTCEx_BKUPWrite 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc_ex.c:498:10:HAL_RTCEx_BKUPRead 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc_ex.c:528:19:HAL_RTCEx_SetSmoothCalib 3
@@ -1,119 +0,0 @@
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:266:19:HAL_TIM_Base_Init 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:326:19:HAL_TIM_Base_DeInit 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:369:13:HAL_TIM_Base_MspInit 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:384:13:HAL_TIM_Base_MspDeInit 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:400:19:HAL_TIM_Base_Start 8
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:439:19:HAL_TIM_Base_Stop 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:459:19:HAL_TIM_Base_Start_IT 8
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:501:19:HAL_TIM_Base_Stop_IT 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:526:19:HAL_TIM_Base_Start_DMA 12
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:595:19:HAL_TIM_Base_Stop_DMA 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:650:19:HAL_TIM_OC_Init 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:710:19:HAL_TIM_OC_DeInit 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:753:13:HAL_TIM_OC_MspInit 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:768:13:HAL_TIM_OC_MspDeInit 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:789:19:HAL_TIM_OC_Start 15
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:843:19:HAL_TIM_OC_Stop 9
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:878:19:HAL_TIM_OC_Start_IT 20
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:971:19:HAL_TIM_OC_Stop_IT 14
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:1048:19:HAL_TIM_OC_Start_DMA 30
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:1212:19:HAL_TIM_OC_Stop_DMA 14
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:1315:19:HAL_TIM_PWM_Init 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:1375:19:HAL_TIM_PWM_DeInit 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:1418:13:HAL_TIM_PWM_MspInit 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:1433:13:HAL_TIM_PWM_MspDeInit 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:1454:19:HAL_TIM_PWM_Start 15
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:1508:19:HAL_TIM_PWM_Stop 9
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:1543:19:HAL_TIM_PWM_Start_IT 20
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:1636:19:HAL_TIM_PWM_Stop_IT 14
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:1713:19:HAL_TIM_PWM_Start_DMA 30
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:1876:19:HAL_TIM_PWM_Stop_DMA 14
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:1979:19:HAL_TIM_IC_Init 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:2039:19:HAL_TIM_IC_DeInit 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:2082:13:HAL_TIM_IC_MspInit 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:2097:13:HAL_TIM_IC_MspDeInit 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:2118:19:HAL_TIM_IC_Start 21
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:2170:19:HAL_TIM_IC_Stop 9
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:2200:19:HAL_TIM_IC_Start_IT 26
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:2292:19:HAL_TIM_IC_Stop_IT 14
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:2364:19:HAL_TIM_IC_Start_DMA 33
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:2523:19:HAL_TIM_IC_Stop_DMA 14
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:2628:19:HAL_TIM_OnePulse_Init 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:2697:19:HAL_TIM_OnePulse_DeInit 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:2742:13:HAL_TIM_OnePulse_MspInit 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:2757:13:HAL_TIM_OnePulse_MspDeInit 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:2777:19:HAL_TIM_OnePulse_Start 6
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:2834:19:HAL_TIM_OnePulse_Stop 6
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:2877:19:HAL_TIM_OnePulse_Start_IT 6
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:2940:19:HAL_TIM_OnePulse_Stop_IT 6
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:3019:19:HAL_TIM_Encoder_Init 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:3133:19:HAL_TIM_Encoder_DeInit 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:3178:13:HAL_TIM_Encoder_MspInit 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:3193:13:HAL_TIM_Encoder_MspDeInit 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:3213:19:HAL_TIM_Encoder_Start 13
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:3307:19:HAL_TIM_Encoder_Stop 13
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:3367:19:HAL_TIM_Encoder_Start_IT 13
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:3467:19:HAL_TIM_Encoder_Stop_IT 13
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:3532:19:HAL_TIM_Encoder_Start_DMA 32
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:3745:19:HAL_TIM_Encoder_Stop_DMA 13
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:3822:6:HAL_TIM_IRQHandler 21
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:4040:19:HAL_TIM_OC_ConfigChannel 6
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:4119:19:HAL_TIM_IC_ConfigChannel 6
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:4218:19:HAL_TIM_PWM_ConfigChannel 6
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:4332:19:HAL_TIM_OnePulse_ConfigChannel 8
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:4480:19:HAL_TIM_DMABurst_WriteStart 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:4533:19:HAL_TIM_DMABurst_MultiWriteStart 25
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:4717:19:HAL_TIM_DMABurst_WriteStop 14
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:4818:19:HAL_TIM_DMABurst_ReadStart 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:4869:19:HAL_TIM_DMABurst_MultiReadStart 25
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:5053:19:HAL_TIM_DMABurst_ReadStop 14
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:5136:19:HAL_TIM_GenerateEvent 2
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:5173:19:HAL_TIM_ConfigOCrefClear 14
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:5303:19:HAL_TIM_ConfigClockSource 20
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:5457:19:HAL_TIM_ConfigTI1Input 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:5489:19:HAL_TIM_SlaveConfigSynchro 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:5529:19:HAL_TIM_SlaveConfigSynchro_IT 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:5572:10:HAL_TIM_ReadCapturedValue 5
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:5656:13:HAL_TIM_PeriodElapsedCallback 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:5671:13:HAL_TIM_PeriodElapsedHalfCpltCallback 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:5686:13:HAL_TIM_OC_DelayElapsedCallback 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:5701:13:HAL_TIM_IC_CaptureCallback 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:5716:13:HAL_TIM_IC_CaptureHalfCpltCallback 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:5731:13:HAL_TIM_PWM_PulseFinishedCallback 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:5746:13:HAL_TIM_PWM_PulseFinishedHalfCpltCallback 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:5761:13:HAL_TIM_TriggerCallback 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:5776:13:HAL_TIM_TriggerHalfCpltCallback 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:5791:13:HAL_TIM_ErrorCallback 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:6338:22:HAL_TIM_Base_GetState 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:6348:22:HAL_TIM_OC_GetState 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:6358:22:HAL_TIM_PWM_GetState 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:6368:22:HAL_TIM_IC_GetState 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:6378:22:HAL_TIM_OnePulse_GetState 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:6388:22:HAL_TIM_Encoder_GetState 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:6398:23:HAL_TIM_GetActiveChannel 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:6416:29:HAL_TIM_GetChannelState 4
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:6433:30:HAL_TIM_DMABurstState 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:6458:6:TIM_DMAError 5
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:6501:13:TIM_DMADelayPulseCplt 9
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:6560:6:TIM_DMADelayPulseHalfCplt 5
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:6599:6:TIM_DMACaptureCplt 9
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:6662:6:TIM_DMACaptureHalfCplt 5
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:6701:13:TIM_DMAPeriodElapsedCplt 2
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:6722:13:TIM_DMAPeriodElapsedHalfCplt 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:6738:13:TIM_DMATriggerCplt 2
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:6759:13:TIM_DMATriggerHalfCplt 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:6776:6:TIM_Base_SetConfig 13
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:6831:13:TIM_OC1_SetConfig 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:6907:6:TIM_OC2_SetConfig 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:6983:13:TIM_OC3_SetConfig 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:7058:13:TIM_OC4_SetConfig 2
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:7119:26:TIM_SlaveTimer_SetConfig 16
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:7253:6:TIM_TI1_SetConfig 7
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:7300:13:TIM_TI1_ConfigInputStage 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:7343:13:TIM_TI2_SetConfig 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:7383:13:TIM_TI2_ConfigInputStage 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:7425:13:TIM_TI3_SetConfig 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:7472:13:TIM_TI4_SetConfig 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:7515:13:TIM_ITRx_SetConfig 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:7545:6:TIM_ETR_SetConfig 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c:7575:6:TIM_CCxChannelCmd 1
@@ -1,42 +0,0 @@
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c:138:19:HAL_TIMEx_HallSensor_Init 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c:240:19:HAL_TIMEx_HallSensor_DeInit 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c:285:13:HAL_TIMEx_HallSensor_MspInit 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c:300:13:HAL_TIMEx_HallSensor_MspDeInit 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c:315:19:HAL_TIMEx_HallSensor_Start 11
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c:369:19:HAL_TIMEx_HallSensor_Stop 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c:397:19:HAL_TIMEx_HallSensor_Start_IT 11
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c:454:19:HAL_TIMEx_HallSensor_Stop_IT 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c:487:19:HAL_TIMEx_HallSensor_Start_DMA 14
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c:563:19:HAL_TIMEx_HallSensor_Stop_DMA 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c:625:19:HAL_TIMEx_OCN_Start 14
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c:676:19:HAL_TIMEx_OCN_Stop 8
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c:708:19:HAL_TIMEx_OCN_Start_IT 19
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c:795:19:HAL_TIMEx_OCN_Stop_IT 14
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c:870:19:HAL_TIMEx_OCN_Start_DMA 28
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c:1008:19:HAL_TIMEx_OCN_Stop_DMA 13
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c:1098:19:HAL_TIMEx_PWMN_Start 14
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c:1148:19:HAL_TIMEx_PWMN_Stop 8
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c:1180:19:HAL_TIMEx_PWMN_Start_IT 19
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c:1266:19:HAL_TIMEx_PWMN_Stop_IT 14
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c:1341:19:HAL_TIMEx_PWMN_Start_DMA 28
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c:1479:19:HAL_TIMEx_PWMN_Stop_DMA 13
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c:1570:19:HAL_TIMEx_OnePulseN_Start 6
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c:1619:19:HAL_TIMEx_OnePulseN_Stop 6
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c:1658:19:HAL_TIMEx_OnePulseN_Start_IT 6
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c:1713:19:HAL_TIMEx_OnePulseN_Stop_IT 6
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c:1792:19:HAL_TIMEx_ConfigCommutEvent 6
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c:1848:19:HAL_TIMEx_ConfigCommutEvent_IT 6
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c:1905:19:HAL_TIMEx_ConfigCommutEvent_DMA 6
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c:1954:19:HAL_TIMEx_MasterConfigSynchronization 7
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c:2015:19:HAL_TIMEx_ConfigBreakDeadTime 2
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c:2062:19:HAL_TIMEx_RemapConfig 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c:2096:13:HAL_TIMEx_CommutCallback 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c:2110:13:HAL_TIMEx_CommutHalfCpltCallback 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c:2125:13:HAL_TIMEx_BreakCallback 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c:2158:22:HAL_TIMEx_HallSensor_GetState 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c:2173:29:HAL_TIMEx_GetChannelNState 4
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c:2202:6:TIMEx_DMACommutationCplt 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c:2221:6:TIMEx_DMACommutationHalfCplt 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c:2241:13:TIM_DMADelayPulseNCplt 7
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c:2291:13:TIM_DMAErrorCCxN 4
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c:2336:13:TIM_CCxNChannelCmd 1
@@ -1,62 +0,0 @@
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:354:19:HAL_UART_Init 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:432:19:HAL_HalfDuplex_Init 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:508:19:HAL_LIN_Init 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:592:19:HAL_MultiProcessor_Init 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:672:19:HAL_UART_DeInit 2
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:718:13:HAL_UART_MspInit 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:733:13:HAL_UART_MspDeInit 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:1138:19:HAL_UART_Transmit 10
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:1224:19:HAL_UART_Receive 12
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:1311:19:HAL_UART_Transmit_IT 4
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:1350:19:HAL_UART_Receive_IT 4
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:1382:19:HAL_UART_Transmit_DMA 5
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:1444:19:HAL_UART_Receive_DMA 4
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:1471:19:HAL_UART_DMAPause 9
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:1502:19:HAL_UART_DMAResume 8
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:1536:19:HAL_UART_DMAStop 9
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:1591:19:HAL_UARTEx_ReceiveToIdle 17
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:1716:19:HAL_UARTEx_ReceiveToIdle_IT 7
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:1776:19:HAL_UARTEx_ReceiveToIdle_DMA 6
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:1841:29:HAL_UARTEx_GetRxEventType 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:1859:19:HAL_UART_Abort 15
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:1948:19:HAL_UART_AbortTransmit 7
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:1999:19:HAL_UART_AbortReceive 10
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:2060:19:HAL_UART_Abort_IT 18
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:2195:19:HAL_UART_AbortTransmit_IT 6
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:2272:19:HAL_UART_AbortReceive_IT 9
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:2350:6:HAL_UART_IRQHandler 45
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:2592:13:HAL_UART_TxCpltCallback 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:2607:13:HAL_UART_TxHalfCpltCallback 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:2622:13:HAL_UART_RxCpltCallback 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:2637:13:HAL_UART_RxHalfCpltCallback 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:2652:13:HAL_UART_ErrorCallback 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:2666:13:HAL_UART_AbortCpltCallback 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:2681:13:HAL_UART_AbortTransmitCpltCallback 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:2696:13:HAL_UART_AbortReceiveCpltCallback 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:2713:13:HAL_UARTEx_RxEventCallback 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:2753:19:HAL_LIN_SendBreak 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:2780:19:HAL_MultiProcessor_EnterMuteMode 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:2808:19:HAL_MultiProcessor_ExitMuteMode 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:2836:19:HAL_HalfDuplex_EnableTransmitter 2
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:2871:19:HAL_HalfDuplex_EnableReceiver 2
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:2928:23:HAL_UART_GetState 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:2943:10:HAL_UART_GetError 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:2988:13:UART_DMATransmitCplt 4
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:3023:13:UART_DMATxHalfCplt 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:3042:13:UART_DMAReceiveCplt 8
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:3104:13:UART_DMARxHalfCplt 2
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:3143:13:UART_DMAError 5
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:3185:26:UART_WaitOnFlagUntilTimeout 9
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:3236:19:UART_Start_Receive_IT 2
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:3271:19:UART_Start_Receive_DMA 5
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:3321:13:UART_EndTxTransfer 2
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:3335:13:UART_EndRxTransfer 5
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:3359:13:UART_DMAAbortOnError 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:3383:13:UART_DMATxAbortCallback 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:3429:13:UART_DMARxAbortCallback 3
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:3475:13:UART_DMATxOnlyAbortCallback 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:3503:13:UART_DMARxOnlyAbortCallback 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:3529:26:UART_Transmit_IT 5
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:3569:26:UART_EndTransmit_IT 1
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:3594:26:UART_Receive_IT 11
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c:3695:13:UART_SetConfig 2
@@ -1,84 +0,0 @@
################################################################################
# Automatically-generated file. Do not edit!
# Toolchain: GNU Tools for STM32 (13.3.rel1)
################################################################################
# Add inputs and outputs from these tool invocations to the build variables
C_SRCS += \
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c \
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.c \
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc_ex.c \
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c \
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c \
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_crc.c \
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c \
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c \
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c \
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c \
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c \
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c \
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c \
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c \
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c \
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc.c \
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc_ex.c \
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c \
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c \
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c
C_DEPS += \
./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.d \
./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.d \
./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc_ex.d \
./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.d \
./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.d \
./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_crc.d \
./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.d \
./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.d \
./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.d \
./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.d \
./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.d \
./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.d \
./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.d \
./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.d \
./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.d \
./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc.d \
./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc_ex.d \
./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.d \
./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.d \
./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.d
OBJS += \
./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o \
./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.o \
./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc_ex.o \
./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.o \
./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o \
./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_crc.o \
./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o \
./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o \
./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o \
./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o \
./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o \
./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o \
./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o \
./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o \
./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o \
./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc.o \
./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc_ex.o \
./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o \
./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o \
./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.o
# Each subdirectory must supply rules for building sources it contributes
Drivers/STM32F1xx_HAL_Driver/Src/%.o Drivers/STM32F1xx_HAL_Driver/Src/%.su Drivers/STM32F1xx_HAL_Driver/Src/%.cyclo: ../Drivers/STM32F1xx_HAL_Driver/Src/%.c Drivers/STM32F1xx_HAL_Driver/Src/subdir.mk
arm-none-eabi-gcc "$<" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F107xC -c -I../Core/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
clean: clean-Drivers-2f-STM32F1xx_HAL_Driver-2f-Src
clean-Drivers-2f-STM32F1xx_HAL_Driver-2f-Src:
-$(RM) ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.cyclo ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.su ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.cyclo ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.su ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc_ex.cyclo ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc_ex.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc_ex.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc_ex.su ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.cyclo ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.su ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.cyclo ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.su ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_crc.cyclo ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_crc.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_crc.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_crc.su ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.cyclo ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.su ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.cyclo ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.su ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.cyclo ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.su ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.cyclo ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.su ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.cyclo ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.su ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.cyclo ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.su ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.cyclo ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.su ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.cyclo ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.su ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.cyclo ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.su ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc.cyclo ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc.su ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc_ex.cyclo ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc_ex.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc_ex.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc_ex.su ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.cyclo ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.su ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.cyclo ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.su ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.cyclo ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.su
.PHONY: clean-Drivers-2f-STM32F1xx_HAL_Driver-2f-Src
-118
View File
@@ -1,118 +0,0 @@
################################################################################
# Automatically-generated file. Do not edit!
# Toolchain: GNU Tools for STM32 (13.3.rel1)
################################################################################
-include ../makefile.init
RM := rm -rf
# All of the sources participating in the build are defined here
-include sources.mk
-include Drivers/STM32F1xx_HAL_Driver/Src/subdir.mk
-include Core/Startup/subdir.mk
-include Core/Src/subdir.mk
-include objects.mk
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(S_DEPS)),)
-include $(S_DEPS)
endif
ifneq ($(strip $(S_UPPER_DEPS)),)
-include $(S_UPPER_DEPS)
endif
ifneq ($(strip $(C_DEPS)),)
-include $(C_DEPS)
endif
endif
-include ../makefile.defs
OPTIONAL_TOOL_DEPS := \
$(wildcard ../makefile.defs) \
$(wildcard ../makefile.init) \
$(wildcard ../makefile.targets) \
BUILD_ARTIFACT_NAME := CCSModuleSW30Web
BUILD_ARTIFACT_EXTENSION := elf
BUILD_ARTIFACT_PREFIX :=
BUILD_ARTIFACT := $(BUILD_ARTIFACT_PREFIX)$(BUILD_ARTIFACT_NAME)$(if $(BUILD_ARTIFACT_EXTENSION),.$(BUILD_ARTIFACT_EXTENSION),)
# Add inputs and outputs from these tool invocations to the build variables
EXECUTABLES += \
CCSModuleSW30Web.elf \
MAP_FILES += \
CCSModuleSW30Web.map \
SIZE_OUTPUT += \
default.size.stdout \
OBJDUMP_LIST += \
CCSModuleSW30Web.list \
OBJCOPY_HEX += \
CCSModuleSW30Web.hex \
OBJCOPY_BIN += \
CCSModuleSW30Web.bin \
OBJCOPY_SREC += \
CCSModuleSW30Web.srec \
# All Target
all: main-build
# Main-build Target
main-build: CCSModuleSW30Web.elf secondary-outputs
# Tool invocations
CCSModuleSW30Web.elf CCSModuleSW30Web.map: $(OBJS) $(USER_OBJS) /Users/colorbass/STM32CubeIDE/workspace_1.12.0/CCSModuleSW30Web/STM32F107VCTX_FLASH.ld makefile objects.list $(OPTIONAL_TOOL_DEPS)
arm-none-eabi-gcc -o "CCSModuleSW30Web.elf" @"objects.list" $(USER_OBJS) $(LIBS) -mcpu=cortex-m3 -T"/Users/colorbass/STM32CubeIDE/workspace_1.12.0/CCSModuleSW30Web/STM32F107VCTX_FLASH.ld" --specs=nosys.specs -Wl,-Map="CCSModuleSW30Web.map" -Wl,--gc-sections -static --specs=nano.specs -mfloat-abi=soft -mthumb -u _printf_float -Wl,--start-group -lc -lm -Wl,--end-group
@echo 'Finished building target: $@'
@echo ' '
default.size.stdout: $(EXECUTABLES) makefile objects.list $(OPTIONAL_TOOL_DEPS)
arm-none-eabi-size $(EXECUTABLES)
@echo 'Finished building: $@'
@echo ' '
CCSModuleSW30Web.list: $(EXECUTABLES) makefile objects.list $(OPTIONAL_TOOL_DEPS)
arm-none-eabi-objdump -h -S $(EXECUTABLES) > "CCSModuleSW30Web.list"
@echo 'Finished building: $@'
@echo ' '
CCSModuleSW30Web.hex: $(EXECUTABLES) makefile objects.list $(OPTIONAL_TOOL_DEPS)
arm-none-eabi-objcopy -O ihex $(EXECUTABLES) "CCSModuleSW30Web.hex"
@echo 'Finished building: $@'
@echo ' '
CCSModuleSW30Web.bin: $(EXECUTABLES) makefile objects.list $(OPTIONAL_TOOL_DEPS)
arm-none-eabi-objcopy -O binary $(EXECUTABLES) "CCSModuleSW30Web.bin"
@echo 'Finished building: $@'
@echo ' '
CCSModuleSW30Web.srec: $(EXECUTABLES) makefile objects.list $(OPTIONAL_TOOL_DEPS)
arm-none-eabi-objcopy -O srec $(EXECUTABLES) "CCSModuleSW30Web.srec"
@echo 'Finished building: $@'
@echo ' '
# Other Targets
clean:
-$(RM) CCSModuleSW30Web.bin CCSModuleSW30Web.elf CCSModuleSW30Web.hex CCSModuleSW30Web.list CCSModuleSW30Web.map CCSModuleSW30Web.srec default.size.stdout
-@echo ' '
secondary-outputs: $(SIZE_OUTPUT) $(OBJDUMP_LIST) $(OBJCOPY_HEX) $(OBJCOPY_BIN) $(OBJCOPY_SREC)
fail-specified-linker-script-missing:
@echo 'Error: Cannot find the specified linker script. Check the linker settings in the build configuration.'
@exit 2
warn-no-linker-script-specified:
@echo 'Warning: No linker script specified. Check the linker settings in the build configuration.'
.PHONY: all clean dependents main-build fail-specified-linker-script-missing warn-no-linker-script-specified
-include ../makefile.targets
-47
View File
@@ -1,47 +0,0 @@
"./Core/Src/adc.o"
"./Core/Src/board.o"
"./Core/Src/can.o"
"./Core/Src/charger_control.o"
"./Core/Src/cp.o"
"./Core/Src/crc.o"
"./Core/Src/debug.o"
"./Core/Src/dma.o"
"./Core/Src/gpio.o"
"./Core/Src/main.o"
"./Core/Src/meter.o"
"./Core/Src/psu_control.o"
"./Core/Src/rgb_controller.o"
"./Core/Src/rtc.o"
"./Core/Src/serial.o"
"./Core/Src/serial_control.o"
"./Core/Src/serial_handler.o"
"./Core/Src/sma_filter.o"
"./Core/Src/soft_rtc.o"
"./Core/Src/stm32f1xx_hal_msp.o"
"./Core/Src/stm32f1xx_it.o"
"./Core/Src/syscalls.o"
"./Core/Src/sysmem.o"
"./Core/Src/system_stm32f1xx.o"
"./Core/Src/tim.o"
"./Core/Src/usart.o"
"./Core/Startup/startup_stm32f107vctx.o"
"./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o"
"./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.o"
"./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc_ex.o"
"./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.o"
"./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o"
"./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_crc.o"
"./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o"
"./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o"
"./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o"
"./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o"
"./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o"
"./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o"
"./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o"
"./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o"
"./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o"
"./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc.o"
"./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc_ex.o"
"./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o"
"./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o"
"./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.o"

Some files were not shown because too many files have changed in this diff Show More