Compare commits
4 Commits
7aeefed7ca
...
d5b65828aa
Author | SHA1 | Date |
---|---|---|
Jasper Blanckenburg | d5b65828aa | |
Jasper Blanckenburg | c32e2b71cd | |
Jasper Blanckenburg | 4ba8236c0e | |
Jasper Blanckenburg | be193e804e |
|
@ -8,3 +8,4 @@ TouchGFX/build
|
||||||
/TouchGFX/screenshots
|
/TouchGFX/screenshots
|
||||||
/TouchGFX/*_backup.touchgfx
|
/TouchGFX/*_backup.touchgfx
|
||||||
/steering-wheel.ioc_bkp
|
/steering-wheel.ioc_bkp
|
||||||
|
/STM32Make.make
|
||||||
|
|
|
@ -48,7 +48,10 @@ extern FDCAN_HandleTypeDef hfdcan1;
|
||||||
|
|
||||||
#define GUI_UPDATE_VEHICLE_STATE (1 << 0)
|
#define GUI_UPDATE_VEHICLE_STATE (1 << 0)
|
||||||
#define GUI_UPDATE_NEXT_SCREEN (1 << 1)
|
#define GUI_UPDATE_NEXT_SCREEN (1 << 1)
|
||||||
#define GUI_UPDATE_ALL (GUI_UPDATE_VEHICLE_STATE | GUI_UPDATE_NEXT_SCREEN)
|
#define GUI_UPDATE_PARAM_CONFIRMED (1 << 2)
|
||||||
|
#define GUI_UPDATE_ALL \
|
||||||
|
(GUI_UPDATE_VEHICLE_STATE | GUI_UPDATE_NEXT_SCREEN | \
|
||||||
|
GUI_UPDATE_PARAM_CONFIRMED)
|
||||||
/* USER CODE END EC */
|
/* USER CODE END EC */
|
||||||
|
|
||||||
/* Exported macro ------------------------------------------------------------*/
|
/* Exported macro ------------------------------------------------------------*/
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include "params.h"
|
||||||
#include "stw_defines.h"
|
#include "stw_defines.h"
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
|
@ -156,6 +157,8 @@ typedef struct {
|
||||||
|
|
||||||
float brake_press_f;
|
float brake_press_f;
|
||||||
float brake_press_r;
|
float brake_press_r;
|
||||||
|
float hyd_press_a;
|
||||||
|
float hyd_press_b;
|
||||||
|
|
||||||
float distance_total;
|
float distance_total;
|
||||||
|
|
||||||
|
@ -166,6 +169,8 @@ typedef struct {
|
||||||
float desired_speed;
|
float desired_speed;
|
||||||
|
|
||||||
ConePosition cone_pos[NUM_CONES];
|
ConePosition cone_pos[NUM_CONES];
|
||||||
|
|
||||||
|
ParamType last_param_confirmed;
|
||||||
} VehicleState;
|
} VehicleState;
|
||||||
|
|
||||||
extern VehicleState vehicle_state;
|
extern VehicleState vehicle_state;
|
||||||
|
|
|
@ -98,6 +98,7 @@ void params_broadcast(ParamType param) {
|
||||||
break;
|
break;
|
||||||
case PF_PLIM:
|
case PF_PLIM:
|
||||||
value = params.plim;
|
value = params.plim;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,12 +21,14 @@
|
||||||
#define CAN_ID_ABX_BRAKE_T 0x105
|
#define CAN_ID_ABX_BRAKE_T 0x105
|
||||||
#define CAN_ID_CS_INTERNAL 0x108
|
#define CAN_ID_CS_INTERNAL 0x108
|
||||||
#define CAN_ID_ABX_MISC 0x109
|
#define CAN_ID_ABX_MISC 0x109
|
||||||
|
#define CAN_ID_ABX_HYDRAULICS 0x110
|
||||||
#define CAN_ID_EPSC_OUT 0x321
|
#define CAN_ID_EPSC_OUT 0x321
|
||||||
#define CAN_ID_MISSION_SELECTED 0x400
|
#define CAN_ID_MISSION_SELECTED 0x400
|
||||||
#define CAN_ID_STW_BUTTONS 0x401
|
#define CAN_ID_STW_BUTTONS 0x401
|
||||||
#define CAN_ID_STW_PARAM_SET 0x402
|
#define CAN_ID_STW_PARAM_SET 0x402
|
||||||
#define CAN_ID_AS_MISSION_FB 0x410
|
#define CAN_ID_AS_MISSION_FB 0x410
|
||||||
#define CAN_ID_STW_STATUS 0x412
|
#define CAN_ID_STW_STATUS 0x412
|
||||||
|
#define CAN_ID_ABX_PARAM_CONFIRMED 0x413
|
||||||
#define CAN_ID_STW_CONES_BASE 0x414
|
#define CAN_ID_STW_CONES_BASE 0x414
|
||||||
#define CAN_ID_STW_CONES_MASK 0x7FC
|
#define CAN_ID_STW_CONES_MASK 0x7FC
|
||||||
#define CAN_ID_SHUNT_CURRENT 0x521
|
#define CAN_ID_SHUNT_CURRENT 0x521
|
||||||
|
@ -37,6 +39,7 @@
|
||||||
#define CAN_JETSON_TX_ANGLE_FACTOR 0.00784314f
|
#define CAN_JETSON_TX_ANGLE_FACTOR 0.00784314f
|
||||||
#define CAN_JETSON_TX_SPEED_FACTOR (0.2 * 3.6)
|
#define CAN_JETSON_TX_SPEED_FACTOR (0.2 * 3.6)
|
||||||
#define CAN_ABX_DRIVER_SPEED_FACTOR (0.2 * 3.6)
|
#define CAN_ABX_DRIVER_SPEED_FACTOR (0.2 * 3.6)
|
||||||
|
#define CAN_ABX_DRIVER_PRESS_FACTOR 0.1f
|
||||||
#define CAN_CS_INTERNAL_TEMP_FACTOR 0.01
|
#define CAN_CS_INTERNAL_TEMP_FACTOR 0.01
|
||||||
#define CAN_ABX_MISC_DISTANCE_TOTAL_FACTOR 0.01
|
#define CAN_ABX_MISC_DISTANCE_TOTAL_FACTOR 0.01
|
||||||
#define CAN_ABX_MISC_LV_BAT_VOLTAGE_FACTOR (15.0f / 255)
|
#define CAN_ABX_MISC_LV_BAT_VOLTAGE_FACTOR (15.0f / 255)
|
||||||
|
@ -56,9 +59,11 @@ void vehicle_thread_entry(ULONG hfdcan_addr) {
|
||||||
ftcan_add_filter(CAN_ID_ABX_BRAKE_T, 0x7FF);
|
ftcan_add_filter(CAN_ID_ABX_BRAKE_T, 0x7FF);
|
||||||
ftcan_add_filter(CAN_ID_CS_INTERNAL, 0x7FF);
|
ftcan_add_filter(CAN_ID_CS_INTERNAL, 0x7FF);
|
||||||
ftcan_add_filter(CAN_ID_ABX_MISC, 0x7FF);
|
ftcan_add_filter(CAN_ID_ABX_MISC, 0x7FF);
|
||||||
|
ftcan_add_filter(CAN_ID_ABX_HYDRAULICS, 0x7FF);
|
||||||
ftcan_add_filter(CAN_ID_EPSC_OUT, 0x7FF);
|
ftcan_add_filter(CAN_ID_EPSC_OUT, 0x7FF);
|
||||||
ftcan_add_filter(CAN_ID_AS_MISSION_FB, 0x7FF);
|
ftcan_add_filter(CAN_ID_AS_MISSION_FB, 0x7FF);
|
||||||
ftcan_add_filter(CAN_ID_STW_STATUS, 0x7FF);
|
ftcan_add_filter(CAN_ID_STW_STATUS, 0x7FF);
|
||||||
|
ftcan_add_filter(CAN_ID_ABX_PARAM_CONFIRMED, 0x7FF);
|
||||||
ftcan_add_filter(CAN_ID_STW_CONES_BASE, CAN_ID_STW_CONES_MASK);
|
ftcan_add_filter(CAN_ID_STW_CONES_BASE, CAN_ID_STW_CONES_MASK);
|
||||||
ftcan_add_filter(CAN_ID_SHUNT_CURRENT, 0x7FF);
|
ftcan_add_filter(CAN_ID_SHUNT_CURRENT, 0x7FF);
|
||||||
ftcan_add_filter(CAN_ID_SHUNT_VOLTAGE1, 0x7FF);
|
ftcan_add_filter(CAN_ID_SHUNT_VOLTAGE1, 0x7FF);
|
||||||
|
@ -130,10 +135,18 @@ void ftcan_msg_received_cb(uint16_t id, size_t datalen, const uint8_t *data) {
|
||||||
((int8_t)data[2]) * CAN_JETSON_TX_ANGLE_FACTOR;
|
((int8_t)data[2]) * CAN_JETSON_TX_ANGLE_FACTOR;
|
||||||
break;
|
break;
|
||||||
case CAN_ID_ABX_DRIVER:
|
case CAN_ID_ABX_DRIVER:
|
||||||
vehicle_state.brake_press_f = (data[1] | ((data[2] & 0x0F) << 8)) * 0.1;
|
vehicle_state.brake_press_f =
|
||||||
vehicle_state.brake_press_r = ((data[2] >> 4) | (data[3] << 4)) * 0.1;
|
(data[1] | ((data[2] & 0x0F) << 8)) * CAN_ABX_DRIVER_PRESS_FACTOR;
|
||||||
|
vehicle_state.brake_press_r =
|
||||||
|
((data[2] >> 4) | (data[3] << 4)) * CAN_ABX_DRIVER_PRESS_FACTOR;
|
||||||
vehicle_state.speed = data[5] * CAN_ABX_DRIVER_SPEED_FACTOR;
|
vehicle_state.speed = data[5] * CAN_ABX_DRIVER_SPEED_FACTOR;
|
||||||
break;
|
break;
|
||||||
|
case CAN_ID_ABX_HYDRAULICS:
|
||||||
|
vehicle_state.hyd_press_a =
|
||||||
|
(data[0] | ((data[1] & 0x0F) << 8)) * CAN_ABX_DRIVER_PRESS_FACTOR;
|
||||||
|
vehicle_state.hyd_press_b =
|
||||||
|
((data[1] >> 4) | (data[2] << 4)) * CAN_ABX_DRIVER_PRESS_FACTOR;
|
||||||
|
break;
|
||||||
case CAN_ID_ABX_TIMINGS:
|
case CAN_ID_ABX_TIMINGS:
|
||||||
vehicle_state.lap_best = (data[0] | (data[1] << 8)) * 0.01f;
|
vehicle_state.lap_best = (data[0] | (data[1] << 8)) * 0.01f;
|
||||||
vehicle_state.lap_last = (data[2] | (data[3] << 8)) * 0.01f;
|
vehicle_state.lap_last = (data[2] | (data[3] << 8)) * 0.01f;
|
||||||
|
@ -194,6 +207,10 @@ void ftcan_msg_received_cb(uint16_t id, size_t datalen, const uint8_t *data) {
|
||||||
vehicle_state.errors.err_invl = (data[5] >> 3) & 1;
|
vehicle_state.errors.err_invl = (data[5] >> 3) & 1;
|
||||||
vehicle_state.errors.err_invr = (data[5] >> 4) & 1;
|
vehicle_state.errors.err_invr = (data[5] >> 4) & 1;
|
||||||
break;
|
break;
|
||||||
|
case CAN_ID_ABX_PARAM_CONFIRMED:
|
||||||
|
vehicle_state.last_param_confirmed = data[0];
|
||||||
|
tx_event_flags_set(&gui_update_events, GUI_UPDATE_PARAM_CONFIRMED, TX_OR);
|
||||||
|
break;
|
||||||
case CAN_ID_SHUNT_CURRENT: {
|
case CAN_ID_SHUNT_CURRENT: {
|
||||||
// The first two bytes of shunt result messages are metadata
|
// The first two bytes of shunt result messages are metadata
|
||||||
const uint8_t *result_ptr = &data[2];
|
const uint8_t *result_ptr = &data[2];
|
||||||
|
|
565
STM32Make.make
565
STM32Make.make
|
@ -1,565 +0,0 @@
|
||||||
##########################################################################################################################
|
|
||||||
# File automatically-generated by STM32forVSCode
|
|
||||||
##########################################################################################################################
|
|
||||||
|
|
||||||
# ------------------------------------------------
|
|
||||||
# Generic Makefile (based on gcc)
|
|
||||||
#
|
|
||||||
# ChangeLog :
|
|
||||||
# 2017-02-10 - Several enhancements + project update mode
|
|
||||||
# 2015-07-22 - first version
|
|
||||||
# ------------------------------------------------
|
|
||||||
|
|
||||||
######################################
|
|
||||||
# target
|
|
||||||
######################################
|
|
||||||
TARGET = steering-wheel
|
|
||||||
|
|
||||||
|
|
||||||
######################################
|
|
||||||
# building variables
|
|
||||||
######################################
|
|
||||||
# debug build?
|
|
||||||
DEBUG = 1
|
|
||||||
# optimization
|
|
||||||
OPT = -Og
|
|
||||||
|
|
||||||
|
|
||||||
#######################################
|
|
||||||
# paths
|
|
||||||
#######################################
|
|
||||||
# Build path
|
|
||||||
BUILD_DIR = build
|
|
||||||
|
|
||||||
######################################
|
|
||||||
# source
|
|
||||||
######################################
|
|
||||||
# C sources
|
|
||||||
C_SOURCES = \
|
|
||||||
AZURE_RTOS/App/app_azure_rtos.c \
|
|
||||||
Core/Src/app.c \
|
|
||||||
Core/Src/app_threadx.c \
|
|
||||||
Core/Src/hx8357d.c \
|
|
||||||
Core/Src/leds.c \
|
|
||||||
Core/Src/params.c \
|
|
||||||
Core/Src/shorttimer.c \
|
|
||||||
Core/Src/stm32h7xx_hal_msp.c \
|
|
||||||
Core/Src/stm32h7xx_hal_timebase_tim.c \
|
|
||||||
Core/Src/stm32h7xx_it.c \
|
|
||||||
Core/Src/system_stm32h7xx.c \
|
|
||||||
Core/Src/ui.c \
|
|
||||||
Core/Src/vehicle.c \
|
|
||||||
Core/Src/vehicle_state.c \
|
|
||||||
Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c \
|
|
||||||
Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c \
|
|
||||||
Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_crc.c \
|
|
||||||
Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_crc_ex.c \
|
|
||||||
Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c \
|
|
||||||
Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma2d.c \
|
|
||||||
Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma_ex.c \
|
|
||||||
Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_exti.c \
|
|
||||||
Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_fdcan.c \
|
|
||||||
Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c \
|
|
||||||
Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c \
|
|
||||||
Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_gpio.c \
|
|
||||||
Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c \
|
|
||||||
Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c \
|
|
||||||
Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c_ex.c \
|
|
||||||
Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_jpeg.c \
|
|
||||||
Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_ltdc.c \
|
|
||||||
Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_ltdc_ex.c \
|
|
||||||
Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_mdma.c \
|
|
||||||
Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_ospi.c \
|
|
||||||
Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr.c \
|
|
||||||
Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c \
|
|
||||||
Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c \
|
|
||||||
Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c \
|
|
||||||
Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_spi.c \
|
|
||||||
Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_spi_ex.c \
|
|
||||||
Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c \
|
|
||||||
Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_block_allocate.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_block_pool_cleanup.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_block_pool_create.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_block_pool_delete.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_block_pool_info_get.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_block_pool_initialize.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_block_pool_prioritize.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_block_release.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_byte_allocate.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_byte_pool_cleanup.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_byte_pool_create.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_byte_pool_delete.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_byte_pool_info_get.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_byte_pool_initialize.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_byte_pool_prioritize.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_byte_pool_search.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_byte_release.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_event_flags_cleanup.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_event_flags_create.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_event_flags_delete.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_event_flags_get.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_event_flags_info_get.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_event_flags_initialize.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_event_flags_set.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_event_flags_set_notify.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_initialize_high_level.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_initialize_kernel_enter.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_initialize_kernel_setup.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_mutex_cleanup.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_mutex_create.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_mutex_delete.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_mutex_get.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_mutex_info_get.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_mutex_initialize.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_mutex_prioritize.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_mutex_priority_change.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_mutex_put.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_queue_cleanup.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_queue_create.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_queue_delete.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_queue_flush.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_queue_front_send.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_queue_info_get.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_queue_initialize.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_queue_prioritize.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_queue_receive.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_queue_send.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_queue_send_notify.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_semaphore_ceiling_put.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_semaphore_cleanup.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_semaphore_create.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_semaphore_delete.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_semaphore_get.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_semaphore_info_get.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_semaphore_initialize.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_semaphore_prioritize.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_semaphore_put.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_semaphore_put_notify.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_thread_create.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_thread_delete.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_thread_entry_exit_notify.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_thread_identify.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_thread_info_get.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_thread_initialize.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_thread_preemption_change.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_thread_priority_change.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_thread_relinquish.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_thread_reset.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_thread_resume.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_thread_shell_entry.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_thread_sleep.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_thread_stack_analyze.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_thread_stack_error_handler.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_thread_stack_error_notify.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_thread_suspend.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_thread_system_preempt_check.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_thread_system_resume.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_thread_system_suspend.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_thread_terminate.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_thread_time_slice.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_thread_time_slice_change.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_thread_timeout.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_thread_wait_abort.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_time_get.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_time_set.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_timer_activate.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_timer_change.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_timer_create.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_timer_deactivate.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_timer_delete.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_timer_expiration_process.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_timer_info_get.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_timer_initialize.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_timer_system_activate.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_timer_system_deactivate.c \
|
|
||||||
Middlewares/ST/threadx/common/src/tx_timer_thread_entry.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_block_allocate.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_block_pool_create.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_block_pool_delete.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_block_pool_info_get.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_block_pool_prioritize.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_block_release.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_byte_allocate.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_byte_pool_create.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_byte_pool_delete.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_byte_pool_info_get.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_byte_pool_prioritize.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_byte_release.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_event_flags_create.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_event_flags_delete.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_event_flags_get.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_event_flags_info_get.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_event_flags_set.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_event_flags_set_notify.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_mutex_create.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_mutex_delete.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_mutex_get.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_mutex_info_get.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_mutex_prioritize.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_mutex_put.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_queue_create.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_queue_delete.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_queue_flush.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_queue_front_send.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_queue_info_get.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_queue_prioritize.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_queue_receive.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_queue_send.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_queue_send_notify.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_semaphore_ceiling_put.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_semaphore_create.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_semaphore_delete.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_semaphore_get.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_semaphore_info_get.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_semaphore_prioritize.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_semaphore_put.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_semaphore_put_notify.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_thread_create.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_thread_delete.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_thread_entry_exit_notify.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_thread_info_get.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_thread_preemption_change.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_thread_priority_change.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_thread_relinquish.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_thread_reset.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_thread_resume.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_thread_suspend.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_thread_terminate.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_thread_time_slice_change.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_thread_wait_abort.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_timer_activate.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_timer_change.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_timer_create.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_timer_deactivate.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_timer_delete.c \
|
|
||||||
Middlewares/ST/threadx/common/src/txe_timer_info_get.c \
|
|
||||||
TouchGFX/App/app_touchgfx.c \
|
|
||||||
Utilities/JPEG/jpeg_utils.c
|
|
||||||
|
|
||||||
|
|
||||||
CPP_SOURCES = \
|
|
||||||
Core/Src/STWButtonController.cpp \
|
|
||||||
TouchGFX/generated/fonts/src/ApplicationFontProvider.cpp \
|
|
||||||
TouchGFX/generated/fonts/src/CachedFont.cpp \
|
|
||||||
TouchGFX/generated/fonts/src/FontCache.cpp \
|
|
||||||
TouchGFX/generated/fonts/src/Font_CHINN____20_4bpp_0.cpp \
|
|
||||||
TouchGFX/generated/fonts/src/Font_CHINN____30_4bpp_0.cpp \
|
|
||||||
TouchGFX/generated/fonts/src/Font_CHINN____40_4bpp_0.cpp \
|
|
||||||
TouchGFX/generated/fonts/src/Font_lucon_TTF_20_4bpp_0.cpp \
|
|
||||||
TouchGFX/generated/fonts/src/Font_lucon_TTF_33_4bpp_0.cpp \
|
|
||||||
TouchGFX/generated/fonts/src/Font_lucon_TTF_50_4bpp_0.cpp \
|
|
||||||
TouchGFX/generated/fonts/src/Font_verdana_20_4bpp_0.cpp \
|
|
||||||
TouchGFX/generated/fonts/src/Font_verdanab_20_4bpp_0.cpp \
|
|
||||||
TouchGFX/generated/fonts/src/GeneratedFont.cpp \
|
|
||||||
TouchGFX/generated/fonts/src/Kerning_CHINN____20_4bpp.cpp \
|
|
||||||
TouchGFX/generated/fonts/src/Kerning_CHINN____30_4bpp.cpp \
|
|
||||||
TouchGFX/generated/fonts/src/Kerning_CHINN____40_4bpp.cpp \
|
|
||||||
TouchGFX/generated/fonts/src/Kerning_lucon_TTF_20_4bpp.cpp \
|
|
||||||
TouchGFX/generated/fonts/src/Kerning_lucon_TTF_33_4bpp.cpp \
|
|
||||||
TouchGFX/generated/fonts/src/Kerning_lucon_TTF_50_4bpp.cpp \
|
|
||||||
TouchGFX/generated/fonts/src/Kerning_verdana_20_4bpp.cpp \
|
|
||||||
TouchGFX/generated/fonts/src/Kerning_verdanab_20_4bpp.cpp \
|
|
||||||
TouchGFX/generated/fonts/src/Table_CHINN____20_4bpp.cpp \
|
|
||||||
TouchGFX/generated/fonts/src/Table_CHINN____30_4bpp.cpp \
|
|
||||||
TouchGFX/generated/fonts/src/Table_CHINN____40_4bpp.cpp \
|
|
||||||
TouchGFX/generated/fonts/src/Table_lucon_TTF_20_4bpp.cpp \
|
|
||||||
TouchGFX/generated/fonts/src/Table_lucon_TTF_33_4bpp.cpp \
|
|
||||||
TouchGFX/generated/fonts/src/Table_lucon_TTF_50_4bpp.cpp \
|
|
||||||
TouchGFX/generated/fonts/src/Table_verdana_20_4bpp.cpp \
|
|
||||||
TouchGFX/generated/fonts/src/Table_verdanab_20_4bpp.cpp \
|
|
||||||
TouchGFX/generated/fonts/src/UnmappedDataFont.cpp \
|
|
||||||
TouchGFX/generated/gui_generated/src/ami_screen/AMIViewBase.cpp \
|
|
||||||
TouchGFX/generated/gui_generated/src/common/FrontendApplicationBase.cpp \
|
|
||||||
TouchGFX/generated/gui_generated/src/containers/ConfigItemBase.cpp \
|
|
||||||
TouchGFX/generated/gui_generated/src/containers/DebugViewItemBase.cpp \
|
|
||||||
TouchGFX/generated/gui_generated/src/containers/DebugViewLineBase.cpp \
|
|
||||||
TouchGFX/generated/gui_generated/src/containers/DriverViewFieldBase.cpp \
|
|
||||||
TouchGFX/generated/gui_generated/src/containers/DriverViewFieldSelectionBase.cpp \
|
|
||||||
TouchGFX/generated/gui_generated/src/containers/DriverViewStatusItemBase.cpp \
|
|
||||||
TouchGFX/generated/gui_generated/src/containers/ErrorPopupBase.cpp \
|
|
||||||
TouchGFX/generated/gui_generated/src/containers/MissionSelectElementBase.cpp \
|
|
||||||
TouchGFX/generated/gui_generated/src/containers/TemperatureBase.cpp \
|
|
||||||
TouchGFX/generated/gui_generated/src/debugview_screen/DebugViewViewBase.cpp \
|
|
||||||
TouchGFX/generated/gui_generated/src/driverview_screen/DriverViewViewBase.cpp \
|
|
||||||
TouchGFX/generated/gui_generated/src/missionselect_screen/MissionSelectViewBase.cpp \
|
|
||||||
TouchGFX/generated/gui_generated/src/vehicleconfig_screen/VehicleConfigViewBase.cpp \
|
|
||||||
TouchGFX/generated/images/src/BitmapDatabase.cpp \
|
|
||||||
TouchGFX/generated/images/src/SVGDatabase.cpp \
|
|
||||||
TouchGFX/generated/images/src/image_Fasttube_Logo.cpp \
|
|
||||||
TouchGFX/generated/images/src/image_Fasttube_Logo_small.cpp \
|
|
||||||
TouchGFX/generated/images/src/image_Fasttube_Logo_small_white.cpp \
|
|
||||||
TouchGFX/generated/images/src/image_Fasttube_Logo_white.cpp \
|
|
||||||
TouchGFX/generated/images/src/image_bat_bar_bg.cpp \
|
|
||||||
TouchGFX/generated/images/src/image_logo_dv_small.cpp \
|
|
||||||
TouchGFX/generated/images/src/image_logo_dv_small_white.cpp \
|
|
||||||
TouchGFX/generated/images/src/image_precharge_bg.cpp \
|
|
||||||
TouchGFX/generated/images/src/image_prog_horiz_bg.cpp \
|
|
||||||
TouchGFX/generated/texts/src/LanguageGb.cpp \
|
|
||||||
TouchGFX/generated/texts/src/Texts.cpp \
|
|
||||||
TouchGFX/generated/texts/src/TypedTextDatabase.cpp \
|
|
||||||
TouchGFX/gui/src/ami_screen/AMIPresenter.cpp \
|
|
||||||
TouchGFX/gui/src/ami_screen/AMIView.cpp \
|
|
||||||
TouchGFX/gui/src/common/FrontendApplication.cpp \
|
|
||||||
TouchGFX/gui/src/common/NamedField.cpp \
|
|
||||||
TouchGFX/gui/src/containers/ConfigItem.cpp \
|
|
||||||
TouchGFX/gui/src/containers/DebugViewItem.cpp \
|
|
||||||
TouchGFX/gui/src/containers/DebugViewLine.cpp \
|
|
||||||
TouchGFX/gui/src/containers/DriverViewField.cpp \
|
|
||||||
TouchGFX/gui/src/containers/DriverViewFieldSelection.cpp \
|
|
||||||
TouchGFX/gui/src/containers/DriverViewStatusItem.cpp \
|
|
||||||
TouchGFX/gui/src/containers/ErrorPopup.cpp \
|
|
||||||
TouchGFX/gui/src/containers/MissionSelectElement.cpp \
|
|
||||||
TouchGFX/gui/src/containers/Temperature.cpp \
|
|
||||||
TouchGFX/gui/src/debugview_screen/DebugViewPresenter.cpp \
|
|
||||||
TouchGFX/gui/src/debugview_screen/DebugViewView.cpp \
|
|
||||||
TouchGFX/gui/src/driverview_screen/DriverViewPresenter.cpp \
|
|
||||||
TouchGFX/gui/src/driverview_screen/DriverViewView.cpp \
|
|
||||||
TouchGFX/gui/src/missionselect_screen/MissionSelectPresenter.cpp \
|
|
||||||
TouchGFX/gui/src/missionselect_screen/MissionSelectView.cpp \
|
|
||||||
TouchGFX/gui/src/model/Model.cpp \
|
|
||||||
TouchGFX/gui/src/vehicleconfig_screen/VehicleConfigPresenter.cpp \
|
|
||||||
TouchGFX/gui/src/vehicleconfig_screen/VehicleConfigView.cpp \
|
|
||||||
TouchGFX/target/STM32TouchController.cpp \
|
|
||||||
TouchGFX/target/TouchGFXGPIO.cpp \
|
|
||||||
TouchGFX/target/TouchGFXHAL.cpp \
|
|
||||||
TouchGFX/target/generated/OSWrappers.cpp \
|
|
||||||
TouchGFX/target/generated/STM32DMA.cpp \
|
|
||||||
TouchGFX/target/generated/TouchGFXConfiguration.cpp \
|
|
||||||
TouchGFX/target/generated/TouchGFXGeneratedHAL.cpp \
|
|
||||||
build/main.cpp
|
|
||||||
|
|
||||||
|
|
||||||
# ASM sources
|
|
||||||
ASM_SOURCES = \
|
|
||||||
Core/Src/tx_initialize_low_level.s \
|
|
||||||
Middlewares/ST/threadx/ports/cortex_m7/gnu/src/tx_misra.S \
|
|
||||||
Middlewares/ST/threadx/ports/cortex_m7/gnu/src/tx_misra.s \
|
|
||||||
Middlewares/ST/threadx/ports/cortex_m7/gnu/src/tx_thread_context_restore.S \
|
|
||||||
Middlewares/ST/threadx/ports/cortex_m7/gnu/src/tx_thread_context_restore.s \
|
|
||||||
Middlewares/ST/threadx/ports/cortex_m7/gnu/src/tx_thread_context_save.S \
|
|
||||||
Middlewares/ST/threadx/ports/cortex_m7/gnu/src/tx_thread_context_save.s \
|
|
||||||
Middlewares/ST/threadx/ports/cortex_m7/gnu/src/tx_thread_interrupt_control.S \
|
|
||||||
Middlewares/ST/threadx/ports/cortex_m7/gnu/src/tx_thread_interrupt_control.s \
|
|
||||||
Middlewares/ST/threadx/ports/cortex_m7/gnu/src/tx_thread_interrupt_disable.S \
|
|
||||||
Middlewares/ST/threadx/ports/cortex_m7/gnu/src/tx_thread_interrupt_disable.s \
|
|
||||||
Middlewares/ST/threadx/ports/cortex_m7/gnu/src/tx_thread_interrupt_restore.S \
|
|
||||||
Middlewares/ST/threadx/ports/cortex_m7/gnu/src/tx_thread_interrupt_restore.s \
|
|
||||||
Middlewares/ST/threadx/ports/cortex_m7/gnu/src/tx_thread_schedule.S \
|
|
||||||
Middlewares/ST/threadx/ports/cortex_m7/gnu/src/tx_thread_schedule.s \
|
|
||||||
Middlewares/ST/threadx/ports/cortex_m7/gnu/src/tx_thread_stack_build.S \
|
|
||||||
Middlewares/ST/threadx/ports/cortex_m7/gnu/src/tx_thread_stack_build.s \
|
|
||||||
Middlewares/ST/threadx/ports/cortex_m7/gnu/src/tx_thread_system_return.S \
|
|
||||||
Middlewares/ST/threadx/ports/cortex_m7/gnu/src/tx_thread_system_return.s \
|
|
||||||
Middlewares/ST/threadx/ports/cortex_m7/gnu/src/tx_timer_interrupt.S \
|
|
||||||
Middlewares/ST/threadx/ports/cortex_m7/gnu/src/tx_timer_interrupt.s \
|
|
||||||
startup_stm32h7a3xx.s
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#######################################
|
|
||||||
# binaries
|
|
||||||
#######################################
|
|
||||||
PREFIX = arm-none-eabi-
|
|
||||||
POSTFIX = "
|
|
||||||
# The gcc compiler bin path can be either defined in make command via GCC_PATH variable (> make GCC_PATH=xxx)
|
|
||||||
# either it can be added to the PATH environment variable.
|
|
||||||
GCC_PATH="c:/Users/Jasper/AppData/Roaming/Code/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/arm-none-eabi-gcc/12.2.1-1.2.1/.content/bin
|
|
||||||
ifdef GCC_PATH
|
|
||||||
CXX = $(GCC_PATH)/$(PREFIX)g++$(POSTFIX)
|
|
||||||
CC = $(GCC_PATH)/$(PREFIX)gcc$(POSTFIX)
|
|
||||||
AS = $(GCC_PATH)/$(PREFIX)gcc$(POSTFIX) -x assembler-with-cpp
|
|
||||||
CP = $(GCC_PATH)/$(PREFIX)objcopy$(POSTFIX)
|
|
||||||
SZ = $(GCC_PATH)/$(PREFIX)size$(POSTFIX)
|
|
||||||
else
|
|
||||||
CXX = $(PREFIX)g++
|
|
||||||
CC = $(PREFIX)gcc
|
|
||||||
AS = $(PREFIX)gcc -x assembler-with-cpp
|
|
||||||
CP = $(PREFIX)objcopy
|
|
||||||
SZ = $(PREFIX)size
|
|
||||||
endif
|
|
||||||
HEX = $(CP) -O ihex
|
|
||||||
BIN = $(CP) -O binary -S
|
|
||||||
|
|
||||||
#######################################
|
|
||||||
# CFLAGS
|
|
||||||
#######################################
|
|
||||||
# cpu
|
|
||||||
CPU = -mcpu=cortex-m7
|
|
||||||
|
|
||||||
# fpu
|
|
||||||
FPU = -mfpu=fpv5-d16
|
|
||||||
|
|
||||||
# float-abi
|
|
||||||
FLOAT-ABI = -mfloat-abi=hard
|
|
||||||
|
|
||||||
# mcu
|
|
||||||
MCU = $(CPU) -mthumb $(FPU) $(FLOAT-ABI)
|
|
||||||
|
|
||||||
# macros for gcc
|
|
||||||
# AS defines
|
|
||||||
AS_DEFS =
|
|
||||||
|
|
||||||
# C defines
|
|
||||||
C_DEFS = \
|
|
||||||
-DFTCAN_NUM_FILTERS=32 \
|
|
||||||
-DSTM32H7 \
|
|
||||||
-DSTM32H7A3xx \
|
|
||||||
-DTX_INCLUDE_USER_DEFINE_FILE \
|
|
||||||
-DUSE_HAL_DRIVER
|
|
||||||
|
|
||||||
|
|
||||||
# CXX defines
|
|
||||||
CXX_DEFS = \
|
|
||||||
-DSTM32H7A3xx \
|
|
||||||
-DTX_INCLUDE_USER_DEFINE_FILE \
|
|
||||||
-DUSE_HAL_DRIVER
|
|
||||||
|
|
||||||
|
|
||||||
# AS includes
|
|
||||||
AS_INCLUDES = \
|
|
||||||
|
|
||||||
# C includes
|
|
||||||
C_INCLUDES = \
|
|
||||||
-IAZURE_RTOS/App \
|
|
||||||
-ICore/Inc \
|
|
||||||
-IDrivers/CMSIS/Device/ST/STM32H7xx/Include \
|
|
||||||
-IDrivers/CMSIS/Include \
|
|
||||||
-IDrivers/STM32H7xx_HAL_Driver/Inc \
|
|
||||||
-IDrivers/STM32H7xx_HAL_Driver/Inc/Legacy \
|
|
||||||
-IMiddlewares/ST/threadx/common/inc/ \
|
|
||||||
-IMiddlewares/ST/threadx/ports/cortex_m7/gnu/inc/ \
|
|
||||||
-IMiddlewares/ST/touchgfx/framework/include \
|
|
||||||
-ITouchGFX/App \
|
|
||||||
-ITouchGFX/generated/fonts/include \
|
|
||||||
-ITouchGFX/generated/gui_generated/include \
|
|
||||||
-ITouchGFX/generated/images/include \
|
|
||||||
-ITouchGFX/generated/texts/include \
|
|
||||||
-ITouchGFX/generated/videos/include \
|
|
||||||
-ITouchGFX/gui/include \
|
|
||||||
-ITouchGFX/target \
|
|
||||||
-ITouchGFX/target/generated \
|
|
||||||
-IUtilities/JPEG
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# compile gcc flags
|
|
||||||
ASFLAGS = $(MCU) $(AS_DEFS) $(AS_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections
|
|
||||||
|
|
||||||
CFLAGS = $(MCU) $(C_DEFS) $(C_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections
|
|
||||||
|
|
||||||
CXXFLAGS = $(MCU) $(CXX_DEFS) $(C_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections -feliminate-unused-debug-types
|
|
||||||
|
|
||||||
ifeq ($(DEBUG), 1)
|
|
||||||
CFLAGS += -g -gdwarf -ggdb
|
|
||||||
CXXFLAGS += -g -gdwarf -ggdb
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Add additional flags
|
|
||||||
CFLAGS += -Wall -Werror -Wextra -Wno-missing-field-initializers -Wno-unused-parameter
|
|
||||||
ASFLAGS +=
|
|
||||||
CXXFLAGS += -Wall -Werror -Wextra -Wno-missing-field-initializers -Wno-unused-parameter -fno-rtti
|
|
||||||
|
|
||||||
# Generate dependency information
|
|
||||||
CFLAGS += -MMD -MP -MF"$(@:%.o=%.d)"
|
|
||||||
CXXFLAGS += -MMD -MP -MF"$(@:%.o=%.d)"
|
|
||||||
|
|
||||||
#######################################
|
|
||||||
# LDFLAGS
|
|
||||||
#######################################
|
|
||||||
# link script
|
|
||||||
LDSCRIPT = STM32H7A3ZITx_FLASH_nocube.ld
|
|
||||||
|
|
||||||
# libraries
|
|
||||||
LIBS = -lc -lm -lnosys -ltouchgfx-float-abi-hard
|
|
||||||
LIBDIR = \
|
|
||||||
-LMiddlewares/ST/touchgfx/lib/core/cortex_m7/gcc
|
|
||||||
|
|
||||||
|
|
||||||
# Additional LD Flags from config file
|
|
||||||
ADDITIONALLDFLAGS = -specs=nano.specs -specs=nosys.specs
|
|
||||||
|
|
||||||
LDFLAGS = $(MCU) $(ADDITIONALLDFLAGS) -T$(LDSCRIPT) $(LIBDIR) $(LIBS) -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref -Wl,--gc-sections
|
|
||||||
|
|
||||||
# default action: build all
|
|
||||||
all: $(BUILD_DIR)/$(TARGET).elf $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).bin
|
|
||||||
|
|
||||||
|
|
||||||
#######################################
|
|
||||||
# build the application
|
|
||||||
#######################################
|
|
||||||
# list of cpp program objects
|
|
||||||
OBJECTS = $(addprefix $(BUILD_DIR)/,$(notdir $(CPP_SOURCES:.cpp=.o)))
|
|
||||||
vpath %.cpp $(sort $(dir $(CPP_SOURCES)))
|
|
||||||
|
|
||||||
# list of C objects
|
|
||||||
OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(C_SOURCES:.c=.o)))
|
|
||||||
vpath %.c $(sort $(dir $(C_SOURCES)))
|
|
||||||
|
|
||||||
# list of ASM program objects
|
|
||||||
# list of ASM program objects
|
|
||||||
UPPER_CASE_ASM_SOURCES = $(filter %.S,$(ASM_SOURCES))
|
|
||||||
LOWER_CASE_ASM_SOURCES = $(filter %.s,$(ASM_SOURCES))
|
|
||||||
|
|
||||||
OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(UPPER_CASE_ASM_SOURCES:.S=.o)))
|
|
||||||
OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(LOWER_CASE_ASM_SOURCES:.s=.o)))
|
|
||||||
vpath %.s $(sort $(dir $(ASM_SOURCES)))
|
|
||||||
|
|
||||||
$(BUILD_DIR)/%.o: %.cpp STM32Make.make | $(BUILD_DIR)
|
|
||||||
$(CXX) -c $(CXXFLAGS) -Wa,-a,-ad,-alms=$(BUILD_DIR)/$(notdir $(<:.cpp=.lst)) $< -o $@
|
|
||||||
|
|
||||||
$(BUILD_DIR)/%.o: %.cxx STM32Make.make | $(BUILD_DIR)
|
|
||||||
$(CXX) -c $(CXXFLAGS) -Wa,-a,-ad,-alms=$(BUILD_DIR)/$(notdir $(<:.cxx=.lst)) $< -o $@
|
|
||||||
|
|
||||||
$(BUILD_DIR)/%.o: %.c STM32Make.make | $(BUILD_DIR)
|
|
||||||
$(CC) -c $(CFLAGS) -Wa,-a,-ad,-alms=$(BUILD_DIR)/$(notdir $(<:.c=.lst)) $< -o $@
|
|
||||||
|
|
||||||
$(BUILD_DIR)/%.o: %.s STM32Make.make | $(BUILD_DIR)
|
|
||||||
$(AS) -c $(CFLAGS) $< -o $@
|
|
||||||
|
|
||||||
$(BUILD_DIR)/%.o: %.S STM32Make.make | $(BUILD_DIR)
|
|
||||||
$(AS) -c $(CFLAGS) $< -o $@
|
|
||||||
|
|
||||||
$(BUILD_DIR)/$(TARGET).elf: $(OBJECTS) STM32Make.make
|
|
||||||
$(CXX) $(OBJECTS) $(LDFLAGS) -o $@
|
|
||||||
$(SZ) $@
|
|
||||||
|
|
||||||
$(BUILD_DIR)/%.hex: $(BUILD_DIR)/%.elf | $(BUILD_DIR)
|
|
||||||
$(HEX) $< $@
|
|
||||||
|
|
||||||
$(BUILD_DIR)/%.bin: $(BUILD_DIR)/%.elf | $(BUILD_DIR)
|
|
||||||
$(BIN) $< $@
|
|
||||||
|
|
||||||
$(BUILD_DIR):
|
|
||||||
mkdir $@
|
|
||||||
|
|
||||||
#######################################
|
|
||||||
# flash
|
|
||||||
#######################################
|
|
||||||
flash: $(BUILD_DIR)/$(TARGET).elf
|
|
||||||
"C:/USERS/JASPER/APPDATA/ROAMING/CODE/USER/GLOBALSTORAGE/BMD.STM32-FOR-VSCODE/@XPACK-DEV-TOOLS/OPENOCD/0.12.0-1.1/.CONTENT/BIN/OPENOCD.EXE" -f ./openocd.cfg -c "program $(BUILD_DIR)/$(TARGET).elf verify reset exit"
|
|
||||||
|
|
||||||
#######################################
|
|
||||||
# erase
|
|
||||||
#######################################
|
|
||||||
erase: $(BUILD_DIR)/$(TARGET).elf
|
|
||||||
"C:/USERS/JASPER/APPDATA/ROAMING/CODE/USER/GLOBALSTORAGE/BMD.STM32-FOR-VSCODE/@XPACK-DEV-TOOLS/OPENOCD/0.12.0-1.1/.CONTENT/BIN/OPENOCD.EXE" -f ./openocd.cfg -c "init; reset halt; stm32h7x mass_erase 0; exit"
|
|
||||||
|
|
||||||
#######################################
|
|
||||||
# clean up
|
|
||||||
#######################################
|
|
||||||
clean:
|
|
||||||
cmd /c rd /s /q $(BUILD_DIR)
|
|
||||||
|
|
||||||
#######################################
|
|
||||||
# custom makefile rules
|
|
||||||
#######################################
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#######################################
|
|
||||||
# dependencies
|
|
||||||
#######################################
|
|
||||||
-include $(wildcard $(BUILD_DIR)/*.d)
|
|
||||||
|
|
||||||
# *** EOF ***
|
|
|
@ -14,6 +14,7 @@ public:
|
||||||
virtual void initialize() override;
|
virtual void initialize() override;
|
||||||
|
|
||||||
void setSelected(int selected);
|
void setSelected(int selected);
|
||||||
|
void setDirty(bool dirty);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
private:
|
private:
|
||||||
|
|
|
@ -15,6 +15,7 @@ public:
|
||||||
|
|
||||||
virtual void vehicleStateUpdated(){};
|
virtual void vehicleStateUpdated(){};
|
||||||
virtual void nextScreen(){};
|
virtual void nextScreen(){};
|
||||||
|
virtual void paramConfirmed(){};
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
Model *model;
|
Model *model;
|
||||||
|
|
|
@ -17,18 +17,19 @@ public:
|
||||||
* The activate function is called automatically when this screen is "switched
|
* The activate function is called automatically when this screen is "switched
|
||||||
* in" (ie. made active). Initialization logic can be placed here.
|
* in" (ie. made active). Initialization logic can be placed here.
|
||||||
*/
|
*/
|
||||||
virtual void activate();
|
virtual void activate() override;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The deactivate function is called automatically when this screen is
|
* The deactivate function is called automatically when this screen is
|
||||||
* "switched out" (ie. made inactive). Teardown functionality can be placed
|
* "switched out" (ie. made inactive). Teardown functionality can be placed
|
||||||
* here.
|
* here.
|
||||||
*/
|
*/
|
||||||
virtual void deactivate();
|
virtual void deactivate() override;
|
||||||
|
|
||||||
virtual ~VehicleConfigPresenter(){};
|
virtual ~VehicleConfigPresenter(){};
|
||||||
|
|
||||||
void nextScreen() override;
|
void nextScreen() override;
|
||||||
|
void paramConfirmed() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
VehicleConfigPresenter();
|
VehicleConfigPresenter();
|
||||||
|
|
|
@ -19,10 +19,14 @@ public:
|
||||||
void incParam() override;
|
void incParam() override;
|
||||||
void confirmParam() override;
|
void confirmParam() override;
|
||||||
|
|
||||||
|
void abxParamConfirmed(ParamType param);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
private:
|
private:
|
||||||
int selectedParam;
|
int selectedParam;
|
||||||
|
|
||||||
|
bool paramsDirty[ParamType_COUNT] = {false};
|
||||||
|
|
||||||
void updateSelectedParam(int select);
|
void updateSelectedParam(int select);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,7 @@ void AMIPresenter::deactivate() {}
|
||||||
void AMIPresenter::vehicleStateUpdated() {
|
void AMIPresenter::vehicleStateUpdated() {
|
||||||
view.setMission(vehicle_state.active_mission);
|
view.setMission(vehicle_state.active_mission);
|
||||||
view.setASState(vehicle_state.as_state);
|
view.setASState(vehicle_state.as_state);
|
||||||
|
view.setIniChkState(vehicle_state.ini_chk_state);
|
||||||
view.updateDataFields();
|
view.updateDataFields();
|
||||||
#ifndef SIMULATOR
|
#ifndef SIMULATOR
|
||||||
view.setJetsonTimeout(HAL_GetTick() - vehicle_state.last_jetson_msg > 500);
|
view.setJetsonTimeout(HAL_GetTick() - vehicle_state.last_jetson_msg > 500);
|
||||||
|
|
|
@ -88,7 +88,7 @@ void AMIView::setIniChkState(IniChkState state) {
|
||||||
}
|
}
|
||||||
progressBar.invalidate();
|
progressBar.invalidate();
|
||||||
|
|
||||||
const char *label;
|
const char *label = "UNKNOWN";
|
||||||
switch (vehicle_state.ini_chk_state) {
|
switch (vehicle_state.ini_chk_state) {
|
||||||
case INICHK_START:
|
case INICHK_START:
|
||||||
label = "START";
|
label = "START";
|
||||||
|
@ -128,9 +128,8 @@ void AMIView::setIniChkState(IniChkState state) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void AMIView::updateDataFields() {
|
void AMIView::updateDataFields() {
|
||||||
// TODO: Accumulator pressures aren't transmitted yet
|
paField.setValue(vehicle_state.hyd_press_a);
|
||||||
paField.setValue(0);
|
pbField.setValue(vehicle_state.hyd_press_b);
|
||||||
pbField.setValue(0);
|
|
||||||
pfField.setValue(vehicle_state.brake_press_f);
|
pfField.setValue(vehicle_state.brake_press_f);
|
||||||
prField.setValue(vehicle_state.brake_press_r);
|
prField.setValue(vehicle_state.brake_press_r);
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,14 @@ void ConfigItem::setSelected(int selected) {
|
||||||
bg.invalidate();
|
bg.invalidate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ConfigItem::setDirty(bool dirty) {
|
||||||
|
if (dirty) {
|
||||||
|
value.setColor(touchgfx::Color::getColorFromRGB(0xFF, 0x00, 0x00));
|
||||||
|
} else {
|
||||||
|
value.setColor(touchgfx::Color::getColorFromRGB(0xFF, 0xFF, 0xFF));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void ConfigItem::typeUpdated() {
|
void ConfigItem::typeUpdated() {
|
||||||
switch (desc->kind) {
|
switch (desc->kind) {
|
||||||
case NamedFieldKind::Float:
|
case NamedFieldKind::Float:
|
||||||
|
|
|
@ -17,9 +17,8 @@ void Model::tick() { modelListener->vehicleStateUpdated(); }
|
||||||
|
|
||||||
void Model::tick() {
|
void Model::tick() {
|
||||||
ULONG events;
|
ULONG events;
|
||||||
if (tx_event_flags_get(&gui_update_events,
|
if (tx_event_flags_get(&gui_update_events, GUI_UPDATE_ALL, TX_OR_CLEAR,
|
||||||
GUI_UPDATE_VEHICLE_STATE | GUI_UPDATE_NEXT_SCREEN,
|
&events, TX_NO_WAIT) != TX_SUCCESS) {
|
||||||
TX_OR_CLEAR, &events, TX_NO_WAIT) != TX_SUCCESS) {
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (events & GUI_UPDATE_NEXT_SCREEN) {
|
if (events & GUI_UPDATE_NEXT_SCREEN) {
|
||||||
|
@ -28,6 +27,9 @@ void Model::tick() {
|
||||||
if (events & GUI_UPDATE_VEHICLE_STATE) {
|
if (events & GUI_UPDATE_VEHICLE_STATE) {
|
||||||
modelListener->vehicleStateUpdated();
|
modelListener->vehicleStateUpdated();
|
||||||
}
|
}
|
||||||
|
if (events & GUI_UPDATE_PARAM_CONFIRMED) {
|
||||||
|
modelListener->paramConfirmed();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // SIMULATOR
|
#endif // SIMULATOR
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
#include "vehicle_state.h"
|
||||||
#include <gui/vehicleconfig_screen/VehicleConfigPresenter.hpp>
|
#include <gui/vehicleconfig_screen/VehicleConfigPresenter.hpp>
|
||||||
#include <gui/vehicleconfig_screen/VehicleConfigView.hpp>
|
#include <gui/vehicleconfig_screen/VehicleConfigView.hpp>
|
||||||
|
|
||||||
|
@ -12,3 +13,7 @@ void VehicleConfigPresenter::nextScreen() {
|
||||||
static_cast<FrontendApplication *>(Application::getInstance())
|
static_cast<FrontendApplication *>(Application::getInstance())
|
||||||
->gotoDebugViewScreenNoTransition();
|
->gotoDebugViewScreenNoTransition();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void VehicleConfigPresenter::paramConfirmed() {
|
||||||
|
view.abxParamConfirmed(vehicle_state.last_param_confirmed);
|
||||||
|
}
|
||||||
|
|
|
@ -18,6 +18,7 @@ void VehicleConfigView::tearDownScreen() {
|
||||||
void VehicleConfigView::paramsUpdateItem(ConfigItem &item, int16_t itemIndex) {
|
void VehicleConfigView::paramsUpdateItem(ConfigItem &item, int16_t itemIndex) {
|
||||||
item.setType(static_cast<ParamType>(itemIndex));
|
item.setType(static_cast<ParamType>(itemIndex));
|
||||||
item.setSelected(itemIndex == selectedParam);
|
item.setSelected(itemIndex == selectedParam);
|
||||||
|
item.setDirty(paramsDirty[itemIndex]);
|
||||||
}
|
}
|
||||||
|
|
||||||
void VehicleConfigView::selectPrevParam() {
|
void VehicleConfigView::selectPrevParam() {
|
||||||
|
@ -34,10 +35,12 @@ void VehicleConfigView::selectNextParam() {
|
||||||
|
|
||||||
void VehicleConfigView::decParam() {
|
void VehicleConfigView::decParam() {
|
||||||
params_dec(static_cast<ParamType>(selectedParam));
|
params_dec(static_cast<ParamType>(selectedParam));
|
||||||
|
paramsDirty[selectedParam] = true;
|
||||||
params.itemChanged(selectedParam);
|
params.itemChanged(selectedParam);
|
||||||
}
|
}
|
||||||
void VehicleConfigView::incParam() {
|
void VehicleConfigView::incParam() {
|
||||||
params_inc(static_cast<ParamType>(selectedParam));
|
params_inc(static_cast<ParamType>(selectedParam));
|
||||||
|
paramsDirty[selectedParam] = true;
|
||||||
params.itemChanged(selectedParam);
|
params.itemChanged(selectedParam);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -45,6 +48,11 @@ void VehicleConfigView::confirmParam() {
|
||||||
params_broadcast(static_cast<ParamType>(selectedParam));
|
params_broadcast(static_cast<ParamType>(selectedParam));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void VehicleConfigView::abxParamConfirmed(ParamType param) {
|
||||||
|
paramsDirty[param] = false;
|
||||||
|
params.itemChanged(param);
|
||||||
|
}
|
||||||
|
|
||||||
void VehicleConfigView::updateSelectedParam(int select) {
|
void VehicleConfigView::updateSelectedParam(int select) {
|
||||||
int previousSelected = selectedParam;
|
int previousSelected = selectedParam;
|
||||||
selectedParam = select;
|
selectedParam = select;
|
||||||
|
|
Loading…
Reference in New Issue