diff --git a/.mxproject b/.mxproject index dca4e7c..ce665e6 100644 --- a/.mxproject +++ b/.mxproject @@ -1,29 +1,31 @@ +[PreviousLibFiles] +LibFiles=Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_tim.h;Drivers\STM32F1xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_def.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc_ex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_bus.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_rcc.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_system.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_utils.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_gpio.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_gpio_ex.h;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio_ex.c;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_gpio.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_dma_ex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_dma.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_dma.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_cortex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_cortex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_pwr.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_exti.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_exti.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_usart.h;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_tim.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_tim_ex.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc_ex.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_dma.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_cortex.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_pwr.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_flash.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_flash_ex.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_exti.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_uart.c;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_tim.h;Drivers\STM32F1xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_def.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc_ex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_bus.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_rcc.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_system.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_utils.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_gpio.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_gpio_ex.h;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio_ex.c;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_gpio.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_dma_ex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_dma.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_dma.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_cortex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_cortex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_pwr.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_exti.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_exti.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_usart.h;Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f103xb.h;Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f1xx.h;Drivers\CMSIS\Device\ST\STM32F1xx\Include\system_stm32f1xx.h;Drivers\CMSIS\Device\ST\STM32F1xx\Include\system_stm32f1xx.h;Drivers\CMSIS\Device\ST\STM32F1xx\Source\Templates\system_stm32f1xx.c;Drivers\CMSIS\Include\cmsis_armcc.h;Drivers\CMSIS\Include\cmsis_armclang.h;Drivers\CMSIS\Include\cmsis_compiler.h;Drivers\CMSIS\Include\cmsis_gcc.h;Drivers\CMSIS\Include\cmsis_iccarm.h;Drivers\CMSIS\Include\cmsis_version.h;Drivers\CMSIS\Include\core_armv8mbl.h;Drivers\CMSIS\Include\core_armv8mml.h;Drivers\CMSIS\Include\core_cm0.h;Drivers\CMSIS\Include\core_cm0plus.h;Drivers\CMSIS\Include\core_cm1.h;Drivers\CMSIS\Include\core_cm23.h;Drivers\CMSIS\Include\core_cm3.h;Drivers\CMSIS\Include\core_cm33.h;Drivers\CMSIS\Include\core_cm4.h;Drivers\CMSIS\Include\core_cm7.h;Drivers\CMSIS\Include\core_sc000.h;Drivers\CMSIS\Include\core_sc300.h;Drivers\CMSIS\Include\mpu_armv7.h;Drivers\CMSIS\Include\mpu_armv8.h;Drivers\CMSIS\Include\tz_context.h; + +[PreviousUsedKeilFiles] +SourceFiles=..\Core\Src\main.c;..\Core\Src\gpio.c;..\Core\Src\tim.c;..\Core\Src\usart.c;..\Core\Src\stm32f1xx_it.c;..\Core\Src\stm32f1xx_hal_msp.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio_ex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_tim.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_tim_ex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc_ex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_dma.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_cortex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_pwr.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_flash.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_flash_ex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_exti.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_uart.c;..\Drivers\CMSIS\Device\ST\STM32F1xx\Source\Templates\system_stm32f1xx.c;..\Core\Src\system_stm32f1xx.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio_ex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_tim.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_tim_ex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc_ex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_dma.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_cortex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_pwr.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_flash.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_flash_ex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_exti.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_uart.c;..\Drivers\CMSIS\Device\ST\STM32F1xx\Source\Templates\system_stm32f1xx.c;..\Core\Src\system_stm32f1xx.c;;; +HeaderPath=..\Drivers\STM32F1xx_HAL_Driver\Inc;..\Drivers\STM32F1xx_HAL_Driver\Inc\Legacy;..\Drivers\CMSIS\Device\ST\STM32F1xx\Include;..\Drivers\CMSIS\Include;..\Core\Inc; +CDefines=USE_HAL_DRIVER;STM32F103xB;USE_HAL_DRIVER;USE_HAL_DRIVER; + [PreviousGenFiles] AdvancedFolderStructure=true -HeaderFileListSize=5 +HeaderFileListSize=6 HeaderFiles#0=..\Core\Inc\gpio.h HeaderFiles#1=..\Core\Inc\tim.h -HeaderFiles#2=..\Core\Inc\stm32f1xx_it.h -HeaderFiles#3=..\Core\Inc\stm32f1xx_hal_conf.h -HeaderFiles#4=..\Core\Inc\main.h +HeaderFiles#2=..\Core\Inc\usart.h +HeaderFiles#3=..\Core\Inc\stm32f1xx_it.h +HeaderFiles#4=..\Core\Inc\stm32f1xx_hal_conf.h +HeaderFiles#5=..\Core\Inc\main.h HeaderFolderListSize=1 HeaderPath#0=..\Core\Inc HeaderFiles=; -SourceFileListSize=5 +SourceFileListSize=6 SourceFiles#0=..\Core\Src\gpio.c SourceFiles#1=..\Core\Src\tim.c -SourceFiles#2=..\Core\Src\stm32f1xx_it.c -SourceFiles#3=..\Core\Src\stm32f1xx_hal_msp.c -SourceFiles#4=..\Core\Src\main.c +SourceFiles#2=..\Core\Src\usart.c +SourceFiles#3=..\Core\Src\stm32f1xx_it.c +SourceFiles#4=..\Core\Src\stm32f1xx_hal_msp.c +SourceFiles#5=..\Core\Src\main.c SourceFolderListSize=1 SourcePath#0=..\Core\Src SourceFiles=; -[PreviousLibFiles] -LibFiles=Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_tim.h;Drivers\STM32F1xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_def.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc_ex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_bus.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_rcc.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_system.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_utils.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_gpio.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_gpio_ex.h;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio_ex.c;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_gpio.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_dma_ex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_dma.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_dma.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_cortex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_cortex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_pwr.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_exti.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_exti.h;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_tim.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_tim_ex.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc_ex.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_dma.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_cortex.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_pwr.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_flash.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_flash_ex.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_exti.c;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_tim.h;Drivers\STM32F1xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_def.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc_ex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_bus.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_rcc.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_system.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_utils.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_gpio.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_gpio_ex.h;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio_ex.c;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_gpio.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_dma_ex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_dma.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_dma.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_cortex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_cortex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_pwr.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_exti.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_exti.h;Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f103xb.h;Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f1xx.h;Drivers\CMSIS\Device\ST\STM32F1xx\Include\system_stm32f1xx.h;Drivers\CMSIS\Device\ST\STM32F1xx\Include\system_stm32f1xx.h;Drivers\CMSIS\Device\ST\STM32F1xx\Source\Templates\system_stm32f1xx.c;Drivers\CMSIS\Include\cmsis_armcc.h;Drivers\CMSIS\Include\cmsis_armclang.h;Drivers\CMSIS\Include\cmsis_compiler.h;Drivers\CMSIS\Include\cmsis_gcc.h;Drivers\CMSIS\Include\cmsis_iccarm.h;Drivers\CMSIS\Include\cmsis_version.h;Drivers\CMSIS\Include\core_armv8mbl.h;Drivers\CMSIS\Include\core_armv8mml.h;Drivers\CMSIS\Include\core_cm0.h;Drivers\CMSIS\Include\core_cm0plus.h;Drivers\CMSIS\Include\core_cm1.h;Drivers\CMSIS\Include\core_cm23.h;Drivers\CMSIS\Include\core_cm3.h;Drivers\CMSIS\Include\core_cm33.h;Drivers\CMSIS\Include\core_cm4.h;Drivers\CMSIS\Include\core_cm7.h;Drivers\CMSIS\Include\core_sc000.h;Drivers\CMSIS\Include\core_sc300.h;Drivers\CMSIS\Include\mpu_armv7.h;Drivers\CMSIS\Include\mpu_armv8.h;Drivers\CMSIS\Include\tz_context.h; - -[PreviousUsedKeilFiles] -SourceFiles=..\Core\Src\main.c;..\Core\Src\gpio.c;..\Core\Src\tim.c;..\Core\Src\stm32f1xx_it.c;..\Core\Src\stm32f1xx_hal_msp.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio_ex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_tim.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_tim_ex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc_ex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_dma.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_cortex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_pwr.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_flash.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_flash_ex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_exti.c;..\Drivers\CMSIS\Device\ST\STM32F1xx\Source\Templates\system_stm32f1xx.c;..\Core\Src\system_stm32f1xx.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio_ex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_tim.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_tim_ex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc_ex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_dma.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_cortex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_pwr.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_flash.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_flash_ex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_exti.c;..\Drivers\CMSIS\Device\ST\STM32F1xx\Source\Templates\system_stm32f1xx.c;..\Core\Src\system_stm32f1xx.c;;; -HeaderPath=..\Drivers\STM32F1xx_HAL_Driver\Inc;..\Drivers\STM32F1xx_HAL_Driver\Inc\Legacy;..\Drivers\CMSIS\Device\ST\STM32F1xx\Include;..\Drivers\CMSIS\Include;..\Core\Inc; -CDefines=USE_HAL_DRIVER;STM32F103xB;USE_HAL_DRIVER;USE_HAL_DRIVER; - diff --git a/CANEmu.ioc b/CANEmu.ioc index 9159708..6b20c24 100644 --- a/CANEmu.ioc +++ b/CANEmu.ioc @@ -11,19 +11,24 @@ Mcu.IP0=NVIC Mcu.IP1=RCC Mcu.IP2=SYS Mcu.IP3=TIM2 -Mcu.IPNb=4 +Mcu.IP4=TIM3 +Mcu.IP5=USART1 +Mcu.IPNb=6 Mcu.Name=STM32F103C(8-B)Tx Mcu.Package=LQFP48 Mcu.Pin0=PC14-OSC32_IN Mcu.Pin1=PC15-OSC32_OUT +Mcu.Pin10=VP_TIM2_VS_ClockSourceINT +Mcu.Pin11=VP_TIM3_VS_ClockSourceINT Mcu.Pin2=PD0-OSC_IN Mcu.Pin3=PD1-OSC_OUT Mcu.Pin4=PB0 -Mcu.Pin5=PA13 -Mcu.Pin6=PA14 -Mcu.Pin7=VP_SYS_VS_Systick -Mcu.Pin8=VP_TIM2_VS_ClockSourceINT -Mcu.PinsNb=9 +Mcu.Pin5=PA9 +Mcu.Pin6=PA10 +Mcu.Pin7=PA13 +Mcu.Pin8=PA14 +Mcu.Pin9=VP_SYS_VS_Systick +Mcu.PinsNb=12 Mcu.ThirdPartyNb=0 Mcu.UserConstants= Mcu.UserName=STM32F103C8Tx @@ -40,10 +45,14 @@ NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4 NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:true\:false\:true\:false NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +PA10.Mode=Asynchronous +PA10.Signal=USART1_RX PA13.Mode=Serial_Wire PA13.Signal=SYS_JTMS-SWDIO PA14.Mode=Serial_Wire PA14.Signal=SYS_JTCK-SWCLK +PA9.Mode=Asynchronous +PA9.Signal=USART1_TX PB0.Locked=true PB0.Signal=GPIO_Output PC14-OSC32_IN.Mode=LSE-External-Oscillator @@ -107,8 +116,14 @@ RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK RCC.TimSysFreq_Value=72000000 RCC.USBFreq_Value=72000000 RCC.VCOOutput2Freq_Value=8000000 +TIM3.IPParameters=Period +TIM3.Period=7200 +USART1.IPParameters=VirtualMode +USART1.VirtualMode=VM_ASYNC VP_SYS_VS_Systick.Mode=SysTick VP_SYS_VS_Systick.Signal=SYS_VS_Systick VP_TIM2_VS_ClockSourceINT.Mode=Internal VP_TIM2_VS_ClockSourceINT.Signal=TIM2_VS_ClockSourceINT +VP_TIM3_VS_ClockSourceINT.Mode=Internal +VP_TIM3_VS_ClockSourceINT.Signal=TIM3_VS_ClockSourceINT board=custom diff --git a/Core/CANEmu/canEmu.h b/Core/CANEmu/canEmu.h index cb03280..aa3c1ce 100644 --- a/Core/CANEmu/canEmu.h +++ b/Core/CANEmu/canEmu.h @@ -28,6 +28,7 @@ typedef struct CAN_TxHeaderTypeDef header; uint8_t data[8]; uint32_t bitrate_bps; + uint32_t period_ms; CAN_ErrorFlags_t errors; }CANEmu_HandleTypeDef; diff --git a/Core/Inc/stm32f1xx_hal_conf.h b/Core/Inc/stm32f1xx_hal_conf.h index d6ef350..192f89f 100644 --- a/Core/Inc/stm32f1xx_hal_conf.h +++ b/Core/Inc/stm32f1xx_hal_conf.h @@ -65,7 +65,7 @@ /*#define HAL_SPI_MODULE_ENABLED */ /*#define HAL_SRAM_MODULE_ENABLED */ #define HAL_TIM_MODULE_ENABLED -/*#define HAL_UART_MODULE_ENABLED */ +#define HAL_UART_MODULE_ENABLED /*#define HAL_USART_MODULE_ENABLED */ /*#define HAL_WWDG_MODULE_ENABLED */ diff --git a/Core/Inc/tim.h b/Core/Inc/tim.h index f52bef6..29e0392 100644 --- a/Core/Inc/tim.h +++ b/Core/Inc/tim.h @@ -34,11 +34,14 @@ extern "C" { extern TIM_HandleTypeDef htim2; +extern TIM_HandleTypeDef htim3; + /* USER CODE BEGIN Private defines */ /* USER CODE END Private defines */ void MX_TIM2_Init(void); +void MX_TIM3_Init(void); /* USER CODE BEGIN Prototypes */ diff --git a/Core/Inc/usart.h b/Core/Inc/usart.h new file mode 100644 index 0000000..10c6193 --- /dev/null +++ b/Core/Inc/usart.h @@ -0,0 +1,52 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file usart.h + * @brief This file contains all the function prototypes for + * the usart.c file + ****************************************************************************** + * @attention + * + * Copyright (c) 2025 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __USART_H__ +#define __USART_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" + +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +extern UART_HandleTypeDef huart1; + +/* USER CODE BEGIN Private defines */ + +/* USER CODE END Private defines */ + +void MX_USART1_UART_Init(void); + +/* USER CODE BEGIN Prototypes */ + +/* USER CODE END Prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif /* __USART_H__ */ + diff --git a/Core/Modbus/crc_algs.c b/Core/Modbus/crc_algs.c new file mode 100644 index 0000000..fcfa779 --- /dev/null +++ b/Core/Modbus/crc_algs.c @@ -0,0 +1,116 @@ +#include "crc_algs.h" + + +uint32_t CRC_calc; +uint32_t CRC_ref; + +//uint16_t CRC_calc; +//uint16_t CRC_ref; + + +// left this global for debug +uint8_t uchCRCHi = 0xFF; +uint8_t uchCRCLo = 0xFF; +unsigned uIndex; + + +uint32_t crc32(uint8_t *data, uint32_t data_size) +{ + static const unsigned int crc32_table[] = +{ + 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3, + 0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988, 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91, + 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE, 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7, + 0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, 0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5, + 0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172, 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B, + 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940, 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59, + 0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116, 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F, + 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924, 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D, + 0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A, 0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433, + 0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818, 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01, + 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457, + 0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C, 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65, + 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2, 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB, + 0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0, 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9, + 0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086, 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F, + 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, 0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD, + 0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A, 0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683, + 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8, 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1, + 0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE, 0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7, + 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC, 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5, + 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B, + 0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60, 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79, + 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236, 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F, + 0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, 0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D, + 0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A, 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713, + 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38, 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21, + 0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E, 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777, + 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C, 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45, + 0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2, 0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB, + 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0, 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9, + 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, 0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF, + 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94, 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D +}; +unsigned int crc = 0xFFFFFFFF; + while (data_size--) + { + crc = (crc >> 8) ^ crc32_table[(crc ^ *data) & 255]; + data++; + } + return crc^0xFFFFFFFF; +} + + +uint16_t crc16(uint8_t *data, uint32_t data_size) +{ + /*Table of CRC values for high order byte*/ + static unsigned char auchCRCHi[]= + { + 0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40, + 0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41, + 0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41, + 0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40, + 0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41, + 0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40, + 0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40, + 0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41, + 0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41, + 0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40, + 0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40, + 0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41, + 0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40, + 0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41, + 0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41, + 0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40, + }; + /*Table of CRC values for low order byte*/ + static char auchCRCLo[] = + { + 0x00,0xC0,0xC1,0x01,0xC3,0x03,0x02,0xC2,0xC6,0x06,0x07,0xC7,0x05,0xC5,0xC4,0x04, + 0xCC,0x0C,0x0D,0xCD,0x0F,0xCF,0xCE,0x0E,0x0A,0xCA,0xCB,0x0B,0xC9,0x09,0x08,0xC8, + 0xD8,0x18,0x19,0xD9,0x1B,0xDB,0xDA,0x1A,0x1E,0xDE,0xDF,0x1F,0xDD,0x1D,0x1C,0xDC, + 0x14,0xD4,0xD5,0x15,0xD7,0x17,0x16,0xD6,0xD2,0x12,0x13,0xD3,0x11,0xD1,0xD0,0x10, + 0xF0,0x30,0x31,0xF1,0x33,0xF3,0xF2,0x32,0x36,0xF6,0xF7,0x37,0xF5,0x35,0x34,0xF4, + 0x3C,0xFC,0xFD,0x3D,0xFF,0x3F,0x3E,0xFE,0xFA,0x3A,0x3B,0xFB,0x39,0xF9,0xF8,0x38, + 0x28,0xE8,0xE9,0x29,0xEB,0x2B,0x2A,0xEA,0xEE,0x2E,0x2F,0xEF,0x2D,0xED,0xEC,0x2C, + 0xE4,0x24,0x25,0xE5,0x27,0xE7,0xE6,0x26,0x22,0xE2,0xE3,0x23,0xE1,0x21,0x20,0xE0, + 0xA0,0x60,0x61,0xA1,0x63,0xA3,0xA2,0x62,0x66,0xA6,0xA7,0x67,0xA5,0x65,0x64,0xA4, + 0x6C,0xAC,0xAD,0x6D,0xAF,0x6F,0x6E,0xAE,0xAA,0x6A,0x6B,0xAB,0x69,0xA9,0xA8,0x68, + 0x78,0xB8,0xB9,0x79,0xBB,0x7B,0x7A,0xBA,0xBE,0x7E,0x7F,0xBF,0x7D,0xBD,0xBC,0x7C, + 0xB4,0x74,0x75,0xB5,0x77,0xB7,0xB6,0x76,0x72,0xB2,0xB3,0x73,0xB1,0x71,0x70,0xB0, + 0x50,0x90,0x91,0x51,0x93,0x53,0x52,0x92,0x96,0x56,0x57,0x97,0x55,0x95,0x94,0x54, + 0x9C,0x5C,0x5D,0x9D,0x5F,0x9F,0x9E,0x5E,0x5A,0x9A,0x9B,0x5B,0x99,0x59,0x58,0x98, + 0x88,0x48,0x49,0x89,0x4B,0x8B,0x8A,0x4A,0x4E,0x8E,0x8F,0x4F,0x8D,0x4D,0x4C,0x8C, + 0x44,0x84,0x85,0x45,0x87,0x47,0x46,0x86,0x82,0x42,0x43,0x83,0x41,0x81,0x80,0x40, + }; + uchCRCHi = 0xFF; + uchCRCLo = 0xFF; + /* CRC Generation Function */ + while( data_size--) /* pass through message buffer */ + { + uIndex = uchCRCHi ^ *data++; /* calculate the CRC */ + uchCRCHi = uchCRCLo ^ auchCRCHi[uIndex]; + uchCRCLo = auchCRCLo[uIndex]; + } + return uchCRCHi | uchCRCLo<<8; +} diff --git a/Core/Modbus/crc_algs.h b/Core/Modbus/crc_algs.h new file mode 100644 index 0000000..3502d6a --- /dev/null +++ b/Core/Modbus/crc_algs.h @@ -0,0 +1,9 @@ +#include "modbus_config.h" + +// extern here to use in bootloader.c +extern uint32_t CRC_calc; +extern uint32_t CRC_ref; + + +uint16_t crc16(uint8_t *data, uint32_t data_size); +uint32_t crc32(uint8_t *data, uint32_t data_size); diff --git a/Core/Modbus/modbus.c b/Core/Modbus/modbus.c new file mode 100644 index 0000000..55970c1 --- /dev/null +++ b/Core/Modbus/modbus.c @@ -0,0 +1,951 @@ +/** +************************************************************************** +* @file modbus.c +* @brief Модуль для реализации MODBUS. +************************************************************************** +* @details Файл содержит реализацию функций работы с Modbus, включая: +* - доступ к coils и registers; +* - обработку команд протокола; +* - взаимодействие с RS (UART); +* - инициализацию. +* +* @section Функции и макросы +* +* ### Доступ к coils: +* - MB_Set_Coil_Local() — Установить coil по локальному адресу. +* - MB_Reset_Coil_Local() — Сбросить coil по локальному адресу. +* - MB_Toogle_Coil_Local() — Инвертировать coil по локальному адресу. +* - MB_Read_Coil_Local() — Прочитать coil по локальному адресу. +* - MB_Write_Coil_Global() — Установить/сбросить coil по глобальному адресу. +* - MB_Read_Coil_Global() — Прочитать coil по глобальному адресу. +* +* ### Обработка команд Modbus: +* - MB_DefineRegistersAddress() — Определить начальный адрес регистра. +* - MB_DefineCoilsAddress() — Определить начальный адрес coils. +* - MB_Check_Address_For_Arr() — Проверить, принадлежит ли адрес массиву. +* - Основные команды Modbus: +* - MB_Read_Coils() +* - MB_Read_Hold_Regs() +* - MB_Write_Single_Coil() +* - MB_Write_Miltuple_Coils() +* - MB_Write_Miltuple_Regs() +* +* ### Функции для работы с RS (UART): +* - RS_Parse_Message() / RS_Collect_Message() — Парсинг и сборка сообщения. +* - RS_Response() — Отправка ответа. +* - RS_Define_Size_of_RX_Message() — Определение размера принимаемого сообщения. +* - RS_Init() — Инициализация UART. +* +* ### Инициализация: +* - MODBUS_FirstInit() — Инициализация модуля Modbus. +* +* @section Структура данных Modbus +* +* #### Holding/Input Registers: +* - Регистры — 16-битные слова. Доступ к регистрам осуществляется через указатель. +* Таким образом, сами регистры могут представлять собой как массив так и структуру. +* +* #### Coils: +* - Coils — это биты, упакованные в 16-битные слова. Доступ к коилам осуществляется через указатель. +* Таким образом, сами коилы могут представлять собой как массив так и структуру. +* +* @section Инструкция по подключению +* Для корректной работы надо подключить обработчики RS_UART_Handler(), RS_TIM_Handler(), +* в соответствубщие низкоуровневые прерывания UART_IRQHandler, TIM_IRQHandler. После HAL'овского обработчика +* +* Также необходимо в modbus_config.h настроить дефайны для нужной работы UART +* После для запуска Modbus: +* @verbatim + //----------------Прием модбас----------------// + #include "rs_message.h" + MODBUS_FirstInit(); + RS_Receive_IT(&hmodbus1, &MODBUS_MSG); +* @endverbatim +* +******************************************************************************/ + +#include "rs_message.h" +uint32_t dbg_temp, dbg_temp2, dbg_temp3; // for debug +/* MODBUS HANDLES */ +extern UART_HandleTypeDef rs_huart; +extern TIM_HandleTypeDef rs_htim; +RS_HandleTypeDef hmodbus1; + +/* DEFINE REGISTERS/COILS */ +MB_DeviceIdentificationTypeDef MB_INFO; +MB_DataStructureTypeDef MB_DATA; +RS_MsgTypeDef MODBUS_MSG; + +//------------------------------------------------------------------- +//-----------------------------FOR USER------------------------------ +/** + * @brief First set up of MODBUS. + * @details Первый инит модбас. Заполняет структуры и инициализирует таймер и юарт для общения по модбас. + * @note This called from main + */ +void MODBUS_FirstInit(void) +{ + MB_DevoceInentificationInit(); + //-----------SETUP MODBUS------------- + // set up modbus: MB_RX_Size_NotConst and Timeout enable + hmodbus1.ID = MODBUS_DEVICE_ID; + hmodbus1.sRS_Timeout = MODBUS_TIMEOUT; + hmodbus1.sRS_Mode = SLAVE_ALWAYS_WAIT; + hmodbus1.sRS_RX_Size_Mode = RS_RX_Size_NotConst; + + // INIT + hmodbus1.RS_STATUS = RS_Init(&hmodbus1, &rs_huart, &rs_htim, 0); + + RS_EnableReceive(); +} +/** + * @brief Set or Reset Coil at its global address. + * @param Addr - адрес коила. + * @param WriteVal - Что записать в коил: 0 или 1. + * @return ExceptionCode - Код исключения если коила по адресу не существует, и NO_ERRORS если все ок. + * + * @details Позволяет обратиться к любому коилу по его глобальному адрессу. + Вне зависимости от того как коилы размещены в памяти. + */ +MB_ExceptionTypeDef MB_Write_Coil_Global(uint16_t Addr, MB_CoilsOpTypeDef WriteVal) +{ + //---------CHECK FOR ERRORS---------- + MB_ExceptionTypeDef Exception = NO_ERRORS; + uint16_t *coils; + uint16_t start_shift = 0; // shift in coils register + + //------------WRITE COIL------------- + Exception = MB_DefineCoilsAddress(&coils, Addr, 1, &start_shift, 1); + if(Exception == NO_ERRORS) + { + switch(WriteVal) + { + case SET_COIL: + *coils |= (1<= R_ARR_ADDR) + { + // if quantity too big return error + if ((Addr - R_ARR_ADDR) + Qnt > R_ARR_NUMB) + { + return ILLEGAL_DATA_ADDRESS; // return exception code + } + // if all ok - return no errors + return NO_ERRORS; + } + // if address isnt from this array return error + else + return ILLEGAL_DATA_ADDRESS; // return exception code +} +/** + * @brief Define Address Origin for Input/Holding Registers + * @param pRegs - указатель на указатель регистров. + * @param Addr - адрес начального регистра. + * @param Qnt - количество запрашиваемых регистров. + * @param WriteFlag - флаг регистр нужны для чтения или записи. + * @return ExceptionCode - Код исключения если есть, и NO_ERRORS если нет. + * + * @details Определение адреса начального регистра. + * @note WriteFlag пока не используется. + */ +MB_ExceptionTypeDef MB_DefineRegistersAddress(uint16_t **pRegs, uint16_t Addr, uint16_t Qnt, uint8_t RegisterType) +{ + /* check quantity error */ + if (Qnt > 125) + { + return ILLEGAL_DATA_VALUE; // return exception code + } + + if(RegisterType == RegisterType_Holding) + { + // Default holding registers + if(MB_Check_Address_For_Arr(Addr, Qnt, R_HOLDING_ADDR, R_HOLDING_QNT) == NO_ERRORS) + { + *pRegs = MB_Set_Register_Ptr(&MB_DATA.HoldRegs, Addr); // указатель на выбранный по Addr регистр + } + // if address doesnt match any array - return illegal data address response + else + { + return ILLEGAL_DATA_ADDRESS; + } + } + else if(RegisterType == RegisterType_Input) + { + // Default input registers + if(MB_Check_Address_For_Arr(Addr, Qnt, R_INPUT_ADDR, R_INPUT_QNT) == NO_ERRORS) + { + *pRegs = MB_Set_Register_Ptr(&MB_DATA.InRegs, Addr); // указатель на выбранный по Addr регистр + } + // if address doesnt match any array - return illegal data address response + else + { + return ILLEGAL_DATA_ADDRESS; + } + } + else + { + return ILLEGAL_FUNCTION; + } + // if found requeried array return no err + return NO_ERRORS; // return no errors +} +/** + * @brief Define Address Origin for coils + * @param pCoils - указатель на указатель коилов. + * @param Addr - адресс начального коила. + * @param Qnt - количество запрашиваемых коилов. + * @param start_shift - указатель на переменную содержащую сдвиг внутри регистра для начального коила. + * @param WriteFlag - флаг коилы нужны для чтения или записи. + * @return ExceptionCode - Код исключения если есть, и NO_ERRORS если нет. + * + * @details Определение адреса начального регистра запрашиваемых коилов. + * @note WriteFlag используется для определния регистров GPIO: ODR или IDR. + */ +MB_ExceptionTypeDef MB_DefineCoilsAddress(uint16_t **pCoils, uint16_t Addr, uint16_t Qnt, uint16_t *start_shift, uint8_t WriteFlag) +{ + /* check quantity error */ + if (Qnt > 2000) + { + return ILLEGAL_DATA_VALUE; // return exception code + } + + // Default coils + if(MB_Check_Address_For_Arr(Addr, Qnt, C_CONTROL_ADDR, C_CONTROL_QNT) == NO_ERRORS) + { + *pCoils = MB_Set_Coil_Reg_Ptr(&MB_DATA.Coils, Addr); // указатель на выбранный по Addr массив коилов + } + // if address doesnt match any array - return illegal data address response + else + { + return ILLEGAL_DATA_ADDRESS; + } + + *start_shift = Addr % 16; // set shift to requested coil + // if found requeried array return no err + return NO_ERRORS; // return no errors +} + + +/** + * @brief Proccess command Read Coils (01 - 0x01). + * @param modbus_msg - указатель на структуру собщения modbus. + * @return fMessageHandled - статус о результате обработки комманды. + * @details Обработка команды Read Coils. + */ +uint8_t MB_Read_Coils(RS_MsgTypeDef *modbus_msg) +{ + //---------CHECK FOR ERRORS---------- + uint16_t *coils; + uint16_t start_shift = 0; // shift in coils register + + modbus_msg->Except_Code = MB_DefineCoilsAddress(&coils, modbus_msg->Addr, modbus_msg->Qnt, &start_shift, 0); + if(modbus_msg->Except_Code != NO_ERRORS) + return 0; + + //-----------READING COIL------------ + // setup output message data size + modbus_msg->ByteCnt = Divide_Up(modbus_msg->Qnt, 8); + // create mask for coils + uint16_t mask_for_coils = 0; // mask for coils that've been chosen + uint16_t setted_coils = 0; // value of setted coils + uint16_t temp_reg = 0; // temp register for saving coils that hasnt been chosen + uint16_t coil_cnt = 0; // counter for processed coils + + // cycle until all registers with requered coils would be processed + int shift = start_shift; // set shift to first coil in first register + int ind = 0; // index for coils registers and data + for(; ind <= Divide_Up(start_shift + modbus_msg->Qnt, 16); ind++) + { + //----SET MASK FOR COILS REGISTER---- + mask_for_coils = 0; + for(; shift < 0x10; shift++) + { + mask_for_coils |= 1<<(shift); // choose certain coil + if(++coil_cnt >= modbus_msg->Qnt) + break; + } + shift = 0; // set shift to zero for the next step + + //-----------READ COILS-------------- + modbus_msg->DATA[ind] = (*(coils+ind)&mask_for_coils) >> start_shift; + if(ind > 0) + modbus_msg->DATA[ind-1] |= ((*(coils+ind)&mask_for_coils) << 16) >> start_shift; + + } + // т.к. DATA 16-битная, для 8-битной передачи, надо поменять местами верхний и нижний байты + for(; ind >= 0; --ind) + modbus_msg->DATA[ind] = ByteSwap16(modbus_msg->DATA[ind]); + + return 1; +} + +/** + * @brief Proccess command Read Holding Registers (03 - 0x03). + * @param modbus_msg - указатель на структуру собщения modbus. + * @return fMessageHandled - статус о результате обработки комманды. + * @details Обработка команды Read Holding Registers. + */ +uint8_t MB_Read_Hold_Regs(RS_MsgTypeDef *modbus_msg) +{ + //---------CHECK FOR ERRORS---------- + // get origin address for data + uint16_t *pHoldRegs; + modbus_msg->Except_Code = MB_DefineRegistersAddress(&pHoldRegs, modbus_msg->Addr, modbus_msg->Qnt, RegisterType_Holding); // определение адреса регистров + if(modbus_msg->Except_Code != NO_ERRORS) + return 0; + + + //-----------READING REGS------------ + // setup output message data size + modbus_msg->ByteCnt = modbus_msg->Qnt*2; // *2 because we transmit 8 bits, not 16 bits + // read data + int i; + for (i = 0; iQnt; i++) + { + modbus_msg->DATA[i] = *(pHoldRegs++); + } + return 1; +} + +/** + * @brief Proccess command Read Input Registers (04 - 0x04). + * @param modbus_msg - указатель на структуру собщения modbus. + * @return fMessageHandled - статус о результате обработки комманды. + * @details Обработка команды Read Input Registers. + */ +uint8_t MB_Read_Input_Regs(RS_MsgTypeDef *modbus_msg) +{ + //---------CHECK FOR ERRORS---------- + // get origin address for data + uint16_t *pInRegs; + modbus_msg->Except_Code = MB_DefineRegistersAddress(&pInRegs, modbus_msg->Addr, modbus_msg->Qnt, RegisterType_Input); // определение адреса регистров + if(modbus_msg->Except_Code != NO_ERRORS) + return 0; + + + //-----------READING REGS------------ + // setup output message data size + modbus_msg->ByteCnt = modbus_msg->Qnt*2; // *2 because we transmit 8 bits, not 16 bits + // read data + int i; + for (i = 0; iQnt; i++) + { + if(*((int16_t *)pInRegs) > 0) + modbus_msg->DATA[i] = (*pInRegs++); + else + modbus_msg->DATA[i] = (*pInRegs++); + } + return 1; +} +/** + * @brief Proccess command Write Single Coils (05 - 0x05). + * @param modbus_msg - указатель на структуру собщения modbus. + * @return fMessageHandled - статус о результате обработки комманды. + * @details Обработка команды Write Single Coils. + */ +uint8_t MB_Write_Single_Coil(RS_MsgTypeDef *modbus_msg) +{ + //---------CHECK FOR ERRORS---------- + if ((modbus_msg->Qnt != 0x0000) && (modbus_msg->Qnt != 0xFF00)) + { + modbus_msg->Except_Code = ILLEGAL_DATA_VALUE; + return 0; + } + // define position of coil + uint16_t *coils; + uint16_t start_shift = 0; // shift in coils register + modbus_msg->Except_Code = MB_DefineCoilsAddress(&coils, modbus_msg->Addr, 0, &start_shift, 1); + if(modbus_msg->Except_Code != NO_ERRORS) + return 0; + + + //----------WRITTING COIL------------ + if(modbus_msg->Qnt == 0xFF00) + *(coils) |= 1<Except_Code = MB_DefineRegistersAddress(&pHoldRegs, modbus_msg->Addr, 1, RegisterType_Holding); // определение адреса регистров + if(modbus_msg->Except_Code != NO_ERRORS) + return 0; + + //-----------WRITTING REG------------ + *(pHoldRegs) = modbus_msg->Qnt; + return 1; +} + +/** + * @brief Proccess command Write Multiple Coils (15 - 0x0F). + * @param modbus_msg - указатель на структуру собщения modbus. + * @return fMessageHandled - статус о результате обработки комманды. + * @details Обработка команды Write Multiple Coils. + */ +uint8_t MB_Write_Miltuple_Coils(RS_MsgTypeDef *modbus_msg) +{ + //---------CHECK FOR ERRORS---------- + if (modbus_msg->ByteCnt != Divide_Up(modbus_msg->Qnt, 8)) + { // if quantity too large OR if quantity and bytes count arent match + modbus_msg->Except_Code = ILLEGAL_DATA_VALUE; + return 0; + } + // define position of coil + uint16_t *coils; // pointer to coils + uint16_t start_shift = 0; // shift in coils register + modbus_msg->Except_Code = MB_DefineCoilsAddress(&coils, modbus_msg->Addr, modbus_msg->Qnt, &start_shift, 1); + if(modbus_msg->Except_Code != NO_ERRORS) + return 0; + + //----------WRITTING COILS----------- + // create mask for coils + uint16_t mask_for_coils = 0; // mask for coils that've been chosen + uint32_t setted_coils = 0; // value of setted coils + uint16_t temp_reg = 0; // temp register for saving coils that hasnt been chosen + uint16_t coil_cnt = 0; // counter for processed coils + + // cycle until all registers with requered coils would be processed + int shift = start_shift; // set shift to first coil in first register + for(int ind = 0; ind <= Divide_Up(start_shift + modbus_msg->Qnt, 16); ind++) + { + //----SET MASK FOR COILS REGISTER---- + mask_for_coils = 0; + for(; shift < 0x10; shift++) + { + mask_for_coils |= 1<<(shift); // choose certain coil + if(++coil_cnt >= modbus_msg->Qnt) + break; + } + shift = 0; // set shift to zero for the next step + + + + //-----------WRITE COILS------------- + // get current coils + temp_reg = *(coils+ind); + // set coils + setted_coils = ByteSwap16(modbus_msg->DATA[ind]) << start_shift; + if(ind > 0) + { + setted_coils |= ((ByteSwap16(modbus_msg->DATA[ind-1]) << start_shift) >> 16); + } + // write coils + + *(coils+ind) = setted_coils & mask_for_coils; + // restore untouched coils + *(coils+ind) |= temp_reg&(~mask_for_coils); + + + if(coil_cnt >= modbus_msg->Qnt) // if all coils written - break cycle + break; // *kind of unnecessary + } + + return 1; +} + +/** + * @brief Proccess command Write Multiple Registers (16 - 0x10). + * @param modbus_msg - указатель на структуру собщения modbus. + * @return fMessageHandled - статус о результате обработки комманды. + * @details Обработка команды Write Multiple Registers. + */ +uint8_t MB_Write_Miltuple_Regs(RS_MsgTypeDef *modbus_msg) +{ + //---------CHECK FOR ERRORS---------- + if (modbus_msg->Qnt*2 != modbus_msg->ByteCnt) + { // if quantity and bytes count arent match + modbus_msg->Except_Code = 3; + return 0; + } + // get origin address for data + uint16_t *pHoldRegs; + modbus_msg->Except_Code = MB_DefineRegistersAddress(&pHoldRegs, modbus_msg->Addr, modbus_msg->Qnt, RegisterType_Holding); // определение адреса регистров + if(modbus_msg->Except_Code != NO_ERRORS) + return 0; + + //-----------WRITTING REGS----------- + for (int i = 0; iQnt; i++) + { + *(pHoldRegs++) = modbus_msg->DATA[i]; + } + return 1; +} + +void MB_WriteObjectToMessage(char *mbdata, unsigned *ind, MB_DeviceObjectTypeDef *obj) +{ + mbdata[(*ind)++] = obj->length; + for (int i = 0; i < obj->length; i++) + { + mbdata[(*ind)++] = obj->name[i]; + } +} +/** + * @brief Proccess command Read Device Identification (43/14 - 0x2B/0E). + * @param modbus_msg - указатель на структуру собщения modbus. + * @return fMessageHandled - статус о результате обработки комманды. + * @details Обработка команды Write Single Register. + */ +uint8_t MB_Read_Device_Identification(RS_MsgTypeDef *modbus_msg) +{ + char *mbdata = (char *)modbus_msg->DATA; + unsigned ind = 0; + switch(modbus_msg->DevId.ReadDevId) + { + case MB_BASIC_IDENTIFICATION: + mbdata[ind++] = 0x00; + MB_WriteObjectToMessage(mbdata, &ind, &MB_INFO.VendorName); + mbdata[ind++] = 0x01; + MB_WriteObjectToMessage(mbdata, &ind, &MB_INFO.ProductCode); + mbdata[ind++] = 0x02; + MB_WriteObjectToMessage(mbdata, &ind, &MB_INFO.Revision); + modbus_msg->DevId.NumbOfObj = 3; + break; + case MB_REGULAR_IDENTIFICATION: + mbdata[ind++] = 0x03; + MB_WriteObjectToMessage(mbdata, &ind, &MB_INFO.VendorUrl); + mbdata[ind++] = 0x04; + MB_WriteObjectToMessage(mbdata, &ind, &MB_INFO.ProductName); + mbdata[ind++] = 0x05; + MB_WriteObjectToMessage(mbdata, &ind, &MB_INFO.ModelName); + mbdata[ind++] = 0x06; + MB_WriteObjectToMessage(mbdata, &ind, &MB_INFO.UserApplicationName); + modbus_msg->DevId.NumbOfObj = 4; + break; + default: + return 0; + } + + modbus_msg->ByteCnt = ind; + return 1; +} + + +/** + * @brief Respond accord to received message. + * @param hRS - указатель на хендлер RS. + * @param RS_msg - указатель на структуру сообщения. + * @return RS_RES - статус о результате ответа на комманду. + * @details Обработка принятой комманды и ответ на неё. + */ +RS_StatusTypeDef RS_Response(RS_HandleTypeDef *hmodbus, RS_MsgTypeDef *modbus_msg) +{ + RS_StatusTypeDef MB_RES = 0; + hmodbus->f.MessageHandled = 0; + hmodbus->f.EchoResponse = 0; + RS_Reset_TX_Flags(hmodbus); // reset flag for correct transmit + + if(modbus_msg->Func_Code < ERR_VALUES_START)// if no errors after parsing + { + switch (modbus_msg->Func_Code) + { + // Read Coils + case MB_R_COILS: + hmodbus->f.MessageHandled = MB_Read_Coils(hmodbus->pMessagePtr); + break; + + // Read Hodling Registers + case MB_R_HOLD_REGS: + hmodbus->f.MessageHandled = MB_Read_Hold_Regs(hmodbus->pMessagePtr); + break; + case MB_R_IN_REGS: + hmodbus->f.MessageHandled = MB_Read_Input_Regs(hmodbus->pMessagePtr); + break; + + + // Write Single Coils + case MB_W_COIL: + hmodbus->f.MessageHandled = MB_Write_Single_Coil(hmodbus->pMessagePtr); + if(hmodbus->f.MessageHandled) + { + hmodbus->f.EchoResponse = 1; + hmodbus->RS_Message_Size -= 2; // echo response if write ok (minus 2 cause of two CRC bytes) + } + break; + + case MB_W_HOLD_REG: + hmodbus->f.MessageHandled = MB_Write_Single_Reg(hmodbus->pMessagePtr); + if(hmodbus->f.MessageHandled) + { + hmodbus->f.EchoResponse = 1; + hmodbus->RS_Message_Size -= 2; // echo response if write ok (minus 2 cause of two CRC bytes) + } + break; + + // Write Multiple Coils + case MB_W_COILS: + hmodbus->f.MessageHandled = MB_Write_Miltuple_Coils(hmodbus->pMessagePtr); + if(hmodbus->f.MessageHandled) + { + hmodbus->f.EchoResponse = 1; + hmodbus->RS_Message_Size = 6; // echo response if write ok (withous data bytes) + } + break; + + // Write Multiple Registers + case MB_W_HOLD_REGS: + hmodbus->f.MessageHandled = MB_Write_Miltuple_Regs(hmodbus->pMessagePtr); + if(hmodbus->f.MessageHandled) + { + hmodbus->f.EchoResponse = 1; + hmodbus->RS_Message_Size = 6; // echo response if write ok (withous data bytes) + } + break; + + case MB_R_DEVICE_INFO: + hmodbus->f.MessageHandled = MB_Read_Device_Identification(hmodbus->pMessagePtr); + break; + + + /* unknown func code */ + default: modbus_msg->Except_Code = 0x01; /* set exception code: illegal function */ + } + + if(hmodbus->f.MessageHandled == 0) + { + modbus_msg->Func_Code += ERR_VALUES_START; + } + else + { + } + + + } + + // if we need response - check that transmit isnt busy + if( RS_Is_TX_Busy(hmodbus) ) + RS_Abort(hmodbus, ABORT_TX); // if tx busy - set it free + + // Transmit right there, or sets (fDeferredResponse) to transmit response in main code + MB_RES = RS_Handle_Transmit_Start(hmodbus, modbus_msg); + + hmodbus->RS_STATUS = MB_RES; + return MB_RES; +} + +/** + * @brief Collect message in buffer to transmit it. + * @param hRS - указатель на хендлер RS. + * @param RS_msg - указатель на структуру сообщения. + * @param msg_uart_buff - указатель на буффер UART. + * @return RS_RES - статус о результате заполнения буфера. + * @details Заполнение буффера UART из структуры сообщения. + */ +RS_StatusTypeDef RS_Collect_Message(RS_HandleTypeDef *hmodbus, RS_MsgTypeDef *modbus_msg, uint8_t *modbus_uart_buff) +{ + int ind = 0; // ind for modbus-uart buffer + + if(hmodbus->f.EchoResponse && hmodbus->f.MessageHandled) // if echo response need + ind = hmodbus->RS_Message_Size; + else + { + //------INFO ABOUT DATA/MESSAGE------ + //-----------[first bytes]----------- + // set ID of message/user + modbus_uart_buff[ind++] = modbus_msg->MbAddr; + + // set dat or err response + modbus_uart_buff[ind++] = modbus_msg->Func_Code; + + if (modbus_msg->Func_Code < ERR_VALUES_START) // if no error occur + { + // fill modbus header + if(modbus_msg->Func_Code == MB_R_DEVICE_INFO) // devide identification header + { + modbus_uart_buff[ind++] = modbus_msg->DevId.MEI_Type; + modbus_uart_buff[ind++] = modbus_msg->DevId.ReadDevId; + modbus_uart_buff[ind++] = modbus_msg->DevId.Conformity; + modbus_uart_buff[ind++] = modbus_msg->DevId.MoreFollows; + modbus_uart_buff[ind++] = modbus_msg->DevId.NextObjId; + modbus_uart_buff[ind++] = modbus_msg->DevId.NumbOfObj; + + if (modbus_msg->ByteCnt > DATA_SIZE*2) // if ByteCnt less than DATA_SIZE + { + return RS_COLLECT_MSG_ERR; + } + + + //---------------DATA---------------- + //-----------[data bytes]------------ + uint8_t *tmp_data_addr = (uint8_t *)modbus_msg->DATA; + for(int i = 0; i < modbus_msg->ByteCnt; i++) // filling buffer with data + { // set data + modbus_uart_buff[ind++] = *tmp_data_addr; + tmp_data_addr++; + } + + } + else // modbus data header + { + // set size of received data + if (modbus_msg->ByteCnt <= DATA_SIZE*2) // if ByteCnt less than DATA_SIZE + modbus_uart_buff[ind++] = modbus_msg->ByteCnt; + else // otherwise return data_size err + { + return RS_COLLECT_MSG_ERR; + } + + //---------------DATA---------------- + //-----------[data bytes]------------ + uint16_t *tmp_data_addr = (uint16_t *)modbus_msg->DATA; + for(int i = 0; i < modbus_msg->ByteCnt; i++) // filling buffer with data + { // set data + if (i%2 == 0) // HI byte + modbus_uart_buff[ind++] = (*tmp_data_addr)>>8; + else // LO byte + { + modbus_uart_buff[ind++] = *tmp_data_addr; + tmp_data_addr++; + } + } + + } + + } + else // if some error occur + { // send expection code + modbus_uart_buff[ind++] = modbus_msg->Except_Code; + } + } + //---------------CRC---------------- + //---------[last 16 bytes]---------- + // calc crc of received data + uint16_t CRC_VALUE = crc16(modbus_uart_buff, ind); + // write crc to message structure and modbus-uart buffer + modbus_msg->MB_CRC = CRC_VALUE; + modbus_uart_buff[ind++] = CRC_VALUE; + modbus_uart_buff[ind++] = CRC_VALUE >> 8; + + hmodbus->RS_Message_Size = ind; + + return RS_OK; // returns ok +} + +/** + * @brief Parse message from buffer to process it. + * @param hRS - указатель на хендлер RS. + * @param RS_msg - указатель на структуру сообщения. + * @param msg_uart_buff - указатель на буффер UART. + * @return RS_RES - статус о результате заполнения структуры. + * @details Заполнение структуры сообщения из буффера UART. + */ +RS_StatusTypeDef RS_Parse_Message(RS_HandleTypeDef *hmodbus, RS_MsgTypeDef *modbus_msg, uint8_t *modbus_uart_buff) +{ + uint32_t check_empty_buff; + int ind = 0; // ind for modbus-uart buffer + //-----INFO ABOUT DATA/MESSAGE------- + //-----------[first bits]------------ + // get ID of message/user + modbus_msg->MbAddr = modbus_uart_buff[ind++]; + if(modbus_msg->MbAddr != hmodbus->ID) + return RS_SKIP; + + // get func code + modbus_msg->Func_Code = modbus_uart_buff[ind++]; + if(modbus_msg->Func_Code == MB_R_DEVICE_INFO) // if it device identification request + { + modbus_msg->DevId.MEI_Type = modbus_uart_buff[ind++]; + modbus_msg->DevId.ReadDevId = modbus_uart_buff[ind++]; + modbus_msg->DevId.NextObjId = modbus_uart_buff[ind++]; + modbus_msg->ByteCnt = 0; + } + else // if its classic modbus request + { + // get address from CMD + modbus_msg->Addr = modbus_uart_buff[ind++] << 8; + modbus_msg->Addr |= modbus_uart_buff[ind++]; + + // get address from CMD + modbus_msg->Qnt = modbus_uart_buff[ind++] << 8; + modbus_msg->Qnt |= modbus_uart_buff[ind++]; + } + if(hmodbus->f.RX_Half == 0) // if all message received + { + //---------------DATA---------------- + // (optional) + if (modbus_msg->ByteCnt != 0) + { + ind++; // increment ind for data_size byte + //check that data size is correct + if (modbus_msg->ByteCnt > DATA_SIZE*2) + { + modbus_msg->Func_Code += ERR_VALUES_START; + return RS_PARSE_MSG_ERR; + } + uint16_t *tmp_data_addr = (uint16_t *)modbus_msg->DATA; + for(int i = 0; i < modbus_msg->ByteCnt; i++) // /2 because we transmit 8 bits, not 16 bits + { // set data + if (i%2 == 0) + *tmp_data_addr = ((uint16_t)modbus_uart_buff[ind++] << 8); + else + { + *tmp_data_addr |= modbus_uart_buff[ind++]; + tmp_data_addr++; + } + } + } + + //---------------CRC---------------- + //----------[last 16 bits]---------- + // calc crc of received data + uint16_t CRC_VALUE = crc16(modbus_uart_buff, ind); + // get crc of received data + modbus_msg->MB_CRC = modbus_uart_buff[ind++]; + modbus_msg->MB_CRC |= modbus_uart_buff[ind++] << 8; + // compare crc + if (modbus_msg->MB_CRC != CRC_VALUE) + { + modbus_msg->Func_Code += ERR_VALUES_START; + } + // hmodbus->MB_RESPONSE = MB_CRC_ERR; // set func code - error about wrong crc + + // check is buffer empty + check_empty_buff = 0; + for(int i=0; iMB_RESPONSE = MB_EMPTY_MSG; // + } + + return RS_OK; + +} + +/** + * @brief Define size of RX Message that need to be received. + * @param hRS - указатель на хендлер RS. + * @param rx_data_size - указатель на переменную для записи кол-ва байт для принятия. + * @return RS_RES - статус о корректности рассчета кол-ва байт для принятия. + * @details Определение сколько байтов надо принять по протоколу. + */ +RS_StatusTypeDef RS_Define_Size_of_RX_Message(RS_HandleTypeDef *hmodbus, uint32_t *rx_data_size) +{ + RS_StatusTypeDef MB_RES = 0; + + MB_RES = RS_Parse_Message(hmodbus, hmodbus->pMessagePtr, hmodbus->pBufferPtr); + if(MB_RES == RS_SKIP) // if message not for us + return MB_RES; // return + + + if ((hmodbus->pMessagePtr->Func_Code & ~ERR_VALUES_START) < 0x0F) + { + hmodbus->pMessagePtr->ByteCnt = 0; + *rx_data_size = 1; + + } + else + { + hmodbus->pMessagePtr->ByteCnt = hmodbus->pBufferPtr[RX_FIRST_PART_SIZE-1]; // get numb of data in command + // +1 because that defines is size, not ind. + *rx_data_size = hmodbus->pMessagePtr->ByteCnt + 2; + } + + + if(hmodbus->pMessagePtr->Func_Code == MB_R_DEVICE_INFO) + { + *rx_data_size = 0; + } + + hmodbus->RS_Message_Size = RX_FIRST_PART_SIZE + *rx_data_size; // size of whole message + return RS_OK; +} + +//-----------------------------FOR USER------------------------------ +//------------------------------------------------------------------- + + +void MB_DevoceInentificationInit(void) +{ + MB_INFO.VendorName.name = MODBUS_VENDOR_NAME; + MB_INFO.ProductCode.name = MODBUS_PRODUCT_CODE; + MB_INFO.Revision.name = MODBUS_REVISION; + MB_INFO.VendorUrl.name = MODBUS_VENDOR_URL; + MB_INFO.ProductName.name = MODBUS_PRODUCT_NAME; + MB_INFO.ModelName.name = MODBUS_MODEL_NAME; + MB_INFO.UserApplicationName.name = MODBUS_USER_APPLICATION_NAME; + + + MB_INFO.VendorName.length = sizeof(MODBUS_VENDOR_NAME); + MB_INFO.ProductCode.length = sizeof(MODBUS_PRODUCT_CODE); + MB_INFO.Revision.length = sizeof(MODBUS_REVISION); + MB_INFO.VendorUrl.length = sizeof(MODBUS_VENDOR_URL); + MB_INFO.ProductName.length = sizeof(MODBUS_PRODUCT_NAME); + MB_INFO.ModelName.length = sizeof(MODBUS_MODEL_NAME); + MB_INFO.UserApplicationName.length = sizeof(MODBUS_USER_APPLICATION_NAME); +} + + + diff --git a/Core/Modbus/modbus.h b/Core/Modbus/modbus.h new file mode 100644 index 0000000..8514eb4 --- /dev/null +++ b/Core/Modbus/modbus.h @@ -0,0 +1,372 @@ +/** + ************************************************************************** + * @file modbus.h + * @brief Заголовочный файл модуля MODBUS. + * @details Данный файл необходимо подключить в rs_message.h. После подключать + * rs_message.h к основному проекту. + * + * @defgroup MODBUS + * @brief Modbus stuff + * + *************************************************************************/ +#ifndef __MODBUS_H_ +#define __MODBUS_H_ + +#include "modbus_config.h" +#include "modbus_data.h" +//#include "settings.h" // for modbus settings + +/** + * @addtogroup MODBUS_SETTINGS + * @ingroup MODBUS + * @brief Some defines for modbus + @{ + */ +///////////////////////////////////////////////////////////////////// +//////////////////////////---SETTINGS---///////////////////////////// +// USER SETTINGS FOR MODBUS IN interface_config.h +//////////////////////////---SETTINGS---///////////////////////////// + + +///////////////////////////////////////////////////////////////////// +/////////////////////---USER MESSAGE DEFINES---////////////////////// +//-------------DEFINES FOR STRUCTURE---------------- +/* defines for structure of modbus message */ +#define MbAddr_SIZE 1 ///< size of (MbAddr) +#define Func_Code_SIZE 1 ///< size of (Func_Code) +#define Addr_SIZE 2 ///< size of (Addr) +#define Qnt_SIZE 2 ///< size of (Qnt) +#define ByteCnt_SIZE 1 ///< size of (ByteCnt) +#define DATA_SIZE 125 ///< maximum number of data: DWORD (NOT MESSAGE SIZE) +#define CRC_SIZE 2 ///< size of (MB_CRC) in bytes + +/** @brief Size of whole message */ +#define INFO_SIZE_MAX (MbAddr_SIZE+Func_Code_SIZE+Addr_SIZE+Qnt_SIZE+ByteCnt_SIZE) + +/** @brief Size of first part of message that will be received +first receive info part of message, than defines size of rest message*/ +#define RX_FIRST_PART_SIZE INFO_SIZE_MAX + +/** @brief Size of buffer: max size of whole message */ +#define MSG_SIZE_MAX (INFO_SIZE_MAX + DATA_SIZE*2 + CRC_SIZE) // max possible size of message + +/** @brief Structure for modbus exception codes */ +typedef enum //MB_ExceptionTypeDef +{ + // reading + NO_ERRORS = 0x00, ///< no errors + ILLEGAL_FUNCTION = 0x01, ///< Принятый код функции не может быть обработан + ILLEGAL_DATA_ADDRESS = 0x02, ///< Адрес данных, указанный в запросе, недоступен + ILLEGAL_DATA_VALUE = 0x03, ///< Значение, содержащееся в поле данных запроса, является недопустимой величиной + SLAVE_DEVICE_FAILURE = 0x04, ///< Невосстанавливаемая ошибка имела место, пока ведомое устройство пыталось выполнить затребованное действие +// ACKNOWLEDGE = 0x05, ///< idk +// SLAVE_DEVICE_BUSY = 0x06, ///< idk +// MEMORY_PARITY_ERROR = 0x08, ///< idk +}MB_ExceptionTypeDef; + +#define ERR_VALUES_START 0x80U ///< from this value starts error func codes +/** @brief Structure for modbus func codes */ +typedef enum //MB_FunctonTypeDef +{ + /* COMMANDS */ + // reading + MB_R_COILS = 0x01, ///< Чтение битовых ячеек + MB_R_DISC_IN = 0x02, ///< Чтение дискретных входов +#ifndef MODBUS_SWITCH_COMMAND_R_IN_REGS_AND_R_HOLD_REGS + MB_R_HOLD_REGS = 0x03, ///< Чтение входных регистров + MB_R_IN_REGS = 0x04, ///< Чтение регистров хранения +#else + MB_R_HOLD_REGS = 0x04, ///< Чтение входных регистров + MB_R_IN_REGS = 0x03, ///< Чтение регистров хранения +#endif + + // writting + MB_W_COIL = 0x05, ///< Запись битовой ячейки + MB_W_HOLD_REG = 0x06, ///< Запись одиночного регистра + MB_W_COILS = 0x0F, ///< Запись нескольких битовых ячеек + MB_W_HOLD_REGS = 0x10, ///< Запись нескольких регистров + + MB_R_DEVICE_INFO = 0x2B, ///< Чтения информации об устройстве + + /* ERRORS */ + // error reading + MB_ERR_R_COILS = MB_R_COILS + ERR_VALUES_START, ///< Ошибка чтения битовых ячеек + MB_ERR_R_DISC_IN = MB_R_DISC_IN + ERR_VALUES_START, ///< Ошибка чтения дискретных входов + MB_ERR_R_IN_REGS = MB_R_IN_REGS + ERR_VALUES_START, ///< Ошибка чтения регистров хранения + MB_ERR_R_HOLD_REGS = MB_R_HOLD_REGS + ERR_VALUES_START, ///< Ошибка чтения входных регистров + + // error writting + MB_ERR_W_COIL = MB_W_COIL + ERR_VALUES_START, ///< Ошибка записи битовой ячейки + MB_ERR_W_HOLD_REG = MB_W_HOLD_REG + ERR_VALUES_START, ///< Ошибка записи одиночного регистра + MB_ERR_W_COILS = MB_W_COILS + ERR_VALUES_START, ///< Ошибка записи нескольких битовых ячеек + MB_ERR_W_HOLD_REGS = MB_W_HOLD_REGS + ERR_VALUES_START, ///< Ошибка записи нескольких регистров +}MB_FunctonTypeDef; + +/** @brief Structure for MEI func codes */ +typedef enum //MB_FunctonTypeDef +{ + MEI_DEVICE_IDENTIFICATION = 0x0E, +}MB_MEITypeDef; + +/** @brief Structure for MEI func codes */ +typedef enum //MB_FunctonTypeDef +{ + MB_BASIC_IDENTIFICATION = 0x01, + MB_REGULAR_IDENTIFICATION = 0x02, + + + /* ERRORS */ + MB_ERR_BASIC_IDENTIFICATION = MB_BASIC_IDENTIFICATION + ERR_VALUES_START, + MB_ERR_REGULAR_IDENTIFICATION = MB_REGULAR_IDENTIFICATION + ERR_VALUES_START, +}MB_ConformityTypeDef; + +/** @brief Structure for decive identification message type */ +typedef struct +{ + MB_MEITypeDef MEI_Type; ///< MEI Type assigned number for Device Identification Interface + MB_ConformityTypeDef ReadDevId; + MB_ConformityTypeDef Conformity; + uint8_t MoreFollows; ///< in this library always a zero + uint8_t NextObjId; + uint8_t NumbOfObj; +}MB_DevIdMsgTypeDef; + +/** @brief Structure for modbus messsage */ +typedef struct // RS_MsgTypeDef +{ + uint8_t MbAddr; ///< Modbus Slave Address + MB_FunctonTypeDef Func_Code; ///< Modbus Function Code + MB_DevIdMsgTypeDef DevId; ///< Read Device Identification Header struct + uint16_t Addr; ///< Modbus Address of data + uint16_t Qnt; ///< Quantity of modbus data + uint8_t ByteCnt; ///< Quantity of bytes of data in message to transmit/receive + + uint16_t DATA[DATA_SIZE]; ///< Modbus Data + MB_ExceptionTypeDef Except_Code; ///< Exception Code for the command + + uint16_t MB_CRC; ///< Modbus CRC +}RS_MsgTypeDef; +//-------------------------------------------------- +extern RS_MsgTypeDef MODBUS_MSG; +/////////////////////---MODBUS USER SETTINGS---////////////////////// + +/** MODBUS_SETTINGS + * @} + */ + + +///////////////////////////////////////////////////////////////////// +////////////////////---MODBUS MESSAGE DEFINES---///////////////////// +/** + * @addtogroup MODBUS_MESSAGE_DEFINES + * @ingroup MODBUS + * @brief Some defines for modbus + @{ + */ +/** @brief Structure for coils operation */ +typedef enum +{ + SET_COIL, + RESET_COIL, + TOOGLE_COIL, +}MB_CoilsOpTypeDef; + +//-------------------------------------------------- + +/** + * @brief Macros to set pointer to 16-bit array + * @param _arr_ - массив регистров (16-бит). + */ +#define MB_Set_Arr16_Ptr(_arr_) ((uint16_t*)(&(_arr_))) +/** + * @brief Macros to set pointer to register + * @param _parr_ - массив регистров. + * @param _addr_ - Номер регистра (его индекс) от начала массива _arr_. + */ +#define MB_Set_Register_Ptr(_parr_, _addr_) ((uint16_t *)(_parr_)+(_addr_)) + +/** + * @brief Macros to set pointer to a certain register that contains certain coil + * @param _parr_ - массив коилов. + * @param _coil_ - Номер коила от начала массива _arr_. + * @note Используется вместе с @ref MB_Set_Coil_Mask + @verbatim Пояснение выражений + (_coil_/16) - get index (address shift) of register that contain certain coil + Visual explanation: 30th coil in coils registers array + xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxCx + |register[0]----| |register[1]----| + |skip this------| |get this-------| + |shift to 14 bit| + @endverbatim + */ +#define MB_Set_Coil_Reg_Ptr(_parr_, _coil_) ((uint16_t *)(_parr_)+((_coil_)/16)) +/** + * @brief Macros to set mask to a certain bit in coils register + * @param _coil_ - Номер коила от начала массива _arr_. + * @note Используется вместе с @ref MB_Set_Coil_Reg_Ptr + @verbatim Пояснение выражений + (16*(_coil_/16) - how many coils we need to skip. e.g. (16*30/16) - skip 16 coils from first register + _coil_-(16*(_coil_/16)) - shift to certain coil in certain register + e.g. Coil(30) gets in register[1] (30/16 = 1) coil №14 (30 - (16*30/16) = 30 - 16 = 14) + + Visual explanation: 30th coil in coils registers array + xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxCx + |register[0]----| |register[1]----| + |skip this------| |get this-------| + |shift to 14 bit| + @endverbatim + */ +#define MB_Set_Coil_Mask(_coil_) (1 << ( _coil_ - (16*((_coil_)/16)) )) + +/** + * @brief Read Coil at its local address. + * @param _parr_ - массив коилов. + * @param _coil_ - Номер коила от начала массива _arr_. + * @return uint16_t - Возвращает запрошенный коил на 0м бите. + * + * @details Позволяет обратиться к коилу по адресу относительно _arr_. + */ +#define MB_Read_Coil_Local(_parr_, _coil_) (( *MB_Set_Coil_Reg_Ptr(_parr_, _coil_) & MB_Set_Coil_Mask(_coil_) ) >> (_coil_)) +/** + * @brief Set Coil at its local address. + * @param _parr_ - указатель на массив коилов. + * @param _coil_ - Номер коила от начала массива _arr_. + * + * @details Позволяет обратиться к коилу по адресу относительно _arr_. + */ +#define MB_Set_Coil_Local(_parr_, _coil_) *MB_Set_Coil_Reg_Ptr(_parr_, _coil_) |= MB_Set_Coil_Mask(_coil_) +/** + * @brief Reset Coil at its local address. + * @param _parr_ - указатель на массив коилов. + * @param _coil_ - Номер коила от начала массива _arr_. + * + * @details Позволяет обратиться к коилу по адресу относительно _arr_. + */ +#define MB_Reset_Coil_Local(_parr_, _coil_) *MB_Set_Coil_Reg_Ptr(_parr_, _coil_) &= ~(MB_Set_Coil_Mask(_coil_)) +/** + * @brief Set Coil at its local address. + * @param _parr_ - указатель на массив коилов. + * @param _coil_ - Номер коила от начала массива _arr_. + * + * @details Позволяет обратиться к коилу по адресу относительно _arr_. + */ +#define MB_Toogle_Coil_Local(_parr_, _coil_) *MB_Set_Coil_Reg_Ptr(_parr_, _coil_) ^= MB_Set_Coil_Mask(_coil_) +//-------------------------------------------------- + + +//------------------OTHER DEFINES------------------- +#define RegisterType_Holding 0 +#define RegisterType_Input 1 +#define RegisterType_Discrete 2 +// create hadnles and settings for uart, tim, rs with _modbus_ name +//-------------------------------------------------- + +#ifndef Divide_Up +/** + * @brief Calc dividing including remainder + * @param _val_ - делимое. + * @param _div_ - делитель. + * @details Если результат деления без остатка: он возвращается как есть + Если с остатком - округляется вверх + */ +//#define Divide_Up(_val_, _div_) (((_val_)%(_div_))? (_val_)/(_div_)+1 : (_val_)/_div_) /* через тернарный оператор */ +#define Divide_Up(_val_, _div_) ((_val_ - 1) / _div_) + 1 /* через мат выражение */ +#endif + +#ifndef ByteSwap16 +/** + * @brief Swap between Little Endian and Big Endian + * @param v - Переменная для свапа. + * @return v (new) - Свапнутая переменная. + * @details Переключения между двумя типами хранения слова: HI-LO байты и LO-HI байты. + */ +#define ByteSwap16(v) (((v&0xFF00) >> (8)) | ((v&0x00FF) << (8))) +#endif +/** GENERAL_MODBUS_STUFF + * @} + */ +////////////////////---MODBUS MESSAGE DEFINES---///////////////////// + + + +///////////////////////////////////////////////////////////////////// +/////////////////////////---FUNCTIONS---///////////////////////////// +/** + * @addtogroup MODBUS_FUNCTIONS + * @ingroup MODBUS + * @brief Function for controling modbus communication + */ + +//----------------FUNCTIONS FOR USER---------------- +/** + * @addtogroup MODBUS_DATA_ACCESS_FUNCTIONS + * @ingroup MODBUS_FUNCTIONS + * @brief Function for user use + @{ + */ +/* First set up of MODBUS */ +void MODBUS_FirstInit(void); +/* Set or Reset Coil at its global address */ +MB_ExceptionTypeDef MB_Write_Coil_Global(uint16_t Addr, MB_CoilsOpTypeDef WriteVal); +/* Read Coil at its global address */ +uint16_t MB_Read_Coil_Global(uint16_t Addr, MB_ExceptionTypeDef *Exception); + +/** MODBUS_DATA_ACCESS_FUNCTIONS + * @} + */ + +//---------PROCESS MODBUS COMMAND FUNCTIONS--------- +/** + * @addtogroup MODBUS_CMD_PROCESS_FUNCTIONS + * @ingroup MODBUS_FUNCTIONS + * @brief Function process commands + @{ + */ +/* Check is address valid for certain array */ +MB_ExceptionTypeDef MB_Check_Address_For_Arr(uint16_t Addr, uint16_t Qnt, uint16_t R_ARR_ADDR, uint16_t R_ARR_NUMB); +/* Define Address Origin for Input/Holding Registers */ +MB_ExceptionTypeDef MB_DefineRegistersAddress(uint16_t **pRegs, uint16_t Addr, uint16_t Qnt, uint8_t RegisterType); +/* Define Address Origin for coils */ +MB_ExceptionTypeDef MB_DefineCoilsAddress(uint16_t **pCoils, uint16_t Addr, uint16_t Qnt, uint16_t *start_shift, uint8_t WriteFlag); +/* Proccess command Read Coils (01 - 0x01) */ +uint8_t MB_Read_Coils(RS_MsgTypeDef *modbus_msg); +/* Proccess command Read Holding Registers (03 - 0x03) */ +uint8_t MB_Read_Hold_Regs(RS_MsgTypeDef *modbus_msg); +/* Proccess command Read Input Registers (04 - 0x04) */ +uint8_t MB_Read_Input_Regs(RS_MsgTypeDef *modbus_msg); +/* Proccess command Write Single Coils (05 - 0x05) */ +uint8_t MB_Write_Single_Coil(RS_MsgTypeDef *modbus_msg); +/* Proccess command Write Multiple Coils (15 - 0x0F) */ +uint8_t MB_Write_Miltuple_Coils(RS_MsgTypeDef *modbus_msg); +/* Proccess command Write Multiple Register (16 - 0x10) */ +uint8_t MB_Write_Miltuple_Regs(RS_MsgTypeDef *modbus_msg); + +/** MODBUS_DATA_ACCESS_FUNCTIONS + * @} + */ +/////////////////////////---FUNCTIONS---///////////////////////////// + + + +///////////////////////////////////////////////////////////////////// +/////////////////////////---CALC DEFINES---////////////////////////// + + +// TRACES DEFINES +#ifndef Trace_MB_UART_Enter +#define Trace_MB_UART_Enter() +#endif //Trace_MB_UART_Enter + +#ifndef Trace_MB_UART_Exit +#define Trace_MB_UART_Exit() +#endif //Trace_MB_UART_Exit + +#ifndef Trace_MB_TIM_Enter +#define Trace_MB_TIM_Enter() +#endif //Trace_MB_TIM_Enter + +#ifndef Trace_MB_TIM_Exit +#define Trace_MB_TIM_Exit() +#endif //Trace_MB_TIM_Exit + +#endif //__MODBUS_H_ diff --git a/Core/Modbus/modbus_config.h b/Core/Modbus/modbus_config.h new file mode 100644 index 0000000..f8bb548 --- /dev/null +++ b/Core/Modbus/modbus_config.h @@ -0,0 +1,44 @@ +/** +************************************************************************** +* @file interface_config.h +* @brief Конфигурация для модбаса +*************************************************************************/ +#ifndef _MODBUS_CONFIG_H_ +#define _MODBUS_CONFIG_H_ +#include "stm32f1xx_hal.h" + +// MODBUS PARAMS +#define MODBUS_DEVICE_ID 1 ///< девайс текущего устройства +#define MODBUS_TIMEOUT 1000*10 ///< максимальнйы тайтаут MB в тиках таймера + +// STRING OBJECTS MODBUS +#define MODBUS_VENDOR_NAME "NIO-12" +#define MODBUS_PRODUCT_CODE "" +#define MODBUS_REVISION "Ver. 1.0" +#define MODBUS_VENDOR_URL "" +#define MODBUS_PRODUCT_NAME "" +#define MODBUS_MODEL_NAME "STM32F103" +#define MODBUS_USER_APPLICATION_NAME "" + +// PERIPH FUNCTIONS AND HANDLERS +#define RS_UART_Init MX_USART1_UART_Init //инициализация uart +#define RS_UART_DeInit HAL_UART_MspDeInit //деинициализация uart +#define RS_TIM_Init MX_TIM3_Init //инициализация таймера +#define RS_TIM_DeInit HAL_TIM_Base_MspDeInit//деинициализация таймера +#define rs_huart huart1 //используемый uart +#define rs_htim htim3 //используемый таймера + + +/** + * @brief Поменять комманды 0x03 и 0x04 местами (для LabView терминалки от двигателей) + * @details Терминалка от двигателей использует для чтения регистров комманду R_HOLD_REGS вместо R_IN_REGS + * Поэтому чтобы считывать Input Regs - надо поменять их местами. + */ +//#define MODBUS_SWITCH_COMMAND_R_IN_REGS_AND_R_HOLD_REGS + +///////////////////////////////////////////////////////////////////// +/////////////////////////---CALC DEFINES---////////////////////////// + + + +#endif //_MODBUS_CONFIG_H_ \ No newline at end of file diff --git a/Core/Modbus/modbus_data.h b/Core/Modbus/modbus_data.h new file mode 100644 index 0000000..59beb34 --- /dev/null +++ b/Core/Modbus/modbus_data.h @@ -0,0 +1,192 @@ +/** +************************************************************************** +* @file modbus_data.h +* @brief Заголовочный файл с описанием даты MODBUS. +* @details Данный файл необходимо подключается в rs_message.h. После rs_message.h +* подключается к основному проекту. +* +* @defgroup MODBUS_DATA +* @ingroup MODBUS +* @brief Modbus data description +* +*************************************************************************/ + +#ifndef _MODBUS_DATA_H_ +#define _MODBUS_DATA_H_ + +#include "stdint.h" +//--------------DEFINES FOR REGISTERS--------------- +// DEFINES FOR ARRAYS +/** + * @addtogroup MODBUS_DATA_RERISTERS_DEFINES + * @ingroup MODBUS_DATA + * @brief Defines for registers + Структура дефайна адресов + @verbatim + Для массивов регистров: + R__ADDR - модбас адресс первого регистра в массиве + R__QNT - количество регистров в массиве + + При добавлении новых массивов регистров, необходимо их добавить в функцию MB_DefineRegistersAddress + + if(MB_Check_Address_For_Arr(Addr, Qnt, R__ADDR, R__QNT) == NO_ERRORS) + { + *pRegs = MB_Set_Register_Ptr(&, Addr); // начало регистров хранения/входных + } + @endverbatim + * @{ + */ + + +/** + * @brief Регистры хранения + */ +typedef struct //MB_DataInRegsTypeDef +{ + uint16_t RESERVED; +}MB_DataInRegsTypeDef; + + +/** + * @brief Входные регистры + */ +typedef struct //MB_DataInRegsTypeDef +{ // Адрес: + uint16_t CAN_BITRATE_KBPS; // 0 + uint16_t CAN_PERIOD; // 1 + + uint16_t CAN_ID_HI; // 2 + uint16_t CAN_ID_LO; // 3 + uint16_t CAN_DLC; // 4 + + uint16_t reserved[12]; // ... + + uint16_t CAN_DATA_0; // 16 + uint16_t CAN_DATA_1; // 17 + uint16_t CAN_DATA_2; // 18 + uint16_t CAN_DATA_3; // 19 + uint16_t CAN_DATA_4; // 20 + uint16_t CAN_DATA_5; // 21 + uint16_t CAN_DATA_6; // 22 + uint16_t CAN_DATA_7; // 23 +}MB_DataHoldRegsTypeDef; + + +// DEFINES FOR INPUT REGISTERS ARRAYS +#define R_INPUT_ADDR 0 +#define R_INPUT_QNT 1 + +// DEFINES FOR HOLDING REGISTERS ARRAYS +#define R_HOLDING_ADDR 0 +#define R_HOLDING_QNT 23 + + +/** MODBUS_DATA_RERISTERS_DEFINES + * @} + */ + +//----------------DEFINES FOR COILS----------------- +/** + * @addtogroup MODBUS_DATA_COILS_DEFINES + * @ingroup MODBUS_DATA + * @brief Defines for coils + @verbatim + Структура дефайна + Для массивов коилов: + C__ADDR - модбас адресс первого коила в массиве + C__QNT - количество коилов в массиве (минимум 16) + + При добавлении новых массивов коилов, необходимо их добавить в функцию MB_DefineCoilsAddress + + if(MB_Check_Address_For_Arr(Addr, Qnt, C__ADDR, C__QNT) == NO_ERRORS) + { + *pCoils = MB_Set_Coil_Reg_Ptr(&, Addr); + } + + @endverbatim + * @{ + */ + + + +/** + * @brief Коилы + * @details Желательно с помощью reserved делать стркутуру кратной 16-битам + */ +typedef struct //MB_DataCoilsTypeDef +{ // Адрес: + unsigned START_POLLING:1; // 0 + unsigned START_SINGLE_FRAME:1; // 1 + + unsigned HEADER_IDE:1; // 2 + unsigned HEADER_RTR:1; // 3 + + unsigned reserved:13; // ... + + unsigned FLIP_SRS:1; // 16 + unsigned FLIP_IDE:1; // 17 + unsigned FLIP_RTR:1; // 18 + unsigned FLIP_R1:1; // 19 + unsigned FLIP_R0:1; // 20 + unsigned FLIP_MSGID_BIT:1; // 21 + unsigned FLIP_DATA_BIT:1; // 22 + unsigned FLIP_CRC_BIT:1; // 23 + unsigned DISABLE_STUFF_BITS:1; // 24 +}MB_DataCoilsTypeDef; + +// DEFINES FOR COIL ARRAYS +#define C_CONTROL_ADDR 0 +#define C_CONTROL_QNT 24 + +/** MODBUS_DATA_COILS_DEFINES + * @} + */ + + +//-----------MODBUS DEVICE DATA SETTING------------- +// MODBUS DATA STRUCTTURE +/** + * @brief Структура со всеми регистрами и коилами модбас + * @ingroup MODBUS_DATA + */ +typedef struct // tester modbus data +{ + MB_DataInRegsTypeDef InRegs; ///< Modbus input registers @ref MB_DataInRegsTypeDef + + MB_DataCoilsTypeDef Coils; ///< Modbus coils @ref MB_DataCoilsTypeDef + + MB_DataHoldRegsTypeDef HoldRegs; ///< Modbus holding registers @ref MB_DataHoldRegsTypeDef +}MB_DataStructureTypeDef; +extern MB_DataStructureTypeDef MB_DATA; + + +/** + * @brief Структура для объекта Modbus + * @ingroup MODBUS_DATA + */ +typedef struct +{ + unsigned length; + char *name; +}MB_DeviceObjectTypeDef; +/** + * @brief Структура для объектов Modbus + * @ingroup MODBUS_DATA + */ +typedef struct +{ + MB_DeviceObjectTypeDef VendorName; + MB_DeviceObjectTypeDef ProductCode; + MB_DeviceObjectTypeDef Revision; + MB_DeviceObjectTypeDef VendorUrl; + MB_DeviceObjectTypeDef ProductName; + MB_DeviceObjectTypeDef ModelName; + MB_DeviceObjectTypeDef UserApplicationName; +}MB_DeviceIdentificationTypeDef; +void MB_DevoceInentificationInit(void); + + +#endif //_MODBUS_DATA_H_ + +///////////////////////////////////////////////////////////// +///////////////////////TEMP/OUTDATE/OTHER//////////////////// \ No newline at end of file diff --git a/Core/Modbus/rs_message.c b/Core/Modbus/rs_message.c new file mode 100644 index 0000000..9fbeb14 --- /dev/null +++ b/Core/Modbus/rs_message.c @@ -0,0 +1,550 @@ +/** +************************************************************************** +* @file rs_message.c +* @brief Модуль для реализации протоколов по RS/UART. +**************************************************************************\ +* @details +* Данный модуль реализует основные функции для приема и передачи сообщений +* по протоколу RS через UART в режиме прерываний. Реализована обработка +* приема и передачи данных, управление состояниями RS, а также функции для +* инициализации и управления периферией. +* +* Реализованы следующие функции: +* - RS_Receive_IT() — запуск приема данных в прерывании по UART. +* - RS_Transmit_IT() — запуск передачи данных в прерывании по UART. +* - RS_Init() — инициализация структуры RS и привязка периферии. +* - RS_ReInit_UART() — переинициализация UART и перезапуск приема данных. +* - RS_Abort() — остановка работы RS/UART с очисткой флагов и структур. +* - RS_Handle_Receive_Start() — обработка старта приема данных по RS. +* +* В модуле также определен буфер RS_Buffer[] для хранения принимаемых/передаваемых данных. +* +* @note +* Для корректной работы модуля предполагается использование соответствующих +* обработчиков прерываний UART и таймера (RS_UART_Handler(), RS_TIM_Handler()), +* которые надо вызывать с обработчиках используемой периферии + +@verbatim +//-------------------Функции-------------------// +Functions: users + - RS_Parse_Message/RS_Collect_Message Заполнение структуры сообщения и буфера + - RS_Response Ответ на сообщение + - RS_Define_Size_of_RX_Message Определение размера принимаемых данных + +Functions: general + - RS_Receive_IT Ожидание комманды и ответ на неё + - RS_Transmit_IT Отправление комманды и ожидание ответа + - RS_Init Инициализация переферии и структуры для RS + - RS_ReInit_UART Реинициализация UART для RS + - RS_Abort Отмена приема/передачи по ЮАРТ + - RS_Init Инициализация периферии и modbus handler + +Functions: callback/handler + - RS_Handle_Receive_Start Функция для запуска приема или остановки RS + - RS_Handle_Transmit_Start Функция для запуска передачи или остановки RS + + - RS_UART_RxCpltCallback Коллбек при окончании приема или передачи + RS_UART_TxCpltCallback + + - RS_UART_Handler Обработчик прерывания для UART + - RS_TIM_Handler Обработчик прерывания для TIM + +@endverbatim +*************************************************************************/ +#include "rs_message.h" + +uint8_t RS_Buffer[MSG_SIZE_MAX]; // uart buffer + +extern void RS_UART_Init(void); +extern void RS_UART_DeInit(UART_HandleTypeDef *huart); +extern void RS_TIM_Init(void); +extern void RS_TIM_DeInit(TIM_HandleTypeDef *htim); + +//------------------------------------------------------------------- +//-------------------------GENERAL FUNCTIONS------------------------- +/** + * @brief Start receive IT. + * @param hRS - указатель на хендлер RS. + * @param RS_msg - указатель на структуру сообщения. + * @return RS_RES - статус о состоянии RS после инициализации приема. + */ +RS_StatusTypeDef RS_Receive_IT(RS_HandleTypeDef *hRS, RS_MsgTypeDef *RS_msg) +{ + RS_StatusTypeDef RS_RES = 0; + HAL_StatusTypeDef uart_res = 0; + + //-------------CHECK RS LINE---------------- + // check that receive isnt busy + if( RS_Is_RX_Busy(hRS) ) // if tx busy - return busy status + return RS_BUSY; + + //-----------INITIALIZE RECEIVE------------- + // if all OK: start receiving + RS_EnableReceive(); + RS_Set_Busy(hRS); // set RS busy + RS_Set_RX_Flags(hRS); // initialize flags for receive + hRS->pMessagePtr = RS_msg; // set pointer to message structire for filling it from UARTHandler fucntions + + // start receiving + uart_res = HAL_UART_Receive_IT(hRS->huart, hRS->pBufferPtr, RX_FIRST_PART_SIZE); // receive until ByteCnt+1 byte, + // then in Callback restart receive for rest bytes + + // if receive isnt started - abort RS + if(uart_res != HAL_OK) + { + RS_RES = RS_Abort(hRS, ABORT_RS); + printf_rs_err("\n%d: Error RS: Failed to start RS receiving...", uwTick); + } + else + { + RS_RES = RS_OK; + printf_rs("\n%d: RS: Start Receiving...", uwTick); + } + + hRS->RS_STATUS = RS_RES; + return RS_RES; // returns result of receive init +} + +/** + * @brief Start transmit IT. + * @param hRS - указатель на хендлер RS. + * @param RS_msg - указатель на структуру сообщения. + * @return RS_RES - статус о состоянии RS после инициализации передачи. + */ +RS_StatusTypeDef RS_Transmit_IT(RS_HandleTypeDef *hRS, RS_MsgTypeDef *RS_msg) +{ + RS_StatusTypeDef RS_RES = 0; + HAL_StatusTypeDef uart_res = 0; + + //-------------CHECK RS LINE---------------- + // check that transmit isnt busy + if( RS_Is_TX_Busy(hRS) ) // if tx busy - return busy status + return RS_BUSY; + // check receive line + + + //------------COLLECT MESSAGE--------------- + RS_RES = RS_Collect_Message(hRS, RS_msg, hRS->pBufferPtr); + if (RS_RES != RS_OK) // if message isnt collect - stop RS and return error in RS_RES + {// need collect message status, so doesnt write abort to RS_RES + RS_Abort(hRS, ABORT_RS); + RS_Handle_Receive_Start(hRS, hRS->pMessagePtr); // restart receive + } + else // if collect successful + { + + //----------INITIALIZE TRANSMIT------------- + RS_EnableTransmit(); +// for(int i = 0; i < hRS->sRS_Timeout; i++); + + RS_Set_Busy(hRS); // set RS busy + RS_Set_TX_Flags(hRS); // initialize flags for transmit IT + hRS->pMessagePtr = RS_msg; // set pointer for filling given structure from UARTHandler fucntion + + // if all OK: start transmitting + uart_res = HAL_UART_Transmit_IT(hRS->huart, hRS->pBufferPtr, hRS->RS_Message_Size); + // if transmit isnt started - abort RS + if(uart_res != HAL_OK) + { + RS_RES = RS_Abort(hRS, ABORT_RS); + printf_rs_err("\n%d: Error RS: Failed to start RS transmitting...", uwTick); + } + else + { + RS_RES = RS_OK; + printf_rs("\n%d: RS: Start Transmitting...", uwTick); + } + } + + + hRS->RS_STATUS = RS_RES; + return RS_RES; // returns result of transmit init +} + +/** + * @brief Initialize UART and handle RS stucture. + * @param hRS - указатель на хендлер RS. + * @param suart - указатель на структуру с настройками UART. + * @param stim - указатель на структуру с настройками таймера. + * @param pRS_BufferPtr - указатель на буффер для приема-передачи по UART. Если он NULL, то поставиться библиотечный буфер. + * @return RS_RES - статус о состоянии RS после инициализации. + * @note Инициализация перефирии и структуры для приема-передачи по RS. + */ +RS_StatusTypeDef RS_Init(RS_HandleTypeDef *hRS, UART_HandleTypeDef *huart, TIM_HandleTypeDef *htim, uint8_t *pRS_BufferPtr) +{ + // check that hRS is defined + if (hRS == NULL) + return RS_ERR; + // check that huart is defined + if (huart == NULL) + return RS_ERR; + // init uart + +// RS_UART_Init(); + hRS->huart = huart; + +// RS_TIM_Init(); + hRS->htim = htim; + + if (hRS->sRS_RX_Size_Mode == NULL) + return RS_ERR; + + // check that buffer is defined + if (hRS->pBufferPtr == NULL) + { + hRS->pBufferPtr = RS_Buffer; // if no - set default + } + else + hRS->pBufferPtr = pRS_BufferPtr; // if yes - set by user + + return RS_OK; +} + +/** + * @brief ReInitialize UART and RS receive. + * @param hRS - указатель на хендлер RS. + * @param suart - указатель на структуру с настройками UART. + * @return RS_RES - статус о состоянии RS после инициализации. + * @note Реинициализация UART и приема по RS. + */ +HAL_StatusTypeDef RS_ReInit_UART(RS_HandleTypeDef *hRS, UART_HandleTypeDef *huart) +{ + HAL_StatusTypeDef RS_RES; + hRS->f.ReInit_UART = 0; + +// // check is settings are valid +// if(Check_UART_Init_Struct(suart) != HAL_OK) +// return HAL_ERROR; + + RS_Abort(hRS, ABORT_RS); + + RS_UART_DeInit(huart); + + RS_UART_Init(); + + + RS_Receive_IT(hRS, hRS->pMessagePtr); + return RS_RES; +} + + +/** + * @brief Abort RS/UART. + * @param hRS - указатель на хендлер RS. + * @param AbortMode - выбор, что надо отменить. + - ABORT_TX: Отмена передачи по ЮАРТ, с очищением флагов TX, + - ABORT_RX: Отмена приема по ЮАРТ, с очищением флагов RX, + - ABORT_RX_TX: Отмена приема и передачи по ЮАРТ, + - ABORT_RS: Отмена приема-передачи RS, с очищением всей структуры. + * @return RS_RES - статус о состоянии RS после аборта. + * @note Отмена работы UART в целом или отмена приема/передачи RS. + Также очищается хендл hRS. + */ +RS_StatusTypeDef RS_Abort(RS_HandleTypeDef *hRS, RS_AbortTypeDef AbortMode) +{ + HAL_StatusTypeDef uart_res = 0; + hRS->htim->Instance->CNT = 0; + __HAL_TIM_CLEAR_IT(hRS->htim, TIM_IT_UPDATE); + + if(hRS->sRS_Timeout) // if timeout setted + HAL_TIM_Base_Stop_IT(hRS->htim); // stop timeout + + if((AbortMode&ABORT_RS) == 0x00) + { + if((AbortMode&ABORT_RX) == ABORT_RX) + { + uart_res = HAL_UART_AbortReceive(hRS->huart); // abort receive + RS_Reset_RX_Flags(hRS); + } + + if((AbortMode&ABORT_TX) == ABORT_TX) + { + uart_res = HAL_UART_AbortTransmit(hRS->huart); // abort transmit + RS_Reset_TX_Flags(hRS); + } + } + else + { + uart_res = HAL_UART_Abort(hRS->huart); + RS_Clear_All(hRS); + } + hRS->RS_STATUS = RS_ABORTED; + return RS_ABORTED; +} + + +//-------------------------GENERAL FUNCTIONS------------------------- +//------------------------------------------------------------------- + + + +//------------------------------------------------------------------- +//--------------------CALLBACK/HANDLER FUNCTIONS--------------------- +/** + * @brief Handle for starting receive. + * @param hRS - указатель на хендлер RS. + * @param RS_msg - указатель на структуру сообщения. + * @return RS_RES - статус о состоянии RS после инициализации приема или окончания общения. + * @note Определяет начинать прием команды/ответа или нет. + */ +RS_StatusTypeDef RS_Handle_Receive_Start(RS_HandleTypeDef *hRS, RS_MsgTypeDef *RS_msg) +{ + RS_StatusTypeDef RS_RES = 0; + + switch(hRS->sRS_Mode) + { + case SLAVE_ALWAYS_WAIT: // in slave mode with permanent waiting + RS_RES = RS_Receive_IT(hRS, RS_msg); break; // start receiving again + case SLAVE_TIMEOUT_WAIT: // in slave mode with timeout waiting (start receiving cmd by request) + RS_Set_Free(hRS); RS_RES = RS_OK; break; // end RS communication (set RS unbusy) + } + + if(RS_RES != RS_OK) + { + } + + return RS_RES; +} +/** + * @brief Handle for starting transmit. + * @param hRS - указатель на хендлер RS. + * @param RS_msg - указатель на структуру сообщения. + * @return RS_RES - статус о состоянии RS после инициализации передачи. + * @note Определяет отвечать ли на команду или нет. + */ +RS_StatusTypeDef RS_Handle_Transmit_Start(RS_HandleTypeDef *hRS, RS_MsgTypeDef *RS_msg) +{ + RS_StatusTypeDef RS_RES = 0; + + switch(hRS->sRS_Mode) + { + case SLAVE_ALWAYS_WAIT: // in slave mode always response + case SLAVE_TIMEOUT_WAIT: // transmit response + RS_RES = RS_Transmit_IT(hRS, RS_msg); break; + } + if(RS_RES != RS_OK) + { + } + + return RS_RES; +} + +/** + * @brief UART RX Callback: define behaviour after receiving parts of message. + * @param hRS - указатель на хендлер RS. + * @return RS_RES - статус о состоянии RS после обработки приема. + * @note Контролирует прием сообщения: определяет размер принимаемой посылки и обрабатывает его. + */ +RS_StatusTypeDef RS_UART_RxCpltCallback(RS_HandleTypeDef *hRS) +{ + RS_StatusTypeDef RS_RES = 0; + HAL_StatusTypeDef uart_res = 0; + + // if we had received bytes before ByteCnt + if((hRS->sRS_RX_Size_Mode == RS_RX_Size_NotConst) && (hRS->f.RX_Half == 0)) // if data size isnt constant and its first half, and + { // First receive part of message, then define size of rest of message, and start receive it + hRS->f.RX_Half = 1; + //---------------FIND DATA SIZE----------------- + uint32_t NuRS_of_Rest_Bytes = 0xFFFF; + RS_RES = RS_Define_Size_of_RX_Message(hRS, &NuRS_of_Rest_Bytes); + + + // if we need to skip this message - restart receive + if(RS_RES == RS_SKIP || NuRS_of_Rest_Bytes == 0xFFFF) + { + RS_Abort(hRS, ABORT_RX); + RS_RES = RS_Handle_Receive_Start(hRS, hRS->pMessagePtr); + return RS_RES; + } + + // if there is no bytes to receive + if(NuRS_of_Rest_Bytes == 0) + { + hRS->f.RX_Half = 0; + + //---------PROCESS DATA & ENDING RECEIVING-------- + RS_Set_RX_End(hRS); + + if(hRS->sRS_Timeout) // if timeout setted + HAL_TIM_Base_Stop_IT(hRS->htim); // stop timeout + + // parse received data + RS_RES = RS_Parse_Message(hRS, hRS->pMessagePtr, hRS->pBufferPtr); // parse message + + // RESPONSE + RS_RES = RS_Response(hRS, hRS->pMessagePtr); + return RS_RES; + } + + + //-------------START UART RECEIVE--------------- + uart_res = HAL_UART_Receive_IT(hRS->huart, (hRS->pBufferPtr + RX_FIRST_PART_SIZE), NuRS_of_Rest_Bytes); + + if(uart_res != HAL_OK) + {// need uart status, so doesnt write abort to RS_RES + RS_RES = RS_Abort(hRS, ABORT_RS); + } + else + RS_RES = RS_OK; + } + else // if we had received whole message + { + hRS->f.RX_Half = 0; + + //---------PROCESS DATA & ENDING RECEIVING-------- + RS_Set_RX_End(hRS); + + if(hRS->sRS_Timeout) // if timeout setted + HAL_TIM_Base_Stop_IT(hRS->htim); // stop timeout + + // parse received data + RS_RES = RS_Parse_Message(hRS, hRS->pMessagePtr, hRS->pBufferPtr); // parse message + + // RESPONSE + RS_RES = RS_Response(hRS, hRS->pMessagePtr); + } + + return RS_RES; +} + + +/** + * @brief UART TX Callback: define behaviour after transmiting message. + * @param hRS - указатель на хендлер RS. + * @return RS_RES - статус о состоянии RS после обработки приема. + * @note Определяет поведение RS после передачи сообщения. + */ +RS_StatusTypeDef RS_UART_TxCpltCallback(RS_HandleTypeDef *hRS) +{ + RS_StatusTypeDef RS_RES = RS_OK; + HAL_StatusTypeDef uart_res = 0; + + //--------------ENDING TRANSMITTING------------- + RS_Set_TX_End(hRS); + RS_EnableReceive(); +// for(int i = 0; i < hRS->sRS_Timeout; i++); + + //-----------START RECEIVING or END RS---------- + RS_RES = RS_Handle_Receive_Start(hRS, hRS->pMessagePtr); + + return RS_RES; +} + +/** + * @brief Handler for UART. + * @param hRS - указатель на хендлер RS. + * @note Обрабатывает ошибки если есть и вызывает RS Коллбеки. + * Добавить вызов этой функции в UARTx_IRQHandler() после HAL_UART_IRQHandler(). + */ +void RS_UART_Handler(RS_HandleTypeDef *hRS) +{ + //-------------CALL RS CALLBACKS------------ + /* IF NO ERROR OCCURS */ + if(hRS->huart->ErrorCode == 0) + { + hRS->htim->Instance->CNT = 0; // reset cnt; + /* Start timeout */ + if(hRS->sRS_Timeout) // if timeout setted + if((hRS->huart->RxXferCount+1 == hRS->huart->RxXferSize) && RS_Is_RX_Busy(hRS)) // if first byte is received and receive is active + { + hRS->htim->Instance->ARR = hRS->sRS_Timeout; // reset cnt; + HAL_TIM_Base_Start_IT(hRS->htim); + RS_Set_RX_Active_Flags(hRS); + } + + /* RX Callback */ + if (( hRS->huart->RxXferCount == 0U) && RS_Is_RX_Busy(hRS) && // if all bytes are received and receive is active + hRS->huart->RxState != HAL_UART_STATE_BUSY_RX) // also check that receive "REALLY" isnt busy + RS_UART_RxCpltCallback(hRS); + + /* TX Callback */ + if (( hRS->huart->TxXferCount == 0U) && RS_Is_TX_Busy(hRS) && // if all bytes are transmited and transmit is active + hRS->huart->gState != HAL_UART_STATE_BUSY_TX) // also check that receive "REALLY" isnt busy + RS_UART_TxCpltCallback(hRS); + } + //----------------ERRORS HANDLER---------------- + else + { + /* de-init uart transfer */ + RS_Abort(hRS, ABORT_RS); + RS_Handle_Receive_Start(hRS, hRS->pMessagePtr); + // later, maybe, will be added specific handlers for err + } +} + + +/** + * @brief Handler for TIM. + * @param hRS - указатель на хендлер RS. + * @note Попадание сюда = таймаут и перезапуск RS приема + * Добавить вызов этой функции в TIMx_IRQHandler() после HAL_TIM_IRQHandler(). + */ +void RS_TIM_Handler(RS_HandleTypeDef *hRS) +{ + HAL_TIM_Base_Stop_IT(hRS->htim); + RS_Abort(hRS, ABORT_RS); + + RS_Handle_Receive_Start(hRS, hRS->pMessagePtr); +} +//--------------------CALLBACK/HANDLER FUNCTIONS--------------------- +//------------------------------------------------------------------- + + + +//------------------------------------------------------------------- +//--------------WEAK PROTOTYPES FOR PROCESSING MESSAGE--------------- +/** + * @brief Respond accord to received message. + * @param hRS - указатель на хендлер RS. + * @param RS_msg - указатель на структуру сообщения. + * @return RS_RES - статус о результате ответа на комманду. + * @note Обработка принятой комманды и ответ на неё. + */ +__weak RS_StatusTypeDef RS_Response(RS_HandleTypeDef *hRS, RS_MsgTypeDef *RS_msg) +{ + /* Redefine function for user purposes */ + return RS_ERR; +} + +/** + * @brief Collect message in buffer to transmit it. + * @param hRS - указатель на хендлер RS. + * @param RS_msg - указатель на структуру сообщения. + * @param msg_uart_buff - указатель на буффер UART. + * @return RS_RES - статус о результате заполнения буфера. + * @note Заполнение буффера UART из структуры сообщения. + */ +__weak RS_StatusTypeDef RS_Collect_Message(RS_HandleTypeDef *hRS, RS_MsgTypeDef *RS_msg, uint8_t *msg_uart_buff) +{ + /* Redefine function for user purposes */ + return RS_ERR; +} + +/** + * @brief Parse message from buffer to process it. + * @param hRS - указатель на хендлер RS. + * @param RS_msg - указатель на структуру сообщения. + * @param msg_uart_buff - указатель на буффер UART. + * @return RS_RES - статус о результате заполнения структуры. + * @note Заполнение структуры сообщения из буффера UART. + */ +__weak RS_StatusTypeDef RS_Parse_Message(RS_HandleTypeDef *hRS, RS_MsgTypeDef *RS_msg, uint8_t *msg_uart_buff) +{ + /* Redefine function for user purposes */ + return RS_ERR; +} + +/** + * @brief Define size of RX Message that need to be received. + * @param hRS - указатель на хендлер RS. + * @param rx_data_size - указатель на переменную для записи кол-ва байт для принятия. + * @return RS_RES - статус о корректности рассчета кол-ва байт для принятия. + * @note Определение сколько байтов надо принять по протоколу. + */ +__weak RS_StatusTypeDef RS_Define_Size_of_RX_Message(RS_HandleTypeDef *hRS, uint32_t *rx_data_size) +{ + /* Redefine function for user purposes */ + return RS_ERR; +} +//--------------WEAK PROTOTYPES FOR PROCESSING MESSAGE--------------- +//------------------------------------------------------------------- diff --git a/Core/Modbus/rs_message.h b/Core/Modbus/rs_message.h new file mode 100644 index 0000000..8131a52 --- /dev/null +++ b/Core/Modbus/rs_message.h @@ -0,0 +1,257 @@ +/** +************************************************************************** +* @file rs_message.h +* @brief Заголовочный файл для модуля реализации протоколов по RS/UART. +************************************************************************** +* @defgroup RS_TOOLS +* @brief Всякое для работы по UART/RS +************************************************************************** +@details +************************************************************************** +Для настройки RS/UART под нужный протокол, необходимо: + - Определить структуру сообщения RS_MsgTypeDef и + дефайны RX_FIRST_PART_SIZE и MSG_SIZE_MAX. + - Подключить этот файл в раздел rs_message.h. + - Определить функции для обработки сообщения: RS_Parse_Message(), + RS_Collect_Message(), RS_Response(), RS_Define_Size_of_RX_Message() + - Добавить UART/TIM Handler в Хендлер используемых UART/TIM. + +Так же данный модуль использует счетчики +************************************************************************** +@verbatim +Визуальное описание. Форматирование сохраняется как в коде. +@endverbatim +*************************************************************************/ +#ifndef __RS_LIB_H_ +#define __RS_LIB_H_ + +#include "modbus.h" + +#include "crc_algs.h" + + +///////////////////////////////////////////////////////////////////// +////////////////////////////---DEFINES---//////////////////////////// +/* Check that all defines required by RS are defined */ +#ifndef MSG_SIZE_MAX +#error Define MSG_SIZE_MAX (Maximum size of message). This is necessary to create buffer for UART. +#endif + +#ifndef RX_FIRST_PART_SIZE +#error Define RX_FIRST_PART_SIZE (Size of first part of message). This is necessary to receive the first part of the message, from which determine the size of the remaining part of the message. +#endif + + +/* Clear message-uart buffer */ +#define RS_Clear_Buff(_buff_) for(int i=0; if.RS_Busy = 0 +#define RS_Set_Busy(_hRS_) _hRS_->f.RS_Busy = 1 + +#define RS_Set_RX_Flags(_hRS_) _hRS_->f.RX_Busy = 1; _hRS_->f.RX_Done = 0; _hRS_->f.RX_Half = 0 +#define RS_Set_RX_Active_Flags(_hRS_) _hRS_->f.RX_Ongoing = 1 + + +#define RS_Set_TX_Flags(_hRS_) _hRS_->f.TX_Busy = 1; _hRS_->f.TX_Done = 0 + +#define RS_Reset_RX_Active_Flags(_hRS_) _hRS_->f.RX_Ongoing = 0 +#define RS_Reset_RX_Flags(_hRS_) RS_Reset_RX_Active_Flags(_hRS_); _hRS_->f.RX_Busy = 0; _hRS_->f.RX_Done = 0; _hRS_->f.RX_Half = 0 +#define RS_Reset_TX_Flags(_hRS_) _hRS_->f.TX_Busy = 0; _hRS_->f.TX_Done = 0 + +#define RS_Set_RX_End_Flag(_hRS_) _hRS_->f.RX_Done = 1; +#define RS_Set_TX_End_Flag(_hRS_) _hRS_->f.TX_Done = 1 + +#define RS_Set_RX_End(_hRS_) RS_Reset_RX_Flags(_hRS_); RS_Set_RX_End_Flag(_hRS_) +#define RS_Set_TX_End(_hRS_) RS_Reset_TX_Flags(_hRS_); RS_Set_TX_End_Flag(_hRS_) + +/* Clear all RS stuff */ +#define RS_Clear_All(_hRS_) RS_Clear_Buff(_hRS_->pBufferPtr); RS_Reset_RX_Flags(_hRS_); RS_Reset_TX_Flags(_hRS_); + +//#define MB_Is_RX_Busy(_hRS_) ((_hRS_->huart->gState&HAL_USART_STATE_BUSY_RX) == HAL_USART_STATE_BUSY_RX) +//#define MB_Is_TX_Busy(_hRS_) ((_hRS_->huart->gState&HAL_USART_STATE_BUSY_RX) == HAL_USART_STATE_BUSY_TX) +#define RS_Is_RX_Busy(_hRS_) (_hRS_->f.RX_Busy == 1) +#define RS_Is_TX_Busy(_hRS_) (_hRS_->f.TX_Busy == 1) + + +#ifndef RS_EnableReceive +#define RS_EnableReceive() +#endif +#ifndef RS_EnableTransmit +#define RS_EnableTransmit() +#endif +////////////////////////////---DEFINES---//////////////////////////// + + + +///////////////////////////////////////////////////////////////////// +///////////////////////---STRUCTURES & ENUMS---////////////////////// +//------------------ENUMERATIONS-------------------- +/** @brief Enums for respond CMD about RS status */ +typedef enum // RS_StatusTypeDef +{ + /* IN-CODE STATUS (start from 0x01, and goes up)*/ + /*0x01*/ RS_OK = 0x01, + /*0x02*/ RS_ERR, + /*0x03*/ RS_ABORTED, + /*0x04*/ RS_BUSY, + /*0x05*/ RS_SKIP, + + /*0x06*/ RS_COLLECT_MSG_ERR, + /*0x07*/ RS_PARSE_MSG_ERR, + + // reserved values +// /*0x00*/ RS_UNKNOWN_ERR = 0x00, ///< reserved for case, if no one error founded (nothing changed response from zero) +}RS_StatusTypeDef; + + +/** @brief Enums for RS Modes */ +typedef enum // RS_ModeTypeDef +{ + SLAVE_ALWAYS_WAIT = 0x01, ///< Slave mode with infinity waiting + SLAVE_TIMEOUT_WAIT = 0x02, ///< Slave mode with waiting with timeout +// MASTER = 0x03, ///< Master mode +}RS_ModeTypeDef; + +/** @brief Enums for RS UART Modes */ +typedef enum // RS_ITModeTypeDef +{ + BLCK_MODE = 0x00, ///< Blocking mode + IT_MODE = 0x01, ///< Interrupt mode +}RS_ITModeTypeDef; + +/** @brief Enums for Abort modes */ +typedef enum // RS_AbortTypeDef +{ + ABORT_TX = 0x01, ///< Abort transmit + ABORT_RX = 0x02, ///< Abort receive + ABORT_RX_TX = 0x03, ///< Abort receive and transmit + ABORT_RS = 0x04, ///< Abort uart and reset RS structure +}RS_AbortTypeDef; + +/** @brief Enums for RX Size modes */ +typedef enum // RS_RXSizeTypeDef +{ + RS_RX_Size_Const = 0x01, ///< size of receiving message is constant + RS_RX_Size_NotConst = 0x02, ///< size of receiving message isnt constant +}RS_RXSizeTypeDef; + + +//-----------STRUCTURE FOR HANDLE RS------------ +/** @brief Struct for flags RS */ +typedef struct +{ + unsigned RX_Half:1; ///< flag: 0 - receiving msg before ByteCnt, 0 - receiving msg after ByteCnt + + unsigned RS_Busy:1; ///< flag: 1 - RS is busy, 0 - RS isnt busy + unsigned RX_Ongoing:1; ///< flag: 1 - receiving data right now, 0 - waiting for receiving data + + unsigned RX_Busy:1; ///< flag: 1 - receiving is active, 0 - receiving isnt active + unsigned TX_Busy:1; ///< flag: 1 - transmiting is active, 0 - transmiting isnt active + + unsigned RX_Done:1; ///< flag: 1 - receiving is done, 0 - receiving isnt done + unsigned TX_Done:1; ///< flag: 1 - transmiting is done, 0 - transmiting isnt done + + // setted by user + unsigned MessageHandled:1; ///< flag: 1 - RS command is handled, 0 - RS command isnt handled yet + unsigned EchoResponse:1; ///< flag: 1 - response with received msg, 0 - response with own msg + unsigned DeferredResponse:1; ///< flag: 1 - response not in interrupt, 0 - response in interrupt + unsigned ReInit_UART:1; ///< flag: 1 - need to reinitialize uart, 0 - nothing +}RS_FlagsTypeDef; + + + +/** + * @brief Handle for RS communication. + * @note Prefixes: h - handle, s - settings, f - flag + */ +typedef struct // RS_HandleTypeDef +{ + /* MESSAGE */ + uint8_t ID; ///< ID of RS "channel" + RS_MsgTypeDef *pMessagePtr; ///< pointer to message struct + uint8_t *pBufferPtr; ///< pointer to message buffer + uint32_t RS_Message_Size; ///< size of whole message, not only data + + /* HANDLERS and SETTINGS */ + UART_HandleTypeDef *huart; ///< handler for used uart + TIM_HandleTypeDef *htim; ///< handler for used tim + RS_ModeTypeDef sRS_Mode; ///< setting: slave or master @ref RS_ModeTypeDef + RS_ITModeTypeDef sRS_IT_Mode; ///< setting: 1 - IT mode, 0 - Blocking mode + uint16_t sRS_Timeout; ///< setting: timeout in ms + RS_RXSizeTypeDef sRS_RX_Size_Mode; ///< setting: 1 - not const, 0 - const + + /* FLAGS */ + RS_FlagsTypeDef f; ///< These flags for controling receive/transmit + + /* RS STATUS */ + RS_StatusTypeDef RS_STATUS; ///< RS status +}RS_HandleTypeDef; +extern RS_HandleTypeDef hmodbus1; + + +///////////////////////---STRUCTURES & ENUMS---////////////////////// + + +///////////////////////////////////////////////////////////////////// +///////////////////////////---FUNCTIONS---/////////////////////////// +//----------------FUNCTIONS FOR PROCESSING MESSAGE------------------- +/*--------------------Defined by users purposes--------------------*/ +/* Respond accord to received message */ +RS_StatusTypeDef RS_Response(RS_HandleTypeDef *hRS, RS_MsgTypeDef *RS_msg); + +/* Collect message in buffer to transmit it */ +RS_StatusTypeDef RS_Collect_Message(RS_HandleTypeDef *hRS, RS_MsgTypeDef *RS_msg, uint8_t *msg_uart_buff); + +/* Parse message from buffer to process it */ +RS_StatusTypeDef RS_Parse_Message(RS_HandleTypeDef *hRS, RS_MsgTypeDef *RS_msg, uint8_t *msg_uart_buff); + +/* Define size of RX Message that need to be received */ +RS_StatusTypeDef RS_Define_Size_of_RX_Message(RS_HandleTypeDef *hRS, uint32_t *rx_data_size); + + +//-------------------------GENERAL FUNCTIONS------------------------- +/*-----------------Should be called from main code-----------------*/ +/* Start receive IT */ +RS_StatusTypeDef RS_Receive_IT(RS_HandleTypeDef *hRS, RS_MsgTypeDef *RS_msg); + +/* Start transmit IT */ +RS_StatusTypeDef RS_Transmit_IT(RS_HandleTypeDef *hRS, RS_MsgTypeDef *RS_msg); + +/* Initialize UART and handle RS stucture */ +RS_StatusTypeDef RS_Init(RS_HandleTypeDef *hRS, UART_HandleTypeDef *huart, TIM_HandleTypeDef *htim, uint8_t *pRS_BufferPtr); + +/* ReInitialize UART and RS receive */ +HAL_StatusTypeDef RS_ReInit_UART(RS_HandleTypeDef *hRS, UART_HandleTypeDef *suart); + +/* Abort RS/UART */ +RS_StatusTypeDef RS_Abort(RS_HandleTypeDef *hRS, RS_AbortTypeDef AbortMode); +//-------------------------GENERAL FUNCTIONS------------------------- + + +//------------------------------------------------------------------- +//--------------------CALLBACK/HANDLER FUNCTIONS--------------------- +/* Handle for starting receive */ +RS_StatusTypeDef RS_Handle_Receive_Start(RS_HandleTypeDef *hRS, RS_MsgTypeDef *RS_msg); +/* Handle for starting transmit */ +RS_StatusTypeDef RS_Handle_Transmit_Start(RS_HandleTypeDef *hRS, RS_MsgTypeDef *RS_msg); +/* UART RX Callback: define behaviour after receiving parts of message */ +RS_StatusTypeDef RS_UART_RxCpltCallback(RS_HandleTypeDef *hRS); +/* UART TX Callback: define behaviour after transmiting message */ +RS_StatusTypeDef RS_UART_TxCpltCallback(RS_HandleTypeDef *hRS); +/* Handler for UART */ +void RS_UART_Handler(RS_HandleTypeDef *hRS); +/* Handler for TIM */ +void RS_TIM_Handler(RS_HandleTypeDef *hRS); +//--------------------CALLBACK/HANDLER FUNCTIONS--------------------- +///////////////////////////---FUNCTIONS---/////////////////////////// + + +#ifndef printf_rs_err +#define printf_rs_err(...) +#endif + +#ifndef printf_rs +#define printf_rs(...) +#endif +#endif // __RS_LIB_H_ diff --git a/Core/Src/main.c b/Core/Src/main.c index c9a2f46..ec2e787 100644 --- a/Core/Src/main.c +++ b/Core/Src/main.c @@ -19,11 +19,13 @@ /* Includes ------------------------------------------------------------------*/ #include "main.h" #include "tim.h" +#include "usart.h" #include "gpio.h" /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ #include "canEmu.h" +#include "rs_message.h" /* USER CODE END Includes */ /* Private typedef -----------------------------------------------------------*/ @@ -56,6 +58,7 @@ void SystemClock_Config(void); /* Private user code ---------------------------------------------------------*/ /* USER CODE BEGIN 0 */ CANEmu_HandleTypeDef hcanemu; +int flag_manual = 0; /* USER CODE END 0 */ /** @@ -88,16 +91,50 @@ int main(void) /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_TIM2_Init(); + MX_TIM3_Init(); + MX_USART1_UART_Init(); /* USER CODE BEGIN 2 */ CANEmu_Init(&hcanemu, 125000); hcanemu.header.StdId = 0x123; + MODBUS_FirstInit(); + RS_Receive_IT(&hmodbus1, &MODBUS_MSG); /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { - HAL_Delay(100); + if(flag_manual == 0) + { + // can message + hcanemu.header.IDE = MB_DATA.Coils.HEADER_IDE; + hcanemu.header.RTR = MB_DATA.Coils.HEADER_RTR; + hcanemu.bitrate_bps = (uint32_t)MB_DATA.HoldRegs.CAN_BITRATE_KBPS*1000; + hcanemu.header.ExtId = ((uint32_t)MB_DATA.HoldRegs.CAN_ID_HI << 16) || MB_DATA.HoldRegs.CAN_ID_LO; + hcanemu.header.StdId = hcanemu.header.ExtId; + hcanemu.header.DLC = (uint8_t)MB_DATA.HoldRegs.CAN_DLC & 0xF; + hcanemu.data[0] = (uint8_t)MB_DATA.HoldRegs.CAN_DATA_0; + hcanemu.data[1] = (uint8_t)MB_DATA.HoldRegs.CAN_DATA_1; + hcanemu.data[2] = (uint8_t)MB_DATA.HoldRegs.CAN_DATA_2; + hcanemu.data[3] = (uint8_t)MB_DATA.HoldRegs.CAN_DATA_3; + hcanemu.data[4] = (uint8_t)MB_DATA.HoldRegs.CAN_DATA_4; + hcanemu.data[5] = (uint8_t)MB_DATA.HoldRegs.CAN_DATA_5; + hcanemu.data[6] = (uint8_t)MB_DATA.HoldRegs.CAN_DATA_6; + hcanemu.data[7] = (uint8_t)MB_DATA.HoldRegs.CAN_DATA_7; + + // errors + hcanemu.errors.FF_SRS = MB_DATA.Coils.FLIP_SRS; + hcanemu.errors.FF_IDE = MB_DATA.Coils.FLIP_IDE; + hcanemu.errors.FF_RTR = MB_DATA.Coils.FLIP_RTR; + hcanemu.errors.FF_R1 = MB_DATA.Coils.FLIP_R1; + hcanemu.errors.FF_R0 = MB_DATA.Coils.FLIP_R0; + hcanemu.errors.MSGID = MB_DATA.Coils.FLIP_MSGID_BIT; + hcanemu.errors.DATA = MB_DATA.Coils.FLIP_DATA_BIT; + hcanemu.errors.CRC_ERR = MB_DATA.Coils.FLIP_CRC_BIT; + hcanemu.errors.STUFF_BITS = MB_DATA.Coils.DISABLE_STUFF_BITS; + } + + HAL_Delay(hcanemu.period_ms); CANEmu_SendFrame(&hcanemu); /* USER CODE END WHILE */ diff --git a/Core/Src/tim.c b/Core/Src/tim.c index 7150ad4..1fcea9d 100644 --- a/Core/Src/tim.c +++ b/Core/Src/tim.c @@ -25,6 +25,7 @@ /* USER CODE END 0 */ TIM_HandleTypeDef htim2; +TIM_HandleTypeDef htim3; /* TIM2 init function */ void MX_TIM2_Init(void) @@ -65,6 +66,46 @@ void MX_TIM2_Init(void) /* USER CODE END TIM2_Init 2 */ +} +/* TIM3 init function */ +void MX_TIM3_Init(void) +{ + + /* USER CODE BEGIN TIM3_Init 0 */ + + /* USER CODE END TIM3_Init 0 */ + + TIM_ClockConfigTypeDef sClockSourceConfig = {0}; + TIM_MasterConfigTypeDef sMasterConfig = {0}; + + /* USER CODE BEGIN TIM3_Init 1 */ + + /* USER CODE END TIM3_Init 1 */ + htim3.Instance = TIM3; + htim3.Init.Prescaler = 0; + htim3.Init.CounterMode = TIM_COUNTERMODE_UP; + htim3.Init.Period = 7200; + htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; + htim3.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; + if (HAL_TIM_Base_Init(&htim3) != HAL_OK) + { + Error_Handler(); + } + sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL; + if (HAL_TIM_ConfigClockSource(&htim3, &sClockSourceConfig) != HAL_OK) + { + Error_Handler(); + } + sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; + sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; + if (HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN TIM3_Init 2 */ + + /* USER CODE END TIM3_Init 2 */ + } void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle) @@ -81,6 +122,17 @@ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle) /* USER CODE END TIM2_MspInit 1 */ } + else if(tim_baseHandle->Instance==TIM3) + { + /* USER CODE BEGIN TIM3_MspInit 0 */ + + /* USER CODE END TIM3_MspInit 0 */ + /* TIM3 clock enable */ + __HAL_RCC_TIM3_CLK_ENABLE(); + /* USER CODE BEGIN TIM3_MspInit 1 */ + + /* USER CODE END TIM3_MspInit 1 */ + } } void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle) @@ -97,6 +149,17 @@ void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle) /* USER CODE END TIM2_MspDeInit 1 */ } + else if(tim_baseHandle->Instance==TIM3) + { + /* USER CODE BEGIN TIM3_MspDeInit 0 */ + + /* USER CODE END TIM3_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_TIM3_CLK_DISABLE(); + /* USER CODE BEGIN TIM3_MspDeInit 1 */ + + /* USER CODE END TIM3_MspDeInit 1 */ + } } /* USER CODE BEGIN 1 */ diff --git a/Core/Src/usart.c b/Core/Src/usart.c new file mode 100644 index 0000000..e96da31 --- /dev/null +++ b/Core/Src/usart.c @@ -0,0 +1,117 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file usart.c + * @brief This file provides code for the configuration + * of the USART instances. + ****************************************************************************** + * @attention + * + * Copyright (c) 2025 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ +/* Includes ------------------------------------------------------------------*/ +#include "usart.h" + +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +UART_HandleTypeDef huart1; + +/* USART1 init function */ + +void MX_USART1_UART_Init(void) +{ + + /* USER CODE BEGIN USART1_Init 0 */ + + /* USER CODE END USART1_Init 0 */ + + /* USER CODE BEGIN USART1_Init 1 */ + + /* USER CODE END USART1_Init 1 */ + huart1.Instance = USART1; + huart1.Init.BaudRate = 115200; + huart1.Init.WordLength = UART_WORDLENGTH_8B; + huart1.Init.StopBits = UART_STOPBITS_1; + huart1.Init.Parity = UART_PARITY_NONE; + huart1.Init.Mode = UART_MODE_TX_RX; + huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE; + huart1.Init.OverSampling = UART_OVERSAMPLING_16; + if (HAL_UART_Init(&huart1) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN USART1_Init 2 */ + + /* USER CODE END USART1_Init 2 */ + +} + +void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle) +{ + + GPIO_InitTypeDef GPIO_InitStruct = {0}; + if(uartHandle->Instance==USART1) + { + /* USER CODE BEGIN USART1_MspInit 0 */ + + /* USER CODE END USART1_MspInit 0 */ + /* USART1 clock enable */ + __HAL_RCC_USART1_CLK_ENABLE(); + + __HAL_RCC_GPIOA_CLK_ENABLE(); + /**USART1 GPIO Configuration + PA9 ------> USART1_TX + PA10 ------> USART1_RX + */ + GPIO_InitStruct.Pin = GPIO_PIN_9; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + + GPIO_InitStruct.Pin = GPIO_PIN_10; + GPIO_InitStruct.Mode = GPIO_MODE_INPUT; + GPIO_InitStruct.Pull = GPIO_NOPULL; + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + + /* USER CODE BEGIN USART1_MspInit 1 */ + + /* USER CODE END USART1_MspInit 1 */ + } +} + +void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle) +{ + + if(uartHandle->Instance==USART1) + { + /* USER CODE BEGIN USART1_MspDeInit 0 */ + + /* USER CODE END USART1_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_USART1_CLK_DISABLE(); + + /**USART1 GPIO Configuration + PA9 ------> USART1_TX + PA10 ------> USART1_RX + */ + HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10); + + /* USER CODE BEGIN USART1_MspDeInit 1 */ + + /* USER CODE END USART1_MspDeInit 1 */ + } +} + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ diff --git a/MDK-ARM/CANEmu.uvguix.I b/MDK-ARM/CANEmu.uvguix.I index a54c8a5..3defcb7 100644 --- a/MDK-ARM/CANEmu.uvguix.I +++ b/MDK-ARM/CANEmu.uvguix.I @@ -6,7 +6,7 @@
### uVision Project, (C) Keil Software
- F:\Work\Projects\STM\CANEmu\Core\CANEmu + F:\Work\Projects\STM\CANEmu\Core\Modbus @@ -15,17 +15,17 @@ 38003 Registers - 122 78 + 138 62 346 Code Coverage - 860 596 + 860 100 204 Performance Analyzer - 469 153 153 681 + 362 153 153 100 @@ -93,8 +93,8 @@ 2 3 - -32000 - -32000 + -1 + -1 -1 @@ -110,8 +110,8 @@ 0 - 1093 - 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000A000000020000000100000030463A5C576F726B5C50726F6A656374735C53544D5C43414E456D755C436F72655C43414E456D755C63616E456D752E63000000000863616E456D752E6300000000C5D4F200FFFFFFFF30463A5C576F726B5C50726F6A656374735C53544D5C43414E456D755C436F72655C43414E456D755C63616E456D752E68000000000863616E456D752E6800000000FFDC7800FFFFFFFF31463A5C576F726B5C50726F6A656374735C53544D5C43414E456D755C436F72655C43414E456D755C63616E666F726D2E63000000000963616E666F726D2E6300000000BECEA100FFFFFFFF31463A5C576F726B5C50726F6A656374735C53544D5C43414E456D755C436F72655C43414E456D755C63616E666F726D2E68000000000963616E666F726D2E6800000000F0A0A100FFFFFFFF50463A5C576F726B5C50726F6A656374735C53544D5C43414E456D755C447269766572735C53544D3332463178785F48414C5F4472697665725C496E635C73746D3332663178785F68616C5F74696D2E68000000001373746D3332663178785F68616C5F74696D2E6800000000BCA8E100FFFFFFFF4C463A5C576F726B5C50726F6A656374735C53544D5C43414E456D755C447269766572735C53544D3332463178785F48414C5F4472697665725C496E635C73746D3332663178785F68616C2E68000000000F73746D3332663178785F68616C2E68000000009CC1B600FFFFFFFF2B463A5C576F726B5C50726F6A656374735C53544D5C43414E456D755C436F72655C5372635C6D61696E2E6300000000066D61696E2E6300000000F7B88600FFFFFFFF53463A5C576F726B5C50726F6A656374735C53544D5C43414E456D755C447269766572735C53544D3332463178785F48414C5F4472697665725C5372635C73746D3332663178785F68616C5F74696D5F65782E63000000001673746D3332663178785F68616C5F74696D5F65782E6300000000D9ADC200FFFFFFFF39463A5C576F726B5C50726F6A656374735C53544D5C43414E456D755C4D444B2D41524D5C737461727475705F73746D33326631303378622E730000000015737461727475705F73746D33326631303378622E7300000000A5C2D700FFFFFFFF4C463A5C576F726B5C50726F6A656374735C53544D5C43414E456D755C447269766572735C53544D3332463178785F48414C5F4472697665725C5372635C73746D3332663178785F68616C2E63000000000F73746D3332663178785F68616C2E6300000000B3A6BE00FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000D6000000660000009006000094020000 + 1647 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000011000000100000000100000030463A5C576F726B5C50726F6A656374735C53544D5C43414E456D755C436F72655C43414E456D755C63616E456D752E63000000000863616E456D752E6300000000C5D4F200FFFFFFFF30463A5C576F726B5C50726F6A656374735C53544D5C43414E456D755C436F72655C43414E456D755C63616E456D752E68000000000863616E456D752E6800000000FFDC7800FFFFFFFF31463A5C576F726B5C50726F6A656374735C53544D5C43414E456D755C436F72655C43414E456D755C63616E666F726D2E63000000000963616E666F726D2E6300000000BECEA100FFFFFFFF31463A5C576F726B5C50726F6A656374735C53544D5C43414E456D755C436F72655C43414E456D755C63616E666F726D2E68000000000963616E666F726D2E6800000000F0A0A100FFFFFFFF50463A5C576F726B5C50726F6A656374735C53544D5C43414E456D755C447269766572735C53544D3332463178785F48414C5F4472697665725C496E635C73746D3332663178785F68616C5F74696D2E68000000001373746D3332663178785F68616C5F74696D2E6800000000BCA8E100FFFFFFFF4C463A5C576F726B5C50726F6A656374735C53544D5C43414E456D755C447269766572735C53544D3332463178785F48414C5F4472697665725C496E635C73746D3332663178785F68616C2E68000000000F73746D3332663178785F68616C2E68000000009CC1B600FFFFFFFF2B463A5C576F726B5C50726F6A656374735C53544D5C43414E456D755C436F72655C5372635C6D61696E2E6300000000066D61696E2E6300000000F7B88600FFFFFFFF53463A5C576F726B5C50726F6A656374735C53544D5C43414E456D755C447269766572735C53544D3332463178785F48414C5F4472697665725C5372635C73746D3332663178785F68616C5F74696D5F65782E63000000001673746D3332663178785F68616C5F74696D5F65782E6300000000D9ADC200FFFFFFFF39463A5C576F726B5C50726F6A656374735C53544D5C43414E456D755C4D444B2D41524D5C737461727475705F73746D33326631303378622E730000000015737461727475705F73746D33326631303378622E7300000000A5C2D700FFFFFFFF4C463A5C576F726B5C50726F6A656374735C53544D5C43414E456D755C447269766572735C53544D3332463178785F48414C5F4472697665725C5372635C73746D3332663178785F68616C2E63000000000F73746D3332663178785F68616C2E6300000000B3A6BE00FFFFFFFF37463A5C576F726B5C50726F6A656374735C53544D5C43414E456D755C436F72655C4D6F646275735C6D6F646275735F636F6E6669672E68000000000F6D6F646275735F636F6E6669672E6800000000EAD6A300FFFFFFFF30463A5C576F726B5C50726F6A656374735C53544D5C43414E456D755C436F72655C4D6F646275735C6D6F646275732E6300000000086D6F646275732E6300000000F6FA7D00FFFFFFFF30463A5C576F726B5C50726F6A656374735C53544D5C43414E456D755C436F72655C4D6F646275735C6D6F646275732E6800000000086D6F646275732E6800000000B5E99D00FFFFFFFF35463A5C576F726B5C50726F6A656374735C53544D5C43414E456D755C436F72655C4D6F646275735C6D6F646275735F646174612E68000000000D6D6F646275735F646174612E68000000005FC3CF00FFFFFFFF34463A5C576F726B5C50726F6A656374735C53544D5C43414E456D755C436F72655C4D6F646275735C72735F6D6573736167652E63000000000C72735F6D6573736167652E6300000000C1838300FFFFFFFF33463A5C576F726B5C50726F6A656374735C53544D5C43414E456D755C436F72655C5372635C73746D3332663178785F69742E63000000000E73746D3332663178785F69742E6300000000CACAD500FFFFFFFF2C463A5C576F726B5C50726F6A656374735C53544D5C43414E456D755C436F72655C5372635C75736172742E63000000000775736172742E6300000000C5D4F200FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000D6000000660000009006000094020000 @@ -1805,8 +1805,8 @@ 59392 File - 2823 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000013F96000000000000001400013F000A617070656E645F62697402696604666C6970076863616E656D75072026204552525F0C63616E5F626974735F6C656E1343414E5F5478486561646572547970654465660E44454255475F5641525F494E49540955494E54385F4D41580B414C49474E5F33324249540CD0B4D0BED0BBD0B6D0B5D0BD0C484156455F55494E54385F540775696E74385F74084C4F4E475F4D415807696E7433325F740B5F61635570427566666572114144435F48616E646C65547970654465660F4D5A4B545F414443547970654465660000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020000001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 + 2591 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000646465F535253960000000000000005000646465F53525303535253000975696E7431365F7420054D534749440000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 1423 @@ -1822,7 +1822,7 @@ Build 972 - 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000002001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000643414E456D75960000000000000001000643414E456D75000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000002001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0000000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000643414E456D75960000000000000001000643414E456D75000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 583 @@ -1838,7 +1838,7 @@ Debug 2373 - 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 898 @@ -1867,7 +1867,7 @@ 0 32767 0 - 8192 + 4096 0 16 @@ -1875,7 +1875,7 @@ 16 - C1000000920100007B0600001D020000 + D600000066000000E0030000D1000000 @@ -1891,7 +1891,7 @@ 0 16 - 0300000066000000CF00000046030000 + 0300000066000000CF000000AD010000 16 @@ -1911,7 +1911,7 @@ 0 16 - 0300000066000000CF0000000C030000 + 0300000066000000CF000000B7020000 16 @@ -1931,7 +1931,7 @@ 0 16 - 4C0300007703000090060000C8030000 + 4C030000DE0100009006000063020000 16 @@ -1951,7 +1951,7 @@ 0 16 - 4F0300007A0300008D060000E9030000 + 4F030000E10100008D06000016020000 16 @@ -1971,7 +1971,7 @@ 0 16 - 4F0300007A0300008D060000E9030000 + 4F030000E10100008D06000016020000 16 @@ -1991,7 +1991,7 @@ 0 16 - 4F0300007A0300008D060000E9030000 + 4F030000E10100008D06000016020000 16 @@ -2031,7 +2031,7 @@ 0 16 - D9000000660000008D060000C1000000 + D900000066000000DD030000A1000000 16 @@ -2051,7 +2051,7 @@ 0 16 - E7030000660000008D06000046030000 + E7030000660000008D060000AD010000 16 @@ -2071,7 +2071,7 @@ 0 16 - E7030000660000008D06000046030000 + E7030000660000008D060000AD010000 16 @@ -2091,7 +2091,7 @@ 0 16 - 4F0300007A0300008D060000E9030000 + 4F030000E10100008D06000016020000 16 @@ -2111,7 +2111,7 @@ 0 16 - 4F0300007A0300008D060000E9030000 + 4F030000E10100008D06000016020000 16 @@ -2131,7 +2131,7 @@ 0 16 - 4F0300007A0300008D060000E9030000 + 4F030000E10100008D06000016020000 16 @@ -2151,7 +2151,7 @@ 0 16 - 4F0300007A0300008D060000E9030000 + 4F030000E10100008D06000016020000 16 @@ -2171,7 +2171,7 @@ 0 16 - 4F0300007A0300008D060000E9030000 + 4F030000E10100008D06000016020000 16 @@ -2191,7 +2191,7 @@ 0 16 - 0300000066000000CF0000000C030000 + 0300000066000000CF000000B7020000 16 @@ -2211,7 +2211,7 @@ 0 16 - 0300000066000000CF0000000C030000 + 0300000066000000CF000000B7020000 16 @@ -2231,7 +2231,7 @@ 0 16 - 0300000033020000D90400008E020000 + 030000007E0200008D060000D9020000 16 @@ -2251,7 +2251,7 @@ 0 16 - 000000006303000048030000C8030000 + 00000000CA0100004803000063020000 16 @@ -2261,7 +2261,7 @@ 199 199 - 0 + 1 0 0 0 @@ -2271,7 +2271,7 @@ 0 16 - 0300000033020000D90400008E020000 + 000000007B02000090060000C8030000 16 @@ -2311,7 +2311,7 @@ 0 16 - D9000000660000008D060000C1000000 + D900000066000000DD030000A1000000 16 @@ -2371,7 +2371,7 @@ 0 16 - 4F0300007A0300008D060000E9030000 + 4F030000E10100008D06000016020000 16 @@ -2391,7 +2391,7 @@ 0 16 - D9000000660000008D060000C1000000 + D900000066000000DD030000A1000000 16 @@ -2411,7 +2411,7 @@ 0 16 - D9000000660000008D060000C1000000 + D900000066000000DD030000A1000000 16 @@ -2431,7 +2431,7 @@ 0 16 - D9000000660000008D060000C1000000 + D900000066000000DD030000A1000000 16 @@ -2451,7 +2451,7 @@ 0 16 - D9000000660000008D060000C1000000 + D900000066000000DD030000A1000000 16 @@ -2891,7 +2891,7 @@ 0 16 - 0300000066000000CF00000046030000 + 0300000066000000CF000000AD010000 16 @@ -2911,7 +2911,7 @@ 0 16 - 0300000033020000D90400008E020000 + 030000007E0200008D060000D9020000 16 @@ -2931,7 +2931,7 @@ 0 16 - 0300000033020000D90400008E020000 + 030000007E0200008D060000D9020000 16 @@ -2951,7 +2951,7 @@ 0 16 - 4F0300007A0300008D060000E9030000 + 4F030000E10100008D06000016020000 16 @@ -2971,7 +2971,7 @@ 0 16 - 4F0300007A0300008D060000E9030000 + 4F030000E10100008D06000016020000 16 @@ -2991,7 +2991,7 @@ 0 16 - 0300000033020000D90400008E020000 + 030000007E0200008D060000D9020000 16 @@ -3011,7 +3011,7 @@ 0 16 - 0300000033020000D90400008E020000 + 030000007E0200008D060000D9020000 16 @@ -3031,7 +3031,7 @@ 0 16 - D9000000660000008D060000C1000000 + D900000066000000DD030000A1000000 16 @@ -3531,7 +3531,7 @@ 0 16 - 4F0300007A0300008D060000E9030000 + 4F030000E10100008D06000016020000 16 @@ -3540,14 +3540,14 @@ 3521 - 000000000D000000000000000020000001000000FFFFFFFFFFFFFFFFD6000000BA000000E0030000BE00000001000000010000100400000001000000000000000000000000000000000000000000000001000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000001000000C1000000920100007B0600001D020000D60000004F000000E0030000BA0000000000000040280056080000000B446973617373656D626C7901000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFF0000000000000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000001000000FFFFFFFFFFFFFFFFE00300004F000000E40300005F0300000100000002000010040000000100000019FBFFFF6500000000000000000000000000000001000000FFFFFFFF020000008F0700009007000001800040000001000000BB030000F00100008D040000B5020000E40300004F000000900600005F0300000000000040410056020000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0757617463682031010000009007000001000000FFFFFFFFFFFFFFFF0100000000000000000000000000000000000000000000000000000001000000FFFFFFFF8F07000001000000FFFFFFFF8F070000000000000040000000000000FFFFFFFFFFFFFFFF060400004F0000000A04000018020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C30000018000400000000000000A04000066000000DC0400002F0200000A0400004F000000DC0400001802000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFD20000004F000000D60000005F030000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000000000000066000000D20000003C030000000000004F000000D20000005F0300000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF04000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF000000005F0300009006000063030000010000000100001004000000010000009EFDFFFF3A00000000000000000000000000000001000000C6000000FFFFFFFF0D0000009307000094070000950700009607000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB090000018000800000010000004C0300004003000090060000DF0300004C0300006303000090060000C803000000000000404100560D0000000755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF080000000000000001000000000000000100000001000000FFFFFFFF48030000630300004C030000C803000001000000020000100400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF9307000001000000FFFFFFFF9307000001000000C6000000000000000080000000000000FFFFFFFFFFFFFFFF0000000018020000DC0400001C020000000000000100000004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF01000077940000018000800000000000000000000033020000DC040000BE020000000000001C020000DC040000A70200000000000040820046060000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0642726F777365000000007794000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + 000000000D000000000000000020000001000000FFFFFFFFFFFFFFFFD6000000BA000000E0030000BE00000001000000010000100400000001000000000000000000000000000000000000000000000001000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000001000000D600000066000000E0030000D1000000D60000004F000000E0030000BA0000000000000040280056080000000B446973617373656D626C7901000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFF0000000000000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000001000000FFFFFFFFFFFFFFFFE00300004F000000E4030000C60100000100000002000010040000000100000019FBFFFF6500000000000000000000000000000001000000FFFFFFFF020000008F0700009007000001800040000001000000E40300006600000090060000E7020000E40300004F00000090060000C60100000000000040410056020000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0757617463682031010000009007000001000000FFFFFFFFFFFFFFFF0100000000000000000000000000000000000000000000000000000001000000FFFFFFFF8F07000001000000FFFFFFFF8F070000000000000040000000000000FFFFFFFFFFFFFFFF060400004F0000000A04000018020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C30000018000400000000000000A04000066000000DC0400002F0200000A0400004F000000DC0400001802000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFD20000004F000000D6000000C6010000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000000000000066000000D2000000E7020000000000004F000000D2000000C60100000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF04000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF00000000C601000090060000CA01000001000000010000100400000001000000BBFFFFFFF200000000000000000000000000000001000000C6000000FFFFFFFF0D0000009307000094070000950700009607000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB090000018000800000010000004C030000EB02000090060000500300004C030000CA010000900600006302000000000000404100560D0000000755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF080000000000000001000000000000000100000001000000FFFFFFFF48030000CA0100004C0300006302000001000000020000100400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF9307000001000000FFFFFFFF9307000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000630200009006000067020000010000000100001004000000010000008AFDFFFF89000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF0100007794000001800080000001000000000000005403000090060000DF030000000000006702000090060000C80300000000000040820056060000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657301000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0642726F777365000000007794000001000000FFFFFFFFFFFFFFFF01000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 59392 File - 2823 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000013F96000000000000001400013F000A617070656E645F62697402696604666C6970076863616E656D75072026204552525F0C63616E5F626974735F6C656E1343414E5F5478486561646572547970654465660E44454255475F5641525F494E49540955494E54385F4D41580B414C49474E5F33324249540CD0B4D0BED0BBD0B6D0B5D0BD0C484156455F55494E54385F540775696E74385F74084C4F4E475F4D415807696E7433325F740B5F61635570427566666572114144435F48616E646C65547970654465660F4D5A4B545F414443547970654465660000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000300150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 + 2594 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000975696E7431365F7420960000000000000005000646465F53525303535253000975696E7431365F7420054D534749440000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000300150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 1423 @@ -3603,20 +3603,20 @@ 0 100 - 2 + 16 ..\Core\CANEmu\canEmu.c - 73 - 16 - 49 + 25 + 34 + 26 1 0 ..\Core\CANEmu\canEmu.h - 18 - 1 + 24 + 9 31 1 @@ -3624,18 +3624,18 @@ ..\Core\CANEmu\canform.c - 21 - 28 - 51 + 41 + 129 + 136 1 0 ..\Core\CANEmu\canform.h - 54 - 1 - 17 + 19 + 10 + 11 1 22 0 @@ -3661,8 +3661,8 @@ ../Core/Src/main.c 0 - 77 - 66 + 60 + 70 1 0 @@ -3670,7 +3670,7 @@ ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c 0 - 129 + 130 139 1 @@ -3679,7 +3679,7 @@ startup_stm32f103xb.s 0 - 122 + 123 132 0 @@ -3688,12 +3688,75 @@ ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c 0 - 371 + 373 382 1 0 + + ..\Core\Modbus\modbus_config.h + 59 + 1 + 28 + 1 + + 0 + + + ..\Core\Modbus\modbus.c + 0 + 1 + 1 + 1 + + 0 + + + ..\Core\Modbus\modbus.h + 0 + 1 + 1 + 1 + + 0 + + + ..\Core\Modbus\modbus_data.h + 40 + 111 + 139 + 1 + + 0 + + + ..\Core\Modbus\rs_message.c + 0 + 106 + 115 + 1 + + 0 + + + ../Core/Src/stm32f1xx_it.c + 0 + 1 + 1 + 1 + + 0 + + + ../Core/Src/usart.c + 0 + 22 + 1 + 1 + + 0 + diff --git a/MDK-ARM/CANEmu.uvoptx b/MDK-ARM/CANEmu.uvoptx index 582a4d2..9eecedf 100644 --- a/MDK-ARM/CANEmu.uvoptx +++ b/MDK-ARM/CANEmu.uvoptx @@ -148,39 +148,22 @@ -U-O142 -O2254 -SF10000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP (ARM Core") -D00(1BA01477) -L00(0) -TO131090 -TC10000000 -TT10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F10x_128.FLM -FS08000000 -FL010000 -FP0($$Device:STM32F103C8$Flash\STM32F10x_128.FLM) -WA0 -WE0 -WVCE4 -WS2710 -WM0 -WP2 - - - 0 - 0 - 183 - 1 -
134225938
- 0 - 0 - 0 - 0 - 0 - 1 - ..\Core\CANEmu\canform.c - - \\CANEmu\../Core/CANEmu/canform.c\183 -
-
+ 0 1 - hcanemu + hcanemu,0x0A 1 1 - can_bits + MB_DATA,0x0A 2 1 - raw_len,0x0A + flag_manual @@ -237,7 +220,7 @@ Application/MDK-ARM - 0 + 1 0 0 0 @@ -257,7 +240,7 @@ Application/User/Core - 0 + 1 0 0 0 @@ -304,6 +287,18 @@ 0 0 0 + ../Core/Src/usart.c + usart.c + 0 + 0 + + + 2 + 6 + 1 + 0 + 0 + 0 ../Core/Src/stm32f1xx_it.c stm32f1xx_it.c 0 @@ -311,7 +306,7 @@ 2 - 6 + 7 1 0 0 @@ -331,7 +326,7 @@ 0 3 - 7 + 8 1 0 0 @@ -343,7 +338,7 @@ 3 - 8 + 9 1 0 0 @@ -355,7 +350,7 @@ 3 - 9 + 10 1 0 0 @@ -367,7 +362,7 @@ 3 - 10 + 11 1 0 0 @@ -379,7 +374,7 @@ 3 - 11 + 12 1 0 0 @@ -391,7 +386,7 @@ 3 - 12 + 13 1 0 0 @@ -403,7 +398,7 @@ 3 - 13 + 14 1 0 0 @@ -415,7 +410,7 @@ 3 - 14 + 15 1 0 0 @@ -427,7 +422,7 @@ 3 - 15 + 16 1 0 0 @@ -439,7 +434,7 @@ 3 - 16 + 17 1 0 0 @@ -451,7 +446,7 @@ 3 - 17 + 18 1 0 0 @@ -463,7 +458,7 @@ 3 - 18 + 19 1 0 0 @@ -475,7 +470,7 @@ 3 - 19 + 20 1 0 0 @@ -485,6 +480,18 @@ 0 0 + + 3 + 21 + 1 + 0 + 0 + 0 + ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c + stm32f1xx_hal_uart.c + 0 + 0 + @@ -495,7 +502,7 @@ 0 4 - 20 + 22 1 0 0 @@ -515,7 +522,7 @@ 0 5 - 21 + 23 1 0 0 @@ -527,7 +534,7 @@ 5 - 22 + 24 5 0 0 @@ -539,7 +546,7 @@ 5 - 23 + 25 1 0 0 @@ -551,7 +558,7 @@ 5 - 24 + 26 5 0 0 @@ -563,6 +570,110 @@ + + Modbus + 1 + 0 + 0 + 0 + + 6 + 27 + 1 + 0 + 0 + 0 + ..\Core\Modbus\crc_algs.c + crc_algs.c + 0 + 0 + + + 6 + 28 + 5 + 0 + 0 + 0 + ..\Core\Modbus\crc_algs.h + crc_algs.h + 0 + 0 + + + 6 + 29 + 1 + 0 + 0 + 0 + ..\Core\Modbus\modbus.c + modbus.c + 0 + 0 + + + 6 + 30 + 5 + 0 + 0 + 0 + ..\Core\Modbus\modbus.h + modbus.h + 0 + 0 + + + 6 + 31 + 5 + 0 + 0 + 0 + ..\Core\Modbus\modbus_config.h + modbus_config.h + 0 + 0 + + + 6 + 32 + 5 + 0 + 0 + 0 + ..\Core\Modbus\modbus_data.h + modbus_data.h + 0 + 0 + + + 6 + 33 + 1 + 0 + 0 + 0 + ..\Core\Modbus\rs_message.c + rs_message.c + 0 + 0 + + + 6 + 34 + 5 + 0 + 0 + 0 + ..\Core\Modbus\rs_message.h + rs_message.h + 0 + 0 + + + ::CMSIS 0 diff --git a/MDK-ARM/CANEmu.uvprojx b/MDK-ARM/CANEmu.uvprojx index eede93a..2ca818f 100644 --- a/MDK-ARM/CANEmu.uvprojx +++ b/MDK-ARM/CANEmu.uvprojx @@ -19,7 +19,7 @@ STMicroelectronics Keil.STM32F1xx_DFP.2.4.0 http://www.keil.com/pack/ - IRAM(0x20000000-0x20004FFF) IROM(0x8000000-0x800FFFF) CLOCK(8000000) CPUTYPE("Cortex-M3") TZ + IRAM(0x20000000-0x20004FFF) IROM(0x8000000-0x800FFFF) CLOCK(8000000) CPUTYPE("Cortex-M3") TZ @@ -341,7 +341,7 @@ USE_HAL_DRIVER,STM32F103xB - ../Core/Inc;../Drivers/STM32F1xx_HAL_Driver/Inc;../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy;../Drivers/CMSIS/Device/ST/STM32F1xx/Include;../Drivers/CMSIS/Include;..\Core\CANEmu + ../Core/Inc;../Drivers/STM32F1xx_HAL_Driver/Inc;../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy;../Drivers/CMSIS/Device/ST/STM32F1xx/Include;../Drivers/CMSIS/Include;../Core/CANEmu;..\Core\Modbus @@ -410,6 +410,62 @@ 1 ../Core/Src/tim.c + + usart.c + 1 + ../Core/Src/usart.c + + + 2 + 0 + 0 + 0 + 0 + 1 + 2 + 2 + 2 + 2 + 11 + + + 1 + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + stm32f1xx_it.c 1 @@ -490,6 +546,62 @@ 1 ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c + + stm32f1xx_hal_uart.c + 1 + ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c + + + 2 + 0 + 0 + 0 + 0 + 1 + 2 + 2 + 2 + 2 + 11 + + + 1 + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + @@ -527,6 +639,51 @@ + + Modbus + + + crc_algs.c + 1 + ..\Core\Modbus\crc_algs.c + + + crc_algs.h + 5 + ..\Core\Modbus\crc_algs.h + + + modbus.c + 1 + ..\Core\Modbus\modbus.c + + + modbus.h + 5 + ..\Core\Modbus\modbus.h + + + modbus_config.h + 5 + ..\Core\Modbus\modbus_config.h + + + modbus_data.h + 5 + ..\Core\Modbus\modbus_data.h + + + rs_message.c + 1 + ..\Core\Modbus\rs_message.c + + + rs_message.h + 5 + ..\Core\Modbus\rs_message.h + + + ::CMSIS diff --git a/MDK-ARM/CANEmu/CANEmu.axf b/MDK-ARM/CANEmu/CANEmu.axf index cbfa8fd..90b045a 100644 Binary files a/MDK-ARM/CANEmu/CANEmu.axf and b/MDK-ARM/CANEmu/CANEmu.axf differ diff --git a/MDK-ARM/CANEmu/CANEmu.build_log.htm b/MDK-ARM/CANEmu/CANEmu.build_log.htm index def2cb8..49ccfd8 100644 --- a/MDK-ARM/CANEmu/CANEmu.build_log.htm +++ b/MDK-ARM/CANEmu/CANEmu.build_log.htm @@ -27,9 +27,12 @@ Project File Date: 08/04/2025

Output:

*** Using Compiler 'V6.19', folder: 'C:\Keil_v5\ARM\ARMCLANG\Bin' Build target 'CANEmu' -compiling canform.c... +compiling canEmu.c... +compiling main.c... +compiling modbus.c... +compiling rs_message.c... linking... -Program Size: Code=8230 RO-data=302 RW-data=12 ZI-data=2284 +Program Size: Code=11542 RO-data=338 RW-data=12 ZI-data=3116 FromELF: creating hex file... "CANEmu\CANEmu.axf" - 0 Error(s), 0 Warning(s). diff --git a/MDK-ARM/CANEmu/CANEmu.hex b/MDK-ARM/CANEmu/CANEmu.hex index d382fea..dd47809 100644 --- a/MDK-ARM/CANEmu/CANEmu.hex +++ b/MDK-ARM/CANEmu/CANEmu.hex @@ -1,8 +1,8 @@ :020000040800F2 -:10000000F808002089010008AD1600086D150008E9 -:10001000A916000891020008391A00080000000023 -:100020000000000000000000000000005D17000854 -:100030008D030008000000001D170008B517000818 +:10000000380C002089010008651E0008CD1B00087F +:10001000611E0008910200088D2500080000000004 +:100020000000000000000000000000009121000816 +:100030008D03000800000000D51E0008E92100081B :10004000A3010008A3010008A3010008A301000800 :10005000A3010008A3010008A3010008A3010008F0 :10006000A3010008A3010008A3010008A3010008E0 @@ -17,17 +17,17 @@ :1000F00000F03AF80AA090E8000C82448344AAF188 :100100000107DA4501D100F02FF8AFF2090EBAE885 :100110000F0013F0010F18BFFB1A43F0010318473B -:100120001420000034200000103A24BF78C878C1A1 +:10012000282D0000482D0000103A24BF78C878C15F :10013000FAD8520724BF30C830C144BF04680C60ED :10014000704700000023002400250026103A28BF35 :1001500078C1FBD8520728BF30C148BF0B60704739 :100160001FB51FBD10B510BD00F058F81146FFF7C0 -:10017000F7FF01F083FF00F076F803B4FFF7F2FF1A +:10017000F7FF02F02DFD00F076F803B4FFF7F2FF71 :1001800003BC00F07DF8000009488047094800479B :10019000FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE737 :1001A000FEE7FEE704480549054A064B7047000094 -:1001B00029180008ED000008F8020020F8080020C7 -:1001C000F8040020F80400204FF0000200B51346A8 +:1001B0005D220008ED00000838060020380C002001 +:1001C00038080020380800204FF0000200B5134620 :1001D00094469646203922BFA0E80C50A0E80C5067 :1001E000B1F12001BFF4F7AF090728BFA0E80C5018 :1001F00048BF0CC05DF804EB890028BF40F8042B11 @@ -44,495 +44,704 @@ :1002A0004FF08041086840F00100086040F61041BE :1002B000C4F201010120086002B0704780B584B02B :1002C00003900398006A08B9FFE75DE0039800F126 -:1002D0001801828CADF80820029A01F0E5FC039821 +:1002D0001801028DADF80820029A02F08FFA0398F7 :1002E000016A4AF20020C0F24A4000EB5100B0FB24 :1002F000F1F040F27001C2F2000108602420C4F263 :1003000000000068ADF80600BDF80600ADF8040076 -:1003100000200090FFE7009840F27411C2F2000143 -:100320000968884229D2FFE7009940F27400C2F2BE +:1003100000200090FFE7009840F2F831C2F200019F +:100320000968884229D2FFE7009940F2F720C2F21B :100330000000405C38B1FFE740F61041C4F2010113 :100340000120086006E040F61441C4F201010120DA :100350000860FFE740F27000C2F200000168BDF8DB -:1003600004000844ADF80400BDF8040001F0ACFE40 +:1003600004000844ADF80400BDF8040002F024FDC8 :10037000FFE7009801300090CDE740F61041C4F24D :10038000010101200860FFE704B080BD7047000054 :1003900081B0EFF3108072B60090FFE7FEE7000037 -:1003A00080B584B0039000F0C5F9029003980190E5 -:1003B0000198013048B1FFE740F20400C2F20000AA -:1003C0000178019808440190FFE7FFE700F0B2F9D7 -:1003D0000299401A0199884201D2FFE7F6E704B07A -:1003E00080BD000090B00F900E9100200D900990FC -:1003F000FFE70E9800680D99C840002800F07F8143 -:10040000FFE70D99012088400C900E9800680C9928 -:1004100008400B900B980C99884240F06C81FFE7E4 -:100420000E9840680590002851D0FFE705980128F4 -:100430003AD0FFE7059802283FD0FFE70598032848 -:100440005FD0FFE70598112832D0FFE70598122802 -:1004500038D0FFE705980021C1F21101884236D05B -:10046000FFE705980021C1F2120188422FD0FFE773 -:1004700005980021C1F22101884228D0FFE70598A4 -:100480000021C1F22201884221D0FFE70598002116 -:10049000C1F2310188421AD0FFE705980021C1F26C -:1004A0003201884213D02FE00E98C06809902CE0EA -:1004B0000E98C0680430099027E00E98C068083094 -:1004C000099022E00E98C0680C3009901DE00E984B -:1004D000806818B9FFE70420099011E00E98806841 -:1004E000012806D1FFE7082009900C980F990861B0 -:1004F00005E0082009900C980F994861FFE7FFE795 -:1005000003E00020099000E0FFE70B98FF2803D8E4 -:10051000FFE70F98049003E00F9804300490FFE782 -:10052000049808900B98FF2804D8FFE70D988000E6 -:10053000039006E00D996FF01F0000EB810003901F -:10054000FFE70398079008980068079A0F219140E9 -:100550008843099991400843089908600E98C0792A -:10056000C006002840F1C680FFE7FFE741F218000F -:10057000C4F20200016841F001010160006800F06E -:10058000010006900698FFE70D9820F0030008216F -:10059000C4F2010140580A900D9800F00300810058 -:1005A0000F2000FA01F10A9888430A900F9840F64C -:1005B0000001C4F20101884203D1FFE7002002904C -:1005C00026E00F9840F60041C4F20101884203D1B1 -:1005D000FFE70120019018E00F9841F20001C4F2FA -:1005E0000101884203D1FFE7022000900AE00F9941 -:1005F00041F20042C4F201020420914208BF0320EC -:100600000090FFE700980190FFE701980290FFE754 -:1006100002980D9901F00301890000FA01F10A988E -:1006200008430A900A980D9921F003010822C4F2A8 -:10063000010288500E988079C006002809D5FFE78E -:100640000B9A40F20841C4F20101086810430860A7 -:1006500008E00B9A40F20841C4F201010868904397 -:100660000860FFE70E9880798006002809D5FFE72B -:100670000B9A40F20C41C4F2010108681043086073 -:1006800008E00B9A40F20C41C4F201010868904363 -:100690000860FFE70E9880798007002809D5FFE7FA -:1006A0000B9A40F20441C4F201010868104308604B -:1006B00008E00B9A40F20441C4F20101086890433B -:1006C0000860FFE70E988079C00748B1FFE70B9AF2 -:1006D00040F20041C4F2010108681043086008E0DC -:1006E0000B9A40F20041C4F201010868904308608F -:1006F000FFE7FFE7FFE70D9801300D9079E610B0B6 -:100700007047000082B00190ADF802108DF8012012 -:100710009DF8010028B1FFE7BDF8020001990861CA -:1007200005E0BDF80200000401990861FFE702B08E -:100730007047000040F2F020C2F2000000687047ED -:1007400040F20400C2F20000027840F2F021C2F24E -:1007500000010868104408607047000080B542F24C -:100760000001C4F20201086840F010000860032094 -:1007700000F08CF80F2000F005F800F03BF80020A6 -:1007800080BD000080B582B0009040F20000C2F24F -:100790000000006840F20401C2F200010A784FF440 -:1007A0007A71B1FBF2F1B0FBF1F000F03FFD20B146 -:1007B000FFE701208DF8070018E000980F280DD8FA -:1007C000FFE700994FF0FF30002200F045F8009855 -:1007D00040F20801C2F20001086003E001208DF838 -:1007E000070003E000208DF80700FFE79DF80700F1 -:1007F00002B080BD83B0FFE741F21800C4F20200EE -:10080000016841F001010160006800F00100029000 -:100810000298FFE7FFE741F21C00C4F20200016802 -:1008200041F080510160006800F080500190019813 -:10083000FFE7FFE70421C4F2010108680090009877 -:1008400020F0E0600090009840F000700090009868 -:100850000860FFE703B0704780B586B08DF81700D9 -:10086000049103920020029001F0E8F802909DF9B3 -:100870001700019002980499039A00F019FF0146AD -:10088000019801F0E3F806B080BD000080B582B0A9 -:100890000190019801F0FCF802B080BD80B584B0F1 -:1008A00002900191029820B9FFE701208DF80F0016 -:1008B0001BE1019842F20001C4F20201096801F053 -:1008C0000701884216D9FFE742F20000C4F2020095 -:1008D000016821F00701019A11430160006800F0EE -:1008E00007000199884204D0FFE701208DF80F002E -:1008F000FBE0FFE702980078800700282AD5FFE791 -:10090000029800784007002809D5FFE741F204016A -:10091000C4F20201086840F4E0600860FFE7029852 -:1009200000780007002809D5FFE741F20401C4F26E -:100930000201086840F460500860FFE741F20401DA -:10094000C4F20201086820F0F000029A9268104395 -:100950000860FFE702980078C007002860D0FFE732 -:100960000298406801280ED1FFE741F20000C4F26E -:10097000020000688003002804D4FFE701208DF8FE -:100980000F00B2E021E00298406802280ED1FFE794 -:1009900041F20000C4F2020000688001002804D483 -:1009A000FFE701208DF80F009FE00DE041F200000D -:1009B000C4F2020000688007002804D4FFE7012089 -:1009C0008DF80F0091E0FFE7FFE741F20401C4F268 -:1009D0000201086820F00300029A52681043086080 -:1009E000FFF7A8FE0090FFE741F20400C4F2020006 -:1009F000006800F00C0002994968B0EB810F0ED03E -:100A0000FFE7FFF797FE0099401A41F289318842CB -:100A100004D3FFE703208DF80F0066E0E4E7FFE76B -:100A2000019842F20001C4F20201096801F00701D5 -:100A3000884216D2FFE742F20000C4F202000168C9 -:100A400021F00701019A11430160006800F00700DE -:100A50000199884204D0FFE701208DF80F0044E09F -:100A6000FFE702980078400700280CD5FFE741F225 -:100A70000401C4F20201086820F4E060029AD2681E -:100A800010430860FFE702980078000700280DD5A2 -:100A9000FFE741F20401C4F20201086820F460504B -:100AA000029A126940EAC2000860FFE700F022F8EB -:100AB00041F20401C4F202010968C9B20A0942F212 -:100AC0001211C0F60001895CC84040F20001C2F278 -:100AD0000001086040F20800C2F200000068FFF761 -:100AE00051FE00208DF80F00FFE79DF80F0004B0C5 -:100AF00080BD000086B00020059004900390029015 -:100B0000019041F20400C4F20200006805900598CB -:100B100000F00C000146009100283FD0FFE700984C -:100B2000042804D0FFE70098082806D037E041F2F7 -:100B30000020C0F27A00019037E00598C0F38341AD -:100B400042F22210C0F60000405C02909DF81600B0 -:100B5000C007C0B1FFE741F20400C4F20200006820 -:100B6000C0F3404142F23210C0F60000405C0490F5 -:100B7000029841F20021C0F27A0148430499B0FB87 -:100B8000F1F0039007E0029840F60011C0F23D0139 -:100B900048430390FFE70398019006E0FFE741F226 -:100BA0000020C0F27A000190FFE7019806B070477C -:100BB00080B586B00490049820B9FFE701208DF835 -:100BC00017002EE304980078C007002800F0AE80DC -:100BD000FFE741F20400C4F20200006800F00C00DC -:100BE000042813D0FFE741F20400C4F202000068B9 -:100BF00000F00C0008281BD1FFE741F20400C4F20A -:100C000002000068C003002812D5FFE741F200008F -:100C1000C4F2020000688003002808D5FFE70498AA -:100C2000406820B9FFE701208DF81700F9E27CE069 -:100C3000FFE704984068B0F5803F09D1FFE741F233 -:100C40000001C4F20201086840F48030086032E01C -:100C50000498406868B9FFE741F20001C4F202015C -:100C6000086820F480300860086820F4802008605C -:100C700020E004984068B0F5A02F0DD1FFE741F2C5 -:100C80000001C4F20201086840F48020086008688E -:100C900040F4803008600CE041F20001C4F202012F -:100CA000086820F480300860086820F4802008601C -:100CB000FFE7FFE7FFE7FFE704984068D0B1FFE7F1 -:100CC000FFF738FD0390FFE741F20000C4F2020095 -:100CD0000068800300280CD4FFE7FFF72BFD039981 -:100CE000401A652804D3FFE703208DF8170098E227 -:100CF000EAE719E0FFF71EFD0390FFE741F200006D -:100D0000C4F202000068800300280CD5FFE7FFF75B -:100D100011FD0399401A652804D3FFE703208DF8DD -:100D200017007EE2EAE7FFE7FFE7FFE704980078B5 -:100D30008007002840F18D80FFE741F20400C4F2F3 -:100D40000200006810F00C0F13D0FFE741F204001E -:100D5000C4F20200006800F00C00082829D1FFE767 -:100D600041F20400C4F202000068C003002820D44D -:100D7000FFE741F20000C4F202000068800700288B -:100D800009D5FFE704980069012804D0FFE7012096 -:100D90008DF8170045E241F20001C4F20201086833 -:100DA00020F0F800049A526940EAC2000860FFE7A8 -:100DB0004EE00498006958B3FFE70021C4F24221D5 -:100DC00001200860FFF7B6FC0390FFE741F2000046 -:100DD000C4F202000068800700280CD4FFE7FFF788 -:100DE000A9FC0399401A032804D3FFE703208DF8D8 -:100DF000170016E2EAE741F20001C4F202010868B6 -:100E000020F0F800049A526940EAC20008601EE02F -:100E10000021C4F2422100200860FFF78BFC039000 -:100E2000FFE741F20000C4F20200006880070028DA -:100E30000CD5FFE7FFF77EFC0399401A032804D383 -:100E4000FFE703208DF81700EBE1EAE7FFE7FFE794 -:100E5000FFE7049800780007002848D5FFE70498CA -:100E6000806918B3FFE740F28041C4F242210120BB -:100E70000860FFF75FFC0390FFE741F22400C4F233 -:100E800002000068800700280CD4FFE7FFF752FC3F -:100E90000399401A032804D3FFE703208DF81700B5 -:100EA000BFE1EAE7012000F03BFC1FE040F2804197 -:100EB000C4F2422100200860FFF73CFC0390FFE7EA -:100EC00041F22400C4F202000068800700280CD51B -:100ED000FFE7FFF72FFC0399401A032804D3FFE72D -:100EE00003208DF817009CE1EAE7FFE7FFE704988D -:100EF00000784007002840F1D880FFE700208DF8F7 -:100F0000070041F21C00C4F202000068C000002883 -:100F100013D4FFE7FFE741F21C00C4F202000168AE -:100F200041F080510160006800F08050009000980E -:100F3000FFE701208DF80700FFE747F20000C4F249 -:100F400000000068C005002822D4FFE747F2000136 -:100F5000C4F20001086840F480700860FFF7EAFB03 -:100F60000390FFE747F20000C4F200000068C005EC -:100F700000280CD4FFE7FFF7DDFB0399401A652832 -:100F800004D3FFE703208DF817004AE1EAE7FFE703 -:100F9000FFE70498C068012809D1FFE741F220016A -:100FA000C4F20201086840F00100086031E00498D2 -:100FB000C06868B9FFE741F22001C4F20201086885 -:100FC00020F001000860086820F0040008601FE0BD -:100FD0000498C06805280DD1FFE741F22001C4F252 -:100FE0000201086840F004000860086840F0010051 -:100FF00008600CE041F22001C4F20201086820F010 -:1010000001000860086820F004000860FFE7FFE7BF -:10101000FFE7FFE70498C068E0B1FFE7FFF78AFB4E -:101020000390FFE741F22000C4F20200006880074D -:1010300000280ED4FFE7FFF77DFB0399401A41F229 -:101040008931884204D3FFE703208DF81700E8E0D8 -:10105000E8E71BE0FFF76EFB0390FFE741F220009B -:10106000C4F202000068800700280ED5FFE7FFF7F2 -:1010700061FB0399401A41F28931884204D3FFE7AA -:1010800003208DF81700CCE0E8E7FFE79DF80700A4 -:10109000012809D1FFE741F21C01C4F202010868EE -:1010A00020F080500860FFE7FFE70498C06900283F -:1010B00000F0B380FFE741F20400C4F202000068D0 -:1010C00000F00C00082800F08280FFE70498C06957 -:1010D00002285CD1FFE76021C4F2422100200860B1 -:1010E000FFF728FB0390FFE741F20000C4F2020083 -:1010F0000068800100280CD5FFE7FFF71BFB039970 -:10110000401A032804D3FFE703208DF8170088E076 -:10111000EAE70498006AB0F5803F0CD1FFE741F29E -:101120000401C4F20201086820F40030049A9268B5 -:1011300010430860FFE741F20401C4F202010868AD -:1011400020F47410049B1A6A5B6A1A431043086007 -:101150006021C4F2422101200860FFF7EBFA0390FE -:10116000FFE741F20000C4F202000068800100289D -:101170000CD4FFE7FFF7DEFA0399401A032804D3E3 -:10118000FFE703208DF817004BE0EAE71EE060213F -:10119000C4F2422100200860FFF7CCFA0390FFE779 -:1011A00041F20000C4F202000068800100280CD562 -:1011B000FFE7FFF7BFFA0399401A032804D3FFE7BC -:1011C00003208DF817002CE0EAE7FFE724E00498FD -:1011D000C069012804D1FFE701208DF8170020E045 -:1011E00041F20400C4F2020000680290029800F488 -:1011F00080300499096A884208D1FFE7029800F418 -:1012000070100499496A884204D0FFE701208DF8E4 -:10121000170006E0FFE7FFE7FFE700208DF8170063 -:10122000FFE79DF8170006B080BD000080B582B0D2 -:101230000190019800F094FA02B080BD85B003904F -:101240000291FFE7039890F83C00012804D1FFE7E2 -:1012500002208DF813005BE00399012081F83C0027 -:10126000FFE7FFE70399022081F83D00039800683B -:10127000406801900398006880680090019820F011 -:10128000700001900298016801980843019001984C -:101290000399096848600398006842F60041C4F267 -:1012A0000101884218D0FFE703980068B0F1804F31 -:1012B00012D0FFE70398006840F20041C4F2000139 -:1012C000884209D0FFE70398006840F60001C4F2A5 -:1012D000000188420ED1FFE7009820F080000090C6 -:1012E00002984168009808430090009803990968A3 -:1012F0008860FFE70399012081F83D00FFE703992B -:10130000002081F83C00FFE700208DF81300FFE784 -:101310009DF8130005B0704780B582B0009000982A -:1013200020B9FFE701208DF807003FE0009890F812 -:101330003D0040B9FFE70099002081F83C0000988B -:1013400000F038F8FFE70099022081F83D0000998D -:1013500051F8040B00F06AFA0099012081F8460068 -:10136000FFE70099012081F83E00009981F83F00D5 -:10137000009981F84000009981F84100FFE7FFE7FC -:101380000099012081F84200009981F843000099FA -:1013900081F84400009981F84500FFE70099012099 -:1013A00081F83D0000208DF80700FFE79DF8070059 -:1013B00002B080BD82B0019001980068B0F1804F0A -:1013C00010D1FFE7FFE741F21C00C4F20200016800 -:1013D00041F001010160006800F0010000900098F8 -:1013E000FFE7FFE702B0704780B586B00490039135 -:1013F00000208DF80B00FFE7049890F83C000128CE -:1014000004D1FFE702208DF81700ABE0049901201A -:1014100081F83C00FFE7FFE70499022081F83D00D6 -:101420000498006880680190019820F0770001908E -:10143000019820F47F400190019804990968886020 -:10144000039800680090002872D0FFE700981028E9 -:101450006ED0FFE7009820286AD0FFE70098302878 -:1014600066D0FFE70098402855D0FFE70098502845 -:1014700037D0FFE70098602840D0FFE70098702839 -:101480000BD0FFE70098B0F5805F05D0FFE700982C -:10149000B0F5005F16D052E055E004980068039B59 -:1014A0005A689968DB6800F045FA0498006880681B -:1014B0000190019840F07700019001980499096823 -:1014C000886040E004980068039B5A689968DB686C -:1014D00000F030FA04980168886840F48040886021 -:1014E00031E004980068039A5168D26800F052FA1B -:1014F00004980068502100F037FA24E0049800684E -:10150000039A5168D26800F06DFA0498006860216F -:1015100000F02AFA17E004980068039A5168D2682C -:1015200000F038FA04980068402100F01DFA0AE043 -:10153000049800680399096800F016FA03E0012096 -:101540008DF80B00FFE70499012081F83D00FFE7CB -:101550000499002081F83C00FFE79DF80B008DF80E -:101560001700FFE79DF8170006B080BDFFE7FEE714 -:1015700080B58CB000200B900A9009900890FFE78E -:1015800041F21800C4F20200016841F0100101604C -:10159000006800F0100007900798FFE7FFE741F2AE -:1015A0001800C4F20200016841F0200101600068E7 -:1015B00000F0200006900698FFE7FFE741F21800D0 -:1015C000C4F20200016841F008010160006800F007 -:1015D000080005900598FFE7FFE741F21800C4F204 -:1015E0000200016841F004010160006800F004009D -:1015F00004900498FFE740F60040C4F20100039015 -:101600000121019100220292FFF77CF8019A0299D0 -:101610000398089209920A9102210B9108A9FEF7FA -:10162000E1FE0CB080BD000080B588B000210191C2 -:1016300007910691059104910391029140F2A41043 -:10164000C2F200004FF080420260416081604FF6BC -:10165000FF72C26001618161FFF75EFE18B1FFE7B2 -:10166000FEF796FEFFE74FF48050049040F2A4107E -:10167000C2F2000004A9FFF7B7FE18B1FFE7FEF7BA -:1016800087FEFFE700200290039040F2A410C2F210 -:10169000000002A9FFF7D2FD18B1FFE7FEF778FEC0 -:1016A000FFE708B080BD0000FFE7FEE7FFE7FEE7C9 -:1016B00088B0079006910592079800F00700049003 -:1016C0000498C0F10700052803D3FFE70420019028 -:1016D00004E00498C0F107000190FFE7019803902F -:1016E00004980430062803D8FFE70020009003E0A8 -:1016F000049803380090FFE7009802900698039939 -:10170000012202FA01F101390840029B9840059933 -:101710009A40013A1140084308B0704770470000F2 -:1017200082B00190019840F20001C2F20001096804 -:10173000C90844F6D352C1F26202A1FB0221890911 -:1017400048430090FFE700BFFFE70098411E00916B -:101750000028F8D1FFE702B0704700007047000092 -:1017600080B582B0009000980138B0F1807F03D33B -:10177000FFE70120019019E0009801384EF21401B2 -:10178000CEF2000108604FF0FF300F2100F05EF94B -:101790004EF21801CEF20001002008604EF2100255 -:1017A000CEF20002072111600190FFE7019802B01C -:1017B00080BD000080B5FEF7C3FF80BD80B590B04E -:1017C00006A800902821FEF7FFFC0098002305934F -:1017D0000493039302930193012206924FF4803104 -:1017E000079108930A9202220D920E914FF4E01194 -:1017F0000F91FFF7DDF918B1FFE7FEF7C9FDFFE72D -:101800000F20019002210291002003904FF480628A -:101810000492059001A8FFF741F818B1FFE7FEF721 -:10182000B7FDFFE710B080BD7047000083B00290A5 -:101830000191029800680090029842F60041C4F2BB -:101840000101884215D0FFE70298B0F1804F10D017 -:10185000FFE7029840F20041C4F20001884208D03C -:10186000FFE7029840F60001C4F2000188420AD165 -:10187000FFE7009820F07000009001984168009800 -:1018800008430090FFE7029842F60041C4F20101CC -:10189000884215D0FFE70298B0F1804F10D0FFE7E3 -:1018A000029840F20041C4F20001884208D0FFE7EC -:1018B000029840F60001C4F2000188420AD1FFE715 -:1018C000009820F4407000900198C1680098084387 -:1018D0000090FFE7009820F08000019949690843D3 -:1018E0000090009802990860019880680299C86287 -:1018F0000198006802998862029842F60041C4F299 -:101900000101884205D1FFE7019800690299086347 -:10191000FFE702990120486102980069C00730B1D1 -:10192000FFE70299086920F001000861FFE703B0B2 -:101930007047000085B004900391029201930498CF -:1019400080680090009820F47F40009003980299EE -:10195000019A41EA0221014300980843009000984F -:101960000499886005B0704783B002900191029895 -:1019700080680090009820F0700000900198009915 -:10198000084340F00700009000980299886003B077 -:101990007047000085B00490039102920498006A99 -:1019A00000900499086A20F0010008620498806998 -:1019B0000190019820F0F00001900299019840EA0E -:1019C00001100190009820F00A00009003990098FF -:1019D000084300900198049988610098049908626E -:1019E00005B0704785B00490039102920498006A94 -:1019F00000900499086A20F0100008620498806939 -:101A00000190019820F4704001900299019840EAF9 -:101A100001300190009820F0A000009003990098F8 -:101A200040EA011000900198049988610098049997 -:101A3000086205B070470000FFE7FEE74EF60C5065 -:101A4000CEF200000068C0F30220704782B08DF82B -:101A5000070000919DF9070000280AD4FFE70098CD -:101A600000019DF907104EF20042CEF200028854A8 -:101A70000BE0009800019DF8071001F00F014EF6F1 -:101A80001452CEF200028854FFE702B07047000003 -:101A900083B00290029800F0070000904EF60C51BF -:101AA000CEF200010868019001984FF6FF02104045 -:101AB00001900198009A40EA02200022C0F2FA52F6 -:101AC000104301900198086003B0704783B0029002 -:101AD00001918DF8032001980068FF280CD8FFE7DA -:101AE0009DF803000299DDF804C0DCF80020531CC7 -:101AF000CCF800308854FFE703B0704780B586B05B -:101B00000590049103928DF80B309DF80B0001387D -:101B10000190FFE7019800280ED4FFE7059804998B -:101B2000039A019BDA4002F00102FFF7CFFFFFE7C3 -:101B3000019801380190EDE706B080BD80B588B00E -:101B400084460A98CDF81CC00691059204938DF83E -:101B50000F00049900200860079800788DF80E00A7 -:101B6000012000908DF80D00059804999DF80E2035 -:101B7000FFF7ACFF00980290FFE7029806998842B1 -:101B80003CD2FFE707980299405C8DF80700059862 -:101B900004999DF80720FFF799FF9DF807009DF82D -:101BA0000E1088421DD1FFE79DF80D0001308DF821 -:101BB0000D009DF80D00052812D1FFE79DF80F00DC -:101BC00050B9FFE7059804999DF80720B2FA82F210 -:101BD0005209FFF77BFFFFE700208DF80D00FFE7BC -:101BE00007E001208DF80D009DF807008DF80E002C -:101BF000FFE7FFE7029801300290BEE708B080BD22 -:101C000085B0049003910020ADF80A000190FFE731 -:101C10000198039988422AD2FFE704980199405C11 -:101C20008DF80300BDF80A00C0F380308DF8020083 -:101C3000BDF80A004000ADF80A009DF803009DF8C9 -:101C40000210484008D0FFE7BDF80A0044F299515D -:101C50004840ADF80A00FFE7BDF80A006FF3DF3037 -:101C6000ADF80A00FFE7019801300190D0E7BDF818 -:101C70000A0005B07047000081B00090009840F263 -:101C8000EC21C2F20001096888420BD2FFE7009AFA -:101C900040F2EC11C2F20001885CB0FA80F0400919 -:101CA0008854FFE701B0704780B5A6B02492BDF814 -:101CB0009020ADF894202390229140F2EC21C2F2C2 -:101CC00000010F9100220A6040F27810C2F2000079 -:101CD000027040F2EC10C2F20000FFF7F7FE0F981E -:101CE0000068219023988068002858D1FFE7239846 -:101CF00002686FF3DF2240F2EC10C2F200000C9099 -:101D000040F2EC21C2F200010E910B23FFF7F6FE28 -:101D10000C980E990A680B3A2092239A127BFFF7CF -:101D2000D5FE0C980E990A68013A1F9200220D9276 -:101D3000FFF7CCFE0C980D9A0E990B68013B1E9391 -:101D4000FFF7C4FE0E98006801381D909DF89400BE -:101D50008008C00720B1FFE71F98FFF78DFFFFE75E -:101D60009DF894004008C00720B1FFE71E98FFF7D8 -:101D700083FFFFE79DF894000009C00720B1FFE74B -:101D80001D98FFF779FFFFE79DF894004009C00711 -:101D900020B1FFE72098FFF76FFFFFE78AE0239865 -:101DA000406820F060401C901C98C0F38A4240F2CA -:101DB000EC10C2F20000099040F2EC21C2F20001E6 -:101DC0000B910B23FFF79AFE09980B990A680B3ABF -:101DD0001B9201220892FFF779FE089A09980B9945 -:101DE0000B68013B1A93FFF771FE09980B990A687B -:101DF000013A19921C9A6FF39F421223FFF77EFE5D -:101E000009980B990A68123A1892239A127BFFF7E5 -:101E10005DFE09980B990A68013A179200220A920E -:101E2000FFF754FE09980A9A0B990B68013B169329 -:101E3000FFF74CFE0B980068013815909DF8940050 -:101E4000C00720B1FFE71A98FFF716FFFFE79DF8DC -:101E500094004008C00720B1FFE71998FFF70CFF76 -:101E6000FFE79DF894008008C00720B1FFE71798AE -:101E7000FFF702FFFFE79DF89400C008C00720B1FC -:101E8000FFE71698FFF7F8FEFFE79DF894000009BA -:101E9000C00720B1FFE71598FFF7EEFEFFE79DF8BA -:101EA00094004009C00720B1FFE71B98FFF7E4FE4C -:101EB000FFE7FFE72398006900F00F0240F2EC1003 -:101EC000C2F2000040F2EC21C2F200010423FFF74D -:101ED00015FE2398C068002867D1FFE723980069A2 -:101EE00000F00F008DF8530000208DF85200FFE73E -:101EF0009DF852109DF8532000209142079008DA77 -:101F0000FFE79DF8521000200829B8BF0120079074 -:101F1000FFE70798C007002846D0FFE740F2EC2013 -:101F2000C2F200000068139022989DF85210405CA5 -:101F30008DF84B002398007D012812D1FFE79DF812 -:101F4000520006280DDBFFE740F2EC10C2F2000061 -:101F500040F2EC21C2F2000100220823FFF7CEFD7F -:101F60000DE09DF84B2040F2EC10C2F2000040F270 -:101F7000EC21C2F200010823FFF7C0FDFFE79DF846 -:101F800094008009C00740B1FFE79DF8520020B9D6 -:101F9000FFE71398FFF770FEFFE7FFE79DF8520099 -:101FA00001308DF85200A3E7FFE740F2EC20C2F2C7 -:101FB00000000590016840F2EC10C2F200000690AB -:101FC000FFF71EFE059902460698ADF848200A68FC -:101FD0001192BDF848200F23FFF790FD9DF8941053 -:101FE0000020B0EBD11F04D0FFE71198FFF744FEAB -:101FF000FFE740F2EC10C2F20000029040F2EC2148 -:10200000C2F20001039101220492FFF75FFD0298E2 -:10201000039909689DF8952002F001026B461A6049 -:1020200040F27402C2F2000240F27413C2F20003E2 -:10203000FFF784FD02980399049AFFF747FD029881 -:102040000399049AFFF742FD00201090FFE71098D3 -:10205000062810DCFFE740F2EC10C2F2000040F26C -:10206000EC21C2F200010122FFF730FDFFE71098DA -:1020700001301090EBE726B080BD000080B582B043 -:1020800000200190FEF76AFBFFF798FBFFF770FA5C -:10209000FFF7CAFA40F27C10C2F2000000904EF640 -:1020A0004801C0F20101FEF7F5F8009940F2231053 -:1020B0000860FFE76420FEF773F940F27C10C2F27B -:1020C0000000FEF7FBF8F5E783B0ADF80A0044F234 -:1020D0004020C0F20F00019000200090FFE7242074 -:1020E000C4F200000068BDF80A10401A00B2B0F156 -:1020F000FF3F0CDCFFE700980130009044F24121E3 -:10210000C0F20F01884201D3FFE700E0E7E703B028 -:1021100070470000000000000000010203040607F1 -:10212000080902030405060708090A0B0C0D0E0F27 -:1021300010100102582100080000002010000000CB -:10214000280100086821000810000020E8080000AD -:10215000440100080000000000127A0001000000A5 -:08216000100000000000000067 +:1003A00083B0019000208DF80300019890F821009F +:1003B00002280DD0FFE7019904208863FFE7019927 +:1003C000002081F82000FFE701208DF80B0021E0DC +:1003D00001980168086820F00E0008600198016823 +:1003E000086820F0010008600198C16B026C0120D0 +:1003F00090404860FFE70199012081F82100FFE764 +:100400000199002081F82000FFE79DF803008DF896 +:100410000B00FFE79DF80B0003B0704781B0009020 +:100420000098806B01B0704780B584B0039000F0F5 +:10043000C5F90290039801900198013048B1FFE797 +:1004400040F20400C2F200000178019808440190D3 +:10045000FFE7FFE700F0B2F90299401A01998842DC +:1004600001D2FFE7F6E704B080BD000090B00F9026 +:100470000E9100200D900990FFE70E9800680D99ED +:10048000C840002800F07F81FFE70D9901208840D7 +:100490000C900E9800680C9908400B900B980C99E2 +:1004A000884240F06C81FFE70E9840680590002874 +:1004B00051D0FFE7059801283AD0FFE705980228B8 +:1004C0003FD0FFE7059803285FD0FFE70598112884 +:1004D00032D0FFE70598122838D0FFE705980021B1 +:1004E000C1F21101884236D0FFE705980021C1F220 +:1004F000120188422FD0FFE705980021C1F22101A7 +:10050000884228D0FFE705980021C1F222018842E5 +:1005100021D0FFE705980021C1F2310188421AD0AD +:10052000FFE705980021C1F23201884213D02FE085 +:100530000E98C06809902CE00E98C06804300990AD +:1005400027E00E98C0680830099022E00E98C06835 +:100550000C3009901DE00E98806818B9FFE7042060 +:10056000099011E00E988068012806D1FFE7082065 +:1005700009900C980F99086105E0082009900C98E3 +:100580000F994861FFE7FFE703E00020099000E0D2 +:10059000FFE70B98FF2803D8FFE70F98049003E0CC +:1005A0000F9804300490FFE7049808900B98FF28F8 +:1005B00004D8FFE70D988000039006E00D996FF0D6 +:1005C0001F0000EB81000390FFE703980790089855 +:1005D0000068079A0F219140884309999140084388 +:1005E000089908600E98C079C006002840F1C680BE +:1005F000FFE7FFE741F21800C4F20200016841F092 +:1006000001010160006800F0010006900698FFE714 +:100610000D9820F003000821C4F2010140580A900F +:100620000D9800F0030081000F2000FA01F10A98F4 +:1006300088430A900F9840F60001C4F201018842F5 +:1006400003D1FFE70020029026E00F9840F600411A +:10065000C4F20101884203D1FFE70120019018E0B4 +:100660000F9841F20001C4F20101884203D1FFE773 +:10067000022000900AE00F9941F20042C4F2010208 +:100680000420914208BF03200090FFE700980190EA +:10069000FFE701980290FFE702980D9901F003012E +:1006A000890000FA01F10A9808430A900A980D9906 +:1006B00021F003010822C4F2010288500E988079CB +:1006C000C006002809D5FFE70B9A40F20841C4F2A2 +:1006D000010108681043086008E00B9A40F20841E5 +:1006E000C4F20101086890430860FFE70E98807922 +:1006F0008006002809D5FFE70B9A40F20C41C4F2AE +:10070000010108681043086008E00B9A40F20C41B0 +:10071000C4F20101086890430860FFE70E988079F1 +:100720008007002809D5FFE70B9A40F20441C4F284 +:10073000010108681043086008E00B9A40F2044188 +:10074000C4F20101086890430860FFE70E988079C1 +:10075000C00748B1FFE70B9A40F20041C4F2010123 +:1007600008681043086008E00B9A40F20041C4F2A8 +:100770000101086890430860FFE7FFE7FFE70D9875 +:1007800001300D9079E610B07047000082B0019002 +:10079000ADF802108DF801209DF8010028B1FFE7A7 +:1007A000BDF802000199086105E0BDF802000004EF +:1007B00001990861FFE702B07047000040F2346021 +:1007C000C2F200000068704740F20400C2F200006C +:1007D000027840F23461C2F20001086810440860F7 +:1007E0007047000080B542F20001C4F202010868BF +:1007F00040F010000860032000F08CF80F2000F09B +:1008000005F800F03BF8002080BD000080B582B004 +:10081000009040F20000C2F20000006840F20401C3 +:10082000C2F200010A784FF47A71B1FBF2F1B0FB29 +:10083000F1F000F069FD20B1FFE701208DF807001D +:1008400018E000980F280DD8FFE700994FF0FF300F +:10085000002200F045F8009840F20801C2F20001C1 +:10086000086003E001208DF8070003E000208DF808 +:100870000700FFE79DF8070002B080BD83B0FFE7E7 +:1008800041F21800C4F20200016841F00101016068 +:10089000006800F0010002900298FFE7FFE741F2D4 +:1008A0001C00C4F20200016841F080510160006840 +:1008B00000F0805001900198FFE7FFE70421C4F2A7 +:1008C000010108680090009820F0E0600090009816 +:1008D00040F00070009000980860FFE703B0704798 +:1008E00080B586B08DF81700049103920020029025 +:1008F00001F04EFE02909DF91700019002980499B4 +:10090000039A01F0B1FA0146019801F049FE06B0E0 +:1009100080BD000080B582B00190019801F062FEB8 +:1009200002B080BD80B584B002900191029820B9D8 +:10093000FFE701208DF80F001BE1019842F2000152 +:10094000C4F20201096801F00701884216D9FFE7E5 +:1009500042F20000C4F20200016821F00701019A8E +:1009600011430160006800F007000199884204D03B +:10097000FFE701208DF80F00FBE0FFE70298007809 +:10098000800700282AD5FFE7029800784007002852 +:1009900009D5FFE741F20401C4F20201086840F4FE +:1009A000E0600860FFE7029800780007002809D59A +:1009B000FFE741F20401C4F20201086840F460500C +:1009C0000860FFE741F20401C4F20201086820F068 +:1009D000F000029A926810430860FFE702980078DE +:1009E000C007002860D0FFE70298406801280ED1B8 +:1009F000FFE741F20000C4F2020000688003002813 +:100A000004D4FFE701208DF80F00B2E021E0029846 +:100A1000406802280ED1FFE741F20000C4F2020054 +:100A200000688001002804D4FFE701208DF80F0042 +:100A30009FE00DE041F20000C4F202000068800770 +:100A4000002804D4FFE701208DF80F0091E0FFE7B4 +:100A5000FFE741F20401C4F20201086820F003003C +:100A6000029A526810430860FFF7A8FE0090FFE763 +:100A700041F20400C4F20200006800F00C00029988 +:100A80004968B0EB810F0ED0FFE7FFF797FE0099A2 +:100A9000401A41F28931884204D3FFE703208DF8E0 +:100AA0000F0066E0E4E7FFE7019842F20001C4F2BC +:100AB0000201096801F00701884216D2FFE742F2FD +:100AC0000000C4F20200016821F00701019A1143FD +:100AD0000160006800F007000199884204D0FFE738 +:100AE00001208DF80F0044E0FFE7029800784007EE +:100AF00000280CD5FFE741F20401C4F202010868A6 +:100B000020F4E060029AD26810430860FFE7029880 +:100B10000078000700280DD5FFE741F20401C4F278 +:100B20000201086820F46050029A126940EAC2008B +:100B30000860FFE700F04CF841F20401C4F2020142 +:100B40000968C9B20A0942F60261C0F60001895C6F +:100B5000C84040F20001C2F20001086040F2080003 +:100B6000C2F200000068FFF751FE00208DF80F0070 +:100B7000FFE79DF80F0004B080BD000040F20000C8 +:100B8000C2F200000068704780B5FFF7F7FF41F23E +:100B90000401C4F202010968C1F3022242F61261A3 +:100BA000C0F60001895CC84080BD000080B5FFF739 +:100BB000E5FF41F20401C4F202010968C1F3C22257 +:100BC00042F61261C0F60001895CC84080BD000099 +:100BD00086B000200590049003900290019041F2AD +:100BE0000400C4F2020000680590059800F00C00B3 +:100BF0000146009100283FD0FFE70098042804D068 +:100C0000FFE70098082806D037E041F20020C0F244 +:100C10007A00019037E00598C0F3834142F61A60EC +:100C2000C0F60000405C02909DF81600C007C0B1FD +:100C3000FFE741F20400C4F202000068C0F3404143 +:100C400042F62A60C0F60000405C0490029841F22F +:100C50000021C0F27A0148430499B0FBF1F00390FF +:100C600007E0029840F60011C0F23D0148430390AE +:100C7000FFE70398019006E0FFE741F20020C0F291 +:100C80007A000190FFE7019806B0704780B586B002 +:100C90000490049820B9FFE701208DF817002EE397 +:100CA00004980078C007002800F0AE80FFE741F20A +:100CB0000400C4F20200006800F00C00042813D005 +:100CC000FFE741F20400C4F20200006800F00C00EB +:100CD00008281BD1FFE741F20400C4F202000068BB +:100CE000C003002812D5FFE741F20000C4F2020061 +:100CF00000688003002808D5FFE70498406820B901 +:100D0000FFE701208DF81700F9E27CE0FFE7049887 +:100D10004068B0F5803F09D1FFE741F20001C4F21D +:100D20000201086840F48030086032E004984068AE +:100D300068B9FFE741F20001C4F20201086820F43B +:100D400080300860086820F48020086020E0049863 +:100D50004068B0F5A02F0DD1FFE741F20001C4F2C9 +:100D60000201086840F480200860086840F4803080 +:100D700008600CE041F20001C4F20201086820F4AE +:100D800080300860086820F480200860FFE7FFE7F3 +:100D9000FFE7FFE704984068D0B1FFE7FFF70EFDDB +:100DA0000390FFE741F20000C4F2020000688003F4 +:100DB00000280CD4FFE7FFF701FD0399401A6528CE +:100DC00004D3FFE703208DF8170098E2EAE719E063 +:100DD000FFF7F4FC0390FFE741F20000C4F20200C9 +:100DE0000068800300280CD5FFE7FFF7E7FC0399B4 +:100DF000401A652804D3FFE703208DF817007EE230 +:100E0000EAE7FFE7FFE7FFE704980078800700289C +:100E100040F18D80FFE741F20400C4F20200006857 +:100E200010F00C0F13D0FFE741F20400C4F20200EF +:100E3000006800F00C00082829D1FFE741F2040007 +:100E4000C4F202000068C003002820D4FFE741F28A +:100E50000000C4F2020000688007002809D5FFE7FF +:100E600004980069012804D0FFE701208DF81700DD +:100E700045E241F20001C4F20201086820F0F800E6 +:100E8000049A526940EAC2000860FFE74EE0049805 +:100E9000006958B3FFE70021C4F242210120086035 +:100EA000FFF78CFC0390FFE741F20000C4F2020060 +:100EB0000068800700280CD4FFE7FFF77FFC039948 +:100EC000401A032804D3FFE703208DF8170016E229 +:100ED000EAE741F20001C4F20201086820F0F800DC +:100EE000049A526940EAC20008601EE00021C4F280 +:100EF000422100200860FFF761FC0390FFE741F208 +:100F00000000C4F202000068800700280CD5FFE74B +:100F1000FFF754FC0399401A032804D3FFE703208A +:100F20008DF81700EBE1EAE7FFE7FFE7FFE704983A +:100F300000780007002848D5FFE70498806918B3B7 +:100F4000FFE740F28041C4F2422101200860FFF730 +:100F500035FC0390FFE741F22400C4F20200006870 +:100F6000800700280CD4FFE7FFF728FC0399401AFC +:100F7000032804D3FFE703208DF81700BFE1EAE759 +:100F8000012000F0A9FF1FE040F28041C4F242219D +:100F900000200860FFF712FC0390FFE741F22400F5 +:100FA000C4F202000068800700280CD5FFE7FFF7B5 +:100FB00005FC0399401A032804D3FFE703208DF8AA +:100FC00017009CE1EAE7FFE7FFE704980078400795 +:100FD000002840F1D880FFE700208DF8070041F29B +:100FE0001C00C4F202000068C000002813D4FFE710 +:100FF000FFE741F21C00C4F20200016841F0805199 +:101000000160006800F0805000900098FFE7012028 +:101010008DF80700FFE747F20000C4F20000006807 +:10102000C005002822D4FFE747F20001C4F2000106 +:10103000086840F480700860FFF7C0FB0390FFE78A +:1010400047F20000C4F200000068C00500280CD47C +:10105000FFE7FFF7B3FB0399401A652804D3FFE7C6 +:1010600003208DF817004AE1EAE7FFE7FFE704985D +:10107000C068012809D1FFE741F22001C4F2020152 +:10108000086840F00100086031E00498C06868B961 +:10109000FFE741F22001C4F20201086820F00100DC +:1010A0000860086820F0040008601FE00498C06829 +:1010B00005280DD1FFE741F22001C4F202010868C2 +:1010C00040F004000860086840F0010008600CE08F +:1010D00041F22001C4F20201086820F0010008601A +:1010E000086820F004000860FFE7FFE7FFE7FFE77C +:1010F0000498C068E0B1FFE7FFF760FB0390FFE7EB +:1011000041F22000C4F202000068800700280ED4DB +:10111000FFE7FFF753FB0399401A41F289318842F8 +:1011200004D3FFE703208DF81700E8E0E8E71BE0B1 +:10113000FFF744FB0390FFE741F22000C4F20200F6 +:101140000068800700280ED5FFE7FFF737FB0399FB +:10115000401A41F28931884204D3FFE703208DF819 +:101160001700CCE0E8E7FFE79DF80700012809D168 +:10117000FFE741F21C01C4F20201086820F0805030 +:101180000860FFE7FFE70498C069002800F0B3801B +:10119000FFE741F20400C4F20200006800F00C0016 +:1011A000082800F08280FFE70498C06902285CD11B +:1011B000FFE76021C4F2422100200860FFF7FEFA39 +:1011C0000390FFE741F20000C4F2020000688001D2 +:1011D00000280CD5FFE7FFF7F1FA0399401A03281E +:1011E00004D3FFE703208DF8170088E0EAE70498AE +:1011F000006AB0F5803F0CD1FFE741F20401C4F270 +:101200000201086820F40030049A926810430860D4 +:10121000FFE741F20401C4F20201086820F47410EF +:10122000049B1A6A5B6A1A43104308606021C4F287 +:10123000422101200860FFF7C1FA0390FFE741F265 +:101240000000C4F202000068800100280CD4FFE70F +:10125000FFF7B4FA0399401A032804D3FFE70320E9 +:101260008DF817004BE0EAE71EE06021C4F242214E +:1012700000200860FFF7A2FA0390FFE741F20000A8 +:10128000C4F202000068800100280CD5FFE7FFF7D8 +:1012900095FA0399401A032804D3FFE703208DF839 +:1012A00017002CE0EAE7FFE724E00498C069012872 +:1012B00004D1FFE701208DF8170020E041F204007F +:1012C000C4F2020000680290029800F48030049991 +:1012D000096A884208D1FFE7029800F47010049967 +:1012E000496A884204D0FFE701208DF8170006E024 +:1012F000FFE7FFE7FFE700208DF81700FFE79DF805 +:10130000170006B080BD000080B582B00190019842 +:1013100000F040FF02B080BD85B003900291FFE76E +:10132000039890F83C00012804D1FFE702208DF8D3 +:1013300013005BE00399012081F83C00FFE7FFE721 +:101340000399022081F83D000398006840680190ED +:101350000398006880680090019820F07000019068 +:10136000029801680198084301900198039909685F +:1013700048600398006842F60041C4F201018842C7 +:1013800018D0FFE703980068B0F1804F12D0FFE754 +:101390000398006840F20041C4F20001884209D07D +:1013A000FFE70398006840F60001C4F2000188429C +:1013B0000ED1FFE7009820F080000090029841686D +:1013C0000098084300900098039909688860FFE737 +:1013D0000399012081F83D00FFE70399002081F87F +:1013E0003C00FFE700208DF81300FFE79DF8130095 +:1013F00005B0704780B582B00090009820B9FFE733 +:1014000001208DF807003FE0009890F83D0040B9BA +:10141000FFE70099002081F83C00009800F038F8C0 +:10142000FFE70099022081F83D00009951F8040B74 +:1014300000F016FF0099012081F84600FFE70099AF +:10144000012081F83E00009981F83F00009981F861 +:101450004000009981F84100FFE7FFE70099012073 +:1014600081F84200009981F84300009981F8440016 +:10147000009981F84500FFE70099012081F83D00BF +:1014800000208DF80700FFE79DF8070002B080BD3F +:1014900083B0029002980068B0F1804F10D1FFE74E +:1014A000FFE741F21C00C4F20200016841F00101B3 +:1014B0000160006800F0010001900198FFE719E069 +:1014C0000298006840F20041C4F20001884210D145 +:1014D000FFE7FFE741F21C00C4F20200016841F09F +:1014E00002010160006800F0020000900098FFE730 +:1014F000FFE7FFE703B0704781B0009000980168F4 +:10150000C86820F00100C860FFE700980068006A22 +:1015100041F21111084210D1FFE700980068006AFB +:1015200040F24441084207D1FFE70098016808688B +:1015300020F001000860FFE7FFE7FFE700990120C6 +:1015400081F83D00002001B07047000080B586B0F2 +:101550000490039100208DF80B00FFE7049890F8A9 +:101560003C00012804D1FFE702208DF81700ABE012 +:101570000499012081F83C00FFE7FFE7049902206D +:1015800081F83D000498006880680190019820F07F +:1015900077000190019820F47F4001900198049910 +:1015A00009688860039800680090002872D0FFE7FF +:1015B000009810286ED0FFE7009820286AD0FFE737 +:1015C0000098302866D0FFE70098402855D0FFE704 +:1015D0000098502837D0FFE70098602840D0FFE7F8 +:1015E000009870280BD0FFE70098B0F5805F05D019 +:1015F000FFE70098B0F5005F16D052E055E0049880 +:101600000068039B5A689968DB6800F0ADFE049897 +:10161000006880680190019840F07700019001987F +:1016200004990968886040E004980068039B5A6840 +:101630009968DB6800F098FE04980168886840F4B7 +:101640008040886031E004980068039A5168D2684D +:1016500000F0BAFE04980068502100F09FFE24E0DC +:1016600004980068039A5168D26800F0D5FE049887 +:101670000068602100F092FE17E004980068039A69 +:101680005168D26800F0A0FE04980068402100F084 +:1016900085FE0AE0049800680399096800F07EFE60 +:1016A00003E001208DF80B00FFE70499012081F889 +:1016B0003D00FFE70499002081F83C00FFE79DF81A +:1016C0000B008DF81700FFE79DF8170006B080BDEE +:1016D00080B588B00690FFE7FFE70698006850E8FD +:1016E000030F20F4F0700590FFE705990698026853 +:1016F00042E803100028F0D1FFE7FFE7FFE7FFE72C +:101700000698006850E8050F20F001000490FFE7FC +:1017100004990698026842E805100028F0D1FFE716 +:10172000FFE70698006B012814D1FFE7FFE7FFE70A +:101730000698006850E8030F20F010000390FFE7C0 +:1017400003990698026842E803100028F0D1FFE7E9 +:10175000FFE7FFE70698006840690006002832D5D9 +:10176000FFE7FFE7FFE70698006850E8050F20F065 +:1017700080000290FFE702990698026842E805108F +:101780000028F0D1FFE7FFE70698806BD0B1FFE7B4 +:101790000698816B002048630698806BFEF700FE78 +:1017A00078B1FFE70698806BFEF738FE202807D156 +:1017B000FFE706991020486403208DF81F004EE0D3 +:1017C000FFE7FFE7FFE7069800684069400600284A +:1017D00032D5FFE7FFE7FFE70698006850E8050FFE +:1017E00020F040000190FFE701990698026842E866 +:1017F00005100028F0D1FFE7FFE70698C06BD0B1D5 +:10180000FFE70698C16B002048630698C06BFEF79F +:10181000C7FD78B1FFE70698C06BFEF7FFFD2028F3 +:1018200007D1FFE706991020486403208DF81F00B8 +:1018300015E0FFE7FFE7FFE706990020C884069957 +:10184000C88506994864069A202182F84210069AB3 +:1018500082F84110069908638DF81F00FFE79DF894 +:101860001F0008B080BD000080B586B00490FFE77F +:10187000FFE70498006850E8030F20F4907003908D +:10188000FFE703990498026842E803100028F0D1AA +:10189000FFE7FFE7FFE7FFE70498006850E8050F60 +:1018A00020F001000290FFE702990498026842E8E4 +:1018B00005100028F0D1FFE7FFE70498006B01282E +:1018C00014D1FFE7FFE7FFE70498006850E8030F33 +:1018D00020F010000190FFE701990498026842E8A7 +:1018E00003100028F0D1FFE7FFE7FFE70498006846 +:1018F00040694006002832D5FFE7FFE7FFE704987C +:10190000006850E8050F20F040000090FFE70099C4 +:101910000498026842E805100028F0D1FFE7FFE7CD +:101920000498C06BD0B1FFE70498C16B00204863F6 +:101930000498C06BFEF734FD78B1FFE70498C06BE4 +:10194000FEF76CFD202807D1FFE7049910204864BA +:1019500003208DF817000EE0FFE7FFE7FFE704998B +:101960000020C885049A202182F842100499086357 +:101970008DF81700FFE79DF8170006B080BD000046 +:1019800080B584B00290FFE7FFE70298006850E856 +:10199000030F20F0C0000190FFE701990298026850 +:1019A00042E803100028F0D1FFE7FFE70298006843 +:1019B00040690006002832D5FFE7FFE7FFE70298FD +:1019C000006850E8050F20F080000090FFE70099C4 +:1019D0000298026842E805100028F0D1FFE7FFE70F +:1019E0000298806BD0B1FFE70298816B00204863BA +:1019F0000298806BFEF7D4FC78B1FFE70298806B09 +:101A0000FEF70CFD202807D1FFE70299102048645B +:101A100003208DF80F000CE0FFE7FFE7FFE70299D6 +:101A20000020C884029A202182F841108DF80F000E +:101A3000FFE79DF80F0004B080BD000080B582B0C4 +:101A40000090009820B9FFE701208DF8070040E0E2 +:101A50000098806908B1FFE700E0FFE7009890F880 +:101A6000410040B9FFE70099002081F8400000984C +:101A700000F034F8FFE70099242081F84100009835 +:101A80000168C86820F40050C860009800F0EEFCBF +:101A900000980168086920F4904008610098016886 +:101AA000486920F02A00486100980168C86840F43D +:101AB0000050C860009900204864009A202182F8F4 +:101AC0004110009A82F84210009948638DF807008F +:101AD000FFE79DF8070002B080BD000080B58AB026 +:101AE00009900020089007900690059009980068DA +:101AF00043F60001C4F20101884239D1FFE7FFE754 +:101B000041F21800C4F20200016841F48041016012 +:101B1000006800F4804004900498FFE7FFE741F27A +:101B20001800C4F20200016841F00401016000687D +:101B300000F0040003900398FFE74FF40070059055 +:101B4000022006900320089040F60000C4F2010035 +:101B5000019005A90291FEF789FC019802994FF4C2 +:101B600080620592002206920792FEF77FFCFFE753 +:101B70000AB080BD80B584B002900191ADF802201A +:101B8000029890F84200202817D1FFE7019820B171 +:101B9000FFE7BDF8020020B9FFE701208DF80F0034 +:101BA0000FE002990020086302980199BDF8022015 +:101BB00000F0BAFC8DF80F0003E002208DF80F0052 +:101BC000FFE79DF80F0004B080BD0000FFE7FEE7CF +:101BD00040F2B001C2F2000142F63560C0F60000EA +:101BE000486042F64560C0F60000C86042F62C62CC +:101BF000C0F600024A61C861486242F63C62C0F623 +:101C00000002CA6248630720086001208860092238 +:101C10000A61886108620A228A62086370470000CC +:101C200080B582B0FFF7D4FF40F23040C2F200002E +:101C300001900121017042F210724283017602216B +:101C4000017740F2E841C2F2000140F2A042C2F244 +:101C50000002002300F00CFA019981F8240002B080 +:101C600080BD000080B58CB000200B900A900990D8 +:101C70000890FFE741F21800C4F20200016841F049 +:101C800010010160006800F0100007900798FFE75E +:101C9000FFE741F21800C4F20200016841F02001A0 +:101CA0000160006800F0200006900698FFE7FFE75B +:101CB00041F21800C4F20200016841F0080101601D +:101CC000006800F0080005900598FFE7FFE741F283 +:101CD0001800C4F20200016841F0040101600068CC +:101CE00000F0040004900498FFE740F60040C4F2BE +:101CF000010003900121019100220292FEF746FDAE +:101D0000019A02990398089209920A9102210B9173 +:101D100008A9FEF7ABFB0CB080BD000080B588B011 +:101D2000002101910791069105910491039102917F +:101D300040F25840C2F200004FF080420260416021 +:101D400081604FF6FF72C26001618161FFF752FB53 +:101D500018B1FFE7FEF71CFBFFE74FF4805004903B +:101D600040F25840C2F2000004A9FFF7EFFB18B19F +:101D7000FFE7FEF70DFBFFE700200290039040F223 +:101D80005840C2F2000002A9FFF7C6FA18B1FFE7F7 +:101D9000FEF7FEFAFFE708B080BD000080B588B00E +:101DA00000210191079106910591049103910291FF +:101DB00040F2A040C2F2000040F20042C4F2000231 +:101DC0000260416081604FF4E152C2600161816153 +:101DD000FFF710FB18B1FFE7FEF7DAFAFFE74FF461 +:101DE0008050049040F2A040C2F2000004A9FFF726 +:101DF000ADFB18B1FFE7FEF7CBFAFFE7002002903A +:101E0000039040F2A040C2F2000002A9FFF784FA5A +:101E100018B1FFE7FEF7BCFAFFE708B080BD00008D +:101E200080B582B040F2E840C2F20000019043F673 +:101E30000001C4F2010101604FF4E1314160002171 +:101E40008160C16001610C2242618161C161FFF763 +:101E5000F5FD18B1FFE7FEF79BFAFFE702B080BD82 +:101E6000FFE7FEE7FFE7FEE788B0079006910592DF +:101E7000079800F0070004900498C0F107000528B7 +:101E800003D3FFE70420019004E00498C0F10700A9 +:101E90000190FFE70198039004980430062803D8C6 +:101EA000FFE70020009003E0049803380090FFE76C +:101EB0000098029006980399012202FA01F1013973 +:101EC0000840029B984005999A40013A1140084306 +:101ED00008B070477047000082B00190019840F24E +:101EE0000001C2F200010968C90844F6D352C1F2E8 +:101EF0006202A1FB0221890948430090FFE700BF6D +:101F0000FFE70098411E00910028F8D1FFE702B0DA +:101F10007047000080B584B003908DF80B1000204E +:101F20008DF80A0003994969096848620398406975 +:101F300001686FF0010008610398408B28B1FFE74A +:101F400003984069FFF7D8FAFFE79DF80B004007B8 +:101F5000002844D4FFE79DF80B008007002823D514 +:101F6000FFE703980069FFF77FFC8DF80A000399EB +:101F700091F8200000F0FB0081F82000039991F80F +:101F8000200000F0F70081F82000039991F820006C +:101F900000F0DF0081F82000039991F8200000F0A4 +:101FA000FE0081F82000FFE79DF80B00C007A8B1F4 +:101FB000FFE703980069FFF7E3FC8DF80A00039937 +:101FC00091F8200000F0EF0081F82000039991F8CB +:101FD000200000F0BF0081F82000FFE742E00398F6 +:101FE0000069FFF775FB8DF80A0000200190FFE7FC +:101FF0000198B0F5817F0ADCFFE703988168019AB8 +:1020000000208854FFE7019801300190F0E7039920 +:1020100091F8200000F0FB0081F82000039991F86E +:10202000200000F0F70081F82000039991F82000CB +:1020300000F0DF0081F82000039991F8200000F003 +:10204000FE0081F82000039991F8200000F0EF00D5 +:1020500081F82000039991F8200000F0BF0081F87A +:102060002000FFE70399032081F8240004B080BD1D +:1020700085B00390029101920093039820B9FFE785 +:1020800002208DF8130027E0029820B9FFE7022014 +:102090008DF8130020E002980399086101980399D4 +:1020A00048610398007F20B9FFE702208DF81300F4 +:1020B00012E00398806838B9FFE7039940F2F41002 +:1020C000C2F20000886003E0009803998860FFE78F +:1020D00001208DF81300FFE79DF8130005B070474D +:1020E00080B584B00290019100208DF803008DF836 +:1020F0000200029890F82000C008C00720B1FFE756 +:1021000004208DF80F003FE0029991F8200040F084 +:10211000020081F82000029991F8200040F00800A8 +:1021200081F82000029991F8200000F0DF0081F88A +:102130002000029991F8200000F0FE0081F82000B4 +:102140000198029948600298816800690722FFF7A8 +:1021500011FD8DF802009DF8020038B1FFE70298EA +:102160000421FFF7D7FE8DF8030003E001208DF86E +:102170000300FFE79DF80300029981F824009DF811 +:1021800003008DF80F00FFE79DF80F0004B080BD3D +:102190007047000080B582B0009000980138B0F11F +:1021A000807F03D3FFE70120019019E000980138F8 +:1021B0004EF21401CEF2000108604FF0FF300F2103 +:1021C00000F0EEF94EF21801CEF200010020086096 +:1021D0004EF21002CEF20002072111600190FFE7DB +:1021E000019802B080BD000080B5FEF7EDFA80BD19 +:1021F00080B590B006A800902821FDF7E5FF009873 +:102200000023059304930393029301930122069202 +:102210004FF48031079108930A9202220D920E9199 +:102220004FF4E0110F91FEF731FD18B1FFE7FEF713 +:10223000AFF8FFE70F2001900221029100200390E8 +:102240004FF480620492059001A8FEF76BFB18B171 +:10225000FFE7FEF79DF8FFE710B080BD7047000074 +:1022600083B002900191029800680090029842F6B3 +:102270000041C4F20101884215D0FFE70298B0F195 +:10228000804F10D0FFE7029840F20041C4F20001F5 +:10229000884208D0FFE7029840F60001C4F200012E +:1022A00088420AD1FFE7009820F070000090019862 +:1022B0004168009808430090FFE7029842F6004109 +:1022C000C4F20101884215D0FFE70298B0F1804FB7 +:1022D00010D0FFE7029840F20041C4F200018842AA +:1022E00008D0FFE7029840F60001C4F200018842DE +:1022F0000AD1FFE7009820F4407000900198C1686F +:10230000009808430090FFE7009820F080000199B2 +:102310004969084300900098029908600198806814 +:102320000299C8620198006802998862029842F690 +:102330000041C4F20101884205D1FFE7019800691C +:1023400002990863FFE70299012048610298006939 +:10235000C00730B1FFE70299086920F00100086169 +:10236000FFE703B07047000085B00490039102922C +:102370000193049880680090009820F47F400090BA +:1023800003980299019A41EA022101430098084307 +:10239000009000980499886005B0704783B002905F +:1023A0000191029880680090009820F070000090E1 +:1023B00001980099084340F00700009000980299A6 +:1023C000886003B07047000085B0049003910292CA +:1023D0000498006A00900499086A20F001000862DD +:1023E000049880690190019820F0F0000190029912 +:1023F000019840EA01100190009820F00A00009036 +:102400000399009808430090019804998861009806 +:102410000499086205B0704785B004900391029258 +:102420000498006A00900499086A20F0100008627D +:10243000049880690190019820F4704001900299FD +:10244000019840EA01300190009820F0A00000902F +:102450000399009840EA011000900198049988615E +:1024600000980499086205B07047000080B584B0F8 +:10247000039003980068006920F44050039A1168A3 +:10248000D26810430861039988680A694969104352 +:102490000843029003980068C06841F20C618843C9 +:1024A0000299084303990968C86003980068406965 +:1024B00020F44070039A11689269104348610398B0 +:1024C000006843F60001C4F20101884204D1FFE72D +:1024D000FEF76CFB019003E0FEF756FB0190FFE76F +:1024E000019819214843039A116852689200B0FB81 +:1024F000F2FC48F21F52C5F2EB12ACFB023043096A +:10250000642003FB10CC322000EB0C10A0FB020275 +:10251000F02000EA521000EB0310C2F34312104403 +:10252000886004B080BD000083B002900191ADF8D6 +:102530000220019802998862BDF8020002998885FC +:10254000BDF802000299C8850299002048640299EA +:10255000222081F842000298006938B1FFE7029812 +:102560000168C86840F48070C860FFE7029801689D +:10257000486940F00100486102980168C86840F06D +:102580002000C860002003B070470000FFE7FEE7AE +:102590004EF60C50CEF200000068C0F302207047E7 +:1025A00082B08DF8070000919DF9070000280AD439 +:1025B000FFE7009800019DF907104EF20042CEF2AD +:1025C000000288540BE0009800019DF8071001F00C +:1025D0000F014EF61452CEF200028854FFE702B00B +:1025E0007047000083B00290029800F0070000904E +:1025F0004EF60C51CEF200010868019001984FF69A +:10260000FF02104001900198009A40EA0220002247 +:10261000C0F2FA52104301900198086003B070476D +:1026200083B0029001918DF8032001980068FF2883 +:102630000CD8FFE79DF803000299DDF804C0DCF830 +:102640000020531CCCF800308854FFE703B07047DB +:1026500080B586B00590049103928DF80B309DF8FB +:102660000B0001380190FFE7019800280ED4FFE726 +:1026700005980499039A019BDA4002F00102FFF7E2 +:10268000CFFFFFE7019801380190EDE706B080BD6C +:1026900080B588B084460A98CDF81CC00691059292 +:1026A00004938DF80F0004990020086007980078C3 +:1026B0008DF80E00012000908DF80D00059804990A +:1026C0009DF80E20FFF7ACFF00980290FFE70298FC +:1026D000069988423CD2FFE707980299405C8DF842 +:1026E0000700059804999DF80720FFF799FF9DF8CA +:1026F00007009DF80E1088421DD1FFE79DF80D00E0 +:1027000001308DF80D009DF80D00052812D1FFE76E +:102710009DF80F0050B9FFE7059804999DF8072030 +:10272000B2FA82F25209FFF77BFFFFE700208DF833 +:102730000D00FFE707E001208DF80D009DF8070070 +:102740008DF80E00FFE7FFE7029801300290BEE728 +:1027500008B080BD85B0049003910020ADF80A0058 +:102760000190FFE70198039988422AD2FFE7049875 +:102770000199405C8DF80300BDF80A00C0F3803079 +:102780008DF80200BDF80A004000ADF80A009DF87F +:1027900003009DF80210484008D0FFE7BDF80A008A +:1027A00044F299514840ADF80A00FFE7BDF80A002D +:1027B0006FF3DF30ADF80A00FFE7019801300190B8 +:1027C000D0E7BDF80A0005B07047000081B0009066 +:1027D000009840F23061C2F20001096888420BD2D1 +:1027E000FFE7009A40F23051C2F20001885CB0FA73 +:1027F00080F040098854FFE701B0704780B5A6B06B +:102800002492BDF89020ADF894202390229140F2BC +:102810003061C2F200010F9100220A6040F2FC30E8 +:10282000C2F20000027040F23050C2F20000FFF726 +:10283000F7FE0F980068219023988068002858D1EF +:10284000FFE7239802686FF3DF2240F23050C2F2B4 +:1028500000000C9040F23061C2F200010E910B2397 +:10286000FFF7F6FE0C980E990A680B3A2092239A0D +:10287000127BFFF7D5FE0C980E990A68013A1F9259 +:1028800000220D92FFF7CCFE0C980D9A0E990B6862 +:10289000013B1E93FFF7C4FE0E98006801381D909F +:1028A0009DF894008008C00720B1FFE71F98FFF74C +:1028B0008DFFFFE79DF894004008C00720B1FFE7B7 +:1028C0001E98FFF783FFFFE79DF894000009C007FB +:1028D00020B1FFE71D98FFF779FFFFE79DF894000F +:1028E0004009C00720B1FFE72098FFF76FFFFFE71F +:1028F0008AE02398406820F060401C901C98C0F348 +:102900008A4240F23050C2F20000099040F2306139 +:10291000C2F200010B910B23FFF79AFE09980B9965 +:102920000A680B3A1B9201220892FFF779FE089A77 +:1029300009980B990B68013B1A93FFF771FE0998F0 +:102940000B990A68013A19921C9A6FF39F4212235D +:10295000FFF77EFE09980B990A68123A1892239A9B +:10296000127BFFF75DFE09980B990A68013A1792EE +:1029700000220A92FFF754FE09980A9A0B990B68F5 +:10298000013B1693FFF74CFE0B9800680138159039 +:102990009DF89400C00720B1FFE71A98FFF716FFD3 +:1029A000FFE79DF894004008C00720B1FFE71998A1 +:1029B000FFF70CFFFFE79DF894008008C00720B1E7 +:1029C000FFE71798FFF702FFFFE79DF89400C008A4 +:1029D000C00720B1FFE71698FFF7F8FEFFE79DF864 +:1029E00094000009C00720B1FFE71598FFF7EEFE3D +:1029F000FFE79DF894004009C00720B1FFE71B984E +:102A0000FFF7E4FEFFE7FFE72398006900F00F02FD +:102A100040F23050C2F2000040F23061C2F20001D8 +:102A20000423FFF715FE2398C068002867D1FFE74D +:102A30002398006900F00F008DF8530000208DF8F6 +:102A40005200FFE79DF852109DF85320002091425C +:102A5000079008DAFFE79DF8521000200829B8BF58 +:102A600001200790FFE70798C007002846D0FFE73E +:102A700040F23060C2F200000068139022989DF886 +:102A80005210405C8DF84B002398007D012812D134 +:102A9000FFE79DF8520006280DDBFFE740F23050BB +:102AA000C2F2000040F23061C2F2000100220823AD +:102AB000FFF7CEFD0DE09DF84B2040F23050C2F202 +:102AC000000040F23061C2F200010823FFF7C0FDB0 +:102AD000FFE79DF894008009C00740B1FFE79DF82B +:102AE000520020B9FFE71398FFF770FEFFE7FFE7FA +:102AF0009DF8520001308DF85200A3E7FFE740F245 +:102B00003060C2F200000590016840F23050C2F21D +:102B100000000690FFF71EFE059902460698ADF8E4 +:102B200048200A681192BDF848200F23FFF790FD56 +:102B30009DF894100020B0EBD11F04D0FFE711984E +:102B4000FFF744FEFFE740F23050C2F2000002906F +:102B500040F23061C2F20001039101220492FFF7BA +:102B60005FFD0298039909689DF8952002F0010223 +:102B70006B461A6040F2F722C2F2000240F2F833CC +:102B8000C2F20003FFF784FD02980399049AFFF74D +:102B900047FD02980399049AFFF742FD0020109028 +:102BA000FFE71098062810DCFFE740F23050C2F231 +:102BB000000040F23061C2F200010122FFF730FD57 +:102BC000FFE7109801301090EBE726B080BD0000C1 +:102BD00080B586B000200590FDF704FEFFF708FBE6 +:102BE000FFF740F8FFF79AF8FFF7D8F8FFF718F962 +:102BF00040F20440C2F2000004904EF64801C0F2D8 +:102C00000101FDF747FB049940F223100860FFF72C +:102C100007F840F23040C2F2000040F2E801C2F290 +:102C20000001FFF75DFAFFE740F20040C2F200004A +:102C30000068002840F0B480FFE740F27400C2F260 +:102C400000004168C1F3800140F20442C2F2000278 +:102C500091604168C1F3C001D16001894FF47A737A +:102C600059431162828901200021B1EB024F039088 +:102C70000AD1FFE740F27400C2F20000C0890028C8 +:102C800018BF01200390FFE7039800F0010040F215 +:102C90000441C2F20001019148604868086040F2B6 +:102CA0007400C2F200000290027C02F00F020A617E +:102CB00090F82A200A7690F82C204A7690F82E2058 +:102CC0008A7690F83020CA7690F832200A7790F809 +:102CD00034204A7790F836208A7790F83820CA77DF +:102CE0004268C2F3404391F8282002F0FE021A44E1 +:102CF00081F828204268C2F3804391F8282002F02E +:102D0000FD0242EA430281F828204268C2F3C04330 +:102D100091F8282002F0FB0242EA830281F8282081 +:102D20004268C2F3005391F8282002F0F70242EA09 +:102D3000C30281F828204268C2F3405391F828204A +:102D400002F0EF0242EA031281F828204268C2F33F +:102D5000805391F8282002F0DF0242EA431281F802 +:102D600028204268C2F3C05391F8282002F0BF0225 +:102D700042EA831281F82820C37991F8282002F0D2 +:102D80007F0242EAC31281F828204068C0F3406203 +:102D900091F8290000F0FE00104481F82900FFE7B7 +:102DA00040F20440C2F200000090406AFDF73CFB94 +:102DB0000098FDF783FA37E783B0ADF80A0044F2D4 +:102DC0004020C0F20F00019000200090FFE7242077 +:102DD000C4F200000068BDF80A10401A00B2B0F159 +:102DE000FF3F0CDCFFE700980130009044F24121E6 +:102DF000C0F20F01884201D3FFE700E0E7E703B02C +:102E000070470000000000000000010203040607F4 +:102E1000080900000000010203040203040506077C +:102E200008090A0B0C0D0E0F101001025665722EC8 +:102E300020312E30004E494F2D31320053544D3346 +:102E40003246313033000000682E000800000020B8 +:102E50001000000028010008782E00081000002053 +:102E6000280C00004401000800127A000100000054 +:082E700010000000000000004A :04000005080000ED02 :00000001FF diff --git a/MDK-ARM/CANEmu/CANEmu.htm b/MDK-ARM/CANEmu/CANEmu.htm index 72d7fa5..3f292c6 100644 --- a/MDK-ARM/CANEmu/CANEmu.htm +++ b/MDK-ARM/CANEmu/CANEmu.htm @@ -3,9 +3,9 @@ Static Call Graph - [CANEmu\CANEmu.axf]

Static Call Graph for image CANEmu\CANEmu.axf


-

#<CALLGRAPH># ARM Linker, 6190004: Last Updated: Mon Aug 4 13:49:17 2025 +

#<CALLGRAPH># ARM Linker, 6190004: Last Updated: Mon Aug 4 16:26:50 2025

-

Maximum Stack Usage = 252 bytes + Unknown(Functions without stacksize, Cycles, Untraceable Function Pointers)

+

Maximum Stack Usage = 268 bytes + Unknown(Functions without stacksize, Cycles, Untraceable Function Pointers)

Call chain for Maximum Stack Depth:

__rt_entry_main ⇒ main ⇒ CANEmu_SendFrame ⇒ form_CAN_bitstream_full ⇒ apply_bit_stuffing_with_error ⇒ append_bit

@@ -85,8 +85,8 @@ Function Pointers Global Symbols

__main (Thumb, 8 bytes, Stack size 0 bytes, __main.o(!!!main)) -

[Calls]

  • >>   __rt_entry -
  • >>   __scatterload +

    [Calls]
    • >>   __scatterload +
    • >>   __rt_entry

    [Address Reference Count : 1]
    • startup_stm32f103xb.o(.text)
    @@ -98,9 +98,9 @@ Global Symbols

    [Calls]
    • >>   __rt_entry
    -

    __scatterload_rt2_thumb_only (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED) +

    __scatterload_rt2_thumb_only (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED) -

    __scatterload_null (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED) +

    __scatterload_null (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)

    __scatterload_copy (Thumb, 26 bytes, Stack size unknown bytes, __scatter_copy.o(!!handler_copy), UNUSED)

    [Calls]

    • >>   __scatterload_copy @@ -108,80 +108,80 @@ Global Symbols
      [Called By]
      • >>   __scatterload_copy
      -

      __scatterload_zeroinit (Thumb, 28 bytes, Stack size unknown bytes, __scatter_zi.o(!!handler_zi), UNUSED) +

      __scatterload_zeroinit (Thumb, 28 bytes, Stack size unknown bytes, __scatter_zi.o(!!handler_zi), UNUSED)

      __rt_lib_init (Thumb, 0 bytes, Stack size unknown bytes, libinit.o(.ARM.Collect$$libinit$$00000000))

      [Called By]

      • >>   __rt_entry_li
      -

      __rt_lib_init_alloca_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000030)) +

      __rt_lib_init_alloca_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000030)) -

      __rt_lib_init_argv_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000002E)) +

      __rt_lib_init_argv_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000002E)) -

      __rt_lib_init_atexit_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001D)) +

      __rt_lib_init_atexit_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001D)) -

      __rt_lib_init_clock_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000023)) +

      __rt_lib_init_clock_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000023)) -

      __rt_lib_init_cpp_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000034)) +

      __rt_lib_init_cpp_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000034)) -

      __rt_lib_init_exceptions_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000032)) +

      __rt_lib_init_exceptions_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000032)) -

      __rt_lib_init_fp_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000002)) +

      __rt_lib_init_fp_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000002)) -

      __rt_lib_init_fp_trap_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000021)) +

      __rt_lib_init_fp_trap_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000021)) -

      __rt_lib_init_getenv_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000025)) +

      __rt_lib_init_getenv_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000025)) -

      __rt_lib_init_heap_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000C)) +

      __rt_lib_init_heap_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000C)) -

      __rt_lib_init_lc_collate_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000013)) +

      __rt_lib_init_lc_collate_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000013)) -

      __rt_lib_init_lc_ctype_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000015)) +

      __rt_lib_init_lc_ctype_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000015)) -

      __rt_lib_init_lc_monetary_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000017)) +

      __rt_lib_init_lc_monetary_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000017)) -

      __rt_lib_init_lc_numeric_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000019)) +

      __rt_lib_init_lc_numeric_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000019)) -

      __rt_lib_init_lc_time_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001B)) +

      __rt_lib_init_lc_time_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001B)) -

      __rt_lib_init_preinit_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000006)) +

      __rt_lib_init_preinit_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000006)) -

      __rt_lib_init_rand_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000010)) +

      __rt_lib_init_rand_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000010)) -

      __rt_lib_init_relocate_pie_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000004)) +

      __rt_lib_init_relocate_pie_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000004)) -

      __rt_lib_init_return (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000035)) +

      __rt_lib_init_return (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000035)) -

      __rt_lib_init_signal_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001F)) +

      __rt_lib_init_signal_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001F)) -

      __rt_lib_init_stdio_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000027)) +

      __rt_lib_init_stdio_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000027)) -

      __rt_lib_init_user_alloc_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000E)) +

      __rt_lib_init_user_alloc_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000E))

      __rt_lib_shutdown (Thumb, 0 bytes, Stack size unknown bytes, libshutdown.o(.ARM.Collect$$libshutdown$$00000000))

      [Called By]

      • >>   __rt_exit_ls
      -

      __rt_lib_shutdown_cpp_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000002)) +

      __rt_lib_shutdown_cpp_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000002)) -

      __rt_lib_shutdown_fp_trap_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000007)) +

      __rt_lib_shutdown_fp_trap_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000007)) -

      __rt_lib_shutdown_heap_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000F)) +

      __rt_lib_shutdown_heap_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000F)) -

      __rt_lib_shutdown_return (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000010)) +

      __rt_lib_shutdown_return (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000010)) -

      __rt_lib_shutdown_signal_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000A)) +

      __rt_lib_shutdown_signal_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000A)) -

      __rt_lib_shutdown_stdio_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000004)) +

      __rt_lib_shutdown_stdio_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000004)) -

      __rt_lib_shutdown_user_alloc_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000C)) +

      __rt_lib_shutdown_user_alloc_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000C))

      __rt_entry (Thumb, 0 bytes, Stack size unknown bytes, __rtentry.o(.ARM.Collect$$rtentry$$00000000)) -

      [Called By]

      • >>   __main -
      • >>   __scatterload_rt2 +

        [Called By]
        • >>   __scatterload_rt2 +
        • >>   __main
        -

        __rt_entry_presh_1 (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$00000002)) +

        __rt_entry_presh_1 (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$00000002))

        __rt_entry_sh (Thumb, 0 bytes, Stack size unknown bytes, __rtentry4.o(.ARM.Collect$$rtentry$$00000004))

        [Stack]

        • Max Depth = 8 + Unknown Stack Size @@ -194,17 +194,17 @@ Global Symbols

          [Calls]
          • >>   __rt_lib_init
          -

          __rt_entry_postsh_1 (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$00000009)) +

          __rt_entry_postsh_1 (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$00000009))

          __rt_entry_main (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000D)) -

          [Stack]

          • Max Depth = 252 + Unknown Stack Size +

            [Stack]
            • Max Depth = 268 + Unknown Stack Size
            • Call Chain = __rt_entry_main ⇒ main ⇒ CANEmu_SendFrame ⇒ form_CAN_bitstream_full ⇒ apply_bit_stuffing_with_error ⇒ append_bit
            -
            [Calls]
            • >>   exit -
            • >>   main +
              [Calls]
              • >>   main +
              • >>   exit
              -

              __rt_entry_postli_1 (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000C)) +

              __rt_entry_postli_1 (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000C))

              __rt_exit (Thumb, 0 bytes, Stack size unknown bytes, rtexit.o(.ARM.Collect$$rtexit$$00000000))

              [Called By]

              • >>   exit @@ -214,7 +214,7 @@ Global Symbols

                [Calls]
                • >>   __rt_lib_shutdown
                -

                __rt_exit_prels_1 (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000002)) +

                __rt_exit_prels_1 (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000002))

                __rt_exit_exit (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000004))

                [Calls]

                • >>   _sys_exit @@ -360,21 +360,21 @@ Global Symbols

                  [Called By]
                  • >>   __user_setup_stackheap
                  -

                  __aeabi_memclr4 (Thumb, 0 bytes, Stack size unknown bytes, rt_memclr_w.o(.text)) -

                  [Called By]

                  • >>   SystemClock_Config +

                    __aeabi_memclr4 (Thumb, 0 bytes, Stack size unknown bytes, rt_memclr_w.o(.text)) +

                    [Called By]

                    • >>   SystemClock_Config
                    -

                    __aeabi_memclr8 (Thumb, 0 bytes, Stack size unknown bytes, rt_memclr_w.o(.text), UNUSED) +

                    __aeabi_memclr8 (Thumb, 0 bytes, Stack size unknown bytes, rt_memclr_w.o(.text), UNUSED) -

                    __rt_memclr_w (Thumb, 0 bytes, Stack size unknown bytes, rt_memclr_w.o(.text), UNUSED) +

                    __rt_memclr_w (Thumb, 0 bytes, Stack size unknown bytes, rt_memclr_w.o(.text), UNUSED) -

                    _memset_w (Thumb, 74 bytes, Stack size 4 bytes, rt_memclr_w.o(.text), UNUSED) +

                    _memset_w (Thumb, 74 bytes, Stack size 4 bytes, rt_memclr_w.o(.text), UNUSED) -

                    __use_two_region_memory (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED) +

                    __use_two_region_memory (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED) -

                    __rt_heap_escrow$2region (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED) +

                    __rt_heap_escrow$2region (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED) -

                    __rt_heap_expand$2region (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED) +

                    __rt_heap_expand$2region (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED)

                    __user_setup_stackheap (Thumb, 74 bytes, Stack size 8 bytes, sys_stackheap_outer.o(.text))

                    [Stack]

                    • Max Depth = 8 + Unknown Stack Size @@ -395,28 +395,28 @@ Global Symbols
                      [Called By]
                      • >>   __rt_entry_main
                      -

                      __user_libspace (Thumb, 8 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED) +

                      __user_libspace (Thumb, 8 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED)

                      __user_perproc_libspace (Thumb, 0 bytes, Stack size 0 bytes, libspace.o(.text))

                      [Called By]

                      • >>   __user_setup_stackheap
                      -

                      __user_perthread_libspace (Thumb, 0 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED) +

                      __user_perthread_libspace (Thumb, 0 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED)

                      _sys_exit (Thumb, 8 bytes, Stack size 0 bytes, sys_exit.o(.text))

                      [Called By]

                      • >>   __rt_exit_exit
                      -

                      __I$use$semihosting (Thumb, 0 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED) +

                      __I$use$semihosting (Thumb, 0 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED) -

                      __use_no_semihosting_swi (Thumb, 2 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED) +

                      __use_no_semihosting_swi (Thumb, 2 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED) -

                      __semihosting_library_function (Thumb, 0 bytes, Stack size unknown bytes, indicate_semi.o(.text), UNUSED) +

                      __semihosting_library_function (Thumb, 0 bytes, Stack size unknown bytes, indicate_semi.o(.text), UNUSED)

                      BusFault_Handler (Thumb, 4 bytes, Stack size 0 bytes, stm32f1xx_it.o(.text.BusFault_Handler))
                      [Address Reference Count : 1]

                      • startup_stm32f103xb.o(RESET)
                      -

                      CANEmu_Init (Thumb, 40 bytes, Stack size 8 bytes, canemu.o(.text.CANEmu_Init)) +

                      CANEmu_Init (Thumb, 40 bytes, Stack size 8 bytes, canemu.o(.text.CANEmu_Init))

                      [Stack]

                      • Max Depth = 8
                      • Call Chain = CANEmu_Init

                      [Called By]
                      • >>   main @@ -434,11 +434,29 @@ Global Symbols

                        DebugMon_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_it.o(.text.DebugMon_Handler))
                        [Address Reference Count : 1]

                        • startup_stm32f103xb.o(RESET)
                        -

                        Error_Handler (Thumb, 14 bytes, Stack size 4 bytes, main.o(.text.Error_Handler)) +

                        Error_Handler (Thumb, 14 bytes, Stack size 4 bytes, main.o(.text.Error_Handler))

                        [Stack]

                        • Max Depth = 4
                        • Call Chain = Error_Handler
                        -
                        [Called By]
                        • >>   MX_TIM2_Init -
                        • >>   SystemClock_Config +
                          [Called By]
                          • >>   MX_USART1_UART_Init +
                          • >>   MX_TIM3_Init +
                          • >>   MX_TIM2_Init +
                          • >>   SystemClock_Config +
                          + +

                          HAL_DMA_Abort (Thumb, 124 bytes, Stack size 12 bytes, stm32f1xx_hal_dma.o(.text.HAL_DMA_Abort)) +

                          [Stack]

                          • Max Depth = 12
                          • Call Chain = HAL_DMA_Abort +
                          +
                          [Called By]
                          • >>   HAL_UART_AbortReceive +
                          • >>   HAL_UART_AbortTransmit +
                          • >>   HAL_UART_Abort +
                          + +

                          HAL_DMA_GetError (Thumb, 12 bytes, Stack size 4 bytes, stm32f1xx_hal_dma.o(.text.HAL_DMA_GetError)) +

                          [Stack]

                          • Max Depth = 4
                          • Call Chain = HAL_DMA_GetError +
                          +
                          [Called By]
                          • >>   HAL_UART_AbortReceive +
                          • >>   HAL_UART_AbortTransmit +
                          • >>   HAL_UART_Abort

                          HAL_Delay (Thumb, 66 bytes, Stack size 24 bytes, stm32f1xx_hal.o(.text.HAL_Delay)) @@ -449,25 +467,26 @@ Global Symbols
                          [Called By]

                          • >>   main
                          -

                          HAL_GPIO_Init (Thumb, 798 bytes, Stack size 64 bytes, stm32f1xx_hal_gpio.o(.text.HAL_GPIO_Init)) +

                          HAL_GPIO_Init (Thumb, 798 bytes, Stack size 64 bytes, stm32f1xx_hal_gpio.o(.text.HAL_GPIO_Init))

                          [Stack]

                          • Max Depth = 64
                          • Call Chain = HAL_GPIO_Init
                          -
                          [Called By]
                          • >>   MX_GPIO_Init +
                            [Called By]
                            • >>   HAL_UART_MspInit +
                            • >>   MX_GPIO_Init
                            -

                            HAL_GPIO_WritePin (Thumb, 46 bytes, Stack size 8 bytes, stm32f1xx_hal_gpio.o(.text.HAL_GPIO_WritePin)) +

                            HAL_GPIO_WritePin (Thumb, 46 bytes, Stack size 8 bytes, stm32f1xx_hal_gpio.o(.text.HAL_GPIO_WritePin))

                            [Stack]

                            • Max Depth = 8
                            • Call Chain = HAL_GPIO_WritePin
                            -
                            [Called By]
                            • >>   MX_GPIO_Init +
                              [Called By]
                              • >>   MX_GPIO_Init

                              HAL_GetTick (Thumb, 12 bytes, Stack size 0 bytes, stm32f1xx_hal.o(.text.HAL_GetTick))

                              [Called By]

                              • >>   HAL_RCC_ClockConfig -
                              • >>   HAL_RCC_OscConfig +
                              • >>   HAL_RCC_OscConfig
                              • >>   HAL_Delay
                              -

                              HAL_IncTick (Thumb, 26 bytes, Stack size 0 bytes, stm32f1xx_hal.o(.text.HAL_IncTick)) +

                              HAL_IncTick (Thumb, 26 bytes, Stack size 0 bytes, stm32f1xx_hal.o(.text.HAL_IncTick))

                              [Called By]

                              • >>   SysTick_Handler
                              @@ -522,7 +541,28 @@ Global Symbols
                            • >>   HAL_GetTick
                            • >>   HAL_InitTick
                            -
                            [Called By]
                            • >>   SystemClock_Config +
                              [Called By]
                              • >>   SystemClock_Config +
                              + +

                              HAL_RCC_GetHCLKFreq (Thumb, 12 bytes, Stack size 0 bytes, stm32f1xx_hal_rcc.o(.text.HAL_RCC_GetHCLKFreq)) +

                              [Called By]

                              • >>   HAL_RCC_GetPCLK2Freq +
                              • >>   HAL_RCC_GetPCLK1Freq +
                              + +

                              HAL_RCC_GetPCLK1Freq (Thumb, 34 bytes, Stack size 8 bytes, stm32f1xx_hal_rcc.o(.text.HAL_RCC_GetPCLK1Freq)) +

                              [Stack]

                              • Max Depth = 8
                              • Call Chain = HAL_RCC_GetPCLK1Freq +
                              +
                              [Calls]
                              • >>   HAL_RCC_GetHCLKFreq +
                              +
                              [Called By]
                              • >>   UART_SetConfig +
                              + +

                              HAL_RCC_GetPCLK2Freq (Thumb, 34 bytes, Stack size 8 bytes, stm32f1xx_hal_rcc.o(.text.HAL_RCC_GetPCLK2Freq)) +

                              [Stack]

                              • Max Depth = 8
                              • Call Chain = HAL_RCC_GetPCLK2Freq +
                              +
                              [Calls]
                              • >>   HAL_RCC_GetHCLKFreq +
                              +
                              [Called By]
                              • >>   UART_SetConfig

                              HAL_RCC_GetSysClockFreq (Thumb, 188 bytes, Stack size 24 bytes, stm32f1xx_hal_rcc.o(.text.HAL_RCC_GetSysClockFreq)) @@ -531,74 +571,168 @@ Global Symbols
                              [Called By]

                              • >>   HAL_RCC_ClockConfig
                              -

                              HAL_RCC_OscConfig (Thumb, 1658 bytes, Stack size 32 bytes, stm32f1xx_hal_rcc.o(.text.HAL_RCC_OscConfig)) +

                              HAL_RCC_OscConfig (Thumb, 1658 bytes, Stack size 32 bytes, stm32f1xx_hal_rcc.o(.text.HAL_RCC_OscConfig))

                              [Stack]

                              • Max Depth = 40
                              • Call Chain = HAL_RCC_OscConfig ⇒ RCC_Delay
                              -
                              [Calls]
                              • >>   RCC_Delay +
                                [Calls]
                                • >>   RCC_Delay
                                • >>   HAL_GetTick
                                -
                                [Called By]
                                • >>   SystemClock_Config +
                                  [Called By]
                                  • >>   SystemClock_Config

                                  HAL_SYSTICK_Config (Thumb, 16 bytes, Stack size 16 bytes, stm32f1xx_hal_cortex.o(.text.HAL_SYSTICK_Config))

                                  [Stack]

                                  • Max Depth = 40
                                  • Call Chain = HAL_SYSTICK_Config ⇒ SysTick_Config ⇒ __NVIC_SetPriority
                                  -
                                  [Calls]
                                  • >>   SysTick_Config +
                                    [Calls]
                                    • >>   SysTick_Config

                                    [Called By]
                                    • >>   HAL_InitTick
                                    -

                                    HAL_TIMEx_MasterConfigSynchronization (Thumb, 220 bytes, Stack size 20 bytes, stm32f1xx_hal_tim_ex.o(.text.HAL_TIMEx_MasterConfigSynchronization)) +

                                    HAL_TIMEx_MasterConfigSynchronization (Thumb, 220 bytes, Stack size 20 bytes, stm32f1xx_hal_tim_ex.o(.text.HAL_TIMEx_MasterConfigSynchronization))

                                    [Stack]

                                    • Max Depth = 20
                                    • Call Chain = HAL_TIMEx_MasterConfigSynchronization
                                    -
                                    [Called By]
                                    • >>   MX_TIM2_Init +
                                      [Called By]
                                      • >>   MX_TIM3_Init +
                                      • >>   MX_TIM2_Init
                                      -

                                      HAL_TIM_Base_Init (Thumb, 156 bytes, Stack size 16 bytes, stm32f1xx_hal_tim.o(.text.HAL_TIM_Base_Init)) +

                                      HAL_TIM_Base_Init (Thumb, 156 bytes, Stack size 16 bytes, stm32f1xx_hal_tim.o(.text.HAL_TIM_Base_Init))

                                      [Stack]

                                      • Max Depth = 28
                                      • Call Chain = HAL_TIM_Base_Init ⇒ TIM_Base_SetConfig
                                      -
                                      [Calls]
                                      • >>   TIM_Base_SetConfig -
                                      • >>   HAL_TIM_Base_MspInit +
                                        [Calls]
                                        • >>   TIM_Base_SetConfig +
                                        • >>   HAL_TIM_Base_MspInit
                                        -
                                        [Called By]
                                        • >>   MX_TIM2_Init +
                                          [Called By]
                                          • >>   MX_TIM3_Init +
                                          • >>   MX_TIM2_Init
                                          -

                                          HAL_TIM_Base_MspInit (Thumb, 52 bytes, Stack size 8 bytes, tim.o(.text.HAL_TIM_Base_MspInit)) -

                                          [Stack]

                                          • Max Depth = 8
                                          • Call Chain = HAL_TIM_Base_MspInit +

                                            HAL_TIM_Base_MspInit (Thumb, 104 bytes, Stack size 12 bytes, tim.o(.text.HAL_TIM_Base_MspInit)) +

                                            [Stack]

                                            • Max Depth = 12
                                            • Call Chain = HAL_TIM_Base_MspInit
                                            -
                                            [Called By]
                                            • >>   HAL_TIM_Base_Init +
                                              [Called By]
                                              • >>   HAL_TIM_Base_Init
                                              -

                                              HAL_TIM_ConfigClockSource (Thumb, 388 bytes, Stack size 32 bytes, stm32f1xx_hal_tim.o(.text.HAL_TIM_ConfigClockSource)) +

                                              HAL_TIM_Base_Stop_IT (Thumb, 82 bytes, Stack size 4 bytes, stm32f1xx_hal_tim.o(.text.HAL_TIM_Base_Stop_IT)) +

                                              [Stack]

                                              • Max Depth = 4
                                              • Call Chain = HAL_TIM_Base_Stop_IT +
                                              +
                                              [Called By]
                                              • >>   RS_Abort +
                                              + +

                                              HAL_TIM_ConfigClockSource (Thumb, 388 bytes, Stack size 32 bytes, stm32f1xx_hal_tim.o(.text.HAL_TIM_ConfigClockSource))

                                              [Stack]

                                              • Max Depth = 52
                                              • Call Chain = HAL_TIM_ConfigClockSource ⇒ TIM_ETR_SetConfig
                                              -
                                              [Calls]
                                              • >>   TIM_ETR_SetConfig -
                                              • >>   TIM_TI2_ConfigInputStage -
                                              • >>   TIM_ITRx_SetConfig -
                                              • >>   TIM_TI1_ConfigInputStage +
                                                [Calls]
                                                • >>   TIM_ETR_SetConfig +
                                                • >>   TIM_TI2_ConfigInputStage +
                                                • >>   TIM_ITRx_SetConfig +
                                                • >>   TIM_TI1_ConfigInputStage
                                                -
                                                [Called By]
                                                • >>   MX_TIM2_Init +
                                                  [Called By]
                                                  • >>   MX_TIM3_Init +
                                                  • >>   MX_TIM2_Init +
                                                  + +

                                                  HAL_UART_Abort (Thumb, 406 bytes, Stack size 40 bytes, stm32f1xx_hal_uart.o(.text.HAL_UART_Abort)) +

                                                  [Stack]

                                                  • Max Depth = 52
                                                  • Call Chain = HAL_UART_Abort ⇒ HAL_DMA_Abort +
                                                  +
                                                  [Calls]
                                                  • >>   HAL_DMA_GetError +
                                                  • >>   HAL_DMA_Abort +
                                                  +
                                                  [Called By]
                                                  • >>   RS_Abort +
                                                  + +

                                                  HAL_UART_AbortReceive (Thumb, 278 bytes, Stack size 32 bytes, stm32f1xx_hal_uart.o(.text.HAL_UART_AbortReceive)) +

                                                  [Stack]

                                                  • Max Depth = 44
                                                  • Call Chain = HAL_UART_AbortReceive ⇒ HAL_DMA_Abort +
                                                  +
                                                  [Calls]
                                                  • >>   HAL_DMA_GetError +
                                                  • >>   HAL_DMA_Abort +
                                                  +
                                                  [Called By]
                                                  • >>   RS_Abort +
                                                  + +

                                                  HAL_UART_AbortTransmit (Thumb, 186 bytes, Stack size 24 bytes, stm32f1xx_hal_uart.o(.text.HAL_UART_AbortTransmit)) +

                                                  [Stack]

                                                  • Max Depth = 36
                                                  • Call Chain = HAL_UART_AbortTransmit ⇒ HAL_DMA_Abort +
                                                  +
                                                  [Calls]
                                                  • >>   HAL_DMA_GetError +
                                                  • >>   HAL_DMA_Abort +
                                                  +
                                                  [Called By]
                                                  • >>   RS_Abort +
                                                  + +

                                                  HAL_UART_Init (Thumb, 158 bytes, Stack size 16 bytes, stm32f1xx_hal_uart.o(.text.HAL_UART_Init)) +

                                                  [Stack]

                                                  • Max Depth = 128
                                                  • Call Chain = HAL_UART_Init ⇒ HAL_UART_MspInit ⇒ HAL_GPIO_Init +
                                                  +
                                                  [Calls]
                                                  • >>   UART_SetConfig +
                                                  • >>   HAL_UART_MspInit +
                                                  +
                                                  [Called By]
                                                  • >>   MX_USART1_UART_Init +
                                                  + +

                                                  HAL_UART_MspInit (Thumb, 152 bytes, Stack size 48 bytes, usart.o(.text.HAL_UART_MspInit)) +

                                                  [Stack]

                                                  • Max Depth = 112
                                                  • Call Chain = HAL_UART_MspInit ⇒ HAL_GPIO_Init +
                                                  +
                                                  [Calls]
                                                  • >>   HAL_GPIO_Init +
                                                  +
                                                  [Called By]
                                                  • >>   HAL_UART_Init +
                                                  + +

                                                  HAL_UART_Receive_IT (Thumb, 86 bytes, Stack size 24 bytes, stm32f1xx_hal_uart.o(.text.HAL_UART_Receive_IT)) +

                                                  [Stack]

                                                  • Max Depth = 36
                                                  • Call Chain = HAL_UART_Receive_IT ⇒ UART_Start_Receive_IT +
                                                  +
                                                  [Calls]
                                                  • >>   UART_Start_Receive_IT +
                                                  +
                                                  [Called By]
                                                  • >>   RS_Receive_IT

                                                  HardFault_Handler (Thumb, 4 bytes, Stack size 0 bytes, stm32f1xx_it.o(.text.HardFault_Handler))
                                                  [Address Reference Count : 1]

                                                  • startup_stm32f103xb.o(RESET)
                                                  -

                                                  MX_GPIO_Init (Thumb, 182 bytes, Stack size 56 bytes, gpio.o(.text.MX_GPIO_Init)) -

                                                  [Stack]

                                                  • Max Depth = 120
                                                  • Call Chain = MX_GPIO_Init ⇒ HAL_GPIO_Init +

                                                    MB_DevoceInentificationInit (Thumb, 78 bytes, Stack size 0 bytes, modbus.o(.text.MB_DevoceInentificationInit)) +

                                                    [Called By]

                                                    • >>   MODBUS_FirstInit
                                                    -
                                                    [Calls]
                                                    • >>   HAL_GPIO_Init -
                                                    • >>   HAL_GPIO_WritePin + +

                                                      MODBUS_FirstInit (Thumb, 66 bytes, Stack size 16 bytes, modbus.o(.text.MODBUS_FirstInit)) +

                                                      [Stack]

                                                      • Max Depth = 36
                                                      • Call Chain = MODBUS_FirstInit ⇒ RS_Init +
                                                      +
                                                      [Calls]
                                                      • >>   RS_Init +
                                                      • >>   MB_DevoceInentificationInit

                                                      [Called By]
                                                      • >>   main
                                                      -

                                                      MX_TIM2_Init (Thumb, 126 bytes, Stack size 40 bytes, tim.o(.text.MX_TIM2_Init)) +

                                                      MX_GPIO_Init (Thumb, 182 bytes, Stack size 56 bytes, gpio.o(.text.MX_GPIO_Init)) +

                                                      [Stack]

                                                      • Max Depth = 120
                                                      • Call Chain = MX_GPIO_Init ⇒ HAL_GPIO_Init +
                                                      +
                                                      [Calls]
                                                      • >>   HAL_GPIO_Init +
                                                      • >>   HAL_GPIO_WritePin +
                                                      +
                                                      [Called By]
                                                      • >>   main +
                                                      + +

                                                      MX_TIM2_Init (Thumb, 126 bytes, Stack size 40 bytes, tim.o(.text.MX_TIM2_Init))

                                                      [Stack]

                                                      • Max Depth = 92
                                                      • Call Chain = MX_TIM2_Init ⇒ HAL_TIM_ConfigClockSource ⇒ TIM_ETR_SetConfig
                                                      -
                                                      [Calls]
                                                      • >>   HAL_TIMEx_MasterConfigSynchronization -
                                                      • >>   HAL_TIM_ConfigClockSource -
                                                      • >>   HAL_TIM_Base_Init -
                                                      • >>   Error_Handler +
                                                        [Calls]
                                                        • >>   HAL_TIMEx_MasterConfigSynchronization +
                                                        • >>   HAL_TIM_ConfigClockSource +
                                                        • >>   HAL_TIM_Base_Init +
                                                        • >>   Error_Handler +
                                                        +
                                                        [Called By]
                                                        • >>   main +
                                                        + +

                                                        MX_TIM3_Init (Thumb, 130 bytes, Stack size 40 bytes, tim.o(.text.MX_TIM3_Init)) +

                                                        [Stack]

                                                        • Max Depth = 92
                                                        • Call Chain = MX_TIM3_Init ⇒ HAL_TIM_ConfigClockSource ⇒ TIM_ETR_SetConfig +
                                                        +
                                                        [Calls]
                                                        • >>   HAL_TIMEx_MasterConfigSynchronization +
                                                        • >>   HAL_TIM_ConfigClockSource +
                                                        • >>   HAL_TIM_Base_Init +
                                                        • >>   Error_Handler +
                                                        +
                                                        [Called By]
                                                        • >>   main +
                                                        + +

                                                        MX_USART1_UART_Init (Thumb, 64 bytes, Stack size 16 bytes, usart.o(.text.MX_USART1_UART_Init)) +

                                                        [Stack]

                                                        • Max Depth = 144
                                                        • Call Chain = MX_USART1_UART_Init ⇒ HAL_UART_Init ⇒ HAL_UART_MspInit ⇒ HAL_GPIO_Init +
                                                        +
                                                        [Calls]
                                                        • >>   HAL_UART_Init +
                                                        • >>   Error_Handler

                                                        [Called By]
                                                        • >>   main
                                                        @@ -612,24 +746,50 @@ Global Symbols

                                                        PendSV_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_it.o(.text.PendSV_Handler))
                                                        [Address Reference Count : 1]

                                                        • startup_stm32f103xb.o(RESET)
                                                        +

                                                        RS_Abort (Thumb, 348 bytes, Stack size 24 bytes, rs_message.o(.text.RS_Abort)) +

                                                        [Stack]

                                                        • Max Depth = 76
                                                        • Call Chain = RS_Abort ⇒ HAL_UART_Abort ⇒ HAL_DMA_Abort +
                                                        +
                                                        [Calls]
                                                        • >>   HAL_UART_AbortReceive +
                                                        • >>   HAL_UART_AbortTransmit +
                                                        • >>   HAL_UART_Abort +
                                                        • >>   HAL_TIM_Base_Stop_IT +
                                                        +
                                                        [Called By]
                                                        • >>   RS_Receive_IT +
                                                        + +

                                                        RS_Init (Thumb, 112 bytes, Stack size 20 bytes, rs_message.o(.text.RS_Init)) +

                                                        [Stack]

                                                        • Max Depth = 20
                                                        • Call Chain = RS_Init +
                                                        +
                                                        [Called By]
                                                        • >>   MODBUS_FirstInit +
                                                        + +

                                                        RS_Receive_IT (Thumb, 176 bytes, Stack size 24 bytes, rs_message.o(.text.RS_Receive_IT)) +

                                                        [Stack]

                                                        • Max Depth = 100
                                                        • Call Chain = RS_Receive_IT ⇒ RS_Abort ⇒ HAL_UART_Abort ⇒ HAL_DMA_Abort +
                                                        +
                                                        [Calls]
                                                        • >>   HAL_UART_Receive_IT +
                                                        • >>   RS_Abort +
                                                        +
                                                        [Called By]
                                                        • >>   main +
                                                        +

                                                        SVC_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_it.o(.text.SVC_Handler))
                                                        [Address Reference Count : 1]

                                                        • startup_stm32f103xb.o(RESET)

                                                        SysTick_Handler (Thumb, 8 bytes, Stack size 8 bytes, stm32f1xx_it.o(.text.SysTick_Handler))

                                                        [Stack]

                                                        • Max Depth = 8
                                                        • Call Chain = SysTick_Handler
                                                        -
                                                        [Calls]
                                                        • >>   HAL_IncTick +
                                                          [Calls]
                                                          • >>   HAL_IncTick

                                                          [Address Reference Count : 1]
                                                          • startup_stm32f103xb.o(RESET)
                                                          -

                                                          SystemClock_Config (Thumb, 108 bytes, Stack size 72 bytes, main.o(.text.SystemClock_Config)) +

                                                          SystemClock_Config (Thumb, 108 bytes, Stack size 72 bytes, main.o(.text.SystemClock_Config))

                                                          [Stack]

                                                          • Max Depth = 176 + Unknown Stack Size
                                                          • Call Chain = SystemClock_Config ⇒ HAL_RCC_ClockConfig ⇒ HAL_InitTick ⇒ HAL_NVIC_SetPriority ⇒ NVIC_EncodePriority
                                                          -
                                                          [Calls]
                                                          • >>   __aeabi_memclr4 -
                                                          • >>   HAL_RCC_ClockConfig -
                                                          • >>   Error_Handler -
                                                          • >>   HAL_RCC_OscConfig +
                                                            [Calls]
                                                            • >>   HAL_RCC_ClockConfig +
                                                            • >>   Error_Handler +
                                                            • >>   HAL_RCC_OscConfig +
                                                            • >>   __aeabi_memclr4

                                                            [Called By]
                                                            • >>   main
                                                            @@ -637,52 +797,58 @@ Global Symbols

                                                            SystemInit (Thumb, 2 bytes, Stack size 0 bytes, system_stm32f1xx.o(.text.SystemInit))
                                                            [Address Reference Count : 1]

                                                            • startup_stm32f103xb.o(.text)
                                                            -

                                                            TIM_Base_SetConfig (Thumb, 262 bytes, Stack size 12 bytes, stm32f1xx_hal_tim.o(.text.TIM_Base_SetConfig)) +

                                                            TIM_Base_SetConfig (Thumb, 262 bytes, Stack size 12 bytes, stm32f1xx_hal_tim.o(.text.TIM_Base_SetConfig))

                                                            [Stack]

                                                            • Max Depth = 12
                                                            • Call Chain = TIM_Base_SetConfig
                                                            -
                                                            [Called By]
                                                            • >>   HAL_TIM_Base_Init +
                                                              [Called By]
                                                              • >>   HAL_TIM_Base_Init
                                                              -

                                                              TIM_ETR_SetConfig (Thumb, 52 bytes, Stack size 20 bytes, stm32f1xx_hal_tim.o(.text.TIM_ETR_SetConfig)) +

                                                              TIM_ETR_SetConfig (Thumb, 52 bytes, Stack size 20 bytes, stm32f1xx_hal_tim.o(.text.TIM_ETR_SetConfig))

                                                              [Stack]

                                                              • Max Depth = 20
                                                              • Call Chain = TIM_ETR_SetConfig
                                                              -
                                                              [Called By]
                                                              • >>   HAL_TIM_ConfigClockSource +
                                                                [Called By]
                                                                • >>   HAL_TIM_ConfigClockSource +
                                                                + +

                                                                UART_Start_Receive_IT (Thumb, 98 bytes, Stack size 12 bytes, stm32f1xx_hal_uart.o(.text.UART_Start_Receive_IT)) +

                                                                [Stack]

                                                                • Max Depth = 12
                                                                • Call Chain = UART_Start_Receive_IT +
                                                                +
                                                                [Called By]
                                                                • >>   HAL_UART_Receive_IT

                                                                UsageFault_Handler (Thumb, 4 bytes, Stack size 0 bytes, stm32f1xx_it.o(.text.UsageFault_Handler))
                                                                [Address Reference Count : 1]

                                                                • startup_stm32f103xb.o(RESET)
                                                                -

                                                                append_bit (Thumb, 48 bytes, Stack size 12 bytes, canform.o(.text.append_bit)) +

                                                                append_bit (Thumb, 48 bytes, Stack size 12 bytes, canform.o(.text.append_bit))

                                                                [Stack]

                                                                • Max Depth = 12
                                                                • Call Chain = append_bit
                                                                -
                                                                [Called By]
                                                                • >>   apply_bit_stuffing_with_error -
                                                                • >>   append_bits +
                                                                  [Called By]
                                                                  • >>   apply_bit_stuffing_with_error +
                                                                  • >>   append_bits
                                                                  • >>   form_CAN_bitstream_full
                                                                  -

                                                                  append_bits (Thumb, 64 bytes, Stack size 32 bytes, canform.o(.text.append_bits)) +

                                                                  append_bits (Thumb, 64 bytes, Stack size 32 bytes, canform.o(.text.append_bits))

                                                                  [Stack]

                                                                  • Max Depth = 44
                                                                  • Call Chain = append_bits ⇒ append_bit
                                                                  -
                                                                  [Calls]
                                                                  • >>   append_bit +
                                                                    [Calls]
                                                                    • >>   append_bit

                                                                    [Called By]
                                                                    • >>   form_CAN_bitstream_full
                                                                    -

                                                                    apply_bit_stuffing_with_error (Thumb, 196 bytes, Stack size 40 bytes, canform.o(.text.apply_bit_stuffing_with_error)) +

                                                                    apply_bit_stuffing_with_error (Thumb, 196 bytes, Stack size 40 bytes, canform.o(.text.apply_bit_stuffing_with_error))

                                                                    [Stack]

                                                                    • Max Depth = 52
                                                                    • Call Chain = apply_bit_stuffing_with_error ⇒ append_bit
                                                                    -
                                                                    [Calls]
                                                                    • >>   append_bit +
                                                                      [Calls]
                                                                      • >>   append_bit

                                                                      [Called By]
                                                                      • >>   form_CAN_bitstream_full
                                                                      -

                                                                      compute_crc15 (Thumb, 118 bytes, Stack size 20 bytes, canform.o(.text.compute_crc15)) +

                                                                      compute_crc15 (Thumb, 118 bytes, Stack size 20 bytes, canform.o(.text.compute_crc15))

                                                                      [Stack]

                                                                      • Max Depth = 20
                                                                      • Call Chain = compute_crc15

                                                                      [Called By]
                                                                      • >>   form_CAN_bitstream_full
                                                                      -

                                                                      flip_bit (Thumb, 48 bytes, Stack size 4 bytes, canform.o(.text.flip_bit)) +

                                                                      flip_bit (Thumb, 48 bytes, Stack size 4 bytes, canform.o(.text.flip_bit))

                                                                      [Stack]

                                                                      • Max Depth = 4
                                                                      • Call Chain = flip_bit

                                                                      [Called By]
                                                                      • >>   form_CAN_bitstream_full @@ -691,25 +857,29 @@ Global Symbols

                                                                        form_CAN_bitstream_full (Thumb, 978 bytes, Stack size 160 bytes, canform.o(.text.form_CAN_bitstream_full))

                                                                        [Stack]

                                                                        • Max Depth = 212
                                                                        • Call Chain = form_CAN_bitstream_full ⇒ apply_bit_stuffing_with_error ⇒ append_bit
                                                                        -
                                                                        [Calls]
                                                                        • >>   flip_bit -
                                                                        • >>   apply_bit_stuffing_with_error -
                                                                        • >>   compute_crc15 -
                                                                        • >>   append_bits -
                                                                        • >>   append_bit +
                                                                          [Calls]
                                                                          • >>   flip_bit +
                                                                          • >>   apply_bit_stuffing_with_error +
                                                                          • >>   compute_crc15 +
                                                                          • >>   append_bits +
                                                                          • >>   append_bit

                                                                          [Called By]
                                                                          • >>   CANEmu_SendFrame
                                                                          -

                                                                          main (Thumb, 76 bytes, Stack size 16 bytes, main.o(.text.main)) -

                                                                          [Stack]

                                                                          • Max Depth = 252 + Unknown Stack Size +

                                                                            main (Thumb, 488 bytes, Stack size 32 bytes, main.o(.text.main)) +

                                                                            [Stack]

                                                                            • Max Depth = 268 + Unknown Stack Size
                                                                            • Call Chain = main ⇒ CANEmu_SendFrame ⇒ form_CAN_bitstream_full ⇒ apply_bit_stuffing_with_error ⇒ append_bit

                                                                            [Calls]
                                                                            • >>   CANEmu_SendFrame
                                                                            • >>   HAL_Delay -
                                                                            • >>   CANEmu_Init -
                                                                            • >>   MX_TIM2_Init -
                                                                            • >>   MX_GPIO_Init -
                                                                            • >>   SystemClock_Config +
                                                                            • >>   RS_Receive_IT +
                                                                            • >>   MODBUS_FirstInit +
                                                                            • >>   CANEmu_Init +
                                                                            • >>   MX_USART1_UART_Init +
                                                                            • >>   MX_TIM3_Init +
                                                                            • >>   MX_TIM2_Init +
                                                                            • >>   MX_GPIO_Init +
                                                                            • >>   SystemClock_Config
                                                                            • >>   HAL_Init

                                                                            [Called By]
                                                                            • >>   __rt_entry_main @@ -724,28 +894,28 @@ Global Symbols

                                                                              Local Symbols

                                                                              -

                                                                              TIM_TI1_ConfigInputStage (Thumb, 80 bytes, Stack size 20 bytes, stm32f1xx_hal_tim.o(.text.TIM_TI1_ConfigInputStage)) +

                                                                              TIM_TI1_ConfigInputStage (Thumb, 80 bytes, Stack size 20 bytes, stm32f1xx_hal_tim.o(.text.TIM_TI1_ConfigInputStage))

                                                                              [Stack]

                                                                              • Max Depth = 20
                                                                              • Call Chain = TIM_TI1_ConfigInputStage
                                                                              -
                                                                              [Called By]
                                                                              • >>   HAL_TIM_ConfigClockSource +
                                                                                [Called By]
                                                                                • >>   HAL_TIM_ConfigClockSource
                                                                                -

                                                                                TIM_ITRx_SetConfig (Thumb, 42 bytes, Stack size 12 bytes, stm32f1xx_hal_tim.o(.text.TIM_ITRx_SetConfig)) +

                                                                                TIM_ITRx_SetConfig (Thumb, 42 bytes, Stack size 12 bytes, stm32f1xx_hal_tim.o(.text.TIM_ITRx_SetConfig))

                                                                                [Stack]

                                                                                • Max Depth = 12
                                                                                • Call Chain = TIM_ITRx_SetConfig
                                                                                -
                                                                                [Called By]
                                                                                • >>   HAL_TIM_ConfigClockSource +
                                                                                  [Called By]
                                                                                  • >>   HAL_TIM_ConfigClockSource
                                                                                  -

                                                                                  TIM_TI2_ConfigInputStage (Thumb, 82 bytes, Stack size 20 bytes, stm32f1xx_hal_tim.o(.text.TIM_TI2_ConfigInputStage)) +

                                                                                  TIM_TI2_ConfigInputStage (Thumb, 82 bytes, Stack size 20 bytes, stm32f1xx_hal_tim.o(.text.TIM_TI2_ConfigInputStage))

                                                                                  [Stack]

                                                                                  • Max Depth = 20
                                                                                  • Call Chain = TIM_TI2_ConfigInputStage
                                                                                  -
                                                                                  [Called By]
                                                                                  • >>   HAL_TIM_ConfigClockSource +
                                                                                    [Called By]
                                                                                    • >>   HAL_TIM_ConfigClockSource
                                                                                    -

                                                                                    RCC_Delay (Thumb, 58 bytes, Stack size 8 bytes, stm32f1xx_hal_rcc.o(.text.RCC_Delay)) +

                                                                                    RCC_Delay (Thumb, 58 bytes, Stack size 8 bytes, stm32f1xx_hal_rcc.o(.text.RCC_Delay))

                                                                                    [Stack]

                                                                                    • Max Depth = 8
                                                                                    • Call Chain = RCC_Delay
                                                                                    -
                                                                                    [Called By]
                                                                                    • >>   HAL_RCC_OscConfig +
                                                                                      [Called By]
                                                                                      • >>   HAL_RCC_OscConfig

                                                                                      __NVIC_SetPriorityGrouping (Thumb, 60 bytes, Stack size 12 bytes, stm32f1xx_hal_cortex.o(.text.__NVIC_SetPriorityGrouping)) @@ -767,17 +937,26 @@ Local Symbols

                                                                                      __NVIC_SetPriority (Thumb, 66 bytes, Stack size 8 bytes, stm32f1xx_hal_cortex.o(.text.__NVIC_SetPriority))

                                                                                      [Stack]

                                                                                      • Max Depth = 8
                                                                                      • Call Chain = __NVIC_SetPriority
                                                                                      -
                                                                                      [Called By]
                                                                                      • >>   SysTick_Config +
                                                                                        [Called By]
                                                                                        • >>   SysTick_Config
                                                                                        • >>   HAL_NVIC_SetPriority
                                                                                        -

                                                                                        SysTick_Config (Thumb, 82 bytes, Stack size 16 bytes, stm32f1xx_hal_cortex.o(.text.SysTick_Config)) +

                                                                                        SysTick_Config (Thumb, 82 bytes, Stack size 16 bytes, stm32f1xx_hal_cortex.o(.text.SysTick_Config))

                                                                                        [Stack]

                                                                                        • Max Depth = 24
                                                                                        • Call Chain = SysTick_Config ⇒ __NVIC_SetPriority

                                                                                        [Calls]
                                                                                        • >>   __NVIC_SetPriority

                                                                                        [Called By]
                                                                                        • >>   HAL_SYSTICK_Config
                                                                                        + +

                                                                                        UART_SetConfig (Thumb, 186 bytes, Stack size 24 bytes, stm32f1xx_hal_uart.o(.text.UART_SetConfig)) +

                                                                                        [Stack]

                                                                                        • Max Depth = 32
                                                                                        • Call Chain = UART_SetConfig ⇒ HAL_RCC_GetPCLK2Freq +
                                                                                        +
                                                                                        [Calls]
                                                                                        • >>   HAL_RCC_GetPCLK2Freq +
                                                                                        • >>   HAL_RCC_GetPCLK1Freq +
                                                                                        +
                                                                                        [Called By]
                                                                                        • >>   HAL_UART_Init +

                                                                                        Undefined Global Symbols diff --git a/MDK-ARM/CANEmu/CANEmu.lnp b/MDK-ARM/CANEmu/CANEmu.lnp index ec2a770..db636be 100644 --- a/MDK-ARM/CANEmu/CANEmu.lnp +++ b/MDK-ARM/CANEmu/CANEmu.lnp @@ -3,6 +3,7 @@ "canemu\main.o" "canemu\gpio.o" "canemu\tim.o" +"canemu\usart.o" "canemu\stm32f1xx_it.o" "canemu\stm32f1xx_hal_msp.o" "canemu\stm32f1xx_hal_gpio_ex.o" @@ -18,9 +19,13 @@ "canemu\stm32f1xx_hal_flash.o" "canemu\stm32f1xx_hal_flash_ex.o" "canemu\stm32f1xx_hal_exti.o" +"canemu\stm32f1xx_hal_uart.o" "canemu\system_stm32f1xx.o" "canemu\canemu.o" "canemu\canform.o" +"canemu\crc_algs.o" +"canemu\modbus.o" +"canemu\rs_message.o" --strict --scatter "CANEmu\CANEmu.sct" --summary_stderr --info summarysizes --map --load_addr_map_info --xref --callgraph --symbols --info sizes --info totals --info unused --info veneers diff --git a/MDK-ARM/CANEmu/CANEmu.map b/MDK-ARM/CANEmu/CANEmu.map index 4de6b23..a571c2e 100644 --- a/MDK-ARM/CANEmu/CANEmu.map +++ b/MDK-ARM/CANEmu/CANEmu.map @@ -27,8 +27,16 @@ Section Cross References main.o(.text.main) refers to main.o(.text.SystemClock_Config) for SystemClock_Config main.o(.text.main) refers to gpio.o(.text.MX_GPIO_Init) for MX_GPIO_Init main.o(.text.main) refers to tim.o(.text.MX_TIM2_Init) for MX_TIM2_Init + main.o(.text.main) refers to tim.o(.text.MX_TIM3_Init) for MX_TIM3_Init + main.o(.text.main) refers to usart.o(.text.MX_USART1_UART_Init) for MX_USART1_UART_Init main.o(.text.main) refers to main.o(.bss.hcanemu) for hcanemu main.o(.text.main) refers to canemu.o(.text.CANEmu_Init) for CANEmu_Init + main.o(.text.main) refers to modbus.o(.text.MODBUS_FirstInit) for MODBUS_FirstInit + main.o(.text.main) refers to modbus.o(.bss.hmodbus1) for hmodbus1 + main.o(.text.main) refers to modbus.o(.bss.MODBUS_MSG) for MODBUS_MSG + main.o(.text.main) refers to rs_message.o(.text.RS_Receive_IT) for RS_Receive_IT + main.o(.text.main) refers to main.o(.bss.flag_manual) for flag_manual + main.o(.text.main) refers to modbus.o(.bss.MB_DATA) for MB_DATA main.o(.text.main) refers to stm32f1xx_hal.o(.text.HAL_Delay) for HAL_Delay main.o(.text.main) refers to canemu.o(.text.CANEmu_SendFrame) for CANEmu_SendFrame main.o(.ARM.exidx.text.main) refers to main.o(.text.main) for [Anonymous Symbol] @@ -47,8 +55,22 @@ Section Cross References tim.o(.text.MX_TIM2_Init) refers to stm32f1xx_hal_tim.o(.text.HAL_TIM_ConfigClockSource) for HAL_TIM_ConfigClockSource tim.o(.text.MX_TIM2_Init) refers to stm32f1xx_hal_tim_ex.o(.text.HAL_TIMEx_MasterConfigSynchronization) for HAL_TIMEx_MasterConfigSynchronization tim.o(.ARM.exidx.text.MX_TIM2_Init) refers to tim.o(.text.MX_TIM2_Init) for [Anonymous Symbol] + tim.o(.text.MX_TIM3_Init) refers to tim.o(.bss.htim3) for htim3 + tim.o(.text.MX_TIM3_Init) refers to stm32f1xx_hal_tim.o(.text.HAL_TIM_Base_Init) for HAL_TIM_Base_Init + tim.o(.text.MX_TIM3_Init) refers to main.o(.text.Error_Handler) for Error_Handler + tim.o(.text.MX_TIM3_Init) refers to stm32f1xx_hal_tim.o(.text.HAL_TIM_ConfigClockSource) for HAL_TIM_ConfigClockSource + tim.o(.text.MX_TIM3_Init) refers to stm32f1xx_hal_tim_ex.o(.text.HAL_TIMEx_MasterConfigSynchronization) for HAL_TIMEx_MasterConfigSynchronization + tim.o(.ARM.exidx.text.MX_TIM3_Init) refers to tim.o(.text.MX_TIM3_Init) for [Anonymous Symbol] tim.o(.ARM.exidx.text.HAL_TIM_Base_MspInit) refers to tim.o(.text.HAL_TIM_Base_MspInit) for [Anonymous Symbol] tim.o(.ARM.exidx.text.HAL_TIM_Base_MspDeInit) refers to tim.o(.text.HAL_TIM_Base_MspDeInit) for [Anonymous Symbol] + usart.o(.text.MX_USART1_UART_Init) refers to usart.o(.bss.huart1) for huart1 + usart.o(.text.MX_USART1_UART_Init) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_Init) for HAL_UART_Init + usart.o(.text.MX_USART1_UART_Init) refers to main.o(.text.Error_Handler) for Error_Handler + usart.o(.ARM.exidx.text.MX_USART1_UART_Init) refers to usart.o(.text.MX_USART1_UART_Init) for [Anonymous Symbol] + usart.o(.text.HAL_UART_MspInit) refers to stm32f1xx_hal_gpio.o(.text.HAL_GPIO_Init) for HAL_GPIO_Init + usart.o(.ARM.exidx.text.HAL_UART_MspInit) refers to usart.o(.text.HAL_UART_MspInit) for [Anonymous Symbol] + usart.o(.text.HAL_UART_MspDeInit) refers to stm32f1xx_hal_gpio.o(.text.HAL_GPIO_DeInit) for HAL_GPIO_DeInit + usart.o(.ARM.exidx.text.HAL_UART_MspDeInit) refers to usart.o(.text.HAL_UART_MspDeInit) for [Anonymous Symbol] stm32f1xx_it.o(.ARM.exidx.text.NMI_Handler) refers to stm32f1xx_it.o(.text.NMI_Handler) for [Anonymous Symbol] stm32f1xx_it.o(.ARM.exidx.text.HardFault_Handler) refers to stm32f1xx_it.o(.text.HardFault_Handler) for [Anonymous Symbol] stm32f1xx_it.o(.ARM.exidx.text.MemManage_Handler) refers to stm32f1xx_it.o(.text.MemManage_Handler) for [Anonymous Symbol] @@ -685,6 +707,143 @@ Section Cross References stm32f1xx_hal_exti.o(.ARM.exidx.text.HAL_EXTI_GetPending) refers to stm32f1xx_hal_exti.o(.text.HAL_EXTI_GetPending) for [Anonymous Symbol] stm32f1xx_hal_exti.o(.ARM.exidx.text.HAL_EXTI_ClearPending) refers to stm32f1xx_hal_exti.o(.text.HAL_EXTI_ClearPending) for [Anonymous Symbol] stm32f1xx_hal_exti.o(.ARM.exidx.text.HAL_EXTI_GenerateSWI) refers to stm32f1xx_hal_exti.o(.text.HAL_EXTI_GenerateSWI) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.text.HAL_UART_Init) refers to usart.o(.text.HAL_UART_MspInit) for HAL_UART_MspInit + stm32f1xx_hal_uart.o(.text.HAL_UART_Init) refers to stm32f1xx_hal_uart.o(.text.UART_SetConfig) for UART_SetConfig + stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_Init) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_Init) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_MspInit) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_MspInit) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.text.UART_SetConfig) refers to stm32f1xx_hal_rcc.o(.text.HAL_RCC_GetPCLK2Freq) for HAL_RCC_GetPCLK2Freq + stm32f1xx_hal_uart.o(.text.UART_SetConfig) refers to stm32f1xx_hal_rcc.o(.text.HAL_RCC_GetPCLK1Freq) for HAL_RCC_GetPCLK1Freq + stm32f1xx_hal_uart.o(.ARM.exidx.text.UART_SetConfig) refers to stm32f1xx_hal_uart.o(.text.UART_SetConfig) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.text.HAL_HalfDuplex_Init) refers to usart.o(.text.HAL_UART_MspInit) for HAL_UART_MspInit + stm32f1xx_hal_uart.o(.text.HAL_HalfDuplex_Init) refers to stm32f1xx_hal_uart.o(.text.UART_SetConfig) for UART_SetConfig + stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_HalfDuplex_Init) refers to stm32f1xx_hal_uart.o(.text.HAL_HalfDuplex_Init) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.text.HAL_LIN_Init) refers to usart.o(.text.HAL_UART_MspInit) for HAL_UART_MspInit + stm32f1xx_hal_uart.o(.text.HAL_LIN_Init) refers to stm32f1xx_hal_uart.o(.text.UART_SetConfig) for UART_SetConfig + stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_LIN_Init) refers to stm32f1xx_hal_uart.o(.text.HAL_LIN_Init) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.text.HAL_MultiProcessor_Init) refers to usart.o(.text.HAL_UART_MspInit) for HAL_UART_MspInit + stm32f1xx_hal_uart.o(.text.HAL_MultiProcessor_Init) refers to stm32f1xx_hal_uart.o(.text.UART_SetConfig) for UART_SetConfig + stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_MultiProcessor_Init) refers to stm32f1xx_hal_uart.o(.text.HAL_MultiProcessor_Init) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.text.HAL_UART_DeInit) refers to usart.o(.text.HAL_UART_MspDeInit) for HAL_UART_MspDeInit + stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_DeInit) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_DeInit) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_MspDeInit) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_MspDeInit) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.text.HAL_UART_Transmit) refers to stm32f1xx_hal.o(.text.HAL_GetTick) for HAL_GetTick + stm32f1xx_hal_uart.o(.text.HAL_UART_Transmit) refers to stm32f1xx_hal_uart.o(.text.UART_WaitOnFlagUntilTimeout) for UART_WaitOnFlagUntilTimeout + stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_Transmit) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_Transmit) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.text.UART_WaitOnFlagUntilTimeout) refers to stm32f1xx_hal.o(.text.HAL_GetTick) for HAL_GetTick + stm32f1xx_hal_uart.o(.text.UART_WaitOnFlagUntilTimeout) refers to stm32f1xx_hal_uart.o(.text.UART_EndRxTransfer) for UART_EndRxTransfer + stm32f1xx_hal_uart.o(.ARM.exidx.text.UART_WaitOnFlagUntilTimeout) refers to stm32f1xx_hal_uart.o(.text.UART_WaitOnFlagUntilTimeout) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.text.HAL_UART_Receive) refers to stm32f1xx_hal.o(.text.HAL_GetTick) for HAL_GetTick + stm32f1xx_hal_uart.o(.text.HAL_UART_Receive) refers to stm32f1xx_hal_uart.o(.text.UART_WaitOnFlagUntilTimeout) for UART_WaitOnFlagUntilTimeout + stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_Receive) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_Receive) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_Transmit_IT) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_Transmit_IT) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.text.HAL_UART_Receive_IT) refers to stm32f1xx_hal_uart.o(.text.UART_Start_Receive_IT) for UART_Start_Receive_IT + stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_Receive_IT) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_Receive_IT) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.ARM.exidx.text.UART_Start_Receive_IT) refers to stm32f1xx_hal_uart.o(.text.UART_Start_Receive_IT) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.text.HAL_UART_Transmit_DMA) refers to stm32f1xx_hal_uart.o(.text.UART_DMATransmitCplt) for UART_DMATransmitCplt + stm32f1xx_hal_uart.o(.text.HAL_UART_Transmit_DMA) refers to stm32f1xx_hal_uart.o(.text.UART_DMATxHalfCplt) for UART_DMATxHalfCplt + stm32f1xx_hal_uart.o(.text.HAL_UART_Transmit_DMA) refers to stm32f1xx_hal_uart.o(.text.UART_DMAError) for UART_DMAError + stm32f1xx_hal_uart.o(.text.HAL_UART_Transmit_DMA) refers to stm32f1xx_hal_dma.o(.text.HAL_DMA_Start_IT) for HAL_DMA_Start_IT + stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_Transmit_DMA) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_Transmit_DMA) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.text.UART_DMATransmitCplt) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_TxCpltCallback) for HAL_UART_TxCpltCallback + stm32f1xx_hal_uart.o(.ARM.exidx.text.UART_DMATransmitCplt) refers to stm32f1xx_hal_uart.o(.text.UART_DMATransmitCplt) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.text.UART_DMATxHalfCplt) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_TxHalfCpltCallback) for HAL_UART_TxHalfCpltCallback + stm32f1xx_hal_uart.o(.ARM.exidx.text.UART_DMATxHalfCplt) refers to stm32f1xx_hal_uart.o(.text.UART_DMATxHalfCplt) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.text.UART_DMAError) refers to stm32f1xx_hal_uart.o(.text.UART_EndTxTransfer) for UART_EndTxTransfer + stm32f1xx_hal_uart.o(.text.UART_DMAError) refers to stm32f1xx_hal_uart.o(.text.UART_EndRxTransfer) for UART_EndRxTransfer + stm32f1xx_hal_uart.o(.text.UART_DMAError) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_ErrorCallback) for HAL_UART_ErrorCallback + stm32f1xx_hal_uart.o(.ARM.exidx.text.UART_DMAError) refers to stm32f1xx_hal_uart.o(.text.UART_DMAError) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.text.HAL_UART_Receive_DMA) refers to stm32f1xx_hal_uart.o(.text.UART_Start_Receive_DMA) for UART_Start_Receive_DMA + stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_Receive_DMA) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_Receive_DMA) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.text.UART_Start_Receive_DMA) refers to stm32f1xx_hal_uart.o(.text.UART_DMAReceiveCplt) for UART_DMAReceiveCplt + stm32f1xx_hal_uart.o(.text.UART_Start_Receive_DMA) refers to stm32f1xx_hal_uart.o(.text.UART_DMARxHalfCplt) for UART_DMARxHalfCplt + stm32f1xx_hal_uart.o(.text.UART_Start_Receive_DMA) refers to stm32f1xx_hal_uart.o(.text.UART_DMAError) for UART_DMAError + stm32f1xx_hal_uart.o(.text.UART_Start_Receive_DMA) refers to stm32f1xx_hal_dma.o(.text.HAL_DMA_Start_IT) for HAL_DMA_Start_IT + stm32f1xx_hal_uart.o(.ARM.exidx.text.UART_Start_Receive_DMA) refers to stm32f1xx_hal_uart.o(.text.UART_Start_Receive_DMA) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_DMAPause) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_DMAPause) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_DMAResume) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_DMAResume) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.text.HAL_UART_DMAStop) refers to stm32f1xx_hal_dma.o(.text.HAL_DMA_Abort) for HAL_DMA_Abort + stm32f1xx_hal_uart.o(.text.HAL_UART_DMAStop) refers to stm32f1xx_hal_uart.o(.text.UART_EndTxTransfer) for UART_EndTxTransfer + stm32f1xx_hal_uart.o(.text.HAL_UART_DMAStop) refers to stm32f1xx_hal_uart.o(.text.UART_EndRxTransfer) for UART_EndRxTransfer + stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_DMAStop) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_DMAStop) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.ARM.exidx.text.UART_EndTxTransfer) refers to stm32f1xx_hal_uart.o(.text.UART_EndTxTransfer) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.ARM.exidx.text.UART_EndRxTransfer) refers to stm32f1xx_hal_uart.o(.text.UART_EndRxTransfer) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.text.HAL_UARTEx_ReceiveToIdle) refers to stm32f1xx_hal.o(.text.HAL_GetTick) for HAL_GetTick + stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UARTEx_ReceiveToIdle) refers to stm32f1xx_hal_uart.o(.text.HAL_UARTEx_ReceiveToIdle) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.text.HAL_UARTEx_ReceiveToIdle_IT) refers to stm32f1xx_hal_uart.o(.text.UART_Start_Receive_IT) for UART_Start_Receive_IT + stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UARTEx_ReceiveToIdle_IT) refers to stm32f1xx_hal_uart.o(.text.HAL_UARTEx_ReceiveToIdle_IT) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.text.HAL_UARTEx_ReceiveToIdle_DMA) refers to stm32f1xx_hal_uart.o(.text.UART_Start_Receive_DMA) for UART_Start_Receive_DMA + stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UARTEx_ReceiveToIdle_DMA) refers to stm32f1xx_hal_uart.o(.text.HAL_UARTEx_ReceiveToIdle_DMA) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UARTEx_GetRxEventType) refers to stm32f1xx_hal_uart.o(.text.HAL_UARTEx_GetRxEventType) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.text.HAL_UART_Abort) refers to stm32f1xx_hal_dma.o(.text.HAL_DMA_Abort) for HAL_DMA_Abort + stm32f1xx_hal_uart.o(.text.HAL_UART_Abort) refers to stm32f1xx_hal_dma.o(.text.HAL_DMA_GetError) for HAL_DMA_GetError + stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_Abort) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_Abort) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.text.HAL_UART_AbortTransmit) refers to stm32f1xx_hal_dma.o(.text.HAL_DMA_Abort) for HAL_DMA_Abort + stm32f1xx_hal_uart.o(.text.HAL_UART_AbortTransmit) refers to stm32f1xx_hal_dma.o(.text.HAL_DMA_GetError) for HAL_DMA_GetError + stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_AbortTransmit) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_AbortTransmit) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.text.HAL_UART_AbortReceive) refers to stm32f1xx_hal_dma.o(.text.HAL_DMA_Abort) for HAL_DMA_Abort + stm32f1xx_hal_uart.o(.text.HAL_UART_AbortReceive) refers to stm32f1xx_hal_dma.o(.text.HAL_DMA_GetError) for HAL_DMA_GetError + stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_AbortReceive) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_AbortReceive) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.text.HAL_UART_Abort_IT) refers to stm32f1xx_hal_uart.o(.text.UART_DMATxAbortCallback) for UART_DMATxAbortCallback + stm32f1xx_hal_uart.o(.text.HAL_UART_Abort_IT) refers to stm32f1xx_hal_uart.o(.text.UART_DMARxAbortCallback) for UART_DMARxAbortCallback + stm32f1xx_hal_uart.o(.text.HAL_UART_Abort_IT) refers to stm32f1xx_hal_dma.o(.text.HAL_DMA_Abort_IT) for HAL_DMA_Abort_IT + stm32f1xx_hal_uart.o(.text.HAL_UART_Abort_IT) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_AbortCpltCallback) for HAL_UART_AbortCpltCallback + stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_Abort_IT) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_Abort_IT) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.text.UART_DMATxAbortCallback) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_AbortCpltCallback) for HAL_UART_AbortCpltCallback + stm32f1xx_hal_uart.o(.ARM.exidx.text.UART_DMATxAbortCallback) refers to stm32f1xx_hal_uart.o(.text.UART_DMATxAbortCallback) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.text.UART_DMARxAbortCallback) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_AbortCpltCallback) for HAL_UART_AbortCpltCallback + stm32f1xx_hal_uart.o(.ARM.exidx.text.UART_DMARxAbortCallback) refers to stm32f1xx_hal_uart.o(.text.UART_DMARxAbortCallback) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_AbortCpltCallback) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_AbortCpltCallback) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.text.HAL_UART_AbortTransmit_IT) refers to stm32f1xx_hal_uart.o(.text.UART_DMATxOnlyAbortCallback) for UART_DMATxOnlyAbortCallback + stm32f1xx_hal_uart.o(.text.HAL_UART_AbortTransmit_IT) refers to stm32f1xx_hal_dma.o(.text.HAL_DMA_Abort_IT) for HAL_DMA_Abort_IT + stm32f1xx_hal_uart.o(.text.HAL_UART_AbortTransmit_IT) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_AbortTransmitCpltCallback) for HAL_UART_AbortTransmitCpltCallback + stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_AbortTransmit_IT) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_AbortTransmit_IT) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.text.UART_DMATxOnlyAbortCallback) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_AbortTransmitCpltCallback) for HAL_UART_AbortTransmitCpltCallback + stm32f1xx_hal_uart.o(.ARM.exidx.text.UART_DMATxOnlyAbortCallback) refers to stm32f1xx_hal_uart.o(.text.UART_DMATxOnlyAbortCallback) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_AbortTransmitCpltCallback) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_AbortTransmitCpltCallback) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.text.HAL_UART_AbortReceive_IT) refers to stm32f1xx_hal_uart.o(.text.UART_DMARxOnlyAbortCallback) for UART_DMARxOnlyAbortCallback + stm32f1xx_hal_uart.o(.text.HAL_UART_AbortReceive_IT) refers to stm32f1xx_hal_dma.o(.text.HAL_DMA_Abort_IT) for HAL_DMA_Abort_IT + stm32f1xx_hal_uart.o(.text.HAL_UART_AbortReceive_IT) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_AbortReceiveCpltCallback) for HAL_UART_AbortReceiveCpltCallback + stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_AbortReceive_IT) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_AbortReceive_IT) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.text.UART_DMARxOnlyAbortCallback) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_AbortReceiveCpltCallback) for HAL_UART_AbortReceiveCpltCallback + stm32f1xx_hal_uart.o(.ARM.exidx.text.UART_DMARxOnlyAbortCallback) refers to stm32f1xx_hal_uart.o(.text.UART_DMARxOnlyAbortCallback) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_AbortReceiveCpltCallback) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_AbortReceiveCpltCallback) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.text.HAL_UART_IRQHandler) refers to stm32f1xx_hal_uart.o(.text.UART_Receive_IT) for UART_Receive_IT + stm32f1xx_hal_uart.o(.text.HAL_UART_IRQHandler) refers to stm32f1xx_hal_uart.o(.text.UART_EndRxTransfer) for UART_EndRxTransfer + stm32f1xx_hal_uart.o(.text.HAL_UART_IRQHandler) refers to stm32f1xx_hal_uart.o(.text.UART_DMAAbortOnError) for UART_DMAAbortOnError + stm32f1xx_hal_uart.o(.text.HAL_UART_IRQHandler) refers to stm32f1xx_hal_dma.o(.text.HAL_DMA_Abort_IT) for HAL_DMA_Abort_IT + stm32f1xx_hal_uart.o(.text.HAL_UART_IRQHandler) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_ErrorCallback) for HAL_UART_ErrorCallback + stm32f1xx_hal_uart.o(.text.HAL_UART_IRQHandler) refers to stm32f1xx_hal_dma.o(.text.HAL_DMA_Abort) for HAL_DMA_Abort + stm32f1xx_hal_uart.o(.text.HAL_UART_IRQHandler) refers to stm32f1xx_hal_uart.o(.text.HAL_UARTEx_RxEventCallback) for HAL_UARTEx_RxEventCallback + stm32f1xx_hal_uart.o(.text.HAL_UART_IRQHandler) refers to stm32f1xx_hal_uart.o(.text.UART_Transmit_IT) for UART_Transmit_IT + stm32f1xx_hal_uart.o(.text.HAL_UART_IRQHandler) refers to stm32f1xx_hal_uart.o(.text.UART_EndTransmit_IT) for UART_EndTransmit_IT + stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_IRQHandler) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_IRQHandler) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.text.UART_Receive_IT) refers to stm32f1xx_hal_uart.o(.text.HAL_UARTEx_RxEventCallback) for HAL_UARTEx_RxEventCallback + stm32f1xx_hal_uart.o(.text.UART_Receive_IT) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_RxCpltCallback) for HAL_UART_RxCpltCallback + stm32f1xx_hal_uart.o(.ARM.exidx.text.UART_Receive_IT) refers to stm32f1xx_hal_uart.o(.text.UART_Receive_IT) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.text.UART_DMAAbortOnError) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_ErrorCallback) for HAL_UART_ErrorCallback + stm32f1xx_hal_uart.o(.ARM.exidx.text.UART_DMAAbortOnError) refers to stm32f1xx_hal_uart.o(.text.UART_DMAAbortOnError) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_ErrorCallback) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_ErrorCallback) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UARTEx_RxEventCallback) refers to stm32f1xx_hal_uart.o(.text.HAL_UARTEx_RxEventCallback) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.ARM.exidx.text.UART_Transmit_IT) refers to stm32f1xx_hal_uart.o(.text.UART_Transmit_IT) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.text.UART_EndTransmit_IT) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_TxCpltCallback) for HAL_UART_TxCpltCallback + stm32f1xx_hal_uart.o(.ARM.exidx.text.UART_EndTransmit_IT) refers to stm32f1xx_hal_uart.o(.text.UART_EndTransmit_IT) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_TxCpltCallback) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_TxCpltCallback) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_TxHalfCpltCallback) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_TxHalfCpltCallback) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_RxCpltCallback) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_RxCpltCallback) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_RxHalfCpltCallback) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_RxHalfCpltCallback) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_LIN_SendBreak) refers to stm32f1xx_hal_uart.o(.text.HAL_LIN_SendBreak) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_MultiProcessor_EnterMuteMode) refers to stm32f1xx_hal_uart.o(.text.HAL_MultiProcessor_EnterMuteMode) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_MultiProcessor_ExitMuteMode) refers to stm32f1xx_hal_uart.o(.text.HAL_MultiProcessor_ExitMuteMode) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_HalfDuplex_EnableTransmitter) refers to stm32f1xx_hal_uart.o(.text.HAL_HalfDuplex_EnableTransmitter) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_HalfDuplex_EnableReceiver) refers to stm32f1xx_hal_uart.o(.text.HAL_HalfDuplex_EnableReceiver) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_GetState) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_GetState) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_GetError) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_GetError) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.text.UART_DMAReceiveCplt) refers to stm32f1xx_hal_uart.o(.text.HAL_UARTEx_RxEventCallback) for HAL_UARTEx_RxEventCallback + stm32f1xx_hal_uart.o(.text.UART_DMAReceiveCplt) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_RxCpltCallback) for HAL_UART_RxCpltCallback + stm32f1xx_hal_uart.o(.ARM.exidx.text.UART_DMAReceiveCplt) refers to stm32f1xx_hal_uart.o(.text.UART_DMAReceiveCplt) for [Anonymous Symbol] + stm32f1xx_hal_uart.o(.text.UART_DMARxHalfCplt) refers to stm32f1xx_hal_uart.o(.text.HAL_UARTEx_RxEventCallback) for HAL_UARTEx_RxEventCallback + stm32f1xx_hal_uart.o(.text.UART_DMARxHalfCplt) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_RxHalfCpltCallback) for HAL_UART_RxHalfCpltCallback + stm32f1xx_hal_uart.o(.ARM.exidx.text.UART_DMARxHalfCplt) refers to stm32f1xx_hal_uart.o(.text.UART_DMARxHalfCplt) for [Anonymous Symbol] system_stm32f1xx.o(.ARM.exidx.text.SystemInit) refers to system_stm32f1xx.o(.text.SystemInit) for [Anonymous Symbol] system_stm32f1xx.o(.text.SystemCoreClockUpdate) refers to system_stm32f1xx.o(.data.SystemCoreClock) for SystemCoreClock system_stm32f1xx.o(.text.SystemCoreClockUpdate) refers to system_stm32f1xx.o(.rodata.AHBPrescTable) for AHBPrescTable @@ -717,6 +876,117 @@ Section Cross References canform.o(.text.form_CAN_bitstream_full) refers to canform.o(.bss.can_bits_len) for can_bits_len canform.o(.text.form_CAN_bitstream_full) refers to canform.o(.text.apply_bit_stuffing_with_error) for apply_bit_stuffing_with_error canform.o(.ARM.exidx.text.form_CAN_bitstream_full) refers to canform.o(.text.form_CAN_bitstream_full) for [Anonymous Symbol] + crc_algs.o(.text.crc32) refers to crc_algs.o(.rodata.crc32.crc32_table) for crc32.crc32_table + crc_algs.o(.ARM.exidx.text.crc32) refers to crc_algs.o(.text.crc32) for [Anonymous Symbol] + crc_algs.o(.text.crc16) refers to crc_algs.o(.data.uchCRCHi) for uchCRCHi + crc_algs.o(.text.crc16) refers to crc_algs.o(.data.uchCRCLo) for uchCRCLo + crc_algs.o(.text.crc16) refers to crc_algs.o(.bss.uIndex) for uIndex + crc_algs.o(.text.crc16) refers to crc_algs.o(.data.crc16.auchCRCHi) for crc16.auchCRCHi + crc_algs.o(.text.crc16) refers to crc_algs.o(.data.crc16.auchCRCLo) for crc16.auchCRCLo + crc_algs.o(.ARM.exidx.text.crc16) refers to crc_algs.o(.text.crc16) for [Anonymous Symbol] + modbus.o(.text.MODBUS_FirstInit) refers to modbus.o(.text.MB_DevoceInentificationInit) for MB_DevoceInentificationInit + modbus.o(.text.MODBUS_FirstInit) refers to modbus.o(.bss.hmodbus1) for hmodbus1 + modbus.o(.text.MODBUS_FirstInit) refers to usart.o(.bss.huart1) for huart1 + modbus.o(.text.MODBUS_FirstInit) refers to tim.o(.bss.htim3) for htim3 + modbus.o(.text.MODBUS_FirstInit) refers to rs_message.o(.text.RS_Init) for RS_Init + modbus.o(.ARM.exidx.text.MODBUS_FirstInit) refers to modbus.o(.text.MODBUS_FirstInit) for [Anonymous Symbol] + modbus.o(.text.MB_DevoceInentificationInit) refers to modbus.o(.bss.MB_INFO) for MB_INFO + modbus.o(.text.MB_DevoceInentificationInit) refers to modbus.o(.rodata.str1.1) for .L.str + modbus.o(.ARM.exidx.text.MB_DevoceInentificationInit) refers to modbus.o(.text.MB_DevoceInentificationInit) for [Anonymous Symbol] + modbus.o(.text.MB_Write_Coil_Global) refers to modbus.o(.text.MB_DefineCoilsAddress) for MB_DefineCoilsAddress + modbus.o(.ARM.exidx.text.MB_Write_Coil_Global) refers to modbus.o(.text.MB_Write_Coil_Global) for [Anonymous Symbol] + modbus.o(.text.MB_DefineCoilsAddress) refers to modbus.o(.text.MB_Check_Address_For_Arr) for MB_Check_Address_For_Arr + modbus.o(.text.MB_DefineCoilsAddress) refers to modbus.o(.bss.MB_DATA) for MB_DATA + modbus.o(.ARM.exidx.text.MB_DefineCoilsAddress) refers to modbus.o(.text.MB_DefineCoilsAddress) for [Anonymous Symbol] + modbus.o(.text.MB_Read_Coil_Global) refers to modbus.o(.text.MB_DefineCoilsAddress) for MB_DefineCoilsAddress + modbus.o(.ARM.exidx.text.MB_Read_Coil_Global) refers to modbus.o(.text.MB_Read_Coil_Global) for [Anonymous Symbol] + modbus.o(.ARM.exidx.text.MB_Check_Address_For_Arr) refers to modbus.o(.text.MB_Check_Address_For_Arr) for [Anonymous Symbol] + modbus.o(.text.MB_DefineRegistersAddress) refers to modbus.o(.text.MB_Check_Address_For_Arr) for MB_Check_Address_For_Arr + modbus.o(.text.MB_DefineRegistersAddress) refers to modbus.o(.bss.MB_DATA) for MB_DATA + modbus.o(.ARM.exidx.text.MB_DefineRegistersAddress) refers to modbus.o(.text.MB_DefineRegistersAddress) for [Anonymous Symbol] + modbus.o(.text.MB_Read_Coils) refers to modbus.o(.text.MB_DefineCoilsAddress) for MB_DefineCoilsAddress + modbus.o(.ARM.exidx.text.MB_Read_Coils) refers to modbus.o(.text.MB_Read_Coils) for [Anonymous Symbol] + modbus.o(.text.MB_Read_Hold_Regs) refers to modbus.o(.text.MB_DefineRegistersAddress) for MB_DefineRegistersAddress + modbus.o(.ARM.exidx.text.MB_Read_Hold_Regs) refers to modbus.o(.text.MB_Read_Hold_Regs) for [Anonymous Symbol] + modbus.o(.text.MB_Read_Input_Regs) refers to modbus.o(.text.MB_DefineRegistersAddress) for MB_DefineRegistersAddress + modbus.o(.ARM.exidx.text.MB_Read_Input_Regs) refers to modbus.o(.text.MB_Read_Input_Regs) for [Anonymous Symbol] + modbus.o(.text.MB_Write_Single_Coil) refers to modbus.o(.text.MB_DefineCoilsAddress) for MB_DefineCoilsAddress + modbus.o(.ARM.exidx.text.MB_Write_Single_Coil) refers to modbus.o(.text.MB_Write_Single_Coil) for [Anonymous Symbol] + modbus.o(.text.MB_Write_Single_Reg) refers to modbus.o(.text.MB_DefineRegistersAddress) for MB_DefineRegistersAddress + modbus.o(.ARM.exidx.text.MB_Write_Single_Reg) refers to modbus.o(.text.MB_Write_Single_Reg) for [Anonymous Symbol] + modbus.o(.text.MB_Write_Miltuple_Coils) refers to modbus.o(.text.MB_DefineCoilsAddress) for MB_DefineCoilsAddress + modbus.o(.ARM.exidx.text.MB_Write_Miltuple_Coils) refers to modbus.o(.text.MB_Write_Miltuple_Coils) for [Anonymous Symbol] + modbus.o(.text.MB_Write_Miltuple_Regs) refers to modbus.o(.text.MB_DefineRegistersAddress) for MB_DefineRegistersAddress + modbus.o(.ARM.exidx.text.MB_Write_Miltuple_Regs) refers to modbus.o(.text.MB_Write_Miltuple_Regs) for [Anonymous Symbol] + modbus.o(.ARM.exidx.text.MB_WriteObjectToMessage) refers to modbus.o(.text.MB_WriteObjectToMessage) for [Anonymous Symbol] + modbus.o(.text.MB_Read_Device_Identification) refers to modbus.o(.bss.MB_INFO) for MB_INFO + modbus.o(.text.MB_Read_Device_Identification) refers to modbus.o(.text.MB_WriteObjectToMessage) for MB_WriteObjectToMessage + modbus.o(.ARM.exidx.text.MB_Read_Device_Identification) refers to modbus.o(.text.MB_Read_Device_Identification) for [Anonymous Symbol] + modbus.o(.text.RS_Response) refers to modbus.o(.text.MB_Read_Coils) for MB_Read_Coils + modbus.o(.text.RS_Response) refers to modbus.o(.text.MB_Read_Hold_Regs) for MB_Read_Hold_Regs + modbus.o(.text.RS_Response) refers to modbus.o(.text.MB_Read_Input_Regs) for MB_Read_Input_Regs + modbus.o(.text.RS_Response) refers to modbus.o(.text.MB_Write_Single_Coil) for MB_Write_Single_Coil + modbus.o(.text.RS_Response) refers to modbus.o(.text.MB_Write_Single_Reg) for MB_Write_Single_Reg + modbus.o(.text.RS_Response) refers to modbus.o(.text.MB_Write_Miltuple_Coils) for MB_Write_Miltuple_Coils + modbus.o(.text.RS_Response) refers to modbus.o(.text.MB_Write_Miltuple_Regs) for MB_Write_Miltuple_Regs + modbus.o(.text.RS_Response) refers to modbus.o(.text.MB_Read_Device_Identification) for MB_Read_Device_Identification + modbus.o(.text.RS_Response) refers to rs_message.o(.text.RS_Abort) for RS_Abort + modbus.o(.text.RS_Response) refers to rs_message.o(.text.RS_Handle_Transmit_Start) for RS_Handle_Transmit_Start + modbus.o(.ARM.exidx.text.RS_Response) refers to modbus.o(.text.RS_Response) for [Anonymous Symbol] + modbus.o(.text.RS_Collect_Message) refers to crc_algs.o(.text.crc16) for crc16 + modbus.o(.ARM.exidx.text.RS_Collect_Message) refers to modbus.o(.text.RS_Collect_Message) for [Anonymous Symbol] + modbus.o(.text.RS_Parse_Message) refers to crc_algs.o(.text.crc16) for crc16 + modbus.o(.ARM.exidx.text.RS_Parse_Message) refers to modbus.o(.text.RS_Parse_Message) for [Anonymous Symbol] + modbus.o(.text.RS_Define_Size_of_RX_Message) refers to modbus.o(.text.RS_Parse_Message) for RS_Parse_Message + modbus.o(.ARM.exidx.text.RS_Define_Size_of_RX_Message) refers to modbus.o(.text.RS_Define_Size_of_RX_Message) for [Anonymous Symbol] + rs_message.o(.text.RS_Receive_IT) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_Receive_IT) for HAL_UART_Receive_IT + rs_message.o(.text.RS_Receive_IT) refers to rs_message.o(.text.RS_Abort) for RS_Abort + rs_message.o(.ARM.exidx.text.RS_Receive_IT) refers to rs_message.o(.text.RS_Receive_IT) for [Anonymous Symbol] + rs_message.o(.text.RS_Abort) refers to stm32f1xx_hal_tim.o(.text.HAL_TIM_Base_Stop_IT) for HAL_TIM_Base_Stop_IT + rs_message.o(.text.RS_Abort) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_AbortReceive) for HAL_UART_AbortReceive + rs_message.o(.text.RS_Abort) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_AbortTransmit) for HAL_UART_AbortTransmit + rs_message.o(.text.RS_Abort) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_Abort) for HAL_UART_Abort + rs_message.o(.ARM.exidx.text.RS_Abort) refers to rs_message.o(.text.RS_Abort) for [Anonymous Symbol] + rs_message.o(.text.RS_Transmit_IT) refers to modbus.o(.text.RS_Collect_Message) for RS_Collect_Message + rs_message.o(.text.RS_Transmit_IT) refers to rs_message.o(.text.RS_Abort) for RS_Abort + rs_message.o(.text.RS_Transmit_IT) refers to rs_message.o(.text.RS_Handle_Receive_Start) for RS_Handle_Receive_Start + rs_message.o(.text.RS_Transmit_IT) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_Transmit_IT) for HAL_UART_Transmit_IT + rs_message.o(.ARM.exidx.text.RS_Transmit_IT) refers to rs_message.o(.text.RS_Transmit_IT) for [Anonymous Symbol] + rs_message.o(.ARM.exidx.text.RS_Collect_Message) refers to rs_message.o(.text.RS_Collect_Message) for [Anonymous Symbol] + rs_message.o(.text.RS_Handle_Receive_Start) refers to rs_message.o(.text.RS_Receive_IT) for RS_Receive_IT + rs_message.o(.ARM.exidx.text.RS_Handle_Receive_Start) refers to rs_message.o(.text.RS_Handle_Receive_Start) for [Anonymous Symbol] + rs_message.o(.text.RS_Init) refers to rs_message.o(.bss.RS_Buffer) for RS_Buffer + rs_message.o(.ARM.exidx.text.RS_Init) refers to rs_message.o(.text.RS_Init) for [Anonymous Symbol] + rs_message.o(.text.RS_ReInit_UART) refers to rs_message.o(.text.RS_Abort) for RS_Abort + rs_message.o(.text.RS_ReInit_UART) refers to usart.o(.text.HAL_UART_MspDeInit) for HAL_UART_MspDeInit + rs_message.o(.text.RS_ReInit_UART) refers to usart.o(.text.MX_USART1_UART_Init) for MX_USART1_UART_Init + rs_message.o(.text.RS_ReInit_UART) refers to rs_message.o(.text.RS_Receive_IT) for RS_Receive_IT + rs_message.o(.ARM.exidx.text.RS_ReInit_UART) refers to rs_message.o(.text.RS_ReInit_UART) for [Anonymous Symbol] + rs_message.o(.text.RS_Handle_Transmit_Start) refers to rs_message.o(.text.RS_Transmit_IT) for RS_Transmit_IT + rs_message.o(.ARM.exidx.text.RS_Handle_Transmit_Start) refers to rs_message.o(.text.RS_Handle_Transmit_Start) for [Anonymous Symbol] + rs_message.o(.text.RS_UART_RxCpltCallback) refers to modbus.o(.text.RS_Define_Size_of_RX_Message) for RS_Define_Size_of_RX_Message + rs_message.o(.text.RS_UART_RxCpltCallback) refers to rs_message.o(.text.RS_Abort) for RS_Abort + rs_message.o(.text.RS_UART_RxCpltCallback) refers to rs_message.o(.text.RS_Handle_Receive_Start) for RS_Handle_Receive_Start + rs_message.o(.text.RS_UART_RxCpltCallback) refers to stm32f1xx_hal_tim.o(.text.HAL_TIM_Base_Stop_IT) for HAL_TIM_Base_Stop_IT + rs_message.o(.text.RS_UART_RxCpltCallback) refers to modbus.o(.text.RS_Parse_Message) for RS_Parse_Message + rs_message.o(.text.RS_UART_RxCpltCallback) refers to modbus.o(.text.RS_Response) for RS_Response + rs_message.o(.text.RS_UART_RxCpltCallback) refers to stm32f1xx_hal_uart.o(.text.HAL_UART_Receive_IT) for HAL_UART_Receive_IT + rs_message.o(.ARM.exidx.text.RS_UART_RxCpltCallback) refers to rs_message.o(.text.RS_UART_RxCpltCallback) for [Anonymous Symbol] + rs_message.o(.ARM.exidx.text.RS_Define_Size_of_RX_Message) refers to rs_message.o(.text.RS_Define_Size_of_RX_Message) for [Anonymous Symbol] + rs_message.o(.ARM.exidx.text.RS_Parse_Message) refers to rs_message.o(.text.RS_Parse_Message) for [Anonymous Symbol] + rs_message.o(.ARM.exidx.text.RS_Response) refers to rs_message.o(.text.RS_Response) for [Anonymous Symbol] + rs_message.o(.text.RS_UART_TxCpltCallback) refers to rs_message.o(.text.RS_Handle_Receive_Start) for RS_Handle_Receive_Start + rs_message.o(.ARM.exidx.text.RS_UART_TxCpltCallback) refers to rs_message.o(.text.RS_UART_TxCpltCallback) for [Anonymous Symbol] + rs_message.o(.text.RS_UART_Handler) refers to stm32f1xx_hal_tim.o(.text.HAL_TIM_Base_Start_IT) for HAL_TIM_Base_Start_IT + rs_message.o(.text.RS_UART_Handler) refers to rs_message.o(.text.RS_UART_RxCpltCallback) for RS_UART_RxCpltCallback + rs_message.o(.text.RS_UART_Handler) refers to rs_message.o(.text.RS_UART_TxCpltCallback) for RS_UART_TxCpltCallback + rs_message.o(.text.RS_UART_Handler) refers to rs_message.o(.text.RS_Abort) for RS_Abort + rs_message.o(.text.RS_UART_Handler) refers to rs_message.o(.text.RS_Handle_Receive_Start) for RS_Handle_Receive_Start + rs_message.o(.ARM.exidx.text.RS_UART_Handler) refers to rs_message.o(.text.RS_UART_Handler) for [Anonymous Symbol] + rs_message.o(.text.RS_TIM_Handler) refers to stm32f1xx_hal_tim.o(.text.HAL_TIM_Base_Stop_IT) for HAL_TIM_Base_Stop_IT + rs_message.o(.text.RS_TIM_Handler) refers to rs_message.o(.text.RS_Abort) for RS_Abort + rs_message.o(.text.RS_TIM_Handler) refers to rs_message.o(.text.RS_Handle_Receive_Start) for RS_Handle_Receive_Start + rs_message.o(.ARM.exidx.text.RS_TIM_Handler) refers to rs_message.o(.text.RS_TIM_Handler) for [Anonymous Symbol] __main.o(!!!main) refers to __rtentry.o(.ARM.Collect$$rtentry$$00000000) for __rt_entry __rtentry.o(.ARM.Collect$$rtentry$$00000000) refers (Special) to __rtentry2.o(.ARM.Collect$$rtentry$$0000000A) for __rt_entry_li __rtentry.o(.ARM.Collect$$rtentry$$00000000) refers (Special) to __rtentry2.o(.ARM.Collect$$rtentry$$0000000D) for __rt_entry_main @@ -837,9 +1107,15 @@ Removing Unused input sections from the image. Removing gpio.o(.ARM.exidx.text.MX_GPIO_Init), (8 bytes). Removing tim.o(.text), (0 bytes). Removing tim.o(.ARM.exidx.text.MX_TIM2_Init), (8 bytes). + Removing tim.o(.ARM.exidx.text.MX_TIM3_Init), (8 bytes). Removing tim.o(.ARM.exidx.text.HAL_TIM_Base_MspInit), (8 bytes). - Removing tim.o(.text.HAL_TIM_Base_MspDeInit), (38 bytes). + Removing tim.o(.text.HAL_TIM_Base_MspDeInit), (76 bytes). Removing tim.o(.ARM.exidx.text.HAL_TIM_Base_MspDeInit), (8 bytes). + Removing usart.o(.text), (0 bytes). + Removing usart.o(.ARM.exidx.text.MX_USART1_UART_Init), (8 bytes). + Removing usart.o(.ARM.exidx.text.HAL_UART_MspInit), (8 bytes). + Removing usart.o(.text.HAL_UART_MspDeInit), (62 bytes). + Removing usart.o(.ARM.exidx.text.HAL_UART_MspDeInit), (8 bytes). Removing stm32f1xx_it.o(.text), (0 bytes). Removing stm32f1xx_it.o(.ARM.exidx.text.NMI_Handler), (8 bytes). Removing stm32f1xx_it.o(.ARM.exidx.text.HardFault_Handler), (8 bytes). @@ -874,7 +1150,6 @@ Removing Unused input sections from the image. Removing stm32f1xx_hal_tim.o(.ARM.exidx.text.HAL_TIM_Base_Stop), (8 bytes). Removing stm32f1xx_hal_tim.o(.text.HAL_TIM_Base_Start_IT), (176 bytes). Removing stm32f1xx_hal_tim.o(.ARM.exidx.text.HAL_TIM_Base_Start_IT), (8 bytes). - Removing stm32f1xx_hal_tim.o(.text.HAL_TIM_Base_Stop_IT), (82 bytes). Removing stm32f1xx_hal_tim.o(.ARM.exidx.text.HAL_TIM_Base_Stop_IT), (8 bytes). Removing stm32f1xx_hal_tim.o(.text.HAL_TIM_Base_Start_DMA), (304 bytes). Removing stm32f1xx_hal_tim.o(.ARM.exidx.text.HAL_TIM_Base_Start_DMA), (8 bytes). @@ -1234,11 +1509,8 @@ Removing Unused input sections from the image. Removing stm32f1xx_hal_rcc.o(.ARM.exidx.text.HAL_RCC_EnableCSS), (8 bytes). Removing stm32f1xx_hal_rcc.o(.text.HAL_RCC_DisableCSS), (12 bytes). Removing stm32f1xx_hal_rcc.o(.ARM.exidx.text.HAL_RCC_DisableCSS), (8 bytes). - Removing stm32f1xx_hal_rcc.o(.text.HAL_RCC_GetHCLKFreq), (12 bytes). Removing stm32f1xx_hal_rcc.o(.ARM.exidx.text.HAL_RCC_GetHCLKFreq), (8 bytes). - Removing stm32f1xx_hal_rcc.o(.text.HAL_RCC_GetPCLK1Freq), (34 bytes). Removing stm32f1xx_hal_rcc.o(.ARM.exidx.text.HAL_RCC_GetPCLK1Freq), (8 bytes). - Removing stm32f1xx_hal_rcc.o(.text.HAL_RCC_GetPCLK2Freq), (34 bytes). Removing stm32f1xx_hal_rcc.o(.ARM.exidx.text.HAL_RCC_GetPCLK2Freq), (8 bytes). Removing stm32f1xx_hal_rcc.o(.text.HAL_RCC_GetOscConfig), (302 bytes). Removing stm32f1xx_hal_rcc.o(.ARM.exidx.text.HAL_RCC_GetOscConfig), (8 bytes). @@ -1283,7 +1555,6 @@ Removing Unused input sections from the image. Removing stm32f1xx_hal_dma.o(.ARM.exidx.text.DMA_SetConfig), (8 bytes). Removing stm32f1xx_hal_dma.o(.text.HAL_DMA_Start_IT), (202 bytes). Removing stm32f1xx_hal_dma.o(.ARM.exidx.text.HAL_DMA_Start_IT), (8 bytes). - Removing stm32f1xx_hal_dma.o(.text.HAL_DMA_Abort), (124 bytes). Removing stm32f1xx_hal_dma.o(.ARM.exidx.text.HAL_DMA_Abort), (8 bytes). Removing stm32f1xx_hal_dma.o(.text.HAL_DMA_Abort_IT), (284 bytes). Removing stm32f1xx_hal_dma.o(.ARM.exidx.text.HAL_DMA_Abort_IT), (8 bytes). @@ -1297,7 +1568,6 @@ Removing Unused input sections from the image. Removing stm32f1xx_hal_dma.o(.ARM.exidx.text.HAL_DMA_UnRegisterCallback), (8 bytes). Removing stm32f1xx_hal_dma.o(.text.HAL_DMA_GetState), (14 bytes). Removing stm32f1xx_hal_dma.o(.ARM.exidx.text.HAL_DMA_GetState), (8 bytes). - Removing stm32f1xx_hal_dma.o(.text.HAL_DMA_GetError), (12 bytes). Removing stm32f1xx_hal_dma.o(.ARM.exidx.text.HAL_DMA_GetError), (8 bytes). Removing stm32f1xx_hal_cortex.o(.text), (0 bytes). Removing stm32f1xx_hal_cortex.o(.ARM.exidx.text.HAL_NVIC_SetPriorityGrouping), (8 bytes). @@ -1469,11 +1739,128 @@ Removing Unused input sections from the image. Removing stm32f1xx_hal_exti.o(.ARM.exidx.text.HAL_EXTI_ClearPending), (8 bytes). Removing stm32f1xx_hal_exti.o(.text.HAL_EXTI_GenerateSWI), (34 bytes). Removing stm32f1xx_hal_exti.o(.ARM.exidx.text.HAL_EXTI_GenerateSWI), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text), (0 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_Init), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.HAL_UART_MspInit), (8 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_MspInit), (8 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.UART_SetConfig), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.HAL_HalfDuplex_Init), (158 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_HalfDuplex_Init), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.HAL_LIN_Init), (184 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_LIN_Init), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.HAL_MultiProcessor_Init), (202 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_MultiProcessor_Init), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.HAL_UART_DeInit), (100 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_DeInit), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.HAL_UART_MspDeInit), (8 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_MspDeInit), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.HAL_UART_Transmit), (304 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_Transmit), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.UART_WaitOnFlagUntilTimeout), (218 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.UART_WaitOnFlagUntilTimeout), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.HAL_UART_Receive), (318 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_Receive), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.HAL_UART_Transmit_IT), (114 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_Transmit_IT), (8 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_Receive_IT), (8 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.UART_Start_Receive_IT), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.HAL_UART_Transmit_DMA), (226 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_Transmit_DMA), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.UART_DMATransmitCplt), (122 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.UART_DMATransmitCplt), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.UART_DMATxHalfCplt), (22 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.UART_DMATxHalfCplt), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.UART_DMAError), (124 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.UART_DMAError), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.HAL_UART_Receive_DMA), (86 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_Receive_DMA), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.UART_Start_Receive_DMA), (268 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.UART_Start_Receive_DMA), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.HAL_UART_DMAPause), (230 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_DMAPause), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.HAL_UART_DMAResume), (226 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_DMAResume), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.HAL_UART_DMAStop), (204 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_DMAStop), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.UART_EndTxTransfer), (54 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.UART_EndTxTransfer), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.UART_EndRxTransfer), (148 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.UART_EndRxTransfer), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.HAL_UARTEx_ReceiveToIdle), (448 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UARTEx_ReceiveToIdle), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.HAL_UARTEx_ReceiveToIdle_IT), (194 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UARTEx_ReceiveToIdle_IT), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.HAL_UARTEx_ReceiveToIdle_DMA), (184 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UARTEx_ReceiveToIdle_DMA), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.HAL_UARTEx_GetRxEventType), (12 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UARTEx_GetRxEventType), (8 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_Abort), (8 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_AbortTransmit), (8 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_AbortReceive), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.HAL_UART_Abort_IT), (478 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_Abort_IT), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.UART_DMATxAbortCallback), (86 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.UART_DMATxAbortCallback), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.UART_DMARxAbortCallback), (86 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.UART_DMARxAbortCallback), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.HAL_UART_AbortCpltCallback), (8 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_AbortCpltCallback), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.HAL_UART_AbortTransmit_IT), (194 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_AbortTransmit_IT), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.UART_DMATxOnlyAbortCallback), (36 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.UART_DMATxOnlyAbortCallback), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.HAL_UART_AbortTransmitCpltCallback), (8 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_AbortTransmitCpltCallback), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.HAL_UART_AbortReceive_IT), (290 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_AbortReceive_IT), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.UART_DMARxOnlyAbortCallback), (40 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.UART_DMARxOnlyAbortCallback), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.HAL_UART_AbortReceiveCpltCallback), (8 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_AbortReceiveCpltCallback), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.HAL_UART_IRQHandler), (1066 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_IRQHandler), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.UART_Receive_IT), (362 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.UART_Receive_IT), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.UART_DMAAbortOnError), (32 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.UART_DMAAbortOnError), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.HAL_UART_ErrorCallback), (8 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_ErrorCallback), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.HAL_UARTEx_RxEventCallback), (12 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UARTEx_RxEventCallback), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.UART_Transmit_IT), (148 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.UART_Transmit_IT), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.UART_EndTransmit_IT), (38 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.UART_EndTransmit_IT), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.HAL_UART_TxCpltCallback), (8 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_TxCpltCallback), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.HAL_UART_TxHalfCpltCallback), (8 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_TxHalfCpltCallback), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.HAL_UART_RxCpltCallback), (8 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_RxCpltCallback), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.HAL_UART_RxHalfCpltCallback), (8 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_RxHalfCpltCallback), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.HAL_LIN_SendBreak), (120 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_LIN_SendBreak), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.HAL_MultiProcessor_EnterMuteMode), (126 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_MultiProcessor_EnterMuteMode), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.HAL_MultiProcessor_ExitMuteMode), (126 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_MultiProcessor_ExitMuteMode), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.HAL_HalfDuplex_EnableTransmitter), (118 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_HalfDuplex_EnableTransmitter), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.HAL_HalfDuplex_EnableReceiver), (118 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_HalfDuplex_EnableReceiver), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.HAL_UART_GetState), (40 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_GetState), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.HAL_UART_GetError), (12 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.HAL_UART_GetError), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.UART_DMAReceiveCplt), (244 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.UART_DMAReceiveCplt), (8 bytes). + Removing stm32f1xx_hal_uart.o(.text.UART_DMARxHalfCplt), (52 bytes). + Removing stm32f1xx_hal_uart.o(.ARM.exidx.text.UART_DMARxHalfCplt), (8 bytes). Removing system_stm32f1xx.o(.text), (0 bytes). Removing system_stm32f1xx.o(.ARM.exidx.text.SystemInit), (8 bytes). Removing system_stm32f1xx.o(.text.SystemCoreClockUpdate), (290 bytes). Removing system_stm32f1xx.o(.ARM.exidx.text.SystemCoreClockUpdate), (8 bytes). - Removing system_stm32f1xx.o(.rodata.APBPrescTable), (8 bytes). Removing canemu.o(.text), (0 bytes). Removing canemu.o(.ARM.exidx.text.CANEmu_Init), (8 bytes). Removing canemu.o(.ARM.exidx.text.wait_exact_ticks), (8 bytes). @@ -1486,8 +1873,91 @@ Removing Unused input sections from the image. Removing canform.o(.ARM.exidx.text.flip_bit), (8 bytes). Removing canform.o(.ARM.exidx.text.form_CAN_bitstream_full), (8 bytes). Removing canform.o(.bss.err_indices), (128 bytes). + Removing crc_algs.o(.text), (0 bytes). + Removing crc_algs.o(.text.crc32), (68 bytes). + Removing crc_algs.o(.ARM.exidx.text.crc32), (8 bytes). + Removing crc_algs.o(.text.crc16), (148 bytes). + Removing crc_algs.o(.ARM.exidx.text.crc16), (8 bytes). + Removing crc_algs.o(.data.uchCRCHi), (1 bytes). + Removing crc_algs.o(.data.uchCRCLo), (1 bytes). + Removing crc_algs.o(.rodata.crc32.crc32_table), (1024 bytes). + Removing crc_algs.o(.data.crc16.auchCRCHi), (256 bytes). + Removing crc_algs.o(.data.crc16.auchCRCLo), (256 bytes). + Removing crc_algs.o(.bss.uIndex), (4 bytes). + Removing crc_algs.o(.bss.CRC_calc), (4 bytes). + Removing crc_algs.o(.bss.CRC_ref), (4 bytes). + Removing modbus.o(.text), (0 bytes). + Removing modbus.o(.ARM.exidx.text.MODBUS_FirstInit), (8 bytes). + Removing modbus.o(.ARM.exidx.text.MB_DevoceInentificationInit), (8 bytes). + Removing modbus.o(.text.MB_Write_Coil_Global), (152 bytes). + Removing modbus.o(.ARM.exidx.text.MB_Write_Coil_Global), (8 bytes). + Removing modbus.o(.text.MB_DefineCoilsAddress), (130 bytes). + Removing modbus.o(.ARM.exidx.text.MB_DefineCoilsAddress), (8 bytes). + Removing modbus.o(.text.MB_Read_Coil_Global), (98 bytes). + Removing modbus.o(.ARM.exidx.text.MB_Read_Coil_Global), (8 bytes). + Removing modbus.o(.text.MB_Check_Address_For_Arr), (90 bytes). + Removing modbus.o(.ARM.exidx.text.MB_Check_Address_For_Arr), (8 bytes). + Removing modbus.o(.text.MB_DefineRegistersAddress), (186 bytes). + Removing modbus.o(.ARM.exidx.text.MB_DefineRegistersAddress), (8 bytes). + Removing modbus.o(.text.MB_Read_Coils), (342 bytes). + Removing modbus.o(.ARM.exidx.text.MB_Read_Coils), (8 bytes). + Removing modbus.o(.text.MB_Read_Hold_Regs), (114 bytes). + Removing modbus.o(.ARM.exidx.text.MB_Read_Hold_Regs), (8 bytes). + Removing modbus.o(.text.MB_Read_Input_Regs), (148 bytes). + Removing modbus.o(.ARM.exidx.text.MB_Read_Input_Regs), (8 bytes). + Removing modbus.o(.text.MB_Write_Single_Coil), (160 bytes). + Removing modbus.o(.ARM.exidx.text.MB_Write_Single_Coil), (8 bytes). + Removing modbus.o(.text.MB_Write_Single_Reg), (68 bytes). + Removing modbus.o(.ARM.exidx.text.MB_Write_Single_Reg), (8 bytes). + Removing modbus.o(.text.MB_Write_Miltuple_Coils), (380 bytes). + Removing modbus.o(.ARM.exidx.text.MB_Write_Miltuple_Coils), (8 bytes). + Removing modbus.o(.text.MB_Write_Miltuple_Regs), (136 bytes). + Removing modbus.o(.ARM.exidx.text.MB_Write_Miltuple_Regs), (8 bytes). + Removing modbus.o(.text.MB_WriteObjectToMessage), (88 bytes). + Removing modbus.o(.ARM.exidx.text.MB_WriteObjectToMessage), (8 bytes). + Removing modbus.o(.text.MB_Read_Device_Identification), (304 bytes). + Removing modbus.o(.ARM.exidx.text.MB_Read_Device_Identification), (8 bytes). + Removing modbus.o(.text.RS_Response), (682 bytes). + Removing modbus.o(.ARM.exidx.text.RS_Response), (8 bytes). + Removing modbus.o(.text.RS_Collect_Message), (478 bytes). + Removing modbus.o(.ARM.exidx.text.RS_Collect_Message), (8 bytes). + Removing modbus.o(.text.RS_Parse_Message), (484 bytes). + Removing modbus.o(.ARM.exidx.text.RS_Parse_Message), (8 bytes). + Removing modbus.o(.text.RS_Define_Size_of_RX_Message), (150 bytes). + Removing modbus.o(.ARM.exidx.text.RS_Define_Size_of_RX_Message), (8 bytes). + Removing modbus.o(.bss.dbg_temp), (4 bytes). + Removing modbus.o(.bss.dbg_temp2), (4 bytes). + Removing modbus.o(.bss.dbg_temp3), (4 bytes). + Removing rs_message.o(.text), (0 bytes). + Removing rs_message.o(.ARM.exidx.text.RS_Receive_IT), (8 bytes). + Removing rs_message.o(.ARM.exidx.text.RS_Abort), (8 bytes). + Removing rs_message.o(.text.RS_Transmit_IT), (206 bytes). + Removing rs_message.o(.ARM.exidx.text.RS_Transmit_IT), (8 bytes). + Removing rs_message.o(.text.RS_Collect_Message), (14 bytes). + Removing rs_message.o(.ARM.exidx.text.RS_Collect_Message), (8 bytes). + Removing rs_message.o(.text.RS_Handle_Receive_Start), (92 bytes). + Removing rs_message.o(.ARM.exidx.text.RS_Handle_Receive_Start), (8 bytes). + Removing rs_message.o(.ARM.exidx.text.RS_Init), (8 bytes). + Removing rs_message.o(.text.RS_ReInit_UART), (56 bytes). + Removing rs_message.o(.ARM.exidx.text.RS_ReInit_UART), (8 bytes). + Removing rs_message.o(.text.RS_Handle_Transmit_Start), (60 bytes). + Removing rs_message.o(.ARM.exidx.text.RS_Handle_Transmit_Start), (8 bytes). + Removing rs_message.o(.text.RS_UART_RxCpltCallback), (474 bytes). + Removing rs_message.o(.ARM.exidx.text.RS_UART_RxCpltCallback), (8 bytes). + Removing rs_message.o(.text.RS_Define_Size_of_RX_Message), (12 bytes). + Removing rs_message.o(.ARM.exidx.text.RS_Define_Size_of_RX_Message), (8 bytes). + Removing rs_message.o(.text.RS_Parse_Message), (14 bytes). + Removing rs_message.o(.ARM.exidx.text.RS_Parse_Message), (8 bytes). + Removing rs_message.o(.text.RS_Response), (12 bytes). + Removing rs_message.o(.ARM.exidx.text.RS_Response), (8 bytes). + Removing rs_message.o(.text.RS_UART_TxCpltCallback), (80 bytes). + Removing rs_message.o(.ARM.exidx.text.RS_UART_TxCpltCallback), (8 bytes). + Removing rs_message.o(.text.RS_UART_Handler), (222 bytes). + Removing rs_message.o(.ARM.exidx.text.RS_UART_Handler), (8 bytes). + Removing rs_message.o(.text.RS_TIM_Handler), (34 bytes). + Removing rs_message.o(.ARM.exidx.text.RS_TIM_Handler), (8 bytes). -658 unused section(s) (total 47162 bytes) removed from the image. +858 unused section(s) (total 63074 bytes) removed from the image. ============================================================================== @@ -1552,9 +2022,12 @@ Image Symbol Table ../fplib/fpinit_empty.s 0x00000000 Number 0 fpinit_empty.o ABSOLUTE canEmu.c 0x00000000 Number 0 canemu.o ABSOLUTE canform.c 0x00000000 Number 0 canform.o ABSOLUTE + crc_algs.c 0x00000000 Number 0 crc_algs.o ABSOLUTE dc.s 0x00000000 Number 0 dc.o ABSOLUTE gpio.c 0x00000000 Number 0 gpio.o ABSOLUTE main.c 0x00000000 Number 0 main.o ABSOLUTE + modbus.c 0x00000000 Number 0 modbus.o ABSOLUTE + rs_message.c 0x00000000 Number 0 rs_message.o ABSOLUTE startup_stm32f103xb.s 0x00000000 Number 0 startup_stm32f103xb.o ABSOLUTE stm32f1xx_hal.c 0x00000000 Number 0 stm32f1xx_hal.o ABSOLUTE stm32f1xx_hal_cortex.c 0x00000000 Number 0 stm32f1xx_hal_cortex.o ABSOLUTE @@ -1570,9 +2043,11 @@ Image Symbol Table stm32f1xx_hal_rcc_ex.c 0x00000000 Number 0 stm32f1xx_hal_rcc_ex.o ABSOLUTE stm32f1xx_hal_tim.c 0x00000000 Number 0 stm32f1xx_hal_tim.o ABSOLUTE stm32f1xx_hal_tim_ex.c 0x00000000 Number 0 stm32f1xx_hal_tim_ex.o ABSOLUTE + stm32f1xx_hal_uart.c 0x00000000 Number 0 stm32f1xx_hal_uart.o ABSOLUTE stm32f1xx_it.c 0x00000000 Number 0 stm32f1xx_it.o ABSOLUTE system_stm32f1xx.c 0x00000000 Number 0 system_stm32f1xx.o ABSOLUTE tim.c 0x00000000 Number 0 tim.o ABSOLUTE + usart.c 0x00000000 Number 0 usart.o ABSOLUTE RESET 0x08000000 Section 236 startup_stm32f103xb.o(RESET) !!!main 0x080000ec Section 8 __main.o(!!!main) !!!scatter 0x080000f4 Section 52 __scatter.o(!!!scatter) @@ -1634,73 +2109,100 @@ Image Symbol Table [Anonymous Symbol] 0x080002bc Section 0 canemu.o(.text.CANEmu_SendFrame) [Anonymous Symbol] 0x0800038c Section 0 stm32f1xx_it.o(.text.DebugMon_Handler) [Anonymous Symbol] 0x08000390 Section 0 main.o(.text.Error_Handler) - [Anonymous Symbol] 0x080003a0 Section 0 stm32f1xx_hal.o(.text.HAL_Delay) - [Anonymous Symbol] 0x080003e4 Section 0 stm32f1xx_hal_gpio.o(.text.HAL_GPIO_Init) - [Anonymous Symbol] 0x08000704 Section 0 stm32f1xx_hal_gpio.o(.text.HAL_GPIO_WritePin) - [Anonymous Symbol] 0x08000734 Section 0 stm32f1xx_hal.o(.text.HAL_GetTick) - [Anonymous Symbol] 0x08000740 Section 0 stm32f1xx_hal.o(.text.HAL_IncTick) - [Anonymous Symbol] 0x0800075c Section 0 stm32f1xx_hal.o(.text.HAL_Init) - [Anonymous Symbol] 0x08000784 Section 0 stm32f1xx_hal.o(.text.HAL_InitTick) - [Anonymous Symbol] 0x080007f4 Section 0 stm32f1xx_hal_msp.o(.text.HAL_MspInit) - [Anonymous Symbol] 0x08000858 Section 0 stm32f1xx_hal_cortex.o(.text.HAL_NVIC_SetPriority) - [Anonymous Symbol] 0x0800088c Section 0 stm32f1xx_hal_cortex.o(.text.HAL_NVIC_SetPriorityGrouping) - [Anonymous Symbol] 0x0800089c Section 0 stm32f1xx_hal_rcc.o(.text.HAL_RCC_ClockConfig) - [Anonymous Symbol] 0x08000af4 Section 0 stm32f1xx_hal_rcc.o(.text.HAL_RCC_GetSysClockFreq) - [Anonymous Symbol] 0x08000bb0 Section 0 stm32f1xx_hal_rcc.o(.text.HAL_RCC_OscConfig) - [Anonymous Symbol] 0x0800122c Section 0 stm32f1xx_hal_cortex.o(.text.HAL_SYSTICK_Config) - [Anonymous Symbol] 0x0800123c Section 0 stm32f1xx_hal_tim_ex.o(.text.HAL_TIMEx_MasterConfigSynchronization) - [Anonymous Symbol] 0x08001318 Section 0 stm32f1xx_hal_tim.o(.text.HAL_TIM_Base_Init) - [Anonymous Symbol] 0x080013b4 Section 0 tim.o(.text.HAL_TIM_Base_MspInit) - [Anonymous Symbol] 0x080013e8 Section 0 stm32f1xx_hal_tim.o(.text.HAL_TIM_ConfigClockSource) - [Anonymous Symbol] 0x0800156c Section 0 stm32f1xx_it.o(.text.HardFault_Handler) - [Anonymous Symbol] 0x08001570 Section 0 gpio.o(.text.MX_GPIO_Init) - [Anonymous Symbol] 0x08001628 Section 0 tim.o(.text.MX_TIM2_Init) - [Anonymous Symbol] 0x080016a8 Section 0 stm32f1xx_it.o(.text.MemManage_Handler) - [Anonymous Symbol] 0x080016ac Section 0 stm32f1xx_it.o(.text.NMI_Handler) - NVIC_EncodePriority 0x080016b1 Thumb Code 108 stm32f1xx_hal_cortex.o(.text.NVIC_EncodePriority) - [Anonymous Symbol] 0x080016b0 Section 0 stm32f1xx_hal_cortex.o(.text.NVIC_EncodePriority) - [Anonymous Symbol] 0x0800171c Section 0 stm32f1xx_it.o(.text.PendSV_Handler) - RCC_Delay 0x08001721 Thumb Code 58 stm32f1xx_hal_rcc.o(.text.RCC_Delay) - [Anonymous Symbol] 0x08001720 Section 0 stm32f1xx_hal_rcc.o(.text.RCC_Delay) - [Anonymous Symbol] 0x0800175c Section 0 stm32f1xx_it.o(.text.SVC_Handler) - SysTick_Config 0x08001761 Thumb Code 82 stm32f1xx_hal_cortex.o(.text.SysTick_Config) - [Anonymous Symbol] 0x08001760 Section 0 stm32f1xx_hal_cortex.o(.text.SysTick_Config) - [Anonymous Symbol] 0x080017b4 Section 0 stm32f1xx_it.o(.text.SysTick_Handler) - [Anonymous Symbol] 0x080017bc Section 0 main.o(.text.SystemClock_Config) - [Anonymous Symbol] 0x08001828 Section 0 system_stm32f1xx.o(.text.SystemInit) - [Anonymous Symbol] 0x0800182c Section 0 stm32f1xx_hal_tim.o(.text.TIM_Base_SetConfig) - [Anonymous Symbol] 0x08001934 Section 0 stm32f1xx_hal_tim.o(.text.TIM_ETR_SetConfig) - TIM_ITRx_SetConfig 0x08001969 Thumb Code 42 stm32f1xx_hal_tim.o(.text.TIM_ITRx_SetConfig) - [Anonymous Symbol] 0x08001968 Section 0 stm32f1xx_hal_tim.o(.text.TIM_ITRx_SetConfig) - TIM_TI1_ConfigInputStage 0x08001995 Thumb Code 80 stm32f1xx_hal_tim.o(.text.TIM_TI1_ConfigInputStage) - [Anonymous Symbol] 0x08001994 Section 0 stm32f1xx_hal_tim.o(.text.TIM_TI1_ConfigInputStage) - TIM_TI2_ConfigInputStage 0x080019e5 Thumb Code 82 stm32f1xx_hal_tim.o(.text.TIM_TI2_ConfigInputStage) - [Anonymous Symbol] 0x080019e4 Section 0 stm32f1xx_hal_tim.o(.text.TIM_TI2_ConfigInputStage) - [Anonymous Symbol] 0x08001a38 Section 0 stm32f1xx_it.o(.text.UsageFault_Handler) - __NVIC_GetPriorityGrouping 0x08001a3d Thumb Code 16 stm32f1xx_hal_cortex.o(.text.__NVIC_GetPriorityGrouping) - [Anonymous Symbol] 0x08001a3c Section 0 stm32f1xx_hal_cortex.o(.text.__NVIC_GetPriorityGrouping) - __NVIC_SetPriority 0x08001a4d Thumb Code 66 stm32f1xx_hal_cortex.o(.text.__NVIC_SetPriority) - [Anonymous Symbol] 0x08001a4c Section 0 stm32f1xx_hal_cortex.o(.text.__NVIC_SetPriority) - __NVIC_SetPriorityGrouping 0x08001a91 Thumb Code 60 stm32f1xx_hal_cortex.o(.text.__NVIC_SetPriorityGrouping) - [Anonymous Symbol] 0x08001a90 Section 0 stm32f1xx_hal_cortex.o(.text.__NVIC_SetPriorityGrouping) - [Anonymous Symbol] 0x08001acc Section 0 canform.o(.text.append_bit) - [Anonymous Symbol] 0x08001afc Section 0 canform.o(.text.append_bits) - [Anonymous Symbol] 0x08001b3c Section 0 canform.o(.text.apply_bit_stuffing_with_error) - [Anonymous Symbol] 0x08001c00 Section 0 canform.o(.text.compute_crc15) - [Anonymous Symbol] 0x08001c78 Section 0 canform.o(.text.flip_bit) - [Anonymous Symbol] 0x08001ca8 Section 0 canform.o(.text.form_CAN_bitstream_full) - [Anonymous Symbol] 0x0800207c Section 0 main.o(.text.main) - [Anonymous Symbol] 0x080020c8 Section 0 canemu.o(.text.wait_exact_ticks) - HAL_RCC_GetSysClockFreq.aPLLMULFactorTable 0x08002122 Data 16 stm32f1xx_hal_rcc.o(.rodata.HAL_RCC_GetSysClockFreq.aPLLMULFactorTable) - [Anonymous Symbol] 0x08002122 Section 0 stm32f1xx_hal_rcc.o(.rodata.HAL_RCC_GetSysClockFreq.aPLLMULFactorTable) - HAL_RCC_GetSysClockFreq.aPredivFactorTable 0x08002132 Data 2 stm32f1xx_hal_rcc.o(.rodata.HAL_RCC_GetSysClockFreq.aPredivFactorTable) - [Anonymous Symbol] 0x08002132 Section 0 stm32f1xx_hal_rcc.o(.rodata.HAL_RCC_GetSysClockFreq.aPredivFactorTable) + [Anonymous Symbol] 0x080003a0 Section 0 stm32f1xx_hal_dma.o(.text.HAL_DMA_Abort) + [Anonymous Symbol] 0x0800041c Section 0 stm32f1xx_hal_dma.o(.text.HAL_DMA_GetError) + [Anonymous Symbol] 0x08000428 Section 0 stm32f1xx_hal.o(.text.HAL_Delay) + [Anonymous Symbol] 0x0800046c Section 0 stm32f1xx_hal_gpio.o(.text.HAL_GPIO_Init) + [Anonymous Symbol] 0x0800078c Section 0 stm32f1xx_hal_gpio.o(.text.HAL_GPIO_WritePin) + [Anonymous Symbol] 0x080007bc Section 0 stm32f1xx_hal.o(.text.HAL_GetTick) + [Anonymous Symbol] 0x080007c8 Section 0 stm32f1xx_hal.o(.text.HAL_IncTick) + [Anonymous Symbol] 0x080007e4 Section 0 stm32f1xx_hal.o(.text.HAL_Init) + [Anonymous Symbol] 0x0800080c Section 0 stm32f1xx_hal.o(.text.HAL_InitTick) + [Anonymous Symbol] 0x0800087c Section 0 stm32f1xx_hal_msp.o(.text.HAL_MspInit) + [Anonymous Symbol] 0x080008e0 Section 0 stm32f1xx_hal_cortex.o(.text.HAL_NVIC_SetPriority) + [Anonymous Symbol] 0x08000914 Section 0 stm32f1xx_hal_cortex.o(.text.HAL_NVIC_SetPriorityGrouping) + [Anonymous Symbol] 0x08000924 Section 0 stm32f1xx_hal_rcc.o(.text.HAL_RCC_ClockConfig) + [Anonymous Symbol] 0x08000b7c Section 0 stm32f1xx_hal_rcc.o(.text.HAL_RCC_GetHCLKFreq) + [Anonymous Symbol] 0x08000b88 Section 0 stm32f1xx_hal_rcc.o(.text.HAL_RCC_GetPCLK1Freq) + [Anonymous Symbol] 0x08000bac Section 0 stm32f1xx_hal_rcc.o(.text.HAL_RCC_GetPCLK2Freq) + [Anonymous Symbol] 0x08000bd0 Section 0 stm32f1xx_hal_rcc.o(.text.HAL_RCC_GetSysClockFreq) + [Anonymous Symbol] 0x08000c8c Section 0 stm32f1xx_hal_rcc.o(.text.HAL_RCC_OscConfig) + [Anonymous Symbol] 0x08001308 Section 0 stm32f1xx_hal_cortex.o(.text.HAL_SYSTICK_Config) + [Anonymous Symbol] 0x08001318 Section 0 stm32f1xx_hal_tim_ex.o(.text.HAL_TIMEx_MasterConfigSynchronization) + [Anonymous Symbol] 0x080013f4 Section 0 stm32f1xx_hal_tim.o(.text.HAL_TIM_Base_Init) + [Anonymous Symbol] 0x08001490 Section 0 tim.o(.text.HAL_TIM_Base_MspInit) + [Anonymous Symbol] 0x080014f8 Section 0 stm32f1xx_hal_tim.o(.text.HAL_TIM_Base_Stop_IT) + [Anonymous Symbol] 0x0800154c Section 0 stm32f1xx_hal_tim.o(.text.HAL_TIM_ConfigClockSource) + [Anonymous Symbol] 0x080016d0 Section 0 stm32f1xx_hal_uart.o(.text.HAL_UART_Abort) + [Anonymous Symbol] 0x08001868 Section 0 stm32f1xx_hal_uart.o(.text.HAL_UART_AbortReceive) + [Anonymous Symbol] 0x08001980 Section 0 stm32f1xx_hal_uart.o(.text.HAL_UART_AbortTransmit) + [Anonymous Symbol] 0x08001a3c Section 0 stm32f1xx_hal_uart.o(.text.HAL_UART_Init) + [Anonymous Symbol] 0x08001adc Section 0 usart.o(.text.HAL_UART_MspInit) + [Anonymous Symbol] 0x08001b74 Section 0 stm32f1xx_hal_uart.o(.text.HAL_UART_Receive_IT) + [Anonymous Symbol] 0x08001bcc Section 0 stm32f1xx_it.o(.text.HardFault_Handler) + [Anonymous Symbol] 0x08001bd0 Section 0 modbus.o(.text.MB_DevoceInentificationInit) + [Anonymous Symbol] 0x08001c20 Section 0 modbus.o(.text.MODBUS_FirstInit) + [Anonymous Symbol] 0x08001c64 Section 0 gpio.o(.text.MX_GPIO_Init) + [Anonymous Symbol] 0x08001d1c Section 0 tim.o(.text.MX_TIM2_Init) + [Anonymous Symbol] 0x08001d9c Section 0 tim.o(.text.MX_TIM3_Init) + [Anonymous Symbol] 0x08001e20 Section 0 usart.o(.text.MX_USART1_UART_Init) + [Anonymous Symbol] 0x08001e60 Section 0 stm32f1xx_it.o(.text.MemManage_Handler) + [Anonymous Symbol] 0x08001e64 Section 0 stm32f1xx_it.o(.text.NMI_Handler) + NVIC_EncodePriority 0x08001e69 Thumb Code 108 stm32f1xx_hal_cortex.o(.text.NVIC_EncodePriority) + [Anonymous Symbol] 0x08001e68 Section 0 stm32f1xx_hal_cortex.o(.text.NVIC_EncodePriority) + [Anonymous Symbol] 0x08001ed4 Section 0 stm32f1xx_it.o(.text.PendSV_Handler) + RCC_Delay 0x08001ed9 Thumb Code 58 stm32f1xx_hal_rcc.o(.text.RCC_Delay) + [Anonymous Symbol] 0x08001ed8 Section 0 stm32f1xx_hal_rcc.o(.text.RCC_Delay) + [Anonymous Symbol] 0x08001f14 Section 0 rs_message.o(.text.RS_Abort) + [Anonymous Symbol] 0x08002070 Section 0 rs_message.o(.text.RS_Init) + [Anonymous Symbol] 0x080020e0 Section 0 rs_message.o(.text.RS_Receive_IT) + [Anonymous Symbol] 0x08002190 Section 0 stm32f1xx_it.o(.text.SVC_Handler) + SysTick_Config 0x08002195 Thumb Code 82 stm32f1xx_hal_cortex.o(.text.SysTick_Config) + [Anonymous Symbol] 0x08002194 Section 0 stm32f1xx_hal_cortex.o(.text.SysTick_Config) + [Anonymous Symbol] 0x080021e8 Section 0 stm32f1xx_it.o(.text.SysTick_Handler) + [Anonymous Symbol] 0x080021f0 Section 0 main.o(.text.SystemClock_Config) + [Anonymous Symbol] 0x0800225c Section 0 system_stm32f1xx.o(.text.SystemInit) + [Anonymous Symbol] 0x08002260 Section 0 stm32f1xx_hal_tim.o(.text.TIM_Base_SetConfig) + [Anonymous Symbol] 0x08002368 Section 0 stm32f1xx_hal_tim.o(.text.TIM_ETR_SetConfig) + TIM_ITRx_SetConfig 0x0800239d Thumb Code 42 stm32f1xx_hal_tim.o(.text.TIM_ITRx_SetConfig) + [Anonymous Symbol] 0x0800239c Section 0 stm32f1xx_hal_tim.o(.text.TIM_ITRx_SetConfig) + TIM_TI1_ConfigInputStage 0x080023c9 Thumb Code 80 stm32f1xx_hal_tim.o(.text.TIM_TI1_ConfigInputStage) + [Anonymous Symbol] 0x080023c8 Section 0 stm32f1xx_hal_tim.o(.text.TIM_TI1_ConfigInputStage) + TIM_TI2_ConfigInputStage 0x08002419 Thumb Code 82 stm32f1xx_hal_tim.o(.text.TIM_TI2_ConfigInputStage) + [Anonymous Symbol] 0x08002418 Section 0 stm32f1xx_hal_tim.o(.text.TIM_TI2_ConfigInputStage) + UART_SetConfig 0x0800246d Thumb Code 186 stm32f1xx_hal_uart.o(.text.UART_SetConfig) + [Anonymous Symbol] 0x0800246c Section 0 stm32f1xx_hal_uart.o(.text.UART_SetConfig) + [Anonymous Symbol] 0x08002528 Section 0 stm32f1xx_hal_uart.o(.text.UART_Start_Receive_IT) + [Anonymous Symbol] 0x0800258c Section 0 stm32f1xx_it.o(.text.UsageFault_Handler) + __NVIC_GetPriorityGrouping 0x08002591 Thumb Code 16 stm32f1xx_hal_cortex.o(.text.__NVIC_GetPriorityGrouping) + [Anonymous Symbol] 0x08002590 Section 0 stm32f1xx_hal_cortex.o(.text.__NVIC_GetPriorityGrouping) + __NVIC_SetPriority 0x080025a1 Thumb Code 66 stm32f1xx_hal_cortex.o(.text.__NVIC_SetPriority) + [Anonymous Symbol] 0x080025a0 Section 0 stm32f1xx_hal_cortex.o(.text.__NVIC_SetPriority) + __NVIC_SetPriorityGrouping 0x080025e5 Thumb Code 60 stm32f1xx_hal_cortex.o(.text.__NVIC_SetPriorityGrouping) + [Anonymous Symbol] 0x080025e4 Section 0 stm32f1xx_hal_cortex.o(.text.__NVIC_SetPriorityGrouping) + [Anonymous Symbol] 0x08002620 Section 0 canform.o(.text.append_bit) + [Anonymous Symbol] 0x08002650 Section 0 canform.o(.text.append_bits) + [Anonymous Symbol] 0x08002690 Section 0 canform.o(.text.apply_bit_stuffing_with_error) + [Anonymous Symbol] 0x08002754 Section 0 canform.o(.text.compute_crc15) + [Anonymous Symbol] 0x080027cc Section 0 canform.o(.text.flip_bit) + [Anonymous Symbol] 0x080027fc Section 0 canform.o(.text.form_CAN_bitstream_full) + [Anonymous Symbol] 0x08002bd0 Section 0 main.o(.text.main) + [Anonymous Symbol] 0x08002db8 Section 0 canemu.o(.text.wait_exact_ticks) + HAL_RCC_GetSysClockFreq.aPLLMULFactorTable 0x08002e1a Data 16 stm32f1xx_hal_rcc.o(.rodata.HAL_RCC_GetSysClockFreq.aPLLMULFactorTable) + [Anonymous Symbol] 0x08002e1a Section 0 stm32f1xx_hal_rcc.o(.rodata.HAL_RCC_GetSysClockFreq.aPLLMULFactorTable) + HAL_RCC_GetSysClockFreq.aPredivFactorTable 0x08002e2a Data 2 stm32f1xx_hal_rcc.o(.rodata.HAL_RCC_GetSysClockFreq.aPredivFactorTable) + [Anonymous Symbol] 0x08002e2a Section 0 stm32f1xx_hal_rcc.o(.rodata.HAL_RCC_GetSysClockFreq.aPredivFactorTable) + .L.str.2 0x08002e2c Data 9 modbus.o(.rodata.str1.1) + [Anonymous Symbol] 0x08002e2c Section 0 modbus.o(.rodata.str1.1) + .L.str 0x08002e35 Data 7 modbus.o(.rodata.str1.1) + .L.str.3 0x08002e3c Data 10 modbus.o(.rodata.str1.1) + .L.str.1 0x08002e45 Data 1 modbus.o(.rodata.str1.1) .bss 0x20000010 Section 96 libspace.o(.bss) - Heap_Mem 0x200002f8 Data 512 startup_stm32f103xb.o(HEAP) - HEAP 0x200002f8 Section 512 startup_stm32f103xb.o(HEAP) - Stack_Mem 0x200004f8 Data 1024 startup_stm32f103xb.o(STACK) - STACK 0x200004f8 Section 1024 startup_stm32f103xb.o(STACK) - __initial_sp 0x200008f8 Data 0 startup_stm32f103xb.o(STACK) + Heap_Mem 0x20000638 Data 512 startup_stm32f103xb.o(HEAP) + HEAP 0x20000638 Section 512 startup_stm32f103xb.o(HEAP) + Stack_Mem 0x20000838 Data 1024 startup_stm32f103xb.o(STACK) + STACK 0x20000838 Section 1024 startup_stm32f103xb.o(STACK) + __initial_sp 0x20000c38 Data 0 startup_stm32f103xb.o(STACK) Global Symbols @@ -1855,62 +2357,91 @@ Image Symbol Table CANEmu_SendFrame 0x080002bd Thumb Code 208 canemu.o(.text.CANEmu_SendFrame) DebugMon_Handler 0x0800038d Thumb Code 2 stm32f1xx_it.o(.text.DebugMon_Handler) Error_Handler 0x08000391 Thumb Code 14 main.o(.text.Error_Handler) - HAL_Delay 0x080003a1 Thumb Code 66 stm32f1xx_hal.o(.text.HAL_Delay) - HAL_GPIO_Init 0x080003e5 Thumb Code 798 stm32f1xx_hal_gpio.o(.text.HAL_GPIO_Init) - HAL_GPIO_WritePin 0x08000705 Thumb Code 46 stm32f1xx_hal_gpio.o(.text.HAL_GPIO_WritePin) - HAL_GetTick 0x08000735 Thumb Code 12 stm32f1xx_hal.o(.text.HAL_GetTick) - HAL_IncTick 0x08000741 Thumb Code 26 stm32f1xx_hal.o(.text.HAL_IncTick) - HAL_Init 0x0800075d Thumb Code 38 stm32f1xx_hal.o(.text.HAL_Init) - HAL_InitTick 0x08000785 Thumb Code 112 stm32f1xx_hal.o(.text.HAL_InitTick) - HAL_MspInit 0x080007f5 Thumb Code 100 stm32f1xx_hal_msp.o(.text.HAL_MspInit) - HAL_NVIC_SetPriority 0x08000859 Thumb Code 50 stm32f1xx_hal_cortex.o(.text.HAL_NVIC_SetPriority) - HAL_NVIC_SetPriorityGrouping 0x0800088d Thumb Code 16 stm32f1xx_hal_cortex.o(.text.HAL_NVIC_SetPriorityGrouping) - HAL_RCC_ClockConfig 0x0800089d Thumb Code 598 stm32f1xx_hal_rcc.o(.text.HAL_RCC_ClockConfig) - HAL_RCC_GetSysClockFreq 0x08000af5 Thumb Code 188 stm32f1xx_hal_rcc.o(.text.HAL_RCC_GetSysClockFreq) - HAL_RCC_OscConfig 0x08000bb1 Thumb Code 1658 stm32f1xx_hal_rcc.o(.text.HAL_RCC_OscConfig) - HAL_SYSTICK_Config 0x0800122d Thumb Code 16 stm32f1xx_hal_cortex.o(.text.HAL_SYSTICK_Config) - HAL_TIMEx_MasterConfigSynchronization 0x0800123d Thumb Code 220 stm32f1xx_hal_tim_ex.o(.text.HAL_TIMEx_MasterConfigSynchronization) - HAL_TIM_Base_Init 0x08001319 Thumb Code 156 stm32f1xx_hal_tim.o(.text.HAL_TIM_Base_Init) - HAL_TIM_Base_MspInit 0x080013b5 Thumb Code 52 tim.o(.text.HAL_TIM_Base_MspInit) - HAL_TIM_ConfigClockSource 0x080013e9 Thumb Code 388 stm32f1xx_hal_tim.o(.text.HAL_TIM_ConfigClockSource) - HardFault_Handler 0x0800156d Thumb Code 4 stm32f1xx_it.o(.text.HardFault_Handler) - MX_GPIO_Init 0x08001571 Thumb Code 182 gpio.o(.text.MX_GPIO_Init) - MX_TIM2_Init 0x08001629 Thumb Code 126 tim.o(.text.MX_TIM2_Init) - MemManage_Handler 0x080016a9 Thumb Code 4 stm32f1xx_it.o(.text.MemManage_Handler) - NMI_Handler 0x080016ad Thumb Code 4 stm32f1xx_it.o(.text.NMI_Handler) - PendSV_Handler 0x0800171d Thumb Code 2 stm32f1xx_it.o(.text.PendSV_Handler) - SVC_Handler 0x0800175d Thumb Code 2 stm32f1xx_it.o(.text.SVC_Handler) - SysTick_Handler 0x080017b5 Thumb Code 8 stm32f1xx_it.o(.text.SysTick_Handler) - SystemClock_Config 0x080017bd Thumb Code 108 main.o(.text.SystemClock_Config) - SystemInit 0x08001829 Thumb Code 2 system_stm32f1xx.o(.text.SystemInit) - TIM_Base_SetConfig 0x0800182d Thumb Code 262 stm32f1xx_hal_tim.o(.text.TIM_Base_SetConfig) - TIM_ETR_SetConfig 0x08001935 Thumb Code 52 stm32f1xx_hal_tim.o(.text.TIM_ETR_SetConfig) - UsageFault_Handler 0x08001a39 Thumb Code 4 stm32f1xx_it.o(.text.UsageFault_Handler) - append_bit 0x08001acd Thumb Code 48 canform.o(.text.append_bit) - append_bits 0x08001afd Thumb Code 64 canform.o(.text.append_bits) - apply_bit_stuffing_with_error 0x08001b3d Thumb Code 196 canform.o(.text.apply_bit_stuffing_with_error) - compute_crc15 0x08001c01 Thumb Code 118 canform.o(.text.compute_crc15) - flip_bit 0x08001c79 Thumb Code 48 canform.o(.text.flip_bit) - form_CAN_bitstream_full 0x08001ca9 Thumb Code 978 canform.o(.text.form_CAN_bitstream_full) - main 0x0800207d Thumb Code 76 main.o(.text.main) - wait_exact_ticks 0x080020c9 Thumb Code 74 canemu.o(.text.wait_exact_ticks) - AHBPrescTable 0x08002112 Data 16 system_stm32f1xx.o(.rodata.AHBPrescTable) - Region$$Table$$Base 0x08002134 Number 0 anon$$obj.o(Region$$Table) - Region$$Table$$Limit 0x08002154 Number 0 anon$$obj.o(Region$$Table) + HAL_DMA_Abort 0x080003a1 Thumb Code 124 stm32f1xx_hal_dma.o(.text.HAL_DMA_Abort) + HAL_DMA_GetError 0x0800041d Thumb Code 12 stm32f1xx_hal_dma.o(.text.HAL_DMA_GetError) + HAL_Delay 0x08000429 Thumb Code 66 stm32f1xx_hal.o(.text.HAL_Delay) + HAL_GPIO_Init 0x0800046d Thumb Code 798 stm32f1xx_hal_gpio.o(.text.HAL_GPIO_Init) + HAL_GPIO_WritePin 0x0800078d Thumb Code 46 stm32f1xx_hal_gpio.o(.text.HAL_GPIO_WritePin) + HAL_GetTick 0x080007bd Thumb Code 12 stm32f1xx_hal.o(.text.HAL_GetTick) + HAL_IncTick 0x080007c9 Thumb Code 26 stm32f1xx_hal.o(.text.HAL_IncTick) + HAL_Init 0x080007e5 Thumb Code 38 stm32f1xx_hal.o(.text.HAL_Init) + HAL_InitTick 0x0800080d Thumb Code 112 stm32f1xx_hal.o(.text.HAL_InitTick) + HAL_MspInit 0x0800087d Thumb Code 100 stm32f1xx_hal_msp.o(.text.HAL_MspInit) + HAL_NVIC_SetPriority 0x080008e1 Thumb Code 50 stm32f1xx_hal_cortex.o(.text.HAL_NVIC_SetPriority) + HAL_NVIC_SetPriorityGrouping 0x08000915 Thumb Code 16 stm32f1xx_hal_cortex.o(.text.HAL_NVIC_SetPriorityGrouping) + HAL_RCC_ClockConfig 0x08000925 Thumb Code 598 stm32f1xx_hal_rcc.o(.text.HAL_RCC_ClockConfig) + HAL_RCC_GetHCLKFreq 0x08000b7d Thumb Code 12 stm32f1xx_hal_rcc.o(.text.HAL_RCC_GetHCLKFreq) + HAL_RCC_GetPCLK1Freq 0x08000b89 Thumb Code 34 stm32f1xx_hal_rcc.o(.text.HAL_RCC_GetPCLK1Freq) + HAL_RCC_GetPCLK2Freq 0x08000bad Thumb Code 34 stm32f1xx_hal_rcc.o(.text.HAL_RCC_GetPCLK2Freq) + HAL_RCC_GetSysClockFreq 0x08000bd1 Thumb Code 188 stm32f1xx_hal_rcc.o(.text.HAL_RCC_GetSysClockFreq) + HAL_RCC_OscConfig 0x08000c8d Thumb Code 1658 stm32f1xx_hal_rcc.o(.text.HAL_RCC_OscConfig) + HAL_SYSTICK_Config 0x08001309 Thumb Code 16 stm32f1xx_hal_cortex.o(.text.HAL_SYSTICK_Config) + HAL_TIMEx_MasterConfigSynchronization 0x08001319 Thumb Code 220 stm32f1xx_hal_tim_ex.o(.text.HAL_TIMEx_MasterConfigSynchronization) + HAL_TIM_Base_Init 0x080013f5 Thumb Code 156 stm32f1xx_hal_tim.o(.text.HAL_TIM_Base_Init) + HAL_TIM_Base_MspInit 0x08001491 Thumb Code 104 tim.o(.text.HAL_TIM_Base_MspInit) + HAL_TIM_Base_Stop_IT 0x080014f9 Thumb Code 82 stm32f1xx_hal_tim.o(.text.HAL_TIM_Base_Stop_IT) + HAL_TIM_ConfigClockSource 0x0800154d Thumb Code 388 stm32f1xx_hal_tim.o(.text.HAL_TIM_ConfigClockSource) + HAL_UART_Abort 0x080016d1 Thumb Code 406 stm32f1xx_hal_uart.o(.text.HAL_UART_Abort) + HAL_UART_AbortReceive 0x08001869 Thumb Code 278 stm32f1xx_hal_uart.o(.text.HAL_UART_AbortReceive) + HAL_UART_AbortTransmit 0x08001981 Thumb Code 186 stm32f1xx_hal_uart.o(.text.HAL_UART_AbortTransmit) + HAL_UART_Init 0x08001a3d Thumb Code 158 stm32f1xx_hal_uart.o(.text.HAL_UART_Init) + HAL_UART_MspInit 0x08001add Thumb Code 152 usart.o(.text.HAL_UART_MspInit) + HAL_UART_Receive_IT 0x08001b75 Thumb Code 86 stm32f1xx_hal_uart.o(.text.HAL_UART_Receive_IT) + HardFault_Handler 0x08001bcd Thumb Code 4 stm32f1xx_it.o(.text.HardFault_Handler) + MB_DevoceInentificationInit 0x08001bd1 Thumb Code 78 modbus.o(.text.MB_DevoceInentificationInit) + MODBUS_FirstInit 0x08001c21 Thumb Code 66 modbus.o(.text.MODBUS_FirstInit) + MX_GPIO_Init 0x08001c65 Thumb Code 182 gpio.o(.text.MX_GPIO_Init) + MX_TIM2_Init 0x08001d1d Thumb Code 126 tim.o(.text.MX_TIM2_Init) + MX_TIM3_Init 0x08001d9d Thumb Code 130 tim.o(.text.MX_TIM3_Init) + MX_USART1_UART_Init 0x08001e21 Thumb Code 64 usart.o(.text.MX_USART1_UART_Init) + MemManage_Handler 0x08001e61 Thumb Code 4 stm32f1xx_it.o(.text.MemManage_Handler) + NMI_Handler 0x08001e65 Thumb Code 4 stm32f1xx_it.o(.text.NMI_Handler) + PendSV_Handler 0x08001ed5 Thumb Code 2 stm32f1xx_it.o(.text.PendSV_Handler) + RS_Abort 0x08001f15 Thumb Code 348 rs_message.o(.text.RS_Abort) + RS_Init 0x08002071 Thumb Code 112 rs_message.o(.text.RS_Init) + RS_Receive_IT 0x080020e1 Thumb Code 176 rs_message.o(.text.RS_Receive_IT) + SVC_Handler 0x08002191 Thumb Code 2 stm32f1xx_it.o(.text.SVC_Handler) + SysTick_Handler 0x080021e9 Thumb Code 8 stm32f1xx_it.o(.text.SysTick_Handler) + SystemClock_Config 0x080021f1 Thumb Code 108 main.o(.text.SystemClock_Config) + SystemInit 0x0800225d Thumb Code 2 system_stm32f1xx.o(.text.SystemInit) + TIM_Base_SetConfig 0x08002261 Thumb Code 262 stm32f1xx_hal_tim.o(.text.TIM_Base_SetConfig) + TIM_ETR_SetConfig 0x08002369 Thumb Code 52 stm32f1xx_hal_tim.o(.text.TIM_ETR_SetConfig) + UART_Start_Receive_IT 0x08002529 Thumb Code 98 stm32f1xx_hal_uart.o(.text.UART_Start_Receive_IT) + UsageFault_Handler 0x0800258d Thumb Code 4 stm32f1xx_it.o(.text.UsageFault_Handler) + append_bit 0x08002621 Thumb Code 48 canform.o(.text.append_bit) + append_bits 0x08002651 Thumb Code 64 canform.o(.text.append_bits) + apply_bit_stuffing_with_error 0x08002691 Thumb Code 196 canform.o(.text.apply_bit_stuffing_with_error) + compute_crc15 0x08002755 Thumb Code 118 canform.o(.text.compute_crc15) + flip_bit 0x080027cd Thumb Code 48 canform.o(.text.flip_bit) + form_CAN_bitstream_full 0x080027fd Thumb Code 978 canform.o(.text.form_CAN_bitstream_full) + main 0x08002bd1 Thumb Code 488 main.o(.text.main) + wait_exact_ticks 0x08002db9 Thumb Code 74 canemu.o(.text.wait_exact_ticks) + AHBPrescTable 0x08002e02 Data 16 system_stm32f1xx.o(.rodata.AHBPrescTable) + APBPrescTable 0x08002e12 Data 8 system_stm32f1xx.o(.rodata.APBPrescTable) + Region$$Table$$Base 0x08002e48 Number 0 anon$$obj.o(Region$$Table) + Region$$Table$$Limit 0x08002e68 Number 0 anon$$obj.o(Region$$Table) SystemCoreClock 0x20000000 Data 4 system_stm32f1xx.o(.data.SystemCoreClock) uwTickFreq 0x20000004 Data 1 stm32f1xx_hal.o(.data.uwTickFreq) uwTickPrio 0x20000008 Data 4 stm32f1xx_hal.o(.data.uwTickPrio) __libspace_start 0x20000010 Data 96 libspace.o(.bss) CANEMU_BIT_TICKS 0x20000070 Data 4 canemu.o(.bss.CANEMU_BIT_TICKS) __temporary_stack_top$libspace 0x20000070 Data 0 libspace.o(.bss) - can_bits 0x20000074 Data 256 canform.o(.bss.can_bits) - can_bits_len 0x20000174 Data 4 canform.o(.bss.can_bits_len) - err_indices_count 0x20000178 Data 1 canform.o(.bss.err_indices_count) - hcanemu 0x2000017c Data 40 main.o(.bss.hcanemu) - htim2 0x200001a4 Data 72 tim.o(.bss.htim2) - raw_bits 0x200001ec Data 256 canform.o(.bss.raw_bits) - raw_len 0x200002ec Data 4 canform.o(.bss.raw_len) - uwTick 0x200002f0 Data 4 stm32f1xx_hal.o(.bss.uwTick) + MB_DATA 0x20000074 Data 60 modbus.o(.bss.MB_DATA) + MB_INFO 0x200000b0 Data 56 modbus.o(.bss.MB_INFO) + MODBUS_MSG 0x200000e8 Data 268 modbus.o(.bss.MODBUS_MSG) + RS_Buffer 0x200001f4 Data 259 rs_message.o(.bss.RS_Buffer) + can_bits 0x200002f7 Data 256 canform.o(.bss.can_bits) + can_bits_len 0x200003f8 Data 4 canform.o(.bss.can_bits_len) + err_indices_count 0x200003fc Data 1 canform.o(.bss.err_indices_count) + flag_manual 0x20000400 Data 4 main.o(.bss.flag_manual) + hcanemu 0x20000404 Data 44 main.o(.bss.hcanemu) + hmodbus1 0x20000430 Data 40 modbus.o(.bss.hmodbus1) + htim2 0x20000458 Data 72 tim.o(.bss.htim2) + htim3 0x200004a0 Data 72 tim.o(.bss.htim3) + huart1 0x200004e8 Data 72 usart.o(.bss.huart1) + raw_bits 0x20000530 Data 256 canform.o(.bss.raw_bits) + raw_len 0x20000630 Data 4 canform.o(.bss.raw_len) + uwTick 0x20000634 Data 4 stm32f1xx_hal.o(.bss.uwTick) @@ -1920,176 +2451,221 @@ Memory Map of the image Image Entry point : 0x080000ed - Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00002168, Max: 0x00010000, ABSOLUTE) + Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00002e78, Max: 0x00010000, ABSOLUTE) - Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x00002154, Max: 0x00010000, ABSOLUTE) + Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x00002e68, Max: 0x00010000, ABSOLUTE) Exec Addr Load Addr Size Type Attr Idx E Section Name Object 0x08000000 0x08000000 0x000000ec Data RO 3 RESET startup_stm32f103xb.o - 0x080000ec 0x080000ec 0x00000008 Code RO 866 * !!!main c_w.l(__main.o) - 0x080000f4 0x080000f4 0x00000034 Code RO 1031 !!!scatter c_w.l(__scatter.o) - 0x08000128 0x08000128 0x0000001a Code RO 1033 !!handler_copy c_w.l(__scatter_copy.o) + 0x080000ec 0x080000ec 0x00000008 Code RO 1127 * !!!main c_w.l(__main.o) + 0x080000f4 0x080000f4 0x00000034 Code RO 1292 !!!scatter c_w.l(__scatter.o) + 0x08000128 0x08000128 0x0000001a Code RO 1294 !!handler_copy c_w.l(__scatter_copy.o) 0x08000142 0x08000142 0x00000002 PAD - 0x08000144 0x08000144 0x0000001c Code RO 1035 !!handler_zi c_w.l(__scatter_zi.o) - 0x08000160 0x08000160 0x00000002 Code RO 893 .ARM.Collect$$libinit$$00000000 c_w.l(libinit.o) - 0x08000162 0x08000162 0x00000000 Code RO 900 .ARM.Collect$$libinit$$00000002 c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 902 .ARM.Collect$$libinit$$00000004 c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 904 .ARM.Collect$$libinit$$00000006 c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 907 .ARM.Collect$$libinit$$0000000C c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 909 .ARM.Collect$$libinit$$0000000E c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 911 .ARM.Collect$$libinit$$00000010 c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 914 .ARM.Collect$$libinit$$00000013 c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 916 .ARM.Collect$$libinit$$00000015 c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 918 .ARM.Collect$$libinit$$00000017 c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 920 .ARM.Collect$$libinit$$00000019 c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 922 .ARM.Collect$$libinit$$0000001B c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 924 .ARM.Collect$$libinit$$0000001D c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 926 .ARM.Collect$$libinit$$0000001F c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 928 .ARM.Collect$$libinit$$00000021 c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 930 .ARM.Collect$$libinit$$00000023 c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 932 .ARM.Collect$$libinit$$00000025 c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 934 .ARM.Collect$$libinit$$00000027 c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 938 .ARM.Collect$$libinit$$0000002E c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 940 .ARM.Collect$$libinit$$00000030 c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 942 .ARM.Collect$$libinit$$00000032 c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 944 .ARM.Collect$$libinit$$00000034 c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000002 Code RO 945 .ARM.Collect$$libinit$$00000035 c_w.l(libinit2.o) - 0x08000164 0x08000164 0x00000002 Code RO 967 .ARM.Collect$$libshutdown$$00000000 c_w.l(libshutdown.o) - 0x08000166 0x08000166 0x00000000 Code RO 982 .ARM.Collect$$libshutdown$$00000002 c_w.l(libshutdown2.o) - 0x08000166 0x08000166 0x00000000 Code RO 984 .ARM.Collect$$libshutdown$$00000004 c_w.l(libshutdown2.o) - 0x08000166 0x08000166 0x00000000 Code RO 987 .ARM.Collect$$libshutdown$$00000007 c_w.l(libshutdown2.o) - 0x08000166 0x08000166 0x00000000 Code RO 990 .ARM.Collect$$libshutdown$$0000000A c_w.l(libshutdown2.o) - 0x08000166 0x08000166 0x00000000 Code RO 992 .ARM.Collect$$libshutdown$$0000000C c_w.l(libshutdown2.o) - 0x08000166 0x08000166 0x00000000 Code RO 995 .ARM.Collect$$libshutdown$$0000000F c_w.l(libshutdown2.o) - 0x08000166 0x08000166 0x00000002 Code RO 996 .ARM.Collect$$libshutdown$$00000010 c_w.l(libshutdown2.o) - 0x08000168 0x08000168 0x00000000 Code RO 868 .ARM.Collect$$rtentry$$00000000 c_w.l(__rtentry.o) - 0x08000168 0x08000168 0x00000000 Code RO 870 .ARM.Collect$$rtentry$$00000002 c_w.l(__rtentry2.o) - 0x08000168 0x08000168 0x00000006 Code RO 882 .ARM.Collect$$rtentry$$00000004 c_w.l(__rtentry4.o) - 0x0800016e 0x0800016e 0x00000000 Code RO 872 .ARM.Collect$$rtentry$$00000009 c_w.l(__rtentry2.o) - 0x0800016e 0x0800016e 0x00000004 Code RO 873 .ARM.Collect$$rtentry$$0000000A c_w.l(__rtentry2.o) - 0x08000172 0x08000172 0x00000000 Code RO 875 .ARM.Collect$$rtentry$$0000000C c_w.l(__rtentry2.o) - 0x08000172 0x08000172 0x00000008 Code RO 876 .ARM.Collect$$rtentry$$0000000D c_w.l(__rtentry2.o) - 0x0800017a 0x0800017a 0x00000002 Code RO 897 .ARM.Collect$$rtexit$$00000000 c_w.l(rtexit.o) - 0x0800017c 0x0800017c 0x00000000 Code RO 947 .ARM.Collect$$rtexit$$00000002 c_w.l(rtexit2.o) - 0x0800017c 0x0800017c 0x00000004 Code RO 948 .ARM.Collect$$rtexit$$00000003 c_w.l(rtexit2.o) - 0x08000180 0x08000180 0x00000006 Code RO 949 .ARM.Collect$$rtexit$$00000004 c_w.l(rtexit2.o) + 0x08000144 0x08000144 0x0000001c Code RO 1296 !!handler_zi c_w.l(__scatter_zi.o) + 0x08000160 0x08000160 0x00000002 Code RO 1154 .ARM.Collect$$libinit$$00000000 c_w.l(libinit.o) + 0x08000162 0x08000162 0x00000000 Code RO 1161 .ARM.Collect$$libinit$$00000002 c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 1163 .ARM.Collect$$libinit$$00000004 c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 1165 .ARM.Collect$$libinit$$00000006 c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 1168 .ARM.Collect$$libinit$$0000000C c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 1170 .ARM.Collect$$libinit$$0000000E c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 1172 .ARM.Collect$$libinit$$00000010 c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 1175 .ARM.Collect$$libinit$$00000013 c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 1177 .ARM.Collect$$libinit$$00000015 c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 1179 .ARM.Collect$$libinit$$00000017 c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 1181 .ARM.Collect$$libinit$$00000019 c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 1183 .ARM.Collect$$libinit$$0000001B c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 1185 .ARM.Collect$$libinit$$0000001D c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 1187 .ARM.Collect$$libinit$$0000001F c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 1189 .ARM.Collect$$libinit$$00000021 c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 1191 .ARM.Collect$$libinit$$00000023 c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 1193 .ARM.Collect$$libinit$$00000025 c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 1195 .ARM.Collect$$libinit$$00000027 c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 1199 .ARM.Collect$$libinit$$0000002E c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 1201 .ARM.Collect$$libinit$$00000030 c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 1203 .ARM.Collect$$libinit$$00000032 c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 1205 .ARM.Collect$$libinit$$00000034 c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000002 Code RO 1206 .ARM.Collect$$libinit$$00000035 c_w.l(libinit2.o) + 0x08000164 0x08000164 0x00000002 Code RO 1228 .ARM.Collect$$libshutdown$$00000000 c_w.l(libshutdown.o) + 0x08000166 0x08000166 0x00000000 Code RO 1243 .ARM.Collect$$libshutdown$$00000002 c_w.l(libshutdown2.o) + 0x08000166 0x08000166 0x00000000 Code RO 1245 .ARM.Collect$$libshutdown$$00000004 c_w.l(libshutdown2.o) + 0x08000166 0x08000166 0x00000000 Code RO 1248 .ARM.Collect$$libshutdown$$00000007 c_w.l(libshutdown2.o) + 0x08000166 0x08000166 0x00000000 Code RO 1251 .ARM.Collect$$libshutdown$$0000000A c_w.l(libshutdown2.o) + 0x08000166 0x08000166 0x00000000 Code RO 1253 .ARM.Collect$$libshutdown$$0000000C c_w.l(libshutdown2.o) + 0x08000166 0x08000166 0x00000000 Code RO 1256 .ARM.Collect$$libshutdown$$0000000F c_w.l(libshutdown2.o) + 0x08000166 0x08000166 0x00000002 Code RO 1257 .ARM.Collect$$libshutdown$$00000010 c_w.l(libshutdown2.o) + 0x08000168 0x08000168 0x00000000 Code RO 1129 .ARM.Collect$$rtentry$$00000000 c_w.l(__rtentry.o) + 0x08000168 0x08000168 0x00000000 Code RO 1131 .ARM.Collect$$rtentry$$00000002 c_w.l(__rtentry2.o) + 0x08000168 0x08000168 0x00000006 Code RO 1143 .ARM.Collect$$rtentry$$00000004 c_w.l(__rtentry4.o) + 0x0800016e 0x0800016e 0x00000000 Code RO 1133 .ARM.Collect$$rtentry$$00000009 c_w.l(__rtentry2.o) + 0x0800016e 0x0800016e 0x00000004 Code RO 1134 .ARM.Collect$$rtentry$$0000000A c_w.l(__rtentry2.o) + 0x08000172 0x08000172 0x00000000 Code RO 1136 .ARM.Collect$$rtentry$$0000000C c_w.l(__rtentry2.o) + 0x08000172 0x08000172 0x00000008 Code RO 1137 .ARM.Collect$$rtentry$$0000000D c_w.l(__rtentry2.o) + 0x0800017a 0x0800017a 0x00000002 Code RO 1158 .ARM.Collect$$rtexit$$00000000 c_w.l(rtexit.o) + 0x0800017c 0x0800017c 0x00000000 Code RO 1208 .ARM.Collect$$rtexit$$00000002 c_w.l(rtexit2.o) + 0x0800017c 0x0800017c 0x00000004 Code RO 1209 .ARM.Collect$$rtexit$$00000003 c_w.l(rtexit2.o) + 0x08000180 0x08000180 0x00000006 Code RO 1210 .ARM.Collect$$rtexit$$00000004 c_w.l(rtexit2.o) 0x08000186 0x08000186 0x00000002 PAD 0x08000188 0x08000188 0x00000040 Code RO 4 .text startup_stm32f103xb.o - 0x080001c8 0x080001c8 0x0000004e Code RO 862 .text c_w.l(rt_memclr_w.o) - 0x08000216 0x08000216 0x00000006 Code RO 864 .text c_w.l(heapauxi.o) - 0x0800021c 0x0800021c 0x0000004a Code RO 884 .text c_w.l(sys_stackheap_outer.o) - 0x08000266 0x08000266 0x00000012 Code RO 886 .text c_w.l(exit.o) - 0x08000278 0x08000278 0x00000008 Code RO 894 .text c_w.l(libspace.o) - 0x08000280 0x08000280 0x0000000c Code RO 957 .text c_w.l(sys_exit.o) - 0x0800028c 0x0800028c 0x00000002 Code RO 972 .text c_w.l(use_no_semi.o) - 0x0800028e 0x0800028e 0x00000000 Code RO 974 .text c_w.l(indicate_semi.o) + 0x080001c8 0x080001c8 0x0000004e Code RO 1123 .text c_w.l(rt_memclr_w.o) + 0x08000216 0x08000216 0x00000006 Code RO 1125 .text c_w.l(heapauxi.o) + 0x0800021c 0x0800021c 0x0000004a Code RO 1145 .text c_w.l(sys_stackheap_outer.o) + 0x08000266 0x08000266 0x00000012 Code RO 1147 .text c_w.l(exit.o) + 0x08000278 0x08000278 0x00000008 Code RO 1155 .text c_w.l(libspace.o) + 0x08000280 0x08000280 0x0000000c Code RO 1218 .text c_w.l(sys_exit.o) + 0x0800028c 0x0800028c 0x00000002 Code RO 1233 .text c_w.l(use_no_semi.o) + 0x0800028e 0x0800028e 0x00000000 Code RO 1235 .text c_w.l(indicate_semi.o) 0x0800028e 0x0800028e 0x00000002 PAD - 0x08000290 0x08000290 0x00000004 Code RO 54 .text.BusFault_Handler stm32f1xx_it.o - 0x08000294 0x08000294 0x00000028 Code RO 822 .text.CANEmu_Init canemu.o - 0x080002bc 0x080002bc 0x000000d0 Code RO 826 .text.CANEmu_SendFrame canemu.o - 0x0800038c 0x0800038c 0x00000002 Code RO 60 .text.DebugMon_Handler stm32f1xx_it.o + 0x08000290 0x08000290 0x00000004 Code RO 72 .text.BusFault_Handler stm32f1xx_it.o + 0x08000294 0x08000294 0x00000028 Code RO 971 .text.CANEmu_Init canemu.o + 0x080002bc 0x080002bc 0x000000d0 Code RO 975 .text.CANEmu_SendFrame canemu.o + 0x0800038c 0x0800038c 0x00000002 Code RO 78 .text.DebugMon_Handler stm32f1xx_it.o 0x0800038e 0x0800038e 0x00000002 PAD 0x08000390 0x08000390 0x0000000e Code RO 15 .text.Error_Handler main.o 0x0800039e 0x0800039e 0x00000002 PAD - 0x080003a0 0x080003a0 0x00000042 Code RO 450 .text.HAL_Delay stm32f1xx_hal.o - 0x080003e2 0x080003e2 0x00000002 PAD - 0x080003e4 0x080003e4 0x0000031e Code RO 544 .text.HAL_GPIO_Init stm32f1xx_hal_gpio.o - 0x08000702 0x08000702 0x00000002 PAD - 0x08000704 0x08000704 0x0000002e Code RO 550 .text.HAL_GPIO_WritePin stm32f1xx_hal_gpio.o - 0x08000732 0x08000732 0x00000002 PAD - 0x08000734 0x08000734 0x0000000c Code RO 442 .text.HAL_GetTick stm32f1xx_hal.o - 0x08000740 0x08000740 0x0000001a Code RO 440 .text.HAL_IncTick stm32f1xx_hal.o - 0x0800075a 0x0800075a 0x00000002 PAD - 0x0800075c 0x0800075c 0x00000026 Code RO 430 .text.HAL_Init stm32f1xx_hal.o - 0x08000782 0x08000782 0x00000002 PAD - 0x08000784 0x08000784 0x00000070 Code RO 432 .text.HAL_InitTick stm32f1xx_hal.o - 0x080007f4 0x080007f4 0x00000064 Code RO 73 .text.HAL_MspInit stm32f1xx_hal_msp.o - 0x08000858 0x08000858 0x00000032 Code RO 604 .text.HAL_NVIC_SetPriority stm32f1xx_hal_cortex.o - 0x0800088a 0x0800088a 0x00000002 PAD - 0x0800088c 0x0800088c 0x00000010 Code RO 600 .text.HAL_NVIC_SetPriorityGrouping stm32f1xx_hal_cortex.o - 0x0800089c 0x0800089c 0x00000256 Code RO 496 .text.HAL_RCC_ClockConfig stm32f1xx_hal_rcc.o - 0x08000af2 0x08000af2 0x00000002 PAD - 0x08000af4 0x08000af4 0x000000bc Code RO 498 .text.HAL_RCC_GetSysClockFreq stm32f1xx_hal_rcc.o - 0x08000bb0 0x08000bb0 0x0000067a Code RO 492 .text.HAL_RCC_OscConfig stm32f1xx_hal_rcc.o - 0x0800122a 0x0800122a 0x00000002 PAD - 0x0800122c 0x0800122c 0x00000010 Code RO 624 .text.HAL_SYSTICK_Config stm32f1xx_hal_cortex.o - 0x0800123c 0x0800123c 0x000000dc Code RO 407 .text.HAL_TIMEx_MasterConfigSynchronization stm32f1xx_hal_tim_ex.o - 0x08001318 0x08001318 0x0000009c Code RO 94 .text.HAL_TIM_Base_Init stm32f1xx_hal_tim.o - 0x080013b4 0x080013b4 0x00000034 Code RO 36 .text.HAL_TIM_Base_MspInit tim.o - 0x080013e8 0x080013e8 0x00000184 Code RO 286 .text.HAL_TIM_ConfigClockSource stm32f1xx_hal_tim.o - 0x0800156c 0x0800156c 0x00000004 Code RO 50 .text.HardFault_Handler stm32f1xx_it.o - 0x08001570 0x08001570 0x000000b6 Code RO 26 .text.MX_GPIO_Init gpio.o - 0x08001626 0x08001626 0x00000002 PAD - 0x08001628 0x08001628 0x0000007e Code RO 34 .text.MX_TIM2_Init tim.o - 0x080016a6 0x080016a6 0x00000002 PAD - 0x080016a8 0x080016a8 0x00000004 Code RO 52 .text.MemManage_Handler stm32f1xx_it.o - 0x080016ac 0x080016ac 0x00000004 Code RO 48 .text.NMI_Handler stm32f1xx_it.o - 0x080016b0 0x080016b0 0x0000006c Code RO 610 .text.NVIC_EncodePriority stm32f1xx_hal_cortex.o - 0x0800171c 0x0800171c 0x00000002 Code RO 62 .text.PendSV_Handler stm32f1xx_it.o - 0x0800171e 0x0800171e 0x00000002 PAD - 0x08001720 0x08001720 0x0000003a Code RO 494 .text.RCC_Delay stm32f1xx_hal_rcc.o - 0x0800175a 0x0800175a 0x00000002 PAD - 0x0800175c 0x0800175c 0x00000002 Code RO 58 .text.SVC_Handler stm32f1xx_it.o - 0x0800175e 0x0800175e 0x00000002 PAD - 0x08001760 0x08001760 0x00000052 Code RO 626 .text.SysTick_Config stm32f1xx_hal_cortex.o - 0x080017b2 0x080017b2 0x00000002 PAD - 0x080017b4 0x080017b4 0x00000008 Code RO 64 .text.SysTick_Handler stm32f1xx_it.o - 0x080017bc 0x080017bc 0x0000006c Code RO 13 .text.SystemClock_Config main.o - 0x08001828 0x08001828 0x00000002 Code RO 808 .text.SystemInit system_stm32f1xx.o - 0x0800182a 0x0800182a 0x00000002 PAD - 0x0800182c 0x0800182c 0x00000106 Code RO 98 .text.TIM_Base_SetConfig stm32f1xx_hal_tim.o - 0x08001932 0x08001932 0x00000002 PAD - 0x08001934 0x08001934 0x00000034 Code RO 284 .text.TIM_ETR_SetConfig stm32f1xx_hal_tim.o - 0x08001968 0x08001968 0x0000002a Code RO 290 .text.TIM_ITRx_SetConfig stm32f1xx_hal_tim.o - 0x08001992 0x08001992 0x00000002 PAD - 0x08001994 0x08001994 0x00000050 Code RO 288 .text.TIM_TI1_ConfigInputStage stm32f1xx_hal_tim.o - 0x080019e4 0x080019e4 0x00000052 Code RO 292 .text.TIM_TI2_ConfigInputStage stm32f1xx_hal_tim.o - 0x08001a36 0x08001a36 0x00000002 PAD - 0x08001a38 0x08001a38 0x00000004 Code RO 56 .text.UsageFault_Handler stm32f1xx_it.o - 0x08001a3c 0x08001a3c 0x00000010 Code RO 606 .text.__NVIC_GetPriorityGrouping stm32f1xx_hal_cortex.o - 0x08001a4c 0x08001a4c 0x00000042 Code RO 608 .text.__NVIC_SetPriority stm32f1xx_hal_cortex.o - 0x08001a8e 0x08001a8e 0x00000002 PAD - 0x08001a90 0x08001a90 0x0000003c Code RO 602 .text.__NVIC_SetPriorityGrouping stm32f1xx_hal_cortex.o - 0x08001acc 0x08001acc 0x00000030 Code RO 836 .text.append_bit canform.o - 0x08001afc 0x08001afc 0x00000040 Code RO 838 .text.append_bits canform.o - 0x08001b3c 0x08001b3c 0x000000c4 Code RO 842 .text.apply_bit_stuffing_with_error canform.o - 0x08001c00 0x08001c00 0x00000076 Code RO 840 .text.compute_crc15 canform.o - 0x08001c76 0x08001c76 0x00000002 PAD - 0x08001c78 0x08001c78 0x00000030 Code RO 844 .text.flip_bit canform.o - 0x08001ca8 0x08001ca8 0x000003d2 Code RO 846 .text.form_CAN_bitstream_full canform.o - 0x0800207a 0x0800207a 0x00000002 PAD - 0x0800207c 0x0800207c 0x0000004c Code RO 11 .text.main main.o - 0x080020c8 0x080020c8 0x0000004a Code RO 824 .text.wait_exact_ticks canemu.o - 0x08002112 0x08002112 0x00000010 Data RO 813 .rodata.AHBPrescTable system_stm32f1xx.o - 0x08002122 0x08002122 0x00000010 Data RO 520 .rodata.HAL_RCC_GetSysClockFreq.aPLLMULFactorTable stm32f1xx_hal_rcc.o - 0x08002132 0x08002132 0x00000002 Data RO 521 .rodata.HAL_RCC_GetSysClockFreq.aPredivFactorTable stm32f1xx_hal_rcc.o - 0x08002134 0x08002134 0x00000020 Data RO 1030 Region$$Table anon$$obj.o + 0x080003a0 0x080003a0 0x0000007c Code RO 595 .text.HAL_DMA_Abort stm32f1xx_hal_dma.o + 0x0800041c 0x0800041c 0x0000000c Code RO 609 .text.HAL_DMA_GetError stm32f1xx_hal_dma.o + 0x08000428 0x08000428 0x00000042 Code RO 468 .text.HAL_Delay stm32f1xx_hal.o + 0x0800046a 0x0800046a 0x00000002 PAD + 0x0800046c 0x0800046c 0x0000031e Code RO 562 .text.HAL_GPIO_Init stm32f1xx_hal_gpio.o + 0x0800078a 0x0800078a 0x00000002 PAD + 0x0800078c 0x0800078c 0x0000002e Code RO 568 .text.HAL_GPIO_WritePin stm32f1xx_hal_gpio.o + 0x080007ba 0x080007ba 0x00000002 PAD + 0x080007bc 0x080007bc 0x0000000c Code RO 460 .text.HAL_GetTick stm32f1xx_hal.o + 0x080007c8 0x080007c8 0x0000001a Code RO 458 .text.HAL_IncTick stm32f1xx_hal.o + 0x080007e2 0x080007e2 0x00000002 PAD + 0x080007e4 0x080007e4 0x00000026 Code RO 448 .text.HAL_Init stm32f1xx_hal.o + 0x0800080a 0x0800080a 0x00000002 PAD + 0x0800080c 0x0800080c 0x00000070 Code RO 450 .text.HAL_InitTick stm32f1xx_hal.o + 0x0800087c 0x0800087c 0x00000064 Code RO 91 .text.HAL_MspInit stm32f1xx_hal_msp.o + 0x080008e0 0x080008e0 0x00000032 Code RO 622 .text.HAL_NVIC_SetPriority stm32f1xx_hal_cortex.o + 0x08000912 0x08000912 0x00000002 PAD + 0x08000914 0x08000914 0x00000010 Code RO 618 .text.HAL_NVIC_SetPriorityGrouping stm32f1xx_hal_cortex.o + 0x08000924 0x08000924 0x00000256 Code RO 514 .text.HAL_RCC_ClockConfig stm32f1xx_hal_rcc.o + 0x08000b7a 0x08000b7a 0x00000002 PAD + 0x08000b7c 0x08000b7c 0x0000000c Code RO 524 .text.HAL_RCC_GetHCLKFreq stm32f1xx_hal_rcc.o + 0x08000b88 0x08000b88 0x00000022 Code RO 526 .text.HAL_RCC_GetPCLK1Freq stm32f1xx_hal_rcc.o + 0x08000baa 0x08000baa 0x00000002 PAD + 0x08000bac 0x08000bac 0x00000022 Code RO 528 .text.HAL_RCC_GetPCLK2Freq stm32f1xx_hal_rcc.o + 0x08000bce 0x08000bce 0x00000002 PAD + 0x08000bd0 0x08000bd0 0x000000bc Code RO 516 .text.HAL_RCC_GetSysClockFreq stm32f1xx_hal_rcc.o + 0x08000c8c 0x08000c8c 0x0000067a Code RO 510 .text.HAL_RCC_OscConfig stm32f1xx_hal_rcc.o + 0x08001306 0x08001306 0x00000002 PAD + 0x08001308 0x08001308 0x00000010 Code RO 642 .text.HAL_SYSTICK_Config stm32f1xx_hal_cortex.o + 0x08001318 0x08001318 0x000000dc Code RO 425 .text.HAL_TIMEx_MasterConfigSynchronization stm32f1xx_hal_tim_ex.o + 0x080013f4 0x080013f4 0x0000009c Code RO 112 .text.HAL_TIM_Base_Init stm32f1xx_hal_tim.o + 0x08001490 0x08001490 0x00000068 Code RO 39 .text.HAL_TIM_Base_MspInit tim.o + 0x080014f8 0x080014f8 0x00000052 Code RO 128 .text.HAL_TIM_Base_Stop_IT stm32f1xx_hal_tim.o + 0x0800154a 0x0800154a 0x00000002 PAD + 0x0800154c 0x0800154c 0x00000184 Code RO 304 .text.HAL_TIM_ConfigClockSource stm32f1xx_hal_tim.o + 0x080016d0 0x080016d0 0x00000196 Code RO 884 .text.HAL_UART_Abort stm32f1xx_hal_uart.o + 0x08001866 0x08001866 0x00000002 PAD + 0x08001868 0x08001868 0x00000116 Code RO 888 .text.HAL_UART_AbortReceive stm32f1xx_hal_uart.o + 0x0800197e 0x0800197e 0x00000002 PAD + 0x08001980 0x08001980 0x000000ba Code RO 886 .text.HAL_UART_AbortTransmit stm32f1xx_hal_uart.o + 0x08001a3a 0x08001a3a 0x00000002 PAD + 0x08001a3c 0x08001a3c 0x0000009e Code RO 826 .text.HAL_UART_Init stm32f1xx_hal_uart.o + 0x08001ada 0x08001ada 0x00000002 PAD + 0x08001adc 0x08001adc 0x00000098 Code RO 54 .text.HAL_UART_MspInit usart.o + 0x08001b74 0x08001b74 0x00000056 Code RO 850 .text.HAL_UART_Receive_IT stm32f1xx_hal_uart.o + 0x08001bca 0x08001bca 0x00000002 PAD + 0x08001bcc 0x08001bcc 0x00000004 Code RO 68 .text.HardFault_Handler stm32f1xx_it.o + 0x08001bd0 0x08001bd0 0x0000004e Code RO 1031 .text.MB_DevoceInentificationInit modbus.o + 0x08001c1e 0x08001c1e 0x00000002 PAD + 0x08001c20 0x08001c20 0x00000042 Code RO 1029 .text.MODBUS_FirstInit modbus.o + 0x08001c62 0x08001c62 0x00000002 PAD + 0x08001c64 0x08001c64 0x000000b6 Code RO 27 .text.MX_GPIO_Init gpio.o + 0x08001d1a 0x08001d1a 0x00000002 PAD + 0x08001d1c 0x08001d1c 0x0000007e Code RO 35 .text.MX_TIM2_Init tim.o + 0x08001d9a 0x08001d9a 0x00000002 PAD + 0x08001d9c 0x08001d9c 0x00000082 Code RO 37 .text.MX_TIM3_Init tim.o + 0x08001e1e 0x08001e1e 0x00000002 PAD + 0x08001e20 0x08001e20 0x00000040 Code RO 52 .text.MX_USART1_UART_Init usart.o + 0x08001e60 0x08001e60 0x00000004 Code RO 70 .text.MemManage_Handler stm32f1xx_it.o + 0x08001e64 0x08001e64 0x00000004 Code RO 66 .text.NMI_Handler stm32f1xx_it.o + 0x08001e68 0x08001e68 0x0000006c Code RO 628 .text.NVIC_EncodePriority stm32f1xx_hal_cortex.o + 0x08001ed4 0x08001ed4 0x00000002 Code RO 80 .text.PendSV_Handler stm32f1xx_it.o + 0x08001ed6 0x08001ed6 0x00000002 PAD + 0x08001ed8 0x08001ed8 0x0000003a Code RO 512 .text.RCC_Delay stm32f1xx_hal_rcc.o + 0x08001f12 0x08001f12 0x00000002 PAD + 0x08001f14 0x08001f14 0x0000015c Code RO 1086 .text.RS_Abort rs_message.o + 0x08002070 0x08002070 0x00000070 Code RO 1094 .text.RS_Init rs_message.o + 0x080020e0 0x080020e0 0x000000b0 Code RO 1084 .text.RS_Receive_IT rs_message.o + 0x08002190 0x08002190 0x00000002 Code RO 76 .text.SVC_Handler stm32f1xx_it.o + 0x08002192 0x08002192 0x00000002 PAD + 0x08002194 0x08002194 0x00000052 Code RO 644 .text.SysTick_Config stm32f1xx_hal_cortex.o + 0x080021e6 0x080021e6 0x00000002 PAD + 0x080021e8 0x080021e8 0x00000008 Code RO 82 .text.SysTick_Handler stm32f1xx_it.o + 0x080021f0 0x080021f0 0x0000006c Code RO 13 .text.SystemClock_Config main.o + 0x0800225c 0x0800225c 0x00000002 Code RO 957 .text.SystemInit system_stm32f1xx.o + 0x0800225e 0x0800225e 0x00000002 PAD + 0x08002260 0x08002260 0x00000106 Code RO 116 .text.TIM_Base_SetConfig stm32f1xx_hal_tim.o + 0x08002366 0x08002366 0x00000002 PAD + 0x08002368 0x08002368 0x00000034 Code RO 302 .text.TIM_ETR_SetConfig stm32f1xx_hal_tim.o + 0x0800239c 0x0800239c 0x0000002a Code RO 308 .text.TIM_ITRx_SetConfig stm32f1xx_hal_tim.o + 0x080023c6 0x080023c6 0x00000002 PAD + 0x080023c8 0x080023c8 0x00000050 Code RO 306 .text.TIM_TI1_ConfigInputStage stm32f1xx_hal_tim.o + 0x08002418 0x08002418 0x00000052 Code RO 310 .text.TIM_TI2_ConfigInputStage stm32f1xx_hal_tim.o + 0x0800246a 0x0800246a 0x00000002 PAD + 0x0800246c 0x0800246c 0x000000ba Code RO 830 .text.UART_SetConfig stm32f1xx_hal_uart.o + 0x08002526 0x08002526 0x00000002 PAD + 0x08002528 0x08002528 0x00000062 Code RO 852 .text.UART_Start_Receive_IT stm32f1xx_hal_uart.o + 0x0800258a 0x0800258a 0x00000002 PAD + 0x0800258c 0x0800258c 0x00000004 Code RO 74 .text.UsageFault_Handler stm32f1xx_it.o + 0x08002590 0x08002590 0x00000010 Code RO 624 .text.__NVIC_GetPriorityGrouping stm32f1xx_hal_cortex.o + 0x080025a0 0x080025a0 0x00000042 Code RO 626 .text.__NVIC_SetPriority stm32f1xx_hal_cortex.o + 0x080025e2 0x080025e2 0x00000002 PAD + 0x080025e4 0x080025e4 0x0000003c Code RO 620 .text.__NVIC_SetPriorityGrouping stm32f1xx_hal_cortex.o + 0x08002620 0x08002620 0x00000030 Code RO 985 .text.append_bit canform.o + 0x08002650 0x08002650 0x00000040 Code RO 987 .text.append_bits canform.o + 0x08002690 0x08002690 0x000000c4 Code RO 991 .text.apply_bit_stuffing_with_error canform.o + 0x08002754 0x08002754 0x00000076 Code RO 989 .text.compute_crc15 canform.o + 0x080027ca 0x080027ca 0x00000002 PAD + 0x080027cc 0x080027cc 0x00000030 Code RO 993 .text.flip_bit canform.o + 0x080027fc 0x080027fc 0x000003d2 Code RO 995 .text.form_CAN_bitstream_full canform.o + 0x08002bce 0x08002bce 0x00000002 PAD + 0x08002bd0 0x08002bd0 0x000001e8 Code RO 11 .text.main main.o + 0x08002db8 0x08002db8 0x0000004a Code RO 973 .text.wait_exact_ticks canemu.o + 0x08002e02 0x08002e02 0x00000010 Data RO 962 .rodata.AHBPrescTable system_stm32f1xx.o + 0x08002e12 0x08002e12 0x00000008 Data RO 963 .rodata.APBPrescTable system_stm32f1xx.o + 0x08002e1a 0x08002e1a 0x00000010 Data RO 538 .rodata.HAL_RCC_GetSysClockFreq.aPLLMULFactorTable stm32f1xx_hal_rcc.o + 0x08002e2a 0x08002e2a 0x00000002 Data RO 539 .rodata.HAL_RCC_GetSysClockFreq.aPredivFactorTable stm32f1xx_hal_rcc.o + 0x08002e2c 0x08002e2c 0x0000001a Data RO 1072 .rodata.str1.1 modbus.o + 0x08002e46 0x08002e46 0x00000002 PAD + 0x08002e48 0x08002e48 0x00000020 Data RO 1291 Region$$Table anon$$obj.o - Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x08002158, Size: 0x000008f8, Max: 0x00005000, ABSOLUTE) + Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x08002e68, Size: 0x00000c38, Max: 0x00005000, ABSOLUTE) Exec Addr Load Addr Size Type Attr Idx E Section Name Object - 0x20000000 0x08002158 0x00000004 Data RW 812 .data.SystemCoreClock system_stm32f1xx.o - 0x20000004 0x0800215c 0x00000001 Data RW 481 .data.uwTickFreq stm32f1xx_hal.o - 0x20000005 0x0800215d 0x00000003 PAD - 0x20000008 0x08002160 0x00000004 Data RW 480 .data.uwTickPrio stm32f1xx_hal.o - 0x2000000c 0x08002164 0x00000004 PAD - 0x20000010 - 0x00000060 Zero RW 895 .bss c_w.l(libspace.o) - 0x20000070 - 0x00000004 Zero RW 828 .bss.CANEMU_BIT_TICKS canemu.o - 0x20000074 - 0x00000100 Zero RW 852 .bss.can_bits canform.o - 0x20000174 - 0x00000004 Zero RW 849 .bss.can_bits_len canform.o - 0x20000178 - 0x00000001 Zero RW 850 .bss.err_indices_count canform.o - 0x20000179 0x08002164 0x00000003 PAD - 0x2000017c - 0x00000028 Zero RW 17 .bss.hcanemu main.o - 0x200001a4 - 0x00000048 Zero RW 40 .bss.htim2 tim.o - 0x200001ec - 0x00000100 Zero RW 851 .bss.raw_bits canform.o - 0x200002ec - 0x00000004 Zero RW 848 .bss.raw_len canform.o - 0x200002f0 - 0x00000004 Zero RW 482 .bss.uwTick stm32f1xx_hal.o - 0x200002f4 0x08002164 0x00000004 PAD - 0x200002f8 - 0x00000200 Zero RW 2 HEAP startup_stm32f103xb.o - 0x200004f8 - 0x00000400 Zero RW 1 STACK startup_stm32f103xb.o + 0x20000000 0x08002e68 0x00000004 Data RW 961 .data.SystemCoreClock system_stm32f1xx.o + 0x20000004 0x08002e6c 0x00000001 Data RW 499 .data.uwTickFreq stm32f1xx_hal.o + 0x20000005 0x08002e6d 0x00000003 PAD + 0x20000008 0x08002e70 0x00000004 Data RW 498 .data.uwTickPrio stm32f1xx_hal.o + 0x2000000c 0x08002e74 0x00000004 PAD + 0x20000010 - 0x00000060 Zero RW 1156 .bss c_w.l(libspace.o) + 0x20000070 - 0x00000004 Zero RW 977 .bss.CANEMU_BIT_TICKS canemu.o + 0x20000074 - 0x0000003c Zero RW 1070 .bss.MB_DATA modbus.o + 0x200000b0 - 0x00000038 Zero RW 1071 .bss.MB_INFO modbus.o + 0x200000e8 - 0x0000010c Zero RW 1076 .bss.MODBUS_MSG modbus.o + 0x200001f4 - 0x00000103 Zero RW 1114 .bss.RS_Buffer rs_message.o + 0x200002f7 - 0x00000100 Zero RW 1001 .bss.can_bits canform.o + 0x200003f7 0x08002e74 0x00000001 PAD + 0x200003f8 - 0x00000004 Zero RW 998 .bss.can_bits_len canform.o + 0x200003fc - 0x00000001 Zero RW 999 .bss.err_indices_count canform.o + 0x200003fd 0x08002e74 0x00000003 PAD + 0x20000400 - 0x00000004 Zero RW 17 .bss.flag_manual main.o + 0x20000404 - 0x0000002c Zero RW 18 .bss.hcanemu main.o + 0x20000430 - 0x00000028 Zero RW 1069 .bss.hmodbus1 modbus.o + 0x20000458 - 0x00000048 Zero RW 43 .bss.htim2 tim.o + 0x200004a0 - 0x00000048 Zero RW 44 .bss.htim3 tim.o + 0x200004e8 - 0x00000048 Zero RW 58 .bss.huart1 usart.o + 0x20000530 - 0x00000100 Zero RW 1000 .bss.raw_bits canform.o + 0x20000630 - 0x00000004 Zero RW 997 .bss.raw_len canform.o + 0x20000634 - 0x00000004 Zero RW 500 .bss.uwTick stm32f1xx_hal.o + 0x20000638 - 0x00000200 Zero RW 2 HEAP startup_stm32f103xb.o + 0x20000838 - 0x00000400 Zero RW 1 STACK startup_stm32f103xb.o ============================================================================== @@ -2099,26 +2675,31 @@ Image component sizes Code (inc. data) RO Data RW Data ZI Data Debug Object Name - 322 0 0 0 4 2724 canemu.o + 322 0 0 0 4 2746 canemu.o 1452 0 0 0 521 4078 canform.o 182 0 0 0 0 1516 gpio.o - 198 0 0 0 40 2510 main.o + 610 0 0 0 48 2785 main.o + 144 0 26 0 424 15875 modbus.o + 636 0 0 0 259 10566 rs_message.o 64 26 236 0 1536 780 startup_stm32f103xb.o 254 0 0 5 4 5537 stm32f1xx_hal.o 414 0 0 0 0 7488 stm32f1xx_hal_cortex.o + 136 0 0 0 0 6248 stm32f1xx_hal_dma.o 844 0 0 0 0 4192 stm32f1xx_hal_gpio.o 100 0 0 0 0 1176 stm32f1xx_hal_msp.o - 2502 0 18 0 0 7388 stm32f1xx_hal_rcc.o - 1062 0 0 0 0 35467 stm32f1xx_hal_tim.o + 2582 0 18 0 0 7388 stm32f1xx_hal_rcc.o + 1144 0 0 0 0 35467 stm32f1xx_hal_tim.o 220 0 0 0 0 15009 stm32f1xx_hal_tim_ex.o + 1398 0 0 0 0 19913 stm32f1xx_hal_uart.o 34 0 0 0 0 1003 stm32f1xx_it.o - 2 0 16 4 0 1547 system_stm32f1xx.o - 178 0 0 0 72 4433 tim.o + 2 0 24 4 0 1547 system_stm32f1xx.o + 360 0 0 0 144 4755 tim.o + 216 0 0 0 72 4069 usart.o ---------------------------------------------------------------------- - 7874 26 302 12 2188 94848 Object Totals + 11186 26 338 12 3020 152138 Object Totals 0 0 32 0 0 0 (incl. Generated) - 46 0 0 3 11 0 (incl. Padding) + 72 0 2 3 8 0 (incl. Padding) ---------------------------------------------------------------------- @@ -2166,15 +2747,15 @@ Image component sizes Code (inc. data) RO Data RW Data ZI Data Debug - 8230 42 302 12 2284 95092 Grand Totals - 8230 42 302 12 2284 95092 ELF Image Totals - 8230 42 302 12 0 0 ROM Totals + 11542 42 338 12 3116 152282 Grand Totals + 11542 42 338 12 3116 152282 ELF Image Totals + 11542 42 338 12 0 0 ROM Totals ============================================================================== - Total RO Size (Code + RO Data) 8532 ( 8.33kB) - Total RW Size (RW Data + ZI Data) 2296 ( 2.24kB) - Total ROM Size (Code + RO Data + RW Data) 8544 ( 8.34kB) + Total RO Size (Code + RO Data) 11880 ( 11.60kB) + Total RW Size (RW Data + ZI Data) 3128 ( 3.05kB) + Total ROM Size (Code + RO Data + RW Data) 11892 ( 11.61kB) ============================================================================== diff --git a/MDK-ARM/CANEmu/CANEmu_CANEmu.dep b/MDK-ARM/CANEmu/CANEmu_CANEmu.dep index 48df403..62d4ff9 100644 --- a/MDK-ARM/CANEmu/CANEmu_CANEmu.dep +++ b/MDK-ARM/CANEmu/CANEmu_CANEmu.dep @@ -1,10 +1,10 @@ Dependencies for Project 'CANEmu', Target 'CANEmu': (DO NOT MODIFY !) CompilerVersion: 6190000::V6.19::ARMCLANG -F (startup_stm32f103xb.s)(0x68908B02)(--target=arm-arm-none-eabi -mcpu=cortex-m3 -masm=auto -Wa,armasm,--diag_suppress=A1950W -c -gdwarf-4 -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -Wa,armasm,--pd,"__UVISION_VERSION SETA 538" -Wa,armasm,--pd,"_RTE_ SETA 1" -Wa,armasm,--pd,"STM32F10X_MD SETA 1" -Wa,armasm,--pd,"_RTE_ SETA 1" -o canemu/startup_stm32f103xb.o) -F (../Core/Src/main.c)(0x68908B00)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Core/CANEmu -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o canemu/main.o -MD) +F (startup_stm32f103xb.s)(0x6890A5F1)(--target=arm-arm-none-eabi -mcpu=cortex-m3 -masm=auto -Wa,armasm,--diag_suppress=A1950W -c -gdwarf-4 -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -Wa,armasm,--pd,"__UVISION_VERSION SETA 538" -Wa,armasm,--pd,"_RTE_ SETA 1" -Wa,armasm,--pd,"STM32F10X_MD SETA 1" -Wa,armasm,--pd,"_RTE_ SETA 1" -o canemu/startup_stm32f103xb.o) +F (../Core/Src/main.c)(0x6890B104)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Core/CANEmu -I ../Core/Modbus -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o canemu/main.o -MD) I (..\Core\Inc\main.h)(0x68908AFF) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h)(0x675FD78C) -I (..\Core\Inc\stm32f1xx_hal_conf.h)(0x68908AFF) +I (..\Core\Inc\stm32f1xx_hal_conf.h)(0x6890A5EF) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_def.h)(0x675FD78C) I (..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f1xx.h)(0x675FD78C) @@ -31,17 +31,24 @@ I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h)(0x675FD78C) -I (..\Core\Inc\tim.h)(0x68908AFE) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h)(0x675FD78C) +I (..\Core\Inc\tim.h)(0x6890A5EE) +I (..\Core\Inc\usart.h)(0x6890A5EE) I (..\Core\Inc\gpio.h)(0x68908AFE) -I (..\Core\CANEmu\canEmu.h)(0x68908ADB) +I (..\Core\CANEmu\canEmu.h)(0x6890B0F0) I (..\Core\CANEmu\canform.h)(0x68908AC8) I (C:\Keil_v5\ARM\ARMCLANG\include\string.h)(0x67909638) I (C:\Keil_v5\ARM\ARMCLANG\include\stdbool.h)(0x63888F58) -F (../Core/Src/gpio.c)(0x68908AFE)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Core/CANEmu -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o canemu/gpio.o -MD) +I (..\Core\Modbus\rs_message.h)(0x683DA8A8) +I (..\Core\Modbus\modbus.h)(0x683DA8A8) +I (..\Core\Modbus\modbus_config.h)(0x6890A819) +I (..\Core\Modbus\modbus_data.h)(0x6890B15E) +I (..\Core\Modbus\crc_algs.h)(0x683DA8A8) +F (../Core/Src/gpio.c)(0x68908AFE)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Core/CANEmu -I ../Core/Modbus -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o canemu/gpio.o -MD) I (..\Core\Inc\gpio.h)(0x68908AFE) I (..\Core\Inc\main.h)(0x68908AFF) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h)(0x675FD78C) -I (..\Core\Inc\stm32f1xx_hal_conf.h)(0x68908AFF) +I (..\Core\Inc\stm32f1xx_hal_conf.h)(0x6890A5EF) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_def.h)(0x675FD78C) I (..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f1xx.h)(0x675FD78C) @@ -68,11 +75,12 @@ I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h)(0x675FD78C) -F (../Core/Src/tim.c)(0x68908AFE)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Core/CANEmu -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o canemu/tim.o -MD) -I (..\Core\Inc\tim.h)(0x68908AFE) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h)(0x675FD78C) +F (../Core/Src/tim.c)(0x6890A5EE)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Core/CANEmu -I ../Core/Modbus -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o canemu/tim.o -MD) +I (..\Core\Inc\tim.h)(0x6890A5EE) I (..\Core\Inc\main.h)(0x68908AFF) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h)(0x675FD78C) -I (..\Core\Inc\stm32f1xx_hal_conf.h)(0x68908AFF) +I (..\Core\Inc\stm32f1xx_hal_conf.h)(0x6890A5EF) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_def.h)(0x675FD78C) I (..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f1xx.h)(0x675FD78C) @@ -99,10 +107,12 @@ I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h)(0x675FD78C) -F (../Core/Src/stm32f1xx_it.c)(0x68908AFF)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Core/CANEmu -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o canemu/stm32f1xx_it.o -MD) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h)(0x675FD78C) +F (../Core/Src/usart.c)(0x6890A5EE)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Core/CANEmu -I ../Core/Modbus -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o canemu/usart.o -MD) +I (..\Core\Inc\usart.h)(0x6890A5EE) I (..\Core\Inc\main.h)(0x68908AFF) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h)(0x675FD78C) -I (..\Core\Inc\stm32f1xx_hal_conf.h)(0x68908AFF) +I (..\Core\Inc\stm32f1xx_hal_conf.h)(0x6890A5EF) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_def.h)(0x675FD78C) I (..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f1xx.h)(0x675FD78C) @@ -129,11 +139,43 @@ I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h)(0x675FD78C) +F (../Core/Src/stm32f1xx_it.c)(0x68908AFF)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Core/CANEmu -I ../Core/Modbus -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o canemu/stm32f1xx_it.o -MD) +I (..\Core\Inc\main.h)(0x68908AFF) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h)(0x675FD78C) +I (..\Core\Inc\stm32f1xx_hal_conf.h)(0x6890A5EF) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_def.h)(0x675FD78C) +I (..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f1xx.h)(0x675FD78C) +I (..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f103xb.h)(0x675FD78C) +I (..\Drivers\CMSIS\Include\core_cm3.h)(0x675FD756) +I (C:\Keil_v5\ARM\ARMCLANG\include\stdint.h)(0x662759F5) +I (..\Drivers\CMSIS\Include\cmsis_version.h)(0x675FD756) +I (..\Drivers\CMSIS\Include\cmsis_compiler.h)(0x675FD756) +I (..\Drivers\CMSIS\Include\cmsis_armclang.h)(0x675FD756) +I (C:\Keil_v5\ARM\ARMCLANG\include\arm_compat.h)(0x63888F58) +I (C:\Keil_v5\ARM\ARMCLANG\include\arm_acle.h)(0x63888F58) +I (..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\system_stm32f1xx.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h)(0x675FD78C) +I (C:\Keil_v5\ARM\ARMCLANG\include\stddef.h)(0x63888F58) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc_ex.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_gpio.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_gpio_ex.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_exti.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_dma.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_dma_ex.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_cortex.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h)(0x675FD78C) I (..\Core\Inc\stm32f1xx_it.h)(0x68908AFF) -F (../Core/Src/stm32f1xx_hal_msp.c)(0x68908AFF)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Core/CANEmu -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o canemu/stm32f1xx_hal_msp.o -MD) +F (../Core/Src/stm32f1xx_hal_msp.c)(0x68908AFF)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Core/CANEmu -I ../Core/Modbus -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o canemu/stm32f1xx_hal_msp.o -MD) I (..\Core\Inc\main.h)(0x68908AFF) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h)(0x675FD78C) -I (..\Core\Inc\stm32f1xx_hal_conf.h)(0x68908AFF) +I (..\Core\Inc\stm32f1xx_hal_conf.h)(0x6890A5EF) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_def.h)(0x675FD78C) I (..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f1xx.h)(0x675FD78C) @@ -160,9 +202,10 @@ I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h)(0x675FD78C) -F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c)(0x675FD78C)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Core/CANEmu -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o canemu/stm32f1xx_hal_gpio_ex.o -MD) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h)(0x675FD78C) +F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c)(0x675FD78C)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Core/CANEmu -I ../Core/Modbus -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o canemu/stm32f1xx_hal_gpio_ex.o -MD) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h)(0x675FD78C) -I (..\Core\Inc\stm32f1xx_hal_conf.h)(0x68908AFF) +I (..\Core\Inc\stm32f1xx_hal_conf.h)(0x6890A5EF) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_def.h)(0x675FD78C) I (..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f1xx.h)(0x675FD78C) @@ -189,9 +232,10 @@ I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h)(0x675FD78C) -F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c)(0x675FD78C)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Core/CANEmu -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o canemu/stm32f1xx_hal_tim.o -MD) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h)(0x675FD78C) +F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c)(0x675FD78C)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Core/CANEmu -I ../Core/Modbus -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o canemu/stm32f1xx_hal_tim.o -MD) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h)(0x675FD78C) -I (..\Core\Inc\stm32f1xx_hal_conf.h)(0x68908AFF) +I (..\Core\Inc\stm32f1xx_hal_conf.h)(0x6890A5EF) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_def.h)(0x675FD78C) I (..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f1xx.h)(0x675FD78C) @@ -218,9 +262,10 @@ I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h)(0x675FD78C) -F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c)(0x675FD78C)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Core/CANEmu -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o canemu/stm32f1xx_hal_tim_ex.o -MD) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h)(0x675FD78C) +F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c)(0x675FD78C)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Core/CANEmu -I ../Core/Modbus -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o canemu/stm32f1xx_hal_tim_ex.o -MD) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h)(0x675FD78C) -I (..\Core\Inc\stm32f1xx_hal_conf.h)(0x68908AFF) +I (..\Core\Inc\stm32f1xx_hal_conf.h)(0x6890A5EF) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_def.h)(0x675FD78C) I (..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f1xx.h)(0x675FD78C) @@ -247,9 +292,10 @@ I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h)(0x675FD78C) -F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c)(0x675FD78C)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Core/CANEmu -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o canemu/stm32f1xx_hal.o -MD) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h)(0x675FD78C) +F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c)(0x675FD78C)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Core/CANEmu -I ../Core/Modbus -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o canemu/stm32f1xx_hal.o -MD) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h)(0x675FD78C) -I (..\Core\Inc\stm32f1xx_hal_conf.h)(0x68908AFF) +I (..\Core\Inc\stm32f1xx_hal_conf.h)(0x6890A5EF) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_def.h)(0x675FD78C) I (..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f1xx.h)(0x675FD78C) @@ -276,9 +322,10 @@ I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h)(0x675FD78C) -F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c)(0x675FD78C)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Core/CANEmu -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o canemu/stm32f1xx_hal_rcc.o -MD) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h)(0x675FD78C) +F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c)(0x675FD78C)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Core/CANEmu -I ../Core/Modbus -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o canemu/stm32f1xx_hal_rcc.o -MD) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h)(0x675FD78C) -I (..\Core\Inc\stm32f1xx_hal_conf.h)(0x68908AFF) +I (..\Core\Inc\stm32f1xx_hal_conf.h)(0x6890A5EF) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_def.h)(0x675FD78C) I (..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f1xx.h)(0x675FD78C) @@ -305,9 +352,10 @@ I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h)(0x675FD78C) -F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c)(0x675FD78C)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Core/CANEmu -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o canemu/stm32f1xx_hal_rcc_ex.o -MD) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h)(0x675FD78C) +F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c)(0x675FD78C)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Core/CANEmu -I ../Core/Modbus -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o canemu/stm32f1xx_hal_rcc_ex.o -MD) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h)(0x675FD78C) -I (..\Core\Inc\stm32f1xx_hal_conf.h)(0x68908AFF) +I (..\Core\Inc\stm32f1xx_hal_conf.h)(0x6890A5EF) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_def.h)(0x675FD78C) I (..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f1xx.h)(0x675FD78C) @@ -334,9 +382,10 @@ I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h)(0x675FD78C) -F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c)(0x675FD78C)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Core/CANEmu -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o canemu/stm32f1xx_hal_gpio.o -MD) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h)(0x675FD78C) +F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c)(0x675FD78C)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Core/CANEmu -I ../Core/Modbus -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o canemu/stm32f1xx_hal_gpio.o -MD) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h)(0x675FD78C) -I (..\Core\Inc\stm32f1xx_hal_conf.h)(0x68908AFF) +I (..\Core\Inc\stm32f1xx_hal_conf.h)(0x6890A5EF) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_def.h)(0x675FD78C) I (..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f1xx.h)(0x675FD78C) @@ -363,9 +412,10 @@ I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h)(0x675FD78C) -F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c)(0x675FD78C)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Core/CANEmu -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o canemu/stm32f1xx_hal_dma.o -MD) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h)(0x675FD78C) +F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c)(0x675FD78C)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Core/CANEmu -I ../Core/Modbus -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o canemu/stm32f1xx_hal_dma.o -MD) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h)(0x675FD78C) -I (..\Core\Inc\stm32f1xx_hal_conf.h)(0x68908AFF) +I (..\Core\Inc\stm32f1xx_hal_conf.h)(0x6890A5EF) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_def.h)(0x675FD78C) I (..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f1xx.h)(0x675FD78C) @@ -392,9 +442,10 @@ I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h)(0x675FD78C) -F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c)(0x675FD78C)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Core/CANEmu -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o canemu/stm32f1xx_hal_cortex.o -MD) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h)(0x675FD78C) +F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c)(0x675FD78C)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Core/CANEmu -I ../Core/Modbus -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o canemu/stm32f1xx_hal_cortex.o -MD) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h)(0x675FD78C) -I (..\Core\Inc\stm32f1xx_hal_conf.h)(0x68908AFF) +I (..\Core\Inc\stm32f1xx_hal_conf.h)(0x6890A5EF) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_def.h)(0x675FD78C) I (..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f1xx.h)(0x675FD78C) @@ -421,9 +472,10 @@ I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h)(0x675FD78C) -F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c)(0x675FD78C)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Core/CANEmu -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o canemu/stm32f1xx_hal_pwr.o -MD) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h)(0x675FD78C) +F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c)(0x675FD78C)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Core/CANEmu -I ../Core/Modbus -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o canemu/stm32f1xx_hal_pwr.o -MD) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h)(0x675FD78C) -I (..\Core\Inc\stm32f1xx_hal_conf.h)(0x68908AFF) +I (..\Core\Inc\stm32f1xx_hal_conf.h)(0x6890A5EF) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_def.h)(0x675FD78C) I (..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f1xx.h)(0x675FD78C) @@ -450,9 +502,10 @@ I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h)(0x675FD78C) -F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c)(0x675FD78C)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Core/CANEmu -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o canemu/stm32f1xx_hal_flash.o -MD) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h)(0x675FD78C) +F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c)(0x675FD78C)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Core/CANEmu -I ../Core/Modbus -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o canemu/stm32f1xx_hal_flash.o -MD) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h)(0x675FD78C) -I (..\Core\Inc\stm32f1xx_hal_conf.h)(0x68908AFF) +I (..\Core\Inc\stm32f1xx_hal_conf.h)(0x6890A5EF) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_def.h)(0x675FD78C) I (..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f1xx.h)(0x675FD78C) @@ -479,9 +532,10 @@ I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h)(0x675FD78C) -F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c)(0x675FD78C)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Core/CANEmu -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o canemu/stm32f1xx_hal_flash_ex.o -MD) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h)(0x675FD78C) +F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c)(0x675FD78C)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Core/CANEmu -I ../Core/Modbus -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o canemu/stm32f1xx_hal_flash_ex.o -MD) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h)(0x675FD78C) -I (..\Core\Inc\stm32f1xx_hal_conf.h)(0x68908AFF) +I (..\Core\Inc\stm32f1xx_hal_conf.h)(0x6890A5EF) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_def.h)(0x675FD78C) I (..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f1xx.h)(0x675FD78C) @@ -508,9 +562,10 @@ I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h)(0x675FD78C) -F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c)(0x675FD78C)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Core/CANEmu -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o canemu/stm32f1xx_hal_exti.o -MD) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h)(0x675FD78C) +F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c)(0x675FD78C)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Core/CANEmu -I ../Core/Modbus -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o canemu/stm32f1xx_hal_exti.o -MD) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h)(0x675FD78C) -I (..\Core\Inc\stm32f1xx_hal_conf.h)(0x68908AFF) +I (..\Core\Inc\stm32f1xx_hal_conf.h)(0x6890A5EF) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_def.h)(0x675FD78C) I (..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f1xx.h)(0x675FD78C) @@ -537,7 +592,38 @@ I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h)(0x675FD78C) -F (../Core/Src/system_stm32f1xx.c)(0x675FD78C)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Core/CANEmu -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o canemu/system_stm32f1xx.o -MD) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h)(0x675FD78C) +F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c)(0x675FD78C)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Core/CANEmu -I ../Core/Modbus -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o canemu/stm32f1xx_hal_uart.o -MD) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h)(0x675FD78C) +I (..\Core\Inc\stm32f1xx_hal_conf.h)(0x6890A5EF) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_def.h)(0x675FD78C) +I (..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f1xx.h)(0x675FD78C) +I (..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f103xb.h)(0x675FD78C) +I (..\Drivers\CMSIS\Include\core_cm3.h)(0x675FD756) +I (C:\Keil_v5\ARM\ARMCLANG\include\stdint.h)(0x662759F5) +I (..\Drivers\CMSIS\Include\cmsis_version.h)(0x675FD756) +I (..\Drivers\CMSIS\Include\cmsis_compiler.h)(0x675FD756) +I (..\Drivers\CMSIS\Include\cmsis_armclang.h)(0x675FD756) +I (C:\Keil_v5\ARM\ARMCLANG\include\arm_compat.h)(0x63888F58) +I (C:\Keil_v5\ARM\ARMCLANG\include\arm_acle.h)(0x63888F58) +I (..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\system_stm32f1xx.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h)(0x675FD78C) +I (C:\Keil_v5\ARM\ARMCLANG\include\stddef.h)(0x63888F58) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc_ex.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_gpio.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_gpio_ex.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_exti.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_dma.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_dma_ex.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_cortex.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h)(0x675FD78C) +F (../Core/Src/system_stm32f1xx.c)(0x675FD78C)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Core/CANEmu -I ../Core/Modbus -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o canemu/system_stm32f1xx.o -MD) I (..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f1xx.h)(0x675FD78C) I (..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f103xb.h)(0x675FD78C) I (..\Drivers\CMSIS\Include\core_cm3.h)(0x675FD756) @@ -549,7 +635,7 @@ I (C:\Keil_v5\ARM\ARMCLANG\include\arm_compat.h)(0x63888F58) I (C:\Keil_v5\ARM\ARMCLANG\include\arm_acle.h)(0x63888F58) I (..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\system_stm32f1xx.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h)(0x675FD78C) -I (..\Core\Inc\stm32f1xx_hal_conf.h)(0x68908AFF) +I (..\Core\Inc\stm32f1xx_hal_conf.h)(0x6890A5EF) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_def.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h)(0x675FD78C) @@ -566,12 +652,13 @@ I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h)(0x675FD78C) -F (..\Core\CANEmu\canEmu.c)(0x68908AE2)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Core/CANEmu -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o canemu/canemu.o -MD) -I (..\Core\CANEmu\canEmu.h)(0x68908ADB) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h)(0x675FD78C) +F (..\Core\CANEmu\canEmu.c)(0x68908AE2)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Core/CANEmu -I ../Core/Modbus -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o canemu/canemu.o -MD) +I (..\Core\CANEmu\canEmu.h)(0x6890B0F0) I (..\Core\CANEmu\canform.h)(0x68908AC8) I (..\Core\Inc\main.h)(0x68908AFF) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h)(0x675FD78C) -I (..\Core\Inc\stm32f1xx_hal_conf.h)(0x68908AFF) +I (..\Core\Inc\stm32f1xx_hal_conf.h)(0x6890A5EF) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_def.h)(0x675FD78C) I (..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f1xx.h)(0x675FD78C) @@ -598,15 +685,16 @@ I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h)(0x675FD78C) I (C:\Keil_v5\ARM\ARMCLANG\include\string.h)(0x67909638) I (C:\Keil_v5\ARM\ARMCLANG\include\stdbool.h)(0x63888F58) -I (..\Core\Inc\tim.h)(0x68908AFE) -F (..\Core\CANEmu\canEmu.h)(0x68908ADB)() -F (..\Core\CANEmu\canform.c)(0x68909028)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Core/CANEmu -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o canemu/canform.o -MD) +I (..\Core\Inc\tim.h)(0x6890A5EE) +F (..\Core\CANEmu\canEmu.h)(0x6890B0F0)() +F (..\Core\CANEmu\canform.c)(0x68909028)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Core/CANEmu -I ../Core/Modbus -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o canemu/canform.o -MD) I (..\Core\CANEmu\canform.h)(0x68908AC8) I (..\Core\Inc\main.h)(0x68908AFF) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h)(0x675FD78C) -I (..\Core\Inc\stm32f1xx_hal_conf.h)(0x68908AFF) +I (..\Core\Inc\stm32f1xx_hal_conf.h)(0x6890A5EF) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_def.h)(0x675FD78C) I (..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f1xx.h)(0x675FD78C) @@ -633,6 +721,114 @@ I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h)(0x675FD78C) I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h)(0x675FD78C) I (C:\Keil_v5\ARM\ARMCLANG\include\string.h)(0x67909638) I (C:\Keil_v5\ARM\ARMCLANG\include\stdbool.h)(0x63888F58) F (..\Core\CANEmu\canform.h)(0x68908AC8)() +F (..\Core\Modbus\crc_algs.c)(0x683DA8A8)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Core/CANEmu -I ../Core/Modbus -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o canemu/crc_algs.o -MD) +I (..\Core\Modbus\crc_algs.h)(0x683DA8A8) +I (..\Core\Modbus\modbus_config.h)(0x6890A819) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h)(0x675FD78C) +I (..\Core\Inc\stm32f1xx_hal_conf.h)(0x6890A5EF) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_def.h)(0x675FD78C) +I (..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f1xx.h)(0x675FD78C) +I (..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f103xb.h)(0x675FD78C) +I (..\Drivers\CMSIS\Include\core_cm3.h)(0x675FD756) +I (C:\Keil_v5\ARM\ARMCLANG\include\stdint.h)(0x662759F5) +I (..\Drivers\CMSIS\Include\cmsis_version.h)(0x675FD756) +I (..\Drivers\CMSIS\Include\cmsis_compiler.h)(0x675FD756) +I (..\Drivers\CMSIS\Include\cmsis_armclang.h)(0x675FD756) +I (C:\Keil_v5\ARM\ARMCLANG\include\arm_compat.h)(0x63888F58) +I (C:\Keil_v5\ARM\ARMCLANG\include\arm_acle.h)(0x63888F58) +I (..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\system_stm32f1xx.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h)(0x675FD78C) +I (C:\Keil_v5\ARM\ARMCLANG\include\stddef.h)(0x63888F58) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc_ex.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_gpio.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_gpio_ex.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_exti.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_dma.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_dma_ex.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_cortex.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h)(0x675FD78C) +F (..\Core\Modbus\crc_algs.h)(0x683DA8A8)() +F (..\Core\Modbus\modbus.c)(0x683DA8A8)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Core/CANEmu -I ../Core/Modbus -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o canemu/modbus.o -MD) +I (..\Core\Modbus\rs_message.h)(0x683DA8A8) +I (..\Core\Modbus\modbus.h)(0x683DA8A8) +I (..\Core\Modbus\modbus_config.h)(0x6890A819) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h)(0x675FD78C) +I (..\Core\Inc\stm32f1xx_hal_conf.h)(0x6890A5EF) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_def.h)(0x675FD78C) +I (..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f1xx.h)(0x675FD78C) +I (..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f103xb.h)(0x675FD78C) +I (..\Drivers\CMSIS\Include\core_cm3.h)(0x675FD756) +I (C:\Keil_v5\ARM\ARMCLANG\include\stdint.h)(0x662759F5) +I (..\Drivers\CMSIS\Include\cmsis_version.h)(0x675FD756) +I (..\Drivers\CMSIS\Include\cmsis_compiler.h)(0x675FD756) +I (..\Drivers\CMSIS\Include\cmsis_armclang.h)(0x675FD756) +I (C:\Keil_v5\ARM\ARMCLANG\include\arm_compat.h)(0x63888F58) +I (C:\Keil_v5\ARM\ARMCLANG\include\arm_acle.h)(0x63888F58) +I (..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\system_stm32f1xx.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h)(0x675FD78C) +I (C:\Keil_v5\ARM\ARMCLANG\include\stddef.h)(0x63888F58) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc_ex.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_gpio.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_gpio_ex.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_exti.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_dma.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_dma_ex.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_cortex.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h)(0x675FD78C) +I (..\Core\Modbus\modbus_data.h)(0x6890B15E) +I (..\Core\Modbus\crc_algs.h)(0x683DA8A8) +F (..\Core\Modbus\modbus.h)(0x683DA8A8)() +F (..\Core\Modbus\modbus_config.h)(0x6890A819)() +F (..\Core\Modbus\modbus_data.h)(0x6890B15E)() +F (..\Core\Modbus\rs_message.c)(0x683DA8A8)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m3 -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-4 -O0 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../Core/CANEmu -I ../Core/Modbus -I./RTE/_CANEmu -IC:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS/5.9.0/CMSIS/Core/Include -IC:/Users/I/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.0/Device/Include -D__UVISION_VERSION="538" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o canemu/rs_message.o -MD) +I (..\Core\Modbus\rs_message.h)(0x683DA8A8) +I (..\Core\Modbus\modbus.h)(0x683DA8A8) +I (..\Core\Modbus\modbus_config.h)(0x6890A819) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h)(0x675FD78C) +I (..\Core\Inc\stm32f1xx_hal_conf.h)(0x6890A5EF) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_def.h)(0x675FD78C) +I (..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f1xx.h)(0x675FD78C) +I (..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f103xb.h)(0x675FD78C) +I (..\Drivers\CMSIS\Include\core_cm3.h)(0x675FD756) +I (C:\Keil_v5\ARM\ARMCLANG\include\stdint.h)(0x662759F5) +I (..\Drivers\CMSIS\Include\cmsis_version.h)(0x675FD756) +I (..\Drivers\CMSIS\Include\cmsis_compiler.h)(0x675FD756) +I (..\Drivers\CMSIS\Include\cmsis_armclang.h)(0x675FD756) +I (C:\Keil_v5\ARM\ARMCLANG\include\arm_compat.h)(0x63888F58) +I (C:\Keil_v5\ARM\ARMCLANG\include\arm_acle.h)(0x63888F58) +I (..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\system_stm32f1xx.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h)(0x675FD78C) +I (C:\Keil_v5\ARM\ARMCLANG\include\stddef.h)(0x63888F58) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc_ex.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_gpio.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_gpio_ex.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_exti.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_dma.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_dma_ex.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_cortex.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h)(0x675FD78C) +I (..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h)(0x675FD78C) +I (..\Core\Modbus\modbus_data.h)(0x6890B15E) +I (..\Core\Modbus\crc_algs.h)(0x683DA8A8) +F (..\Core\Modbus\rs_message.h)(0x683DA8A8)() diff --git a/MDK-ARM/CANEmu/canemu.d b/MDK-ARM/CANEmu/canemu.d index 68c7f87..9f777d2 100644 --- a/MDK-ARM/CANEmu/canemu.d +++ b/MDK-ARM/CANEmu/canemu.d @@ -28,5 +28,6 @@ canemu/canemu.o: ..\Core\CANEmu\canEmu.c ..\Core\CANEmu\canEmu.h \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h \ C:\Keil_v5\ARM\ARMCLANG\Bin\..\include\string.h \ C:\Keil_v5\ARM\ARMCLANG\Bin\..\include\stdbool.h ..\Core\Inc\tim.h diff --git a/MDK-ARM/CANEmu/canemu.o b/MDK-ARM/CANEmu/canemu.o index 20b7d35..61f3bf5 100644 Binary files a/MDK-ARM/CANEmu/canemu.o and b/MDK-ARM/CANEmu/canemu.o differ diff --git a/MDK-ARM/CANEmu/canform.d b/MDK-ARM/CANEmu/canform.d index f954f12..8eeb6c0 100644 --- a/MDK-ARM/CANEmu/canform.d +++ b/MDK-ARM/CANEmu/canform.d @@ -27,5 +27,6 @@ canemu/canform.o: ..\Core\CANEmu\canform.c ..\Core\CANEmu\canform.h \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h \ C:\Keil_v5\ARM\ARMCLANG\Bin\..\include\string.h \ C:\Keil_v5\ARM\ARMCLANG\Bin\..\include\stdbool.h diff --git a/MDK-ARM/CANEmu/crc_algs.d b/MDK-ARM/CANEmu/crc_algs.d new file mode 100644 index 0000000..bae8ad7 --- /dev/null +++ b/MDK-ARM/CANEmu/crc_algs.d @@ -0,0 +1,31 @@ +canemu/crc_algs.o: ..\Core\Modbus\crc_algs.c ..\Core\Modbus\crc_algs.h \ + ..\Core\Modbus\modbus_config.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h \ + ..\Core\Inc\stm32f1xx_hal_conf.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_def.h \ + ..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f1xx.h \ + ..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f103xb.h \ + ..\Drivers\CMSIS\Include\core_cm3.h \ + C:\Keil_v5\ARM\ARMCLANG\Bin\..\include\stdint.h \ + ..\Drivers\CMSIS\Include\cmsis_version.h \ + ..\Drivers\CMSIS\Include\cmsis_compiler.h \ + ..\Drivers\CMSIS\Include\cmsis_armclang.h \ + C:\Keil_v5\ARM\ARMCLANG\Bin\..\include\arm_compat.h \ + C:\Keil_v5\ARM\ARMCLANG\Bin\..\include\arm_acle.h \ + ..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\system_stm32f1xx.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h \ + C:\Keil_v5\ARM\ARMCLANG\Bin\..\include\stddef.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc_ex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_gpio.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_gpio_ex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_exti.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_dma.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_dma_ex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_cortex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h diff --git a/MDK-ARM/CANEmu/crc_algs.o b/MDK-ARM/CANEmu/crc_algs.o new file mode 100644 index 0000000..9a99e55 Binary files /dev/null and b/MDK-ARM/CANEmu/crc_algs.o differ diff --git a/MDK-ARM/CANEmu/gpio.d b/MDK-ARM/CANEmu/gpio.d index 64992ce..59550e4 100644 --- a/MDK-ARM/CANEmu/gpio.d +++ b/MDK-ARM/CANEmu/gpio.d @@ -26,4 +26,5 @@ canemu/gpio.o: ..\Core\Src\gpio.c ..\Core\Inc\gpio.h ..\Core\Inc\main.h \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h \ - ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h diff --git a/MDK-ARM/CANEmu/main.d b/MDK-ARM/CANEmu/main.d index 61fb2e8..df8faae 100644 --- a/MDK-ARM/CANEmu/main.d +++ b/MDK-ARM/CANEmu/main.d @@ -27,7 +27,11 @@ canemu/main.o: ..\Core\Src\main.c ..\Core\Inc\main.h \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h \ - ..\Core\Inc\tim.h ..\Core\Inc\gpio.h ..\Core\CANEmu\canEmu.h \ - ..\Core\CANEmu\canform.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h \ + ..\Core\Inc\tim.h ..\Core\Inc\usart.h ..\Core\Inc\gpio.h \ + ..\Core\CANEmu\canEmu.h ..\Core\CANEmu\canform.h \ C:\Keil_v5\ARM\ARMCLANG\Bin\..\include\string.h \ - C:\Keil_v5\ARM\ARMCLANG\Bin\..\include\stdbool.h + C:\Keil_v5\ARM\ARMCLANG\Bin\..\include\stdbool.h \ + ..\Core\Modbus\rs_message.h ..\Core\Modbus\modbus.h \ + ..\Core\Modbus\modbus_config.h ..\Core\Modbus\modbus_data.h \ + ..\Core\Modbus\crc_algs.h diff --git a/MDK-ARM/CANEmu/main.o b/MDK-ARM/CANEmu/main.o index 047bba6..f80398c 100644 Binary files a/MDK-ARM/CANEmu/main.o and b/MDK-ARM/CANEmu/main.o differ diff --git a/MDK-ARM/CANEmu/modbus.d b/MDK-ARM/CANEmu/modbus.d new file mode 100644 index 0000000..d941870 --- /dev/null +++ b/MDK-ARM/CANEmu/modbus.d @@ -0,0 +1,32 @@ +canemu/modbus.o: ..\Core\Modbus\modbus.c ..\Core\Modbus\rs_message.h \ + ..\Core\Modbus\modbus.h ..\Core\Modbus\modbus_config.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h \ + ..\Core\Inc\stm32f1xx_hal_conf.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_def.h \ + ..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f1xx.h \ + ..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f103xb.h \ + ..\Drivers\CMSIS\Include\core_cm3.h \ + C:\Keil_v5\ARM\ARMCLANG\Bin\..\include\stdint.h \ + ..\Drivers\CMSIS\Include\cmsis_version.h \ + ..\Drivers\CMSIS\Include\cmsis_compiler.h \ + ..\Drivers\CMSIS\Include\cmsis_armclang.h \ + C:\Keil_v5\ARM\ARMCLANG\Bin\..\include\arm_compat.h \ + C:\Keil_v5\ARM\ARMCLANG\Bin\..\include\arm_acle.h \ + ..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\system_stm32f1xx.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h \ + C:\Keil_v5\ARM\ARMCLANG\Bin\..\include\stddef.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc_ex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_gpio.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_gpio_ex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_exti.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_dma.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_dma_ex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_cortex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h \ + ..\Core\Modbus\modbus_data.h ..\Core\Modbus\crc_algs.h diff --git a/MDK-ARM/CANEmu/modbus.o b/MDK-ARM/CANEmu/modbus.o new file mode 100644 index 0000000..c587f28 Binary files /dev/null and b/MDK-ARM/CANEmu/modbus.o differ diff --git a/MDK-ARM/CANEmu/rs_message.d b/MDK-ARM/CANEmu/rs_message.d new file mode 100644 index 0000000..853cf74 --- /dev/null +++ b/MDK-ARM/CANEmu/rs_message.d @@ -0,0 +1,33 @@ +canemu/rs_message.o: ..\Core\Modbus\rs_message.c \ + ..\Core\Modbus\rs_message.h ..\Core\Modbus\modbus.h \ + ..\Core\Modbus\modbus_config.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h \ + ..\Core\Inc\stm32f1xx_hal_conf.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_def.h \ + ..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f1xx.h \ + ..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f103xb.h \ + ..\Drivers\CMSIS\Include\core_cm3.h \ + C:\Keil_v5\ARM\ARMCLANG\Bin\..\include\stdint.h \ + ..\Drivers\CMSIS\Include\cmsis_version.h \ + ..\Drivers\CMSIS\Include\cmsis_compiler.h \ + ..\Drivers\CMSIS\Include\cmsis_armclang.h \ + C:\Keil_v5\ARM\ARMCLANG\Bin\..\include\arm_compat.h \ + C:\Keil_v5\ARM\ARMCLANG\Bin\..\include\arm_acle.h \ + ..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\system_stm32f1xx.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h \ + C:\Keil_v5\ARM\ARMCLANG\Bin\..\include\stddef.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc_ex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_gpio.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_gpio_ex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_exti.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_dma.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_dma_ex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_cortex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h \ + ..\Core\Modbus\modbus_data.h ..\Core\Modbus\crc_algs.h diff --git a/MDK-ARM/CANEmu/rs_message.o b/MDK-ARM/CANEmu/rs_message.o new file mode 100644 index 0000000..74d43bb Binary files /dev/null and b/MDK-ARM/CANEmu/rs_message.o differ diff --git a/MDK-ARM/CANEmu/stm32f1xx_hal.d b/MDK-ARM/CANEmu/stm32f1xx_hal.d index 0220037..da5654c 100644 --- a/MDK-ARM/CANEmu/stm32f1xx_hal.d +++ b/MDK-ARM/CANEmu/stm32f1xx_hal.d @@ -27,4 +27,5 @@ canemu/stm32f1xx_hal.o: \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h \ - ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h diff --git a/MDK-ARM/CANEmu/stm32f1xx_hal_cortex.d b/MDK-ARM/CANEmu/stm32f1xx_hal_cortex.d index bd24d58..f6cdd74 100644 --- a/MDK-ARM/CANEmu/stm32f1xx_hal_cortex.d +++ b/MDK-ARM/CANEmu/stm32f1xx_hal_cortex.d @@ -27,4 +27,5 @@ canemu/stm32f1xx_hal_cortex.o: \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h \ - ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h diff --git a/MDK-ARM/CANEmu/stm32f1xx_hal_dma.d b/MDK-ARM/CANEmu/stm32f1xx_hal_dma.d index 77efb03..6bfb6e5 100644 --- a/MDK-ARM/CANEmu/stm32f1xx_hal_dma.d +++ b/MDK-ARM/CANEmu/stm32f1xx_hal_dma.d @@ -27,4 +27,5 @@ canemu/stm32f1xx_hal_dma.o: \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h \ - ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h diff --git a/MDK-ARM/CANEmu/stm32f1xx_hal_exti.d b/MDK-ARM/CANEmu/stm32f1xx_hal_exti.d index fe59e0d..e3bb6c5 100644 --- a/MDK-ARM/CANEmu/stm32f1xx_hal_exti.d +++ b/MDK-ARM/CANEmu/stm32f1xx_hal_exti.d @@ -27,4 +27,5 @@ canemu/stm32f1xx_hal_exti.o: \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h \ - ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h diff --git a/MDK-ARM/CANEmu/stm32f1xx_hal_flash.d b/MDK-ARM/CANEmu/stm32f1xx_hal_flash.d index 899f9ac..a9da834 100644 --- a/MDK-ARM/CANEmu/stm32f1xx_hal_flash.d +++ b/MDK-ARM/CANEmu/stm32f1xx_hal_flash.d @@ -27,4 +27,5 @@ canemu/stm32f1xx_hal_flash.o: \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h \ - ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h diff --git a/MDK-ARM/CANEmu/stm32f1xx_hal_flash_ex.d b/MDK-ARM/CANEmu/stm32f1xx_hal_flash_ex.d index 71f7c0a..56361d2 100644 --- a/MDK-ARM/CANEmu/stm32f1xx_hal_flash_ex.d +++ b/MDK-ARM/CANEmu/stm32f1xx_hal_flash_ex.d @@ -27,4 +27,5 @@ canemu/stm32f1xx_hal_flash_ex.o: \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h \ - ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h diff --git a/MDK-ARM/CANEmu/stm32f1xx_hal_gpio.d b/MDK-ARM/CANEmu/stm32f1xx_hal_gpio.d index cef85ee..649c54a 100644 --- a/MDK-ARM/CANEmu/stm32f1xx_hal_gpio.d +++ b/MDK-ARM/CANEmu/stm32f1xx_hal_gpio.d @@ -27,4 +27,5 @@ canemu/stm32f1xx_hal_gpio.o: \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h \ - ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h diff --git a/MDK-ARM/CANEmu/stm32f1xx_hal_gpio_ex.d b/MDK-ARM/CANEmu/stm32f1xx_hal_gpio_ex.d index f16cf82..f15ec95 100644 --- a/MDK-ARM/CANEmu/stm32f1xx_hal_gpio_ex.d +++ b/MDK-ARM/CANEmu/stm32f1xx_hal_gpio_ex.d @@ -27,4 +27,5 @@ canemu/stm32f1xx_hal_gpio_ex.o: \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h \ - ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h diff --git a/MDK-ARM/CANEmu/stm32f1xx_hal_msp.d b/MDK-ARM/CANEmu/stm32f1xx_hal_msp.d index 3a5b397..1101827 100644 --- a/MDK-ARM/CANEmu/stm32f1xx_hal_msp.d +++ b/MDK-ARM/CANEmu/stm32f1xx_hal_msp.d @@ -26,4 +26,5 @@ canemu/stm32f1xx_hal_msp.o: ..\Core\Src\stm32f1xx_hal_msp.c \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h \ - ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h diff --git a/MDK-ARM/CANEmu/stm32f1xx_hal_pwr.d b/MDK-ARM/CANEmu/stm32f1xx_hal_pwr.d index e2f9f8c..4cb86be 100644 --- a/MDK-ARM/CANEmu/stm32f1xx_hal_pwr.d +++ b/MDK-ARM/CANEmu/stm32f1xx_hal_pwr.d @@ -27,4 +27,5 @@ canemu/stm32f1xx_hal_pwr.o: \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h \ - ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h diff --git a/MDK-ARM/CANEmu/stm32f1xx_hal_rcc.d b/MDK-ARM/CANEmu/stm32f1xx_hal_rcc.d index 460921c..e8c74ce 100644 --- a/MDK-ARM/CANEmu/stm32f1xx_hal_rcc.d +++ b/MDK-ARM/CANEmu/stm32f1xx_hal_rcc.d @@ -27,4 +27,5 @@ canemu/stm32f1xx_hal_rcc.o: \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h \ - ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h diff --git a/MDK-ARM/CANEmu/stm32f1xx_hal_rcc_ex.d b/MDK-ARM/CANEmu/stm32f1xx_hal_rcc_ex.d index 87b7d82..07314a1 100644 --- a/MDK-ARM/CANEmu/stm32f1xx_hal_rcc_ex.d +++ b/MDK-ARM/CANEmu/stm32f1xx_hal_rcc_ex.d @@ -27,4 +27,5 @@ canemu/stm32f1xx_hal_rcc_ex.o: \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h \ - ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h diff --git a/MDK-ARM/CANEmu/stm32f1xx_hal_tim.d b/MDK-ARM/CANEmu/stm32f1xx_hal_tim.d index 81a0ff6..7cdd477 100644 --- a/MDK-ARM/CANEmu/stm32f1xx_hal_tim.d +++ b/MDK-ARM/CANEmu/stm32f1xx_hal_tim.d @@ -27,4 +27,5 @@ canemu/stm32f1xx_hal_tim.o: \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h \ - ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h diff --git a/MDK-ARM/CANEmu/stm32f1xx_hal_tim_ex.d b/MDK-ARM/CANEmu/stm32f1xx_hal_tim_ex.d index ef8ea64..189582b 100644 --- a/MDK-ARM/CANEmu/stm32f1xx_hal_tim_ex.d +++ b/MDK-ARM/CANEmu/stm32f1xx_hal_tim_ex.d @@ -27,4 +27,5 @@ canemu/stm32f1xx_hal_tim_ex.o: \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h \ - ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h diff --git a/MDK-ARM/CANEmu/stm32f1xx_hal_uart.d b/MDK-ARM/CANEmu/stm32f1xx_hal_uart.d new file mode 100644 index 0000000..3dda73e --- /dev/null +++ b/MDK-ARM/CANEmu/stm32f1xx_hal_uart.d @@ -0,0 +1,31 @@ +canemu/stm32f1xx_hal_uart.o: \ + ..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_uart.c \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h \ + ..\Core\Inc\stm32f1xx_hal_conf.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_def.h \ + ..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f1xx.h \ + ..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f103xb.h \ + ..\Drivers\CMSIS\Include\core_cm3.h \ + C:\Keil_v5\ARM\ARMCLANG\Bin\..\include\stdint.h \ + ..\Drivers\CMSIS\Include\cmsis_version.h \ + ..\Drivers\CMSIS\Include\cmsis_compiler.h \ + ..\Drivers\CMSIS\Include\cmsis_armclang.h \ + C:\Keil_v5\ARM\ARMCLANG\Bin\..\include\arm_compat.h \ + C:\Keil_v5\ARM\ARMCLANG\Bin\..\include\arm_acle.h \ + ..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\system_stm32f1xx.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h \ + C:\Keil_v5\ARM\ARMCLANG\Bin\..\include\stddef.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc_ex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_gpio.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_gpio_ex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_exti.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_dma.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_dma_ex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_cortex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h diff --git a/MDK-ARM/CANEmu/stm32f1xx_hal_uart.o b/MDK-ARM/CANEmu/stm32f1xx_hal_uart.o new file mode 100644 index 0000000..df82d28 Binary files /dev/null and b/MDK-ARM/CANEmu/stm32f1xx_hal_uart.o differ diff --git a/MDK-ARM/CANEmu/stm32f1xx_it.d b/MDK-ARM/CANEmu/stm32f1xx_it.d index 72fd62d..cb57dfb 100644 --- a/MDK-ARM/CANEmu/stm32f1xx_it.d +++ b/MDK-ARM/CANEmu/stm32f1xx_it.d @@ -27,4 +27,5 @@ canemu/stm32f1xx_it.o: ..\Core\Src\stm32f1xx_it.c ..\Core\Inc\main.h \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h \ ..\Core\Inc\stm32f1xx_it.h diff --git a/MDK-ARM/CANEmu/system_stm32f1xx.d b/MDK-ARM/CANEmu/system_stm32f1xx.d index 93d8cc9..435a605 100644 --- a/MDK-ARM/CANEmu/system_stm32f1xx.d +++ b/MDK-ARM/CANEmu/system_stm32f1xx.d @@ -26,4 +26,5 @@ canemu/system_stm32f1xx.o: ..\Core\Src\system_stm32f1xx.c \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h \ - ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h diff --git a/MDK-ARM/CANEmu/tim.d b/MDK-ARM/CANEmu/tim.d index 5d48035..99a6503 100644 --- a/MDK-ARM/CANEmu/tim.d +++ b/MDK-ARM/CANEmu/tim.d @@ -26,4 +26,5 @@ canemu/tim.o: ..\Core\Src\tim.c ..\Core\Inc\tim.h ..\Core\Inc\main.h \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h \ ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h \ - ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h diff --git a/MDK-ARM/CANEmu/tim.o b/MDK-ARM/CANEmu/tim.o index 9b451f9..2676224 100644 Binary files a/MDK-ARM/CANEmu/tim.o and b/MDK-ARM/CANEmu/tim.o differ diff --git a/MDK-ARM/CANEmu/usart.d b/MDK-ARM/CANEmu/usart.d new file mode 100644 index 0000000..7b2b87b --- /dev/null +++ b/MDK-ARM/CANEmu/usart.d @@ -0,0 +1,30 @@ +canemu/usart.o: ..\Core\Src\usart.c ..\Core\Inc\usart.h \ + ..\Core\Inc\main.h ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h \ + ..\Core\Inc\stm32f1xx_hal_conf.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_def.h \ + ..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f1xx.h \ + ..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f103xb.h \ + ..\Drivers\CMSIS\Include\core_cm3.h \ + C:\Keil_v5\ARM\ARMCLANG\Bin\..\include\stdint.h \ + ..\Drivers\CMSIS\Include\cmsis_version.h \ + ..\Drivers\CMSIS\Include\cmsis_compiler.h \ + ..\Drivers\CMSIS\Include\cmsis_armclang.h \ + C:\Keil_v5\ARM\ARMCLANG\Bin\..\include\arm_compat.h \ + C:\Keil_v5\ARM\ARMCLANG\Bin\..\include\arm_acle.h \ + ..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\system_stm32f1xx.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h \ + C:\Keil_v5\ARM\ARMCLANG\Bin\..\include\stddef.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc_ex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_gpio.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_gpio_ex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_exti.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_dma.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_dma_ex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_cortex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h \ + ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h diff --git a/MDK-ARM/CANEmu/usart.o b/MDK-ARM/CANEmu/usart.o new file mode 100644 index 0000000..8238b73 Binary files /dev/null and b/MDK-ARM/CANEmu/usart.o differ