From a87db2ceb42b70684157a0083afec714d3476ec8 Mon Sep 17 00:00:00 2001 From: hanyongwei <2043702190@qq.com> Date: Mon, 17 Aug 2026 10:44:20 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=8A=A0=E9=80=9F=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E5=B0=8F=E4=BA=8E=E8=B5=B7=E5=A7=8B=E8=84=89=E5=86=B2?= =?UTF-8?q?=E5=91=A8=E6=9C=9F=E7=9A=84=E5=A4=84=E7=90=86=EF=BC=8C=E7=9B=B4?= =?UTF-8?q?=E6=8E=A5=E9=98=B6=E8=B7=83=E5=88=B0=E7=9B=AE=E6=A0=87=E9=A2=91?= =?UTF-8?q?=E7=8E=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- drivers/Include/stm32f4xx_it.h | 3 + drivers/Source/stm32f4xx_it.c | 31 + iar/plsr.dep | 2698 +++++++++++++------------ iar/plsr.ewp | 10 + plsr/accel_curve/plsr_accel_curve.c | 76 +- plsr/accel_curve/plsr_accel_curve.h | 16 +- plsr/param/plsr_param.h | 10 +- plsr/path_plan/plsr_path_plan.c | 9 +- plsr/path_plan/plsr_path_plan.h | 5 +- plsr/plsr.c | 2 + plsr/pulse_driver/plsr_pulse_driver.c | 14 +- plsr/run_control/plsr_run_control.c | 964 +++++---- plsr/run_control/plsr_run_control.h | 1 + plsr/signal_io/plsr_signal_io.c | 161 ++ plsr/signal_io/plsr_signal_io.h | 45 + 15 files changed, 2334 insertions(+), 1711 deletions(-) create mode 100644 plsr/signal_io/plsr_signal_io.c create mode 100644 plsr/signal_io/plsr_signal_io.h diff --git a/drivers/Include/stm32f4xx_it.h b/drivers/Include/stm32f4xx_it.h index c484d85..15f2bc3 100644 --- a/drivers/Include/stm32f4xx_it.h +++ b/drivers/Include/stm32f4xx_it.h @@ -56,6 +56,9 @@ void DebugMon_Handler(void); void PendSV_Handler(void); void SysTick_Handler(void); void TIM2_IRQHandler(void); +void TIM3_IRQHandler(void); +void EXTI9_5_IRQHandler(void); +void EXTI15_10_IRQHandler(void); void TIM1_UP_TIM10_IRQHandler(void); void TIM1_TRG_COM_TIM11_IRQHandler(void); void TIM8_UP_TIM13_IRQHandler(void); diff --git a/drivers/Source/stm32f4xx_it.c b/drivers/Source/stm32f4xx_it.c index 270bc84..5ef0f05 100644 --- a/drivers/Source/stm32f4xx_it.c +++ b/drivers/Source/stm32f4xx_it.c @@ -24,6 +24,7 @@ /* USER CODE BEGIN Includes */ #include "ucos_ii.h" #include "os_cpu.h" +#include "plsr_signal_io.h" /* USER CODE END Includes */ /* Private typedef -----------------------------------------------------------*/ @@ -223,6 +224,36 @@ void TIM2_IRQHandler(void) OSIntExit(); } +/** + * @brief TIM3:PLSR WAIT/ACT 1ms 时基 + */ +void TIM3_IRQHandler(void) +{ + OSIntEnter(); + PlsrSignalIoOnTim3Irq(); + OSIntExit(); +} + +/** + * @brief EXTI5~9:X4=PB5 下降沿 + */ +void EXTI9_5_IRQHandler(void) +{ + OSIntEnter(); + PlsrSignalIoOnExti9_5(); + OSIntExit(); +} + +/** + * @brief EXTI10~15:X5=PG12 下降沿 + */ +void EXTI15_10_IRQHandler(void) +{ + OSIntEnter(); + PlsrSignalIoOnExti15_10(); + OSIntExit(); +} + /** * @brief TIM1 Update / TIM10(PLSR Y0 脉冲计数) */ diff --git a/iar/plsr.dep b/iar/plsr.dep index c57755c..ee1d4a9 100644 --- a/iar/plsr.dep +++ b/iar/plsr.dep @@ -1,692 +1,715 @@ 4 - 3562692332 + 3051361876 Debug - $PROJ_DIR$\..\app\main.c - $PROJ_DIR$\..\app\main.h - $PROJ_DIR$\..\cmsis\Core\Include\cmsis_compiler.h - $PROJ_DIR$\..\cmsis\Core\Include\cmsis_cp15.h - $PROJ_DIR$\..\cmsis\Core\Include\core_cm4.h - $PROJ_DIR$\..\drivers\Include\stm32f4xx_hal.h - $PROJ_DIR$\..\drivers\Include\stm32f4xx_hal_cortex.h - $PROJ_DIR$\..\drivers\Include\stm32f4xx_hal_conf.h - $PROJ_DIR$\..\cmsis\Device\Include\stm32f4xx.h - $PROJ_DIR$\..\cmsis\Device\Include\stm32f407xx.h - $PROJ_DIR$\..\drivers\Include\Legacy\stm32_hal_legacy.h - $PROJ_DIR$\..\cmsis\Device\Include\system_stm32f4xx.h - $PROJ_DIR$\..\cmsis\Core\Include\mpu_armv7.h - $PROJ_DIR$\..\drivers\Include\gpio.h - $PROJ_DIR$\..\drivers\Include\stm32f4xx_hal_def.h - $PROJ_DIR$\..\cmsis\Core\Include\cmsis_version.h - $PROJ_DIR$\..\cmsis\Core\Include\cmsis_iccarm.h - $TOOLKIT_DIR$\inc\c\DLib_Config_Full.h - $TOOLKIT_DIR$\inc\c\stdint.h - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_rcc_ex.xcl - $PROJ_DIR$\Debug\Obj\plsr_param.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dsi.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_flash_ramfunc.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_pcd.o - $PROJ_DIR$\Debug\Obj\os_task.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_pwr.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_rtc.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_exti.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_sai.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_lptim.__cstat.et - $PROJ_DIR$\Debug\Obj\lib_str.__cstat.et - $PROJ_DIR$\Debug\Obj\tim.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_fmpi2c.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_pwr.__cstat.et - $PROJ_DIR$\Debug\Obj\os_cpu_c.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_mmc.__cstat.et - $PROJ_DIR$\Debug\Obj\os_task.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_fmpi2c.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_smbus.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_can.xcl - $TOOLKIT_DIR$\inc\c\stddef.h - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_spdifrx.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_sdmmc.__cstat.et - $TOOLKIT_DIR$\inc\c\DLib_Product.h - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_sai.o - $PROJ_DIR$\Debug\Obj\modbus_rtu.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_pwr.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_dac.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dac_ex.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_tim_ex.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_it.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_usb.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_tim.o - $PROJ_DIR$\Debug\Obj\plsr.pbd - $PROJ_DIR$\Debug\Obj\plsr_command.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_spdifrx.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_sd.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_mmc.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_wwdg.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_tim.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_i2c.xcl - $PROJ_DIR$\Debug\Obj\os_dbg.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_lptim.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_nor.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_nor.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_rng.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_sdram.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_i2c.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_fmpsmbus_ex.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_hcd.xcl - $PROJ_DIR$\Debug\Obj\main.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dma.o - $PROJ_DIR$\Debug\Obj\cpu_core.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_flash_ramfunc.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_gpio.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_sram.__cstat.et - $PROJ_DIR$\Debug\Obj\os_dbg.o - $PROJ_DIR$\Debug\Obj\lib_mem.xcl - $PROJ_DIR$\Debug\Obj\lib_mem.__cstat.et - $PROJ_DIR$\Debug\Obj\os_mem.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dac_ex.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dac.o - $PROJ_DIR$\Debug\Obj\plsr_run_control.o - $PROJ_DIR$\Debug\Obj\lib_ascii.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_cec.xcl - $TOOLKIT_DIR$\inc\c\iar_intrinsics_common.h - $PROJ_DIR$\Debug\Obj\usart.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_rcc.xcl - $TOOLKIT_DIR$\inc\c\ycheck.h - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_i2c.o - $PROJ_DIR$\Debug\Obj\plsr_pulse_driver.xcl - $TOOLKIT_DIR$\inc\c\ysizet.h - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_pcd.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_rng.__cstat.et - $PROJ_DIR$\Debug\Obj\plsr_accel_curve.o - $PROJ_DIR$\Debug\Obj\plsr_command.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_rtc.__cstat.et - $PROJ_DIR$\Debug\Obj\os_mem.__cstat.et - $PROJ_DIR$\Debug\Obj\os_core.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_dma2d.o - $PROJ_DIR$\Debug\Obj\app_hooks.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_iwdg.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_nor.xcl - $PROJ_DIR$\Debug\Obj\plsr_accel_curve.xcl - $PROJ_DIR$\Debug\Obj\lib_str.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_flash.xcl - $PROJ_DIR$\Debug\Obj\os_time.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_pccard.__cstat.et - $TOOLKIT_DIR$\lib\m7M_tls.a - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_tim.__cstat.et - $PROJ_DIR$\Debug\Obj\os_mem.o - $PROJ_DIR$\Debug\Obj\plsr_pulse_driver.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_hcd.o - $PROJ_DIR$\Debug\Exe\plsr.out - $PROJ_DIR$\Debug\Obj\os_mutex.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_i2s.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_rng.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_i2c_ex.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_irda.__cstat.et - $PROJ_DIR$\Debug\Obj\modbus_data.xcl - $TOOLKIT_DIR$\lib\rt7M_tl.a - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_tim.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_gpio.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_iwdg.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_uart.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_i2c.__cstat.et - $PROJ_DIR$\Debug\Obj\plsr_pwm_test.__cstat.et - $PROJ_DIR$\Debug\Obj\modbus_fc.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_spi.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_rcc.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_tim.xcl - $TOOLKIT_DIR$\config\linker\Geehy\apm32f407xG.icf - $PROJ_DIR$\Debug\Obj\plsr_accel_curve.__cstat.et - $PROJ_DIR$\Debug\Obj\plsr_param_mgr.o - $PROJ_DIR$\Debug\Obj\plsr_run_control.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_spi.xcl - $PROJ_DIR$\Debug\Obj\os_dbg.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_ltdc_ex.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dcmi.xcl - $PROJ_DIR$\Debug\Obj\cpu_core.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_usart.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_fmpi2c.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_wwdg.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_pccard.xcl - $PROJ_DIR$\Debug\Obj\lib_math.xcl - $TOOLKIT_DIR$\inc\c\yvals.h - $PROJ_DIR$\Debug\Obj\plsr_motion.xcl - $PROJ_DIR$\Debug\Obj\plsr.__cstat.et - $PROJ_DIR$\Debug\Obj\plsr_command.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_timebase_tim.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dma.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_spdifrx.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_rcc.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_i2s.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_adc.xcl - $PROJ_DIR$\Debug\Obj\plsr_path_plan.__cstat.et - $PROJ_DIR$\Debug\Obj\plsr_motion.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_qspi.__cstat.et - $PROJ_DIR$\Debug\Obj\os_flag.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_i2s.o - $PROJ_DIR$\..\plsr\test\plsr_pwm_test.h - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_mmc.xcl - $PROJ_DIR$\Debug\Obj\os_flag.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_rtc.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_smartcard.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_fmpi2c.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_dma.__cstat.et - $PROJ_DIR$\Debug\Obj\os_sem.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dma_ex.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_fmpsmbus.__cstat.et - $PROJ_DIR$\Debug\Obj\main.xcl - $PROJ_DIR$\Debug\Obj\plsr_pulse_driver.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_exti.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_pcd_ex.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_i2c.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_hash.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_timebase_tim.__cstat.et - $PROJ_DIR$\Debug\Obj\system_stm32f4xx.__cstat.et + $PROJ_DIR$\Debug\Obj\usart.__cstat.et + $PROJ_DIR$\..\plsr\motion\plsr_motion.h + $PROJ_DIR$\..\plsr\param\plsr_param_mgr.c + $PROJ_DIR$\Debug\Exe\plsr.hex + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_i2c.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_lptim.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_cryp_ex.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_spi.xcl + $PROJ_DIR$\Debug\Obj\plsr_mb.xcl + $PROJ_DIR$\Debug\Obj\os_mutex.o + $PROJ_DIR$\Debug\Obj\cpu_c.xcl + $PROJ_DIR$\Debug\Obj\app_hooks.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_lptim.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_i2s_ex.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_rcc_ex.__cstat.et + $PROJ_DIR$\Debug\Obj\cpu_c.o + $PROJ_DIR$\..\plsr\plsr_hw.h + $PROJ_DIR$\Debug\Obj\plsr_mb.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_irda.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_msp.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_pccard.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_hash_ex.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_fmpsmbus_ex.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_rcc.__cstat.et + $PROJ_DIR$\Debug\Obj\modbus_data.o + $PROJ_DIR$\..\plsr\motion\plsr_motion.c + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_fmpi2c_ex.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_rng.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_dma2d.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_flash_ex.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_it.xcl + $PROJ_DIR$\Debug\Obj\os_cpu_c.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dac.__cstat.et + $PROJ_DIR$\Debug\Obj\main.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_sai.xcl + $PROJ_DIR$\Debug\Obj\plsr.xcl + $PROJ_DIR$\Debug\Obj\plsr_param.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_crc.o $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_rtc.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dsi.xcl - $PROJ_DIR$\Debug\Obj\plsr_path_plan.xcl - $TOOLKIT_DIR$\inc\c\iccarm_builtin.h - $PROJ_DIR$\Debug\Obj\stm32f4xx_it.__cstat.et - $PROJ_DIR$\Debug\Obj\cpu_a.o - $PROJ_DIR$\Debug\Obj\lib_math.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_hcd.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_qspi.o $PROJ_DIR$\Debug\Obj\lib_mem.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_utils.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_dac.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_rng.o - $PROJ_DIR$\Debug\Obj\plsr_path_plan.o + $TOOLKIT_DIR$\inc\c\intrinsics.h + $PROJ_DIR$\Debug\Obj\lib_str.xcl $PROJ_DIR$\Debug\Obj\plsr_run_control.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_cryp_ex.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_rtc.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_gpio.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_crc.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dfsdm.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_rng.xcl + $PROJ_DIR$\Debug\Obj\plsr_path_plan.xcl $PROJ_DIR$\Debug\Obj\lib_ascii.xcl - $PROJ_DIR$\Debug\Obj\plsr_param_mgr.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_exti.o - $PROJ_DIR$\Debug\Obj\modbus_data.__cstat.et + $PROJ_DIR$\Debug\Obj\os_q.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_pcd.xcl $PROJ_DIR$\Debug\Obj\modbus_port.xcl $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_usart.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dfsdm.o - $PROJ_DIR$\Debug\Obj\plsr_param_mgr.__cstat.et - $PROJ_DIR$\Debug\Obj\os_mbox.o - $PROJ_DIR$\Debug\Obj\os_flag.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_pcd.xcl - $PROJ_DIR$\Debug\Obj\os_core.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_rcc_ex.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_tim.xcl $PROJ_DIR$\Debug\Obj\os_tmr.o - $PROJ_DIR$\Debug\Obj\main.__cstat.et - $PROJ_DIR$\Debug\Obj\os_q.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_adc.o - $PROJ_DIR$\Debug\Obj\lib_str.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_rtc.o - $PROJ_DIR$\Debug\Obj\os_sem.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_crc.o - $PROJ_DIR$\Debug\Obj\plsr.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_msp.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_dac.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_hash_ex.o + $PROJ_DIR$\Debug\Obj\modbus_data.__cstat.et $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dcmi_ex.o - $PROJ_DIR$\Debug\Obj\plsr_pwm_test.o - $PROJ_DIR$\Debug\Obj\os_sem.o $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_sram.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_rcc_ex.o - $PROJ_DIR$\Debug\Obj\plsr_param.__cstat.et $PROJ_DIR$\Debug\Obj\os_task.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_adc_ex.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_spi.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_nand.__cstat.et - $PROJ_DIR$\..\plsr\plsr_hw.c - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_hash_ex.o - $TOOLKIT_DIR$\inc\c\intrinsics.h $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_uart.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_pcd_ex.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_rng.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_tim.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_crc.o + $PROJ_DIR$\Debug\Obj\plsr_pwm_test.o $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_adc.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dac.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_sai.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_eth.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_usart.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dfsdm.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_smbus.xcl + $PROJ_DIR$\Debug\Obj\plsr_hw.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_msp.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_nand.__cstat.et $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_sai_ex.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dcmi_ex.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_pwr.__cstat.et $PROJ_DIR$\Debug\Obj\plsr_param.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_rcc.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_eth.__cstat.et - $PROJ_DIR$\Debug\Obj\modbus_rtu.xcl - $PROJ_DIR$\Debug\Obj\plsr_mb.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_sai_ex.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_rtc.o $PROJ_DIR$\Debug\Obj\system_stm32f4xx.o - $PROJ_DIR$\..\plsr\test\plsr_pwm_test.c - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_exti.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_adc.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_pcd_ex.xcl + $PROJ_DIR$\Debug\Obj\os_sem.o + $PROJ_DIR$\Debug\Obj\tim.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal.o $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_crc.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_lptim.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dfsdm.__cstat.et - $PROJ_DIR$\Debug\Obj\plsr_motion.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal.__cstat.et + $PROJ_DIR$\Debug\Obj\modbus_port.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dma2d.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dcmi_ex.xcl $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dma2d.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_pwr.__cstat.et + $PROJ_DIR$\..\plsr\test\plsr_pwm_test.c + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_adc_ex.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_sdram.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_lptim.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_exti.xcl + $PROJ_DIR$\..\plsr\plsr_hw.c + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_spi.__cstat.et + $PROJ_DIR$\Debug\Obj\os_sem.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_sdram.o $PROJ_DIR$\Debug\Obj\modbus_fc.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_smbus.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dma2d.o - $TOOLKIT_DIR$\lib\shb_l.a - $PROJ_DIR$\Debug\Obj\plsr_hw.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_smartcard.xcl $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_adc.o - $PROJ_DIR$\Debug\Obj\modbus_port.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_sdram.o - $PROJ_DIR$\Debug\Obj\tim.__cstat.et + $PROJ_DIR$\Debug\Obj\plsr_mb.o + $TOOLKIT_DIR$\lib\shb_l.a $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dma2d.__cstat.et - $PROJ_DIR$\Debug\Obj\modbus_port.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_sdram.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_smartcard.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_smbus.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_usart.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_i2s_ex.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_qspi.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_i2c_ex.xcl + $PROJ_DIR$\Debug\Obj\plsr.o + $PROJ_DIR$\Debug\Obj\modbus_rtu.xcl + $PROJ_DIR$\Debug\Obj\lib_mem_a.o $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dfsdm.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_sd.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_fmpi2c_ex.o + $PROJ_DIR$\..\plsr\param\plsr_param_mgr.h + $TOOLKIT_DIR$\inc\c\DLib_Defaults.h + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_sai_ex.__cstat.et + $PROJ_DIR$\Debug\Obj\plsr_motion.o + $PROJ_DIR$\Debug\Obj\modbus_port.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_smartcard.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_rcc.o $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_crc.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_smartcard.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dac_ex.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_smbus.o $PROJ_DIR$\Debug\Obj\lib_ascii.__cstat.et - $TOOLKIT_DIR$\inc\c\DLib_Defaults.h - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_i2c_ex.xcl - $PROJ_DIR$\Debug\Obj\plsr_mb.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_sd.xcl - $PROJ_DIR$\Debug\Obj\os_q.xcl $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_hash_ex.xcl - $PROJ_DIR$\Debug\Obj\os_cpu_c.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_qspi.xcl - $PROJ_DIR$\..\plsr\param\plsr_param_mgr.h + $PROJ_DIR$\Debug\Obj\os_mutex.__cstat.et + $PROJ_DIR$\Debug\Obj\os_q.xcl $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_uart.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_fmpi2c_ex.o + $PROJ_DIR$\Debug\Obj\os_cpu_c.o $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_fmpsmbus_ex.o - $PROJ_DIR$\Debug\Obj\plsr.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_spi.xcl - $PROJ_DIR$\Debug\Obj\app_hooks.xcl - $PROJ_DIR$\Debug\Obj\lib_mem_a.o - $PROJ_DIR$\..\plsr\param\plsr_param_mgr.c - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_rcc_ex.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dac_ex.__cstat.et - $PROJ_DIR$\Debug\Obj\os_mutex.__cstat.et - $PROJ_DIR$\..\plsr\motion\plsr_motion.h - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_pccard.o - $PROJ_DIR$\..\plsr\motion\plsr_motion.c - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_irda.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_lptim.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_cryp_ex.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_rng.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_fmpsmbus_ex.xcl - $PROJ_DIR$\Debug\Obj\usart.__cstat.et - $PROJ_DIR$\Debug\Obj\cpu_c.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_fmpi2c_ex.__cstat.et - $PROJ_DIR$\Debug\Exe\plsr.hex - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_rcc.xcl - $PROJ_DIR$\Debug\Obj\plsr_mb.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_it.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_crc.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_hash.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_msp.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_i2c.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_flash_ex.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_msp.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_fmc.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_rtc_ex.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_hash_ex.__cstat.et - $PROJ_DIR$\Debug\Obj\system_stm32f4xx.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_lptim.__cstat.et - $PROJ_DIR$\Debug\Obj\os_mutex.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_dma2d.__cstat.et - $PROJ_DIR$\Debug\Obj\os_cpu_c.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_rcc.__cstat.et - $PROJ_DIR$\Debug\Obj\plsr_hw.__cstat.et - $PROJ_DIR$\Debug\Obj\cpu_c.o - $PROJ_DIR$\..\plsr\plsr_hw.h - $PROJ_DIR$\Debug\Obj\modbus_data.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_cec.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_adc.xcl - $PROJ_DIR$\Debug\Obj\modbus_fc.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_rtc_ex.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_nand.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_spi.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dma.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_eth.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_cortex.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_adc.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dma_ex.o - $PROJ_DIR$\Debug\Obj\gpio.xcl - $PROJ_DIR$\Debug\List\plsr.map - $TOOLKIT_DIR$\lib\dl7M_tln.a - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_tim_ex.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_pwr_ex.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dcmi.o - $PROJ_DIR$\Debug\Obj\modbus_rtu.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_adc_ex.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_flash_ex.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_spi.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_lptim.xcl - $PROJ_DIR$\Debug\Obj\gpio.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_i2c_ex.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_sdmmc.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_fmpsmbus.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_i2s_ex.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_fsmc.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_fmpi2c_ex.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_timebase_tim.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_pcd_ex.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_exti.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_i2s_ex.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_sram.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_fmc.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_tim_ex.__cstat.et - $PROJ_DIR$\Debug\Obj\lib_math.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_flash_ramfunc.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_rtc_ex.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dcmi_ex.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_fmc.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_usart.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_flash.o - $TOOLKIT_DIR$\inc\c\DLib_Product_string.h - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_ltdc_ex.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_cryp.xcl - $PROJ_DIR$\..\plsr\hw\plsr_hw.c - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_can.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_usb.o - $PROJ_DIR$\Debug\Obj\usart.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_dma.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_usb.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_cryp_ex.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_dma2d.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dcmi.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dac.xcl - $PROJ_DIR$\Debug\Obj\gpio.__cstat.et - $PROJ_DIR$\Debug\Obj\os_mbox.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_pwr_ex.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dsi.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_flash_ex.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_ltdc.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_utils.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_gpio.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_cortex.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_ltdc_ex.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_pwr.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_fmpi2c.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_pwr.xcl - $PROJ_DIR$\..\plsr\mb\plsr_mb.h - $PROJ_DIR$\Debug\Obj\startup_stm32f407xx.o - $PROJ_DIR$\..\plsr\hw\plsr_hw.h - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_hash.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_cec.o - $PROJ_DIR$\Debug\Obj\cpu_core.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dma_ex.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_cryp.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_iwdg.o - $PROJ_DIR$\Debug\Obj\plsr_pwm_test.xcl - $PROJ_DIR$\..\plsr\mb\plsr_mb.c - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_irda.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_pwr_ex.xcl - $PROJ_DIR$\Debug\Obj\os_core.__cstat.et - $PROJ_DIR$\Debug\Obj\os_time.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_ltdc.o - $PROJ_DIR$\Debug\Obj\tim.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_sdmmc.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_utils.xcl - $PROJ_DIR$\Debug\Obj\os_time.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_cortex.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_sd.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_fmpi2c.o - $PROJ_DIR$\Debug\Obj\os_q.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_nand.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_sai_ex.xcl - $PROJ_DIR$\Debug\Obj\app_hooks.o - $TOOLKIT_DIR$\inc\c\string.h - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_dac.xcl - $PROJ_DIR$\Debug\Obj\os_mbox.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_gpio.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_wwdg.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_flash.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_exti.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_fmpsmbus.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_fsmc.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_gpio.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_adc_ex.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_usart.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_crc.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_usart.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_dma.xcl - $PROJ_DIR$\Debug\Obj\os_tmr.xcl - $PROJ_DIR$\Debug\Obj\os_tmr.__cstat.et - $PROJ_DIR$\..\drivers\Include\stm32f4xx_hal_uart.h - $PROJ_DIR$\..\drivers\Include\stm32f4xx_hal_pwr_ex.h - $PROJ_DIR$\..\drivers\Include\stm32f4xx_it.h - $PROJ_DIR$\..\drivers\Include\stm32f4xx_hal_tim.h - $PROJ_DIR$\..\drivers\Include\stm32f4xx_hal_rcc.h - $PROJ_DIR$\..\drivers\Include\stm32f4xx_hal_rcc_ex.h - $PROJ_DIR$\..\drivers\Include\stm32f4xx_hal_tim_ex.h - $PROJ_DIR$\..\drivers\Include\stm32f4xx_hal_pwr.h - $PROJ_DIR$\..\drivers\Include\stm32f4xx_hal_dma_ex.h - $PROJ_DIR$\..\drivers\Include\stm32f4xx_hal_flash_ex.h + $PROJ_DIR$\Debug\Obj\plsr_command.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_i2s.o + $PROJ_DIR$\Debug\Obj\plsr.__cstat.et + $PROJ_DIR$\Debug\Obj\system_stm32f4xx.__cstat.et + $PROJ_DIR$\Debug\Obj\os_flag.o + $PROJ_DIR$\Debug\Obj\plsr_motion.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_timebase_tim.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_timebase_tim.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_qspi.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_i2s.xcl + $PROJ_DIR$\Debug\Obj\plsr_path_plan.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_cryp_ex.xcl + $TOOLKIT_DIR$\inc\c\iccarm_builtin.h + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_exti.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_mmc.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_it.__cstat.et + $PROJ_DIR$\Debug\Obj\plsr_path_plan.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_hcd.__cstat.et + $PROJ_DIR$\Debug\Obj\lib_math.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dsi.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_qspi.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_rtc.__cstat.et + $PROJ_DIR$\Debug\Obj\cpu_a.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_hash.xcl + $PROJ_DIR$\Debug\Obj\plsr_param_mgr.__cstat.et + $PROJ_DIR$\Debug\Obj\os_core.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_gpio.xcl + $PROJ_DIR$\Debug\Obj\os_flag.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_utils.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_rng.o + $PROJ_DIR$\Debug\Obj\plsr_param_mgr.xcl + $PROJ_DIR$\Debug\Obj\os_mbox.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_pccard.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_dma.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dma_ex.__cstat.et + $PROJ_DIR$\Debug\Obj\main.xcl + $PROJ_DIR$\Debug\Obj\modbus_fc.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_adc.xcl + $PROJ_DIR$\..\plsr\test\plsr_pwm_test.h + $PROJ_DIR$\Debug\Obj\os_flag.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_rtc.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_pcd_ex.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_i2c.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_smartcard.__cstat.et + $PROJ_DIR$\Debug\Obj\lib_math.xcl + $PROJ_DIR$\Debug\Obj\plsr_accel_curve.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_fmpi2c.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_i2c.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dma.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_fmpsmbus.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_tim.o + $PROJ_DIR$\Debug\Obj\plsr_motion.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_spdifrx.__cstat.et + $PROJ_DIR$\Debug\Obj\plsr_pulse_driver.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_tim.xcl + $PROJ_DIR$\Debug\Obj\os_sem.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_rcc.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_exti.__cstat.et + $PROJ_DIR$\Debug\Obj\cpu_core.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_rcc.o + $PROJ_DIR$\Debug\Obj\os_dbg.__cstat.et + $TOOLKIT_DIR$\inc\c\yvals.h + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_uart.o + $PROJ_DIR$\..\drivers\Include\stm32f4xx_hal_def.h + $PROJ_DIR$\..\drivers\Include\stm32f4xx_hal_conf.h $PROJ_DIR$\..\drivers\Include\stm32f4xx_hal_dma.h + $PROJ_DIR$\..\drivers\Include\stm32f4xx_hal_flash_ex.h $PROJ_DIR$\..\drivers\Include\stm32f4xx_hal_flash_ramfunc.h - $PROJ_DIR$\..\drivers\Include\stm32f4xx_hal_gpio_ex.h - $PROJ_DIR$\..\drivers\Include\stm32f4xx_hal_gpio.h + $PROJ_DIR$\..\drivers\Include\stm32f4xx_hal_cortex.h $PROJ_DIR$\..\drivers\Include\stm32f4xx_hal_exti.h + $PROJ_DIR$\..\drivers\Include\stm32f4xx_hal_gpio_ex.h $PROJ_DIR$\..\drivers\Include\stm32f4xx_hal_flash.h - $PROJ_DIR$\..\drivers\Include\stm32f4xx_ll_utils.h - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_adc.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_can.c - $PROJ_DIR$\..\drivers\Include\stm32f4xx_ll_pwr.h - $PROJ_DIR$\..\drivers\Include\tim.h - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_cec.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_crc.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_cryp.c - $PROJ_DIR$\..\drivers\Include\stm32f4xx_ll_rcc.h - $PROJ_DIR$\..\drivers\Include\stm32f4xx_ll_system.h - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_cortex.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_cryp_ex.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_adc_ex.c - $PROJ_DIR$\..\drivers\Include\usart.h - $PROJ_DIR$\..\drivers\Source\gpio.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_dfsdm.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_ltdc_ex.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_dcmi_ex.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_exti.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_dma2d.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_flash_ex.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_dma_ex.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_dcmi.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_dma.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_flash_ramfunc.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_hash_ex.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_i2c.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_irda.c + $PROJ_DIR$\..\drivers\Include\stm32f4xx_hal_gpio.h + $PROJ_DIR$\..\drivers\Include\stm32f4xx_hal_dma_ex.h + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_msp.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_pccard.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_pcd.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_nand.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_pcd_ex.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_pwr.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_pwr_ex.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_rcc.c $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_iwdg.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_ltdc.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_gpio.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_dsi.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_flash.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_dac_ex.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_fmpsmbus.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_hcd.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_i2c_ex.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_eth.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_nor.c $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_fmpi2c.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_rcc_ex.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_rng.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_rtc_ex.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_i2s.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_gpio.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_qspi.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_ltdc_ex.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_rtc.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_hash.c $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_fmpi2c_ex.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_hcd.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_irda.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_ltdc.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_lptim.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_i2c.c $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_fmpsmbus_ex.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_dac.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_hash.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_i2s.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_hash_ex.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_i2c_ex.c $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_i2s_ex.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_lptim.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_adc.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_mmc.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_fmpsmbus.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_sai_ex.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_sdram.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_uart.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_dac.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_sai.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_tim_ex.c $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_dma.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_utils.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_spi.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_fmpi2c.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_pwr.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_crc.c - $PROJ_DIR$\..\drivers\Source\system_stm32f4xx.c - $PROJ_DIR$\..\modbus\modbus_data.h - $PROJ_DIR$\..\modbus\modbus_data.c - $PROJ_DIR$\..\modbus\modbus_fc.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_rng.c - $PROJ_DIR$\..\drivers\Source\tim.c - $PROJ_DIR$\..\modbus\modbus_fc.h - $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_rtc.c - $PROJ_DIR$\..\modbus\modbus_port.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_sd.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_smbus.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_dma2d.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_sram.c $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_exti.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_rcc.c $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_gpio.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_usb.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_dma2d.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_dac.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_lptim.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_tim.c - $PROJ_DIR$\..\drivers\Source\usart.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_sdmmc.c - $PROJ_DIR$\startup_stm32f407xx.s - $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_fmc.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_timebase_tim.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_it.c $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_fsmc.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_smartcard.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_fmc.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_wwdg.c $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_i2c.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_usart.c - $PROJ_DIR$\..\modbus\modbus_common.h - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_msp.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_it.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_pcd_ex.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_mmc.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_pcd.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_rcc_ex.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_rng.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_smbus.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_spdifrx.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_nand.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_pwr_ex.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_pwr.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_lptim.c $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_spi.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_sram.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_pwr.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_sai.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_rtc_ex.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_sd.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_sdram.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_nor.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_smartcard.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_adc.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_crc.c $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_tim.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_timebase_tim.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_uart.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_qspi.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_rcc.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_pccard.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_tim_ex.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_rtc.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_wwdg.c $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_usart.c - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_sai_ex.c - $PROJ_DIR$\..\ucos\uCOS-II\Source\os_mutex.c - $PROJ_DIR$\..\ucos\uCOS-II\Source\os_task.c - $PROJ_DIR$\..\ucos\uCOS-II\Source\os_tmr.c - $PROJ_DIR$\..\ucos\uCOS-II\Source\ucos_ii.h - $PROJ_DIR$\..\ucos\uCOS-II\Source\os_sem.c - $PROJ_DIR$\Debug\Obj\plsr_hw.xcl - $PROJ_DIR$\Debug\Obj\cpu_c.__cstat.et - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_can.o - $PROJ_DIR$\Debug\Obj\os_cpu_a.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_ltdc.xcl - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_cryp.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_eth.o - $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_fsmc.xcl + $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_fmpi2c.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_spdifrx.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_rcc.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_rng.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_cryp_ex.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_dcmi_ex.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_dac.c + $PROJ_DIR$\..\drivers\Include\stm32f4xx_ll_utils.h + $PROJ_DIR$\..\drivers\Include\usart.h + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_adc.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_cryp.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_dma.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_dma2d.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_cortex.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_can.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_dma_ex.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_dsi.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_cec.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_crc.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_dac_ex.c + $PROJ_DIR$\..\drivers\Include\tim.h + $PROJ_DIR$\..\drivers\Source\gpio.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_dfsdm.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_eth.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_exti.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_flash.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_flash_ex.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_adc_ex.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_flash_ramfunc.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_dcmi.c + $PROJ_DIR$\..\drivers\Include\gpio.h + $PROJ_DIR$\..\cmsis\Core\Include\core_cm4.h + $PROJ_DIR$\..\cmsis\Core\Include\mpu_armv7.h + $PROJ_DIR$\..\cmsis\Device\Include\stm32f407xx.h + $PROJ_DIR$\..\cmsis\Device\Include\system_stm32f4xx.h + $PROJ_DIR$\..\app\main.h + $PROJ_DIR$\..\cmsis\Core\Include\cmsis_version.h + $PROJ_DIR$\..\cmsis\Device\Include\stm32f4xx.h + $PROJ_DIR$\..\cmsis\Core\Include\cmsis_iccarm.h + $PROJ_DIR$\..\app\main.c + $PROJ_DIR$\..\cmsis\Core\Include\cmsis_cp15.h + $PROJ_DIR$\..\drivers\Include\Legacy\stm32_hal_legacy.h + $PROJ_DIR$\..\cmsis\Core\Include\cmsis_compiler.h + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_tim_ex.xcl $PROJ_DIR$\..\ucos\uCOS-II\Source\os_flag.c + $PROJ_DIR$\Debug\Obj\modbus_rtu.__cstat.et $PROJ_DIR$\..\ucos\uCOS-II\Source\os_mbox.c + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_pwr_ex.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dma.__cstat.et $PROJ_DIR$\..\ucos\uCOS-II\Source\os_q.c - $PROJ_DIR$\..\ucos\uC-LIB\lib_mem.h - $PROJ_DIR$\..\ucos\uCOS-II\Source\os_time.c - $PROJ_DIR$\..\ucos\uC-LIB\lib_math.h - $PROJ_DIR$\..\ucos\uC-LIB\os_cfg.h - $PROJ_DIR$\..\ucos\uCOS-II\Ports\os_cpu_a.asm - $PROJ_DIR$\..\ucos\uCOS-II\Ports\os_dbg.c - $PROJ_DIR$\..\ucos\uC-LIB\lib_mem.c - $PROJ_DIR$\..\ucos\uCOS-II\Ports\os_cpu_c.c + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_spi.o + $PROJ_DIR$\..\ucos\uCOS-II\Source\os_tmr.c + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_i2s_ex.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_cortex.xcl + $PROJ_DIR$\Debug\List\plsr.map + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_adc_ex.o + $PROJ_DIR$\..\ucos\uCOS-II\Source\os_task.c + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_lptim.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_sdmmc.o + $PROJ_DIR$\Debug\Obj\gpio.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_fsmc.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_adc.__cstat.et + $PROJ_DIR$\..\ucos\uCOS-II\Source\os_sem.c $PROJ_DIR$\..\ucos\uCOS-II\Source\os_core.c + $PROJ_DIR$\..\ucos\uCOS-II\Source\os_time.c + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_spi.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_flash_ex.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dma_ex.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_fmpsmbus.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_i2c_ex.__cstat.et + $TOOLKIT_DIR$\lib\dl7M_tln.a + $PROJ_DIR$\Debug\Obj\gpio.o + $PROJ_DIR$\..\ucos\uCOS-II\Source\os_mutex.c $PROJ_DIR$\..\ucos\uCOS-II\Source\os_mem.c - $PROJ_DIR$\..\ucos\uC-LIB\lib_str.c - $PROJ_DIR$\..\ucos\uC-LIB\lib_math.c - $PROJ_DIR$\..\ucos\uC-LIB\lib_str.h - $PROJ_DIR$\..\ucos\uCOS-II\Ports\os_cpu.h - $PROJ_DIR$\..\plsr\path_plan\plsr_path_plan.h - $PROJ_DIR$\..\plsr\plsr.c + $PROJ_DIR$\..\ucos\uCOS-II\Source\ucos_ii.h + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_irda.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_i2c_ex.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_tim_ex.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_sram.xcl + $PROJ_DIR$\Debug\Obj\modbus_data.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_fmpi2c_ex.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_eth.xcl + $PROJ_DIR$\Debug\Obj\lib_math.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_rng.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_ltdc_ex.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_pcd_ex.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_timebase_tim.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dcmi.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_wwdg.xcl + $TOOLKIT_DIR$\config\linker\Geehy\apm32f407xG.icf + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_iwdg.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_spi.__cstat.et + $PROJ_DIR$\Debug\Obj\plsr_param_mgr.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_fmc.xcl + $TOOLKIT_DIR$\lib\rt7M_tl.a + $PROJ_DIR$\Debug\Obj\plsr_run_control.__cstat.et + $PROJ_DIR$\Debug\Obj\plsr_pwm_test.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_spi.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_usart.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_gpio.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_i2s_ex.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dcmi.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_exti.xcl + $PROJ_DIR$\Debug\Obj\os_mutex.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_fmpi2c.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_i2s.__cstat.et $PROJ_DIR$\..\plsr\run_control\plsr_run_control.c - $PROJ_DIR$\..\plsr\pulse_driver\plsr_pulse_driver.c - $PROJ_DIR$\..\ucos\uC-LIB\cpu_cfg.h - $PROJ_DIR$\..\ucos\uC-LIB\lib_cfg.h - $PROJ_DIR$\..\plsr\pulse_driver\plsr_pulse_driver.h + $PROJ_DIR$\..\modbus\modbus_fc.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_sdmmc.c + $PROJ_DIR$\..\modbus\modbus_port.c $PROJ_DIR$\..\plsr\accel_curve\plsr_accel_curve.h + $PROJ_DIR$\..\modbus\modbus_data.c $PROJ_DIR$\..\plsr\run_control\plsr_run_control.h - $PROJ_DIR$\..\ucos\uC-LIB\lib_ascii.h - $PROJ_DIR$\..\ucos\uC-CPU\cpu_core.h - $PROJ_DIR$\..\ucos\uC-LIB\app_cfg.h $PROJ_DIR$\..\plsr\command\plsr_command.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_tim.c $PROJ_DIR$\..\plsr\command\plsr_command.h - $PROJ_DIR$\..\ucos\uC-LIB\lib_def.h + $PROJ_DIR$\..\drivers\Source\usart.c + $PROJ_DIR$\..\plsr\path_plan\plsr_path_plan.h + $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_rtc.c + $PROJ_DIR$\..\drivers\Source\system_stm32f4xx.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_spi.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_usart.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_usb.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_utils.c + $PROJ_DIR$\..\drivers\Source\tim.c + $PROJ_DIR$\..\modbus\modbus_data.h + $PROJ_DIR$\..\modbus\modbus_common.h $PROJ_DIR$\..\modbus\modbus_port.h + $PROJ_DIR$\..\plsr\param\plsr_param.h + $PROJ_DIR$\..\modbus\modbus_rtu.h + $PROJ_DIR$\..\plsr\pulse_driver\plsr_pulse_driver.c + $PROJ_DIR$\..\modbus\modbus_fc.h + $PROJ_DIR$\..\plsr\pulse_driver\plsr_pulse_driver.h + $PROJ_DIR$\startup_stm32f407xx.s + $PROJ_DIR$\..\plsr\path_plan\plsr_path_plan.c + $PROJ_DIR$\..\modbus\modbus_rtu.c + $PROJ_DIR$\..\plsr\param\plsr_param.c + $PROJ_DIR$\..\plsr\accel_curve\plsr_accel_curve.c + $PROJ_DIR$\..\plsr\signal_io\plsr_signal_io.c + $PROJ_DIR$\..\ucos\uC-CPU\cpu.h $PROJ_DIR$\..\ucos\uC-CPU\cpu_def.h - $PROJ_DIR$\..\ucos\uC-LIB\app_hooks.c $PROJ_DIR$\..\ucos\uC-LIB\Ports\lib_mem_a.asm - $PROJ_DIR$\..\ucos\uC-CPU\cpu.h - $PROJ_DIR$\..\plsr\accel_curve\plsr_accel_curve.c - $PROJ_DIR$\..\ucos\uC-CPU\cpu_core.c + $PROJ_DIR$\..\plsr\signal_io\plsr_signal_io.h + $PROJ_DIR$\..\ucos\uC-LIB\lib_cfg.h $PROJ_DIR$\..\plsr\plsr.h - $PROJ_DIR$\..\ucos\uC-CPU\cpu_a.asm - $PROJ_DIR$\..\modbus\modbus_rtu.c - $PROJ_DIR$\..\modbus\modbus_rtu.h $PROJ_DIR$\..\ucos\uC-CPU\cpu_c.c - $PROJ_DIR$\..\plsr\param\plsr_param.h - $PROJ_DIR$\..\plsr\param\plsr_param.c - $PROJ_DIR$\..\plsr\path_plan\plsr_path_plan.c $PROJ_DIR$\..\ucos\uC-LIB\lib_ascii.c + $PROJ_DIR$\..\ucos\uC-LIB\lib_def.h + $PROJ_DIR$\..\ucos\uC-LIB\lib_mem.h + $PROJ_DIR$\..\ucos\uC-LIB\lib_str.c + $PROJ_DIR$\..\ucos\uC-LIB\app_cfg.h + $PROJ_DIR$\..\ucos\uC-LIB\os_cfg.h + $PROJ_DIR$\..\ucos\uC-LIB\cpu_cfg.h + $PROJ_DIR$\..\ucos\uCOS-II\Ports\os_cpu.h + $PROJ_DIR$\..\ucos\uC-LIB\lib_math.c + $PROJ_DIR$\..\plsr\plsr.c + $PROJ_DIR$\..\ucos\uCOS-II\Ports\os_cpu_a.asm + $PROJ_DIR$\..\ucos\uCOS-II\Ports\os_cpu_c.c + $PROJ_DIR$\..\ucos\uCOS-II\Ports\os_dbg.c + $PROJ_DIR$\..\ucos\uC-CPU\cpu_a.asm + $PROJ_DIR$\..\ucos\uC-LIB\app_hooks.c + $PROJ_DIR$\..\ucos\uC-CPU\cpu_core.h + $PROJ_DIR$\..\ucos\uC-LIB\lib_str.h + $PROJ_DIR$\..\ucos\uC-LIB\lib_mem.c + $PROJ_DIR$\..\ucos\uC-CPU\cpu_core.c + $PROJ_DIR$\..\ucos\uC-LIB\lib_ascii.h + $PROJ_DIR$\..\ucos\uC-LIB\lib_math.h + $PROJ_DIR$\Debug\Obj\os_q.o + $PROJ_DIR$\Debug\Obj\app_hooks.o + $PROJ_DIR$\..\plsr\hw\plsr_hw.h + $PROJ_DIR$\Debug\Obj\gpio.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_usb.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_cec.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_irda.xcl + $PROJ_DIR$\Debug\Obj\usart.o + $PROJ_DIR$\Debug\Obj\tim.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_sd.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_flash.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_iwdg.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_flash_ex.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_utils.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_dac.xcl + $PROJ_DIR$\Debug\Obj\startup_stm32f407xx.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_gpio.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_dma2d.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_ltdc_ex.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_usart.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_pwr_ex.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_flash_ramfunc.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_pwr.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_cryp.__cstat.et + $PROJ_DIR$\Debug\Obj\plsr_pwm_test.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_sdmmc.xcl + $PROJ_DIR$\Debug\Obj\os_core.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_rtc_ex.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dsi.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_dma.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_fmpi2c.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_usart.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_can.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_flash.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_crc.xcl + $PROJ_DIR$\Debug\Obj\os_cpu_a.o + $TOOLKIT_DIR$\inc\c\string.h + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dma_ex.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_sai_ex.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_gpio.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_pwr_ex.xcl + $PROJ_DIR$\..\plsr\mb\plsr_mb.c + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_pwr.xcl + $PROJ_DIR$\Debug\Obj\os_time.o + $PROJ_DIR$\Debug\Obj\os_time.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_fsmc.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_fmpi2c.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_eth.o + $PROJ_DIR$\Debug\Obj\plsr_hw.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_fmpsmbus.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_nand.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_wwdg.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_hash.__cstat.et + $PROJ_DIR$\Debug\Obj\cpu_core.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_adc_ex.xcl + $PROJ_DIR$\..\plsr\mb\plsr_mb.h + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_exti.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_cortex.o + $PROJ_DIR$\Debug\Obj\os_mbox.__cstat.et + $PROJ_DIR$\Debug\Obj\plsr_signal_io.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_usart.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_ltdc.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_fsmc.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_cryp.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_dma.xcl + $PROJ_DIR$\Debug\Obj\os_tmr.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_gpio.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_ltdc.xcl + $PROJ_DIR$\Debug\Obj\os_tmr.__cstat.et + $PROJ_DIR$\Debug\Obj\cpu_c.__cstat.et + $PROJ_DIR$\..\drivers\Include\stm32f4xx_hal.h + $PROJ_DIR$\..\drivers\Include\stm32f4xx_hal_tim.h + $PROJ_DIR$\..\drivers\Include\stm32f4xx_it.h + $PROJ_DIR$\..\drivers\Include\stm32f4xx_ll_rcc.h + $PROJ_DIR$\..\drivers\Include\stm32f4xx_ll_pwr.h + $PROJ_DIR$\..\drivers\Include\stm32f4xx_hal_uart.h + $PROJ_DIR$\..\drivers\Include\stm32f4xx_ll_system.h + $PROJ_DIR$\..\drivers\Include\stm32f4xx_hal_tim_ex.h + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_nor.xcl + $PROJ_DIR$\Debug\Obj\plsr_hw.__cstat.et + $PROJ_DIR$\Debug\Obj\os_mem.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_crc.__cstat.et + $PROJ_DIR$\Debug\Obj\os_core.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_msp.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_fmc.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_adc.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_hash.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_rcc.xcl + $TOOLKIT_DIR$\inc\c\ycheck.h + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_i2c.o + $PROJ_DIR$\Debug\Obj\lib_str.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_iwdg.xcl + $PROJ_DIR$\Debug\Obj\plsr_pulse_driver.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_pcd.__cstat.et + $TOOLKIT_DIR$\inc\c\ysizet.h + $PROJ_DIR$\Debug\Obj\plsr_accel_curve.o + $PROJ_DIR$\Debug\Obj\plsr_command.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_rng.__cstat.et + $PROJ_DIR$\Debug\Obj\lib_ascii.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_cec.xcl + $PROJ_DIR$\Debug\Obj\system_stm32f4xx.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_rtc_ex.xcl + $PROJ_DIR$\Debug\Obj\plsr_accel_curve.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_dma2d.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_cec.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_rtc_ex.o + $PROJ_DIR$\Debug\Obj\modbus_fc.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_nand.xcl + $PROJ_DIR$\Debug\Obj\app_hooks.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_rtc.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_it.o + $PROJ_DIR$\Debug\Obj\plsr_pulse_driver.o + $PROJ_DIR$\Debug\Exe\plsr.out + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_usb.xcl + $PROJ_DIR$\Debug\Obj\plsr.pbd + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_tim.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_rng.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_i2c.xcl + $TOOLKIT_DIR$\lib\m7M_tls.a + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_mmc.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_nor.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_lptim.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_hcd.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_tim_ex.o + $PROJ_DIR$\Debug\Obj\plsr_command.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_spdifrx.o + $TOOLKIT_DIR$\inc\c\iar_intrinsics_common.h + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_flash.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_sdram.xcl + $PROJ_DIR$\Debug\Obj\os_mem.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_sd.__cstat.et + $PROJ_DIR$\Debug\Obj\os_dbg.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_nor.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_wwdg.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_pccard.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_tim.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_i2c.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_tim.o + $PROJ_DIR$\Debug\Obj\os_time.__cstat.et + $PROJ_DIR$\Debug\Obj\usart.xcl + $PROJ_DIR$\Debug\Obj\plsr_run_control.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_rcc.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_rcc_ex.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dac_ex.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dac.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_sram.__cstat.et + $PROJ_DIR$\Debug\Obj\plsr_param.o + $PROJ_DIR$\Debug\Obj\os_task.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_exti.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_flash_ramfunc.__cstat.et + $PROJ_DIR$\Debug\Obj\lib_mem.__cstat.et + $PROJ_DIR$\Debug\Obj\lib_mem.xcl + $TOOLKIT_DIR$\inc\c\DLib_Config_Full.h + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_sai.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_pwr.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dac_ex.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dsi.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_hcd.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_rtc.o + $PROJ_DIR$\Debug\Obj\lib_str.__cstat.et + $PROJ_DIR$\Debug\Obj\os_mem.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dma.o + $PROJ_DIR$\Debug\Obj\tim.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_flash_ramfunc.xcl + $TOOLKIT_DIR$\inc\c\stdint.h + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_dac.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_fmpsmbus_ex.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_pwr.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_pcd.o + $PROJ_DIR$\Debug\Obj\main.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_gpio.o + $PROJ_DIR$\Debug\Obj\os_dbg.o + $PROJ_DIR$\Debug\Obj\cpu_core.xcl + $PROJ_DIR$\Debug\Obj\modbus_rtu.o + $PROJ_DIR$\Debug\Obj\plsr_signal_io.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_sdmmc.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dac.xcl + $TOOLKIT_DIR$\inc\c\stddef.h + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_cortex.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_spdifrx.xcl + $PROJ_DIR$\..\plsr\hw\plsr_hw.c + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_fmc.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_pwr.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_can.xcl + $PROJ_DIR$\Debug\Obj\plsr_signal_io.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_smbus.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_fmpi2c.__cstat.et + $PROJ_DIR$\Debug\Obj\os_cpu_c.xcl + $TOOLKIT_DIR$\inc\c\DLib_Product.h + $PROJ_DIR$\Debug\Obj\os_mbox.xcl + $PROJ_DIR$\Debug\Obj\os_task.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_usb.o + $TOOLKIT_DIR$\inc\c\DLib_Product_string.h + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_cryp.xcl + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_sai.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_utils.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_cryp_ex.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_lptim.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_can.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_ltdc_ex.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_ltdc.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_mmc.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_ll_fmpi2c.o + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dcmi_ex.__cstat.et + $PROJ_DIR$\Debug\Obj\stm32f4xx_hal_dcmi.__cstat.et + $PROJ_DIR$\..\drivers\Include\stm32f4xx_hal_pwr_ex.h + $PROJ_DIR$\..\drivers\Include\stm32f4xx_hal_rcc.h + $PROJ_DIR$\..\drivers\Include\stm32f4xx_hal_rcc_ex.h + $PROJ_DIR$\..\drivers\Include\stm32f4xx_hal_pwr.h - [ROOT_NODE] + $PROJ_DIR$\..\plsr\param\plsr_param_mgr.c - ILINK - 113 344 + ICCARM + 353 + + + BICOMP + 157 + + + __cstat + 151 + + + ICCARM + 109 593 517 188 110 581 617 389 390 499 191 635 190 298 294 292 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 335 411 400 40 555 401 413 412 414 484 + + - $PROJ_DIR$\..\app\main.c + $PROJ_DIR$\..\plsr\motion\plsr_motion.c ICCARM - 70 + 112 BICOMP - 170 + 178 __cstat - 210 + 132 ICCARM - 1 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 476 13 575 613 621 231 85 618 606 591 601 627 466 624 629 + 1 593 517 188 110 581 617 389 430 499 191 635 190 298 294 292 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 335 411 400 40 555 401 413 412 414 - $PROJ_DIR$\Debug\Exe\plsr.out + $PROJ_DIR$\..\plsr\test\plsr_pwm_test.c - ILINK - 344 + ICCARM + 62 - OBJCOPY - 309 + BICOMP + 453 + + + __cstat + 357 - ILINK - 131 428 183 329 139 354 83 368 187 293 104 70 331 127 265 45 208 580 284 76 206 205 110 324 425 221 24 416 209 290 94 54 20 191 111 82 403 259 264 350 579 406 422 196 582 303 81 80 348 219 203 71 260 342 392 583 435 375 317 369 424 288 357 289 74 314 230 112 316 117 159 364 301 410 252 417 137 57 218 426 64 299 23 362 46 347 186 129 223 116 26 335 44 239 423 266 271 272 55 337 222 121 49 149 124 373 433 50 212 216 189 383 99 199 372 37 437 396 89 302 399 242 190 214 356 352 52 440 381 188 248 418 382 261 120 108 345 + ICCARM + 165 593 517 188 110 581 617 430 499 191 635 190 298 294 292 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 @@ -695,389 +718,412 @@ ICCARM - 262 + 68 BICOMP - 577 + 477 __cstat - 328 + 508 ICCARM - 330 18 88 145 278 17 43 5 7 450 14 8 9 4 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 624 1 + 16 593 517 188 110 581 617 499 191 635 190 298 294 292 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 405 296 - $PROJ_DIR$\..\plsr\test\plsr_pwm_test.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_msp.c ICCARM - 220 + 69 BICOMP - 411 + 512 __cstat - 126 + 19 ICCARM - 160 18 88 145 278 17 43 404 5 7 450 14 8 9 4 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 296 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\plsr\param\plsr_param_mgr.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_pccard.c ICCARM - 133 + 20 BICOMP - 198 + 159 __cstat - 204 + 563 ICCARM - 286 18 88 145 278 17 43 629 627 5 7 450 14 8 9 4 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 575 613 621 231 85 618 606 591 601 402 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\plsr\motion\plsr_motion.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_pcd.c ICCARM - 254 + 597 BICOMP - 146 + 48 __cstat - 156 + 522 ICCARM - 298 18 88 145 278 17 43 629 404 5 7 450 14 8 9 4 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 575 613 621 231 85 618 606 591 601 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\plsr\hw\plsr_hw.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_nand.c ICCARM - 262 + 479 BICOMP - 577 + 536 __cstat - 328 + 70 ICCARM - 404 18 88 145 278 17 43 5 7 450 14 8 9 4 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 629 1 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\plsr\mb\plsr_mb.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_pcd_ex.c ICCARM - 246 + 346 BICOMP - 280 + 77 __cstat - 311 + 168 ICCARM - 402 18 88 145 278 17 43 629 286 298 624 627 5 7 450 14 8 9 4 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 575 613 621 231 85 618 606 591 601 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_adc.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_pwr.c ICCARM - 264 + 596 BICOMP - 154 + 583 __cstat - 341 + 72 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_can.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_pwr_ex.c ICCARM - 579 + 308 BICOMP - 39 + 469 __cstat - 380 + 449 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_cec.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_rcc.c ICCARM - 406 + 186 BICOMP - 84 + 516 __cstat - 332 + 183 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_crc.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_iwdg.c ICCARM - 196 + 439 BICOMP - 441 + 520 __cstat - 313 + 351 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_cryp.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_nor.c ICCARM - 582 + 561 BICOMP - 378 + 507 __cstat - 409 + 549 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_fmpi2c.c ICCARM - 259 + 475 BICOMP - 374 + 365 __cstat - 243 + 459 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_cortex.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_rcc_ex.c ICCARM - 422 + 51 BICOMP - 340 + 571 __cstat - 397 + 14 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_cryp_ex.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_rng.c ICCARM - 303 + 344 BICOMP - 193 + 27 __cstat - 385 + 526 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_adc_ex.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_rtc_ex.c ICCARM - 350 + 534 BICOMP - 439 + 530 __cstat - 226 + 456 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\gpio.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_i2s.c ICCARM - 354 + 128 BICOMP - 343 + 136 __cstat - 389 + 366 ICCARM - 13 1 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_dfsdm.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_gpio.c + + + ICCARM + 599 + + + BICOMP + 153 + + + __cstat + 360 + + + + + ICCARM + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 + + + + + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_qspi.c ICCARM - 203 + 147 BICOMP - 275 + 101 __cstat - 253 + 135 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 @@ -1086,779 +1132,761 @@ ICCARM - 137 + 345 BICOMP - 377 + 447 __cstat - 398 + 628 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_dcmi_ex.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_rtc.c ICCARM - 219 + 587 BICOMP - 240 + 167 __cstat - 371 + 538 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_exti.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_hash.c ICCARM - 435 + 515 BICOMP - 363 + 150 __cstat - 27 + 481 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_dma2d.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_fmpi2c_ex.c ICCARM - 260 + 108 BICOMP - 255 + 341 __cstat - 268 + 26 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_flash_ex.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_hcd.c ICCARM - 317 + 551 BICOMP - 351 + 586 __cstat - 393 + 144 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_dma_ex.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_irda.c ICCARM - 342 + 18 BICOMP - 408 + 434 __cstat - 168 + 336 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_dcmi.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_ltdc.c ICCARM - 348 + 490 BICOMP - 138 + 496 __cstat - 387 + 629 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_dma.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_lptim.c ICCARM - 71 + 90 BICOMP - 150 + 550 __cstat - 338 + 12 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_flash_ramfunc.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_i2c.c ICCARM - 369 + 4 BICOMP - 73 + 169 __cstat - 22 + 174 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_hash_ex.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_fmpsmbus_ex.c ICCARM - 230 + 126 BICOMP - 283 + 22 __cstat - 321 + 595 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_i2c.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_hash_ex.c ICCARM - 316 + 55 BICOMP - 174 + 121 __cstat - 125 + 21 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_irda.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_i2c_ex.c ICCARM - 301 + 337 BICOMP - 413 + 102 __cstat - 118 + 330 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_iwdg.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_i2s_ex.c ICCARM - 410 + 361 BICOMP - 101 + 13 __cstat - 123 + 313 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_ltdc.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_mmc.c ICCARM - 417 + 548 BICOMP - 581 + 141 __cstat - 394 + 630 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_gpio.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_fmpsmbus.c ICCARM - 74 + 329 BICOMP - 195 + 478 __cstat - 122 + 176 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_dsi.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_sai_ex.c ICCARM - 392 + 71 BICOMP - 179 + 467 __cstat - 21 + 111 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_flash.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_sdram.c ICCARM - 375 + 95 BICOMP - 105 + 557 __cstat - 434 + 89 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_dac_ex.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_uart.c ICCARM - 80 + 189 BICOMP - 48 + 124 __cstat - 296 + 60 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_fmpsmbus.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_dac.c ICCARM - 357 + 54 BICOMP - 436 + 443 __cstat - 169 + 594 - - - ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 - - - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_hcd.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_sai.c ICCARM - 112 + 623 BICOMP - 69 + 34 __cstat - 185 + 582 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_i2c_ex.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_tim_ex.c ICCARM - 117 + 552 BICOMP - 279 + 304 __cstat - 355 + 338 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_eth.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_dma.c ICCARM - 583 + 458 BICOMP - 339 + 493 __cstat - 244 + 160 - - - ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 - - - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_fmpi2c.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_sd.c ICCARM - 424 + 437 BICOMP - 141 + 107 __cstat - 400 + 559 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_fmpi2c_ex.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_smbus.c ICCARM - 288 + 119 BICOMP - 360 + 67 __cstat - 308 + 614 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_fmpsmbus_ex.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_dma2d.c ICCARM - 289 + 532 BICOMP - 305 + 446 __cstat - 68 + 28 - - - ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 - - - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_dac.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_sram.c ICCARM - 81 + 58 BICOMP - 388 + 339 __cstat - 237 + 574 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_hash.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_exti.c ICCARM - 314 + 140 BICOMP - 175 + 91 __cstat - 405 + 184 - - - ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 - - - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_i2s.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_gpio.c ICCARM - 159 + 445 BICOMP - 153 + 468 __cstat - 115 + 495 - - - ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 - - - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_i2s_ex.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_timebase_tim.c ICCARM - 364 + 134 BICOMP - 274 + 347 __cstat - 358 + 133 - - - ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 - - - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_lptim.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_it.c ICCARM - 252 + 539 BICOMP - 62 + 30 __cstat - 323 + 142 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 296 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 501 335 411 400 40 555 401 413 412 414 403 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_adc.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_fsmc.c ICCARM - 212 + 474 BICOMP - 333 + 491 __cstat - 236 + 321 + + + ICCARM + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 + + - $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_dma.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_smartcard.c ICCARM - 383 + 114 BICOMP - 443 + 117 __cstat - 166 + 170 + + + ICCARM + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 + + - $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_utils.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_fmc.c ICCARM - 188 + 610 BICOMP - 420 + 354 __cstat - 395 + 513 ICCARM - 462 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 5 7 450 14 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 470 471 465 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_spi.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_wwdg.c ICCARM - 352 + 480 BICOMP - 135 + 349 __cstat - 128 + 562 + + + ICCARM + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 + + - $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_fmpi2c.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_i2c.c ICCARM - 37 + 518 BICOMP - 165 + 546 __cstat - 32 + 565 @@ -1867,1689 +1895,1670 @@ ICCARM - 399 + 451 BICOMP - 401 + 471 __cstat - 33 + 611 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_crc.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_lptim.c ICCARM - 216 + 5 BICOMP - 276 + 318 __cstat - 251 + 626 - $PROJ_DIR$\..\drivers\Source\system_stm32f4xx.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_spi.c ICCARM - 248 + 311 BICOMP - 322 + 7 __cstat - 177 + 93 ICCARM - 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 5 7 450 14 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\modbus\modbus_data.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_adc.c ICCARM - 331 + 76 BICOMP - 119 + 514 __cstat - 200 + 63 - - - ICCARM - 517 18 88 145 278 17 43 540 627 5 7 450 14 8 9 4 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 575 613 621 231 85 618 606 591 601 429 376 - - - $PROJ_DIR$\..\modbus\modbus_fc.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_crc.c ICCARM - 127 + 61 BICOMP - 257 + 116 __cstat - 334 + 81 - - - ICCARM - 522 18 88 145 278 17 43 540 627 5 7 450 14 8 9 4 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 575 613 621 231 85 618 606 591 601 517 617 629 429 376 - - - $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_rng.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_tim.c ICCARM - 190 + 177 BICOMP - 234 + 181 __cstat - 65 + 544 + + + ICCARM + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 + + - $PROJ_DIR$\..\drivers\Source\tim.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_usart.c ICCARM - 418 + 448 BICOMP - 31 + 65 __cstat - 267 + 50 ICCARM - 466 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 1 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_rtc.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_fmpi2c.c ICCARM - 214 + 631 BICOMP - 178 + 173 __cstat - 194 + 615 - $PROJ_DIR$\..\modbus\modbus_port.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_spdifrx.c ICCARM - 265 + 554 BICOMP - 201 + 608 __cstat - 269 + 179 ICCARM - 617 18 88 145 278 17 43 540 627 5 7 450 14 8 9 4 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 575 613 621 231 85 618 606 591 601 13 1 624 629 608 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_exti.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_rcc.c ICCARM - 199 + 115 BICOMP - 250 + 570 __cstat - 172 + 23 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_rcc.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_rng.c ICCARM - 242 + 156 BICOMP - 87 + 44 __cstat - 327 + 545 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_gpio.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_cryp_ex.c ICCARM - 396 + 6 BICOMP - 432 + 138 __cstat - 438 + 625 + + + ICCARM + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 + + - $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_usb.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_dcmi_ex.c ICCARM - 381 + 57 BICOMP - 51 + 85 __cstat - 384 + 632 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_dma2d.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_dac.c ICCARM - 99 + 573 BICOMP - 386 + 605 __cstat - 325 + 32 - - - $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_dac.c - + ICCARM - 189 - - - BICOMP - 430 - - - __cstat - 47 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - + - $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_lptim.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_adc.c ICCARM - 302 + 97 BICOMP - 353 + 164 __cstat - 29 + 322 - - - $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_tim.c - + ICCARM - 52 - - - BICOMP - 235 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - - __cstat - 59 - - + - $PROJ_DIR$\..\drivers\Source\usart.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_cryp.c ICCARM - 382 + 492 BICOMP - 86 + 622 __cstat - 306 + 452 ICCARM - 476 1 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_sdmmc.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_dma.c ICCARM - 356 + 590 BICOMP - 419 + 175 __cstat - 42 + 309 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\startup_stm32f407xx.s - - - AARM - 403 - - - - - $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_fmc.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_dma2d.c ICCARM - 372 + 84 BICOMP - 366 + 86 __cstat - 319 + 100 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_fsmc.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_cortex.c ICCARM - 437 + 486 BICOMP - 584 + 314 __cstat - 359 + 607 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_i2c.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_can.c ICCARM - 89 + 461 BICOMP - 60 + 612 __cstat - 67 + 627 + + + ICCARM + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 + + - $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_usart.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_dma_ex.c ICCARM - 440 + 328 BICOMP - 442 + 466 __cstat - 140 + 161 + + + ICCARM + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 + + - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_msp.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_dsi.c ICCARM - 218 + 457 BICOMP - 318 + 146 __cstat - 315 + 585 ICCARM - 1 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_it.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_cec.c ICCARM - 50 + 433 BICOMP - 312 + 528 __cstat - 182 + 533 ICCARM - 1 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 448 575 613 621 231 85 618 606 591 601 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_pcd_ex.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal.c ICCARM - 362 + 80 BICOMP - 233 + 440 __cstat - 173 + 82 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_mmc.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_crc.c ICCARM - 57 + 37 BICOMP - 161 + 463 __cstat - 35 + 510 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_pcd.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_dac_ex.c ICCARM - 23 + 584 BICOMP - 207 + 572 __cstat - 92 + 118 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_rcc_ex.c + $PROJ_DIR$\..\drivers\Source\gpio.c ICCARM - 223 + 332 BICOMP - 19 + 320 __cstat - 295 + 431 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 291 296 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_rng.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_dfsdm.c ICCARM - 116 + 43 BICOMP - 304 + 106 __cstat - 93 + 66 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_smbus.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_eth.c ICCARM - 272 + 476 BICOMP - 258 + 342 __cstat - 38 + 64 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_spdifrx.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_exti.c ICCARM - 55 + 485 BICOMP - 41 + 363 __cstat - 151 + 577 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_nand.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_flash.c ICCARM - 426 + 438 BICOMP - 336 + 556 __cstat - 228 + 462 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_pwr_ex.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_flash_ex.c ICCARM - 347 + 29 BICOMP - 414 + 327 __cstat - 391 + 441 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_spi.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_adc_ex.c ICCARM - 337 + 316 BICOMP - 291 + 483 __cstat - 227 + 88 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_sram.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_flash_ramfunc.c ICCARM - 222 + 450 BICOMP - 365 + 592 __cstat - 75 + 578 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_pwr.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_dcmi.c ICCARM - 46 + 362 BICOMP - 25 + 348 __cstat - 256 + 633 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_sai.c + $PROJ_DIR$\..\app\main.c ICCARM - 44 + 598 BICOMP - 238 + 162 __cstat - 28 + 33 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 296 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 268 291 335 411 400 40 555 401 413 412 414 390 281 405 389 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_rtc_ex.c + $PROJ_DIR$\..\ucos\uCOS-II\Source\os_flag.c ICCARM - 335 + 131 BICOMP - 320 + 154 __cstat - 370 + 166 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 335 411 400 40 139 188 110 581 617 555 401 413 412 414 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_sd.c + $PROJ_DIR$\..\ucos\uCOS-II\Source\os_mbox.c ICCARM - 423 + 158 BICOMP - 281 + 618 __cstat - 56 + 487 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 335 411 400 40 139 188 110 581 617 555 401 413 412 414 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_sdram.c + $PROJ_DIR$\..\ucos\uCOS-II\Source\os_q.c ICCARM - 266 + 428 BICOMP - 66 + 123 __cstat - 270 + 47 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 335 411 400 40 139 188 110 581 617 555 401 413 412 414 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_nor.c + $PROJ_DIR$\..\ucos\uCOS-II\Source\os_tmr.c ICCARM - 64 + 53 BICOMP - 102 + 494 __cstat - 63 + 497 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 335 411 400 40 139 188 110 581 617 555 401 413 412 414 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_smartcard.c + $PROJ_DIR$\..\ucos\uCOS-II\Source\os_task.c ICCARM - 271 + 576 BICOMP - 263 + 59 __cstat - 164 + 619 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 335 411 400 40 139 188 110 581 617 555 401 413 412 414 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_tim.c + $PROJ_DIR$\..\ucos\uCOS-II\Source\os_sem.c ICCARM - 121 + 78 BICOMP - 130 + 94 __cstat - 109 + 182 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 335 411 400 40 139 188 110 581 617 555 401 413 412 414 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_timebase_tim.c + $PROJ_DIR$\..\ucos\uCOS-II\Source\os_core.c ICCARM - 149 + 152 BICOMP - 361 + 511 __cstat - 176 + 455 + + + ICCARM + 335 411 400 40 139 188 110 581 617 555 401 413 412 414 + + - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_uart.c + $PROJ_DIR$\..\ucos\uCOS-II\Source\os_time.c ICCARM - 124 + 472 BICOMP - 287 + 473 __cstat - 232 + 567 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 335 411 400 40 139 188 110 581 617 555 401 413 412 414 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_qspi.c + $PROJ_DIR$\..\ucos\uCOS-II\Source\os_mutex.c ICCARM - 186 + 9 BICOMP - 285 + 364 __cstat - 157 + 122 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 335 411 400 40 139 188 110 581 617 555 401 413 412 414 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_rcc.c + $PROJ_DIR$\..\ucos\uCOS-II\Source\os_mem.c ICCARM - 129 + 558 BICOMP - 310 + 589 __cstat - 152 + 509 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 335 411 400 40 139 188 110 581 617 555 401 413 412 414 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_pccard.c + [ROOT_NODE] + + + ILINK + 541 315 + + + + + $PROJ_DIR$\..\plsr\run_control\plsr_run_control.c ICCARM - 299 + 569 BICOMP - 143 + 42 __cstat - 107 + 356 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 373 593 517 188 110 581 617 378 371 389 393 499 191 635 190 298 294 292 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 376 403 335 411 400 40 555 401 413 412 414 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_tim_ex.c + $PROJ_DIR$\..\modbus\modbus_fc.c ICCARM - 49 + 163 BICOMP - 346 + 96 __cstat - 367 + 535 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 392 593 517 188 110 581 617 387 390 499 191 635 190 298 294 292 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 335 411 400 40 555 401 413 412 414 386 388 389 465 621 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_rtc.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_sdmmc.c ICCARM - 26 + 319 BICOMP - 163 + 454 __cstat - 96 + 604 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_wwdg.c + $PROJ_DIR$\..\modbus\modbus_port.c ICCARM - 433 + 113 BICOMP - 142 + 49 __cstat - 58 + 83 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 388 593 517 188 110 581 617 387 390 499 191 635 190 298 294 292 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 335 411 400 40 555 401 413 412 414 291 296 405 389 393 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_usart.c + $PROJ_DIR$\..\modbus\modbus_data.c ICCARM - 373 + 24 BICOMP - 273 + 340 __cstat - 202 + 56 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 386 593 517 188 110 581 617 387 390 499 191 635 190 298 294 292 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 335 411 400 40 555 401 413 412 414 465 621 - $PROJ_DIR$\..\drivers\Source\stm32f4xx_hal_sai_ex.c + $PROJ_DIR$\..\plsr\command\plsr_command.c ICCARM - 239 + 553 BICOMP - 427 + 525 __cstat - 247 + 127 ICCARM - 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 376 593 517 188 110 581 617 389 373 405 390 499 191 635 190 298 294 292 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 335 411 400 40 555 401 413 412 414 - $PROJ_DIR$\..\ucos\uCOS-II\Source\os_mutex.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_tim.c ICCARM - 324 + 566 BICOMP - 114 + 52 __cstat - 297 + 564 - - - ICCARM - 575 613 621 231 181 145 278 17 43 85 618 606 591 601 - - - $PROJ_DIR$\..\ucos\uCOS-II\Source\os_task.c + $PROJ_DIR$\..\drivers\Source\usart.c ICCARM - 24 + 435 BICOMP - 225 + 568 __cstat - 36 + 0 ICCARM - 575 613 621 231 181 145 278 17 43 85 618 606 591 601 + 268 296 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\ucos\uCOS-II\Source\os_tmr.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_rtc.c ICCARM - 209 + 74 BICOMP - 444 + 38 __cstat - 445 + 148 - - - ICCARM - 575 613 621 231 181 145 278 17 43 85 618 606 591 601 - - - $PROJ_DIR$\..\ucos\uCOS-II\Source\os_sem.c + $PROJ_DIR$\..\drivers\Source\system_stm32f4xx.c ICCARM - 221 + 75 BICOMP - 215 + 529 __cstat - 167 + 130 ICCARM - 575 613 621 231 181 145 278 17 43 85 618 606 591 601 + 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 499 191 635 190 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\ucos\uCOS-II\Source\os_flag.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_spi.c ICCARM - 206 + 326 BICOMP - 162 + 358 __cstat - 158 + 352 - - - ICCARM - 575 613 621 231 181 145 278 17 43 85 618 606 591 601 - - - $PROJ_DIR$\..\ucos\uCOS-II\Source\os_mbox.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_usart.c ICCARM - 205 + 489 BICOMP - 390 + 460 __cstat - 431 + 359 - - - ICCARM - 575 613 621 231 181 145 278 17 43 85 618 606 591 601 - - - $PROJ_DIR$\..\ucos\uCOS-II\Source\os_q.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_usb.c ICCARM - 425 + 620 BICOMP - 282 + 542 __cstat - 211 + 432 ICCARM - 575 613 621 231 181 145 278 17 43 85 618 606 591 601 + 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\ucos\uCOS-II\Source\os_time.c + $PROJ_DIR$\..\drivers\Source\stm32f4xx_ll_utils.c ICCARM - 416 + 155 BICOMP - 421 + 442 __cstat - 106 + 624 ICCARM - 575 613 621 231 181 145 278 17 43 85 618 606 591 601 + 267 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 499 191 635 190 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 502 505 503 - $PROJ_DIR$\..\ucos\uCOS-II\Ports\os_cpu_a.asm - - - AARM - 580 - - - - - $PROJ_DIR$\..\ucos\uCOS-II\Ports\os_dbg.c + $PROJ_DIR$\..\drivers\Source\tim.c ICCARM - 76 + 436 BICOMP - 61 + 591 __cstat - 136 + 79 ICCARM - 575 613 621 231 181 145 278 17 43 85 618 606 591 601 + 281 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 296 - $PROJ_DIR$\..\ucos\uC-LIB\lib_mem.c + $PROJ_DIR$\..\plsr\pulse_driver\plsr_pulse_driver.c ICCARM - 187 + 540 BICOMP - 77 + 521 __cstat - 78 + 180 ICCARM - 588 621 231 181 145 278 17 43 85 618 606 612 616 600 611 607 590 + 393 593 517 188 110 581 617 499 191 635 190 298 294 292 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 389 296 - $PROJ_DIR$\..\ucos\uCOS-II\Ports\os_cpu_c.c + $PROJ_DIR$\startup_stm32f407xx.s + + + AARM + 444 + + + + + $PROJ_DIR$\..\plsr\path_plan\plsr_path_plan.c ICCARM - 284 + 143 BICOMP - 34 + 45 __cstat - 326 + 137 ICCARM - 575 613 621 231 181 145 278 17 43 85 618 606 591 601 616 + 378 593 517 188 110 581 617 389 - $PROJ_DIR$\..\ucos\uCOS-II\Source\os_core.c + $PROJ_DIR$\..\modbus\modbus_rtu.c ICCARM - 208 + 602 BICOMP - 98 + 104 __cstat - 415 + 306 ICCARM - 575 613 621 231 181 145 278 17 43 85 618 606 591 601 + 390 499 191 635 190 298 294 292 593 517 188 110 581 617 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 335 411 400 40 555 401 413 412 414 386 388 392 465 621 - $PROJ_DIR$\..\ucos\uCOS-II\Source\os_mem.c + $PROJ_DIR$\..\plsr\param\plsr_param.c ICCARM - 110 + 575 BICOMP - 79 + 73 __cstat - 97 + 36 ICCARM - 575 613 621 231 181 145 278 17 43 85 618 606 591 601 + 389 593 517 188 110 581 617 390 499 191 635 190 298 294 292 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 335 411 400 40 555 401 413 412 414 465 621 - $PROJ_DIR$\..\ucos\uC-LIB\lib_str.c + $PROJ_DIR$\..\plsr\accel_curve\plsr_accel_curve.c ICCARM - 104 + 524 BICOMP - 213 + 531 __cstat - 30 + 172 ICCARM - 600 621 231 181 145 278 17 43 85 618 606 616 611 607 + 371 593 517 188 110 581 617 389 - $PROJ_DIR$\..\ucos\uC-LIB\lib_math.c + $PROJ_DIR$\..\plsr\signal_io\plsr_signal_io.c ICCARM - 368 + 613 BICOMP - 144 + 603 __cstat - 184 + 488 ICCARM - 590 621 231 181 145 278 17 43 85 618 606 612 616 588 607 600 611 + 403 593 517 188 110 581 617 389 373 296 499 191 635 190 298 294 292 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\plsr\plsr.c + $PROJ_DIR$\..\ucos\uC-LIB\Ports\lib_mem_a.asm + + + AARM + 105 + + + + + $PROJ_DIR$\..\ucos\uC-CPU\cpu_c.c ICCARM - 290 + 15 BICOMP - 217 + 10 __cstat - 147 + 498 ICCARM - 624 18 88 145 278 17 43 629 608 5 7 450 14 8 9 4 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 610 615 575 613 621 231 85 618 606 591 601 + 400 40 139 188 110 581 617 555 401 413 422 408 409 404 423 426 - $PROJ_DIR$\..\plsr\run_control\plsr_run_control.c + $PROJ_DIR$\..\ucos\uC-LIB\lib_ascii.c ICCARM - 82 + 527 BICOMP - 192 + 46 __cstat - 134 + 120 ICCARM - 610 18 88 145 278 17 43 602 609 629 608 5 7 450 14 8 9 4 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 615 575 613 621 231 85 618 606 591 601 + 426 400 40 139 188 110 581 617 555 401 413 408 - $PROJ_DIR$\..\plsr\pulse_driver\plsr_pulse_driver.c + $PROJ_DIR$\..\ucos\uC-LIB\lib_str.c ICCARM - 111 + 519 BICOMP - 90 + 41 __cstat - 171 + 588 ICCARM - 608 18 88 145 278 17 43 5 7 450 14 8 9 4 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 629 1 + 423 400 40 139 188 110 581 617 555 401 413 408 426 404 - $PROJ_DIR$\..\plsr\command\plsr_command.c + $PROJ_DIR$\..\ucos\uC-LIB\lib_math.c ICCARM - 54 + 343 BICOMP - 95 + 171 __cstat - 148 + 145 ICCARM - 615 18 88 145 278 17 43 629 610 624 627 5 7 450 14 8 9 4 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 575 613 621 231 85 618 606 591 601 + 427 400 40 139 188 110 581 617 555 401 413 422 408 409 404 423 426 - $PROJ_DIR$\..\ucos\uC-LIB\app_hooks.c + $PROJ_DIR$\..\plsr\plsr.c ICCARM - 428 + 103 BICOMP - 292 + 35 __cstat - 100 + 129 ICCARM - 575 613 621 231 181 145 278 17 43 85 618 606 591 601 5 7 450 14 8 9 4 18 88 15 2 16 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 + 405 593 517 188 110 581 617 389 393 499 191 635 190 298 294 292 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 373 376 403 335 411 400 40 555 401 413 412 414 - $PROJ_DIR$\..\ucos\uC-LIB\Ports\lib_mem_a.asm + $PROJ_DIR$\..\ucos\uCOS-II\Ports\os_cpu_a.asm AARM - 293 + 464 - $PROJ_DIR$\..\plsr\accel_curve\plsr_accel_curve.c + $PROJ_DIR$\..\ucos\uCOS-II\Ports\os_cpu_c.c ICCARM - 94 + 125 BICOMP - 103 + 616 __cstat - 132 + 31 ICCARM - 609 18 88 145 278 17 43 629 + 335 411 400 40 139 188 110 581 617 555 401 413 412 414 408 - $PROJ_DIR$\..\ucos\uC-CPU\cpu_core.c + $PROJ_DIR$\..\ucos\uCOS-II\Ports\os_dbg.c ICCARM - 139 + 600 BICOMP - 72 + 560 __cstat - 407 + 187 ICCARM - 612 621 231 181 145 278 17 43 85 618 606 616 588 607 600 611 + 335 411 400 40 139 188 110 581 617 555 401 413 412 414 @@ -3558,122 +3567,141 @@ AARM - 183 + 149 - $PROJ_DIR$\..\modbus\modbus_rtu.c + $PROJ_DIR$\..\ucos\uC-LIB\app_hooks.c ICCARM - 45 + 429 BICOMP - 245 + 11 __cstat - 349 + 537 ICCARM - 627 5 7 450 14 8 9 4 18 88 145 278 17 43 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 575 613 621 231 85 618 606 591 601 517 617 522 429 376 + 335 411 400 40 139 188 110 581 617 555 401 413 412 414 499 191 635 190 298 294 292 593 517 297 303 299 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 - $PROJ_DIR$\..\ucos\uC-CPU\cpu_c.c + $PROJ_DIR$\..\ucos\uC-LIB\lib_mem.c ICCARM - 329 + 39 BICOMP - 307 + 580 __cstat - 578 + 579 ICCARM - 621 231 181 145 278 17 43 85 618 606 612 616 588 607 600 611 + 409 400 40 139 188 110 581 617 555 401 413 422 408 423 426 404 427 - $PROJ_DIR$\..\plsr\param\plsr_param.c + $PROJ_DIR$\..\ucos\uC-CPU\cpu_core.c ICCARM - 20 + 185 BICOMP - 241 + 601 __cstat - 224 + 482 ICCARM - 629 18 88 145 278 17 43 627 5 7 450 14 8 9 4 15 2 16 181 3 12 11 10 40 91 451 459 458 460 456 454 6 461 455 457 453 447 449 452 446 575 613 621 231 85 618 606 591 601 429 376 + 422 400 40 139 188 110 581 617 555 401 413 408 409 404 423 426 - $PROJ_DIR$\..\plsr\path_plan\plsr_path_plan.c + $PROJ_DIR$\..\plsr\mb\plsr_mb.c ICCARM - 191 + 98 BICOMP - 180 + 8 __cstat - 155 + 17 ICCARM - 602 18 88 145 278 17 43 629 + 484 593 517 188 110 581 617 389 109 1 405 390 499 191 635 190 298 294 292 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 335 411 400 40 555 401 413 412 414 - $PROJ_DIR$\..\ucos\uC-LIB\lib_ascii.c + $PROJ_DIR$\Debug\Exe\plsr.out + + + ILINK + 315 + + + OBJCOPY + 3 + + + + + ILINK + 350 429 149 15 185 332 527 343 39 105 519 598 24 163 113 602 152 464 125 600 131 158 558 9 428 78 576 472 53 103 524 553 575 143 540 569 613 444 80 97 316 461 433 486 37 492 6 573 584 362 57 43 590 84 328 457 476 485 438 29 450 475 108 329 126 599 515 55 551 4 337 128 361 18 439 90 490 345 548 69 479 561 20 597 346 596 308 147 186 51 344 587 534 623 71 437 95 114 119 554 311 58 177 552 134 189 448 480 539 76 61 54 458 532 140 610 631 474 445 518 5 451 115 156 74 319 326 566 489 620 155 75 436 435 99 355 547 331 + + + + + $PROJ_DIR$\..\plsr\hw\plsr_hw.c ICCARM - 83 + 68 BICOMP - 197 + 477 __cstat - 277 + 508 ICCARM - 611 621 231 181 145 278 17 43 85 618 606 616 + 430 593 517 188 110 581 617 499 191 635 190 298 294 292 297 303 299 139 301 293 295 302 606 523 636 199 197 196 192 200 195 198 193 194 637 634 500 506 504 389 296 diff --git a/iar/plsr.ewp b/iar/plsr.ewp index d695c13..3cfbb97 100644 --- a/iar/plsr.ewp +++ b/iar/plsr.ewp @@ -362,6 +362,7 @@ $PROJ_DIR$\..\plsr\accel_curve $PROJ_DIR$\..\plsr\run_control $PROJ_DIR$\..\plsr\command + $PROJ_DIR$\..\plsr\signal_io $PROJ_DIR$\..\plsr\test $PROJ_DIR$\..\ucos\uC-CPU $PROJ_DIR$\..\ucos\uC-LIB\Ports @@ -2929,6 +2930,15 @@ $PROJ_DIR$\..\plsr\command\plsr_command.h + + signal_io + + $PROJ_DIR$\..\plsr\signal_io\plsr_signal_io.c + + + $PROJ_DIR$\..\plsr\signal_io\plsr_signal_io.h + + ucos diff --git a/plsr/accel_curve/plsr_accel_curve.c b/plsr/accel_curve/plsr_accel_curve.c index fa2f040..8e552de 100644 --- a/plsr/accel_curve/plsr_accel_curve.c +++ b/plsr/accel_curve/plsr_accel_curve.c @@ -9,6 +9,7 @@ * 已解决,原因是逻辑分析仪采样率不够,导致采样点减少,波形有毛刺。 */ #include "plsr_accel_curve.h" +#include /*频率大于100k时暂时固定到100k,后面增加报错*/ uint32_t PlsrAccelCurveClampFreq(uint32_t freq_hz) @@ -75,7 +76,7 @@ static uint32_t PlsrAccelCurveRampTimeMs(uint32_t f_from, { return 0U; } - /* 默认速度未设时,用频差作分母:整段升降时间 = accel/decel_ms */ + /* 默认速度未设时,用频差作分母 */ if (den == 0U) { den = df; @@ -234,6 +235,73 @@ uint32_t PlsrAccelCurveFreqOnRampUs(uint32_t f0, return PlsrAccelCurveLerp(f0, f1, r); } +/** + * 1ms 时基取频(与 PlsrRunControlOn1ms 一致)。 + */ +uint32_t PlsrAccelCurveFreqOnRampMs(uint32_t f0, + uint32_t f1, + uint32_t t_ms, + uint32_t T_ms, + PlsrAccelMode_e mode) +{ + uint32_t f; + + if (T_ms < 1U) + { + return (f1 >= 1U) ? f1 : 1U; + } + + if (mode == PLSR_ACCEL_LINEAR) + { + if ((f0 == 0U) && (f1 > 0U)) + { + uint32_t step = t_ms + 1U; + if (step >= T_ms) + { + return (f1 >= 1U) ? f1 : 1U; + } + f = (f1 * step) / T_ms; + if (f < 1U) + { + f = 1U; + } + return f; + } + if ((f1 == 0U) && (f0 > 0U)) + { + uint32_t step = t_ms + 1U; + uint32_t left; + if (step >= T_ms) + { + return 1U; + } + left = T_ms - step; + f = (f0 * left) / T_ms; + if (f < 1U) + { + f = 1U; + } + return f; + } + } + else if ((f0 == 0U) && (t_ms == 0U) && (f1 > 0U)) + { + f = f1 / T_ms; + if (f < 1U) + { + f = 1U; + } + return f; + } + + f = PlsrAccelCurveFreqOnRampUs(f0, f1, t_ms * 1000UL, T_ms * 1000UL, mode); + if (f < 1U) + { + f = 1U; + } + return f; +} + /** * 斜坡第一拍频率(规划/开跑共用)。 * f0>=1:第一拍即 f0。 @@ -286,8 +354,11 @@ uint32_t PlsrAccelCurveFirstPulseFreq(uint32_t f0, } /** - * 脉冲起点锁频递推脉冲数(与 ISR 一致);f(t) 按 mode 形状。 + * 脉冲起点锁频递推脉冲数(与每脉冲改频一致);f(t) 按 mode 形状。 * 仅任务/规划上下文;禁止进脉冲 ISR。 + * + * 注意:不可再用「每 ms 贡献 f/1000」——低频时一个脉冲周期 >> 1ms, + * 那种估法会把 dec_n 估成 1,示波器上像没有减速。 */ static uint32_t PlsrAccelCurveEstimatePulses(uint32_t f_from, uint32_t f_to, @@ -321,7 +392,6 @@ static uint32_t PlsrAccelCurveEstimatePulses(uint32_t f_from, } else { - /* 止速到 0:末段按 1Hz 计周期,与运行输出下限一致 */ f = 1U; } } diff --git a/plsr/accel_curve/plsr_accel_curve.h b/plsr/accel_curve/plsr_accel_curve.h index 00928e8..61692d5 100644 --- a/plsr/accel_curve/plsr_accel_curve.h +++ b/plsr/accel_curve/plsr_accel_curve.h @@ -2,10 +2,8 @@ * @file plsr_accel_curve.h * @brief 预估加/匀/减脉冲;相内按时间走直线/S/正弦 * - * 相界按预估脉冲划分;预估与运行时一致:shape(t/T) + 脉冲起点锁频递推。 - * 完成方式非末段 f_end==f_tgt:不够则不减速,沿斜率加到脉冲用尽。 - * 后续方式非末段 f_end=下一段目标:段末过渡占用本段脉冲;不够则压峰/压缩过渡。 - * 末段(完成/后续)脉冲不够:降低峰值做三角到终止速度。 + * 相界按预估脉冲划分;预估与运行一致:shape(t/T) + 每脉冲改频、周期累加。 + * 斜率按公共参数:K≈(默认速度−起/止速)/加减速时间;小频差时 T 可能 <1ms,无可见斜坡属正常。 */ #ifndef PLSR_ACCEL_CURVE_H #define PLSR_ACCEL_CURVE_H @@ -43,6 +41,16 @@ uint32_t PlsrAccelCurveFreqOnRampUs(uint32_t f0, uint32_t T_us, PlsrAccelMode_e mode); +/** + * 与 TIM3 1ms 改频一致的斜坡取频(规划/运行共用)。 + * 直线起/止 0:离散台阶;其余走 shape。 + */ +uint32_t PlsrAccelCurveFreqOnRampMs(uint32_t f0, + uint32_t f1, + uint32_t t_ms, + uint32_t T_ms, + PlsrAccelMode_e mode); + /** * 斜坡第一拍频率(起速为 0 时用自洽点,避免按 1Hz 整秒吃光加速相)。 * ISR 可用:O(1)。 diff --git a/plsr/param/plsr_param.h b/plsr/param/plsr_param.h index 4a9d864..271404c 100644 --- a/plsr/param/plsr_param.h +++ b/plsr/param/plsr_param.h @@ -81,11 +81,11 @@ typedef enum { } PlsrPosMode_e; typedef enum { - PLSR_WAIT_TIME = 0, /* WAIT 时间 */ - PLSR_WAIT_SIGNAL = 1, /* WAIT 信号(待实现) */ - PLSR_WAIT_ACT = 2, /* ACT 时间 */ - PLSR_WAIT_EXT = 3, /* EXT 信号(待实现) */ - PLSR_WAIT_EXT_OR_DONE = 4 /* EXT 或发完(当前等同立即继续) */ + PLSR_WAIT_TIME = 0, /* 发完后等 wait_ms,再跳转 */ + PLSR_WAIT_SIGNAL = 1, /* 发完后等 WAIT 口下降沿,再跳转 */ + PLSR_WAIT_ACT = 2, /* 出脉冲满 act_ms 后中途切段并立即跳转 */ + PLSR_WAIT_EXT = 3, /* 运行中 EXT 下降沿中途切段并立即跳转 */ + PLSR_WAIT_EXT_OR_DONE = 4 /* EXT 沿或脉冲发完,先到先跳转 */ } PlsrWaitType_e; /** 公共运行参数(运动侧只读此映像,不直接啃寄存器) */ diff --git a/plsr/path_plan/plsr_path_plan.c b/plsr/path_plan/plsr_path_plan.c index 81dc41b..2d5c08c 100644 --- a/plsr/path_plan/plsr_path_plan.c +++ b/plsr/path_plan/plsr_path_plan.c @@ -50,13 +50,12 @@ uint16_t PlsrPathPlanGetWaitMs(uint16_t seg_0based) { PlsrSeg_t *seg = PlsrParamGetSeg(seg_0based); - if ((seg->wait_type == PLSR_WAIT_TIME) || (seg->wait_type == PLSR_WAIT_ACT)) + /* 仅段后 WAIT 时间;0 按 1ms(手册);信号/ACT/EXT 由 run_control 处理 */ + if (seg->wait_type == PLSR_WAIT_TIME) { - return (seg->wait_type == PLSR_WAIT_ACT) ? seg->act_ms : seg->wait_ms; + return (seg->wait_ms == 0U) ? 1U : seg->wait_ms; } - - /* WAIT_SIGNAL / EXT / EXT_OR_DONE:暂未接输入,按立即继续 */ - (void)seg; + (void)seg_0based; return 0U; } diff --git a/plsr/path_plan/plsr_path_plan.h b/plsr/path_plan/plsr_path_plan.h index 609c838..37bf512 100644 --- a/plsr/path_plan/plsr_path_plan.h +++ b/plsr/path_plan/plsr_path_plan.h @@ -3,7 +3,7 @@ * @brief 多段路径规划:段序、跳转、段间等待、相对/绝对方向判定 * * 不直接驱动硬件;由运行控制查询后执行。 - * 5 类等待中目前仅 TIME/ACT 产生延时,其余返回 0(立即继续)。 + * 等待类型由 run_control + signal_io 执行(时间用 TIM3,信号用 EXTI)。 */ #ifndef PLSR_PATH_PLAN_H #define PLSR_PATH_PLAN_H @@ -26,8 +26,7 @@ int16_t PlsrPathPlanNextSeg(uint16_t cur_seg_0based); uint8_t PlsrPathPlanIsForward(uint16_t seg_0based, int32_t acc_pulse); /** - * @brief 段结束后需要等待的毫秒数 - * @return >0 进入等待;0 立即解析下一段 + * @brief 段结束后 WAIT 时间(ms);仅 WAIT_TIME 有效,0 按 1ms */ uint16_t PlsrPathPlanGetWaitMs(uint16_t seg_0based); diff --git a/plsr/plsr.c b/plsr/plsr.c index 30f0f15..ab0f6d3 100644 --- a/plsr/plsr.c +++ b/plsr/plsr.c @@ -7,12 +7,14 @@ #include "plsr_run_control.h" #include "plsr_param.h" #include "plsr_command.h" +#include "plsr_signal_io.h" #include "ucos_ii.h" void PlsrInit(void) { PlsrParamInitDefault(); PlsrPulseDriverInit(); + PlsrSignalIoInit(); PlsrRunControlInit(); PlsrParamBlockExportToHold(); /* 上电把默认映像摊到保持寄存器 */ PlsrCommandInit(); diff --git a/plsr/pulse_driver/plsr_pulse_driver.c b/plsr/pulse_driver/plsr_pulse_driver.c index c1d72c1..7abca76 100644 --- a/plsr/pulse_driver/plsr_pulse_driver.c +++ b/plsr/pulse_driver/plsr_pulse_driver.c @@ -293,14 +293,16 @@ void PlsrPulseDriverLockPscRange(uint32_t f_min_hz, uint32_t f_max_hz) if (psc_div_lo > psc_div_hi) { - /* 跨度过大:优先保证低频可表示 */ - div = psc_div_lo; - } - else - { - div = psc_div_lo; + /* + * 单一 PSC 无法同时覆盖 f_min~f_max(例如 1Hz~很高频)。 + * 不锁死,交由 SetFreq 按频率自适应 PSC,避免高频被算成平台方波。 + */ + s_psc_locked = 0U; + s_locked_psc = 0U; + return; } + div = psc_div_lo; s_locked_psc = div - 1UL; s_psc_locked = 1U; } diff --git a/plsr/run_control/plsr_run_control.c b/plsr/run_control/plsr_run_control.c index 42db13b..ff94797 100644 --- a/plsr/run_control/plsr_run_control.c +++ b/plsr/run_control/plsr_run_control.c @@ -2,21 +2,22 @@ * @file plsr_run_control.c * @brief 完成方式 / 后续方式 运行控制(加减速形状由 accel_mode 决定) * - * 完成方式(PLSR_SEND_COMPLETE): - * - 上一段发完后,再在本段开头加/减速到本段目标频率 - * - 非末段:加速→匀速(f_end=本段目标,无段末过渡);末段再减到终止速度 - * - 段间停表,用 s_chain_freq 把当前频传给下一段作起速 + * 分层: + * 1) 调用/等待策略:只决定调用顺序,以及传给段处理的 + * 起始频率 f_from、终止频率 f_end、加速/减速时间(斜率基准) + * 2) 段内处理:不感知 wait_type;只按 (f_from,f_tgt,f_end,accel,decel) + * 做加速→匀速→减速(脉冲不够则三角) + * 3) 波形只跟斜坡计算:算 T、按相时间取频;上拍发完才更新频率。 + * ARR 预装载(ARPE)下必须提前一拍写入影寄存器,否则起速会多一拍、止速落不到末拍。 * - * 后续方式(PLSR_SEND_FOLLOW): - * - 上一段脉冲发完时,频率已到达下一段目标(过渡占用本段末尾脉冲) - * - 首段:起速→本段目标→再过渡到下一段目标 - * - 中间段:已在本段目标上匀速→段末过渡到下一段目标 - * - 末段:匀速→减到终止速度后停 - * - 同向无等待时不停表衔接;换向/等待则停表再启 + * 典型策略映射: + * - 完成方式:每段 f_end=止速(梯形/三角);WAIT 只改段后等待与下一段 f_from + * - WAIT时间/信号 + 后续:本段 f_end=止速;段后等待;下一段 f_from=起速 + * - 后续无缝:本段 f_end=下一段目标;不停表,f_from=当前频 * * 【硬约束】脉冲 UPDATE ISR(PlsrRunControlOnPulseIsr)内禁止重计算: * - 禁止 FitRampTimeMs / EstimatePulses 等 O(N) 或查表迭代 - * - ISR 只做:计数、O(1) 形状取频、改预装载 ARR;耗时规划放在 BeginSeg/任务上下文 + * - 升降速:每脉冲 O(1) 取频改 ARR;TIM3 1ms 只服务 WAIT/ACT 时钟 */ #include "plsr_run_control.h" #include "plsr_path_plan.h" @@ -24,6 +25,7 @@ #include "plsr_param.h" #include "plsr_pulse_driver.h" #include "plsr_command.h" +#include "plsr_signal_io.h" #include "ucos_ii.h" #include @@ -51,12 +53,14 @@ static volatile int32_t s_target; static volatile int32_t s_acc_pulse; static INT32U s_dir_deadline; -static INT32U s_wait_deadline; +static uint32_t s_wait_deadline_ms; /* TIM3:段后 WAIT 时间 */ +static uint32_t s_act_deadline_ms; /* TIM3:ACT 脉冲输出时长 */ +static uint8_t s_act_armed; +static uint8_t s_wait_is_signal; /* RC_WAIT_COND:1=等 WAIT 沿,0=等时间 */ static PlsrAccelPlan_t s_accel_plan; static RunPhase_e s_phase; -static INT32U s_phase_t0; -static uint32_t s_phase_elapsed_us; /* 相内时间(脉冲周期累加,µs) */ +static uint32_t s_phase_elapsed_us; /* 相内已过时间(按脉冲周期累加) */ static uint32_t s_approach_from; static uint32_t s_decel_from; static uint8_t s_follow_cont; @@ -65,12 +69,266 @@ static uint32_t s_chain_freq; static uint8_t s_chain_valid; static uint8_t s_pwm_on; +/* 本段由策略层解析后的加减速时间(段内只用这两份,不再读 wait) */ +static uint16_t s_run_accel_ms; +static uint16_t s_run_decel_ms; + +/** 策略层交给段处理的接口参数 */ +typedef struct { + uint32_t f_from; + uint32_t f_end; + uint16_t accel_ms; + uint16_t decel_ms; +} PlsrSegCallIo_t; + static void PlsrRunControlAfterSegDone(void); +static void PlsrRunControlBeginSeg(uint16_t seg_0); +static void PlsrRunControlGotoNextOrFinish(uint16_t cur_seg); +static void PlsrRunControlFinishAll(void); +static void PlsrRunControlArmActExtOnPulseStart(void); +static void PlsrRunControlCutSegToNext(void); +static void PlsrRunControlEnterPostWaitOrNext(void); +static uint8_t PlsrRunControlBlocksFollowKeep(uint16_t cur_seg); +static uint8_t PlsrRunControlWillFollowKeep(uint16_t cur_seg); +static uint8_t PlsrRunControlResolveSegCallIo(uint16_t seg_0, uint32_t f_tgt, + PlsrSegCallIo_t *io); +static uint16_t PlsrRunControlWaitTimeMs(const PlsrSeg_t *seg); +static void PlsrRunControlPlanSeg(uint32_t total, uint32_t f_from, + uint32_t f_tgt, uint32_t f_end, + uint16_t accel_ms, uint16_t decel_ms); +static uint32_t PlsrRunControlClampSpeed(uint32_t spd); +static uint8_t PlsrRunControlGetSegTargetFreq(int32_t freq_hz, + uint32_t default_spd, + uint32_t *out_hz); + +static void PlsrRunControlArmActExtOnPulseStart(void) +{ + PlsrSeg_t *seg = PlsrParamGetSeg(s_cur_seg); + + PlsrSignalIoClearEdges(); + s_act_armed = 0U; + if ((seg->wait_type == PLSR_WAIT_ACT) && (seg->act_ms > 0U)) + { + s_act_armed = 1U; + s_act_deadline_ms = PlsrSignalIoDeadlineFromNow(seg->act_ms); + } +} + +/** ACT/EXT 中途切段:停表后立即按 jump 跳转(不再做段后 WAIT) */ +static void PlsrRunControlCutSegToNext(void) +{ + PlsrCfg_t *cfg = PlsrParamGetCfg(); + + s_state = RC_IDLE; + s_act_armed = 0U; + PlsrPulseDriverStop(); + s_follow_cont = 0U; + s_pwm_on = 0U; + if (cfg->send_mode == PLSR_SEND_COMPLETE) + { + s_chain_freq = s_cur_freq; + s_chain_valid = 1U; + } + else + { + s_cur_freq = 0U; + s_chain_valid = 0U; + } + PlsrRunControlGotoNextOrFinish(s_cur_seg); +} + +static void PlsrRunControlEnterPostWaitOrNext(void) +{ + PlsrSeg_t *seg = PlsrParamGetSeg(s_cur_seg); + uint16_t wms; + + /* + * 调用顺序策略(与段内波形无关): + * WAIT时间/信号 → 停表清链后等待,再 BeginSeg(下一段 f_from=起速) + * 其它 → 立即跳转下一段 + */ + if (seg->wait_type == PLSR_WAIT_TIME) + { + wms = PlsrRunControlWaitTimeMs(seg); + PlsrPulseDriverStop(); + s_follow_cont = 0U; + s_pwm_on = 0U; + s_chain_valid = 0U; + s_chain_freq = 0U; + s_cur_freq = 0U; + s_pending_freq = 0U; + s_wait_is_signal = 0U; + s_wait_deadline_ms = PlsrSignalIoDeadlineFromNow(wms); + s_state = RC_WAIT_COND; + return; + } + if (seg->wait_type == PLSR_WAIT_SIGNAL) + { + PlsrPulseDriverStop(); + s_follow_cont = 0U; + s_pwm_on = 0U; + s_chain_valid = 0U; + s_chain_freq = 0U; + s_cur_freq = 0U; + s_pending_freq = 0U; + PlsrSignalIoClearEdges(); + s_wait_is_signal = 1U; + s_state = RC_WAIT_COND; + return; + } + + PlsrRunControlGotoNextOrFinish(s_cur_seg); +} + +static void PlsrRunControlGotoNextOrFinish(uint16_t cur_seg) +{ + int16_t next0 = PlsrPathPlanResolveAfterSeg(cur_seg); + + if (next0 < 0) + { + PlsrRunControlFinishAll(); + } + else + { + PlsrRunControlBeginSeg((uint16_t)next0); + } +} + +static void PlsrRunControlAfterSegDone(void) +{ + PlsrCfg_t *cfg = PlsrParamGetCfg(); + uint8_t keep_pwm; + + /* 先脱离 RUN,避免脉冲 ISR 重入 */ + s_state = RC_IDLE; + s_act_armed = 0U; + + keep_pwm = PlsrRunControlWillFollowKeep(s_cur_seg); + + if (cfg->send_mode == PLSR_SEND_COMPLETE) + { + s_chain_freq = s_cur_freq; + s_chain_valid = 1U; + } + + if (keep_pwm != 0U) + { + /* 后续同向且无门禁:不停表直接 BeginSeg */ + s_follow_cont = 1U; + } + else + { + PlsrPulseDriverStop(); + s_follow_cont = 0U; + s_pwm_on = 0U; + if (cfg->send_mode == PLSR_SEND_FOLLOW) + { + s_cur_freq = 0U; + s_chain_valid = 0U; + } + } + + PlsrRunControlEnterPostWaitOrNext(); +} + +static uint8_t PlsrRunControlBlocksFollowKeep(uint16_t cur_seg) +{ + PlsrSeg_t *seg = PlsrParamGetSeg(cur_seg); + + /* WAIT时间(含0→1ms)、WAIT信号、ACT/EXT:均禁止无缝衔接 */ + if ((seg->wait_type == PLSR_WAIT_TIME) || + (seg->wait_type == PLSR_WAIT_SIGNAL) || + (seg->wait_type == PLSR_WAIT_ACT) || + (seg->wait_type == PLSR_WAIT_EXT) || + (seg->wait_type == PLSR_WAIT_EXT_OR_DONE)) + { + return 1U; + } + (void)cur_seg; + return 0U; +} /** - * 后续方式:本段末拍后能否同向不停表直接进下一段。 - * (有下一段、同向、且本段无等待。)ISR 内 O(1)。 + * 调用/等待策略:根据发送模式、等待条件、衔接状态,解析本段 + * f_from / f_end / accel_ms / decel_ms。段内处理不读 wait_type。 + * + * @return 1 成功;0 下一段目标频非法(仅后续无缝衔接时) */ +static uint8_t PlsrRunControlResolveSegCallIo(uint16_t seg_0, uint32_t f_tgt, + PlsrSegCallIo_t *io) +{ + PlsrSeg_t *seg = PlsrParamGetSeg(seg_0); + PlsrCfg_t *cfg = PlsrParamGetCfg(); + int16_t next0; + uint8_t end_at_stop; /* 1:本段终止频率用公共止速 */ + + (void)f_tgt; + + io->accel_ms = cfg->accel_ms; + io->decel_ms = cfg->decel_ms; + + /* ---------- 起始频率:由衔接状态决定(WAIT 会清链 → 起速) ---------- */ + if (s_follow_cont != 0U) + { + io->f_from = s_cur_freq; + } + else if ((cfg->send_mode == PLSR_SEND_COMPLETE) && (s_chain_valid != 0U)) + { + io->f_from = s_chain_freq; + } + else + { + io->f_from = PlsrRunControlClampSpeed(cfg->start_speed); + } + + /* + * ---------- 终止频率:策略层决定,段内不感知 wait ---------- + * 完成方式:每段都止于公共止速(与上位机预览一致;段间靠链频/WAIT 决定下一段 f_from) + * WAIT时间/信号 或 真末段:止速 + * 后续无缝:下一段目标 + */ + next0 = PlsrPathPlanNextSeg(seg_0); + end_at_stop = (next0 < 0) ? 1U : 0U; + + if (cfg->send_mode == PLSR_SEND_COMPLETE) + { + end_at_stop = 1U; + } + else if ((seg->wait_type == PLSR_WAIT_TIME) || + (seg->wait_type == PLSR_WAIT_SIGNAL)) + { + end_at_stop = 1U; + } + + if (end_at_stop != 0U) + { + io->f_end = PlsrRunControlClampSpeed(cfg->end_speed); + return 1U; + } + + /* 仅后续方式 + 无缝:过渡到下一段目标 */ + { + PlsrSeg_t *nseg = PlsrParamGetSeg((uint16_t)next0); + if (PlsrRunControlGetSegTargetFreq(nseg->freq_hz, + cfg->default_speed, + &io->f_end) == 0U) + { + return 0U; + } + } + return 1U; +} + +/** 手册:WAIT 时间为 0 时按 1ms 处理 */ +static uint16_t PlsrRunControlWaitTimeMs(const PlsrSeg_t *seg) +{ + if (seg->wait_ms == 0U) + { + return 1U; + } + return seg->wait_ms; +} + static uint8_t PlsrRunControlWillFollowKeep(uint16_t cur_seg) { PlsrCfg_t *cfg = PlsrParamGetCfg(); @@ -89,7 +347,7 @@ static uint8_t PlsrRunControlWillFollowKeep(uint16_t cur_seg) { return 0U; } - if (PlsrPathPlanGetWaitMs(cur_seg) > 0U) + if (PlsrRunControlBlocksFollowKeep(cur_seg) != 0U) { return 0U; } @@ -193,9 +451,8 @@ static void PlsrRunControlApplyOutFreq(uint32_t profile_freq, uint8_t do_start) static void PlsrRunControlEnterPhase(RunPhase_e ph, uint32_t anchor_freq) { + /* 相时间由 ISR 累加;切入减速时在 EnterDecel 里清零 */ s_phase = ph; - s_phase_t0 = OSTimeGet(); - s_phase_elapsed_us = 0U; if (ph == PH_APPROACH) { s_approach_from = anchor_freq; @@ -206,6 +463,43 @@ static void PlsrRunControlEnterPhase(RunPhase_e ph, uint32_t anchor_freq) } } +static uint32_t PlsrRunControlPeriodUs(uint32_t f_hz) +{ + if (f_hz < 1U) + { + f_hz = 1U; + } + return (1000000UL + (f_hz / 2UL)) / f_hz; +} + +static uint32_t PlsrRunControlFreqOnRampMs(uint32_t f0, uint32_t f1, + uint32_t t_ms, uint32_t T_ms, + PlsrAccelMode_e mode) +{ + return PlsrRunControlOutFreq( + PlsrAccelCurveFreqOnRampMs(f0, f1, t_ms, T_ms, mode)); +} + +/** + * 斜坡时间短于「from 频率一拍周期」:该拍结束后相时间已越过 T, + * 应直接取相终点频率。 + */ +static uint8_t PlsrRunControlRampDoneInOnePulse(uint32_t from_hz, uint32_t T_ms) +{ + uint32_t per_ms; + + if (T_ms < 1U) + { + return 1U; + } + if (from_hz < 1U) + { + from_hz = 1U; + } + per_ms = (1000UL + from_hz - 1UL) / from_hz; + return (T_ms <= per_ms) ? 1U : 0U; +} + static void PlsrRunControlEnterDecel(uint32_t from_hz, uint32_t remain_pulses) { PlsrCfg_t *cfg = PlsrParamGetCfg(); @@ -223,6 +517,7 @@ static void PlsrRunControlEnterDecel(uint32_t from_hz, uint32_t remain_pulses) old_t_dec = s_accel_plan.t_dec_ms; PlsrRunControlEnterPhase(PH_DECEL, from_hz); + s_phase_elapsed_us = 0U; f_end = s_accel_plan.f_end; if (remain_pulses == 0U) @@ -251,11 +546,11 @@ static void PlsrRunControlEnterDecel(uint32_t from_hz, uint32_t remain_pulses) return; } - /* 参数斜率决定的理想减速时间 */ + /* 参数斜率决定的理想减速时间(用本段策略解析的 accel/decel) */ df = (from_hz > f_end) ? (from_hz - f_end) : (f_end - from_hz); if (f_end > from_hz) { - ref_ms = cfg->accel_ms; + ref_ms = s_run_accel_ms; den = (cfg->default_speed > cfg->start_speed) ? (cfg->default_speed - cfg->start_speed) : ((cfg->default_speed > cfg->end_speed) ? @@ -263,7 +558,7 @@ static void PlsrRunControlEnterDecel(uint32_t from_hz, uint32_t remain_pulses) } else { - ref_ms = cfg->decel_ms; + ref_ms = s_run_decel_ms; den = (cfg->default_speed > cfg->end_speed) ? (cfg->default_speed - cfg->end_speed) : ((cfg->default_speed > cfg->start_speed) ? @@ -316,95 +611,72 @@ static void PlsrRunControlEnterDecel(uint32_t from_hz, uint32_t remain_pulses) } } -static void PlsrRunControlRefreshProfile(uint8_t do_start) +static uint32_t PlsrRunControlCalcOutFreq(uint32_t elapsed_us, uint32_t remain) { uint32_t next; - uint32_t remain; - uint32_t elapsed_us; - uint32_t T_us; + uint32_t T_ms; const PlsrAccelPlan_t *p = &s_accel_plan; - if (s_done < s_target) - { - remain = (uint32_t)(s_target - s_done); - } - else - { - remain = 0U; - } - - elapsed_us = s_phase_elapsed_us; - /* - * 只有匀速相才按剩余脉冲进减速。 - * 加速相未完成时禁止切减速,否则首段会跳过“起速→目标”的加速过程。 + * 止速段:剩余脉冲进入 dec_n 时切入减速(加速相也可切,避免脉冲被加速吃光)。 */ - if ((s_phase == PH_CONST) && (p->dec_n > 0U) && (remain <= p->dec_n)) + if ((p->dec_n > 0U) && (remain <= p->dec_n) && + (p->f_end != p->f_tgt) && + ((s_phase == PH_CONST) || (s_phase == PH_APPROACH))) { PlsrRunControlEnterDecel(s_cur_freq, remain); - elapsed_us = 0U; } if (s_phase == PH_APPROACH) { - T_us = p->t_acc_ms * 1000UL; + T_ms = p->t_acc_ms; if (s_approach_from == p->f_tgt) { next = p->f_tgt; PlsrRunControlEnterPhase(PH_CONST, next); } - else if ((T_us == 0U) || (elapsed_us >= T_us)) + else if ((T_ms < 1U) || (elapsed_us >= (T_ms * 1000UL))) { next = p->f_tgt; PlsrRunControlEnterPhase(PH_CONST, next); if ((p->dec_n > 0U) && (remain <= p->dec_n)) { PlsrRunControlEnterDecel(next, remain); - elapsed_us = 0U; - T_us = p->t_dec_ms * 1000UL; - next = PlsrAccelCurveFreqOnRampUs(s_decel_from, p->f_end, - elapsed_us, T_us, p->mode); + if ((remain <= 1U) || + (PlsrRunControlRampDoneInOnePulse(s_decel_from, + p->t_dec_ms) != 0U)) + { + next = p->f_end; + } + else + { + next = PlsrRunControlFreqOnRampMs(s_decel_from, p->f_end, + 0U, + p->t_dec_ms, p->mode); + } } } else { - uint32_t t_cmd = elapsed_us; - if ((s_pwm_on != 0U) && (s_cur_freq >= 1U)) - { - t_cmd = elapsed_us + - ((1000000UL + (s_cur_freq / 2UL)) / s_cur_freq); - } - next = PlsrAccelCurveFreqOnRampUs(s_approach_from, p->f_tgt, - t_cmd, T_us, p->mode); + next = PlsrRunControlFreqOnRampMs(s_approach_from, p->f_tgt, + elapsed_us / 1000UL, + T_ms, p->mode); } } else if (s_phase == PH_DECEL) { - T_us = p->t_dec_ms * 1000UL; - /* - * ARPE 超前一拍:这里算出的 next 是“再下一拍”的预装载。 - * remain==2 时预装载最后一拍 → 必须为 f_end;remain==1 最后一拍已在跑。 - * (止速参数为 0 时规划端点已是 1Hz,最后一拍落到 1Hz 再段结束停表。) - */ - if ((remain <= 1U) || (T_us == 0U)) - { - next = p->f_end; - } - else if (remain == 2U) + T_ms = p->t_dec_ms; + if ((remain <= 1U) || + (PlsrRunControlRampDoneInOnePulse(s_decel_from, T_ms) != 0U) || + ((T_ms >= 1U) && (elapsed_us >= (T_ms * 1000UL)))) { next = p->f_end; } else { - uint32_t t_cmd = elapsed_us; - uint32_t per; - if (s_cur_freq >= 1U) - { - per = (1000000UL + (s_cur_freq / 2UL)) / s_cur_freq; - t_cmd = elapsed_us + per; - } - next = PlsrAccelCurveFreqOnRampUs(s_decel_from, p->f_end, - t_cmd, T_us, p->mode); + next = PlsrRunControlFreqOnRampMs(s_decel_from, p->f_end, + elapsed_us / 1000UL, + T_ms, p->mode); } } else @@ -413,31 +685,104 @@ static void PlsrRunControlRefreshProfile(uint8_t do_start) if ((p->dec_n > 0U) && (remain <= p->dec_n)) { PlsrRunControlEnterDecel(next, remain); - elapsed_us = 0U; - T_us = p->t_dec_ms * 1000UL; - next = PlsrAccelCurveFreqOnRampUs(s_decel_from, p->f_end, - elapsed_us, T_us, p->mode); + if ((remain <= 1U) || + (PlsrRunControlRampDoneInOnePulse(s_decel_from, + p->t_dec_ms) != 0U)) + { + next = p->f_end; + } + else + { + next = PlsrRunControlFreqOnRampMs(s_decel_from, p->f_end, + 0U, + p->t_dec_ms, p->mode); + } } } - if (next < 1U) + return PlsrRunControlOutFreq(next); +} + +/** + * 开跑:现行 ARR=第1拍,影寄存器提前装第2拍。 + * STM32 ARPE:UPDATE 里写的 ARR 要到再下一拍才生效;若不预装,起速会打两拍、 + * 止速永远落不到最后一拍。 + */ +static void PlsrRunControlStartWithPreload(void) +{ + uint32_t f1; + uint32_t f2; + uint32_t e1; + uint32_t rem1; + uint32_t rem2; + + rem1 = (uint32_t)s_target; + if (rem1 < 1U) { - next = 1U; + rem1 = 1U; } - if ((do_start != 0U) || (next != s_pending_freq) || (s_pwm_on == 0U)) + s_phase_elapsed_us = 0U; + f1 = PlsrRunControlCalcOutFreq(0U, rem1); + + if (s_target <= 1) { - PlsrRunControlApplyOutFreq(next, do_start); + PlsrRunControlApplyOutFreq(f1, 1U); + return; + } + + e1 = PlsrRunControlPeriodUs(f1); + rem2 = (uint32_t)(s_target - 1); + f2 = PlsrRunControlCalcOutFreq(e1, rem2); + + /* ISR 从已完成拍累加相时间,开跑时尚未完成任何拍 */ + s_phase_elapsed_us = 0U; + + PlsrRunControlApplyOutFreq(f1, 1U); + s_pending_freq = f2; + PlsrPulseDriverRequestFreq(f2); + PlsrPulseDriverApplyPending(); +} + +static void PlsrRunControlRefreshProfile(uint8_t do_start) +{ + uint32_t remain; + uint32_t next; + + if (do_start != 0U) + { + PlsrRunControlStartWithPreload(); + return; + } + + if (s_done < s_target) + { + remain = (uint32_t)(s_target - s_done); + } + else + { + remain = 0U; + } + + next = PlsrRunControlCalcOutFreq(s_phase_elapsed_us, remain); + if ((next != s_pending_freq) || (s_pwm_on == 0U)) + { + PlsrRunControlApplyOutFreq(next, 0U); } } static void PlsrRunControlPlanSeg(uint32_t total, uint32_t f_from, - uint32_t f_tgt, uint32_t f_end) + uint32_t f_tgt, uint32_t f_end, + uint16_t accel_ms, uint16_t decel_ms) { PlsrCfg_t *cfg = PlsrParamGetCfg(); uint32_t f_lo; uint32_t f_hi; + /* 段内只吃传入端点与加减速时间,不感知 wait */ + s_run_accel_ms = accel_ms; + s_run_decel_ms = decel_ms; + PlsrAccelCurvePlan(&s_accel_plan, total, f_from, @@ -446,36 +791,74 @@ static void PlsrRunControlPlanSeg(uint32_t total, uint32_t f_from, cfg->default_speed, cfg->start_speed, cfg->end_speed, - cfg->accel_ms, - cfg->decel_ms, + accel_ms, + decel_ms, cfg->accel_mode); - /* 本段频率范围锁 PSC,升降过程只改 ARR */ + /* 本段频率范围锁 PSC,升降过程只改 ARR。 + * + * 注意:不要为了“起速/止速=0”把下限锁到 1Hz。 + * 1Hz 会迫使 PSC 极大,目标频附近 ARR 挤成一团,加减速在示波器上变成 + * 方波或“斜坡半截再直跳”。下限取 max(峰值/20, 20Hz),末了再停表到 0。 + */ f_lo = s_accel_plan.f_tgt; f_hi = s_accel_plan.f_tgt; - if ((f_from > 0U) && (f_from < f_lo)) - { - f_lo = f_from; - } if (f_from > f_hi) { f_hi = f_from; } - if ((s_accel_plan.f_end > 0U) && (s_accel_plan.f_end < f_lo)) + if (f_from >= 1U) { - f_lo = s_accel_plan.f_end; + if (f_from < f_lo) + { + f_lo = f_from; + } + } + else if (s_accel_plan.f_tgt >= 1U) + { + f_lo = s_accel_plan.f_tgt / 20U; + if (f_lo < 20U) + { + f_lo = 20U; + } + if (f_lo > s_accel_plan.f_tgt) + { + f_lo = s_accel_plan.f_tgt; + } } if (s_accel_plan.f_end > f_hi) { f_hi = s_accel_plan.f_end; } + if (s_accel_plan.f_end >= 1U) + { + if (s_accel_plan.f_end < f_lo) + { + f_lo = s_accel_plan.f_end; + } + } + else if (s_accel_plan.f_tgt >= 1U) + { + uint32_t flo2 = s_accel_plan.f_tgt / 20U; + if (flo2 < 20U) + { + flo2 = 20U; + } + if (flo2 < f_lo) + { + f_lo = flo2; + } + } if (f_lo < 1U) { f_lo = 1U; } + if (f_hi < f_lo) + { + f_hi = f_lo; + } /* - * 后续同向不停表时 PWM 仍在跑:禁止重锁 PSC(只改了映像、硬件 PSC 未变, - * 会导致 ARR 按新 PSC 算错频)。完成方式段间已停表,可安全重锁。 + * 后续同向不停表时 PWM 仍在跑:禁止重锁 PSC。 */ if (s_pwm_on == 0U) { @@ -489,46 +872,26 @@ static void PlsrRunControlPlanSeg(uint32_t total, uint32_t f_from, s_cur_freq = f_from; } - if (f_from == s_accel_plan.f_tgt) + /* + * 保持 AccelCurvePlan 算出的斜率时间,不再 FitRamp 拉长 T。 + * 脉冲数由 EstimatePulses 决定;运行时按相时间取频, + * 一拍周期盖住 T 时自然落到相终点。 + */ + if ((s_accel_plan.dec_n >= total) && + (total > 0U) && + (s_accel_plan.f_end != s_accel_plan.f_tgt)) + { + PlsrRunControlEnterDecel(f_from, total); + } + else if (f_from == s_accel_plan.f_tgt) { PlsrRunControlEnterPhase(PH_CONST, f_from); + s_phase_elapsed_us = 0U; } else { - /* - * 加速时间也按 acc_n 拟合,避免 T 偏短导致前端几拍“又陡又弯”、 - * 后半段早就贴在目标频上。 - */ - if (s_accel_plan.acc_n > 0U) - { - s_accel_plan.t_acc_ms = - PlsrAccelCurveFitRampTimeMs(f_from, - s_accel_plan.f_tgt, - s_accel_plan.acc_n, - s_accel_plan.t_acc_ms, - s_accel_plan.mode); - } - if (s_accel_plan.t_acc_ms < 1U) - { - s_accel_plan.t_acc_ms = 1U; - } PlsrRunControlEnterPhase(PH_APPROACH, f_from); - } - - /* 段末过渡时间按 dec_n 拟合(后续对准下一段 / 完成末段到止速) */ - if ((s_accel_plan.dec_n > 0U) && - (s_accel_plan.f_tgt != s_accel_plan.f_end)) - { - s_accel_plan.t_dec_ms = - PlsrAccelCurveFitRampTimeMs(s_accel_plan.f_tgt, - s_accel_plan.f_end, - s_accel_plan.dec_n, - s_accel_plan.t_dec_ms, - s_accel_plan.mode); - if (s_accel_plan.t_dec_ms < 1U) - { - s_accel_plan.t_dec_ms = 1U; - } + s_phase_elapsed_us = 0U; } } @@ -547,75 +910,6 @@ static void PlsrRunControlFinishAll(void) s_chain_freq = 0U; } -static void PlsrRunControlBeginSeg(uint16_t seg_0); -static void PlsrRunControlGotoNextOrFinish(uint16_t cur_seg); - -static void PlsrRunControlGotoNextOrFinish(uint16_t cur_seg) -{ - int16_t next0 = PlsrPathPlanResolveAfterSeg(cur_seg); - - if (next0 < 0) - { - PlsrRunControlFinishAll(); - } - else - { - PlsrRunControlBeginSeg((uint16_t)next0); - } -} - -static void PlsrRunControlAfterSegDone(void) -{ - PlsrCfg_t *cfg = PlsrParamGetCfg(); - uint16_t wait_ms; - uint8_t keep_pwm; - - /* 先脱离 RUN,避免脉冲 ISR 重入 */ - s_state = RC_IDLE; - - keep_pwm = PlsrRunControlWillFollowKeep(s_cur_seg); - - if (cfg->send_mode == PLSR_SEND_COMPLETE) - { - s_chain_freq = s_cur_freq; - s_chain_valid = 1U; - } - - if (keep_pwm != 0U) - { - /* 后续同向:频率已在下一段目标,不停表直接 BeginSeg */ - s_follow_cont = 1U; - } - else - { - PlsrPulseDriverStop(); - s_follow_cont = 0U; - s_pwm_on = 0U; - if (cfg->send_mode == PLSR_SEND_FOLLOW) - { - s_cur_freq = 0U; - s_chain_valid = 0U; - } - } - - wait_ms = PlsrPathPlanGetWaitMs(s_cur_seg); - if (wait_ms > 0U) - { - /* WillFollowKeep 在有等待时已为 0;此处兜底停表 */ - if (keep_pwm != 0U) - { - PlsrPulseDriverStop(); - s_follow_cont = 0U; - s_pwm_on = 0U; - } - s_wait_deadline = OSTimeGet() + PlsrRunControlMsToTicks(wait_ms); - s_state = RC_WAIT_COND; - return; - } - - PlsrRunControlGotoNextOrFinish(s_cur_seg); -} - static void PlsrRunControlBeginSeg(uint16_t seg_0) { PlsrSeg_t *seg; @@ -623,11 +917,8 @@ static void PlsrRunControlBeginSeg(uint16_t seg_0) int32_t cnt; int32_t move; uint32_t f_tgt; - uint32_t f_end; - uint32_t f_from; uint32_t total; - int16_t next0; - uint8_t is_last; + PlsrSegCallIo_t io; if (seg_0 >= PlsrParamGetSegCount()) { @@ -678,63 +969,20 @@ static void PlsrRunControlBeginSeg(uint16_t seg_0) return; } - next0 = PlsrPathPlanNextSeg(seg_0); - is_last = (next0 < 0) ? 1U : 0U; - - if (s_follow_cont != 0U) - { - /* 同向不停表:上一段末速应已是本段目标 */ - f_from = s_cur_freq; - } - else if ((cfg->send_mode == PLSR_SEND_COMPLETE) && (s_chain_valid != 0U)) - { - f_from = s_chain_freq; - } - else - { - /* 起速可为 0:规划/斜率按 0;开跑第一拍用 FirstPulseFreq(≥1Hz) */ - f_from = PlsrRunControlClampSpeed(cfg->start_speed); - } - - if (cfg->send_mode == PLSR_SEND_FOLLOW) + /* 策略层解析起/止速与加减速;段内只跑 PlanSeg */ + if (PlsrRunControlResolveSegCallIo(seg_0, f_tgt, &io) == 0U) { - /* - * 后续:段末 f_end 对准下一段目标(末段对准终止速度)。 - * AccelCurvePlan 据此预留段末过渡脉冲;中间段 f_from≈f_tgt → 仅匀速+过渡。 - */ - if (is_last == 0U) - { - PlsrSeg_t *nseg = PlsrParamGetSeg((uint16_t)next0); - if (PlsrRunControlGetSegTargetFreq(nseg->freq_hz, - cfg->default_speed, - &f_end) == 0U) - { - PlsrCommandSetFault(PLSR_ERR_SEG_FREQ); - s_busy = 1U; - s_target = 0; - s_done = 0; - PlsrRunControlAfterSegDone(); - return; - } - } - else - { - /* 止速可为 0:规划减到 0;运行输出下限 1Hz */ - f_end = PlsrRunControlClampSpeed(cfg->end_speed); - } - } - else - { - /* - * 完成:非末段 f_end=本段目标 → 无减速相;脉冲不够时沿加速度斜率 - * 一直加到脉冲用尽,下一段从链频继续加。仅末段收到终止速度并减速。 - */ - f_end = (is_last != 0U) ? - PlsrRunControlClampSpeed(cfg->end_speed) : f_tgt; + PlsrCommandSetFault(PLSR_ERR_SEG_FREQ); + s_busy = 1U; + s_target = 0; + s_done = 0; + PlsrRunControlAfterSegDone(); + return; } total = (uint32_t)s_target; - PlsrRunControlPlanSeg(total, f_from, f_tgt, f_end); + PlsrRunControlPlanSeg(total, io.f_from, f_tgt, io.f_end, + io.accel_ms, io.decel_ms); s_done = 0; s_busy = 1U; @@ -747,11 +995,17 @@ static void PlsrRunControlBeginSeg(uint16_t seg_0) if (s_follow_cont != 0U) { + uint32_t f1; + PlsrPulseDriverClearOnePulseStop(); - PlsrRunControlRefreshProfile(0U); + /* PWM 仍在跑:只预装下一拍;再下一拍由 ISR look-ahead 补 */ + s_phase_elapsed_us = 0U; + f1 = PlsrRunControlCalcOutFreq(0U, (uint32_t)s_target); + PlsrRunControlApplyOutFreq(f1, 0U); PlsrPulseDriverApplyPending(); s_state = RC_RUN; s_follow_cont = 0U; + PlsrRunControlArmActExtOnPulseStart(); } else { @@ -776,11 +1030,16 @@ void PlsrRunControlInit(void) s_follow_cont = 0U; s_chain_freq = 0U; s_chain_valid = 0U; + s_run_accel_ms = 0U; + s_run_decel_ms = 0U; s_phase = PH_CONST; - s_phase_t0 = OSTimeGet(); s_phase_elapsed_us = 0U; s_approach_from = 0U; s_decel_from = 0U; + s_act_armed = 0U; + s_wait_is_signal = 0U; + s_wait_deadline_ms = 0U; + s_act_deadline_ms = 0U; } uint8_t PlsrRunControlStart(uint16_t start_seg_1based) @@ -825,6 +1084,7 @@ void PlsrRunControlStop(void) s_follow_cont = 0U; s_chain_valid = 0U; s_chain_freq = 0U; + s_act_armed = 0U; } uint8_t PlsrRunControlChangeFreq(uint32_t new_tgt_hz) @@ -847,7 +1107,8 @@ uint8_t PlsrRunControlChangeFreq(uint32_t new_tgt_hz) remain = (uint32_t)(s_target - s_done); f_end = s_accel_plan.f_end; - PlsrRunControlPlanSeg(remain, s_cur_freq, new_tgt_hz, f_end); + PlsrRunControlPlanSeg(remain, s_cur_freq, new_tgt_hz, f_end, + s_run_accel_ms, s_run_decel_ms); s_target = (int32_t)remain; s_done = 0; PlsrRunControlRefreshProfile(0U); @@ -856,117 +1117,85 @@ uint8_t PlsrRunControlChangeFreq(uint32_t new_tgt_hz) void PlsrRunControlTickMs(void) { + PlsrSeg_t *seg; + if (s_state == RC_DIR_WAIT) { if (PlsrRunControlOsTimeReached(s_dir_deadline) != 0U) { s_state = RC_RUN; - /* - * 阶跃到起速后进入加速相;只有起速已等于目标才直接匀速。 - * 禁止因 t_acc 曾算成 0 而一开跑就输出目标频。 - */ - if (s_approach_from != s_accel_plan.f_tgt) - { - if (s_accel_plan.t_acc_ms < 1U) - { - s_accel_plan.t_acc_ms = 1U; - } - PlsrRunControlEnterPhase(PH_APPROACH, s_approach_from); - } - else - { - PlsrRunControlEnterPhase(PH_CONST, s_approach_from); - } - /* - * 第一拍:起速>0 用起速;起速=0 用 FirstPulseFreq(≥1Hz 自洽点)。 - * 禁止整拍按 1Hz(周期约 1s)开跑,否则会吃光加速相。 - */ - { - uint32_t T_us = s_accel_plan.t_acc_ms * 1000UL; - uint32_t f_start; - uint32_t per; - uint32_t f2; - - if (s_phase == PH_CONST) - { - f_start = PlsrRunControlOutFreq(s_approach_from); - if ((s_approach_from == 0U) && - (s_accel_plan.f_tgt >= 1U)) - { - f_start = s_accel_plan.f_tgt; - } - PlsrRunControlApplyOutFreq(f_start, 1U); - } - else - { - f_start = PlsrAccelCurveFirstPulseFreq( - s_approach_from, - s_accel_plan.f_tgt, - T_us, - s_accel_plan.mode); - f_start = PlsrRunControlOutFreq(f_start); - PlsrRunControlApplyOutFreq(f_start, 1U); - per = (1000000UL + (f_start / 2UL)) / f_start; - f2 = PlsrAccelCurveFreqOnRampUs( - s_approach_from, - s_accel_plan.f_tgt, - per, - T_us, - s_accel_plan.mode); - f2 = PlsrRunControlOutFreq(f2); - PlsrRunControlApplyOutFreq(f2, 0U); - PlsrPulseDriverApplyPending(); - } - } + PlsrRunControlStartWithPreload(); + PlsrRunControlArmActExtOnPulseStart(); } return; } if (s_state == RC_RUN) { - if ((s_phase == PH_APPROACH) || (s_phase == PH_DECEL)) + /* 加减速频率改由 PlsrRunControlOn1ms(TIM3) 更新;此处只处理 ACT/EXT */ + seg = PlsrParamGetSeg(s_cur_seg); + + if ((s_act_armed != 0U) && + (PlsrSignalIoMsReached(s_act_deadline_ms) != 0U)) { - /* 尚未出脉冲(起速为 0)时用节拍推进相时间;有脉冲后由 ISR 按周期累加 */ - if (s_pwm_on == 0U) - { - s_phase_elapsed_us += (1000000UL / (uint32_t)OS_TICKS_PER_SEC); - PlsrRunControlRefreshProfile(0U); - } + PlsrRunControlCutSegToNext(); + return; } - else if ((s_accel_plan.dec_n > 0U) && - (s_done < s_target) && - ((uint32_t)(s_target - s_done) <= s_accel_plan.dec_n)) + + if ((seg->wait_type == PLSR_WAIT_EXT) || + (seg->wait_type == PLSR_WAIT_EXT_OR_DONE)) { - PlsrRunControlRefreshProfile(0U); + if (PlsrSignalIoTakeExtFalling() != 0U) + { + PlsrRunControlCutSegToNext(); + return; + } } return; } if (s_state == RC_WAIT_COND) { - if (PlsrRunControlOsTimeReached(s_wait_deadline) != 0U) + if (s_wait_is_signal != 0U) + { + if (PlsrSignalIoTakeWaitFalling() != 0U) + { + PlsrRunControlGotoNextOrFinish(s_cur_seg); + } + } + else if (PlsrSignalIoMsReached(s_wait_deadline_ms) != 0U) { PlsrRunControlGotoNextOrFinish(s_cur_seg); } } } +/** + * TIM3 1ms:仅推进 WAIT/ACT 用的毫秒钟(在 signal_io 里 ++s_ms)。 + * 升降速改频改回每脉冲,避免低频下 1ms 改频把斜坡拉歪、减速只剩 1 拍。 + */ +void PlsrRunControlOn1ms(void) +{ + /* 有意留空:段波形不在 1ms 里改 */ +} + void PlsrRunControlOnPulseIsr(void) { - uint32_t remain; - uint32_t f_prev; + uint32_t completed_freq; + uint32_t running_freq; + uint32_t look_elapsed; + uint32_t rem_prog; + uint32_t next; + uint32_t saved_elapsed; + uint8_t entered_decel; if (s_state != RC_RUN) { return; } - /* - * UPDATE:上一拍结束;预装载已装入,新拍刚开始。 - * f_prev = 刚结束那一拍;随后 s_cur_freq 切到本拍(上一拍写入的 pending)。 - */ - f_prev = s_cur_freq; - + /* 本拍刚结束:现行频率仍是完成拍的频率(pending 是影里给下一拍的) */ + completed_freq = s_cur_freq; s_done++; if (s_forward != 0U) { @@ -983,36 +1212,71 @@ void PlsrRunControlOnPulseIsr(void) return; } - s_cur_freq = s_pending_freq; + /* + * 本 UPDATE 已把影寄存器装进现行 ARR:正在跑的是原 pending。 + * ARPE 下此刻再写影寄存器,要到「再下一拍」才生效 → 必须 look-ahead。 + */ + running_freq = s_pending_freq; + s_cur_freq = running_freq; + + if (((s_phase == PH_APPROACH) || (s_phase == PH_DECEL)) && + (completed_freq >= 1U)) + { + uint32_t period_us = PlsrRunControlPeriodUs(completed_freq); + if (s_phase_elapsed_us < (0xFFFFFFFFUL - period_us)) + { + s_phase_elapsed_us += period_us; + } + else + { + s_phase_elapsed_us = 0xFFFFFFF0UL; + } + } - /* 最后一拍:完成方式 / 后续末段或断链时 OPM 停表,避免多一个上升沿。 - * 后续同向不停表衔接时禁止 OPM,否则会在段界把定时器停掉。 */ - if (s_done == (s_target - 1)) + if (s_done >= (s_target - 1)) { + /* 最后一拍已在跑(开跑预装或上次 look-ahead 已写好),不再改频 */ if (PlsrRunControlWillFollowKeep(s_cur_seg) == 0U) { PlsrPulseDriverArmOnePulseStop(); } + return; } + /* 预装「再下一拍」= 第 (s_done+2) 拍 */ + look_elapsed = s_phase_elapsed_us; if ((s_phase == PH_APPROACH) || (s_phase == PH_DECEL)) { - if (f_prev >= 1U) + uint32_t add = PlsrRunControlPeriodUs(running_freq); + if (look_elapsed < (0xFFFFFFFFUL - add)) { - s_phase_elapsed_us += (1000000UL + (f_prev / 2UL)) / f_prev; + look_elapsed += add; } - PlsrRunControlRefreshProfile(0U); - PlsrPulseDriverApplyPending(); - } - else if (s_phase == PH_CONST) - { - remain = (uint32_t)(s_target - s_done); - if ((s_accel_plan.dec_n > 0U) && (remain <= s_accel_plan.dec_n)) + else { - PlsrRunControlRefreshProfile(0U); - PlsrPulseDriverApplyPending(); + look_elapsed = 0xFFFFFFF0UL; } } + rem_prog = (uint32_t)(s_target - s_done - 1); + + saved_elapsed = s_phase_elapsed_us; + entered_decel = (s_phase == PH_DECEL) ? 1U : 0U; + next = PlsrRunControlCalcOutFreq(look_elapsed, rem_prog); + if ((entered_decel == 0U) && (s_phase == PH_DECEL)) + { + /* 本次 look-ahead 刚切入减速:相时间从 0 计 */ + s_phase_elapsed_us = 0U; + } + else + { + s_phase_elapsed_us = saved_elapsed; + } + + if ((next != s_pending_freq) || (s_pwm_on == 0U)) + { + PlsrRunControlApplyOutFreq(next, 0U); + } + PlsrPulseDriverApplyPending(); } uint8_t PlsrRunControlIsBusy(void) diff --git a/plsr/run_control/plsr_run_control.h b/plsr/run_control/plsr_run_control.h index 649fe45..d707b8e 100644 --- a/plsr/run_control/plsr_run_control.h +++ b/plsr/run_control/plsr_run_control.h @@ -12,6 +12,7 @@ uint8_t PlsrRunControlStart(uint16_t start_seg_1based); void PlsrRunControlStop(void); uint8_t PlsrRunControlChangeFreq(uint32_t new_tgt_hz); void PlsrRunControlTickMs(void); +void PlsrRunControlOn1ms(void); /* TIM3 节拍;升降速改在脉冲 ISR */ void PlsrRunControlOnPulseIsr(void); uint8_t PlsrRunControlIsBusy(void); int32_t PlsrRunControlGetAccPulse(void); diff --git a/plsr/signal_io/plsr_signal_io.c b/plsr/signal_io/plsr_signal_io.c new file mode 100644 index 0000000..e89edf3 --- /dev/null +++ b/plsr/signal_io/plsr_signal_io.c @@ -0,0 +1,161 @@ +/** + * @file plsr_signal_io.c + * @brief X4/X5 EXTI 下降沿 + TIM3 1ms + */ +#include "plsr_signal_io.h" +#include "plsr_param.h" +#include "plsr_run_control.h" +#include "main.h" + +/* X4=PB5 → EXTI5;X5=PG12 → EXTI12 */ +#define PLSR_X4_PORT GPIOB +#define PLSR_X4_PIN GPIO_PIN_5 +#define PLSR_X5_PORT GPIOG +#define PLSR_X5_PIN GPIO_PIN_12 + +/* + * APB1=42MHz → TIM3CLK=84MHz;PSC=83 ARR=999 → 1kHz 更新 + */ +#define PLSR_TIM3_PSC 83U +#define PLSR_TIM3_ARR 999U + +static volatile uint32_t s_ms; +static volatile uint8_t s_fall_x4; +static volatile uint8_t s_fall_x5; + +static TIM_HandleTypeDef s_htim3; + +static void PlsrSignalIoGpioExtiInit(void) +{ + GPIO_InitTypeDef gpio = {0}; + + __HAL_RCC_GPIOB_CLK_ENABLE(); + __HAL_RCC_GPIOG_CLK_ENABLE(); + __HAL_RCC_SYSCFG_CLK_ENABLE(); + + gpio.Mode = GPIO_MODE_IT_FALLING; + gpio.Pull = GPIO_PULLUP; + gpio.Speed = GPIO_SPEED_FREQ_LOW; + + gpio.Pin = PLSR_X4_PIN; + HAL_GPIO_Init(PLSR_X4_PORT, &gpio); + + gpio.Pin = PLSR_X5_PIN; + HAL_GPIO_Init(PLSR_X5_PORT, &gpio); + + HAL_NVIC_SetPriority(EXTI9_5_IRQn, 8, 0); + HAL_NVIC_EnableIRQ(EXTI9_5_IRQn); + HAL_NVIC_SetPriority(EXTI15_10_IRQn, 8, 0); + HAL_NVIC_EnableIRQ(EXTI15_10_IRQn); +} + +static void PlsrSignalIoTim3Init(void) +{ + __HAL_RCC_TIM3_CLK_ENABLE(); + + s_htim3.Instance = TIM3; + s_htim3.Init.Prescaler = PLSR_TIM3_PSC; + s_htim3.Init.CounterMode = TIM_COUNTERMODE_UP; + s_htim3.Init.Period = PLSR_TIM3_ARR; + s_htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; + s_htim3.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; + (void)HAL_TIM_Base_Init(&s_htim3); + + HAL_NVIC_SetPriority(TIM3_IRQn, 9, 0); + HAL_NVIC_EnableIRQ(TIM3_IRQn); + (void)HAL_TIM_Base_Start_IT(&s_htim3); +} + +void PlsrSignalIoInit(void) +{ + s_ms = 0U; + s_fall_x4 = 0U; + s_fall_x5 = 0U; + PlsrSignalIoGpioExtiInit(); + PlsrSignalIoTim3Init(); +} + +uint32_t PlsrSignalIoGetMs(void) +{ + return s_ms; +} + +uint32_t PlsrSignalIoDeadlineFromNow(uint32_t ms) +{ + if (ms == 0U) + { + return s_ms; + } + return s_ms + ms; +} + +uint8_t PlsrSignalIoMsReached(uint32_t deadline_ms) +{ + return ((int32_t)(s_ms - deadline_ms) >= 0) ? 1U : 0U; +} + +void PlsrSignalIoClearEdges(void) +{ + s_fall_x4 = 0U; + s_fall_x5 = 0U; +} + +static uint8_t PlsrSignalIoTakePinFalling(uint16_t sel_01) +{ + if (sel_01 != 0U) + { + if (s_fall_x5 != 0U) + { + s_fall_x5 = 0U; + return 1U; + } + return 0U; + } + if (s_fall_x4 != 0U) + { + s_fall_x4 = 0U; + return 1U; + } + return 0U; +} + +uint8_t PlsrSignalIoTakeWaitFalling(void) +{ + PlsrCfg_t *cfg = PlsrParamGetCfg(); + return PlsrSignalIoTakePinFalling(cfg->wait_x_sel); +} + +uint8_t PlsrSignalIoTakeExtFalling(void) +{ + PlsrCfg_t *cfg = PlsrParamGetCfg(); + return PlsrSignalIoTakePinFalling(cfg->ext_x_sel); +} + +void PlsrSignalIoOnTim3Irq(void) +{ + if ((TIM3->SR & TIM_SR_UIF) != 0U) + { + TIM3->SR = (uint32_t)~TIM_SR_UIF; + s_ms++; + /* 升降速:1ms 更新一次输出频率 */ + PlsrRunControlOn1ms(); + } +} + +void PlsrSignalIoOnExti9_5(void) +{ + if (__HAL_GPIO_EXTI_GET_IT(PLSR_X4_PIN) != 0U) + { + __HAL_GPIO_EXTI_CLEAR_IT(PLSR_X4_PIN); + s_fall_x4 = 1U; + } +} + +void PlsrSignalIoOnExti15_10(void) +{ + if (__HAL_GPIO_EXTI_GET_IT(PLSR_X5_PIN) != 0U) + { + __HAL_GPIO_EXTI_CLEAR_IT(PLSR_X5_PIN); + s_fall_x5 = 1U; + } +} diff --git a/plsr/signal_io/plsr_signal_io.h b/plsr/signal_io/plsr_signal_io.h new file mode 100644 index 0000000..dfacb5a --- /dev/null +++ b/plsr/signal_io/plsr_signal_io.h @@ -0,0 +1,45 @@ +/** + * @file plsr_signal_io.h + * @brief 等待/EXT 输入(X4=PB5、X5=PG12 EXTI)+ TIM3 1ms 时基(WAIT/ACT) + * + * 公共参数:wait_x_sel / ext_x_sel:0=X4,1=X5。 + * 引脚上拉默认高,外部拉低 → 下降沿触发。 + * TIM3 仅作毫秒计数,不占用 TIM10/11/13/14。 + */ +#ifndef PLSR_SIGNAL_IO_H +#define PLSR_SIGNAL_IO_H + +#include + +void PlsrSignalIoInit(void); + +/** TIM3 毫秒计数(自由运行,约 1ms/格) */ +uint32_t PlsrSignalIoGetMs(void); + +/** deadline = GetMs()+ms;ms=0 则立即到期 */ +uint32_t PlsrSignalIoDeadlineFromNow(uint32_t ms); + +/** 1=已到或过期(含无符号环绕) */ +uint8_t PlsrSignalIoMsReached(uint32_t deadline_ms); + +/** 清 X4/X5 下降沿锁存 */ +void PlsrSignalIoClearEdges(void); + +/** + * 取并清除 WAIT 所选口的下降沿(按 cfg->wait_x_sel) + * @return 1=本次取到沿 + */ +uint8_t PlsrSignalIoTakeWaitFalling(void); + +/** + * 取并清除 EXT 所选口的下降沿(按 cfg->ext_x_sel) + * @return 1=本次取到沿 + */ +uint8_t PlsrSignalIoTakeExtFalling(void); + +/* 由 stm32f4xx_it.c 转发 */ +void PlsrSignalIoOnTim3Irq(void); +void PlsrSignalIoOnExti9_5(void); +void PlsrSignalIoOnExti15_10(void); + +#endif