From c13a96ff845f6b4b25687e2d8361d6cf742ea392 Mon Sep 17 00:00:00 2001 From: Kaiser <706598421@qq.com> Date: Tue, 17 Mar 2026 10:33:04 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8E=BB=E9=99=A4AD7190=E6=A0=A1=E5=87=86?= =?UTF-8?q?=E8=BF=87=E7=A8=8B=EF=BC=8C=E5=A2=9E=E5=8A=A0=E8=B6=85=E4=BD=8E?= =?UTF-8?q?=E9=A2=91=E6=8A=91=E5=88=B6=EF=BC=8C=E9=99=90=E5=88=B6=E9=9B=B6?= =?UTF-8?q?=E7=82=B9=E8=B7=9F=E8=B8=AA=E8=8C=83=E5=9B=B4=EF=BC=8C=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E5=88=9D=E5=A7=8B=E7=A7=B0=E9=87=8D=E4=BC=A0=E6=84=9F?= =?UTF-8?q?=E5=99=A8=E5=80=8D=E7=8E=87=EF=BC=8C=E5=A2=9E=E5=8A=A0=E5=90=AB?= =?UTF-8?q?=E6=B0=B4=E9=87=8F=E5=90=AB=E5=9B=BA=E9=87=8F=E6=B9=BF=E9=87=8D?= =?UTF-8?q?=E7=8E=87=E5=9B=9E=E6=BD=AE=E7=8E=87=EF=BC=8C=E9=99=90=E5=88=B6?= =?UTF-8?q?=E7=A7=B0=E9=87=8D=E8=B0=83=E9=9B=B6=E8=8C=83=E6=96=87=E4=B8=8D?= =?UTF-8?q?=E5=A4=A7=E4=BA=8E=E6=80=BB=E7=A7=B0=E9=87=8F=E7=9A=844%?= =?UTF-8?q?=EF=BC=8C=E4=BF=AE=E5=A4=8D=E5=9E=8B=E5=8F=B7=E6=9C=AA=E5=AF=B9?= =?UTF-8?q?=E5=BA=94=E7=AB=8B=E9=A1=B9=E4=B9=A6=E5=8F=82=E6=95=B0bug?= =?UTF-8?q?=EF=BC=8C=E6=8F=90=E9=AB=98SPI=E9=80=9F=E7=8E=87=EF=BC=8C?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0SPI=E8=B6=85=E6=97=B6=E9=80=80=E5=87=BA?= =?UTF-8?q?=E6=9C=BA=E5=88=B6=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Listings/Moisture.map | 3463 +++++++++++++++----------------- Moisture.uvoptx | 220 +- Moisture.uvprojx | 112 +- Objects/Moisture.axf | Bin 499920 -> 494360 bytes Objects/Moisture.hex | 2047 ------------------- RTE/_Moisture/RTE_Components.h | 18 +- Source/AD7190.c | 406 ++-- Source/APPDEF.H | 28 +- Source/HMI.c | 1382 +++++++------ Source/Moisture.c | 4 +- Source/USARTHMI.c | 2 +- Source/spi.c | 26 +- 12 files changed, 2873 insertions(+), 4835 deletions(-) delete mode 100644 Objects/Moisture.hex diff --git a/Listings/Moisture.map b/Listings/Moisture.map index 33990f4..cf7a518 100644 --- a/Listings/Moisture.map +++ b/Listings/Moisture.map @@ -109,107 +109,85 @@ Section Cross References fm24.o(i.FM24_Write) refers to i2c.o(i.I2C2_SendByte) for I2C2_SendByte fm24.o(i.FM24_Write) refers to i2c.o(i.I2C2_Wait_ACK) for I2C2_Wait_ACK fm24.o(i.FM24_Write) refers to i2c.o(i.I2C2_Stop) for I2C2_Stop - cs5552.o(i.GET_ADC_CH0) refers to rt_cmsis.o(i.osDelay) for osDelay - cs5552.o(i.GET_ADC_CH0) refers to delay.o(i.delay_us) for delay_us - cs5552.o(i.GET_ADC_CH0) refers to cs5552.o(i.Read_Register) for Read_Register - cs5552.o(i.GET_ADC_CH0) refers to fflt_clz.o(x$fpl$fflt) for __aeabi_i2f - cs5552.o(i.GET_ADC_CH0) refers to cs5552.o(i.bubbleSort) for bubbleSort - cs5552.o(i.GET_ADC_CH0) refers to faddsub_clz.o(x$fpl$fadd) for __aeabi_fadd - cs5552.o(i.GET_ADC_CH0) refers to f2d.o(x$fpl$f2d) for __aeabi_f2d - cs5552.o(i.GET_ADC_CH0) refers to ddiv.o(x$fpl$ddiv) for __aeabi_ddiv - cs5552.o(i.GET_ADC_CH0) refers to d2f.o(x$fpl$d2f) for __aeabi_d2f - cs5552.o(i.GET_ADC_CH0) refers to ffix.o(x$fpl$ffix) for __aeabi_f2iz - cs5552.o(i.GET_ADC_CH0) refers to dflt_clz.o(x$fpl$dflt) for __aeabi_i2d - cs5552.o(i.GET_ADC_CH0) refers to dmul.o(x$fpl$dmul) for __aeabi_dmul - cs5552.o(i.GET_ADC_CH0) refers to cs5552.o(.data) for ADvalue - cs5552.o(i.GET_ADC_CH0) refers to cs5552.o(.bss) for bufferdata - cs5552.o(i.INIT_CS555X) refers to spi.o(i.SPI2_Configuration) for SPI2_Configuration - cs5552.o(i.INIT_CS555X) refers to rt_cmsis.o(i.osDelay) for osDelay - cs5552.o(i.INIT_CS555X) refers to cs5552.o(i.RESET_SPI) for RESET_SPI - cs5552.o(i.INIT_CS555X) refers to cs5552.o(i.Write_Register) for Write_Register - cs5552.o(i.INIT_CS555X) refers to spi.o(i.SPI2_ReadWrite) for SPI2_ReadWrite - cs5552.o(i.INIT_CS555X) refers to rt_cmsis.o(i.osThreadCreate) for osThreadCreate - cs5552.o(i.INIT_CS555X) refers to cs5552.o(.bss) for CalibrateWeight - cs5552.o(i.INIT_CS555X) refers to cs5552.o(.constdata) for os_thread_def_GET_ADC_CH0 - cs5552.o(i.RESET_SPI) refers to spi.o(i.SPI2_ReadWrite) for SPI2_ReadWrite - cs5552.o(i.Read_Register) refers to spi.o(i.SPI2_ReadWrite) for SPI2_ReadWrite - cs5552.o(i.Read_Register) refers to delay.o(i.delay_us) for delay_us - cs5552.o(i.WaitForReady) refers to delay.o(i.delay_us) for delay_us - cs5552.o(i.WaitForReady) refers to stm32f10x_gpio.o(i.GPIO_ReadInputDataBit) for GPIO_ReadInputDataBit - cs5552.o(i.Write_Register) refers to spi.o(i.SPI2_ReadWrite) for SPI2_ReadWrite - cs5552.o(i.bubbleSort) refers to frleqf.o(x$fpl$frleqf) for __aeabi_cfrcmple - cs5552.o(.constdata) refers to cs5552.o(i.GET_ADC_CH0) for GET_ADC_CH0 ad7190.o(i.AD7190_Init) refers to spi.o(i.SPI1_Configuration) for SPI1_Configuration ad7190.o(i.AD7190_Init) refers to spi.o(i.SPI1_ReadWrite) for SPI1_ReadWrite ad7190.o(i.AD7190_Init) refers to rt_cmsis.o(i.osDelay) for osDelay ad7190.o(i.AD7190_Init) refers to ad7190.o(i.AD7190_ReadRegisterOnce) for AD7190_ReadRegisterOnce ad7190.o(i.AD7190_Init) refers to ad7190.o(i.AD7190_WriteRegisterOnce) for AD7190_WriteRegisterOnce ad7190.o(i.AD7190_Init) refers to ad7190.o(i.AD7190_WriteRegister) for AD7190_WriteRegister - ad7190.o(i.AD7190_Init) refers to ad7190.o(i.AD7190_ReadRegister) for AD7190_ReadRegister - ad7190.o(i.AD7190_Init) refers to ad7190.o(i.AD7190_WaitForReady) for AD7190_WaitForReady ad7190.o(i.AD7190_Init) refers to rt_cmsis.o(i.osThreadCreate) for osThreadCreate ad7190.o(i.AD7190_Init) refers to ad7190.o(.bss) for CalibrateWeight2 ad7190.o(i.AD7190_Init) refers to ad7190.o(.constdata) for os_thread_def_AD7190_Run ad7190.o(i.AD7190_ReadData) refers to ad7190.o(i.AD7190_WaitForReady) for AD7190_WaitForReady ad7190.o(i.AD7190_ReadData) refers to ad7190.o(i.AD7190_ReadRegister) for AD7190_ReadRegister + ad7190.o(i.AD7190_ReadData) refers to dflti.o(.text) for __aeabi_i2d + ad7190.o(i.AD7190_ReadData) refers to cdrcmple.o(.text) for __aeabi_cdrcmple ad7190.o(i.AD7190_ReadData) refers to spi.o(i.SPI1_Configuration) for SPI1_Configuration ad7190.o(i.AD7190_ReadData) refers to spi.o(i.SPI1_ReadWrite) for SPI1_ReadWrite ad7190.o(i.AD7190_ReadData) refers to rt_cmsis.o(i.osDelay) for osDelay ad7190.o(i.AD7190_ReadData) refers to ad7190.o(i.AD7190_ReadRegisterOnce) for AD7190_ReadRegisterOnce ad7190.o(i.AD7190_ReadData) refers to ad7190.o(i.AD7190_WriteRegisterOnce) for AD7190_WriteRegisterOnce ad7190.o(i.AD7190_ReadData) refers to ad7190.o(i.AD7190_WriteRegister) for AD7190_WriteRegister - ad7190.o(i.AD7190_ReadData) refers to ad7190.o(.data) for ErrCount + ad7190.o(i.AD7190_ReadData) refers to ad7190.o(.data) for lastdata ad7190.o(i.AD7190_ReadRegister) refers to spi.o(i.SPI1_ReadWrite) for SPI1_ReadWrite ad7190.o(i.AD7190_ReadRegisterOnce) refers to spi.o(i.SPI1_ReadWrite) for SPI1_ReadWrite ad7190.o(i.AD7190_Run) refers to rt_cmsis.o(i.osDelay) for osDelay ad7190.o(i.AD7190_Run) refers to ad7190.o(i.AD7190_ReadData) for AD7190_ReadData - ad7190.o(i.AD7190_Run) refers to fflt_clz.o(x$fpl$fflt) for __aeabi_i2f - ad7190.o(i.AD7190_Run) refers to ffix.o(x$fpl$ffix) for __aeabi_f2iz + ad7190.o(i.AD7190_Run) refers to dflti.o(.text) for __aeabi_i2d + ad7190.o(i.AD7190_Run) refers to fflti.o(.text) for __aeabi_i2f ad7190.o(i.AD7190_Run) refers to ad7190.o(i.kalman_filter_init2) for kalman_filter_init2 ad7190.o(i.AD7190_Run) refers to ad7190.o(i.kalman_filter_update2) for kalman_filter_update2 - ad7190.o(i.AD7190_Run) refers to dflt_clz.o(x$fpl$dflt) for __aeabi_i2d - ad7190.o(i.AD7190_Run) refers to dmul.o(x$fpl$dmul) for __aeabi_dmul - ad7190.o(i.AD7190_Run) refers to d2f.o(x$fpl$d2f) for __aeabi_d2f - ad7190.o(i.AD7190_Run) refers to f2d.o(x$fpl$f2d) for __aeabi_f2d - ad7190.o(i.AD7190_Run) refers to faddsub_clz.o(x$fpl$fsub) for __aeabi_fsub - ad7190.o(i.AD7190_Run) refers to dleqf.o(x$fpl$dleqf) for __aeabi_cdcmple - ad7190.o(i.AD7190_Run) refers to fmul.o(x$fpl$fmul) for __aeabi_fmul - ad7190.o(i.AD7190_Run) refers to fflt_clz.o(x$fpl$ffltu) for __aeabi_ui2f - ad7190.o(i.AD7190_Run) refers to frleqf.o(x$fpl$frleqf) for __aeabi_cfrcmple - ad7190.o(i.AD7190_Run) refers to faddsub_clz.o(x$fpl$frsb) for __aeabi_frsub - ad7190.o(i.AD7190_Run) refers to faddsub_clz.o(x$fpl$fadd) for __aeabi_fadd + ad7190.o(i.AD7190_Run) refers to dadd.o(.text) for __aeabi_dsub + ad7190.o(i.AD7190_Run) refers to cdcmple.o(.text) for __aeabi_cdcmple + ad7190.o(i.AD7190_Run) refers to f2d.o(.text) for __aeabi_f2d + ad7190.o(i.AD7190_Run) refers to dmul.o(.text) for __aeabi_dmul + ad7190.o(i.AD7190_Run) refers to fadd.o(.text) for __aeabi_fsub ad7190.o(i.AD7190_Run) refers to ad7190.o(.data) for ADvalue2 ad7190.o(i.AD7190_Run) refers to ad7190.o(.bss) for kf2 ad7190.o(i.AD7190_Run) refers to hmi.o(.bss) for Set - ad7190.o(i.AD7190_Run) refers to drleqf.o(x$fpl$drleqf) for __aeabi_cdrcmple - ad7190.o(i.AD7190_Run) refers to fdiv.o(x$fpl$fdiv) for __aeabi_fdiv + ad7190.o(i.AD7190_Run) refers to fmul.o(.text) for __aeabi_fmul + ad7190.o(i.AD7190_Run) refers to ffltui.o(.text) for __aeabi_ui2f + ad7190.o(i.AD7190_Run) refers to cfrcmple.o(.text) for __aeabi_cfrcmple + ad7190.o(i.AD7190_Run) refers to cdrcmple.o(.text) for __aeabi_cdrcmple + ad7190.o(i.AD7190_Run) refers to fdiv.o(.text) for __aeabi_fdiv + ad7190.o(i.AD7190_Run) refers to d2f.o(.text) for __aeabi_d2f + ad7190.o(i.AD7190_Run) refers to dfixi.o(.text) for __aeabi_d2iz + ad7190.o(i.AD7190_Run) refers to hmi.o(.data) for pageNum ad7190.o(i.AD7190_WaitForReady) refers to delay.o(i.delay_us) for delay_us ad7190.o(i.AD7190_WaitForReady) refers to stm32f10x_gpio.o(i.GPIO_ReadInputDataBit) for GPIO_ReadInputDataBit ad7190.o(i.AD7190_WriteRegister) refers to spi.o(i.SPI1_ReadWrite) for SPI1_ReadWrite ad7190.o(i.AD7190_WriteRegisterOnce) refers to spi.o(i.SPI1_ReadWrite) for SPI1_ReadWrite - ad7190.o(i.kalman_filter_update2) refers to faddsub_clz.o(x$fpl$fadd) for __aeabi_fadd - ad7190.o(i.kalman_filter_update2) refers to fdiv.o(x$fpl$fdiv) for __aeabi_fdiv - ad7190.o(i.kalman_filter_update2) refers to faddsub_clz.o(x$fpl$fsub) for __aeabi_fsub - ad7190.o(i.kalman_filter_update2) refers to fmul.o(x$fpl$fmul) for __aeabi_fmul + ad7190.o(i.calculateAverage) refers to dfltui.o(.text) for __aeabi_ui2d + ad7190.o(i.calculateAverage) refers to dadd.o(.text) for __aeabi_dadd + ad7190.o(i.calculateAverage) refers to dflti.o(.text) for __aeabi_i2d + ad7190.o(i.calculateAverage) refers to ddiv.o(.text) for __aeabi_ddiv + ad7190.o(i.calculateAverage) refers to d2f.o(.text) for __aeabi_d2f + ad7190.o(i.fputc) refers to delay.o(i.delay_us) for delay_us + ad7190.o(i.kalman_filter_init2) refers to f2d.o(.text) for __aeabi_f2d + ad7190.o(i.kalman_filter_update2) refers to d2f.o(.text) for __aeabi_d2f + ad7190.o(i.kalman_filter_update2) refers to dadd.o(.text) for __aeabi_dadd + ad7190.o(i.kalman_filter_update2) refers to f2d.o(.text) for __aeabi_f2d + ad7190.o(i.kalman_filter_update2) refers to ddiv.o(.text) for __aeabi_ddiv + ad7190.o(i.kalman_filter_update2) refers to fadd.o(.text) for __aeabi_fsub + ad7190.o(i.kalman_filter_update2) refers to dmul.o(.text) for __aeabi_dmul ad7190.o(.constdata) refers to ad7190.o(i.AD7190_Run) for AD7190_Run ws100t10.o(i.ACCMD) refers to stm32f10x_gpio.o(i.GPIO_ResetBits) for GPIO_ResetBits ws100t10.o(i.ACCMD) refers to stm32f10x_gpio.o(i.GPIO_SetBits) for GPIO_SetBits - ws100t10.o(i.ACCtrl) refers to fflt_clz.o(x$fpl$ffltu) for __aeabi_ui2f - ws100t10.o(i.ACCtrl) refers to fmul.o(x$fpl$fmul) for __aeabi_fmul - ws100t10.o(i.ACCtrl) refers to ffixu.o(x$fpl$ffixu) for __aeabi_f2uiz + ws100t10.o(i.ACCtrl) refers to ffltui.o(.text) for __aeabi_ui2f + ws100t10.o(i.ACCtrl) refers to fmul.o(.text) for __aeabi_fmul + ws100t10.o(i.ACCtrl) refers to ffixui.o(.text) for __aeabi_f2uiz ws100t10.o(i.ACCtrl) refers to i2c.o(i.WS100T10_Ctrl) for WS100T10_Ctrl ws100t10.o(i.AC_CTRL_Init) refers to rt_cmsis.o(i.osThreadCreate) for osThreadCreate ws100t10.o(i.AC_CTRL_Init) refers to ws100t10.o(.constdata) for os_thread_def__task_ACCtrl - ws100t10.o(i.HeatPID_Task) refers to fflt_clz.o(x$fpl$ffltu) for __aeabi_ui2f + ws100t10.o(i.HeatPID_Task) refers to ffltui.o(.text) for __aeabi_ui2f ws100t10.o(i.HeatPID_Task) refers to rt_cmsis.o(i.osDelay) for osDelay ws100t10.o(i.HeatPID_Task) refers to ws100t10.o(i.ACCMD) for ACCMD ws100t10.o(i.HeatPID_Task) refers to rt_cmsis.o(i.osKernelSysTick) for osKernelSysTick - ws100t10.o(i.HeatPID_Task) refers to faddsub_clz.o(x$fpl$fsub) for __aeabi_fsub - ws100t10.o(i.HeatPID_Task) refers to frleqf.o(x$fpl$frleqf) for __aeabi_cfrcmple - ws100t10.o(i.HeatPID_Task) refers to fmul.o(x$fpl$fmul) for __aeabi_fmul - ws100t10.o(i.HeatPID_Task) refers to ffixu.o(x$fpl$ffixu) for __aeabi_f2uiz - ws100t10.o(i.HeatPID_Task) refers to faddsub_clz.o(x$fpl$fadd) for __aeabi_fadd - ws100t10.o(i.HeatPID_Task) refers to fleqf.o(x$fpl$fleqf) for __aeabi_cfcmple + ws100t10.o(i.HeatPID_Task) refers to fadd.o(.text) for __aeabi_fsub + ws100t10.o(i.HeatPID_Task) refers to cfrcmple.o(.text) for __aeabi_cfrcmple + ws100t10.o(i.HeatPID_Task) refers to fmul.o(.text) for __aeabi_fmul + ws100t10.o(i.HeatPID_Task) refers to ffixui.o(.text) for __aeabi_f2uiz + ws100t10.o(i.HeatPID_Task) refers to cfcmple.o(.text) for __aeabi_cfcmple ws100t10.o(i.HeatPID_Task) refers to hmi.o(.bss) for Set ws100t10.o(i.HeatPID_Task) refers to ws100t10.o(.data) for Kp ws100t10.o(i.HeatPID_Task) refers to rtx_conf_cm.o(.constdata) for os_tickus_i @@ -231,11 +209,11 @@ Section Cross References max6675.o(i.MAX6675_ConvertTemperature) refers to max6675.o(i.kalman_filter_init) for kalman_filter_init max6675.o(i.MAX6675_ConvertTemperature) refers to rt_cmsis.o(i.osDelay) for osDelay max6675.o(i.MAX6675_ConvertTemperature) refers to max6675.o(i.MAX6675_ReadData) for MAX6675_ReadData - max6675.o(i.MAX6675_ConvertTemperature) refers to fflt_clz.o(x$fpl$ffltu) for __aeabi_ui2f - max6675.o(i.MAX6675_ConvertTemperature) refers to fmul.o(x$fpl$fmul) for __aeabi_fmul - max6675.o(i.MAX6675_ConvertTemperature) refers to fflt_clz.o(x$fpl$fflt) for __aeabi_i2f + max6675.o(i.MAX6675_ConvertTemperature) refers to ffltui.o(.text) for __aeabi_ui2f + max6675.o(i.MAX6675_ConvertTemperature) refers to fmul.o(.text) for __aeabi_fmul + max6675.o(i.MAX6675_ConvertTemperature) refers to fflti.o(.text) for __aeabi_i2f max6675.o(i.MAX6675_ConvertTemperature) refers to max6675.o(i.kalman_filter_update) for kalman_filter_update - max6675.o(i.MAX6675_ConvertTemperature) refers to faddsub_clz.o(x$fpl$fadd) for __aeabi_fadd + max6675.o(i.MAX6675_ConvertTemperature) refers to fadd.o(.text) for __aeabi_fadd max6675.o(i.MAX6675_ConvertTemperature) refers to max6675.o(.bss) for kf max6675.o(i.MAX6675_ConvertTemperature) refers to hmi.o(.bss) for Set max6675.o(i.MAX6675_ConvertTemperature) refers to max6675.o(.data) for Temperature @@ -247,10 +225,9 @@ Section Cross References max6675.o(i.MAX6675_ReadData) refers to delay.o(i.delay_us) for delay_us max6675.o(i.MAX6675_ReadData) refers to stm32f10x_gpio.o(i.GPIO_ReadInputDataBit) for GPIO_ReadInputDataBit max6675.o(i.MAX6675_ReadData) refers to stm32f10x_gpio.o(i.GPIO_SetBits) for GPIO_SetBits - max6675.o(i.kalman_filter_update) refers to faddsub_clz.o(x$fpl$fadd) for __aeabi_fadd - max6675.o(i.kalman_filter_update) refers to fdiv.o(x$fpl$fdiv) for __aeabi_fdiv - max6675.o(i.kalman_filter_update) refers to faddsub_clz.o(x$fpl$fsub) for __aeabi_fsub - max6675.o(i.kalman_filter_update) refers to fmul.o(x$fpl$fmul) for __aeabi_fmul + max6675.o(i.kalman_filter_update) refers to fadd.o(.text) for __aeabi_fadd + max6675.o(i.kalman_filter_update) refers to fdiv.o(.text) for __aeabi_fdiv + max6675.o(i.kalman_filter_update) refers to fmul.o(.text) for __aeabi_fmul max6675.o(.constdata) refers to max6675.o(i.MAX6675_ConvertTemperature) for MAX6675_ConvertTemperature usarthmi.o(i.BIOS_TIM2_TIMER_Init) refers to usarthmi.o(i.__NVIC_EnableIRQ) for __NVIC_EnableIRQ usarthmi.o(i.BIOS_TIM2_TIMER_Init) refers to system_stm32f10x.o(.data) for SystemCoreClock @@ -286,36 +263,21 @@ Section Cross References moisture.o(i.main) refers to fm24.o(i.FM24Init) for FM24Init moisture.o(i.main) refers to rt_cmsis.o(i.osDelay) for osDelay moisture.o(i.main) refers to ad7190.o(i.AD7190_Init) for AD7190_Init - moisture.o(i.main) refers to ffix.o(x$fpl$ffix) for __aeabi_f2iz moisture.o(i.main) refers to bios.o(i.InstrumentTypeRead) for InstrumentTypeRead moisture.o(i.main) refers to usarthmi.o(i.USARTHMIInit) for USARTHMIInit moisture.o(i.main) refers to hmi.o(i.HMICMDInit) for HMICMDInit - moisture.o(i.main) refers to ad7190.o(.data) for ADvalue2filter - moisture.o(i.main) refers to ad7190.o(.bss) for CalibrateWeight2 moisture.o(i.main) refers to hmi.o(.data) for MaxWeight - hmi.o(i.DataUnpack) refers to _printf_pad.o(.text) for _printf_pre_padding - hmi.o(i.DataUnpack) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent - hmi.o(i.DataUnpack) refers to _printf_d.o(.ARM.Collect$$_printf_percent$$00000009) for _printf_d - hmi.o(i.DataUnpack) refers to _printf_dec.o(.text) for _printf_int_dec - hmi.o(i.DataUnpack) refers to _printf_f.o(.ARM.Collect$$_printf_percent$$00000003) for _printf_f - hmi.o(i.DataUnpack) refers to _printf_s.o(.ARM.Collect$$_printf_percent$$00000014) for _printf_s - hmi.o(i.DataUnpack) refers to printf1.o(x$fpl$printf1) for _printf_fp_dec - hmi.o(i.DataUnpack) refers to _printf_str.o(.text) for _printf_str hmi.o(i.DataUnpack) refers to rt_cmsis.o(i.osSemaphoreCreate) for osSemaphoreCreate hmi.o(i.DataUnpack) refers to rt_cmsis.o(i.osSemaphoreWait) for osSemaphoreWait - hmi.o(i.DataUnpack) refers to noretval__2sprintf.o(.text) for __2sprintf + hmi.o(i.DataUnpack) refers to printfa.o(i.__0sprintf) for __2sprintf hmi.o(i.DataUnpack) refers to strlen.o(.text) for strlen hmi.o(i.DataUnpack) refers to usarthmi.o(i.DataPrint) for DataPrint - hmi.o(i.DataUnpack) refers to fleqf.o(x$fpl$fleqf) for __aeabi_cfcmple - hmi.o(i.DataUnpack) refers to fflt_clz.o(x$fpl$ffltu) for __aeabi_ui2f + hmi.o(i.DataUnpack) refers to cdcmple.o(.text) for __aeabi_cdcmple + hmi.o(i.DataUnpack) refers to dfltui.o(.text) for __aeabi_ui2d hmi.o(i.DataUnpack) refers to bios.o(i.SafeCheck) for SafeCheck hmi.o(i.DataUnpack) refers to rt_cmsis.o(i.osDelay) for osDelay hmi.o(i.DataUnpack) refers to fm24.o(i.FM24_Write) for FM24_Write - hmi.o(i.DataUnpack) refers to fflt_clz.o(x$fpl$fflt) for __aeabi_i2f - hmi.o(i.DataUnpack) refers to faddsub_clz.o(x$fpl$fsub) for __aeabi_fsub - hmi.o(i.DataUnpack) refers to f2d.o(x$fpl$f2d) for __aeabi_f2d - hmi.o(i.DataUnpack) refers to drleqf.o(x$fpl$drleqf) for __aeabi_cdrcmple - hmi.o(i.DataUnpack) refers to ffix.o(x$fpl$ffix) for __aeabi_f2iz + hmi.o(i.DataUnpack) refers to dmul.o(.text) for __aeabi_dmul hmi.o(i.DataUnpack) refers to hmi.o(.data) for semDataChange hmi.o(i.DataUnpack) refers to usarthmi.o(.data) for semDataBack hmi.o(i.DataUnpack) refers to usarthmi.o(.bss) for DataInbuf @@ -323,80 +285,73 @@ Section Cross References hmi.o(i.DataUnpack) refers to hmi.o(.ARM.__AT_0x20001000) for buf hmi.o(i.DataUnpack) refers to hmi.o(.bss) for startTime hmi.o(i.DataUnpack) refers to ad7190.o(.bss) for CalibrateWeight2 + hmi.o(i.DataUnpack) refers to dadd.o(.text) for __aeabi_dsub + hmi.o(i.DataUnpack) refers to cdrcmple.o(.text) for __aeabi_cdrcmple + hmi.o(i.DataUnpack) refers to cfcmple.o(.text) for __aeabi_cfcmpeq + hmi.o(i.DataUnpack) refers to fadd.o(.text) for __aeabi_fsub + hmi.o(i.DataUnpack) refers to f2d.o(.text) for __aeabi_f2d hmi.o(i.DataUnpack) refers to usart.o(i.USART2Print) for USART2Print hmi.o(i.DataUnpack) refers to hmi.o(.constdata) for .constdata - hmi.o(i.DataUnpack) refers to fdiv.o(x$fpl$fdiv) for __aeabi_fdiv + hmi.o(i.DataUnpack) refers to fflti.o(.text) for __aeabi_i2f + hmi.o(i.DataUnpack) refers to fdiv.o(.text) for __aeabi_fdiv + hmi.o(i.DataUnpack) refers to dfixi.o(.text) for __aeabi_d2iz hmi.o(i.DataUnpack) refers to max6675.o(.data) for Temperature hmi.o(i.DataUnpack) refers to usart.o(i.BIOS_USART2_Init) for BIOS_USART2_Init - hmi.o(i.DataUnpack) refers to strcmpv7m.o(.text) for strcmp + hmi.o(i.DataUnpack) refers to strcmp.o(.text) for strcmp hmi.o(i.DataUnpack) refers to strcpy.o(.text) for strcpy hmi.o(i.DataUnpack) refers to rt_cmsis.o(i.osSemaphoreRelease) for osSemaphoreRelease hmi.o(i.FM24DataCRC) refers to fm24.o(i.FM24_Read) for FM24_Read - hmi.o(i.FM24DataCRC) refers to dleqf.o(x$fpl$dleqf) for __aeabi_cdcmple - hmi.o(i.FM24DataCRC) refers to noretval__2sprintf.o(.text) for __2sprintf + hmi.o(i.FM24DataCRC) refers to printfa.o(i.__0sprintf) for __2sprintf + hmi.o(i.FM24DataCRC) refers to fm24.o(i.FM24_Write) for FM24_Write + hmi.o(i.FM24DataCRC) refers to cdcmple.o(.text) for __aeabi_cdcmple hmi.o(i.FM24DataCRC) refers to hmi.o(.bss) for Set hmi.o(i.FM24DataCRC) refers to ad7190.o(.bss) for CalibrateWeight2 hmi.o(i.HMICMDInit) refers to rt_cmsis.o(i.osThreadCreate) for osThreadCreate hmi.o(i.HMICMDInit) refers to hmi.o(i.MoisturingRun) for MoisturingRun hmi.o(i.HMICMDInit) refers to hmi.o(.constdata) for os_thread_def_DataUnpack - hmi.o(i.Moisturing) refers to _printf_pad.o(.text) for _printf_pre_padding - hmi.o(i.Moisturing) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent - hmi.o(i.Moisturing) refers to _printf_d.o(.ARM.Collect$$_printf_percent$$00000009) for _printf_d - hmi.o(i.Moisturing) refers to _printf_f.o(.ARM.Collect$$_printf_percent$$00000003) for _printf_f - hmi.o(i.Moisturing) refers to _printf_dec.o(.text) for _printf_int_dec - hmi.o(i.Moisturing) refers to printf1.o(x$fpl$printf1) for _printf_fp_dec - hmi.o(i.Moisturing) refers to _printf_s.o(.ARM.Collect$$_printf_percent$$00000014) for _printf_s - hmi.o(i.Moisturing) refers to _printf_str.o(.text) for _printf_str hmi.o(i.Moisturing) refers to hmi.o(i.FM24DataCRC) for FM24DataCRC hmi.o(i.Moisturing) refers to rt_cmsis.o(i.osDelay) for osDelay - hmi.o(i.Moisturing) refers to ffix.o(x$fpl$ffix) for __aeabi_f2iz + hmi.o(i.Moisturing) refers to ffltui.o(.text) for __aeabi_ui2f + hmi.o(i.Moisturing) refers to fmul.o(.text) for __aeabi_fmul + hmi.o(i.Moisturing) refers to f2d.o(.text) for __aeabi_f2d + hmi.o(i.Moisturing) refers to dadd.o(.text) for __aeabi_drsub + hmi.o(i.Moisturing) refers to dmul.o(.text) for __aeabi_dmul + hmi.o(i.Moisturing) refers to cdcmple.o(.text) for __aeabi_cdcmple hmi.o(i.Moisturing) refers to usart.o(i.BIOS_USART2_Init) for BIOS_USART2_Init - hmi.o(i.Moisturing) refers to f2d.o(x$fpl$f2d) for __aeabi_f2d - hmi.o(i.Moisturing) refers to noretval__2sprintf.o(.text) for __2sprintf + hmi.o(i.Moisturing) refers to printfa.o(i.__0sprintf) for __2sprintf hmi.o(i.Moisturing) refers to strlen.o(.text) for strlen hmi.o(i.Moisturing) refers to usarthmi.o(i.DataPrint) for DataPrint - hmi.o(i.Moisturing) refers to fdiv.o(x$fpl$fdiv) for __aeabi_fdiv - hmi.o(i.Moisturing) refers to faddsub_clz.o(x$fpl$fadd) for __aeabi_fadd - hmi.o(i.Moisturing) refers to fflt_clz.o(x$fpl$fflt) for __aeabi_i2f - hmi.o(i.Moisturing) refers to fmul.o(x$fpl$fmul) for __aeabi_fmul - hmi.o(i.Moisturing) refers to fflt_clz.o(x$fpl$ffltu) for __aeabi_ui2f - hmi.o(i.Moisturing) refers to frleqf.o(x$fpl$frleqf) for __aeabi_cfrcmple + hmi.o(i.Moisturing) refers to fdiv.o(.text) for __aeabi_fdiv + hmi.o(i.Moisturing) refers to ddiv.o(.text) for __aeabi_ddiv + hmi.o(i.Moisturing) refers to dfixi.o(.text) for __aeabi_d2iz + hmi.o(i.Moisturing) refers to fflti.o(.text) for __aeabi_i2f + hmi.o(i.Moisturing) refers to cfrcmple.o(.text) for __aeabi_cfrcmple + hmi.o(i.Moisturing) refers to fadd.o(.text) for __aeabi_fadd hmi.o(i.Moisturing) refers to rt_cmsis.o(i.osSemaphoreWait) for osSemaphoreWait + hmi.o(i.Moisturing) refers to ffixui.o(.text) for __aeabi_f2uiz hmi.o(i.Moisturing) refers to hmi.o(.bss) for Set - hmi.o(i.Moisturing) refers to ad7190.o(.data) for ADvalue2filter + hmi.o(i.Moisturing) refers to hmi.o(.data) for MaxWeight hmi.o(i.Moisturing) refers to ad7190.o(.bss) for CalibrateWeight2 - hmi.o(i.Moisturing) refers to hmi.o(.data) for Resolution + hmi.o(i.Moisturing) refers to ad7190.o(.data) for ADvalue2filter hmi.o(i.Moisturing) refers to hmi.o(.ARM.__AT_0x20001200) for buf hmi.o(i.Moisturing) refers to max6675.o(.data) for Temperature - hmi.o(i.Moisturing) refers to ws100t10.o(.data) for OutputMax + hmi.o(i.Moisturing) refers to memseta.o(.text) for __aeabi_memclr4 hmi.o(i.Moisturing) refers to bios.o(i.SafeCheck) for SafeCheck hmi.o(i.Moisturing) refers to ws100t10.o(i.Pump_OutCmd) for Pump_OutCmd hmi.o(i.Moisturing) refers to rt_cmsis.o(i.osKernelSysTick) for osKernelSysTick - hmi.o(i.Moisturing) refers to faddsub_clz.o(x$fpl$fsub) for __aeabi_fsub + hmi.o(i.Moisturing) refers to ws100t10.o(.data) for OutputMax hmi.o(i.Moisturing) refers to rtx_conf_cm.o(.constdata) for os_tickus_i - hmi.o(i.Moisturing) refers to feqf.o(x$fpl$feqf) for __aeabi_cfcmpeq - hmi.o(i.Moisturing) refers to ffixu.o(x$fpl$ffixu) for __aeabi_f2uiz - hmi.o(i.Moisturing) refers to fleqf.o(x$fpl$fleqf) for __aeabi_cfcmple + hmi.o(i.Moisturing) refers to cdrcmple.o(.text) for __aeabi_cdrcmple + hmi.o(i.Moisturing) refers to d2f.o(.text) for __aeabi_d2f + hmi.o(i.Moisturing) refers to cfcmple.o(.text) for __aeabi_cfcmple hmi.o(i.MoisturingRun) refers to rt_cmsis.o(i.osThreadCreate) for osThreadCreate hmi.o(i.MoisturingRun) refers to hmi.o(.constdata) for os_thread_def_Moisturing hmi.o(.constdata) refers to hmi.o(i.Moisturing) for Moisturing hmi.o(.constdata) refers to hmi.o(i.DataUnpack) for DataUnpack - rtx_conf_cm.o(.emb_text) refers to rt_cmsis.o(i.osKernelInitialize) for osKernelInitialize - rtx_conf_cm.o(.emb_text) refers to rt_cmsis.o(i.osThreadCreate) for osThreadCreate - rtx_conf_cm.o(.emb_text) refers to rt_cmsis.o(i.osKernelStart) for osKernelStart - rtx_conf_cm.o(.emb_text) refers to exit.o(.text) for exit - rtx_conf_cm.o(.emb_text) refers to rtx_conf_cm.o(.constdata) for os_thread_def_main - rtx_conf_cm.o(i.__user_perthread_libspace) refers to rt_task.o(i.rt_tsk_self) for rt_tsk_self - rtx_conf_cm.o(i.__user_perthread_libspace) refers to rt_cmsis.o(.data) for os_running - rtx_conf_cm.o(i.__user_perthread_libspace) refers to rtx_conf_cm.o(.bss) for .bss - rtx_conf_cm.o(i.__user_perthread_libspace) refers to libspace.o(.bss) for __libspace_start - rtx_conf_cm.o(i._mutex_acquire) refers to rt_cmsis.o(.data) for os_running - rtx_conf_cm.o(i._mutex_acquire) refers to rt_mutex.o(i.rt_mut_wait) for rt_mut_wait - rtx_conf_cm.o(i._mutex_initialize) refers to rt_mutex.o(i.rt_mut_init) for rt_mut_init - rtx_conf_cm.o(i._mutex_initialize) refers to rtx_conf_cm.o(.data) for .data - rtx_conf_cm.o(i._mutex_initialize) refers to rtx_conf_cm.o(.bss) for .bss - rtx_conf_cm.o(i._mutex_release) refers to rt_cmsis.o(.data) for os_running - rtx_conf_cm.o(i._mutex_release) refers to rt_mutex.o(i.rt_mut_release) for rt_mut_release + rtx_conf_cm.o(.ARM.Collect$$$$000000FF) refers to rt_cmsis.o(i.osKernelInitialize) for osKernelInitialize + rtx_conf_cm.o(.ARM.Collect$$$$000000FF) refers to rt_cmsis.o(i.osThreadCreate) for osThreadCreate + rtx_conf_cm.o(.ARM.Collect$$$$000000FF) refers to rt_cmsis.o(i.osKernelStart) for osKernelStart + rtx_conf_cm.o(.ARM.Collect$$$$000000FF) refers to rtx_conf_cm.o(.constdata) for .constdata rtx_conf_cm.o(.constdata) refers to rtx_conf_cm.o(.bss) for os_messageQ_q_osTimerMessageQ rtx_conf_cm.o(.constdata) refers to moisture.o(i.main) for main stm32f10x_adc.o(i.ADC_DeInit) refers to stm32f10x_rcc.o(i.RCC_APB2PeriphResetCmd) for RCC_APB2PeriphResetCmd @@ -430,19 +385,13 @@ Section Cross References stm32f10x_usart.o(i.USART_DeInit) refers to stm32f10x_rcc.o(i.RCC_APB2PeriphResetCmd) for RCC_APB2PeriphResetCmd stm32f10x_usart.o(i.USART_DeInit) refers to stm32f10x_rcc.o(i.RCC_APB1PeriphResetCmd) for RCC_APB1PeriphResetCmd stm32f10x_usart.o(i.USART_Init) refers to stm32f10x_rcc.o(i.RCC_GetClocksFreq) for RCC_GetClocksFreq - startup_stm32f10x_md.o(STACK) refers (Special) to heapauxi.o(.text) for __use_two_region_memory - startup_stm32f10x_md.o(HEAP) refers (Special) to heapauxi.o(.text) for __use_two_region_memory - startup_stm32f10x_md.o(RESET) refers (Special) to heapauxi.o(.text) for __use_two_region_memory startup_stm32f10x_md.o(RESET) refers to startup_stm32f10x_md.o(STACK) for __initial_sp startup_stm32f10x_md.o(RESET) refers to startup_stm32f10x_md.o(.text) for Reset_Handler startup_stm32f10x_md.o(RESET) refers to hal_cm3.o(.emb_text) for SVC_Handler startup_stm32f10x_md.o(RESET) refers to usarthmi.o(i.TIM2_IRQHandler) for TIM2_IRQHandler startup_stm32f10x_md.o(RESET) refers to usarthmi.o(i.USART1_IRQHandler) for USART1_IRQHandler - startup_stm32f10x_md.o(.text) refers (Special) to heapauxi.o(.text) for __use_two_region_memory startup_stm32f10x_md.o(.text) refers to system_stm32f10x.o(i.SystemInit) for SystemInit - startup_stm32f10x_md.o(.text) refers to __main.o(!!!main) for __main - startup_stm32f10x_md.o(.text) refers to startup_stm32f10x_md.o(HEAP) for Heap_Mem - startup_stm32f10x_md.o(.text) refers to startup_stm32f10x_md.o(STACK) for Stack_Mem + startup_stm32f10x_md.o(.text) refers to entry.o(.ARM.Collect$$$$00000000) for __main system_stm32f10x.o(i.SetSysClock) refers to system_stm32f10x.o(i.SetSysClockTo72) for SetSysClockTo72 system_stm32f10x.o(i.SystemCoreClockUpdate) refers to system_stm32f10x.o(.data) for SystemCoreClock system_stm32f10x.o(i.SystemInit) refers to system_stm32f10x.o(i.SetSysClock) for SetSysClock @@ -589,7 +538,7 @@ Section Cross References rt_cmsis.o(i.svcTimerDelete) refers to rt_cmsis.o(i.rt_id2obj) for rt_id2obj rt_cmsis.o(i.svcTimerDelete) refers to rt_cmsis.o(i.rt_timer_remove) for rt_timer_remove rt_cmsis.o(i.svcTimerStart) refers to rt_cmsis.o(i.rt_id2obj) for rt_id2obj - rt_cmsis.o(i.svcTimerStart) refers to lludivv7m.o(.text) for __aeabi_uldivmod + rt_cmsis.o(i.svcTimerStart) refers to uldiv.o(.text) for __aeabi_uldivmod rt_cmsis.o(i.svcTimerStart) refers to rt_cmsis.o(i.rt_timer_remove) for rt_timer_remove rt_cmsis.o(i.svcTimerStart) refers to rt_cmsis.o(i.rt_timer_insert) for rt_timer_insert rt_cmsis.o(i.svcTimerStart) refers to rtx_conf_cm.o(.constdata) for os_clockrate @@ -684,25 +633,6 @@ Section Cross References rt_task.o(i.rt_tsk_prio) refers to rtx_conf_cm.o(.bss) for os_active_TCB rt_task.o(i.rt_tsk_prio) refers to rt_list.o(.bss) for os_rdy rt_task.o(i.rt_tsk_self) refers to rt_task.o(.data) for .data - rt_mutex.o(i.rt_mut_delete) refers to rt_list.o(i.rt_resort_prio) for rt_resort_prio - rt_mutex.o(i.rt_mut_delete) refers to rt_list.o(i.rt_get_first) for rt_get_first - rt_mutex.o(i.rt_mut_delete) refers to hal_cm.o(i.rt_ret_val) for rt_ret_val - rt_mutex.o(i.rt_mut_delete) refers to rt_list.o(i.rt_rmv_dly) for rt_rmv_dly - rt_mutex.o(i.rt_mut_delete) refers to rt_list.o(i.rt_put_prio) for rt_put_prio - rt_mutex.o(i.rt_mut_delete) refers to rt_task.o(i.rt_dispatch) for rt_dispatch - rt_mutex.o(i.rt_mut_delete) refers to rt_task.o(.data) for os_tsk - rt_mutex.o(i.rt_mut_delete) refers to rt_list.o(.bss) for os_rdy - rt_mutex.o(i.rt_mut_release) refers to rt_list.o(i.rt_get_first) for rt_get_first - rt_mutex.o(i.rt_mut_release) refers to hal_cm.o(i.rt_ret_val) for rt_ret_val - rt_mutex.o(i.rt_mut_release) refers to rt_list.o(i.rt_rmv_dly) for rt_rmv_dly - rt_mutex.o(i.rt_mut_release) refers to rt_list.o(i.rt_put_prio) for rt_put_prio - rt_mutex.o(i.rt_mut_release) refers to rt_task.o(i.rt_dispatch) for rt_dispatch - rt_mutex.o(i.rt_mut_release) refers to rt_task.o(.data) for os_tsk - rt_mutex.o(i.rt_mut_release) refers to rt_list.o(.bss) for os_rdy - rt_mutex.o(i.rt_mut_wait) refers to rt_list.o(i.rt_resort_prio) for rt_resort_prio - rt_mutex.o(i.rt_mut_wait) refers to rt_list.o(i.rt_put_prio) for rt_put_prio - rt_mutex.o(i.rt_mut_wait) refers to rt_task.o(i.rt_block) for rt_block - rt_mutex.o(i.rt_mut_wait) refers to rt_task.o(.data) for os_tsk rt_system.o(i.os_tick_init) refers to rtx_conf_cm.o(.constdata) for os_trv rt_system.o(i.os_tick_val) refers to rtx_conf_cm.o(.constdata) for os_trv rt_system.o(i.rt_pop_req) refers to rt_list.o(i.rt_put_rdy_first) for rt_put_rdy_first @@ -823,6 +753,28 @@ Section Cross References rt_time.o(i.rt_itv_wait) refers to rt_task.o(.data) for os_tsk rt_time.o(i.rt_itv_wait) refers to rt_time.o(.data) for .data rt_time.o(i.rt_time_get) refers to rt_time.o(.data) for .data + rt_mutex.o(i.rt_mut_delete) refers to rt_list.o(i.rt_resort_prio) for rt_resort_prio + rt_mutex.o(i.rt_mut_delete) refers to rt_list.o(i.rt_get_first) for rt_get_first + rt_mutex.o(i.rt_mut_delete) refers to hal_cm.o(i.rt_ret_val) for rt_ret_val + rt_mutex.o(i.rt_mut_delete) refers to rt_list.o(i.rt_rmv_dly) for rt_rmv_dly + rt_mutex.o(i.rt_mut_delete) refers to rt_list.o(i.rt_put_prio) for rt_put_prio + rt_mutex.o(i.rt_mut_delete) refers to rt_task.o(i.rt_dispatch) for rt_dispatch + rt_mutex.o(i.rt_mut_delete) refers to rt_task.o(.data) for os_tsk + rt_mutex.o(i.rt_mut_delete) refers to rt_list.o(.bss) for os_rdy + rt_mutex.o(i.rt_mut_release) refers to rt_list.o(i.rt_get_first) for rt_get_first + rt_mutex.o(i.rt_mut_release) refers to hal_cm.o(i.rt_ret_val) for rt_ret_val + rt_mutex.o(i.rt_mut_release) refers to rt_list.o(i.rt_rmv_dly) for rt_rmv_dly + rt_mutex.o(i.rt_mut_release) refers to rt_list.o(i.rt_put_prio) for rt_put_prio + rt_mutex.o(i.rt_mut_release) refers to rt_task.o(i.rt_dispatch) for rt_dispatch + rt_mutex.o(i.rt_mut_release) refers to rt_task.o(.data) for os_tsk + rt_mutex.o(i.rt_mut_release) refers to rt_list.o(.bss) for os_rdy + rt_mutex.o(i.rt_mut_wait) refers to rt_list.o(i.rt_resort_prio) for rt_resort_prio + rt_mutex.o(i.rt_mut_wait) refers to rt_list.o(i.rt_put_prio) for rt_put_prio + rt_mutex.o(i.rt_mut_wait) refers to rt_task.o(i.rt_block) for rt_block + rt_mutex.o(i.rt_mut_wait) refers to rt_task.o(.data) for os_tsk + rt_membox.o(i._calloc_box) refers to hal_cm3.o(.emb_text) for _alloc_box + hal_cm.o(i.dbg_init) refers to hal_cm.o(.data) for .data + hal_cm.o(i.rt_init_stack) refers to rtx_conf_cm.o(.constdata) for os_stackinfo rt_robin.o(i.rt_chk_robin) refers to rt_list.o(i.rt_get_first) for rt_get_first rt_robin.o(i.rt_chk_robin) refers to rt_list.o(i.rt_put_prio) for rt_put_prio rt_robin.o(i.rt_chk_robin) refers to rt_robin.o(.data) for .data @@ -830,9 +782,6 @@ Section Cross References rt_robin.o(i.rt_chk_robin) refers to rt_time.o(.data) for os_time rt_robin.o(i.rt_init_robin) refers to rt_robin.o(.data) for .data rt_robin.o(i.rt_init_robin) refers to rtx_conf_cm.o(.constdata) for os_rrobin - rt_membox.o(i._calloc_box) refers to hal_cm3.o(.emb_text) for _alloc_box - hal_cm.o(i.dbg_init) refers to hal_cm.o(.data) for .data - hal_cm.o(i.rt_init_stack) refers to rtx_conf_cm.o(.constdata) for os_stackinfo hal_cm3.o(.emb_text) refers to rtx_conf_cm.o(.constdata) for os_flags hal_cm3.o(.emb_text) refers to rt_membox.o(i.rt_alloc_box) for rt_alloc_box hal_cm3.o(.emb_text) refers to rt_membox.o(i.rt_free_box) for rt_free_box @@ -842,263 +791,293 @@ Section Cross References hal_cm3.o(.emb_text) refers to rt_system.o(i.rt_pop_req) for rt_pop_req hal_cm3.o(.emb_text) refers to rt_system.o(i.rt_systick) for rt_systick hal_cm3.o(.emb_text) refers to rt_system.o(i.os_tick_irqack) for os_tick_irqack - libspace.o(.text) refers to libspace.o(.bss) for __libspace_start - __2sprintf.o(.text) refers to _printf_char_common.o(.text) for _printf_char_common - __2sprintf.o(.text) refers to _sputc.o(.text) for _sputc - noretval__2sprintf.o(.text) refers to _printf_char_common.o(.text) for _printf_char_common - noretval__2sprintf.o(.text) refers to _sputc.o(.text) for _sputc - __printf.o(.text) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent - _printf_str.o(.text) refers (Special) to _printf_char.o(.text) for _printf_cs_common - _printf_str.o(.text) refers (Weak) to _printf_pad.o(.text) for _printf_pre_padding - _printf_str.o(.text) refers (Weak) to _printf_pad.o(.text) for _printf_post_padding - _printf_dec.o(.text) refers to _printf_intcommon.o(.text) for _printf_int_common - __printf_flags.o(.text) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent - __printf_flags.o(.text) refers to __printf_flags.o(.constdata) for .constdata - __printf_ss.o(.text) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent - __printf_flags_ss.o(.text) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent - __printf_flags_ss.o(.text) refers to __printf_flags_ss.o(.constdata) for .constdata - __printf_wp.o(.text) refers to __printf_wp.o(i._is_digit) for _is_digit - __printf_wp.o(.text) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent - __printf_flags_wp.o(.text) refers to __printf_wp.o(i._is_digit) for _is_digit - __printf_flags_wp.o(.text) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent - __printf_flags_wp.o(.text) refers to __printf_flags_wp.o(.constdata) for .constdata - __printf_ss_wp.o(.text) refers to __printf_wp.o(i._is_digit) for _is_digit - __printf_ss_wp.o(.text) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent - __printf_flags_ss_wp.o(.text) refers to __printf_wp.o(i._is_digit) for _is_digit - __printf_flags_ss_wp.o(.text) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent - __printf_flags_ss_wp.o(.text) refers to __printf_flags_ss_wp.o(.constdata) for .constdata - _printf_s.o(.ARM.Collect$$_printf_percent$$00000014) refers (Weak) to _printf_char.o(.text) for _printf_string - _printf_d.o(.ARM.Collect$$_printf_percent$$00000009) refers (Weak) to _printf_dec.o(.text) for _printf_int_dec - _printf_f.o(.ARM.Collect$$_printf_percent$$00000003) refers (Weak) to printf1.o(x$fpl$printf1) for _printf_fp_dec - _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) refers (Special) to _printf_percent_end.o(.ARM.Collect$$_printf_percent$$00000017) for _printf_percent_end - exit.o(.text) refers to rtexit.o(.ARM.Collect$$rtexit$$00000000) for __rt_exit - __main.o(!!!main) refers to __rtentry.o(.ARM.Collect$$rtentry$$00000000) for __rt_entry - d2f.o(x$fpl$d2f) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - d2f.o(x$fpl$d2f) refers to fretinf.o(x$fpl$fretinf) for __fpl_fretinf - d2f.o(x$fpl$d2f) refers to dnaninf.o(x$fpl$dnaninf) for __fpl_dnaninf - ddiv.o(x$fpl$drdiv) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - ddiv.o(x$fpl$drdiv) refers to ddiv.o(x$fpl$ddiv) for ddiv_entry - ddiv.o(x$fpl$ddiv) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - ddiv.o(x$fpl$ddiv) refers to dretinf.o(x$fpl$dretinf) for __fpl_dretinf - ddiv.o(x$fpl$ddiv) refers to dnaninf.o(x$fpl$dnaninf) for __fpl_dnaninf - dflt_clz.o(x$fpl$dfltu) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - dflt_clz.o(x$fpl$dflt) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - dflt_clz.o(x$fpl$dfltn) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - dleqf.o(x$fpl$dleqf) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - dleqf.o(x$fpl$dleqf) refers to dnaninf.o(x$fpl$dnaninf) for __fpl_dnaninf - dleqf.o(x$fpl$dleqf) refers to dcmpi.o(x$fpl$dcmpinf) for __fpl_dcmp_Inf - dmul.o(x$fpl$dmul) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - dmul.o(x$fpl$dmul) refers to dretinf.o(x$fpl$dretinf) for __fpl_dretinf - dmul.o(x$fpl$dmul) refers to dnaninf.o(x$fpl$dnaninf) for __fpl_dnaninf - drleqf.o(x$fpl$drleqf) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - drleqf.o(x$fpl$drleqf) refers to dleqf.o(x$fpl$dleqf) for __fpl_dcmple_InfNaN - f2d.o(x$fpl$f2d) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - f2d.o(x$fpl$f2d) refers to fnaninf.o(x$fpl$fnaninf) for __fpl_fnaninf - f2d.o(x$fpl$f2d) refers to dretinf.o(x$fpl$dretinf) for __fpl_dretinf - faddsub_clz.o(x$fpl$fadd) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - faddsub_clz.o(x$fpl$fadd) refers to faddsub_clz.o(x$fpl$fsub) for _fsub1 - faddsub_clz.o(x$fpl$fadd) refers to fretinf.o(x$fpl$fretinf) for __fpl_fretinf - faddsub_clz.o(x$fpl$fadd) refers to fnaninf.o(x$fpl$fnaninf) for __fpl_fnaninf - faddsub_clz.o(x$fpl$frsb) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - faddsub_clz.o(x$fpl$frsb) refers to faddsub_clz.o(x$fpl$fadd) for _fadd1 - faddsub_clz.o(x$fpl$frsb) refers to faddsub_clz.o(x$fpl$fsub) for _fsub1 - faddsub_clz.o(x$fpl$fsub) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - faddsub_clz.o(x$fpl$fsub) refers to faddsub_clz.o(x$fpl$fadd) for _fadd1 - faddsub_clz.o(x$fpl$fsub) refers to fnaninf.o(x$fpl$fnaninf) for __fpl_fnaninf - fdiv.o(x$fpl$frdiv) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - fdiv.o(x$fpl$frdiv) refers to fdiv.o(x$fpl$fdiv) for _fdiv1 - fdiv.o(x$fpl$fdiv) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - fdiv.o(x$fpl$fdiv) refers to fretinf.o(x$fpl$fretinf) for __fpl_fretinf - fdiv.o(x$fpl$fdiv) refers to fnaninf.o(x$fpl$fnaninf) for __fpl_fnaninf - feqf.o(x$fpl$feqf) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - feqf.o(x$fpl$feqf) refers to fnaninf.o(x$fpl$fnaninf) for __fpl_fnaninf - feqf.o(x$fpl$feqf) refers to fcmpi.o(x$fpl$fcmpinf) for __fpl_fcmp_Inf - ffix.o(x$fpl$ffix) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - ffix.o(x$fpl$ffix) refers to fnaninf.o(x$fpl$fnaninf) for __fpl_fnaninf - ffix.o(x$fpl$ffixr) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - ffix.o(x$fpl$ffixr) refers to fnaninf.o(x$fpl$fnaninf) for __fpl_fnaninf - ffixu.o(x$fpl$ffixu) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - ffixu.o(x$fpl$ffixu) refers to fnaninf.o(x$fpl$fnaninf) for __fpl_fnaninf - ffixu.o(x$fpl$ffixur) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - ffixu.o(x$fpl$ffixur) refers to fnaninf.o(x$fpl$fnaninf) for __fpl_fnaninf - fflt_clz.o(x$fpl$ffltu) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - fflt_clz.o(x$fpl$fflt) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - fflt_clz.o(x$fpl$ffltn) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - fleqf.o(x$fpl$fleqf) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - fleqf.o(x$fpl$fleqf) refers to fnaninf.o(x$fpl$fnaninf) for __fpl_fnaninf - fleqf.o(x$fpl$fleqf) refers to fcmpi.o(x$fpl$fcmpinf) for __fpl_fcmp_Inf - fmul.o(x$fpl$fmul) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - fmul.o(x$fpl$fmul) refers to fretinf.o(x$fpl$fretinf) for __fpl_fretinf - fmul.o(x$fpl$fmul) refers to fnaninf.o(x$fpl$fnaninf) for __fpl_fnaninf - frleqf.o(x$fpl$frleqf) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - frleqf.o(x$fpl$frleqf) refers to fleqf.o(x$fpl$fleqf) for __fpl_fcmple_InfNaN - printf1.o(x$fpl$printf1) refers to _printf_fp_dec.o(.text) for _printf_fp_dec_real - __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 - __rtentry.o(.ARM.Collect$$rtentry$$00000000) refers (Special) to __rtentry2.o(.ARM.Collect$$rtentry$$0000000B) for __rt_entry_postli_1 - __rtentry.o(.ARM.Collect$$rtentry$$00000000) refers (Special) to __rtentry2.o(.ARM.Collect$$rtentry$$00000009) for __rt_entry_postsh_1 - __rtentry.o(.ARM.Collect$$rtentry$$00000000) refers (Special) to __rtentry2.o(.ARM.Collect$$rtentry$$00000002) for __rt_entry_presh_1 - __rtentry.o(.ARM.Collect$$rtentry$$00000000) refers (Special) to __rtentry4.o(.ARM.Collect$$rtentry$$00000004) for __rt_entry_sh - rtexit.o(.ARM.Collect$$rtexit$$00000000) refers (Special) to rtexit2.o(.ARM.Collect$$rtexit$$00000004) for __rt_exit_exit - rtexit.o(.ARM.Collect$$rtexit$$00000000) refers (Special) to rtexit2.o(.ARM.Collect$$rtexit$$00000003) for __rt_exit_ls - rtexit.o(.ARM.Collect$$rtexit$$00000000) refers (Special) to rtexit2.o(.ARM.Collect$$rtexit$$00000002) for __rt_exit_prels_1 - rtexit.o(.ARM.exidx) refers (Special) to rtexit2.o(.ARM.Collect$$rtexit$$00000004) for __rt_exit_exit - rtexit.o(.ARM.exidx) refers (Special) to rtexit2.o(.ARM.Collect$$rtexit$$00000003) for __rt_exit_ls - rtexit.o(.ARM.exidx) refers (Special) to rtexit2.o(.ARM.Collect$$rtexit$$00000002) for __rt_exit_prels_1 - rtexit.o(.ARM.exidx) refers to rtexit.o(.ARM.Collect$$rtexit$$00000000) for .ARM.Collect$$rtexit$$00000000 - aeabi_ldiv0_sigfpe.o(.text) refers to rt_div0.o(.text) for __rt_div0 - _printf_intcommon.o(.text) refers (Weak) to _printf_pad.o(.text) for _printf_pre_padding - _printf_intcommon.o(.text) refers (Weak) to _printf_pad.o(.text) for _printf_pre_padding - _printf_intcommon.o(.text) refers (Weak) to _printf_pad.o(.text) for _printf_post_padding - _printf_fp_dec.o(.text) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - _printf_fp_dec.o(.text) refers (Special) to lc_numeric_c.o(locale$$code) for _get_lc_numeric - _printf_fp_dec.o(.text) refers to bigflt0.o(.text) for _btod_etento - _printf_fp_dec.o(.text) refers to btod.o(CL$$btod_d2e) for _btod_d2e - _printf_fp_dec.o(.text) refers to btod.o(CL$$btod_ediv) for _btod_ediv - _printf_fp_dec.o(.text) refers to btod.o(CL$$btod_emul) for _btod_emul - _printf_fp_dec.o(.text) refers to lludiv10.o(.text) for _ll_udiv10 - _printf_fp_dec.o(.text) refers to fpclassify.o(i.__ARM_fpclassify) for __ARM_fpclassify - _printf_fp_dec.o(.text) refers to _printf_fp_infnan.o(.text) for _printf_fp_infnan - _printf_fp_dec.o(.text) refers (Weak) to _printf_pad.o(.text) for _printf_pre_padding - _printf_fp_dec.o(.text) refers (Weak) to _printf_pad.o(.text) for _printf_pre_padding - _printf_fp_dec.o(.text) refers to rt_locale_twolibspace.o(.text) for __rt_locale - _printf_fp_dec.o(.text) refers (Weak) to _printf_pad.o(.text) for _printf_post_padding - _printf_char_common.o(.text) refers to __printf_flags_wp.o(.text) for __printf - _printf_char.o(.text) refers (Weak) to _printf_str.o(.text) for _printf_str - dcmpi.o(x$fpl$dcmpinf) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - dnaninf.o(x$fpl$dnaninf) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - dretinf.o(x$fpl$dretinf) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - fcmpi.o(x$fpl$fcmpinf) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - fnaninf.o(x$fpl$fnaninf) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - fretinf.o(x$fpl$fretinf) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - __rtentry2.o(.ARM.Collect$$rtentry$$00000008) refers to boardinit2.o(.text) for _platform_post_stackheap_init - __rtentry2.o(.ARM.Collect$$rtentry$$0000000A) refers to libinit.o(.ARM.Collect$$libinit$$00000000) for __rt_lib_init - __rtentry2.o(.ARM.Collect$$rtentry$$0000000B) refers to rtx_conf_cm.o(.emb_text) for _platform_post_lib_init - __rtentry2.o(.ARM.Collect$$rtentry$$0000000D) refers to moisture.o(i.main) for main - __rtentry2.o(.ARM.Collect$$rtentry$$0000000D) refers to exit.o(.text) for exit - __rtentry2.o(.ARM.exidx) refers to __rtentry2.o(.ARM.Collect$$rtentry$$00000001) for .ARM.Collect$$rtentry$$00000001 - __rtentry2.o(.ARM.exidx) refers to __rtentry2.o(.ARM.Collect$$rtentry$$00000008) for .ARM.Collect$$rtentry$$00000008 - __rtentry2.o(.ARM.exidx) refers to __rtentry2.o(.ARM.Collect$$rtentry$$0000000A) for .ARM.Collect$$rtentry$$0000000A - __rtentry2.o(.ARM.exidx) refers to __rtentry2.o(.ARM.Collect$$rtentry$$0000000B) for .ARM.Collect$$rtentry$$0000000B - __rtentry2.o(.ARM.exidx) refers to __rtentry2.o(.ARM.Collect$$rtentry$$0000000D) for .ARM.Collect$$rtentry$$0000000D - __rtentry4.o(.ARM.Collect$$rtentry$$00000004) refers to sys_stackheap_outer.o(.text) for __user_setup_stackheap - __rtentry4.o(.ARM.exidx) refers to __rtentry4.o(.ARM.Collect$$rtentry$$00000004) for .ARM.Collect$$rtentry$$00000004 - rtexit2.o(.ARM.Collect$$rtexit$$00000003) refers to libshutdown.o(.ARM.Collect$$libshutdown$$00000000) for __rt_lib_shutdown - rtexit2.o(.ARM.Collect$$rtexit$$00000004) refers to sys_exit.o(.text) for _sys_exit - rtexit2.o(.ARM.exidx) refers to rtexit2.o(.ARM.Collect$$rtexit$$00000001) for .ARM.Collect$$rtexit$$00000001 - rtexit2.o(.ARM.exidx) refers to rtexit2.o(.ARM.Collect$$rtexit$$00000003) for .ARM.Collect$$rtexit$$00000003 - rtexit2.o(.ARM.exidx) refers to rtexit2.o(.ARM.Collect$$rtexit$$00000004) for .ARM.Collect$$rtexit$$00000004 - rt_div0.o(.text) refers to defsig_fpe_outer.o(.text) for __rt_SIGFPE - rt_locale.o(.text) refers to rt_locale.o(.bss) for __rt_locale_data - rt_locale_intlibspace.o(.text) refers to libspace.o(.bss) for __libspace_start - rt_locale_twolibspace.o(.text) refers to libspace.o(.text) for __user_perproc_libspace - _printf_fp_infnan.o(.text) refers (Weak) to _printf_pad.o(.text) for _printf_pre_padding - _printf_fp_infnan.o(.text) refers (Weak) to _printf_pad.o(.text) for _printf_post_padding - bigflt0.o(.text) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - bigflt0.o(.text) refers to btod.o(CL$$btod_emul) for _btod_emul - bigflt0.o(.text) refers to btod.o(CL$$btod_ediv) for _btod_ediv - bigflt0.o(.text) refers to bigflt0.o(.constdata) for .constdata - bigflt0.o(.constdata) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - btod.o(CL$$btod_d2e) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - btod.o(CL$$btod_d2e) refers to btod.o(CL$$btod_d2e_norm_op1) for _d2e_norm_op1 - btod.o(CL$$btod_d2e_norm_op1) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - btod.o(CL$$btod_d2e_norm_op1) refers to btod.o(CL$$btod_d2e_denorm_low) for _d2e_denorm_low - btod.o(CL$$btod_d2e_denorm_low) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - btod.o(CL$$btod_emul) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - btod.o(CL$$btod_emul) refers to btod.o(CL$$btod_mult_common) for __btod_mult_common - btod.o(CL$$btod_emul) refers to btod.o(CL$$btod_e2e) for _e2e - btod.o(CL$$btod_ediv) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - btod.o(CL$$btod_ediv) refers to btod.o(CL$$btod_div_common) for __btod_div_common - btod.o(CL$$btod_ediv) refers to btod.o(CL$$btod_e2e) for _e2e - btod.o(CL$$btod_emuld) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - btod.o(CL$$btod_emuld) refers to btod.o(CL$$btod_mult_common) for __btod_mult_common - btod.o(CL$$btod_emuld) refers to btod.o(CL$$btod_e2d) for _e2d - btod.o(CL$$btod_edivd) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - btod.o(CL$$btod_edivd) refers to btod.o(CL$$btod_div_common) for __btod_div_common - btod.o(CL$$btod_edivd) refers to btod.o(CL$$btod_e2d) for _e2d - btod.o(CL$$btod_e2e) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - btod.o(CL$$btod_e2d) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - btod.o(CL$$btod_e2d) refers to btod.o(CL$$btod_e2e) for _e2e - btod.o(CL$$btod_mult_common) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - btod.o(CL$$btod_div_common) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - lc_numeric_c.o(locale$$data) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000016) for __rt_lib_init_lc_numeric_2 - lc_numeric_c.o(locale$$code) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000016) for __rt_lib_init_lc_numeric_2 - lc_numeric_c.o(locale$$code) refers to strcmpv7m.o(.text) for strcmp - lc_numeric_c.o(locale$$code) refers to lc_numeric_c.o(locale$$data) for __lcnum_c_name - istatus.o(x$fpl$ieeestatus) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - fpclassify.o(i.__ARM_fpclassify) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - sys_exit.o(.text) refers (Special) to use_no_semi.o(.text) for __I$use$semihosting - sys_exit.o(.text) refers (Special) to indicate_semi.o(.text) for __semihosting_library_function - sys_stackheap_outer.o(.text) refers to libspace.o(.text) for __user_perproc_libspace - sys_stackheap_outer.o(.text) refers to startup_stm32f10x_md.o(.text) for __user_initial_stackheap - defsig_fpe_outer.o(.text) refers to defsig_fpe_inner.o(.text) for __rt_SIGFPE_inner - defsig_fpe_outer.o(.text) refers to defsig_exit.o(.text) for __sig_exit - defsig_fpe_formal.o(.text) refers to rt_raise.o(.text) for __rt_raise - libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$0000002E) for __rt_lib_init_alloca_1 - libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$0000002C) for __rt_lib_init_argv_1 - libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$0000001B) for __rt_lib_init_atexit_1 - libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000021) for __rt_lib_init_clock_1 - libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000032) for __rt_lib_init_cpp_1 - libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000030) for __rt_lib_init_exceptions_1 - libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000002) for __rt_lib_init_fp_1 - libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$0000001F) for __rt_lib_init_fp_trap_1 - libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000023) for __rt_lib_init_getenv_1 - libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$0000000A) for __rt_lib_init_heap_1 - libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000011) for __rt_lib_init_lc_collate_1 - libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000013) for __rt_lib_init_lc_ctype_1 - libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000015) for __rt_lib_init_lc_monetary_1 - libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000017) for __rt_lib_init_lc_numeric_1 - libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000019) for __rt_lib_init_lc_time_1 - libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000004) for __rt_lib_init_preinit_1 - libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$0000000E) for __rt_lib_init_rand_1 - libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000033) for __rt_lib_init_return - libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$0000001D) for __rt_lib_init_signal_1 - libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000025) for __rt_lib_init_stdio_1 - libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$0000000C) for __rt_lib_init_user_alloc_1 - libinit2.o(.ARM.Collect$$libinit$$0000000F) refers (Weak) to rt_locale_twolibspace.o(.text) for __rt_locale - libinit2.o(.ARM.Collect$$libinit$$00000010) refers to libinit2.o(.ARM.Collect$$libinit$$0000000F) for .ARM.Collect$$libinit$$0000000F - libinit2.o(.ARM.Collect$$libinit$$00000012) refers to libinit2.o(.ARM.Collect$$libinit$$0000000F) for .ARM.Collect$$libinit$$0000000F - libinit2.o(.ARM.Collect$$libinit$$00000014) refers to libinit2.o(.ARM.Collect$$libinit$$0000000F) for .ARM.Collect$$libinit$$0000000F - libinit2.o(.ARM.Collect$$libinit$$00000016) refers to libinit2.o(.ARM.Collect$$libinit$$0000000F) for .ARM.Collect$$libinit$$0000000F - libinit2.o(.ARM.Collect$$libinit$$00000016) refers (Weak) to lc_numeric_c.o(locale$$code) for _get_lc_numeric - libinit2.o(.ARM.Collect$$libinit$$00000018) refers to libinit2.o(.ARM.Collect$$libinit$$0000000F) for .ARM.Collect$$libinit$$0000000F - libinit2.o(.ARM.Collect$$libinit$$00000026) refers to argv_veneer.o(.emb_text) for __ARM_argv_veneer - libinit2.o(.ARM.Collect$$libinit$$00000027) refers to argv_veneer.o(.emb_text) for __ARM_argv_veneer - libshutdown.o(.ARM.Collect$$libshutdown$$00000000) refers (Special) to libshutdown2.o(.ARM.Collect$$libshutdown$$00000004) for __rt_lib_shutdown_cpp_1 - libshutdown.o(.ARM.Collect$$libshutdown$$00000000) refers (Special) to libshutdown2.o(.ARM.Collect$$libshutdown$$00000002) for __rt_lib_shutdown_fini_1 - libshutdown.o(.ARM.Collect$$libshutdown$$00000000) refers (Special) to libshutdown2.o(.ARM.Collect$$libshutdown$$00000009) for __rt_lib_shutdown_fp_trap_1 - libshutdown.o(.ARM.Collect$$libshutdown$$00000000) refers (Special) to libshutdown2.o(.ARM.Collect$$libshutdown$$00000011) for __rt_lib_shutdown_heap_1 - libshutdown.o(.ARM.Collect$$libshutdown$$00000000) refers (Special) to libshutdown2.o(.ARM.Collect$$libshutdown$$00000012) for __rt_lib_shutdown_return - libshutdown.o(.ARM.Collect$$libshutdown$$00000000) refers (Special) to libshutdown2.o(.ARM.Collect$$libshutdown$$0000000C) for __rt_lib_shutdown_signal_1 - libshutdown.o(.ARM.Collect$$libshutdown$$00000000) refers (Special) to libshutdown2.o(.ARM.Collect$$libshutdown$$00000006) for __rt_lib_shutdown_stdio_1 - libshutdown.o(.ARM.Collect$$libshutdown$$00000000) refers (Special) to libshutdown2.o(.ARM.Collect$$libshutdown$$0000000E) for __rt_lib_shutdown_user_alloc_1 - rt_raise.o(.text) refers to __raise.o(.text) for __raise - rt_raise.o(.text) refers to sys_exit.o(.text) for _sys_exit - defsig_exit.o(.text) refers to sys_exit.o(.text) for _sys_exit - defsig_fpe_inner.o(.text) refers to defsig_general.o(.text) for __default_signal_display - argv_veneer.o(.emb_text) refers to no_argv.o(.text) for __ARM_get_argv - __raise.o(.text) refers to defsig.o(CL$$defsig) for __default_signal_handler - defsig_general.o(.text) refers to sys_wrch.o(.text) for _ttywrch - _get_argv_nomalloc.o(.text) refers (Special) to hrguard.o(.text) for __heap_region$guard - _get_argv_nomalloc.o(.text) refers to defsig_rtmem_outer.o(.text) for __rt_SIGRTMEM - _get_argv_nomalloc.o(.text) refers to sys_command.o(.text) for _sys_command_string - sys_wrch.o(.text) refers (Special) to use_no_semi.o(.text) for __I$use$semihosting - sys_wrch.o(.text) refers (Special) to indicate_semi.o(.text) for __semihosting_library_function - sys_command.o(.text) refers (Special) to use_no_semi.o(.text) for __I$use$semihosting - sys_command.o(.text) refers (Special) to indicate_semi.o(.text) for __semihosting_library_function - defsig_rtmem_outer.o(.text) refers to defsig_rtmem_inner.o(.text) for __rt_SIGRTMEM_inner - defsig_rtmem_outer.o(.text) refers to defsig_exit.o(.text) for __sig_exit - defsig_rtmem_formal.o(.text) refers to rt_raise.o(.text) for __rt_raise - defsig.o(CL$$defsig) refers to defsig_fpe_inner.o(.text) for __rt_SIGFPE_inner - defsig.o(CL$$defsig) refers to defsig_rtmem_inner.o(.text) for __rt_SIGRTMEM_inner - defsig_abrt_inner.o(.text) refers to defsig_general.o(.text) for __default_signal_display - defsig_rtred_inner.o(.text) refers to defsig_general.o(.text) for __default_signal_display - defsig_rtmem_inner.o(.text) refers to defsig_general.o(.text) for __default_signal_display - defsig_stak_inner.o(.text) refers to defsig_general.o(.text) for __default_signal_display - defsig_pvfn_inner.o(.text) refers to defsig_general.o(.text) for __default_signal_display - defsig_cppl_inner.o(.text) refers to defsig_general.o(.text) for __default_signal_display - defsig_segv_inner.o(.text) refers to defsig_general.o(.text) for __default_signal_display - defsig_other.o(.text) refers to defsig_general.o(.text) for __default_signal_display + entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry10a.o(.ARM.Collect$$$$0000000F) for __rt_final_cpp + entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry11a.o(.ARM.Collect$$$$00000011) for __rt_final_exit + entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry12b.o(.ARM.Collect$$$$0000000E) for __rt_lib_shutdown_fini + entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry7b.o(.ARM.Collect$$$$00000008) for _main_clock + entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry8b.o(.ARM.Collect$$$$0000000A) for _main_cpp_init + entry.o(.ARM.Collect$$$$00000000) refers (Special) to rtx_conf_cm.o(.ARM.Collect$$$$000000FF) for _main_init + entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry5.o(.ARM.Collect$$$$00000004) for _main_scatterload + entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry2.o(.ARM.Collect$$$$00000001) for _main_stk + uldiv.o(.text) refers to llushr.o(.text) for __aeabi_llsr + uldiv.o(.text) refers to llshl.o(.text) for __aeabi_llsl + printfb.o(i.__0fprintf$bare) refers to printfb.o(i._printf_core) for _printf_core + printfb.o(i.__0fprintf$bare) refers to ad7190.o(i.fputc) for fputc + printfb.o(i.__0printf$bare) refers to printfb.o(i._printf_core) for _printf_core + printfb.o(i.__0printf$bare) refers to ad7190.o(i.fputc) for fputc + printfb.o(i.__0printf$bare) refers to stdout.o(.data) for __stdout + printfb.o(i.__0snprintf$bare) refers to printfb.o(i._printf_core) for _printf_core + printfb.o(i.__0snprintf$bare) refers to printfb.o(i._snputc) for _snputc + printfb.o(i.__0sprintf$bare) refers to printfb.o(i._printf_core) for _printf_core + printfb.o(i.__0sprintf$bare) refers to printfb.o(i._sputc) for _sputc + printfb.o(i.__0vfprintf$bare) refers to printfb.o(i._printf_core) for _printf_core + printfb.o(i.__0vfprintf$bare) refers to ad7190.o(i.fputc) for fputc + printfb.o(i.__0vprintf$bare) refers to printfb.o(i._printf_core) for _printf_core + printfb.o(i.__0vprintf$bare) refers to ad7190.o(i.fputc) for fputc + printfb.o(i.__0vprintf$bare) refers to stdout.o(.data) for __stdout + printfb.o(i.__0vsnprintf$bare) refers to printfb.o(i._printf_core) for _printf_core + printfb.o(i.__0vsnprintf$bare) refers to printfb.o(i._snputc) for _snputc + printfb.o(i.__0vsprintf$bare) refers to printfb.o(i._printf_core) for _printf_core + printfb.o(i.__0vsprintf$bare) refers to printfb.o(i._sputc) for _sputc + printf0.o(i.__0fprintf$0) refers to printf0.o(i._printf_core) for _printf_core + printf0.o(i.__0fprintf$0) refers to ad7190.o(i.fputc) for fputc + printf0.o(i.__0printf$0) refers to printf0.o(i._printf_core) for _printf_core + printf0.o(i.__0printf$0) refers to ad7190.o(i.fputc) for fputc + printf0.o(i.__0printf$0) refers to stdout.o(.data) for __stdout + printf0.o(i.__0snprintf$0) refers to printf0.o(i._printf_core) for _printf_core + printf0.o(i.__0snprintf$0) refers to printf0.o(i._snputc) for _snputc + printf0.o(i.__0sprintf$0) refers to printf0.o(i._printf_core) for _printf_core + printf0.o(i.__0sprintf$0) refers to printf0.o(i._sputc) for _sputc + printf0.o(i.__0vfprintf$0) refers to printf0.o(i._printf_core) for _printf_core + printf0.o(i.__0vfprintf$0) refers to ad7190.o(i.fputc) for fputc + printf0.o(i.__0vprintf$0) refers to printf0.o(i._printf_core) for _printf_core + printf0.o(i.__0vprintf$0) refers to ad7190.o(i.fputc) for fputc + printf0.o(i.__0vprintf$0) refers to stdout.o(.data) for __stdout + printf0.o(i.__0vsnprintf$0) refers to printf0.o(i._printf_core) for _printf_core + printf0.o(i.__0vsnprintf$0) refers to printf0.o(i._snputc) for _snputc + printf0.o(i.__0vsprintf$0) refers to printf0.o(i._printf_core) for _printf_core + printf0.o(i.__0vsprintf$0) refers to printf0.o(i._sputc) for _sputc + printf1.o(i.__0fprintf$1) refers to printf1.o(i._printf_core) for _printf_core + printf1.o(i.__0fprintf$1) refers to ad7190.o(i.fputc) for fputc + printf1.o(i.__0printf$1) refers to printf1.o(i._printf_core) for _printf_core + printf1.o(i.__0printf$1) refers to ad7190.o(i.fputc) for fputc + printf1.o(i.__0printf$1) refers to stdout.o(.data) for __stdout + printf1.o(i.__0snprintf$1) refers to printf1.o(i._printf_core) for _printf_core + printf1.o(i.__0snprintf$1) refers to printf1.o(i._snputc) for _snputc + printf1.o(i.__0sprintf$1) refers to printf1.o(i._printf_core) for _printf_core + printf1.o(i.__0sprintf$1) refers to printf1.o(i._sputc) for _sputc + printf1.o(i.__0vfprintf$1) refers to printf1.o(i._printf_core) for _printf_core + printf1.o(i.__0vfprintf$1) refers to ad7190.o(i.fputc) for fputc + printf1.o(i.__0vprintf$1) refers to printf1.o(i._printf_core) for _printf_core + printf1.o(i.__0vprintf$1) refers to ad7190.o(i.fputc) for fputc + printf1.o(i.__0vprintf$1) refers to stdout.o(.data) for __stdout + printf1.o(i.__0vsnprintf$1) refers to printf1.o(i._printf_core) for _printf_core + printf1.o(i.__0vsnprintf$1) refers to printf1.o(i._snputc) for _snputc + printf1.o(i.__0vsprintf$1) refers to printf1.o(i._printf_core) for _printf_core + printf1.o(i.__0vsprintf$1) refers to printf1.o(i._sputc) for _sputc + printf1.o(i._printf_core) refers to uidiv.o(.text) for __aeabi_uidivmod + printf2.o(i.__0fprintf$2) refers to printf2.o(i._printf_core) for _printf_core + printf2.o(i.__0fprintf$2) refers to ad7190.o(i.fputc) for fputc + printf2.o(i.__0printf$2) refers to printf2.o(i._printf_core) for _printf_core + printf2.o(i.__0printf$2) refers to ad7190.o(i.fputc) for fputc + printf2.o(i.__0printf$2) refers to stdout.o(.data) for __stdout + printf2.o(i.__0snprintf$2) refers to printf2.o(i._printf_core) for _printf_core + printf2.o(i.__0snprintf$2) refers to printf2.o(i._snputc) for _snputc + printf2.o(i.__0sprintf$2) refers to printf2.o(i._printf_core) for _printf_core + printf2.o(i.__0sprintf$2) refers to printf2.o(i._sputc) for _sputc + printf2.o(i.__0vfprintf$2) refers to printf2.o(i._printf_core) for _printf_core + printf2.o(i.__0vfprintf$2) refers to ad7190.o(i.fputc) for fputc + printf2.o(i.__0vprintf$2) refers to printf2.o(i._printf_core) for _printf_core + printf2.o(i.__0vprintf$2) refers to ad7190.o(i.fputc) for fputc + printf2.o(i.__0vprintf$2) refers to stdout.o(.data) for __stdout + printf2.o(i.__0vsnprintf$2) refers to printf2.o(i._printf_core) for _printf_core + printf2.o(i.__0vsnprintf$2) refers to printf2.o(i._snputc) for _snputc + printf2.o(i.__0vsprintf$2) refers to printf2.o(i._printf_core) for _printf_core + printf2.o(i.__0vsprintf$2) refers to printf2.o(i._sputc) for _sputc + printf3.o(i.__0fprintf$3) refers to printf3.o(i._printf_core) for _printf_core + printf3.o(i.__0fprintf$3) refers to ad7190.o(i.fputc) for fputc + printf3.o(i.__0printf$3) refers to printf3.o(i._printf_core) for _printf_core + printf3.o(i.__0printf$3) refers to ad7190.o(i.fputc) for fputc + printf3.o(i.__0printf$3) refers to stdout.o(.data) for __stdout + printf3.o(i.__0snprintf$3) refers to printf3.o(i._printf_core) for _printf_core + printf3.o(i.__0snprintf$3) refers to printf3.o(i._snputc) for _snputc + printf3.o(i.__0sprintf$3) refers to printf3.o(i._printf_core) for _printf_core + printf3.o(i.__0sprintf$3) refers to printf3.o(i._sputc) for _sputc + printf3.o(i.__0vfprintf$3) refers to printf3.o(i._printf_core) for _printf_core + printf3.o(i.__0vfprintf$3) refers to ad7190.o(i.fputc) for fputc + printf3.o(i.__0vprintf$3) refers to printf3.o(i._printf_core) for _printf_core + printf3.o(i.__0vprintf$3) refers to ad7190.o(i.fputc) for fputc + printf3.o(i.__0vprintf$3) refers to stdout.o(.data) for __stdout + printf3.o(i.__0vsnprintf$3) refers to printf3.o(i._printf_core) for _printf_core + printf3.o(i.__0vsnprintf$3) refers to printf3.o(i._snputc) for _snputc + printf3.o(i.__0vsprintf$3) refers to printf3.o(i._printf_core) for _printf_core + printf3.o(i.__0vsprintf$3) refers to printf3.o(i._sputc) for _sputc + printf3.o(i._printf_core) refers to uidiv.o(.text) for __aeabi_uidivmod + printf4.o(i.__0fprintf$4) refers to printf4.o(i._printf_core) for _printf_core + printf4.o(i.__0fprintf$4) refers to ad7190.o(i.fputc) for fputc + printf4.o(i.__0printf$4) refers to printf4.o(i._printf_core) for _printf_core + printf4.o(i.__0printf$4) refers to ad7190.o(i.fputc) for fputc + printf4.o(i.__0printf$4) refers to stdout.o(.data) for __stdout + printf4.o(i.__0snprintf$4) refers to printf4.o(i._printf_core) for _printf_core + printf4.o(i.__0snprintf$4) refers to printf4.o(i._snputc) for _snputc + printf4.o(i.__0sprintf$4) refers to printf4.o(i._printf_core) for _printf_core + printf4.o(i.__0sprintf$4) refers to printf4.o(i._sputc) for _sputc + printf4.o(i.__0vfprintf$4) refers to printf4.o(i._printf_core) for _printf_core + printf4.o(i.__0vfprintf$4) refers to ad7190.o(i.fputc) for fputc + printf4.o(i.__0vprintf$4) refers to printf4.o(i._printf_core) for _printf_core + printf4.o(i.__0vprintf$4) refers to ad7190.o(i.fputc) for fputc + printf4.o(i.__0vprintf$4) refers to stdout.o(.data) for __stdout + printf4.o(i.__0vsnprintf$4) refers to printf4.o(i._printf_core) for _printf_core + printf4.o(i.__0vsnprintf$4) refers to printf4.o(i._snputc) for _snputc + printf4.o(i.__0vsprintf$4) refers to printf4.o(i._printf_core) for _printf_core + printf4.o(i.__0vsprintf$4) refers to printf4.o(i._sputc) for _sputc + printf4.o(i._printf_core) refers to uldiv.o(.text) for __aeabi_uldivmod + printf5.o(i.__0fprintf$5) refers to printf5.o(i._printf_core) for _printf_core + printf5.o(i.__0fprintf$5) refers to ad7190.o(i.fputc) for fputc + printf5.o(i.__0printf$5) refers to printf5.o(i._printf_core) for _printf_core + printf5.o(i.__0printf$5) refers to ad7190.o(i.fputc) for fputc + printf5.o(i.__0printf$5) refers to stdout.o(.data) for __stdout + printf5.o(i.__0snprintf$5) refers to printf5.o(i._printf_core) for _printf_core + printf5.o(i.__0snprintf$5) refers to printf5.o(i._snputc) for _snputc + printf5.o(i.__0sprintf$5) refers to printf5.o(i._printf_core) for _printf_core + printf5.o(i.__0sprintf$5) refers to printf5.o(i._sputc) for _sputc + printf5.o(i.__0vfprintf$5) refers to printf5.o(i._printf_core) for _printf_core + printf5.o(i.__0vfprintf$5) refers to ad7190.o(i.fputc) for fputc + printf5.o(i.__0vprintf$5) refers to printf5.o(i._printf_core) for _printf_core + printf5.o(i.__0vprintf$5) refers to ad7190.o(i.fputc) for fputc + printf5.o(i.__0vprintf$5) refers to stdout.o(.data) for __stdout + printf5.o(i.__0vsnprintf$5) refers to printf5.o(i._printf_core) for _printf_core + printf5.o(i.__0vsnprintf$5) refers to printf5.o(i._snputc) for _snputc + printf5.o(i.__0vsprintf$5) refers to printf5.o(i._printf_core) for _printf_core + printf5.o(i.__0vsprintf$5) refers to printf5.o(i._sputc) for _sputc + printf5.o(i._printf_core) refers to uldiv.o(.text) for __aeabi_uldivmod + printf6.o(i.__0fprintf$6) refers to printf6.o(i._printf_core) for _printf_core + printf6.o(i.__0fprintf$6) refers to ad7190.o(i.fputc) for fputc + printf6.o(i.__0printf$6) refers to printf6.o(i._printf_core) for _printf_core + printf6.o(i.__0printf$6) refers to ad7190.o(i.fputc) for fputc + printf6.o(i.__0printf$6) refers to stdout.o(.data) for __stdout + printf6.o(i.__0snprintf$6) refers to printf6.o(i._printf_core) for _printf_core + printf6.o(i.__0snprintf$6) refers to printf6.o(i._snputc) for _snputc + printf6.o(i.__0sprintf$6) refers to printf6.o(i._printf_core) for _printf_core + printf6.o(i.__0sprintf$6) refers to printf6.o(i._sputc) for _sputc + printf6.o(i.__0vfprintf$6) refers to printf6.o(i._printf_core) for _printf_core + printf6.o(i.__0vfprintf$6) refers to ad7190.o(i.fputc) for fputc + printf6.o(i.__0vprintf$6) refers to printf6.o(i._printf_core) for _printf_core + printf6.o(i.__0vprintf$6) refers to ad7190.o(i.fputc) for fputc + printf6.o(i.__0vprintf$6) refers to stdout.o(.data) for __stdout + printf6.o(i.__0vsnprintf$6) refers to printf6.o(i._printf_core) for _printf_core + printf6.o(i.__0vsnprintf$6) refers to printf6.o(i._snputc) for _snputc + printf6.o(i.__0vsprintf$6) refers to printf6.o(i._printf_core) for _printf_core + printf6.o(i.__0vsprintf$6) refers to printf6.o(i._sputc) for _sputc + printf6.o(i._printf_core) refers to printf6.o(i._printf_pre_padding) for _printf_pre_padding + printf6.o(i._printf_core) refers to uidiv.o(.text) for __aeabi_uidivmod + printf6.o(i._printf_core) refers to printf6.o(i._printf_post_padding) for _printf_post_padding + printf7.o(i.__0fprintf$7) refers to printf7.o(i._printf_core) for _printf_core + printf7.o(i.__0fprintf$7) refers to ad7190.o(i.fputc) for fputc + printf7.o(i.__0printf$7) refers to printf7.o(i._printf_core) for _printf_core + printf7.o(i.__0printf$7) refers to ad7190.o(i.fputc) for fputc + printf7.o(i.__0printf$7) refers to stdout.o(.data) for __stdout + printf7.o(i.__0snprintf$7) refers to printf7.o(i._printf_core) for _printf_core + printf7.o(i.__0snprintf$7) refers to printf7.o(i._snputc) for _snputc + printf7.o(i.__0sprintf$7) refers to printf7.o(i._printf_core) for _printf_core + printf7.o(i.__0sprintf$7) refers to printf7.o(i._sputc) for _sputc + printf7.o(i.__0vfprintf$7) refers to printf7.o(i._printf_core) for _printf_core + printf7.o(i.__0vfprintf$7) refers to ad7190.o(i.fputc) for fputc + printf7.o(i.__0vprintf$7) refers to printf7.o(i._printf_core) for _printf_core + printf7.o(i.__0vprintf$7) refers to ad7190.o(i.fputc) for fputc + printf7.o(i.__0vprintf$7) refers to stdout.o(.data) for __stdout + printf7.o(i.__0vsnprintf$7) refers to printf7.o(i._printf_core) for _printf_core + printf7.o(i.__0vsnprintf$7) refers to printf7.o(i._snputc) for _snputc + printf7.o(i.__0vsprintf$7) refers to printf7.o(i._printf_core) for _printf_core + printf7.o(i.__0vsprintf$7) refers to printf7.o(i._sputc) for _sputc + printf7.o(i._printf_core) refers to printf7.o(i._printf_pre_padding) for _printf_pre_padding + printf7.o(i._printf_core) refers to uldiv.o(.text) for __aeabi_uldivmod + printf7.o(i._printf_core) refers to printf7.o(i._printf_post_padding) for _printf_post_padding + printf8.o(i.__0fprintf$8) refers to printf8.o(i._printf_core) for _printf_core + printf8.o(i.__0fprintf$8) refers to ad7190.o(i.fputc) for fputc + printf8.o(i.__0printf$8) refers to printf8.o(i._printf_core) for _printf_core + printf8.o(i.__0printf$8) refers to ad7190.o(i.fputc) for fputc + printf8.o(i.__0printf$8) refers to stdout.o(.data) for __stdout + printf8.o(i.__0snprintf$8) refers to printf8.o(i._printf_core) for _printf_core + printf8.o(i.__0snprintf$8) refers to printf8.o(i._snputc) for _snputc + printf8.o(i.__0sprintf$8) refers to printf8.o(i._printf_core) for _printf_core + printf8.o(i.__0sprintf$8) refers to printf8.o(i._sputc) for _sputc + printf8.o(i.__0vfprintf$8) refers to printf8.o(i._printf_core) for _printf_core + printf8.o(i.__0vfprintf$8) refers to ad7190.o(i.fputc) for fputc + printf8.o(i.__0vprintf$8) refers to printf8.o(i._printf_core) for _printf_core + printf8.o(i.__0vprintf$8) refers to ad7190.o(i.fputc) for fputc + printf8.o(i.__0vprintf$8) refers to stdout.o(.data) for __stdout + printf8.o(i.__0vsnprintf$8) refers to printf8.o(i._printf_core) for _printf_core + printf8.o(i.__0vsnprintf$8) refers to printf8.o(i._snputc) for _snputc + printf8.o(i.__0vsprintf$8) refers to printf8.o(i._printf_core) for _printf_core + printf8.o(i.__0vsprintf$8) refers to printf8.o(i._sputc) for _sputc + printf8.o(i._printf_core) refers to printf8.o(i._printf_pre_padding) for _printf_pre_padding + printf8.o(i._printf_core) refers to uldiv.o(.text) for __aeabi_uldivmod + printf8.o(i._printf_core) refers to printf8.o(i._printf_post_padding) for _printf_post_padding + printfa.o(i.__0fprintf) refers (Special) to iusefp.o(.text) for __I$use$fp + printfa.o(i.__0fprintf) refers to printfa.o(i._printf_core) for _printf_core + printfa.o(i.__0fprintf) refers to ad7190.o(i.fputc) for fputc + printfa.o(i.__0printf) refers (Special) to iusefp.o(.text) for __I$use$fp + printfa.o(i.__0printf) refers to printfa.o(i._printf_core) for _printf_core + printfa.o(i.__0printf) refers to ad7190.o(i.fputc) for fputc + printfa.o(i.__0printf) refers to stdout.o(.data) for __stdout + printfa.o(i.__0snprintf) refers (Special) to iusefp.o(.text) for __I$use$fp + printfa.o(i.__0snprintf) refers to printfa.o(i._printf_core) for _printf_core + printfa.o(i.__0snprintf) refers to printfa.o(i._snputc) for _snputc + printfa.o(i.__0sprintf) refers (Special) to iusefp.o(.text) for __I$use$fp + printfa.o(i.__0sprintf) refers to printfa.o(i._printf_core) for _printf_core + printfa.o(i.__0sprintf) refers to printfa.o(i._sputc) for _sputc + printfa.o(i.__0vfprintf) refers (Special) to iusefp.o(.text) for __I$use$fp + printfa.o(i.__0vfprintf) refers to printfa.o(i._printf_core) for _printf_core + printfa.o(i.__0vfprintf) refers to ad7190.o(i.fputc) for fputc + printfa.o(i.__0vprintf) refers (Special) to iusefp.o(.text) for __I$use$fp + printfa.o(i.__0vprintf) refers to printfa.o(i._printf_core) for _printf_core + printfa.o(i.__0vprintf) refers to ad7190.o(i.fputc) for fputc + printfa.o(i.__0vprintf) refers to stdout.o(.data) for __stdout + printfa.o(i.__0vsnprintf) refers (Special) to iusefp.o(.text) for __I$use$fp + printfa.o(i.__0vsnprintf) refers to printfa.o(i._printf_core) for _printf_core + printfa.o(i.__0vsnprintf) refers to printfa.o(i._snputc) for _snputc + printfa.o(i.__0vsprintf) refers (Special) to iusefp.o(.text) for __I$use$fp + printfa.o(i.__0vsprintf) refers to printfa.o(i._printf_core) for _printf_core + printfa.o(i.__0vsprintf) refers to printfa.o(i._sputc) for _sputc + printfa.o(i._fp_digits) refers (Special) to iusefp.o(.text) for __I$use$fp + printfa.o(i._fp_digits) refers to dmul.o(.text) for __aeabi_dmul + printfa.o(i._fp_digits) refers to ddiv.o(.text) for __aeabi_ddiv + printfa.o(i._fp_digits) refers to cdrcmple.o(.text) for __aeabi_cdrcmple + printfa.o(i._fp_digits) refers to dadd.o(.text) for __aeabi_dadd + printfa.o(i._fp_digits) refers to dfixul.o(.text) for __aeabi_d2ulz + printfa.o(i._fp_digits) refers to uldiv.o(.text) for __aeabi_uldivmod + printfa.o(i._printf_core) refers (Special) to iusefp.o(.text) for __I$use$fp + printfa.o(i._printf_core) refers to printfa.o(i._printf_pre_padding) for _printf_pre_padding + printfa.o(i._printf_core) refers to uldiv.o(.text) for __aeabi_uldivmod + printfa.o(i._printf_core) refers to printfa.o(i._printf_post_padding) for _printf_post_padding + printfa.o(i._printf_core) refers to printfa.o(i._fp_digits) for _fp_digits + printfa.o(i._printf_core) refers to uidiv.o(.text) for __aeabi_uidivmod + printfa.o(i._printf_post_padding) refers (Special) to iusefp.o(.text) for __I$use$fp + printfa.o(i._printf_pre_padding) refers (Special) to iusefp.o(.text) for __I$use$fp + printfa.o(i._snputc) refers (Special) to iusefp.o(.text) for __I$use$fp + printfa.o(i._sputc) refers (Special) to iusefp.o(.text) for __I$use$fp + fadd.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + fadd.o(.text) refers to fepilogue.o(.text) for _float_epilogue + fmul.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + fdiv.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + fdiv.o(.text) refers to fepilogue.o(.text) for _float_round + dadd.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + dadd.o(.text) refers to llshl.o(.text) for __aeabi_llsl + dadd.o(.text) refers to llsshr.o(.text) for __aeabi_lasr + dadd.o(.text) refers to depilogue.o(.text) for _double_epilogue + dmul.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + dmul.o(.text) refers to depilogue.o(.text) for _double_epilogue + ddiv.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + ddiv.o(.text) refers to depilogue.o(.text) for _double_round + fflti.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + fflti.o(.text) refers to fepilogue.o(.text) for _float_epilogue + ffltui.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + ffltui.o(.text) refers to fepilogue.o(.text) for _float_epilogue + dflti.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + dflti.o(.text) refers to depilogue.o(.text) for _double_epilogue + dfltui.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + dfltui.o(.text) refers to depilogue.o(.text) for _double_epilogue + ffixui.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + dfixi.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + dfixi.o(.text) refers to llushr.o(.text) for __aeabi_llsr + f2d.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + cdcmple.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + cdrcmple.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + d2f.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + d2f.o(.text) refers to fepilogue.o(.text) for _float_round + cfcmple.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + cfrcmple.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + entry2.o(.ARM.Collect$$$$00000001) refers to entry2.o(.ARM.Collect$$$$00002712) for __lit__00000000 + entry2.o(.ARM.Collect$$$$00002712) refers to startup_stm32f10x_md.o(STACK) for __initial_sp + entry2.o(__vectab_stack_and_reset_area) refers to startup_stm32f10x_md.o(STACK) for __initial_sp + entry2.o(__vectab_stack_and_reset_area) refers to entry.o(.ARM.Collect$$$$00000000) for __main + entry5.o(.ARM.Collect$$$$00000004) refers to init.o(.text) for __scatterload + depilogue.o(.text) refers to llshl.o(.text) for __aeabi_llsl + depilogue.o(.text) refers to llushr.o(.text) for __aeabi_llsr + dfixul.o(.text) refers to llushr.o(.text) for __aeabi_llsr + dfixul.o(.text) refers to llshl.o(.text) for __aeabi_llsl + init.o(.text) refers to entry5.o(.ARM.Collect$$$$00000004) for __main_after_scatterload ============================================================================== @@ -1142,22 +1121,12 @@ Removing Unused input sections from the image. Removing fm24.o(.rev16_text), (4 bytes). Removing fm24.o(.revsh_text), (4 bytes). Removing fm24.o(.rrx_text), (6 bytes). - Removing cs5552.o(.rev16_text), (4 bytes). - Removing cs5552.o(.revsh_text), (4 bytes). - Removing cs5552.o(.rrx_text), (6 bytes). - Removing cs5552.o(i.GET_ADC_CH0), (236 bytes). - Removing cs5552.o(i.INIT_CS555X), (200 bytes). - Removing cs5552.o(i.RESET_SPI), (28 bytes). - Removing cs5552.o(i.Read_Register), (70 bytes). - Removing cs5552.o(i.WaitForReady), (48 bytes). - Removing cs5552.o(i.Write_Register), (50 bytes). - Removing cs5552.o(i.bubbleSort), (70 bytes). - Removing cs5552.o(.bss), (56 bytes). - Removing cs5552.o(.constdata), (16 bytes). - Removing cs5552.o(.data), (20 bytes). Removing ad7190.o(.rev16_text), (4 bytes). Removing ad7190.o(.revsh_text), (4 bytes). Removing ad7190.o(.rrx_text), (6 bytes). + Removing ad7190.o(i.bubbleSort), (66 bytes). + Removing ad7190.o(i.calculateAverage), (88 bytes). + Removing ad7190.o(i.fputc), (40 bytes). Removing ws100t10.o(.rev16_text), (4 bytes). Removing ws100t10.o(.revsh_text), (4 bytes). Removing ws100t10.o(.rrx_text), (6 bytes). @@ -1174,8 +1143,6 @@ Removing Unused input sections from the image. Removing hmi.o(.rev16_text), (4 bytes). Removing hmi.o(.revsh_text), (4 bytes). Removing hmi.o(.rrx_text), (6 bytes). - Removing rtx_conf_cm.o(i.__user_perthread_libspace), (44 bytes). - Removing rtx_conf_cm.o(i._mutex_initialize), (44 bytes). Removing misc.o(.rev16_text), (4 bytes). Removing misc.o(.revsh_text), (4 bytes). Removing misc.o(.rrx_text), (6 bytes). @@ -1420,6 +1387,7 @@ Removing Unused input sections from the image. Removing stm32f10x_usart.o(i.USART_SmartCardNACKCmd), (24 bytes). Removing stm32f10x_usart.o(i.USART_StructInit), (24 bytes). Removing stm32f10x_usart.o(i.USART_WakeUpConfig), (18 bytes). + Removing startup_stm32f10x_md.o(HEAP), (512 bytes). Removing system_stm32f10x.o(.rev16_text), (4 bytes). Removing system_stm32f10x.o(.revsh_text), (4 bytes). Removing system_stm32f10x.o(.rrx_text), (6 bytes). @@ -1487,7 +1455,6 @@ Removing Unused input sections from the image. Removing rt_cmsis.o(i.sysUserTimerUpdate), (48 bytes). Removing rt_cmsis.o(i.sysUserTimerWakeupTime), (20 bytes). Removing rt_task.o(i.rt_tsk_pass), (48 bytes). - Removing rt_mutex.o(i.rt_mut_delete), (176 bytes). Removing rt_system.o(.emb_text), (0 bytes). Removing rt_system.o(i.rt_resume), (136 bytes). Removing rt_system.o(i.rt_suspend), (36 bytes). @@ -1506,9 +1473,10 @@ Removing Unused input sections from the image. Removing rt_time.o(i.rt_itv_set), (24 bytes). Removing rt_time.o(i.rt_itv_wait), (40 bytes). Removing rt_time.o(i.rt_time_get), (12 bytes). + Removing rt_mutex.o(i.rt_mut_delete), (176 bytes). Removing rt_membox.o(i._calloc_box), (30 bytes). -402 unused section(s) (total 14416 bytes) removed from the image. +391 unused section(s) (total 14226 bytes) removed from the image. ============================================================================== @@ -1518,121 +1486,60 @@ Image Symbol Table Symbol Name Value Ov Type Size Object(Section) - ../clib/angel/boardlib.s 0x00000000 Number 0 boardinit1.o ABSOLUTE - ../clib/angel/boardlib.s 0x00000000 Number 0 boardinit2.o ABSOLUTE - ../clib/angel/boardlib.s 0x00000000 Number 0 boardshut.o ABSOLUTE - ../clib/angel/handlers.s 0x00000000 Number 0 __scatter_zi.o ABSOLUTE - ../clib/angel/handlers.s 0x00000000 Number 0 __scatter_copy.o ABSOLUTE - ../clib/angel/kernel.s 0x00000000 Number 0 rtexit.o ABSOLUTE - ../clib/angel/kernel.s 0x00000000 Number 0 __rtentry2.o ABSOLUTE - ../clib/angel/kernel.s 0x00000000 Number 0 __rtentry.o ABSOLUTE - ../clib/angel/kernel.s 0x00000000 Number 0 rtexit2.o ABSOLUTE - ../clib/angel/kernel.s 0x00000000 Number 0 __rtentry4.o ABSOLUTE - ../clib/angel/rt.s 0x00000000 Number 0 rt_raise.o ABSOLUTE - ../clib/angel/rt.s 0x00000000 Number 0 aeabi_ldiv0_sigfpe.o ABSOLUTE - ../clib/angel/rt.s 0x00000000 Number 0 aeabi_ldiv0.o ABSOLUTE - ../clib/angel/rt.s 0x00000000 Number 0 rt_locale_twolibspace.o ABSOLUTE - ../clib/angel/rt.s 0x00000000 Number 0 rt_locale_intlibspace.o ABSOLUTE - ../clib/angel/rt.s 0x00000000 Number 0 rt_locale.o ABSOLUTE - ../clib/angel/rt.s 0x00000000 Number 0 rt_div0.o ABSOLUTE - ../clib/angel/scatter.s 0x00000000 Number 0 __scatter.o ABSOLUTE - ../clib/angel/startup.s 0x00000000 Number 0 __main.o ABSOLUTE - ../clib/angel/sys.s 0x00000000 Number 0 use_no_semi.o ABSOLUTE - ../clib/angel/sys.s 0x00000000 Number 0 sys_stackheap_outer.o ABSOLUTE - ../clib/angel/sys.s 0x00000000 Number 0 indicate_semi.o ABSOLUTE - ../clib/angel/sys.s 0x00000000 Number 0 libspace.o ABSOLUTE - ../clib/angel/sysapp.c 0x00000000 Number 0 sys_wrch.o ABSOLUTE - ../clib/angel/sysapp.c 0x00000000 Number 0 sys_exit.o ABSOLUTE - ../clib/angel/sysapp.c 0x00000000 Number 0 sys_command.o ABSOLUTE - ../clib/armsys.c 0x00000000 Number 0 argv_veneer.o ABSOLUTE - ../clib/armsys.c 0x00000000 Number 0 no_argv.o ABSOLUTE - ../clib/armsys.c 0x00000000 Number 0 _get_argv_nomalloc.o ABSOLUTE - ../clib/armsys.c 0x00000000 Number 0 argv_veneer.o ABSOLUTE - ../clib/bigflt.c 0x00000000 Number 0 bigflt0.o ABSOLUTE - ../clib/btod.s 0x00000000 Number 0 btod.o ABSOLUTE - ../clib/heapalloc.c 0x00000000 Number 0 hrguard.o ABSOLUTE - ../clib/heapaux.c 0x00000000 Number 0 heapauxi.o ABSOLUTE - ../clib/libinit.s 0x00000000 Number 0 libshutdown2.o ABSOLUTE - ../clib/libinit.s 0x00000000 Number 0 libinit2.o ABSOLUTE - ../clib/libinit.s 0x00000000 Number 0 libinit.o ABSOLUTE - ../clib/libinit.s 0x00000000 Number 0 libshutdown.o ABSOLUTE - ../clib/locale.s 0x00000000 Number 0 lc_numeric_c.o ABSOLUTE - ../clib/longlong.s 0x00000000 Number 0 lludiv10.o ABSOLUTE - ../clib/longlong.s 0x00000000 Number 0 lludivv7m.o ABSOLUTE - ../clib/memcpset.s 0x00000000 Number 0 strcmpv7m.o ABSOLUTE - ../clib/misc.s 0x00000000 Number 0 printf_stubs.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 __2sprintf.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 __printf_nopercent.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 __printf_flags_ss.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 _printf_fp_infnan.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 noretval__2sprintf.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 _printf_char.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 _sputc.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 __printf.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 _printf_pad.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 _printf_char_common.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 _printf_intcommon.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 __printf_ss.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 __printf_wp.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 __printf_flags.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 __printf_flags_wp.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 __printf_ss_wp.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 __printf_flags_ss_wp.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 _printf_dec.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 _printf_str.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 _printf_fp_dec.o ABSOLUTE - ../clib/printf_percent.s 0x00000000 Number 0 _printf_percent_end.o ABSOLUTE - ../clib/printf_percent.s 0x00000000 Number 0 _printf_f.o ABSOLUTE - ../clib/printf_percent.s 0x00000000 Number 0 _printf_s.o ABSOLUTE - ../clib/printf_percent.s 0x00000000 Number 0 _printf_d.o ABSOLUTE - ../clib/printf_percent.s 0x00000000 Number 0 _printf_percent.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 __raise.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_general.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_rtmem_outer.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_rtmem_formal.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_abrt_inner.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_rtred_inner.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_cppl_inner.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_other.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_segv_inner.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_fpe_inner.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_exit.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_pvfn_inner.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_stak_inner.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_rtmem_inner.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_fpe_formal.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_fpe_outer.o ABSOLUTE - ../clib/signal.s 0x00000000 Number 0 defsig.o ABSOLUTE - ../clib/stdlib.c 0x00000000 Number 0 exit.o ABSOLUTE - ../clib/string.c 0x00000000 Number 0 strlen.o ABSOLUTE - ../clib/string.c 0x00000000 Number 0 strcpy.o ABSOLUTE - ../fplib/d2f.s 0x00000000 Number 0 d2f.o ABSOLUTE - ../fplib/dcmpi.s 0x00000000 Number 0 dcmpi.o ABSOLUTE - ../fplib/ddiv.s 0x00000000 Number 0 ddiv.o ABSOLUTE - ../fplib/dflt.s 0x00000000 Number 0 dflt_clz.o ABSOLUTE - ../fplib/dleqf.s 0x00000000 Number 0 dleqf.o ABSOLUTE - ../fplib/dmul.s 0x00000000 Number 0 dmul.o ABSOLUTE - ../fplib/dnaninf.s 0x00000000 Number 0 dnaninf.o ABSOLUTE - ../fplib/dretinf.s 0x00000000 Number 0 dretinf.o ABSOLUTE - ../fplib/drleqf.s 0x00000000 Number 0 drleqf.o ABSOLUTE - ../fplib/f2d.s 0x00000000 Number 0 f2d.o ABSOLUTE - ../fplib/faddsub.s 0x00000000 Number 0 faddsub_clz.o ABSOLUTE - ../fplib/fcmpi.s 0x00000000 Number 0 fcmpi.o ABSOLUTE - ../fplib/fdiv.s 0x00000000 Number 0 fdiv.o ABSOLUTE - ../fplib/feqf.s 0x00000000 Number 0 feqf.o ABSOLUTE - ../fplib/ffix.s 0x00000000 Number 0 ffix.o ABSOLUTE - ../fplib/ffixu.s 0x00000000 Number 0 ffixu.o ABSOLUTE - ../fplib/fflt.s 0x00000000 Number 0 fflt_clz.o ABSOLUTE - ../fplib/fleqf.s 0x00000000 Number 0 fleqf.o ABSOLUTE - ../fplib/fmul.s 0x00000000 Number 0 fmul.o ABSOLUTE - ../fplib/fnaninf.s 0x00000000 Number 0 fnaninf.o ABSOLUTE - ../fplib/fpinit.s 0x00000000 Number 0 fpinit.o ABSOLUTE - ../fplib/fretinf.s 0x00000000 Number 0 fretinf.o ABSOLUTE - ../fplib/frleqf.s 0x00000000 Number 0 frleqf.o ABSOLUTE - ../fplib/istatus.s 0x00000000 Number 0 istatus.o ABSOLUTE - ../fplib/printf1.s 0x00000000 Number 0 printf1.o ABSOLUTE - ../fplib/usenofp.s 0x00000000 Number 0 usenofp.o ABSOLUTE - ../mathlib/fpclassify.c 0x00000000 Number 0 fpclassify.o ABSOLUTE + ../clib/../cmprslib/zerorunl.c 0x00000000 Number 0 __dczerorl.o ABSOLUTE + ../clib/microlib/division.c 0x00000000 Number 0 uldiv.o ABSOLUTE + ../clib/microlib/division.c 0x00000000 Number 0 uidiv.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry2.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry10a.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry8b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry12b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry12a.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry11b.o ABSOLUTE + ../clib/microlib/longlong.c 0x00000000 Number 0 llushr.o ABSOLUTE + ../clib/microlib/longlong.c 0x00000000 Number 0 llshl.o ABSOLUTE + ../clib/microlib/longlong.c 0x00000000 Number 0 llsshr.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf1.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf3.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf4.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf5.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf6.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf7.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf8.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printfa.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf2.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printfb.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf0.o ABSOLUTE + ../clib/microlib/printf/stubs.s 0x00000000 Number 0 stubs.o ABSOLUTE + ../clib/microlib/stdio/streams.c 0x00000000 Number 0 stdout.o ABSOLUTE + ../clib/microlib/string/memset.c 0x00000000 Number 0 memseta.o ABSOLUTE + ../clib/microlib/string/strcmp.c 0x00000000 Number 0 strcmp.o ABSOLUTE + ../clib/microlib/string/strcpy.c 0x00000000 Number 0 strcpy.o ABSOLUTE + ../clib/microlib/string/strlen.c 0x00000000 Number 0 strlen.o ABSOLUTE + ../clib/microlib/stubs.s 0x00000000 Number 0 iusefp.o ABSOLUTE + ../fplib/microlib/d2f.c 0x00000000 Number 0 d2f.o ABSOLUTE + ../fplib/microlib/f2d.c 0x00000000 Number 0 f2d.o ABSOLUTE + ../fplib/microlib/fpadd.c 0x00000000 Number 0 fadd.o ABSOLUTE + ../fplib/microlib/fpadd.c 0x00000000 Number 0 dadd.o ABSOLUTE + ../fplib/microlib/fpdiv.c 0x00000000 Number 0 fdiv.o ABSOLUTE + ../fplib/microlib/fpdiv.c 0x00000000 Number 0 ddiv.o ABSOLUTE + ../fplib/microlib/fpepilogue.c 0x00000000 Number 0 fepilogue.o ABSOLUTE + ../fplib/microlib/fpepilogue.c 0x00000000 Number 0 depilogue.o ABSOLUTE + ../fplib/microlib/fpfix.c 0x00000000 Number 0 dfixul.o ABSOLUTE + ../fplib/microlib/fpfix.c 0x00000000 Number 0 ffixui.o ABSOLUTE + ../fplib/microlib/fpfix.c 0x00000000 Number 0 dfixi.o ABSOLUTE + ../fplib/microlib/fpflt.c 0x00000000 Number 0 fflti.o ABSOLUTE + ../fplib/microlib/fpflt.c 0x00000000 Number 0 ffltui.o ABSOLUTE + ../fplib/microlib/fpflt.c 0x00000000 Number 0 dflti.o ABSOLUTE + ../fplib/microlib/fpflt.c 0x00000000 Number 0 dfltui.o ABSOLUTE + ../fplib/microlib/fpmul.c 0x00000000 Number 0 fmul.o ABSOLUTE + ../fplib/microlib/fpmul.c 0x00000000 Number 0 dmul.o ABSOLUTE ..\HAL_CM.c 0x00000000 Number 0 hal_cm.o ABSOLUTE ..\\rt_CMSIS.c 0x00000000 Number 0 rt_cmsis.o ABSOLUTE ..\\rt_System.c 0x00000000 Number 0 rt_system.o ABSOLUTE @@ -1648,31 +1555,29 @@ Image Symbol Table ..\rt_System.c 0x00000000 Number 0 rt_system.o ABSOLUTE ..\rt_Task.c 0x00000000 Number 0 rt_task.o ABSOLUTE ..\rt_Time.c 0x00000000 Number 0 rt_time.o ABSOLUTE - C:/Users/YT01/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.1/Device/StdPeriph_Driver/src/misc.c 0x00000000 Number 0 misc.o ABSOLUTE - C:/Users/YT01/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.1/Device/StdPeriph_Driver/src/stm32f10x_adc.c 0x00000000 Number 0 stm32f10x_adc.o ABSOLUTE - C:/Users/YT01/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.1/Device/StdPeriph_Driver/src/stm32f10x_gpio.c 0x00000000 Number 0 stm32f10x_gpio.o ABSOLUTE - C:/Users/YT01/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.1/Device/StdPeriph_Driver/src/stm32f10x_rcc.c 0x00000000 Number 0 stm32f10x_rcc.o ABSOLUTE - C:/Users/YT01/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.1/Device/StdPeriph_Driver/src/stm32f10x_spi.c 0x00000000 Number 0 stm32f10x_spi.o ABSOLUTE - C:/Users/YT01/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.1/Device/StdPeriph_Driver/src/stm32f10x_tim.c 0x00000000 Number 0 stm32f10x_tim.o ABSOLUTE - C:/Users/YT01/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.4.1/Device/StdPeriph_Driver/src/stm32f10x_usart.c 0x00000000 Number 0 stm32f10x_usart.o ABSOLUTE - C:\Users\YT01\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\StdPeriph_Driver\src\misc.c 0x00000000 Number 0 misc.o ABSOLUTE - C:\Users\YT01\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\StdPeriph_Driver\src\stm32f10x_adc.c 0x00000000 Number 0 stm32f10x_adc.o ABSOLUTE - C:\Users\YT01\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\StdPeriph_Driver\src\stm32f10x_gpio.c 0x00000000 Number 0 stm32f10x_gpio.o ABSOLUTE - C:\Users\YT01\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\StdPeriph_Driver\src\stm32f10x_rcc.c 0x00000000 Number 0 stm32f10x_rcc.o ABSOLUTE - C:\Users\YT01\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\StdPeriph_Driver\src\stm32f10x_spi.c 0x00000000 Number 0 stm32f10x_spi.o ABSOLUTE - C:\Users\YT01\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\StdPeriph_Driver\src\stm32f10x_tim.c 0x00000000 Number 0 stm32f10x_tim.o ABSOLUTE - C:\Users\YT01\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\StdPeriph_Driver\src\stm32f10x_usart.c 0x00000000 Number 0 stm32f10x_usart.o ABSOLUTE + C:/Users/70659/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.2.0/Device/StdPeriph_Driver/src/misc.c 0x00000000 Number 0 misc.o ABSOLUTE + C:/Users/70659/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.2.0/Device/StdPeriph_Driver/src/stm32f10x_adc.c 0x00000000 Number 0 stm32f10x_adc.o ABSOLUTE + C:/Users/70659/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.2.0/Device/StdPeriph_Driver/src/stm32f10x_gpio.c 0x00000000 Number 0 stm32f10x_gpio.o ABSOLUTE + C:/Users/70659/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.2.0/Device/StdPeriph_Driver/src/stm32f10x_rcc.c 0x00000000 Number 0 stm32f10x_rcc.o ABSOLUTE + C:/Users/70659/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.2.0/Device/StdPeriph_Driver/src/stm32f10x_spi.c 0x00000000 Number 0 stm32f10x_spi.o ABSOLUTE + C:/Users/70659/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.2.0/Device/StdPeriph_Driver/src/stm32f10x_tim.c 0x00000000 Number 0 stm32f10x_tim.o ABSOLUTE + C:/Users/70659/AppData/Local/Arm/Packs/Keil/STM32F1xx_DFP/2.2.0/Device/StdPeriph_Driver/src/stm32f10x_usart.c 0x00000000 Number 0 stm32f10x_usart.o ABSOLUTE + C:\Users\70659\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.2.0\Device\StdPeriph_Driver\src\misc.c 0x00000000 Number 0 misc.o ABSOLUTE + C:\Users\70659\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.2.0\Device\StdPeriph_Driver\src\stm32f10x_adc.c 0x00000000 Number 0 stm32f10x_adc.o ABSOLUTE + C:\Users\70659\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.2.0\Device\StdPeriph_Driver\src\stm32f10x_gpio.c 0x00000000 Number 0 stm32f10x_gpio.o ABSOLUTE + C:\Users\70659\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.2.0\Device\StdPeriph_Driver\src\stm32f10x_rcc.c 0x00000000 Number 0 stm32f10x_rcc.o ABSOLUTE + C:\Users\70659\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.2.0\Device\StdPeriph_Driver\src\stm32f10x_spi.c 0x00000000 Number 0 stm32f10x_spi.o ABSOLUTE + C:\Users\70659\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.2.0\Device\StdPeriph_Driver\src\stm32f10x_tim.c 0x00000000 Number 0 stm32f10x_tim.o ABSOLUTE + C:\Users\70659\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.2.0\Device\StdPeriph_Driver\src\stm32f10x_usart.c 0x00000000 Number 0 stm32f10x_usart.o ABSOLUTE HAL_CM3.c 0x00000000 Number 0 hal_cm3.o ABSOLUTE HAL_CM3.c 0x00000000 Number 0 hal_cm3.o ABSOLUTE RTE/CMSIS/RTX_Conf_CM.c 0x00000000 Number 0 rtx_conf_cm.o ABSOLUTE RTE/Device/STM32F103C8/startup_stm32f10x_md.s 0x00000000 Number 0 startup_stm32f10x_md.o ABSOLUTE RTE/Device/STM32F103C8/system_stm32f10x.c 0x00000000 Number 0 system_stm32f10x.o ABSOLUTE - RTE\CMSIS\RTX_Conf_CM.c 0x00000000 Number 0 rtx_conf_cm.o ABSOLUTE RTE\Device\STM32F103C8\system_stm32f10x.c 0x00000000 Number 0 system_stm32f10x.o ABSOLUTE SVC_Table.s 0x00000000 Number 0 svc_table.o ABSOLUTE Source\AD7190.c 0x00000000 Number 0 ad7190.o ABSOLUTE Source\BIOS.c 0x00000000 Number 0 bios.o ABSOLUTE - Source\CS5552.c 0x00000000 Number 0 cs5552.o ABSOLUTE Source\Delay.c 0x00000000 Number 0 delay.o ABSOLUTE Source\FM24.c 0x00000000 Number 0 fm24.o ABSOLUTE Source\HMI.c 0x00000000 Number 0 hmi.o ABSOLUTE @@ -1681,7 +1586,6 @@ Image Symbol Table Source\WS100T10.c 0x00000000 Number 0 ws100t10.o ABSOLUTE Source\\AD7190.c 0x00000000 Number 0 ad7190.o ABSOLUTE Source\\BIOS.c 0x00000000 Number 0 bios.o ABSOLUTE - Source\\CS5552.c 0x00000000 Number 0 cs5552.o ABSOLUTE Source\\Delay.c 0x00000000 Number 0 delay.o ABSOLUTE Source\\FM24.c 0x00000000 Number 0 fm24.o ABSOLUTE Source\\HMI.c 0x00000000 Number 0 hmi.o ABSOLUTE @@ -1696,892 +1600,769 @@ Image Symbol Table Source\max6675.c 0x00000000 Number 0 max6675.o ABSOLUTE Source\spi.c 0x00000000 Number 0 spi.o ABSOLUTE Source\usart.c 0x00000000 Number 0 usart.o ABSOLUTE + cdcmple.s 0x00000000 Number 0 cdcmple.o ABSOLUTE + cdrcmple.s 0x00000000 Number 0 cdrcmple.o ABSOLUTE + cfcmple.s 0x00000000 Number 0 cfcmple.o ABSOLUTE + cfrcmple.s 0x00000000 Number 0 cfrcmple.o ABSOLUTE dc.s 0x00000000 Number 0 dc.o ABSOLUTE + handlers.s 0x00000000 Number 0 handlers.o ABSOLUTE + init.s 0x00000000 Number 0 init.o ABSOLUTE RESET 0x08000000 Section 236 startup_stm32f10x_md.o(RESET) - !!!main 0x080000ec Section 8 __main.o(!!!main) - !!!scatter 0x080000f4 Section 52 __scatter.o(!!!scatter) - !!handler_copy 0x08000128 Section 26 __scatter_copy.o(!!handler_copy) - !!handler_zi 0x08000144 Section 28 __scatter_zi.o(!!handler_zi) - .ARM.Collect$$_printf_percent$$00000000 0x08000160 Section 0 _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) - .ARM.Collect$$_printf_percent$$00000003 0x08000160 Section 6 _printf_f.o(.ARM.Collect$$_printf_percent$$00000003) - .ARM.Collect$$_printf_percent$$00000009 0x08000166 Section 6 _printf_d.o(.ARM.Collect$$_printf_percent$$00000009) - .ARM.Collect$$_printf_percent$$00000014 0x0800016c Section 6 _printf_s.o(.ARM.Collect$$_printf_percent$$00000014) - .ARM.Collect$$_printf_percent$$00000017 0x08000172 Section 4 _printf_percent_end.o(.ARM.Collect$$_printf_percent$$00000017) - .ARM.Collect$$libinit$$00000000 0x08000176 Section 2 libinit.o(.ARM.Collect$$libinit$$00000000) - .ARM.Collect$$libinit$$00000002 0x08000178 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000002) - .ARM.Collect$$libinit$$00000004 0x08000178 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000004) - .ARM.Collect$$libinit$$0000000A 0x08000178 Section 0 libinit2.o(.ARM.Collect$$libinit$$0000000A) - .ARM.Collect$$libinit$$0000000C 0x08000178 Section 0 libinit2.o(.ARM.Collect$$libinit$$0000000C) - .ARM.Collect$$libinit$$0000000E 0x08000178 Section 0 libinit2.o(.ARM.Collect$$libinit$$0000000E) - .ARM.Collect$$libinit$$0000000F 0x08000178 Section 6 libinit2.o(.ARM.Collect$$libinit$$0000000F) - .ARM.Collect$$libinit$$00000011 0x0800017e Section 0 libinit2.o(.ARM.Collect$$libinit$$00000011) - .ARM.Collect$$libinit$$00000013 0x0800017e Section 0 libinit2.o(.ARM.Collect$$libinit$$00000013) - .ARM.Collect$$libinit$$00000015 0x0800017e Section 0 libinit2.o(.ARM.Collect$$libinit$$00000015) - .ARM.Collect$$libinit$$00000016 0x0800017e Section 10 libinit2.o(.ARM.Collect$$libinit$$00000016) - .ARM.Collect$$libinit$$00000017 0x08000188 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000017) - .ARM.Collect$$libinit$$00000019 0x08000188 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000019) - .ARM.Collect$$libinit$$0000001B 0x08000188 Section 0 libinit2.o(.ARM.Collect$$libinit$$0000001B) - .ARM.Collect$$libinit$$0000001D 0x08000188 Section 0 libinit2.o(.ARM.Collect$$libinit$$0000001D) - .ARM.Collect$$libinit$$0000001F 0x08000188 Section 0 libinit2.o(.ARM.Collect$$libinit$$0000001F) - .ARM.Collect$$libinit$$00000021 0x08000188 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000021) - .ARM.Collect$$libinit$$00000023 0x08000188 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000023) - .ARM.Collect$$libinit$$00000025 0x08000188 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000025) - .ARM.Collect$$libinit$$0000002C 0x08000188 Section 0 libinit2.o(.ARM.Collect$$libinit$$0000002C) - .ARM.Collect$$libinit$$0000002E 0x08000188 Section 0 libinit2.o(.ARM.Collect$$libinit$$0000002E) - .ARM.Collect$$libinit$$00000030 0x08000188 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000030) - .ARM.Collect$$libinit$$00000032 0x08000188 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000032) - .ARM.Collect$$libinit$$00000033 0x08000188 Section 2 libinit2.o(.ARM.Collect$$libinit$$00000033) - .ARM.Collect$$libshutdown$$00000000 0x0800018a Section 2 libshutdown.o(.ARM.Collect$$libshutdown$$00000000) - .ARM.Collect$$libshutdown$$00000002 0x0800018c Section 0 libshutdown2.o(.ARM.Collect$$libshutdown$$00000002) - .ARM.Collect$$libshutdown$$00000004 0x0800018c Section 0 libshutdown2.o(.ARM.Collect$$libshutdown$$00000004) - .ARM.Collect$$libshutdown$$00000006 0x0800018c Section 0 libshutdown2.o(.ARM.Collect$$libshutdown$$00000006) - .ARM.Collect$$libshutdown$$00000009 0x0800018c Section 0 libshutdown2.o(.ARM.Collect$$libshutdown$$00000009) - .ARM.Collect$$libshutdown$$0000000C 0x0800018c Section 0 libshutdown2.o(.ARM.Collect$$libshutdown$$0000000C) - .ARM.Collect$$libshutdown$$0000000E 0x0800018c Section 0 libshutdown2.o(.ARM.Collect$$libshutdown$$0000000E) - .ARM.Collect$$libshutdown$$00000011 0x0800018c Section 0 libshutdown2.o(.ARM.Collect$$libshutdown$$00000011) - .ARM.Collect$$libshutdown$$00000012 0x0800018c Section 2 libshutdown2.o(.ARM.Collect$$libshutdown$$00000012) - .ARM.Collect$$rtentry$$00000000 0x0800018e Section 0 __rtentry.o(.ARM.Collect$$rtentry$$00000000) - .ARM.Collect$$rtentry$$00000002 0x0800018e Section 0 __rtentry2.o(.ARM.Collect$$rtentry$$00000002) - .ARM.Collect$$rtentry$$00000004 0x0800018e Section 6 __rtentry4.o(.ARM.Collect$$rtentry$$00000004) - .ARM.Collect$$rtentry$$00000009 0x08000194 Section 0 __rtentry2.o(.ARM.Collect$$rtentry$$00000009) - .ARM.Collect$$rtentry$$0000000A 0x08000194 Section 4 __rtentry2.o(.ARM.Collect$$rtentry$$0000000A) - .ARM.Collect$$rtentry$$0000000B 0x08000198 Section 8 __rtentry2.o(.ARM.Collect$$rtentry$$0000000B) - .ARM.Collect$$rtentry$$0000000D 0x080001a0 Section 8 __rtentry2.o(.ARM.Collect$$rtentry$$0000000D) - .ARM.Collect$$rtexit$$00000000 0x080001a8 Section 2 rtexit.o(.ARM.Collect$$rtexit$$00000000) - .ARM.Collect$$rtexit$$00000002 0x080001aa Section 0 rtexit2.o(.ARM.Collect$$rtexit$$00000002) - .ARM.Collect$$rtexit$$00000003 0x080001aa Section 4 rtexit2.o(.ARM.Collect$$rtexit$$00000003) - .ARM.Collect$$rtexit$$00000004 0x080001ae Section 6 rtexit2.o(.ARM.Collect$$rtexit$$00000004) - .emb_text 0x080001b4 Section 28 rtx_conf_cm.o(.emb_text) - .emb_text 0x080001d0 Section 304 hal_cm3.o(.emb_text) - .text 0x08000300 Section 64 startup_stm32f10x_md.o(.text) - .text 0x08000340 Section 8 libspace.o(.text) - .text 0x08000348 Section 0 noretval__2sprintf.o(.text) - .text 0x08000370 Section 0 _printf_pad.o(.text) - .text 0x080003be Section 0 _printf_str.o(.text) - .text 0x08000410 Section 0 _printf_dec.o(.text) - .text 0x08000488 Section 0 __printf_flags_wp.o(.text) - .text 0x080005c0 Section 0 exit.o(.text) - .text 0x080005d2 Section 0 strcpy.o(.text) - .text 0x0800061a Section 0 strlen.o(.text) - .text 0x08000658 Section 128 strcmpv7m.o(.text) - .text 0x080006d8 Section 0 heapauxi.o(.text) - .text 0x080006de Section 0 _printf_intcommon.o(.text) - .text 0x08000790 Section 0 _printf_fp_dec.o(.text) - _fp_digits 0x08000793 Thumb Code 432 _printf_fp_dec.o(.text) - .text 0x08000bb0 Section 0 _printf_char_common.o(.text) - _printf_input_char 0x08000bb1 Thumb Code 10 _printf_char_common.o(.text) - .text 0x08000be0 Section 0 _sputc.o(.text) - .text 0x08000bea Section 0 _printf_char.o(.text) - .text 0x08000c16 Section 10 rt_locale_twolibspace.o(.text) - .text 0x08000c20 Section 138 lludiv10.o(.text) - .text 0x08000cac Section 0 _printf_fp_infnan.o(.text) - .text 0x08000d2c Section 0 bigflt0.o(.text) - .text 0x08000e10 Section 0 sys_exit.o(.text) - .text 0x08000e1c Section 74 sys_stackheap_outer.o(.text) - .text 0x08000e66 Section 2 use_no_semi.o(.text) - .text 0x08000e68 Section 0 indicate_semi.o(.text) - CL$$btod_d2e 0x08000e68 Section 62 btod.o(CL$$btod_d2e) - CL$$btod_d2e_denorm_low 0x08000ea6 Section 70 btod.o(CL$$btod_d2e_denorm_low) - CL$$btod_d2e_norm_op1 0x08000eec Section 96 btod.o(CL$$btod_d2e_norm_op1) - CL$$btod_div_common 0x08000f4c Section 824 btod.o(CL$$btod_div_common) - CL$$btod_e2e 0x08001284 Section 220 btod.o(CL$$btod_e2e) - CL$$btod_ediv 0x08001360 Section 42 btod.o(CL$$btod_ediv) - CL$$btod_emul 0x0800138a Section 42 btod.o(CL$$btod_emul) - CL$$btod_mult_common 0x080013b4 Section 580 btod.o(CL$$btod_mult_common) - SVC_TABLE 0x080015f8 Section 4 svc_table.o(SVC_TABLE) - i.ACCMD 0x080015fc Section 0 ws100t10.o(i.ACCMD) - i.ACCtrl 0x08001620 Section 0 ws100t10.o(i.ACCtrl) - i.AC_CTRL_Init 0x08001664 Section 0 ws100t10.o(i.AC_CTRL_Init) - i.AD7190_Init 0x08001674 Section 0 ad7190.o(i.AD7190_Init) - i.AD7190_ReadData 0x0800175c Section 0 ad7190.o(i.AD7190_ReadData) - i.AD7190_ReadRegister 0x0800188c Section 0 ad7190.o(i.AD7190_ReadRegister) - i.AD7190_ReadRegisterOnce 0x080018ba Section 0 ad7190.o(i.AD7190_ReadRegisterOnce) - i.AD7190_Run 0x080018d4 Section 0 ad7190.o(i.AD7190_Run) - i.AD7190_WaitForReady 0x08001dd8 Section 0 ad7190.o(i.AD7190_WaitForReady) - i.AD7190_WriteRegister 0x08001e08 Section 0 ad7190.o(i.AD7190_WriteRegister) - i.AD7190_WriteRegisterOnce 0x08001e2c Section 0 ad7190.o(i.AD7190_WriteRegisterOnce) - i.BIOS_TIM2_TIMER_Init 0x08001e40 Section 0 usarthmi.o(i.BIOS_TIM2_TIMER_Init) - i.BIOS_USART1_Init 0x08001ea0 Section 0 usarthmi.o(i.BIOS_USART1_Init) - i.BIOS_USART2_Init 0x08001f40 Section 0 usart.o(i.BIOS_USART2_Init) - i.DataPrint 0x08001fac Section 0 usarthmi.o(i.DataPrint) - i.DataRec 0x08001ffc Section 0 usarthmi.o(i.DataRec) - i.DataUnpack 0x08002008 Section 0 hmi.o(i.DataUnpack) - i.FM24DataCRC 0x080035a0 Section 0 hmi.o(i.FM24DataCRC) - i.FM24Init 0x080036ec Section 0 fm24.o(i.FM24Init) - i.FM24_Read 0x080036f4 Section 0 fm24.o(i.FM24_Read) - i.FM24_Write 0x08003750 Section 0 fm24.o(i.FM24_Write) - i.GPIO_InPutset 0x08003798 Section 0 bios.o(i.GPIO_InPutset) - i.GPIO_Init 0x080037c4 Section 0 stm32f10x_gpio.o(i.GPIO_Init) - i.GPIO_PinRemapConfig 0x080038dc Section 0 stm32f10x_gpio.o(i.GPIO_PinRemapConfig) - i.GPIO_ReadInputDataBit 0x0800396c Section 0 stm32f10x_gpio.o(i.GPIO_ReadInputDataBit) - i.GPIO_ResetBits 0x0800397e Section 0 stm32f10x_gpio.o(i.GPIO_ResetBits) - i.GPIO_SetBits 0x08003982 Section 0 stm32f10x_gpio.o(i.GPIO_SetBits) - i.HMICMDInit 0x08003988 Section 0 hmi.o(i.HMICMDInit) - i.HeatPID_Task 0x0800399c Section 0 ws100t10.o(i.HeatPID_Task) - HeatPID_Task 0x0800399d Thumb Code 512 ws100t10.o(i.HeatPID_Task) - i.HeatTask_Init 0x08003be8 Section 0 ws100t10.o(i.HeatTask_Init) - HeatTask_Init 0x08003be9 Thumb Code 12 ws100t10.o(i.HeatTask_Init) - i.HeatTask_Socket 0x08003bf8 Section 0 ws100t10.o(i.HeatTask_Socket) - HeatTask_Socket 0x08003bf9 Thumb Code 20 ws100t10.o(i.HeatTask_Socket) - i.I2C2_ACK 0x08003c0c Section 0 i2c.o(i.I2C2_ACK) - i.I2C2_Init 0x08003c48 Section 0 i2c.o(i.I2C2_Init) - i.I2C2_NACK 0x08003c88 Section 0 i2c.o(i.I2C2_NACK) - i.I2C2_ReadByte 0x08003cc4 Section 0 i2c.o(i.I2C2_ReadByte) - i.I2C2_SendByte 0x08003d28 Section 0 i2c.o(i.I2C2_SendByte) - i.I2C2_Start 0x08003d90 Section 0 i2c.o(i.I2C2_Start) - i.I2C2_Stop 0x08003dcc Section 0 i2c.o(i.I2C2_Stop) - i.I2C2_Wait_ACK 0x08003e04 Section 0 i2c.o(i.I2C2_Wait_ACK) - i.InstrumentTypeRead 0x08003e68 Section 0 bios.o(i.InstrumentTypeRead) - i.MAX6675_ConvertTemperature 0x08003ea8 Section 0 max6675.o(i.MAX6675_ConvertTemperature) - i.MAX6675_Init 0x08003f28 Section 0 max6675.o(i.MAX6675_Init) - i.MAX6675_ReadData 0x08003f90 Section 0 max6675.o(i.MAX6675_ReadData) - i.Moisturing 0x08003fe8 Section 0 hmi.o(i.Moisturing) - i.MoisturingRun 0x08005300 Section 0 hmi.o(i.MoisturingRun) - i.Pump_OutCmd 0x08005310 Section 0 ws100t10.o(i.Pump_OutCmd) - i.RCC_APB2PeriphClockCmd 0x08005338 Section 0 stm32f10x_rcc.o(i.RCC_APB2PeriphClockCmd) - i.SPI1_Configuration 0x08005358 Section 0 spi.o(i.SPI1_Configuration) - i.SPI1_ReadWrite 0x080053dc Section 0 spi.o(i.SPI1_ReadWrite) - i.SPI_Cmd 0x08005414 Section 0 stm32f10x_spi.o(i.SPI_Cmd) - i.SPI_I2S_GetFlagStatus 0x0800542c Section 0 stm32f10x_spi.o(i.SPI_I2S_GetFlagStatus) - i.SPI_I2S_ReceiveData 0x0800543e Section 0 stm32f10x_spi.o(i.SPI_I2S_ReceiveData) - i.SPI_I2S_SendData 0x08005444 Section 0 stm32f10x_spi.o(i.SPI_I2S_SendData) - i.SPI_Init 0x08005448 Section 0 stm32f10x_spi.o(i.SPI_Init) - i.SafeCheck 0x08005484 Section 0 bios.o(i.SafeCheck) - i.SetSysClock 0x080054a0 Section 0 system_stm32f10x.o(i.SetSysClock) - SetSysClock 0x080054a1 Thumb Code 8 system_stm32f10x.o(i.SetSysClock) - i.SetSysClockTo72 0x080054a8 Section 0 system_stm32f10x.o(i.SetSysClockTo72) - SetSysClockTo72 0x080054a9 Thumb Code 214 system_stm32f10x.o(i.SetSysClockTo72) - i.SystemInit 0x08005588 Section 0 system_stm32f10x.o(i.SystemInit) - i.TIM2_IRQHandler 0x080055e8 Section 0 usarthmi.o(i.TIM2_IRQHandler) - i.UART1_Received 0x08005670 Section 0 usarthmi.o(i.UART1_Received) - i.UART1_Send 0x08005688 Section 0 usarthmi.o(i.UART1_Send) - i.USART1_IRQHandler 0x080056a8 Section 0 usarthmi.o(i.USART1_IRQHandler) - i.USART2Print 0x0800573c Section 0 usart.o(i.USART2Print) - i.USART2_Send 0x08005770 Section 0 usart.o(i.USART2_Send) - i.USARTHMIInit 0x08005788 Section 0 usarthmi.o(i.USARTHMIInit) - i.USART_ITConfig 0x080057a8 Section 0 stm32f10x_usart.o(i.USART_ITConfig) - i.WS100T10_Ctrl 0x080057f4 Section 0 i2c.o(i.WS100T10_Ctrl) - i.WS100T10_Init 0x0800588c Section 0 i2c.o(i.WS100T10_Init) - i.__ARM_fpclassify 0x08005918 Section 0 fpclassify.o(i.__ARM_fpclassify) - i.__NVIC_EnableIRQ 0x08005940 Section 0 usarthmi.o(i.__NVIC_EnableIRQ) - __NVIC_EnableIRQ 0x08005941 Thumb Code 34 usarthmi.o(i.__NVIC_EnableIRQ) - i._init_box 0x08005962 Section 0 rt_membox.o(i._init_box) - i._is_digit 0x080059a8 Section 0 __printf_wp.o(i._is_digit) - i._mutex_acquire 0x080059b8 Section 0 rtx_conf_cm.o(i._mutex_acquire) - __tagsym$$used 0x080059b9 Number 0 rtx_conf_cm.o(i._mutex_acquire) - i._mutex_release 0x080059d8 Section 0 rtx_conf_cm.o(i._mutex_release) - __tagsym$$used 0x080059d9 Number 0 rtx_conf_cm.o(i._mutex_release) - i._task_ACCtrl 0x080059f4 Section 0 ws100t10.o(i._task_ACCtrl) - i.dbg_init 0x08005a30 Section 0 hal_cm.o(i.dbg_init) - i.dbg_task_notify 0x08005a60 Section 0 hal_cm.o(i.dbg_task_notify) - i.dbg_task_switch 0x08005a80 Section 0 hal_cm.o(i.dbg_task_switch) - i.delay_us 0x08005a90 Section 0 delay.o(i.delay_us) - i.isrMessagePut 0x08005b12 Section 0 rt_cmsis.o(i.isrMessagePut) - i.isrSemaphoreRelease 0x08005b3e Section 0 rt_cmsis.o(i.isrSemaphoreRelease) - i.isr_mbx_send 0x08005b66 Section 0 rt_mailbox.o(i.isr_mbx_send) - i.isr_sem_send 0x08005b74 Section 0 rt_semaphore.o(i.isr_sem_send) - i.kalman_filter_init 0x08005b84 Section 0 max6675.o(i.kalman_filter_init) - i.kalman_filter_init2 0x08005b92 Section 0 ad7190.o(i.kalman_filter_init2) - i.kalman_filter_update 0x08005ba0 Section 0 max6675.o(i.kalman_filter_update) - i.kalman_filter_update2 0x08005bfa Section 0 ad7190.o(i.kalman_filter_update2) - i.main 0x08005c54 Section 0 moisture.o(i.main) - i.osDelay 0x08005df0 Section 0 rt_cmsis.o(i.osDelay) - i.osKernelInitialize 0x08005e08 Section 0 rt_cmsis.o(i.osKernelInitialize) - i.osKernelStart 0x08005e2c Section 0 rt_cmsis.o(i.osKernelStart) - i.osKernelSysTick 0x08005e98 Section 0 rt_cmsis.o(i.osKernelSysTick) - i.osMutexCreate 0x08005eb0 Section 0 rt_cmsis.o(i.osMutexCreate) - i.osMutexRelease 0x08005edc Section 0 rt_cmsis.o(i.osMutexRelease) - i.osMutexWait 0x08005ef4 Section 0 rt_cmsis.o(i.osMutexWait) - i.osSemaphoreCreate 0x08005f0c Section 0 rt_cmsis.o(i.osSemaphoreCreate) - i.osSemaphoreRelease 0x08005f38 Section 0 rt_cmsis.o(i.osSemaphoreRelease) - i.osSemaphoreWait 0x08005f50 Section 0 rt_cmsis.o(i.osSemaphoreWait) - i.osThreadCreate 0x08005f68 Section 0 rt_cmsis.o(i.osThreadCreate) - i.osThreadExit 0x08005f94 Section 0 rt_cmsis.o(i.osThreadExit) - i.osThreadGetId 0x08005fac Section 0 rt_cmsis.o(i.osThreadGetId) - i.osThreadTerminate 0x08005fc4 Section 0 rt_cmsis.o(i.osThreadTerminate) - i.os_error 0x08005fdc Section 0 rtx_conf_cm.o(i.os_error) - i.os_idle_demon 0x08005ffe Section 0 rtx_conf_cm.o(i.os_idle_demon) - i.os_tick_init 0x08006004 Section 0 rt_system.o(i.os_tick_init) - i.os_tick_irqack 0x0800602c Section 0 rt_system.o(i.os_tick_irqack) - i.os_tick_ovf 0x08006030 Section 0 rt_system.o(i.os_tick_ovf) - i.os_tick_val 0x08006040 Section 0 rt_system.o(i.os_tick_val) - i.rt_alloc_box 0x08006054 Section 0 rt_membox.o(i.rt_alloc_box) - i.rt_alloc_mem 0x0800606e Section 0 rt_memory.o(i.rt_alloc_mem) - i.rt_block 0x080060ac Section 0 rt_task.o(i.rt_block) - i.rt_chk_robin 0x080060e4 Section 0 rt_robin.o(i.rt_chk_robin) - i.rt_dec_dly 0x0800612c Section 0 rt_list.o(i.rt_dec_dly) - i.rt_dispatch 0x0800619c Section 0 rt_task.o(i.rt_dispatch) - i.rt_dly_wait 0x080061e0 Section 0 rt_time.o(i.rt_dly_wait) - i.rt_evt_psh 0x080061e8 Section 0 rt_event.o(i.rt_evt_psh) - i.rt_free_box 0x08006238 Section 0 rt_membox.o(i.rt_free_box) - i.rt_free_mem 0x08006264 Section 0 rt_memory.o(i.rt_free_mem) - i.rt_get_first 0x0800628c Section 0 rt_list.o(i.rt_get_first) - i.rt_id2obj 0x080062b4 Section 0 rt_cmsis.o(i.rt_id2obj) - rt_id2obj 0x080062b5 Thumb Code 8 rt_cmsis.o(i.rt_id2obj) - i.rt_init_context 0x080062bc Section 0 rt_task.o(i.rt_init_context) - rt_init_context 0x080062bd Thumb Code 66 rt_task.o(i.rt_init_context) - i.rt_init_mem 0x08006304 Section 0 rt_memory.o(i.rt_init_mem) - i.rt_init_robin 0x08006320 Section 0 rt_robin.o(i.rt_init_robin) - i.rt_init_stack 0x08006338 Section 0 hal_cm.o(i.rt_init_stack) - i.rt_mbx_check 0x080063b8 Section 0 rt_mailbox.o(i.rt_mbx_check) - i.rt_mbx_init 0x080063c0 Section 0 rt_mailbox.o(i.rt_mbx_init) - i.rt_mbx_psh 0x080063dc Section 0 rt_mailbox.o(i.rt_mbx_psh) - i.rt_ms2tick 0x080064cc Section 0 rt_cmsis.o(i.rt_ms2tick) - rt_ms2tick 0x080064cd Thumb Code 58 rt_cmsis.o(i.rt_ms2tick) - i.rt_mut_init 0x08006510 Section 0 rt_mutex.o(i.rt_mut_init) - i.rt_mut_release 0x08006520 Section 0 rt_mutex.o(i.rt_mut_release) - i.rt_mut_wait 0x080065f8 Section 0 rt_mutex.o(i.rt_mut_wait) - i.rt_pop_req 0x08006670 Section 0 rt_system.o(i.rt_pop_req) - i.rt_psh_req 0x080066ec Section 0 rt_system.o(i.rt_psh_req) - i.rt_psq_enq 0x0800670c Section 0 rt_list.o(i.rt_psq_enq) - i.rt_put_dly 0x08006768 Section 0 rt_list.o(i.rt_put_dly) - i.rt_put_prio 0x080067b0 Section 0 rt_list.o(i.rt_put_prio) - i.rt_put_rdy_first 0x080067e8 Section 0 rt_list.o(i.rt_put_rdy_first) - i.rt_resort_prio 0x080067fc Section 0 rt_list.o(i.rt_resort_prio) - i.rt_ret_val 0x08006830 Section 0 hal_cm.o(i.rt_ret_val) - i.rt_ret_val2 0x08006836 Section 0 hal_cm.o(i.rt_ret_val2) - i.rt_rmv_dly 0x0800683e Section 0 rt_list.o(i.rt_rmv_dly) - i.rt_rmv_list 0x08006868 Section 0 rt_list.o(i.rt_rmv_list) - i.rt_sem_init 0x08006898 Section 0 rt_semaphore.o(i.rt_sem_init) - i.rt_sem_psh 0x080068a4 Section 0 rt_semaphore.o(i.rt_sem_psh) - i.rt_sem_send 0x080068d8 Section 0 rt_semaphore.o(i.rt_sem_send) - i.rt_sem_wait 0x08006904 Section 0 rt_semaphore.o(i.rt_sem_wait) - i.rt_stk_check 0x08006944 Section 0 rt_system.o(i.rt_stk_check) - i.rt_switch_req 0x08006968 Section 0 rt_task.o(i.rt_switch_req) - i.rt_sys_init 0x08006990 Section 0 rt_task.o(i.rt_sys_init) - i.rt_sys_start 0x08006a5c Section 0 rt_task.o(i.rt_sys_start) - i.rt_systick 0x08006ad4 Section 0 rt_system.o(i.rt_systick) - i.rt_tid2ptcb 0x08006b14 Section 0 rt_cmsis.o(i.rt_tid2ptcb) - rt_tid2ptcb 0x08006b15 Thumb Code 18 rt_cmsis.o(i.rt_tid2ptcb) - i.rt_timer_insert 0x08006b28 Section 0 rt_cmsis.o(i.rt_timer_insert) - rt_timer_insert 0x08006b29 Thumb Code 48 rt_cmsis.o(i.rt_timer_insert) - i.rt_tsk_create 0x08006b5c Section 0 rt_task.o(i.rt_tsk_create) - i.rt_tsk_delete 0x08006be4 Section 0 rt_task.o(i.rt_tsk_delete) - i.rt_tsk_prio 0x08006d60 Section 0 rt_task.o(i.rt_tsk_prio) - i.rt_tsk_self 0x08006ddc Section 0 rt_task.o(i.rt_tsk_self) - i.svcDelay 0x08006dec Section 0 rt_cmsis.o(i.svcDelay) - i.svcKernelInitialize 0x08006e00 Section 0 rt_cmsis.o(i.svcKernelInitialize) - i.svcKernelStart 0x08006e70 Section 0 rt_cmsis.o(i.svcKernelStart) - i.svcKernelSysTick 0x08006eb8 Section 0 rt_cmsis.o(i.svcKernelSysTick) - i.svcMessageCreate 0x08006ef0 Section 0 rt_cmsis.o(i.svcMessageCreate) - i.svcMutexCreate 0x08006f14 Section 0 rt_cmsis.o(i.svcMutexCreate) - i.svcMutexRelease 0x08006f30 Section 0 rt_cmsis.o(i.svcMutexRelease) - i.svcMutexWait 0x08006f52 Section 0 rt_cmsis.o(i.svcMutexWait) - i.svcSemaphoreCreate 0x08006f8c Section 0 rt_cmsis.o(i.svcSemaphoreCreate) - i.svcSemaphoreRelease 0x08006fb0 Section 0 rt_cmsis.o(i.svcSemaphoreRelease) - i.svcSemaphoreWait 0x08006fd8 Section 0 rt_cmsis.o(i.svcSemaphoreWait) - i.svcThreadCreate 0x0800700c Section 0 rt_cmsis.o(i.svcThreadCreate) - i.svcThreadGetId 0x08007078 Section 0 rt_cmsis.o(i.svcThreadGetId) - i.svcThreadTerminate 0x08007094 Section 0 rt_cmsis.o(i.svcThreadTerminate) - i.sysTimerTick 0x080070cc Section 0 rt_cmsis.o(i.sysTimerTick) - locale$$code 0x08007128 Section 44 lc_numeric_c.o(locale$$code) - x$fpl$d2f 0x08007154 Section 98 d2f.o(x$fpl$d2f) - x$fpl$dcmpinf 0x080071b6 Section 24 dcmpi.o(x$fpl$dcmpinf) - x$fpl$dflt 0x080071ce Section 46 dflt_clz.o(x$fpl$dflt) - x$fpl$dleqf 0x080071fc Section 120 dleqf.o(x$fpl$dleqf) - x$fpl$dmul 0x08007274 Section 340 dmul.o(x$fpl$dmul) - x$fpl$dnaninf 0x080073c8 Section 156 dnaninf.o(x$fpl$dnaninf) - x$fpl$dretinf 0x08007464 Section 12 dretinf.o(x$fpl$dretinf) - x$fpl$drleqf 0x08007470 Section 108 drleqf.o(x$fpl$drleqf) - x$fpl$f2d 0x080074dc Section 86 f2d.o(x$fpl$f2d) - x$fpl$fadd 0x08007534 Section 196 faddsub_clz.o(x$fpl$fadd) - _fadd1 0x08007543 Thumb Code 0 faddsub_clz.o(x$fpl$fadd) - x$fpl$fcmpinf 0x080075f8 Section 24 fcmpi.o(x$fpl$fcmpinf) - x$fpl$fdiv 0x08007610 Section 388 fdiv.o(x$fpl$fdiv) - _fdiv1 0x08007611 Thumb Code 0 fdiv.o(x$fpl$fdiv) - x$fpl$feqf 0x08007794 Section 104 feqf.o(x$fpl$feqf) - x$fpl$ffix 0x080077fc Section 54 ffix.o(x$fpl$ffix) - x$fpl$ffixu 0x08007834 Section 62 ffixu.o(x$fpl$ffixu) - x$fpl$fflt 0x08007874 Section 48 fflt_clz.o(x$fpl$fflt) - x$fpl$ffltu 0x080078a4 Section 38 fflt_clz.o(x$fpl$ffltu) - x$fpl$fleqf 0x080078cc Section 104 fleqf.o(x$fpl$fleqf) - x$fpl$fmul 0x08007934 Section 258 fmul.o(x$fpl$fmul) - x$fpl$fnaninf 0x08007a36 Section 140 fnaninf.o(x$fpl$fnaninf) - x$fpl$fretinf 0x08007ac2 Section 10 fretinf.o(x$fpl$fretinf) - x$fpl$frleqf 0x08007acc Section 98 frleqf.o(x$fpl$frleqf) - x$fpl$frsb 0x08007b2e Section 20 faddsub_clz.o(x$fpl$frsb) - x$fpl$fsub 0x08007b44 Section 234 faddsub_clz.o(x$fpl$fsub) - _fsub1 0x08007b53 Thumb Code 0 faddsub_clz.o(x$fpl$fsub) - x$fpl$printf1 0x08007c2e Section 4 printf1.o(x$fpl$printf1) - x$fpl$usenofp 0x08007c32 Section 0 usenofp.o(x$fpl$usenofp) - .constdata 0x08007c34 Section 16 ad7190.o(.constdata) - .constdata 0x08007c44 Section 32 ws100t10.o(.constdata) - .constdata 0x08007c64 Section 16 max6675.o(.constdata) - .constdata 0x08007c74 Section 4 usarthmi.o(.constdata) - .constdata 0x08007c78 Section 234 hmi.o(.constdata) - .constdata 0x08007d64 Section 104 rtx_conf_cm.o(.constdata) - __tagsym$$used 0x08007d80 Number 0 rtx_conf_cm.o(.constdata) - __tagsym$$used 0x08007d84 Number 0 rtx_conf_cm.o(.constdata) - __tagsym$$used 0x08007d88 Number 0 rtx_conf_cm.o(.constdata) - __tagsym$$used 0x08007d8c Number 0 rtx_conf_cm.o(.constdata) - .constdata 0x08007dcc Section 17 __printf_flags_wp.o(.constdata) - maptable 0x08007dcc Data 17 __printf_flags_wp.o(.constdata) - .constdata 0x08007de0 Section 148 bigflt0.o(.constdata) - tenpwrs_x 0x08007de0 Data 60 bigflt0.o(.constdata) - tenpwrs_i 0x08007e1c Data 64 bigflt0.o(.constdata) - locale$$data 0x08007e94 Section 28 lc_numeric_c.o(locale$$data) - __lcnum_c_name 0x08007e98 Data 2 lc_numeric_c.o(locale$$data) - __lcnum_c_start 0x08007ea0 Data 0 lc_numeric_c.o(locale$$data) - __lcnum_c_point 0x08007eac Data 0 lc_numeric_c.o(locale$$data) - __lcnum_c_thousands 0x08007eae Data 0 lc_numeric_c.o(locale$$data) - __lcnum_c_grouping 0x08007eaf Data 0 lc_numeric_c.o(locale$$data) - __lcnum_c_end 0x08007eb0 Data 0 lc_numeric_c.o(locale$$data) - .data 0x20000000 Section 53 ad7190.o(.data) - WeightData2Temp 0x2000000c Data 4 ad7190.o(.data) - .data 0x20000038 Section 48 ws100t10.o(.data) - HeatOp_State 0x2000005c Data 1 ws100t10.o(.data) - .data 0x20000068 Section 4 max6675.o(.data) - .data 0x2000006c Section 24 usarthmi.o(.data) - UsartDelayTime 0x20000070 Data 2 usarthmi.o(.data) - RxFlag 0x20000072 Data 1 usarthmi.o(.data) - Datai 0x20000073 Data 1 usarthmi.o(.data) - .data 0x20000084 Section 57 hmi.o(.data) - .data 0x200000c0 Section 20 rtx_conf_cm.o(.data) - nr_mutex 0x200000d0 Data 4 rtx_conf_cm.o(.data) - .data 0x200000d4 Section 20 system_stm32f10x.o(.data) - .data 0x200000e8 Section 8 rt_cmsis.o(.data) - .data 0x200000f0 Section 8 rt_task.o(.data) - .data 0x200000f8 Section 8 rt_system.o(.data) - os_lock 0x200000f8 Data 1 rt_system.o(.data) - os_psh_flag 0x200000f9 Data 1 rt_system.o(.data) - pend_flags 0x200000fa Data 1 rt_system.o(.data) - .data 0x20000100 Section 4 rt_time.o(.data) - .data 0x20000104 Section 8 rt_robin.o(.data) - .data 0x2000010c Section 1 hal_cm.o(.data) - .bss 0x20000110 Section 40 ad7190.o(.bss) - .bss 0x20000138 Section 20 max6675.o(.bss) - .bss 0x2000014c Section 100 usarthmi.o(.bss) - .bss 0x200001b0 Section 356 hmi.o(.bss) - .bss 0x20000314 Section 52 rt_task.o(.bss) - .bss 0x20000348 Section 48 rt_list.o(.bss) - .bss 0x20000378 Section 96 libspace.o(.bss) - HEAP 0x200003d8 Section 512 startup_stm32f10x_md.o(HEAP) - Heap_Mem 0x200003d8 Data 512 startup_stm32f10x_md.o(HEAP) - STACK 0x200005d8 Section 1024 startup_stm32f10x_md.o(STACK) - Stack_Mem 0x200005d8 Data 1024 startup_stm32f10x_md.o(STACK) - __initial_sp 0x200009d8 Data 0 startup_stm32f10x_md.o(STACK) + .ARM.Collect$$$$00000000 0x080000ec Section 0 entry.o(.ARM.Collect$$$$00000000) + .ARM.Collect$$$$00000001 0x080000ec Section 4 entry2.o(.ARM.Collect$$$$00000001) + .ARM.Collect$$$$00000004 0x080000f0 Section 4 entry5.o(.ARM.Collect$$$$00000004) + .ARM.Collect$$$$00000008 0x080000f4 Section 0 entry7b.o(.ARM.Collect$$$$00000008) + .ARM.Collect$$$$0000000A 0x080000f4 Section 0 entry8b.o(.ARM.Collect$$$$0000000A) + .ARM.Collect$$$$0000000E 0x080000f4 Section 4 entry12b.o(.ARM.Collect$$$$0000000E) + .ARM.Collect$$$$0000000F 0x080000f8 Section 0 entry10a.o(.ARM.Collect$$$$0000000F) + .ARM.Collect$$$$00000011 0x080000f8 Section 0 entry11a.o(.ARM.Collect$$$$00000011) + .ARM.Collect$$$$000000FF 0x080000f8 Section 0 rtx_conf_cm.o(.ARM.Collect$$$$000000FF) + .ARM.Collect$$$$00002712 0x08000110 Section 4 entry2.o(.ARM.Collect$$$$00002712) + __lit__00000000 0x08000110 Data 4 entry2.o(.ARM.Collect$$$$00002712) + .emb_text 0x08000114 Section 304 hal_cm3.o(.emb_text) + .text 0x08000244 Section 36 startup_stm32f10x_md.o(.text) + .text 0x08000268 Section 0 uldiv.o(.text) + .text 0x080002ca Section 0 memseta.o(.text) + .text 0x080002ee Section 0 strlen.o(.text) + .text 0x080002fc Section 0 strcmp.o(.text) + .text 0x08000318 Section 0 strcpy.o(.text) + .text 0x0800032a Section 0 fadd.o(.text) + .text 0x080003da Section 0 fmul.o(.text) + .text 0x0800043e Section 0 fdiv.o(.text) + .text 0x080004ba Section 0 dadd.o(.text) + .text 0x08000608 Section 0 dmul.o(.text) + .text 0x080006ec Section 0 ddiv.o(.text) + .text 0x080007ca Section 0 fflti.o(.text) + .text 0x080007dc Section 0 ffltui.o(.text) + .text 0x080007e6 Section 0 dflti.o(.text) + .text 0x08000808 Section 0 dfltui.o(.text) + .text 0x08000822 Section 0 ffixui.o(.text) + .text 0x0800084a Section 0 dfixi.o(.text) + .text 0x08000888 Section 0 f2d.o(.text) + .text 0x080008b0 Section 48 cdcmple.o(.text) + .text 0x080008e0 Section 48 cdrcmple.o(.text) + .text 0x08000910 Section 0 d2f.o(.text) + .text 0x08000948 Section 20 cfcmple.o(.text) + .text 0x0800095c Section 20 cfrcmple.o(.text) + .text 0x08000970 Section 0 uidiv.o(.text) + .text 0x0800099c Section 0 llshl.o(.text) + .text 0x080009ba Section 0 llushr.o(.text) + .text 0x080009da Section 0 llsshr.o(.text) + .text 0x080009fe Section 0 iusefp.o(.text) + .text 0x080009fe Section 0 fepilogue.o(.text) + .text 0x08000a6c Section 0 depilogue.o(.text) + .text 0x08000b26 Section 0 dfixul.o(.text) + .text 0x08000b58 Section 36 init.o(.text) + .text 0x08000b7c Section 0 __dczerorl.o(.text) + SVC_TABLE 0x08000bb8 Section 4 svc_table.o(SVC_TABLE) + i.ACCMD 0x08000bbc Section 0 ws100t10.o(i.ACCMD) + i.ACCtrl 0x08000be0 Section 0 ws100t10.o(i.ACCtrl) + i.AC_CTRL_Init 0x08000c24 Section 0 ws100t10.o(i.AC_CTRL_Init) + i.AD7190_Init 0x08000c34 Section 0 ad7190.o(i.AD7190_Init) + i.AD7190_ReadData 0x08000ccc Section 0 ad7190.o(i.AD7190_ReadData) + i.AD7190_ReadRegister 0x08000e10 Section 0 ad7190.o(i.AD7190_ReadRegister) + i.AD7190_ReadRegisterOnce 0x08000e3e Section 0 ad7190.o(i.AD7190_ReadRegisterOnce) + i.AD7190_Run 0x08000e58 Section 0 ad7190.o(i.AD7190_Run) + i.AD7190_WaitForReady 0x08001600 Section 0 ad7190.o(i.AD7190_WaitForReady) + i.AD7190_WriteRegister 0x08001630 Section 0 ad7190.o(i.AD7190_WriteRegister) + i.AD7190_WriteRegisterOnce 0x08001654 Section 0 ad7190.o(i.AD7190_WriteRegisterOnce) + i.BIOS_TIM2_TIMER_Init 0x08001668 Section 0 usarthmi.o(i.BIOS_TIM2_TIMER_Init) + i.BIOS_USART1_Init 0x080016c8 Section 0 usarthmi.o(i.BIOS_USART1_Init) + i.BIOS_USART2_Init 0x08001768 Section 0 usart.o(i.BIOS_USART2_Init) + i.DataPrint 0x080017d4 Section 0 usarthmi.o(i.DataPrint) + i.DataRec 0x08001824 Section 0 usarthmi.o(i.DataRec) + i.DataUnpack 0x08001830 Section 0 hmi.o(i.DataUnpack) + i.FM24DataCRC 0x08003260 Section 0 hmi.o(i.FM24DataCRC) + i.FM24Init 0x080033c0 Section 0 fm24.o(i.FM24Init) + i.FM24_Read 0x080033c8 Section 0 fm24.o(i.FM24_Read) + i.FM24_Write 0x08003424 Section 0 fm24.o(i.FM24_Write) + i.GPIO_InPutset 0x0800346c Section 0 bios.o(i.GPIO_InPutset) + i.GPIO_Init 0x08003498 Section 0 stm32f10x_gpio.o(i.GPIO_Init) + i.GPIO_PinRemapConfig 0x080035b0 Section 0 stm32f10x_gpio.o(i.GPIO_PinRemapConfig) + i.GPIO_ReadInputDataBit 0x08003640 Section 0 stm32f10x_gpio.o(i.GPIO_ReadInputDataBit) + i.GPIO_ResetBits 0x08003652 Section 0 stm32f10x_gpio.o(i.GPIO_ResetBits) + i.GPIO_SetBits 0x08003656 Section 0 stm32f10x_gpio.o(i.GPIO_SetBits) + i.HMICMDInit 0x0800365c Section 0 hmi.o(i.HMICMDInit) + i.HeatPID_Task 0x08003670 Section 0 ws100t10.o(i.HeatPID_Task) + HeatPID_Task 0x08003671 Thumb Code 512 ws100t10.o(i.HeatPID_Task) + i.HeatTask_Init 0x080038bc Section 0 ws100t10.o(i.HeatTask_Init) + HeatTask_Init 0x080038bd Thumb Code 12 ws100t10.o(i.HeatTask_Init) + i.HeatTask_Socket 0x080038cc Section 0 ws100t10.o(i.HeatTask_Socket) + HeatTask_Socket 0x080038cd Thumb Code 20 ws100t10.o(i.HeatTask_Socket) + i.I2C2_ACK 0x080038e0 Section 0 i2c.o(i.I2C2_ACK) + i.I2C2_Init 0x0800391c Section 0 i2c.o(i.I2C2_Init) + i.I2C2_NACK 0x0800395c Section 0 i2c.o(i.I2C2_NACK) + i.I2C2_ReadByte 0x08003998 Section 0 i2c.o(i.I2C2_ReadByte) + i.I2C2_SendByte 0x080039fc Section 0 i2c.o(i.I2C2_SendByte) + i.I2C2_Start 0x08003a64 Section 0 i2c.o(i.I2C2_Start) + i.I2C2_Stop 0x08003aa0 Section 0 i2c.o(i.I2C2_Stop) + i.I2C2_Wait_ACK 0x08003ad8 Section 0 i2c.o(i.I2C2_Wait_ACK) + i.InstrumentTypeRead 0x08003b3c Section 0 bios.o(i.InstrumentTypeRead) + i.MAX6675_ConvertTemperature 0x08003b7c Section 0 max6675.o(i.MAX6675_ConvertTemperature) + i.MAX6675_Init 0x08003bfc Section 0 max6675.o(i.MAX6675_Init) + i.MAX6675_ReadData 0x08003c64 Section 0 max6675.o(i.MAX6675_ReadData) + i.Moisturing 0x08003cbc Section 0 hmi.o(i.Moisturing) + i.MoisturingRun 0x080056ac Section 0 hmi.o(i.MoisturingRun) + i.Pump_OutCmd 0x080056bc Section 0 ws100t10.o(i.Pump_OutCmd) + i.RCC_APB2PeriphClockCmd 0x080056e4 Section 0 stm32f10x_rcc.o(i.RCC_APB2PeriphClockCmd) + i.SPI1_Configuration 0x08005704 Section 0 spi.o(i.SPI1_Configuration) + i.SPI1_ReadWrite 0x08005780 Section 0 spi.o(i.SPI1_ReadWrite) + i.SPI_Cmd 0x080057fc Section 0 stm32f10x_spi.o(i.SPI_Cmd) + i.SPI_I2S_GetFlagStatus 0x08005814 Section 0 stm32f10x_spi.o(i.SPI_I2S_GetFlagStatus) + i.SPI_I2S_ReceiveData 0x08005826 Section 0 stm32f10x_spi.o(i.SPI_I2S_ReceiveData) + i.SPI_I2S_SendData 0x0800582c Section 0 stm32f10x_spi.o(i.SPI_I2S_SendData) + i.SPI_Init 0x08005830 Section 0 stm32f10x_spi.o(i.SPI_Init) + i.SafeCheck 0x0800586c Section 0 bios.o(i.SafeCheck) + i.SetSysClock 0x08005888 Section 0 system_stm32f10x.o(i.SetSysClock) + SetSysClock 0x08005889 Thumb Code 8 system_stm32f10x.o(i.SetSysClock) + i.SetSysClockTo72 0x08005890 Section 0 system_stm32f10x.o(i.SetSysClockTo72) + SetSysClockTo72 0x08005891 Thumb Code 214 system_stm32f10x.o(i.SetSysClockTo72) + i.SystemInit 0x08005970 Section 0 system_stm32f10x.o(i.SystemInit) + i.TIM2_IRQHandler 0x080059d0 Section 0 usarthmi.o(i.TIM2_IRQHandler) + i.UART1_Received 0x08005a58 Section 0 usarthmi.o(i.UART1_Received) + i.UART1_Send 0x08005a70 Section 0 usarthmi.o(i.UART1_Send) + i.USART1_IRQHandler 0x08005a90 Section 0 usarthmi.o(i.USART1_IRQHandler) + i.USART2Print 0x08005b24 Section 0 usart.o(i.USART2Print) + i.USART2_Send 0x08005b58 Section 0 usart.o(i.USART2_Send) + i.USARTHMIInit 0x08005b70 Section 0 usarthmi.o(i.USARTHMIInit) + i.USART_ITConfig 0x08005b90 Section 0 stm32f10x_usart.o(i.USART_ITConfig) + i.WS100T10_Ctrl 0x08005bdc Section 0 i2c.o(i.WS100T10_Ctrl) + i.WS100T10_Init 0x08005c74 Section 0 i2c.o(i.WS100T10_Init) + i.__0sprintf 0x08005d00 Section 0 printfa.o(i.__0sprintf) + i.__NVIC_EnableIRQ 0x08005d28 Section 0 usarthmi.o(i.__NVIC_EnableIRQ) + __NVIC_EnableIRQ 0x08005d29 Thumb Code 34 usarthmi.o(i.__NVIC_EnableIRQ) + i.__scatterload_copy 0x08005d4a Section 14 handlers.o(i.__scatterload_copy) + i.__scatterload_null 0x08005d58 Section 2 handlers.o(i.__scatterload_null) + i.__scatterload_zeroinit 0x08005d5a Section 14 handlers.o(i.__scatterload_zeroinit) + i._fp_digits 0x08005d68 Section 0 printfa.o(i._fp_digits) + _fp_digits 0x08005d69 Thumb Code 366 printfa.o(i._fp_digits) + i._init_box 0x08005eec Section 0 rt_membox.o(i._init_box) + i._printf_core 0x08005f34 Section 0 printfa.o(i._printf_core) + _printf_core 0x08005f35 Thumb Code 1704 printfa.o(i._printf_core) + i._printf_post_padding 0x080065e8 Section 0 printfa.o(i._printf_post_padding) + _printf_post_padding 0x080065e9 Thumb Code 36 printfa.o(i._printf_post_padding) + i._printf_pre_padding 0x0800660c Section 0 printfa.o(i._printf_pre_padding) + _printf_pre_padding 0x0800660d Thumb Code 46 printfa.o(i._printf_pre_padding) + i._sputc 0x0800663a Section 0 printfa.o(i._sputc) + _sputc 0x0800663b Thumb Code 10 printfa.o(i._sputc) + i._task_ACCtrl 0x08006644 Section 0 ws100t10.o(i._task_ACCtrl) + i.dbg_init 0x08006680 Section 0 hal_cm.o(i.dbg_init) + i.dbg_task_notify 0x080066b0 Section 0 hal_cm.o(i.dbg_task_notify) + i.dbg_task_switch 0x080066d0 Section 0 hal_cm.o(i.dbg_task_switch) + i.delay_us 0x080066e0 Section 0 delay.o(i.delay_us) + i.isrMessagePut 0x08006762 Section 0 rt_cmsis.o(i.isrMessagePut) + i.isrSemaphoreRelease 0x0800678e Section 0 rt_cmsis.o(i.isrSemaphoreRelease) + i.isr_mbx_send 0x080067b6 Section 0 rt_mailbox.o(i.isr_mbx_send) + i.isr_sem_send 0x080067c4 Section 0 rt_semaphore.o(i.isr_sem_send) + i.kalman_filter_init 0x080067d4 Section 0 max6675.o(i.kalman_filter_init) + i.kalman_filter_init2 0x080067e2 Section 0 ad7190.o(i.kalman_filter_init2) + i.kalman_filter_update 0x0800681e Section 0 max6675.o(i.kalman_filter_update) + i.kalman_filter_update2 0x08006878 Section 0 ad7190.o(i.kalman_filter_update2) + i.main 0x08006934 Section 0 moisture.o(i.main) + i.osDelay 0x08006abc Section 0 rt_cmsis.o(i.osDelay) + i.osKernelInitialize 0x08006ad4 Section 0 rt_cmsis.o(i.osKernelInitialize) + i.osKernelStart 0x08006af8 Section 0 rt_cmsis.o(i.osKernelStart) + i.osKernelSysTick 0x08006b64 Section 0 rt_cmsis.o(i.osKernelSysTick) + i.osMutexCreate 0x08006b7c Section 0 rt_cmsis.o(i.osMutexCreate) + i.osMutexRelease 0x08006ba8 Section 0 rt_cmsis.o(i.osMutexRelease) + i.osMutexWait 0x08006bc0 Section 0 rt_cmsis.o(i.osMutexWait) + i.osSemaphoreCreate 0x08006bd8 Section 0 rt_cmsis.o(i.osSemaphoreCreate) + i.osSemaphoreRelease 0x08006c04 Section 0 rt_cmsis.o(i.osSemaphoreRelease) + i.osSemaphoreWait 0x08006c1c Section 0 rt_cmsis.o(i.osSemaphoreWait) + i.osThreadCreate 0x08006c34 Section 0 rt_cmsis.o(i.osThreadCreate) + i.osThreadExit 0x08006c60 Section 0 rt_cmsis.o(i.osThreadExit) + i.osThreadGetId 0x08006c78 Section 0 rt_cmsis.o(i.osThreadGetId) + i.osThreadTerminate 0x08006c90 Section 0 rt_cmsis.o(i.osThreadTerminate) + i.os_error 0x08006ca8 Section 0 rtx_conf_cm.o(i.os_error) + i.os_idle_demon 0x08006cca Section 0 rtx_conf_cm.o(i.os_idle_demon) + i.os_tick_init 0x08006cd0 Section 0 rt_system.o(i.os_tick_init) + i.os_tick_irqack 0x08006cf8 Section 0 rt_system.o(i.os_tick_irqack) + i.os_tick_ovf 0x08006cfc Section 0 rt_system.o(i.os_tick_ovf) + i.os_tick_val 0x08006d0c Section 0 rt_system.o(i.os_tick_val) + i.rt_alloc_box 0x08006d20 Section 0 rt_membox.o(i.rt_alloc_box) + i.rt_alloc_mem 0x08006d3a Section 0 rt_memory.o(i.rt_alloc_mem) + i.rt_block 0x08006d78 Section 0 rt_task.o(i.rt_block) + i.rt_chk_robin 0x08006db0 Section 0 rt_robin.o(i.rt_chk_robin) + i.rt_dec_dly 0x08006df8 Section 0 rt_list.o(i.rt_dec_dly) + i.rt_dispatch 0x08006e68 Section 0 rt_task.o(i.rt_dispatch) + i.rt_dly_wait 0x08006eac Section 0 rt_time.o(i.rt_dly_wait) + i.rt_evt_psh 0x08006eb4 Section 0 rt_event.o(i.rt_evt_psh) + i.rt_free_box 0x08006f04 Section 0 rt_membox.o(i.rt_free_box) + i.rt_free_mem 0x08006f30 Section 0 rt_memory.o(i.rt_free_mem) + i.rt_get_first 0x08006f58 Section 0 rt_list.o(i.rt_get_first) + i.rt_id2obj 0x08006f80 Section 0 rt_cmsis.o(i.rt_id2obj) + rt_id2obj 0x08006f81 Thumb Code 8 rt_cmsis.o(i.rt_id2obj) + i.rt_init_context 0x08006f88 Section 0 rt_task.o(i.rt_init_context) + rt_init_context 0x08006f89 Thumb Code 66 rt_task.o(i.rt_init_context) + i.rt_init_mem 0x08006fd0 Section 0 rt_memory.o(i.rt_init_mem) + i.rt_init_robin 0x08006fec Section 0 rt_robin.o(i.rt_init_robin) + i.rt_init_stack 0x08007004 Section 0 hal_cm.o(i.rt_init_stack) + i.rt_mbx_check 0x08007084 Section 0 rt_mailbox.o(i.rt_mbx_check) + i.rt_mbx_init 0x0800708c Section 0 rt_mailbox.o(i.rt_mbx_init) + i.rt_mbx_psh 0x080070a8 Section 0 rt_mailbox.o(i.rt_mbx_psh) + i.rt_ms2tick 0x08007198 Section 0 rt_cmsis.o(i.rt_ms2tick) + rt_ms2tick 0x08007199 Thumb Code 58 rt_cmsis.o(i.rt_ms2tick) + i.rt_mut_init 0x080071dc Section 0 rt_mutex.o(i.rt_mut_init) + i.rt_mut_release 0x080071ec Section 0 rt_mutex.o(i.rt_mut_release) + i.rt_mut_wait 0x080072c4 Section 0 rt_mutex.o(i.rt_mut_wait) + i.rt_pop_req 0x0800733c Section 0 rt_system.o(i.rt_pop_req) + i.rt_psh_req 0x080073b8 Section 0 rt_system.o(i.rt_psh_req) + i.rt_psq_enq 0x080073d8 Section 0 rt_list.o(i.rt_psq_enq) + i.rt_put_dly 0x08007434 Section 0 rt_list.o(i.rt_put_dly) + i.rt_put_prio 0x0800747c Section 0 rt_list.o(i.rt_put_prio) + i.rt_put_rdy_first 0x080074b4 Section 0 rt_list.o(i.rt_put_rdy_first) + i.rt_resort_prio 0x080074c8 Section 0 rt_list.o(i.rt_resort_prio) + i.rt_ret_val 0x080074fc Section 0 hal_cm.o(i.rt_ret_val) + i.rt_ret_val2 0x08007502 Section 0 hal_cm.o(i.rt_ret_val2) + i.rt_rmv_dly 0x0800750a Section 0 rt_list.o(i.rt_rmv_dly) + i.rt_rmv_list 0x08007534 Section 0 rt_list.o(i.rt_rmv_list) + i.rt_sem_init 0x08007564 Section 0 rt_semaphore.o(i.rt_sem_init) + i.rt_sem_psh 0x08007570 Section 0 rt_semaphore.o(i.rt_sem_psh) + i.rt_sem_send 0x080075a4 Section 0 rt_semaphore.o(i.rt_sem_send) + i.rt_sem_wait 0x080075d0 Section 0 rt_semaphore.o(i.rt_sem_wait) + i.rt_stk_check 0x08007610 Section 0 rt_system.o(i.rt_stk_check) + i.rt_switch_req 0x08007634 Section 0 rt_task.o(i.rt_switch_req) + i.rt_sys_init 0x0800765c Section 0 rt_task.o(i.rt_sys_init) + i.rt_sys_start 0x08007728 Section 0 rt_task.o(i.rt_sys_start) + i.rt_systick 0x080077a0 Section 0 rt_system.o(i.rt_systick) + i.rt_tid2ptcb 0x080077e0 Section 0 rt_cmsis.o(i.rt_tid2ptcb) + rt_tid2ptcb 0x080077e1 Thumb Code 18 rt_cmsis.o(i.rt_tid2ptcb) + i.rt_timer_insert 0x080077f4 Section 0 rt_cmsis.o(i.rt_timer_insert) + rt_timer_insert 0x080077f5 Thumb Code 48 rt_cmsis.o(i.rt_timer_insert) + i.rt_tsk_create 0x08007828 Section 0 rt_task.o(i.rt_tsk_create) + i.rt_tsk_delete 0x080078b0 Section 0 rt_task.o(i.rt_tsk_delete) + i.rt_tsk_prio 0x08007a2c Section 0 rt_task.o(i.rt_tsk_prio) + i.rt_tsk_self 0x08007aa8 Section 0 rt_task.o(i.rt_tsk_self) + i.svcDelay 0x08007ab8 Section 0 rt_cmsis.o(i.svcDelay) + i.svcKernelInitialize 0x08007acc Section 0 rt_cmsis.o(i.svcKernelInitialize) + i.svcKernelStart 0x08007b3c Section 0 rt_cmsis.o(i.svcKernelStart) + i.svcKernelSysTick 0x08007b84 Section 0 rt_cmsis.o(i.svcKernelSysTick) + i.svcMessageCreate 0x08007bbc Section 0 rt_cmsis.o(i.svcMessageCreate) + i.svcMutexCreate 0x08007be0 Section 0 rt_cmsis.o(i.svcMutexCreate) + i.svcMutexRelease 0x08007bfc Section 0 rt_cmsis.o(i.svcMutexRelease) + i.svcMutexWait 0x08007c1e Section 0 rt_cmsis.o(i.svcMutexWait) + i.svcSemaphoreCreate 0x08007c58 Section 0 rt_cmsis.o(i.svcSemaphoreCreate) + i.svcSemaphoreRelease 0x08007c7c Section 0 rt_cmsis.o(i.svcSemaphoreRelease) + i.svcSemaphoreWait 0x08007ca4 Section 0 rt_cmsis.o(i.svcSemaphoreWait) + i.svcThreadCreate 0x08007cd8 Section 0 rt_cmsis.o(i.svcThreadCreate) + i.svcThreadGetId 0x08007d44 Section 0 rt_cmsis.o(i.svcThreadGetId) + i.svcThreadTerminate 0x08007d60 Section 0 rt_cmsis.o(i.svcThreadTerminate) + i.sysTimerTick 0x08007d98 Section 0 rt_cmsis.o(i.sysTimerTick) + .constdata 0x08007df4 Section 16 ad7190.o(.constdata) + .constdata 0x08007e04 Section 32 ws100t10.o(.constdata) + .constdata 0x08007e24 Section 16 max6675.o(.constdata) + .constdata 0x08007e34 Section 4 usarthmi.o(.constdata) + .constdata 0x08007e38 Section 1053 hmi.o(.constdata) + .constdata 0x08008258 Section 104 rtx_conf_cm.o(.constdata) + __tagsym$$used 0x08008274 Number 0 rtx_conf_cm.o(.constdata) + __tagsym$$used 0x08008278 Number 0 rtx_conf_cm.o(.constdata) + __tagsym$$used 0x0800827c Number 0 rtx_conf_cm.o(.constdata) + __tagsym$$used 0x08008280 Number 0 rtx_conf_cm.o(.constdata) + .data 0x20000000 Section 133 ad7190.o(.data) + .data 0x20000088 Section 48 ws100t10.o(.data) + HeatOp_State 0x200000ac Data 1 ws100t10.o(.data) + .data 0x200000b8 Section 4 max6675.o(.data) + .data 0x200000bc Section 24 usarthmi.o(.data) + UsartDelayTime 0x200000c0 Data 2 usarthmi.o(.data) + RxFlag 0x200000c2 Data 1 usarthmi.o(.data) + Datai 0x200000c3 Data 1 usarthmi.o(.data) + .data 0x200000d4 Section 87 hmi.o(.data) + .data 0x2000012c Section 16 rtx_conf_cm.o(.data) + .data 0x2000013c Section 20 system_stm32f10x.o(.data) + .data 0x20000150 Section 8 rt_cmsis.o(.data) + .data 0x20000158 Section 8 rt_task.o(.data) + .data 0x20000160 Section 8 rt_system.o(.data) + os_lock 0x20000160 Data 1 rt_system.o(.data) + os_psh_flag 0x20000161 Data 1 rt_system.o(.data) + pend_flags 0x20000162 Data 1 rt_system.o(.data) + .data 0x20000168 Section 4 rt_time.o(.data) + .data 0x2000016c Section 1 hal_cm.o(.data) + .data 0x20000170 Section 8 rt_robin.o(.data) + .bss 0x20000178 Section 216 ad7190.o(.bss) + .bss 0x20000250 Section 20 max6675.o(.bss) + .bss 0x20000264 Section 100 usarthmi.o(.bss) + .bss 0x200002c8 Section 1996 hmi.o(.bss) + .bss 0x20000a94 Section 52 rt_task.o(.bss) + .bss 0x20000ac8 Section 48 rt_list.o(.bss) + STACK 0x20000af8 Section 1024 startup_stm32f10x_md.o(STACK) .ARM.__AT_0x20001000 0x20001000 Section 150 hmi.o(.ARM.__AT_0x20001000) buf 0x20001000 Data 150 hmi.o(.ARM.__AT_0x20001000) .ARM.__AT_0x20001200 0x20001200 Section 150 hmi.o(.ARM.__AT_0x20001200) buf 0x20001200 Data 150 hmi.o(.ARM.__AT_0x20001200) - .bss 0x20001298 Section 14148 rtx_conf_cm.o(.bss) - std_libspace 0x2000459c Data 960 rtx_conf_cm.o(.bss) - std_libmutex 0x2000495c Data 128 rtx_conf_cm.o(.bss) + .bss 0x20001298 Section 13060 rtx_conf_cm.o(.bss) Global Symbols Symbol Name Value Ov Type Size Object(Section) - BuildAttributes$$THM_ISAv4$P$D$K$B$S$PE$A:L22UL41UL21$X:L11$S22US41US21$IEEE1$IW$USESV6$~STKCKD$USESV7$~SHL$OTIME$ROPI$IEEEJ$EBA8$UX$STANDARDLIB$REQ8$PRES8$EABIv2 0x00000000 Number 0 anon$$obj.o ABSOLUTE + BuildAttributes$$THM_ISAv4$P$D$K$B$S$PE$A:L22UL41UL21$X:L11$S22US41US21$IEEE1$IW$USESV6$~STKCKD$USESV7$~SHL$OTIME$ROPI$EBA8$MICROLIB$REQ8$PRES8$EABIv2 0x00000000 Number 0 anon$$obj.o ABSOLUTE __ARM_use_no_argv 0x00000000 Number 0 moisture.o ABSOLUTE - _printf_flags 0x00000000 Number 0 printf_stubs.o ABSOLUTE - _printf_return_value 0x00000000 Number 0 printf_stubs.o ABSOLUTE - _printf_sizespec 0x00000000 Number 0 printf_stubs.o ABSOLUTE - _printf_widthprec 0x00000000 Number 0 printf_stubs.o ABSOLUTE - __ARM_exceptions_init - Undefined Weak Reference - __alloca_initialize - Undefined Weak Reference + _printf_a 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_c 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_charcount 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_d 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_e 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_f 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_flags 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_fp_dec 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_fp_hex 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_g 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_i 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_int_dec 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_l 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_lc 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_ll 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_lld 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_lli 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_llo 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_llu 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_llx 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_longlong_dec 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_longlong_hex 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_longlong_oct 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_ls 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_mbtowc 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_n 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_o 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_p 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_percent 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_pre_padding 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_return_value 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_s 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_sizespec 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_str 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_truncate_signed 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_truncate_unsigned 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_u 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_wc 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_wctomb 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_widthprec 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_x 0x00000000 Number 0 stubs.o ABSOLUTE __arm_fini_ - Undefined Weak Reference - __arm_preinit_ - Undefined Weak Reference __cpp_initialize__aeabi_ - Undefined Weak Reference __cxa_finalize - Undefined Weak Reference - __sigvec_lookup - Undefined Weak Reference - _atexit_init - Undefined Weak Reference - _call_atexit_fns - Undefined Weak Reference _clock_init - Undefined Weak Reference - _fp_trap_init - Undefined Weak Reference - _fp_trap_shutdown - Undefined Weak Reference - _get_lc_collate - Undefined Weak Reference - _get_lc_ctype - Undefined Weak Reference - _get_lc_monetary - Undefined Weak Reference - _get_lc_time - Undefined Weak Reference - _getenv_init - Undefined Weak Reference - _handle_redirection - Undefined Weak Reference - _init_alloc - Undefined Weak Reference - _init_user_alloc - Undefined Weak Reference - _initio - Undefined Weak Reference - _printf_mbtowc - Undefined Weak Reference - _printf_truncate_signed - Undefined Weak Reference - _printf_truncate_unsigned - Undefined Weak Reference - _rand_init - Undefined Weak Reference - _signal_finish - Undefined Weak Reference - _signal_init - Undefined Weak Reference - _terminate_alloc - Undefined Weak Reference - _terminate_user_alloc - Undefined Weak Reference - _terminateio - Undefined Weak Reference + _microlib_exit - Undefined Weak Reference __Vectors_Size 0x000000ec Number 0 startup_stm32f10x_md.o ABSOLUTE __RL_RTX_VER 0x00000482 Number 0 rt_system.o ABSOLUTE __Vectors 0x08000000 Data 4 startup_stm32f10x_md.o(RESET) __Vectors_End 0x080000ec Data 0 startup_stm32f10x_md.o(RESET) - __main 0x080000ed Thumb Code 8 __main.o(!!!main) - __scatterload 0x080000f5 Thumb Code 0 __scatter.o(!!!scatter) - __scatterload_rt2 0x080000f5 Thumb Code 44 __scatter.o(!!!scatter) - __scatterload_rt2_thumb_only 0x080000f5 Thumb Code 0 __scatter.o(!!!scatter) - __scatterload_null 0x08000103 Thumb Code 0 __scatter.o(!!!scatter) - __scatterload_copy 0x08000129 Thumb Code 26 __scatter_copy.o(!!handler_copy) - __scatterload_zeroinit 0x08000145 Thumb Code 28 __scatter_zi.o(!!handler_zi) - _printf_f 0x08000161 Thumb Code 0 _printf_f.o(.ARM.Collect$$_printf_percent$$00000003) - _printf_percent 0x08000161 Thumb Code 0 _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) - _printf_d 0x08000167 Thumb Code 0 _printf_d.o(.ARM.Collect$$_printf_percent$$00000009) - _printf_s 0x0800016d Thumb Code 0 _printf_s.o(.ARM.Collect$$_printf_percent$$00000014) - _printf_percent_end 0x08000173 Thumb Code 0 _printf_percent_end.o(.ARM.Collect$$_printf_percent$$00000017) - __rt_lib_init 0x08000177 Thumb Code 0 libinit.o(.ARM.Collect$$libinit$$00000000) - __rt_lib_init_fp_1 0x08000179 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000002) - __rt_lib_init_heap_1 0x08000179 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$0000000A) - __rt_lib_init_lc_common 0x08000179 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$0000000F) - __rt_lib_init_preinit_1 0x08000179 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000004) - __rt_lib_init_rand_1 0x08000179 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$0000000E) - __rt_lib_init_user_alloc_1 0x08000179 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$0000000C) - __rt_lib_init_lc_collate_1 0x0800017f Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000011) - __rt_lib_init_lc_ctype_1 0x0800017f Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000013) - __rt_lib_init_lc_monetary_1 0x0800017f Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000015) - __rt_lib_init_lc_numeric_2 0x0800017f Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000016) - __rt_lib_init_alloca_1 0x08000189 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$0000002E) - __rt_lib_init_argv_1 0x08000189 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$0000002C) - __rt_lib_init_atexit_1 0x08000189 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$0000001B) - __rt_lib_init_clock_1 0x08000189 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000021) - __rt_lib_init_cpp_1 0x08000189 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000032) - __rt_lib_init_exceptions_1 0x08000189 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000030) - __rt_lib_init_fp_trap_1 0x08000189 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$0000001F) - __rt_lib_init_getenv_1 0x08000189 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000023) - __rt_lib_init_lc_numeric_1 0x08000189 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000017) - __rt_lib_init_lc_time_1 0x08000189 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000019) - __rt_lib_init_return 0x08000189 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000033) - __rt_lib_init_signal_1 0x08000189 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$0000001D) - __rt_lib_init_stdio_1 0x08000189 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000025) - __rt_lib_shutdown 0x0800018b Thumb Code 0 libshutdown.o(.ARM.Collect$$libshutdown$$00000000) - __rt_lib_shutdown_cpp_1 0x0800018d Thumb Code 0 libshutdown2.o(.ARM.Collect$$libshutdown$$00000004) - __rt_lib_shutdown_fini_1 0x0800018d Thumb Code 0 libshutdown2.o(.ARM.Collect$$libshutdown$$00000002) - __rt_lib_shutdown_fp_trap_1 0x0800018d Thumb Code 0 libshutdown2.o(.ARM.Collect$$libshutdown$$00000009) - __rt_lib_shutdown_heap_1 0x0800018d Thumb Code 0 libshutdown2.o(.ARM.Collect$$libshutdown$$00000011) - __rt_lib_shutdown_return 0x0800018d Thumb Code 0 libshutdown2.o(.ARM.Collect$$libshutdown$$00000012) - __rt_lib_shutdown_signal_1 0x0800018d Thumb Code 0 libshutdown2.o(.ARM.Collect$$libshutdown$$0000000C) - __rt_lib_shutdown_stdio_1 0x0800018d Thumb Code 0 libshutdown2.o(.ARM.Collect$$libshutdown$$00000006) - __rt_lib_shutdown_user_alloc_1 0x0800018d Thumb Code 0 libshutdown2.o(.ARM.Collect$$libshutdown$$0000000E) - __rt_entry 0x0800018f Thumb Code 0 __rtentry.o(.ARM.Collect$$rtentry$$00000000) - __rt_entry_presh_1 0x0800018f Thumb Code 0 __rtentry2.o(.ARM.Collect$$rtentry$$00000002) - __rt_entry_sh 0x0800018f Thumb Code 0 __rtentry4.o(.ARM.Collect$$rtentry$$00000004) - __rt_entry_li 0x08000195 Thumb Code 0 __rtentry2.o(.ARM.Collect$$rtentry$$0000000A) - __rt_entry_postsh_1 0x08000195 Thumb Code 0 __rtentry2.o(.ARM.Collect$$rtentry$$00000009) - __rt_entry_postli_1 0x08000199 Thumb Code 0 __rtentry2.o(.ARM.Collect$$rtentry$$0000000B) - __rt_entry_main 0x080001a1 Thumb Code 0 __rtentry2.o(.ARM.Collect$$rtentry$$0000000D) - __rt_exit 0x080001a9 Thumb Code 0 rtexit.o(.ARM.Collect$$rtexit$$00000000) - __rt_exit_ls 0x080001ab Thumb Code 0 rtexit2.o(.ARM.Collect$$rtexit$$00000003) - __rt_exit_prels_1 0x080001ab Thumb Code 0 rtexit2.o(.ARM.Collect$$rtexit$$00000002) - __rt_exit_exit 0x080001af Thumb Code 0 rtexit2.o(.ARM.Collect$$rtexit$$00000004) - _platform_post_lib_init 0x080001b5 Thumb Code 24 rtx_conf_cm.o(.emb_text) - rt_set_PSP 0x080001d1 Thumb Code 6 hal_cm3.o(.emb_text) - rt_get_PSP 0x080001d7 Thumb Code 6 hal_cm3.o(.emb_text) - os_set_env 0x080001dd Thumb Code 24 hal_cm3.o(.emb_text) - _alloc_box 0x080001f9 Thumb Code 28 hal_cm3.o(.emb_text) - _free_box 0x08000219 Thumb Code 28 hal_cm3.o(.emb_text) - SVC_Handler 0x08000239 Thumb Code 108 hal_cm3.o(.emb_text) - PendSV_Handler 0x080002b1 Thumb Code 56 hal_cm3.o(.emb_text) - SysTick_Handler 0x080002ed Thumb Code 8 hal_cm3.o(.emb_text) - OS_Tick_Handler 0x080002f5 Thumb Code 12 hal_cm3.o(.emb_text) - Reset_Handler 0x08000301 Thumb Code 8 startup_stm32f10x_md.o(.text) - NMI_Handler 0x08000309 Thumb Code 2 startup_stm32f10x_md.o(.text) - HardFault_Handler 0x0800030b Thumb Code 2 startup_stm32f10x_md.o(.text) - MemManage_Handler 0x0800030d Thumb Code 2 startup_stm32f10x_md.o(.text) - BusFault_Handler 0x0800030f Thumb Code 2 startup_stm32f10x_md.o(.text) - UsageFault_Handler 0x08000311 Thumb Code 2 startup_stm32f10x_md.o(.text) - DebugMon_Handler 0x08000315 Thumb Code 2 startup_stm32f10x_md.o(.text) - ADC1_2_IRQHandler 0x0800031b Thumb Code 0 startup_stm32f10x_md.o(.text) - CAN1_RX1_IRQHandler 0x0800031b Thumb Code 0 startup_stm32f10x_md.o(.text) - CAN1_SCE_IRQHandler 0x0800031b Thumb Code 0 startup_stm32f10x_md.o(.text) - DMA1_Channel1_IRQHandler 0x0800031b Thumb Code 0 startup_stm32f10x_md.o(.text) - DMA1_Channel2_IRQHandler 0x0800031b Thumb Code 0 startup_stm32f10x_md.o(.text) - DMA1_Channel3_IRQHandler 0x0800031b Thumb Code 0 startup_stm32f10x_md.o(.text) - DMA1_Channel4_IRQHandler 0x0800031b Thumb Code 0 startup_stm32f10x_md.o(.text) - DMA1_Channel5_IRQHandler 0x0800031b Thumb Code 0 startup_stm32f10x_md.o(.text) - DMA1_Channel6_IRQHandler 0x0800031b Thumb Code 0 startup_stm32f10x_md.o(.text) - DMA1_Channel7_IRQHandler 0x0800031b Thumb Code 0 startup_stm32f10x_md.o(.text) - EXTI0_IRQHandler 0x0800031b Thumb Code 0 startup_stm32f10x_md.o(.text) - EXTI15_10_IRQHandler 0x0800031b Thumb Code 0 startup_stm32f10x_md.o(.text) - EXTI1_IRQHandler 0x0800031b Thumb Code 0 startup_stm32f10x_md.o(.text) - EXTI2_IRQHandler 0x0800031b Thumb Code 0 startup_stm32f10x_md.o(.text) - EXTI3_IRQHandler 0x0800031b Thumb Code 0 startup_stm32f10x_md.o(.text) - EXTI4_IRQHandler 0x0800031b Thumb Code 0 startup_stm32f10x_md.o(.text) - EXTI9_5_IRQHandler 0x0800031b Thumb Code 0 startup_stm32f10x_md.o(.text) - FLASH_IRQHandler 0x0800031b Thumb Code 0 startup_stm32f10x_md.o(.text) - I2C1_ER_IRQHandler 0x0800031b Thumb Code 0 startup_stm32f10x_md.o(.text) - I2C1_EV_IRQHandler 0x0800031b Thumb Code 0 startup_stm32f10x_md.o(.text) - I2C2_ER_IRQHandler 0x0800031b Thumb Code 0 startup_stm32f10x_md.o(.text) - I2C2_EV_IRQHandler 0x0800031b Thumb Code 0 startup_stm32f10x_md.o(.text) - PVD_IRQHandler 0x0800031b Thumb Code 0 startup_stm32f10x_md.o(.text) - RCC_IRQHandler 0x0800031b Thumb Code 0 startup_stm32f10x_md.o(.text) - RTCAlarm_IRQHandler 0x0800031b Thumb Code 0 startup_stm32f10x_md.o(.text) - RTC_IRQHandler 0x0800031b Thumb Code 0 startup_stm32f10x_md.o(.text) - SPI1_IRQHandler 0x0800031b Thumb Code 0 startup_stm32f10x_md.o(.text) - SPI2_IRQHandler 0x0800031b Thumb Code 0 startup_stm32f10x_md.o(.text) - TAMPER_IRQHandler 0x0800031b Thumb Code 0 startup_stm32f10x_md.o(.text) - TIM1_BRK_IRQHandler 0x0800031b Thumb Code 0 startup_stm32f10x_md.o(.text) - TIM1_CC_IRQHandler 0x0800031b Thumb Code 0 startup_stm32f10x_md.o(.text) - TIM1_TRG_COM_IRQHandler 0x0800031b Thumb Code 0 startup_stm32f10x_md.o(.text) - TIM1_UP_IRQHandler 0x0800031b Thumb Code 0 startup_stm32f10x_md.o(.text) - TIM3_IRQHandler 0x0800031b Thumb Code 0 startup_stm32f10x_md.o(.text) - TIM4_IRQHandler 0x0800031b Thumb Code 0 startup_stm32f10x_md.o(.text) - USART2_IRQHandler 0x0800031b Thumb Code 0 startup_stm32f10x_md.o(.text) - USART3_IRQHandler 0x0800031b Thumb Code 0 startup_stm32f10x_md.o(.text) - USBWakeUp_IRQHandler 0x0800031b Thumb Code 0 startup_stm32f10x_md.o(.text) - USB_HP_CAN1_TX_IRQHandler 0x0800031b Thumb Code 0 startup_stm32f10x_md.o(.text) - USB_LP_CAN1_RX0_IRQHandler 0x0800031b Thumb Code 0 startup_stm32f10x_md.o(.text) - WWDG_IRQHandler 0x0800031b Thumb Code 0 startup_stm32f10x_md.o(.text) - __user_initial_stackheap 0x0800031d Thumb Code 0 startup_stm32f10x_md.o(.text) - __user_libspace 0x08000341 Thumb Code 8 libspace.o(.text) - __user_perproc_libspace 0x08000341 Thumb Code 0 libspace.o(.text) - __2sprintf 0x08000349 Thumb Code 34 noretval__2sprintf.o(.text) - _printf_pre_padding 0x08000371 Thumb Code 44 _printf_pad.o(.text) - _printf_post_padding 0x0800039d Thumb Code 34 _printf_pad.o(.text) - _printf_str 0x080003bf Thumb Code 82 _printf_str.o(.text) - _printf_int_dec 0x08000411 Thumb Code 104 _printf_dec.o(.text) - __printf 0x08000489 Thumb Code 308 __printf_flags_wp.o(.text) - exit 0x080005c1 Thumb Code 18 exit.o(.text) - strcpy 0x080005d3 Thumb Code 72 strcpy.o(.text) - strlen 0x0800061b Thumb Code 62 strlen.o(.text) - strcmp 0x08000659 Thumb Code 128 strcmpv7m.o(.text) - __use_two_region_memory 0x080006d9 Thumb Code 2 heapauxi.o(.text) - __rt_heap_escrow$2region 0x080006db Thumb Code 2 heapauxi.o(.text) - __rt_heap_expand$2region 0x080006dd Thumb Code 2 heapauxi.o(.text) - _printf_int_common 0x080006df Thumb Code 178 _printf_intcommon.o(.text) - __lib_sel_fp_printf 0x08000791 Thumb Code 2 _printf_fp_dec.o(.text) - _printf_fp_dec_real 0x08000943 Thumb Code 620 _printf_fp_dec.o(.text) - _printf_char_common 0x08000bbb Thumb Code 32 _printf_char_common.o(.text) - _sputc 0x08000be1 Thumb Code 10 _sputc.o(.text) - _printf_cs_common 0x08000beb Thumb Code 20 _printf_char.o(.text) - _printf_char 0x08000bff Thumb Code 16 _printf_char.o(.text) - _printf_string 0x08000c0f Thumb Code 8 _printf_char.o(.text) - __rt_locale 0x08000c17 Thumb Code 10 rt_locale_twolibspace.o(.text) - _ll_udiv10 0x08000c21 Thumb Code 138 lludiv10.o(.text) - _printf_fp_infnan 0x08000cad Thumb Code 112 _printf_fp_infnan.o(.text) - _btod_etento 0x08000d2d Thumb Code 224 bigflt0.o(.text) - _sys_exit 0x08000e11 Thumb Code 8 sys_exit.o(.text) - __user_setup_stackheap 0x08000e1d Thumb Code 74 sys_stackheap_outer.o(.text) - __I$use$semihosting 0x08000e67 Thumb Code 0 use_no_semi.o(.text) - __use_no_semihosting_swi 0x08000e67 Thumb Code 2 use_no_semi.o(.text) - __semihosting_library_function 0x08000e69 Thumb Code 0 indicate_semi.o(.text) - _btod_d2e 0x08000e69 Thumb Code 62 btod.o(CL$$btod_d2e) - _d2e_denorm_low 0x08000ea7 Thumb Code 70 btod.o(CL$$btod_d2e_denorm_low) - _d2e_norm_op1 0x08000eed Thumb Code 96 btod.o(CL$$btod_d2e_norm_op1) - __btod_div_common 0x08000f4d Thumb Code 696 btod.o(CL$$btod_div_common) - _e2e 0x08001285 Thumb Code 220 btod.o(CL$$btod_e2e) - _btod_ediv 0x08001361 Thumb Code 42 btod.o(CL$$btod_ediv) - _btod_emul 0x0800138b Thumb Code 42 btod.o(CL$$btod_emul) - __btod_mult_common 0x080013b5 Thumb Code 580 btod.o(CL$$btod_mult_common) - SVC_Count 0x080015f8 Data 4 svc_table.o(SVC_TABLE) - ACCMD 0x080015fd Thumb Code 30 ws100t10.o(i.ACCMD) - SVC_Table 0x080015fc Data 0 svc_table.o(SVC_TABLE) - ACCtrl 0x08001621 Thumb Code 64 ws100t10.o(i.ACCtrl) - AC_CTRL_Init 0x08001665 Thumb Code 12 ws100t10.o(i.AC_CTRL_Init) - AD7190_Init 0x08001675 Thumb Code 208 ad7190.o(i.AD7190_Init) - AD7190_ReadData 0x0800175d Thumb Code 286 ad7190.o(i.AD7190_ReadData) - AD7190_ReadRegister 0x0800188d Thumb Code 46 ad7190.o(i.AD7190_ReadRegister) - AD7190_ReadRegisterOnce 0x080018bb Thumb Code 26 ad7190.o(i.AD7190_ReadRegisterOnce) - AD7190_Run 0x080018d5 Thumb Code 1262 ad7190.o(i.AD7190_Run) - AD7190_WaitForReady 0x08001dd9 Thumb Code 42 ad7190.o(i.AD7190_WaitForReady) - AD7190_WriteRegister 0x08001e09 Thumb Code 36 ad7190.o(i.AD7190_WriteRegister) - AD7190_WriteRegisterOnce 0x08001e2d Thumb Code 20 ad7190.o(i.AD7190_WriteRegisterOnce) - BIOS_TIM2_TIMER_Init 0x08001e41 Thumb Code 82 usarthmi.o(i.BIOS_TIM2_TIMER_Init) - BIOS_USART1_Init 0x08001ea1 Thumb Code 138 usarthmi.o(i.BIOS_USART1_Init) - BIOS_USART2_Init 0x08001f41 Thumb Code 90 usart.o(i.BIOS_USART2_Init) - DataPrint 0x08001fad Thumb Code 66 usarthmi.o(i.DataPrint) - DataRec 0x08001ffd Thumb Code 12 usarthmi.o(i.DataRec) - DataUnpack 0x08002009 Thumb Code 5430 hmi.o(i.DataUnpack) - FM24DataCRC 0x080035a1 Thumb Code 252 hmi.o(i.FM24DataCRC) - FM24Init 0x080036ed Thumb Code 8 fm24.o(i.FM24Init) - FM24_Read 0x080036f5 Thumb Code 92 fm24.o(i.FM24_Read) - FM24_Write 0x08003751 Thumb Code 72 fm24.o(i.FM24_Write) - GPIO_InPutset 0x08003799 Thumb Code 40 bios.o(i.GPIO_InPutset) - GPIO_Init 0x080037c5 Thumb Code 278 stm32f10x_gpio.o(i.GPIO_Init) - GPIO_PinRemapConfig 0x080038dd Thumb Code 138 stm32f10x_gpio.o(i.GPIO_PinRemapConfig) - GPIO_ReadInputDataBit 0x0800396d Thumb Code 18 stm32f10x_gpio.o(i.GPIO_ReadInputDataBit) - GPIO_ResetBits 0x0800397f Thumb Code 4 stm32f10x_gpio.o(i.GPIO_ResetBits) - GPIO_SetBits 0x08003983 Thumb Code 4 stm32f10x_gpio.o(i.GPIO_SetBits) - HMICMDInit 0x08003989 Thumb Code 16 hmi.o(i.HMICMDInit) - I2C2_ACK 0x08003c0d Thumb Code 56 i2c.o(i.I2C2_ACK) - I2C2_Init 0x08003c49 Thumb Code 60 i2c.o(i.I2C2_Init) - I2C2_NACK 0x08003c89 Thumb Code 56 i2c.o(i.I2C2_NACK) - I2C2_ReadByte 0x08003cc5 Thumb Code 96 i2c.o(i.I2C2_ReadByte) - I2C2_SendByte 0x08003d29 Thumb Code 98 i2c.o(i.I2C2_SendByte) - I2C2_Start 0x08003d91 Thumb Code 56 i2c.o(i.I2C2_Start) - I2C2_Stop 0x08003dcd Thumb Code 50 i2c.o(i.I2C2_Stop) - I2C2_Wait_ACK 0x08003e05 Thumb Code 94 i2c.o(i.I2C2_Wait_ACK) - InstrumentTypeRead 0x08003e69 Thumb Code 60 bios.o(i.InstrumentTypeRead) - MAX6675_ConvertTemperature 0x08003ea9 Thumb Code 108 max6675.o(i.MAX6675_ConvertTemperature) - MAX6675_Init 0x08003f29 Thumb Code 96 max6675.o(i.MAX6675_Init) - MAX6675_ReadData 0x08003f91 Thumb Code 84 max6675.o(i.MAX6675_ReadData) - Moisturing 0x08003fe9 Thumb Code 4648 hmi.o(i.Moisturing) - MoisturingRun 0x08005301 Thumb Code 12 hmi.o(i.MoisturingRun) - Pump_OutCmd 0x08005311 Thumb Code 34 ws100t10.o(i.Pump_OutCmd) - RCC_APB2PeriphClockCmd 0x08005339 Thumb Code 26 stm32f10x_rcc.o(i.RCC_APB2PeriphClockCmd) - SPI1_Configuration 0x08005359 Thumb Code 122 spi.o(i.SPI1_Configuration) - SPI1_ReadWrite 0x080053dd Thumb Code 50 spi.o(i.SPI1_ReadWrite) - SPI_Cmd 0x08005415 Thumb Code 24 stm32f10x_spi.o(i.SPI_Cmd) - SPI_I2S_GetFlagStatus 0x0800542d Thumb Code 18 stm32f10x_spi.o(i.SPI_I2S_GetFlagStatus) - SPI_I2S_ReceiveData 0x0800543f Thumb Code 6 stm32f10x_spi.o(i.SPI_I2S_ReceiveData) - SPI_I2S_SendData 0x08005445 Thumb Code 4 stm32f10x_spi.o(i.SPI_I2S_SendData) - SPI_Init 0x08005449 Thumb Code 60 stm32f10x_spi.o(i.SPI_Init) - SafeCheck 0x08005485 Thumb Code 22 bios.o(i.SafeCheck) - SystemInit 0x08005589 Thumb Code 78 system_stm32f10x.o(i.SystemInit) - TIM2_IRQHandler 0x080055e9 Thumb Code 116 usarthmi.o(i.TIM2_IRQHandler) - UART1_Received 0x08005671 Thumb Code 20 usarthmi.o(i.UART1_Received) - UART1_Send 0x08005689 Thumb Code 28 usarthmi.o(i.UART1_Send) - USART1_IRQHandler 0x080056a9 Thumb Code 128 usarthmi.o(i.USART1_IRQHandler) - USART2Print 0x0800573d Thumb Code 48 usart.o(i.USART2Print) - USART2_Send 0x08005771 Thumb Code 20 usart.o(i.USART2_Send) - USARTHMIInit 0x08005789 Thumb Code 24 usarthmi.o(i.USARTHMIInit) - USART_ITConfig 0x080057a9 Thumb Code 74 stm32f10x_usart.o(i.USART_ITConfig) - WS100T10_Ctrl 0x080057f5 Thumb Code 138 i2c.o(i.WS100T10_Ctrl) - WS100T10_Init 0x0800588d Thumb Code 122 i2c.o(i.WS100T10_Init) - __ARM_fpclassify 0x08005919 Thumb Code 40 fpclassify.o(i.__ARM_fpclassify) - _init_box 0x08005963 Thumb Code 70 rt_membox.o(i._init_box) - _is_digit 0x080059a9 Thumb Code 14 __printf_wp.o(i._is_digit) - _mutex_acquire 0x080059b9 Thumb Code 22 rtx_conf_cm.o(i._mutex_acquire) - _mutex_release 0x080059d9 Thumb Code 18 rtx_conf_cm.o(i._mutex_release) - _task_ACCtrl 0x080059f5 Thumb Code 48 ws100t10.o(i._task_ACCtrl) - dbg_init 0x08005a31 Thumb Code 34 hal_cm.o(i.dbg_init) - dbg_task_notify 0x08005a61 Thumb Code 32 hal_cm.o(i.dbg_task_notify) - dbg_task_switch 0x08005a81 Thumb Code 16 hal_cm.o(i.dbg_task_switch) - delay_us 0x08005a91 Thumb Code 130 delay.o(i.delay_us) - isrMessagePut 0x08005b13 Thumb Code 44 rt_cmsis.o(i.isrMessagePut) - isrSemaphoreRelease 0x08005b3f Thumb Code 40 rt_cmsis.o(i.isrSemaphoreRelease) - isr_mbx_send 0x08005b67 Thumb Code 14 rt_mailbox.o(i.isr_mbx_send) - isr_sem_send 0x08005b75 Thumb Code 16 rt_semaphore.o(i.isr_sem_send) - kalman_filter_init 0x08005b85 Thumb Code 14 max6675.o(i.kalman_filter_init) - kalman_filter_init2 0x08005b93 Thumb Code 14 ad7190.o(i.kalman_filter_init2) - kalman_filter_update 0x08005ba1 Thumb Code 90 max6675.o(i.kalman_filter_update) - kalman_filter_update2 0x08005bfb Thumb Code 90 ad7190.o(i.kalman_filter_update2) - main 0x08005c55 Thumb Code 362 moisture.o(i.main) - osDelay 0x08005df1 Thumb Code 18 rt_cmsis.o(i.osDelay) - osKernelInitialize 0x08005e09 Thumb Code 30 rt_cmsis.o(i.osKernelInitialize) - osKernelStart 0x08005e2d Thumb Code 98 rt_cmsis.o(i.osKernelStart) - osKernelSysTick 0x08005e99 Thumb Code 18 rt_cmsis.o(i.osKernelSysTick) - osMutexCreate 0x08005eb1 Thumb Code 36 rt_cmsis.o(i.osMutexCreate) - osMutexRelease 0x08005edd Thumb Code 18 rt_cmsis.o(i.osMutexRelease) - osMutexWait 0x08005ef5 Thumb Code 18 rt_cmsis.o(i.osMutexWait) - osSemaphoreCreate 0x08005f0d Thumb Code 36 rt_cmsis.o(i.osSemaphoreCreate) - osSemaphoreRelease 0x08005f39 Thumb Code 18 rt_cmsis.o(i.osSemaphoreRelease) - osSemaphoreWait 0x08005f51 Thumb Code 20 rt_cmsis.o(i.osSemaphoreWait) - osThreadCreate 0x08005f69 Thumb Code 36 rt_cmsis.o(i.osThreadCreate) - osThreadExit 0x08005f95 Thumb Code 14 rt_cmsis.o(i.osThreadExit) - osThreadGetId 0x08005fad Thumb Code 18 rt_cmsis.o(i.osThreadGetId) - osThreadTerminate 0x08005fc5 Thumb Code 18 rt_cmsis.o(i.osThreadTerminate) - os_error 0x08005fdd Thumb Code 34 rtx_conf_cm.o(i.os_error) - os_idle_demon 0x08005fff Thumb Code 4 rtx_conf_cm.o(i.os_idle_demon) - os_tick_init 0x08006005 Thumb Code 32 rt_system.o(i.os_tick_init) - os_tick_irqack 0x0800602d Thumb Code 2 rt_system.o(i.os_tick_irqack) - os_tick_ovf 0x08006031 Thumb Code 10 rt_system.o(i.os_tick_ovf) - os_tick_val 0x08006041 Thumb Code 14 rt_system.o(i.os_tick_val) - rt_alloc_box 0x08006055 Thumb Code 26 rt_membox.o(i.rt_alloc_box) - rt_alloc_mem 0x0800606f Thumb Code 62 rt_memory.o(i.rt_alloc_mem) - rt_block 0x080060ad Thumb Code 48 rt_task.o(i.rt_block) - rt_chk_robin 0x080060e5 Thumb Code 60 rt_robin.o(i.rt_chk_robin) - rt_dec_dly 0x0800612d Thumb Code 102 rt_list.o(i.rt_dec_dly) - rt_dispatch 0x0800619d Thumb Code 60 rt_task.o(i.rt_dispatch) - rt_dly_wait 0x080061e1 Thumb Code 6 rt_time.o(i.rt_dly_wait) - rt_evt_psh 0x080061e9 Thumb Code 76 rt_event.o(i.rt_evt_psh) - rt_free_box 0x08006239 Thumb Code 44 rt_membox.o(i.rt_free_box) - rt_free_mem 0x08006265 Thumb Code 40 rt_memory.o(i.rt_free_mem) - rt_get_first 0x0800628d Thumb Code 40 rt_list.o(i.rt_get_first) - rt_init_mem 0x08006305 Thumb Code 26 rt_memory.o(i.rt_init_mem) - rt_init_robin 0x08006321 Thumb Code 14 rt_robin.o(i.rt_init_robin) - rt_init_stack 0x08006339 Thumb Code 118 hal_cm.o(i.rt_init_stack) - rt_mbx_check 0x080063b9 Thumb Code 8 rt_mailbox.o(i.rt_mbx_check) - rt_mbx_init 0x080063c1 Thumb Code 26 rt_mailbox.o(i.rt_mbx_init) - rt_mbx_psh 0x080063dd Thumb Code 236 rt_mailbox.o(i.rt_mbx_psh) - rt_mut_init 0x08006511 Thumb Code 16 rt_mutex.o(i.rt_mut_init) - rt_mut_release 0x08006521 Thumb Code 208 rt_mutex.o(i.rt_mut_release) - rt_mut_wait 0x080065f9 Thumb Code 114 rt_mutex.o(i.rt_mut_wait) - rt_pop_req 0x08006671 Thumb Code 112 rt_system.o(i.rt_pop_req) - rt_psh_req 0x080066ed Thumb Code 22 rt_system.o(i.rt_psh_req) - rt_psq_enq 0x0800670d Thumb Code 88 rt_list.o(i.rt_psq_enq) - rt_put_dly 0x08006769 Thumb Code 68 rt_list.o(i.rt_put_dly) - rt_put_prio 0x080067b1 Thumb Code 54 rt_list.o(i.rt_put_prio) - rt_put_rdy_first 0x080067e9 Thumb Code 14 rt_list.o(i.rt_put_rdy_first) - rt_resort_prio 0x080067fd Thumb Code 46 rt_list.o(i.rt_resort_prio) - rt_ret_val 0x08006831 Thumb Code 6 hal_cm.o(i.rt_ret_val) - rt_ret_val2 0x08006837 Thumb Code 8 hal_cm.o(i.rt_ret_val2) - rt_rmv_dly 0x0800683f Thumb Code 40 rt_list.o(i.rt_rmv_dly) - rt_rmv_list 0x08006869 Thumb Code 44 rt_list.o(i.rt_rmv_list) - rt_sem_init 0x08006899 Thumb Code 12 rt_semaphore.o(i.rt_sem_init) - rt_sem_psh 0x080068a5 Thumb Code 48 rt_semaphore.o(i.rt_sem_psh) - rt_sem_send 0x080068d9 Thumb Code 42 rt_semaphore.o(i.rt_sem_send) - rt_sem_wait 0x08006905 Thumb Code 58 rt_semaphore.o(i.rt_sem_wait) - rt_stk_check 0x08006945 Thumb Code 28 rt_system.o(i.rt_stk_check) - rt_switch_req 0x08006969 Thumb Code 30 rt_task.o(i.rt_switch_req) - rt_sys_init 0x08006991 Thumb Code 138 rt_task.o(i.rt_sys_init) - rt_sys_start 0x08006a5d Thumb Code 110 rt_task.o(i.rt_sys_start) - rt_systick 0x08006ad5 Thumb Code 50 rt_system.o(i.rt_systick) - rt_tsk_create 0x08006b5d Thumb Code 118 rt_task.o(i.rt_tsk_create) - rt_tsk_delete 0x08006be5 Thumb Code 352 rt_task.o(i.rt_tsk_delete) - rt_tsk_prio 0x08006d61 Thumb Code 108 rt_task.o(i.rt_tsk_prio) - rt_tsk_self 0x08006ddd Thumb Code 12 rt_task.o(i.rt_tsk_self) - svcDelay 0x08006ded Thumb Code 18 rt_cmsis.o(i.svcDelay) - svcKernelInitialize 0x08006e01 Thumb Code 80 rt_cmsis.o(i.svcKernelInitialize) - svcKernelStart 0x08006e71 Thumb Code 62 rt_cmsis.o(i.svcKernelStart) - svcKernelSysTick 0x08006eb9 Thumb Code 46 rt_cmsis.o(i.svcKernelSysTick) - svcMessageCreate 0x08006ef1 Thumb Code 36 rt_cmsis.o(i.svcMessageCreate) - svcMutexCreate 0x08006f15 Thumb Code 28 rt_cmsis.o(i.svcMutexCreate) - svcMutexRelease 0x08006f31 Thumb Code 34 rt_cmsis.o(i.svcMutexRelease) - svcMutexWait 0x08006f53 Thumb Code 58 rt_cmsis.o(i.svcMutexWait) - svcSemaphoreCreate 0x08006f8d Thumb Code 36 rt_cmsis.o(i.svcSemaphoreCreate) - svcSemaphoreRelease 0x08006fb1 Thumb Code 40 rt_cmsis.o(i.svcSemaphoreRelease) - svcSemaphoreWait 0x08006fd9 Thumb Code 50 rt_cmsis.o(i.svcSemaphoreWait) - svcThreadCreate 0x0800700d Thumb Code 96 rt_cmsis.o(i.svcThreadCreate) - svcThreadGetId 0x08007079 Thumb Code 22 rt_cmsis.o(i.svcThreadGetId) - svcThreadTerminate 0x08007095 Thumb Code 50 rt_cmsis.o(i.svcThreadTerminate) - sysTimerTick 0x080070cd Thumb Code 84 rt_cmsis.o(i.sysTimerTick) - _get_lc_numeric 0x08007129 Thumb Code 44 lc_numeric_c.o(locale$$code) - __aeabi_d2f 0x08007155 Thumb Code 0 d2f.o(x$fpl$d2f) - _d2f 0x08007155 Thumb Code 98 d2f.o(x$fpl$d2f) - __fpl_dcmp_Inf 0x080071b7 Thumb Code 24 dcmpi.o(x$fpl$dcmpinf) - __aeabi_i2d 0x080071cf Thumb Code 0 dflt_clz.o(x$fpl$dflt) - _dflt 0x080071cf Thumb Code 46 dflt_clz.o(x$fpl$dflt) - __aeabi_cdcmple 0x080071fd Thumb Code 0 dleqf.o(x$fpl$dleqf) - _dcmple 0x080071fd Thumb Code 120 dleqf.o(x$fpl$dleqf) - __fpl_dcmple_InfNaN 0x0800725f Thumb Code 0 dleqf.o(x$fpl$dleqf) - __aeabi_dmul 0x08007275 Thumb Code 0 dmul.o(x$fpl$dmul) - _dmul 0x08007275 Thumb Code 332 dmul.o(x$fpl$dmul) - __fpl_dnaninf 0x080073c9 Thumb Code 156 dnaninf.o(x$fpl$dnaninf) - __fpl_dretinf 0x08007465 Thumb Code 12 dretinf.o(x$fpl$dretinf) - __aeabi_cdrcmple 0x08007471 Thumb Code 0 drleqf.o(x$fpl$drleqf) - _drcmple 0x08007471 Thumb Code 108 drleqf.o(x$fpl$drleqf) - __aeabi_f2d 0x080074dd Thumb Code 0 f2d.o(x$fpl$f2d) - _f2d 0x080074dd Thumb Code 86 f2d.o(x$fpl$f2d) - __aeabi_fadd 0x08007535 Thumb Code 0 faddsub_clz.o(x$fpl$fadd) - _fadd 0x08007535 Thumb Code 196 faddsub_clz.o(x$fpl$fadd) - __fpl_fcmp_Inf 0x080075f9 Thumb Code 24 fcmpi.o(x$fpl$fcmpinf) - __aeabi_fdiv 0x08007611 Thumb Code 0 fdiv.o(x$fpl$fdiv) - _fdiv 0x08007611 Thumb Code 384 fdiv.o(x$fpl$fdiv) - __aeabi_cfcmpeq 0x08007795 Thumb Code 0 feqf.o(x$fpl$feqf) - _fcmpeq 0x08007795 Thumb Code 104 feqf.o(x$fpl$feqf) - __aeabi_f2iz 0x080077fd Thumb Code 0 ffix.o(x$fpl$ffix) - _ffix 0x080077fd Thumb Code 54 ffix.o(x$fpl$ffix) - __aeabi_f2uiz 0x08007835 Thumb Code 0 ffixu.o(x$fpl$ffixu) - _ffixu 0x08007835 Thumb Code 62 ffixu.o(x$fpl$ffixu) - __aeabi_i2f 0x08007875 Thumb Code 0 fflt_clz.o(x$fpl$fflt) - _fflt 0x08007875 Thumb Code 48 fflt_clz.o(x$fpl$fflt) - __aeabi_ui2f 0x080078a5 Thumb Code 0 fflt_clz.o(x$fpl$ffltu) - _ffltu 0x080078a5 Thumb Code 38 fflt_clz.o(x$fpl$ffltu) - __aeabi_cfcmple 0x080078cd Thumb Code 0 fleqf.o(x$fpl$fleqf) - _fcmple 0x080078cd Thumb Code 104 fleqf.o(x$fpl$fleqf) - __fpl_fcmple_InfNaN 0x0800791f Thumb Code 0 fleqf.o(x$fpl$fleqf) - __aeabi_fmul 0x08007935 Thumb Code 0 fmul.o(x$fpl$fmul) - _fmul 0x08007935 Thumb Code 258 fmul.o(x$fpl$fmul) - __fpl_fnaninf 0x08007a37 Thumb Code 140 fnaninf.o(x$fpl$fnaninf) - __fpl_fretinf 0x08007ac3 Thumb Code 10 fretinf.o(x$fpl$fretinf) - __aeabi_cfrcmple 0x08007acd Thumb Code 0 frleqf.o(x$fpl$frleqf) - _frcmple 0x08007acd Thumb Code 98 frleqf.o(x$fpl$frleqf) - __aeabi_frsub 0x08007b2f Thumb Code 0 faddsub_clz.o(x$fpl$frsb) - _frsb 0x08007b2f Thumb Code 20 faddsub_clz.o(x$fpl$frsb) - __aeabi_fsub 0x08007b45 Thumb Code 0 faddsub_clz.o(x$fpl$fsub) - _fsub 0x08007b45 Thumb Code 234 faddsub_clz.o(x$fpl$fsub) - _printf_fp_dec 0x08007c2f Thumb Code 4 printf1.o(x$fpl$printf1) - __I$use$fp 0x08007c32 Number 0 usenofp.o(x$fpl$usenofp) - os_thread_def_AD7190_Run 0x08007c34 Data 16 ad7190.o(.constdata) - os_thread_def__task_ACCtrl 0x08007c44 Data 16 ws100t10.o(.constdata) - os_thread_def_HeatTask_Socket 0x08007c54 Data 16 ws100t10.o(.constdata) - os_thread_def_MAX6675_ConvertTemperature 0x08007c64 Data 16 max6675.o(.constdata) - os_semaphore_def_semDataBack 0x08007c74 Data 4 usarthmi.o(.constdata) - os_thread_def_Moisturing 0x08007c78 Data 16 hmi.o(.constdata) - os_thread_def_DataUnpack 0x08007c88 Data 16 hmi.o(.constdata) - os_maxtaskrun 0x08007d64 Data 2 rtx_conf_cm.o(.constdata) - os_stackinfo 0x08007d68 Data 4 rtx_conf_cm.o(.constdata) - os_rrobin 0x08007d6c Data 4 rtx_conf_cm.o(.constdata) - os_tickfreq 0x08007d70 Data 4 rtx_conf_cm.o(.constdata) - os_tickus_i 0x08007d74 Data 2 rtx_conf_cm.o(.constdata) - os_tickus_f 0x08007d76 Data 2 rtx_conf_cm.o(.constdata) - os_trv 0x08007d78 Data 4 rtx_conf_cm.o(.constdata) - os_flags 0x08007d7c Data 1 rtx_conf_cm.o(.constdata) - CMSIS_RTOS_API_Version 0x08007d80 Data 4 rtx_conf_cm.o(.constdata) - CMSIS_RTOS_RTX_Version 0x08007d84 Data 4 rtx_conf_cm.o(.constdata) - os_clockrate 0x08007d88 Data 4 rtx_conf_cm.o(.constdata) - os_timernum 0x08007d8c Data 4 rtx_conf_cm.o(.constdata) - mp_tcb_size 0x08007d90 Data 2 rtx_conf_cm.o(.constdata) - mp_stk_size 0x08007d94 Data 4 rtx_conf_cm.o(.constdata) - os_stack_sz 0x08007d98 Data 4 rtx_conf_cm.o(.constdata) - os_fifo_size 0x08007d9c Data 1 rtx_conf_cm.o(.constdata) - os_thread_def_osTimerThread 0x08007da0 Data 16 rtx_conf_cm.o(.constdata) - os_messageQ_def_osTimerMessageQ 0x08007db0 Data 8 rtx_conf_cm.o(.constdata) - mp_tmr_size 0x08007db8 Data 2 rtx_conf_cm.o(.constdata) - os_thread_def_main 0x08007dbc Data 16 rtx_conf_cm.o(.constdata) - Region$$Table$$Base 0x08007e74 Number 0 anon$$obj.o(Region$$Table) - Region$$Table$$Limit 0x08007e94 Number 0 anon$$obj.o(Region$$Table) + __main 0x080000ed Thumb Code 0 entry.o(.ARM.Collect$$$$00000000) + _main_stk 0x080000ed Thumb Code 0 entry2.o(.ARM.Collect$$$$00000001) + _main_scatterload 0x080000f1 Thumb Code 0 entry5.o(.ARM.Collect$$$$00000004) + __main_after_scatterload 0x080000f5 Thumb Code 0 entry5.o(.ARM.Collect$$$$00000004) + __rt_lib_shutdown_fini 0x080000f5 Thumb Code 0 entry12b.o(.ARM.Collect$$$$0000000E) + _main_clock 0x080000f5 Thumb Code 0 entry7b.o(.ARM.Collect$$$$00000008) + _main_cpp_init 0x080000f5 Thumb Code 0 entry8b.o(.ARM.Collect$$$$0000000A) + __rt_final_cpp 0x080000f9 Thumb Code 0 entry10a.o(.ARM.Collect$$$$0000000F) + __rt_final_exit 0x080000f9 Thumb Code 0 entry11a.o(.ARM.Collect$$$$00000011) + _main_init 0x080000f9 Thumb Code 18 rtx_conf_cm.o(.ARM.Collect$$$$000000FF) + rt_set_PSP 0x08000115 Thumb Code 6 hal_cm3.o(.emb_text) + rt_get_PSP 0x0800011b Thumb Code 6 hal_cm3.o(.emb_text) + os_set_env 0x08000121 Thumb Code 24 hal_cm3.o(.emb_text) + _alloc_box 0x0800013d Thumb Code 28 hal_cm3.o(.emb_text) + _free_box 0x0800015d Thumb Code 28 hal_cm3.o(.emb_text) + SVC_Handler 0x0800017d Thumb Code 108 hal_cm3.o(.emb_text) + PendSV_Handler 0x080001f5 Thumb Code 56 hal_cm3.o(.emb_text) + SysTick_Handler 0x08000231 Thumb Code 8 hal_cm3.o(.emb_text) + OS_Tick_Handler 0x08000239 Thumb Code 12 hal_cm3.o(.emb_text) + Reset_Handler 0x08000245 Thumb Code 8 startup_stm32f10x_md.o(.text) + NMI_Handler 0x0800024d Thumb Code 2 startup_stm32f10x_md.o(.text) + HardFault_Handler 0x0800024f Thumb Code 2 startup_stm32f10x_md.o(.text) + MemManage_Handler 0x08000251 Thumb Code 2 startup_stm32f10x_md.o(.text) + BusFault_Handler 0x08000253 Thumb Code 2 startup_stm32f10x_md.o(.text) + UsageFault_Handler 0x08000255 Thumb Code 2 startup_stm32f10x_md.o(.text) + DebugMon_Handler 0x08000259 Thumb Code 2 startup_stm32f10x_md.o(.text) + ADC1_2_IRQHandler 0x0800025f Thumb Code 0 startup_stm32f10x_md.o(.text) + CAN1_RX1_IRQHandler 0x0800025f Thumb Code 0 startup_stm32f10x_md.o(.text) + CAN1_SCE_IRQHandler 0x0800025f Thumb Code 0 startup_stm32f10x_md.o(.text) + DMA1_Channel1_IRQHandler 0x0800025f Thumb Code 0 startup_stm32f10x_md.o(.text) + DMA1_Channel2_IRQHandler 0x0800025f Thumb Code 0 startup_stm32f10x_md.o(.text) + DMA1_Channel3_IRQHandler 0x0800025f Thumb Code 0 startup_stm32f10x_md.o(.text) + DMA1_Channel4_IRQHandler 0x0800025f Thumb Code 0 startup_stm32f10x_md.o(.text) + DMA1_Channel5_IRQHandler 0x0800025f Thumb Code 0 startup_stm32f10x_md.o(.text) + DMA1_Channel6_IRQHandler 0x0800025f Thumb Code 0 startup_stm32f10x_md.o(.text) + DMA1_Channel7_IRQHandler 0x0800025f Thumb Code 0 startup_stm32f10x_md.o(.text) + EXTI0_IRQHandler 0x0800025f Thumb Code 0 startup_stm32f10x_md.o(.text) + EXTI15_10_IRQHandler 0x0800025f Thumb Code 0 startup_stm32f10x_md.o(.text) + EXTI1_IRQHandler 0x0800025f Thumb Code 0 startup_stm32f10x_md.o(.text) + EXTI2_IRQHandler 0x0800025f Thumb Code 0 startup_stm32f10x_md.o(.text) + EXTI3_IRQHandler 0x0800025f Thumb Code 0 startup_stm32f10x_md.o(.text) + EXTI4_IRQHandler 0x0800025f Thumb Code 0 startup_stm32f10x_md.o(.text) + EXTI9_5_IRQHandler 0x0800025f Thumb Code 0 startup_stm32f10x_md.o(.text) + FLASH_IRQHandler 0x0800025f Thumb Code 0 startup_stm32f10x_md.o(.text) + I2C1_ER_IRQHandler 0x0800025f Thumb Code 0 startup_stm32f10x_md.o(.text) + I2C1_EV_IRQHandler 0x0800025f Thumb Code 0 startup_stm32f10x_md.o(.text) + I2C2_ER_IRQHandler 0x0800025f Thumb Code 0 startup_stm32f10x_md.o(.text) + I2C2_EV_IRQHandler 0x0800025f Thumb Code 0 startup_stm32f10x_md.o(.text) + PVD_IRQHandler 0x0800025f Thumb Code 0 startup_stm32f10x_md.o(.text) + RCC_IRQHandler 0x0800025f Thumb Code 0 startup_stm32f10x_md.o(.text) + RTCAlarm_IRQHandler 0x0800025f Thumb Code 0 startup_stm32f10x_md.o(.text) + RTC_IRQHandler 0x0800025f Thumb Code 0 startup_stm32f10x_md.o(.text) + SPI1_IRQHandler 0x0800025f Thumb Code 0 startup_stm32f10x_md.o(.text) + SPI2_IRQHandler 0x0800025f Thumb Code 0 startup_stm32f10x_md.o(.text) + TAMPER_IRQHandler 0x0800025f Thumb Code 0 startup_stm32f10x_md.o(.text) + TIM1_BRK_IRQHandler 0x0800025f Thumb Code 0 startup_stm32f10x_md.o(.text) + TIM1_CC_IRQHandler 0x0800025f Thumb Code 0 startup_stm32f10x_md.o(.text) + TIM1_TRG_COM_IRQHandler 0x0800025f Thumb Code 0 startup_stm32f10x_md.o(.text) + TIM1_UP_IRQHandler 0x0800025f Thumb Code 0 startup_stm32f10x_md.o(.text) + TIM3_IRQHandler 0x0800025f Thumb Code 0 startup_stm32f10x_md.o(.text) + TIM4_IRQHandler 0x0800025f Thumb Code 0 startup_stm32f10x_md.o(.text) + USART2_IRQHandler 0x0800025f Thumb Code 0 startup_stm32f10x_md.o(.text) + USART3_IRQHandler 0x0800025f Thumb Code 0 startup_stm32f10x_md.o(.text) + USBWakeUp_IRQHandler 0x0800025f Thumb Code 0 startup_stm32f10x_md.o(.text) + USB_HP_CAN1_TX_IRQHandler 0x0800025f Thumb Code 0 startup_stm32f10x_md.o(.text) + USB_LP_CAN1_RX0_IRQHandler 0x0800025f Thumb Code 0 startup_stm32f10x_md.o(.text) + WWDG_IRQHandler 0x0800025f Thumb Code 0 startup_stm32f10x_md.o(.text) + __aeabi_uldivmod 0x08000269 Thumb Code 98 uldiv.o(.text) + __aeabi_memset 0x080002cb Thumb Code 14 memseta.o(.text) + __aeabi_memset4 0x080002cb Thumb Code 0 memseta.o(.text) + __aeabi_memset8 0x080002cb Thumb Code 0 memseta.o(.text) + __aeabi_memclr 0x080002d9 Thumb Code 4 memseta.o(.text) + __aeabi_memclr4 0x080002d9 Thumb Code 0 memseta.o(.text) + __aeabi_memclr8 0x080002d9 Thumb Code 0 memseta.o(.text) + _memset$wrapper 0x080002dd Thumb Code 18 memseta.o(.text) + strlen 0x080002ef Thumb Code 14 strlen.o(.text) + strcmp 0x080002fd Thumb Code 28 strcmp.o(.text) + strcpy 0x08000319 Thumb Code 18 strcpy.o(.text) + __aeabi_fadd 0x0800032b Thumb Code 164 fadd.o(.text) + __aeabi_fsub 0x080003cf Thumb Code 6 fadd.o(.text) + __aeabi_frsub 0x080003d5 Thumb Code 6 fadd.o(.text) + __aeabi_fmul 0x080003db Thumb Code 100 fmul.o(.text) + __aeabi_fdiv 0x0800043f Thumb Code 124 fdiv.o(.text) + __aeabi_dadd 0x080004bb Thumb Code 322 dadd.o(.text) + __aeabi_dsub 0x080005fd Thumb Code 6 dadd.o(.text) + __aeabi_drsub 0x08000603 Thumb Code 6 dadd.o(.text) + __aeabi_dmul 0x08000609 Thumb Code 228 dmul.o(.text) + __aeabi_ddiv 0x080006ed Thumb Code 222 ddiv.o(.text) + __aeabi_i2f 0x080007cb Thumb Code 18 fflti.o(.text) + __aeabi_ui2f 0x080007dd Thumb Code 10 ffltui.o(.text) + __aeabi_i2d 0x080007e7 Thumb Code 34 dflti.o(.text) + __aeabi_ui2d 0x08000809 Thumb Code 26 dfltui.o(.text) + __aeabi_f2uiz 0x08000823 Thumb Code 40 ffixui.o(.text) + __aeabi_d2iz 0x0800084b Thumb Code 62 dfixi.o(.text) + __aeabi_f2d 0x08000889 Thumb Code 38 f2d.o(.text) + __aeabi_cdcmpeq 0x080008b1 Thumb Code 0 cdcmple.o(.text) + __aeabi_cdcmple 0x080008b1 Thumb Code 48 cdcmple.o(.text) + __aeabi_cdrcmple 0x080008e1 Thumb Code 48 cdrcmple.o(.text) + __aeabi_d2f 0x08000911 Thumb Code 56 d2f.o(.text) + __aeabi_cfcmpeq 0x08000949 Thumb Code 0 cfcmple.o(.text) + __aeabi_cfcmple 0x08000949 Thumb Code 20 cfcmple.o(.text) + __aeabi_cfrcmple 0x0800095d Thumb Code 20 cfrcmple.o(.text) + __aeabi_uidiv 0x08000971 Thumb Code 0 uidiv.o(.text) + __aeabi_uidivmod 0x08000971 Thumb Code 44 uidiv.o(.text) + __aeabi_llsl 0x0800099d Thumb Code 30 llshl.o(.text) + _ll_shift_l 0x0800099d Thumb Code 0 llshl.o(.text) + __aeabi_llsr 0x080009bb Thumb Code 32 llushr.o(.text) + _ll_ushift_r 0x080009bb Thumb Code 0 llushr.o(.text) + __aeabi_lasr 0x080009db Thumb Code 36 llsshr.o(.text) + _ll_sshift_r 0x080009db Thumb Code 0 llsshr.o(.text) + __I$use$fp 0x080009ff Thumb Code 0 iusefp.o(.text) + _float_round 0x080009ff Thumb Code 18 fepilogue.o(.text) + _float_epilogue 0x08000a11 Thumb Code 92 fepilogue.o(.text) + _double_round 0x08000a6d Thumb Code 30 depilogue.o(.text) + _double_epilogue 0x08000a8b Thumb Code 156 depilogue.o(.text) + __aeabi_d2ulz 0x08000b27 Thumb Code 48 dfixul.o(.text) + __scatterload 0x08000b59 Thumb Code 28 init.o(.text) + __scatterload_rt2 0x08000b59 Thumb Code 0 init.o(.text) + __decompress 0x08000b7d Thumb Code 0 __dczerorl.o(.text) + __decompress0 0x08000b7d Thumb Code 58 __dczerorl.o(.text) + SVC_Count 0x08000bb8 Data 4 svc_table.o(SVC_TABLE) + ACCMD 0x08000bbd Thumb Code 30 ws100t10.o(i.ACCMD) + SVC_Table 0x08000bbc Data 0 svc_table.o(SVC_TABLE) + ACCtrl 0x08000be1 Thumb Code 64 ws100t10.o(i.ACCtrl) + AC_CTRL_Init 0x08000c25 Thumb Code 12 ws100t10.o(i.AC_CTRL_Init) + AD7190_Init 0x08000c35 Thumb Code 136 ad7190.o(i.AD7190_Init) + AD7190_ReadData 0x08000ccd Thumb Code 294 ad7190.o(i.AD7190_ReadData) + AD7190_ReadRegister 0x08000e11 Thumb Code 46 ad7190.o(i.AD7190_ReadRegister) + AD7190_ReadRegisterOnce 0x08000e3f Thumb Code 26 ad7190.o(i.AD7190_ReadRegisterOnce) + AD7190_Run 0x08000e59 Thumb Code 1866 ad7190.o(i.AD7190_Run) + AD7190_WaitForReady 0x08001601 Thumb Code 42 ad7190.o(i.AD7190_WaitForReady) + AD7190_WriteRegister 0x08001631 Thumb Code 36 ad7190.o(i.AD7190_WriteRegister) + AD7190_WriteRegisterOnce 0x08001655 Thumb Code 20 ad7190.o(i.AD7190_WriteRegisterOnce) + BIOS_TIM2_TIMER_Init 0x08001669 Thumb Code 82 usarthmi.o(i.BIOS_TIM2_TIMER_Init) + BIOS_USART1_Init 0x080016c9 Thumb Code 138 usarthmi.o(i.BIOS_USART1_Init) + BIOS_USART2_Init 0x08001769 Thumb Code 90 usart.o(i.BIOS_USART2_Init) + DataPrint 0x080017d5 Thumb Code 66 usarthmi.o(i.DataPrint) + DataRec 0x08001825 Thumb Code 12 usarthmi.o(i.DataRec) + DataUnpack 0x08001831 Thumb Code 6530 hmi.o(i.DataUnpack) + FM24DataCRC 0x08003261 Thumb Code 270 hmi.o(i.FM24DataCRC) + FM24Init 0x080033c1 Thumb Code 8 fm24.o(i.FM24Init) + FM24_Read 0x080033c9 Thumb Code 92 fm24.o(i.FM24_Read) + FM24_Write 0x08003425 Thumb Code 72 fm24.o(i.FM24_Write) + GPIO_InPutset 0x0800346d Thumb Code 40 bios.o(i.GPIO_InPutset) + GPIO_Init 0x08003499 Thumb Code 278 stm32f10x_gpio.o(i.GPIO_Init) + GPIO_PinRemapConfig 0x080035b1 Thumb Code 138 stm32f10x_gpio.o(i.GPIO_PinRemapConfig) + GPIO_ReadInputDataBit 0x08003641 Thumb Code 18 stm32f10x_gpio.o(i.GPIO_ReadInputDataBit) + GPIO_ResetBits 0x08003653 Thumb Code 4 stm32f10x_gpio.o(i.GPIO_ResetBits) + GPIO_SetBits 0x08003657 Thumb Code 4 stm32f10x_gpio.o(i.GPIO_SetBits) + HMICMDInit 0x0800365d Thumb Code 16 hmi.o(i.HMICMDInit) + I2C2_ACK 0x080038e1 Thumb Code 56 i2c.o(i.I2C2_ACK) + I2C2_Init 0x0800391d Thumb Code 60 i2c.o(i.I2C2_Init) + I2C2_NACK 0x0800395d Thumb Code 56 i2c.o(i.I2C2_NACK) + I2C2_ReadByte 0x08003999 Thumb Code 96 i2c.o(i.I2C2_ReadByte) + I2C2_SendByte 0x080039fd Thumb Code 98 i2c.o(i.I2C2_SendByte) + I2C2_Start 0x08003a65 Thumb Code 56 i2c.o(i.I2C2_Start) + I2C2_Stop 0x08003aa1 Thumb Code 50 i2c.o(i.I2C2_Stop) + I2C2_Wait_ACK 0x08003ad9 Thumb Code 94 i2c.o(i.I2C2_Wait_ACK) + InstrumentTypeRead 0x08003b3d Thumb Code 60 bios.o(i.InstrumentTypeRead) + MAX6675_ConvertTemperature 0x08003b7d Thumb Code 108 max6675.o(i.MAX6675_ConvertTemperature) + MAX6675_Init 0x08003bfd Thumb Code 96 max6675.o(i.MAX6675_Init) + MAX6675_ReadData 0x08003c65 Thumb Code 84 max6675.o(i.MAX6675_ReadData) + Moisturing 0x08003cbd Thumb Code 6142 hmi.o(i.Moisturing) + MoisturingRun 0x080056ad Thumb Code 12 hmi.o(i.MoisturingRun) + Pump_OutCmd 0x080056bd Thumb Code 34 ws100t10.o(i.Pump_OutCmd) + RCC_APB2PeriphClockCmd 0x080056e5 Thumb Code 26 stm32f10x_rcc.o(i.RCC_APB2PeriphClockCmd) + SPI1_Configuration 0x08005705 Thumb Code 116 spi.o(i.SPI1_Configuration) + SPI1_ReadWrite 0x08005781 Thumb Code 118 spi.o(i.SPI1_ReadWrite) + SPI_Cmd 0x080057fd Thumb Code 24 stm32f10x_spi.o(i.SPI_Cmd) + SPI_I2S_GetFlagStatus 0x08005815 Thumb Code 18 stm32f10x_spi.o(i.SPI_I2S_GetFlagStatus) + SPI_I2S_ReceiveData 0x08005827 Thumb Code 6 stm32f10x_spi.o(i.SPI_I2S_ReceiveData) + SPI_I2S_SendData 0x0800582d Thumb Code 4 stm32f10x_spi.o(i.SPI_I2S_SendData) + SPI_Init 0x08005831 Thumb Code 60 stm32f10x_spi.o(i.SPI_Init) + SafeCheck 0x0800586d Thumb Code 22 bios.o(i.SafeCheck) + SystemInit 0x08005971 Thumb Code 78 system_stm32f10x.o(i.SystemInit) + TIM2_IRQHandler 0x080059d1 Thumb Code 116 usarthmi.o(i.TIM2_IRQHandler) + UART1_Received 0x08005a59 Thumb Code 20 usarthmi.o(i.UART1_Received) + UART1_Send 0x08005a71 Thumb Code 28 usarthmi.o(i.UART1_Send) + USART1_IRQHandler 0x08005a91 Thumb Code 128 usarthmi.o(i.USART1_IRQHandler) + USART2Print 0x08005b25 Thumb Code 48 usart.o(i.USART2Print) + USART2_Send 0x08005b59 Thumb Code 20 usart.o(i.USART2_Send) + USARTHMIInit 0x08005b71 Thumb Code 24 usarthmi.o(i.USARTHMIInit) + USART_ITConfig 0x08005b91 Thumb Code 74 stm32f10x_usart.o(i.USART_ITConfig) + WS100T10_Ctrl 0x08005bdd Thumb Code 138 i2c.o(i.WS100T10_Ctrl) + WS100T10_Init 0x08005c75 Thumb Code 122 i2c.o(i.WS100T10_Init) + __0sprintf 0x08005d01 Thumb Code 34 printfa.o(i.__0sprintf) + __1sprintf 0x08005d01 Thumb Code 0 printfa.o(i.__0sprintf) + __2sprintf 0x08005d01 Thumb Code 0 printfa.o(i.__0sprintf) + __c89sprintf 0x08005d01 Thumb Code 0 printfa.o(i.__0sprintf) + sprintf 0x08005d01 Thumb Code 0 printfa.o(i.__0sprintf) + __scatterload_copy 0x08005d4b Thumb Code 14 handlers.o(i.__scatterload_copy) + __scatterload_null 0x08005d59 Thumb Code 2 handlers.o(i.__scatterload_null) + __scatterload_zeroinit 0x08005d5b Thumb Code 14 handlers.o(i.__scatterload_zeroinit) + _init_box 0x08005eed Thumb Code 70 rt_membox.o(i._init_box) + _task_ACCtrl 0x08006645 Thumb Code 48 ws100t10.o(i._task_ACCtrl) + dbg_init 0x08006681 Thumb Code 34 hal_cm.o(i.dbg_init) + dbg_task_notify 0x080066b1 Thumb Code 32 hal_cm.o(i.dbg_task_notify) + dbg_task_switch 0x080066d1 Thumb Code 16 hal_cm.o(i.dbg_task_switch) + delay_us 0x080066e1 Thumb Code 130 delay.o(i.delay_us) + isrMessagePut 0x08006763 Thumb Code 44 rt_cmsis.o(i.isrMessagePut) + isrSemaphoreRelease 0x0800678f Thumb Code 40 rt_cmsis.o(i.isrSemaphoreRelease) + isr_mbx_send 0x080067b7 Thumb Code 14 rt_mailbox.o(i.isr_mbx_send) + isr_sem_send 0x080067c5 Thumb Code 16 rt_semaphore.o(i.isr_sem_send) + kalman_filter_init 0x080067d5 Thumb Code 14 max6675.o(i.kalman_filter_init) + kalman_filter_init2 0x080067e3 Thumb Code 60 ad7190.o(i.kalman_filter_init2) + kalman_filter_update 0x0800681f Thumb Code 90 max6675.o(i.kalman_filter_update) + kalman_filter_update2 0x08006879 Thumb Code 182 ad7190.o(i.kalman_filter_update2) + main 0x08006935 Thumb Code 350 moisture.o(i.main) + osDelay 0x08006abd Thumb Code 18 rt_cmsis.o(i.osDelay) + osKernelInitialize 0x08006ad5 Thumb Code 30 rt_cmsis.o(i.osKernelInitialize) + osKernelStart 0x08006af9 Thumb Code 98 rt_cmsis.o(i.osKernelStart) + osKernelSysTick 0x08006b65 Thumb Code 18 rt_cmsis.o(i.osKernelSysTick) + osMutexCreate 0x08006b7d Thumb Code 36 rt_cmsis.o(i.osMutexCreate) + osMutexRelease 0x08006ba9 Thumb Code 18 rt_cmsis.o(i.osMutexRelease) + osMutexWait 0x08006bc1 Thumb Code 18 rt_cmsis.o(i.osMutexWait) + osSemaphoreCreate 0x08006bd9 Thumb Code 36 rt_cmsis.o(i.osSemaphoreCreate) + osSemaphoreRelease 0x08006c05 Thumb Code 18 rt_cmsis.o(i.osSemaphoreRelease) + osSemaphoreWait 0x08006c1d Thumb Code 20 rt_cmsis.o(i.osSemaphoreWait) + osThreadCreate 0x08006c35 Thumb Code 36 rt_cmsis.o(i.osThreadCreate) + osThreadExit 0x08006c61 Thumb Code 14 rt_cmsis.o(i.osThreadExit) + osThreadGetId 0x08006c79 Thumb Code 18 rt_cmsis.o(i.osThreadGetId) + osThreadTerminate 0x08006c91 Thumb Code 18 rt_cmsis.o(i.osThreadTerminate) + os_error 0x08006ca9 Thumb Code 34 rtx_conf_cm.o(i.os_error) + os_idle_demon 0x08006ccb Thumb Code 4 rtx_conf_cm.o(i.os_idle_demon) + os_tick_init 0x08006cd1 Thumb Code 32 rt_system.o(i.os_tick_init) + os_tick_irqack 0x08006cf9 Thumb Code 2 rt_system.o(i.os_tick_irqack) + os_tick_ovf 0x08006cfd Thumb Code 10 rt_system.o(i.os_tick_ovf) + os_tick_val 0x08006d0d Thumb Code 14 rt_system.o(i.os_tick_val) + rt_alloc_box 0x08006d21 Thumb Code 26 rt_membox.o(i.rt_alloc_box) + rt_alloc_mem 0x08006d3b Thumb Code 62 rt_memory.o(i.rt_alloc_mem) + rt_block 0x08006d79 Thumb Code 48 rt_task.o(i.rt_block) + rt_chk_robin 0x08006db1 Thumb Code 60 rt_robin.o(i.rt_chk_robin) + rt_dec_dly 0x08006df9 Thumb Code 102 rt_list.o(i.rt_dec_dly) + rt_dispatch 0x08006e69 Thumb Code 60 rt_task.o(i.rt_dispatch) + rt_dly_wait 0x08006ead Thumb Code 6 rt_time.o(i.rt_dly_wait) + rt_evt_psh 0x08006eb5 Thumb Code 76 rt_event.o(i.rt_evt_psh) + rt_free_box 0x08006f05 Thumb Code 44 rt_membox.o(i.rt_free_box) + rt_free_mem 0x08006f31 Thumb Code 40 rt_memory.o(i.rt_free_mem) + rt_get_first 0x08006f59 Thumb Code 40 rt_list.o(i.rt_get_first) + rt_init_mem 0x08006fd1 Thumb Code 26 rt_memory.o(i.rt_init_mem) + rt_init_robin 0x08006fed Thumb Code 14 rt_robin.o(i.rt_init_robin) + rt_init_stack 0x08007005 Thumb Code 118 hal_cm.o(i.rt_init_stack) + rt_mbx_check 0x08007085 Thumb Code 8 rt_mailbox.o(i.rt_mbx_check) + rt_mbx_init 0x0800708d Thumb Code 26 rt_mailbox.o(i.rt_mbx_init) + rt_mbx_psh 0x080070a9 Thumb Code 236 rt_mailbox.o(i.rt_mbx_psh) + rt_mut_init 0x080071dd Thumb Code 16 rt_mutex.o(i.rt_mut_init) + rt_mut_release 0x080071ed Thumb Code 208 rt_mutex.o(i.rt_mut_release) + rt_mut_wait 0x080072c5 Thumb Code 114 rt_mutex.o(i.rt_mut_wait) + rt_pop_req 0x0800733d Thumb Code 112 rt_system.o(i.rt_pop_req) + rt_psh_req 0x080073b9 Thumb Code 22 rt_system.o(i.rt_psh_req) + rt_psq_enq 0x080073d9 Thumb Code 88 rt_list.o(i.rt_psq_enq) + rt_put_dly 0x08007435 Thumb Code 68 rt_list.o(i.rt_put_dly) + rt_put_prio 0x0800747d Thumb Code 54 rt_list.o(i.rt_put_prio) + rt_put_rdy_first 0x080074b5 Thumb Code 14 rt_list.o(i.rt_put_rdy_first) + rt_resort_prio 0x080074c9 Thumb Code 46 rt_list.o(i.rt_resort_prio) + rt_ret_val 0x080074fd Thumb Code 6 hal_cm.o(i.rt_ret_val) + rt_ret_val2 0x08007503 Thumb Code 8 hal_cm.o(i.rt_ret_val2) + rt_rmv_dly 0x0800750b Thumb Code 40 rt_list.o(i.rt_rmv_dly) + rt_rmv_list 0x08007535 Thumb Code 44 rt_list.o(i.rt_rmv_list) + rt_sem_init 0x08007565 Thumb Code 12 rt_semaphore.o(i.rt_sem_init) + rt_sem_psh 0x08007571 Thumb Code 48 rt_semaphore.o(i.rt_sem_psh) + rt_sem_send 0x080075a5 Thumb Code 42 rt_semaphore.o(i.rt_sem_send) + rt_sem_wait 0x080075d1 Thumb Code 58 rt_semaphore.o(i.rt_sem_wait) + rt_stk_check 0x08007611 Thumb Code 28 rt_system.o(i.rt_stk_check) + rt_switch_req 0x08007635 Thumb Code 30 rt_task.o(i.rt_switch_req) + rt_sys_init 0x0800765d Thumb Code 138 rt_task.o(i.rt_sys_init) + rt_sys_start 0x08007729 Thumb Code 110 rt_task.o(i.rt_sys_start) + rt_systick 0x080077a1 Thumb Code 50 rt_system.o(i.rt_systick) + rt_tsk_create 0x08007829 Thumb Code 118 rt_task.o(i.rt_tsk_create) + rt_tsk_delete 0x080078b1 Thumb Code 352 rt_task.o(i.rt_tsk_delete) + rt_tsk_prio 0x08007a2d Thumb Code 108 rt_task.o(i.rt_tsk_prio) + rt_tsk_self 0x08007aa9 Thumb Code 12 rt_task.o(i.rt_tsk_self) + svcDelay 0x08007ab9 Thumb Code 18 rt_cmsis.o(i.svcDelay) + svcKernelInitialize 0x08007acd Thumb Code 80 rt_cmsis.o(i.svcKernelInitialize) + svcKernelStart 0x08007b3d Thumb Code 62 rt_cmsis.o(i.svcKernelStart) + svcKernelSysTick 0x08007b85 Thumb Code 46 rt_cmsis.o(i.svcKernelSysTick) + svcMessageCreate 0x08007bbd Thumb Code 36 rt_cmsis.o(i.svcMessageCreate) + svcMutexCreate 0x08007be1 Thumb Code 28 rt_cmsis.o(i.svcMutexCreate) + svcMutexRelease 0x08007bfd Thumb Code 34 rt_cmsis.o(i.svcMutexRelease) + svcMutexWait 0x08007c1f Thumb Code 58 rt_cmsis.o(i.svcMutexWait) + svcSemaphoreCreate 0x08007c59 Thumb Code 36 rt_cmsis.o(i.svcSemaphoreCreate) + svcSemaphoreRelease 0x08007c7d Thumb Code 40 rt_cmsis.o(i.svcSemaphoreRelease) + svcSemaphoreWait 0x08007ca5 Thumb Code 50 rt_cmsis.o(i.svcSemaphoreWait) + svcThreadCreate 0x08007cd9 Thumb Code 96 rt_cmsis.o(i.svcThreadCreate) + svcThreadGetId 0x08007d45 Thumb Code 22 rt_cmsis.o(i.svcThreadGetId) + svcThreadTerminate 0x08007d61 Thumb Code 50 rt_cmsis.o(i.svcThreadTerminate) + sysTimerTick 0x08007d99 Thumb Code 84 rt_cmsis.o(i.sysTimerTick) + os_thread_def_AD7190_Run 0x08007df4 Data 16 ad7190.o(.constdata) + os_thread_def__task_ACCtrl 0x08007e04 Data 16 ws100t10.o(.constdata) + os_thread_def_HeatTask_Socket 0x08007e14 Data 16 ws100t10.o(.constdata) + os_thread_def_MAX6675_ConvertTemperature 0x08007e24 Data 16 max6675.o(.constdata) + os_semaphore_def_semDataBack 0x08007e34 Data 4 usarthmi.o(.constdata) + os_thread_def_Moisturing 0x08007e38 Data 16 hmi.o(.constdata) + os_thread_def_DataUnpack 0x08007e48 Data 16 hmi.o(.constdata) + os_maxtaskrun 0x08008258 Data 2 rtx_conf_cm.o(.constdata) + os_stackinfo 0x0800825c Data 4 rtx_conf_cm.o(.constdata) + os_rrobin 0x08008260 Data 4 rtx_conf_cm.o(.constdata) + os_tickfreq 0x08008264 Data 4 rtx_conf_cm.o(.constdata) + os_tickus_i 0x08008268 Data 2 rtx_conf_cm.o(.constdata) + os_tickus_f 0x0800826a Data 2 rtx_conf_cm.o(.constdata) + os_trv 0x0800826c Data 4 rtx_conf_cm.o(.constdata) + os_flags 0x08008270 Data 1 rtx_conf_cm.o(.constdata) + CMSIS_RTOS_API_Version 0x08008274 Data 4 rtx_conf_cm.o(.constdata) + CMSIS_RTOS_RTX_Version 0x08008278 Data 4 rtx_conf_cm.o(.constdata) + os_clockrate 0x0800827c Data 4 rtx_conf_cm.o(.constdata) + os_timernum 0x08008280 Data 4 rtx_conf_cm.o(.constdata) + mp_tcb_size 0x08008284 Data 2 rtx_conf_cm.o(.constdata) + mp_stk_size 0x08008288 Data 4 rtx_conf_cm.o(.constdata) + os_stack_sz 0x0800828c Data 4 rtx_conf_cm.o(.constdata) + os_fifo_size 0x08008290 Data 1 rtx_conf_cm.o(.constdata) + os_thread_def_osTimerThread 0x08008294 Data 16 rtx_conf_cm.o(.constdata) + os_messageQ_def_osTimerMessageQ 0x080082a4 Data 8 rtx_conf_cm.o(.constdata) + mp_tmr_size 0x080082ac Data 2 rtx_conf_cm.o(.constdata) + os_thread_def_main 0x080082b0 Data 16 rtx_conf_cm.o(.constdata) + Region$$Table$$Base 0x080082c0 Number 0 anon$$obj.o(Region$$Table) + Region$$Table$$Limit 0x080082e0 Number 0 anon$$obj.o(Region$$Table) ErrCount 0x20000000 Data 1 ad7190.o(.data) - WeightData2 0x20000004 Data 4 ad7190.o(.data) - ADvalue2filter 0x20000008 Data 4 ad7190.o(.data) - ADvalue2filterOld 0x20000010 Data 4 ad7190.o(.data) - ADvalue2 0x20000014 Data 4 ad7190.o(.data) - ic2 0x20000018 Data 1 ad7190.o(.data) - i 0x20000019 Data 1 ad7190.o(.data) - data2 0x2000001c Data 4 ad7190.o(.data) - FollowCount 0x20000020 Data 1 ad7190.o(.data) - TimeCount 0x20000021 Data 1 ad7190.o(.data) - WeightZeroOld 0x20000024 Data 4 ad7190.o(.data) - modeRega 0x20000028 Data 4 ad7190.o(.data) - configa 0x2000002c Data 4 ad7190.o(.data) - configao 0x20000030 Data 4 ad7190.o(.data) - weightChanging 0x20000034 Data 1 ad7190.o(.data) - Percent 0x20000038 Data 8 ws100t10.o(.data) - GetPercent 0x20000040 Data 8 ws100t10.o(.data) - PercentOld 0x20000048 Data 8 ws100t10.o(.data) - Kp 0x20000050 Data 4 ws100t10.o(.data) - Ki 0x20000054 Data 4 ws100t10.o(.data) - Kd 0x20000058 Data 4 ws100t10.o(.data) - HeatOutValue 0x20000060 Data 4 ws100t10.o(.data) - OutputMax 0x20000064 Data 4 ws100t10.o(.data) - Temperature 0x20000068 Data 4 max6675.o(.data) - USART_Mutex_ID 0x2000006c Data 4 usarthmi.o(.data) - RxUpToDate 0x20000074 Data 1 usarthmi.o(.data) - semDataBack 0x20000078 Data 4 usarthmi.o(.data) - os_semaphore_cb_semDataBack 0x2000007c Data 8 usarthmi.o(.data) - pageNum 0x20000084 Data 1 hmi.o(.data) - MaxWeight 0x20000085 Data 1 hmi.o(.data) - MaxTemp 0x20000086 Data 1 hmi.o(.data) - Resolution 0x20000088 Data 4 hmi.o(.data) - ResolutionWater 0x2000008c Data 4 hmi.o(.data) - StartWeight 0x20000090 Data 4 hmi.o(.data) - StopWeight 0x20000094 Data 4 hmi.o(.data) - WaterPercent 0x20000098 Data 4 hmi.o(.data) - WeightOld 0x2000009c Data 4 hmi.o(.data) - CountNochange 0x200000a0 Data 2 hmi.o(.data) - CountDelay 0x200000a2 Data 2 hmi.o(.data) - SCount 0x200000a4 Data 1 hmi.o(.data) - SRange 0x200000a6 Data 2 hmi.o(.data) - DisData 0x200000a8 Data 4 hmi.o(.data) - Finisflag 0x200000ac Data 1 hmi.o(.data) - t18Dis 0x200000ad Data 1 hmi.o(.data) - t18DisCount 0x200000ae Data 2 hmi.o(.data) - semDataChange 0x200000b0 Data 4 hmi.o(.data) - LastTick 0x200000b4 Data 4 hmi.o(.data) - lostTick 0x200000b8 Data 4 hmi.o(.data) - Err 0x200000bc Data 1 hmi.o(.data) - osThreadId_osTimerThread 0x200000c0 Data 4 rtx_conf_cm.o(.data) - osMessageQId_osTimerMessageQ 0x200000c4 Data 4 rtx_conf_cm.o(.data) - os_tmr 0x200000c8 Data 4 rtx_conf_cm.o(.data) - m_tmr 0x200000cc Data 4 rtx_conf_cm.o(.data) - SystemCoreClock 0x200000d4 Data 4 system_stm32f10x.o(.data) - AHBPrescTable 0x200000d8 Data 16 system_stm32f10x.o(.data) - os_initialized 0x200000e8 Data 1 rt_cmsis.o(.data) - os_running 0x200000e9 Data 1 rt_cmsis.o(.data) - os_timer_head 0x200000ec Data 4 rt_cmsis.o(.data) - os_tsk 0x200000f0 Data 8 rt_task.o(.data) - os_tick_irqn 0x200000fc Data 4 rt_system.o(.data) - os_time 0x20000100 Data 4 rt_time.o(.data) - os_robin 0x20000104 Data 8 rt_robin.o(.data) - dbg_msg 0x2000010c Data 1 hal_cm.o(.data) - kf2 0x20000110 Data 20 ad7190.o(.bss) - CalibrateWeight2 0x20000128 Data 16 ad7190.o(.bss) - kf 0x20000138 Data 20 max6675.o(.bss) - DataInbuf 0x2000014c Data 100 usarthmi.o(.bss) - Set 0x200001b0 Data 196 hmi.o(.bss) - DataLogValue 0x20000274 Data 100 hmi.o(.bss) - NameBuf 0x200002d8 Data 40 hmi.o(.bss) - startTime 0x20000300 Data 20 hmi.o(.bss) - os_idle_TCB 0x20000314 Data 52 rt_task.o(.bss) - os_rdy 0x20000348 Data 24 rt_list.o(.bss) - os_dly 0x20000360 Data 24 rt_list.o(.bss) - __libspace_start 0x20000378 Data 96 libspace.o(.bss) - __temporary_stack_top$libspace 0x200003d8 Data 0 libspace.o(.bss) + DifErrCount 0x20000002 Data 2 ad7190.o(.data) + lastdata 0x20000004 Data 4 ad7190.o(.data) + BufIndex 0x20000008 Data 2 ad7190.o(.data) + average 0x2000000c Data 4 ad7190.o(.data) + center 0x20000010 Data 4 ad7190.o(.data) + ErrcountAdd 0x20000014 Data 4 ad7190.o(.data) + DifErrCountAdd 0x20000018 Data 4 ad7190.o(.data) + FollowCount 0x2000001c Data 1 ad7190.o(.data) + TimeCount 0x2000001d Data 1 ad7190.o(.data) + FliterCount 0x20000020 Data 4 ad7190.o(.data) + SetZeroCount 0x20000024 Data 2 ad7190.o(.data) + ADvalue2 0x20000028 Data 4 ad7190.o(.data) + ADvalue2filter 0x20000030 Data 8 ad7190.o(.data) + ADvalue2filterOld 0x20000038 Data 8 ad7190.o(.data) + WeightData2Temp 0x20000040 Data 8 ad7190.o(.data) + WeightData2TempOld 0x20000048 Data 8 ad7190.o(.data) + WeightData2Finally 0x20000050 Data 8 ad7190.o(.data) + UninstiallRefWeight 0x20000058 Data 8 ad7190.o(.data) + WeightZeroOld 0x20000060 Data 8 ad7190.o(.data) + WeightData2 0x20000068 Data 8 ad7190.o(.data) + weightChanging 0x20000070 Data 1 ad7190.o(.data) + weight11g 0x20000071 Data 1 ad7190.o(.data) + ZeroWeightOld 0x20000074 Data 4 ad7190.o(.data) + ZeroWeightChange 0x20000078 Data 4 ad7190.o(.data) + LowFecAlpha 0x2000007c Data 4 ad7190.o(.data) + WeightRefStart 0x20000080 Data 4 ad7190.o(.data) + i 0x20000084 Data 1 ad7190.o(.data) + Percent 0x20000088 Data 8 ws100t10.o(.data) + GetPercent 0x20000090 Data 8 ws100t10.o(.data) + PercentOld 0x20000098 Data 8 ws100t10.o(.data) + Kp 0x200000a0 Data 4 ws100t10.o(.data) + Ki 0x200000a4 Data 4 ws100t10.o(.data) + Kd 0x200000a8 Data 4 ws100t10.o(.data) + HeatOutValue 0x200000b0 Data 4 ws100t10.o(.data) + OutputMax 0x200000b4 Data 4 ws100t10.o(.data) + Temperature 0x200000b8 Data 4 max6675.o(.data) + USART_Mutex_ID 0x200000bc Data 4 usarthmi.o(.data) + RxUpToDate 0x200000c4 Data 1 usarthmi.o(.data) + semDataBack 0x200000c8 Data 4 usarthmi.o(.data) + os_semaphore_cb_semDataBack 0x200000cc Data 8 usarthmi.o(.data) + pageNum 0x200000d4 Data 1 hmi.o(.data) + MaxWeight 0x200000d5 Data 1 hmi.o(.data) + MaxTemp 0x200000d6 Data 1 hmi.o(.data) + Resolution 0x200000d8 Data 4 hmi.o(.data) + ResolutionWater 0x200000dc Data 4 hmi.o(.data) + SHIZHONG 0x200000e0 Data 4 hmi.o(.data) + HUICHAO 0x200000e4 Data 4 hmi.o(.data) + StartWeight 0x200000e8 Data 4 hmi.o(.data) + StopWeight 0x200000ec Data 4 hmi.o(.data) + PercentData 0x200000f0 Data 4 hmi.o(.data) + WaterPercentData 0x200000f4 Data 4 hmi.o(.data) + WeightOld 0x200000f8 Data 4 hmi.o(.data) + CountNochange 0x200000fc Data 2 hmi.o(.data) + CountDelay 0x200000fe Data 2 hmi.o(.data) + SCount 0x20000100 Data 1 hmi.o(.data) + SRange 0x20000102 Data 2 hmi.o(.data) + DisData 0x20000104 Data 4 hmi.o(.data) + FinishDisData 0x20000108 Data 4 hmi.o(.data) + Finisflag 0x2000010c Data 1 hmi.o(.data) + t18Dis 0x2000010d Data 1 hmi.o(.data) + t18DisCount 0x2000010e Data 2 hmi.o(.data) + semDataChange 0x20000110 Data 4 hmi.o(.data) + LastTick 0x20000114 Data 4 hmi.o(.data) + lostTick 0x20000118 Data 4 hmi.o(.data) + Err 0x2000011c Data 1 hmi.o(.data) + DiffWeight 0x20000120 Data 4 hmi.o(.data) + DataBufIndex 0x20000124 Data 2 hmi.o(.data) + DataOld 0x20000126 Data 2 hmi.o(.data) + LCount 0x20000128 Data 2 hmi.o(.data) + StartFirst 0x2000012a Data 1 hmi.o(.data) + osThreadId_osTimerThread 0x2000012c Data 4 rtx_conf_cm.o(.data) + osMessageQId_osTimerMessageQ 0x20000130 Data 4 rtx_conf_cm.o(.data) + os_tmr 0x20000134 Data 4 rtx_conf_cm.o(.data) + m_tmr 0x20000138 Data 4 rtx_conf_cm.o(.data) + SystemCoreClock 0x2000013c Data 4 system_stm32f10x.o(.data) + AHBPrescTable 0x20000140 Data 16 system_stm32f10x.o(.data) + os_initialized 0x20000150 Data 1 rt_cmsis.o(.data) + os_running 0x20000151 Data 1 rt_cmsis.o(.data) + os_timer_head 0x20000154 Data 4 rt_cmsis.o(.data) + os_tsk 0x20000158 Data 8 rt_task.o(.data) + os_tick_irqn 0x20000164 Data 4 rt_system.o(.data) + os_time 0x20000168 Data 4 rt_time.o(.data) + dbg_msg 0x2000016c Data 1 hal_cm.o(.data) + os_robin 0x20000170 Data 8 rt_robin.o(.data) + UseuLBuf 0x20000178 Data 80 ad7190.o(.bss) + UseuLBuf2 0x200001c8 Data 80 ad7190.o(.bss) + kf2 0x20000218 Data 40 ad7190.o(.bss) + CalibrateWeight2 0x20000240 Data 16 ad7190.o(.bss) + kf 0x20000250 Data 20 max6675.o(.bss) + DataInbuf 0x20000264 Data 100 usarthmi.o(.bss) + Set 0x200002c8 Data 196 hmi.o(.bss) + DataLogValue 0x2000038c Data 100 hmi.o(.bss) + NameBuf 0x200003f0 Data 40 hmi.o(.bss) + startTime 0x20000418 Data 20 hmi.o(.bss) + WeightDataBuf 0x2000042c Data 1640 hmi.o(.bss) + os_idle_TCB 0x20000a94 Data 52 rt_task.o(.bss) + os_rdy 0x20000ac8 Data 24 rt_list.o(.bss) + os_dly 0x20000ae0 Data 24 rt_list.o(.bss) + __initial_sp 0x20000ef8 Data 0 startup_stm32f10x_md.o(STACK) mp_tcb 0x20001298 Data 532 rtx_conf_cm.o(.bss) mp_stk 0x200014b0 Data 9232 rtx_conf_cm.o(.bss) os_stack_mem 0x200038c0 Data 3104 rtx_conf_cm.o(.bss) @@ -2597,374 +2378,297 @@ Memory Map of the image Image Entry point : 0x080000ed - Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00007fc0, Max: 0x00010000, ABSOLUTE) + Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00008458, Max: 0x00010000, ABSOLUTE, COMPRESSED[0x00008308]) - Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x00007eb0, Max: 0x00010000, ABSOLUTE) + Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x000082e0, Max: 0x00010000, ABSOLUTE) Exec Addr Load Addr Size Type Attr Idx E Section Name Object - 0x08000000 0x08000000 0x000000ec Data RO 2510 RESET startup_stm32f10x_md.o - 0x080000ec 0x080000ec 0x00000008 Code RO 3825 * !!!main c_w.l(__main.o) - 0x080000f4 0x080000f4 0x00000034 Code RO 4111 !!!scatter c_w.l(__scatter.o) - 0x08000128 0x08000128 0x0000001a Code RO 4113 !!handler_copy c_w.l(__scatter_copy.o) - 0x08000142 0x08000142 0x00000002 PAD - 0x08000144 0x08000144 0x0000001c Code RO 4115 !!handler_zi c_w.l(__scatter_zi.o) - 0x08000160 0x08000160 0x00000000 Code RO 3814 .ARM.Collect$$_printf_percent$$00000000 c_w.l(_printf_percent.o) - 0x08000160 0x08000160 0x00000006 Code RO 3813 .ARM.Collect$$_printf_percent$$00000003 c_w.l(_printf_f.o) - 0x08000166 0x08000166 0x00000006 Code RO 3812 .ARM.Collect$$_printf_percent$$00000009 c_w.l(_printf_d.o) - 0x0800016c 0x0800016c 0x00000006 Code RO 3811 .ARM.Collect$$_printf_percent$$00000014 c_w.l(_printf_s.o) - 0x08000172 0x08000172 0x00000004 Code RO 3898 .ARM.Collect$$_printf_percent$$00000017 c_w.l(_printf_percent_end.o) - 0x08000176 0x08000176 0x00000002 Code RO 3995 .ARM.Collect$$libinit$$00000000 c_w.l(libinit.o) - 0x08000178 0x08000178 0x00000000 Code RO 3997 .ARM.Collect$$libinit$$00000002 c_w.l(libinit2.o) - 0x08000178 0x08000178 0x00000000 Code RO 3999 .ARM.Collect$$libinit$$00000004 c_w.l(libinit2.o) - 0x08000178 0x08000178 0x00000000 Code RO 4002 .ARM.Collect$$libinit$$0000000A c_w.l(libinit2.o) - 0x08000178 0x08000178 0x00000000 Code RO 4004 .ARM.Collect$$libinit$$0000000C c_w.l(libinit2.o) - 0x08000178 0x08000178 0x00000000 Code RO 4006 .ARM.Collect$$libinit$$0000000E c_w.l(libinit2.o) - 0x08000178 0x08000178 0x00000006 Code RO 4007 .ARM.Collect$$libinit$$0000000F c_w.l(libinit2.o) - 0x0800017e 0x0800017e 0x00000000 Code RO 4009 .ARM.Collect$$libinit$$00000011 c_w.l(libinit2.o) - 0x0800017e 0x0800017e 0x00000000 Code RO 4011 .ARM.Collect$$libinit$$00000013 c_w.l(libinit2.o) - 0x0800017e 0x0800017e 0x00000000 Code RO 4013 .ARM.Collect$$libinit$$00000015 c_w.l(libinit2.o) - 0x0800017e 0x0800017e 0x0000000a Code RO 4014 .ARM.Collect$$libinit$$00000016 c_w.l(libinit2.o) - 0x08000188 0x08000188 0x00000000 Code RO 4015 .ARM.Collect$$libinit$$00000017 c_w.l(libinit2.o) - 0x08000188 0x08000188 0x00000000 Code RO 4017 .ARM.Collect$$libinit$$00000019 c_w.l(libinit2.o) - 0x08000188 0x08000188 0x00000000 Code RO 4019 .ARM.Collect$$libinit$$0000001B c_w.l(libinit2.o) - 0x08000188 0x08000188 0x00000000 Code RO 4021 .ARM.Collect$$libinit$$0000001D c_w.l(libinit2.o) - 0x08000188 0x08000188 0x00000000 Code RO 4023 .ARM.Collect$$libinit$$0000001F c_w.l(libinit2.o) - 0x08000188 0x08000188 0x00000000 Code RO 4025 .ARM.Collect$$libinit$$00000021 c_w.l(libinit2.o) - 0x08000188 0x08000188 0x00000000 Code RO 4027 .ARM.Collect$$libinit$$00000023 c_w.l(libinit2.o) - 0x08000188 0x08000188 0x00000000 Code RO 4029 .ARM.Collect$$libinit$$00000025 c_w.l(libinit2.o) - 0x08000188 0x08000188 0x00000000 Code RO 4033 .ARM.Collect$$libinit$$0000002C c_w.l(libinit2.o) - 0x08000188 0x08000188 0x00000000 Code RO 4035 .ARM.Collect$$libinit$$0000002E c_w.l(libinit2.o) - 0x08000188 0x08000188 0x00000000 Code RO 4037 .ARM.Collect$$libinit$$00000030 c_w.l(libinit2.o) - 0x08000188 0x08000188 0x00000000 Code RO 4039 .ARM.Collect$$libinit$$00000032 c_w.l(libinit2.o) - 0x08000188 0x08000188 0x00000002 Code RO 4040 .ARM.Collect$$libinit$$00000033 c_w.l(libinit2.o) - 0x0800018a 0x0800018a 0x00000002 Code RO 4041 .ARM.Collect$$libshutdown$$00000000 c_w.l(libshutdown.o) - 0x0800018c 0x0800018c 0x00000000 Code RO 4054 .ARM.Collect$$libshutdown$$00000002 c_w.l(libshutdown2.o) - 0x0800018c 0x0800018c 0x00000000 Code RO 4056 .ARM.Collect$$libshutdown$$00000004 c_w.l(libshutdown2.o) - 0x0800018c 0x0800018c 0x00000000 Code RO 4058 .ARM.Collect$$libshutdown$$00000006 c_w.l(libshutdown2.o) - 0x0800018c 0x0800018c 0x00000000 Code RO 4061 .ARM.Collect$$libshutdown$$00000009 c_w.l(libshutdown2.o) - 0x0800018c 0x0800018c 0x00000000 Code RO 4064 .ARM.Collect$$libshutdown$$0000000C c_w.l(libshutdown2.o) - 0x0800018c 0x0800018c 0x00000000 Code RO 4066 .ARM.Collect$$libshutdown$$0000000E c_w.l(libshutdown2.o) - 0x0800018c 0x0800018c 0x00000000 Code RO 4069 .ARM.Collect$$libshutdown$$00000011 c_w.l(libshutdown2.o) - 0x0800018c 0x0800018c 0x00000002 Code RO 4070 .ARM.Collect$$libshutdown$$00000012 c_w.l(libshutdown2.o) - 0x0800018e 0x0800018e 0x00000000 Code RO 3881 .ARM.Collect$$rtentry$$00000000 c_w.l(__rtentry.o) - 0x0800018e 0x0800018e 0x00000000 Code RO 3913 .ARM.Collect$$rtentry$$00000002 c_w.l(__rtentry2.o) - 0x0800018e 0x0800018e 0x00000006 Code RO 3925 .ARM.Collect$$rtentry$$00000004 c_w.l(__rtentry4.o) - 0x08000194 0x08000194 0x00000000 Code RO 3915 .ARM.Collect$$rtentry$$00000009 c_w.l(__rtentry2.o) - 0x08000194 0x08000194 0x00000004 Code RO 3916 .ARM.Collect$$rtentry$$0000000A c_w.l(__rtentry2.o) - 0x08000198 0x08000198 0x00000008 Code RO 3917 .ARM.Collect$$rtentry$$0000000B c_w.l(__rtentry2.o) - 0x080001a0 0x080001a0 0x00000008 Code RO 3919 .ARM.Collect$$rtentry$$0000000D c_w.l(__rtentry2.o) - 0x080001a8 0x080001a8 0x00000002 Code RO 3882 .ARM.Collect$$rtexit$$00000000 c_w.l(rtexit.o) - 0x080001aa 0x080001aa 0x00000000 Code RO 3928 .ARM.Collect$$rtexit$$00000002 c_w.l(rtexit2.o) - 0x080001aa 0x080001aa 0x00000004 Code RO 3929 .ARM.Collect$$rtexit$$00000003 c_w.l(rtexit2.o) - 0x080001ae 0x080001ae 0x00000006 Code RO 3930 .ARM.Collect$$rtexit$$00000004 c_w.l(rtexit2.o) - 0x080001b4 0x080001b4 0x0000001c Code RO 922 .emb_text rtx_conf_cm.o - 0x080001d0 0x080001d0 0x00000130 Code RO 3759 .emb_text RTX_CM3.lib(hal_cm3.o) - 0x08000300 0x08000300 0x00000040 Code RO 2511 .text startup_stm32f10x_md.o - 0x08000340 0x08000340 0x00000008 Code RO 3774 .text c_w.l(libspace.o) - 0x08000348 0x08000348 0x00000028 Code RO 3781 .text c_w.l(noretval__2sprintf.o) - 0x08000370 0x08000370 0x0000004e Code RO 3785 .text c_w.l(_printf_pad.o) - 0x080003be 0x080003be 0x00000052 Code RO 3787 .text c_w.l(_printf_str.o) - 0x08000410 0x08000410 0x00000078 Code RO 3789 .text c_w.l(_printf_dec.o) - 0x08000488 0x08000488 0x00000138 Code RO 3803 .text c_w.l(__printf_flags_wp.o) - 0x080005c0 0x080005c0 0x00000012 Code RO 3815 .text c_w.l(exit.o) - 0x080005d2 0x080005d2 0x00000048 Code RO 3817 .text c_w.l(strcpy.o) - 0x0800061a 0x0800061a 0x0000003e Code RO 3819 .text c_w.l(strlen.o) - 0x08000658 0x08000658 0x00000080 Code RO 3821 .text c_w.l(strcmpv7m.o) - 0x080006d8 0x080006d8 0x00000006 Code RO 3823 .text c_w.l(heapauxi.o) - 0x080006de 0x080006de 0x000000b2 Code RO 3888 .text c_w.l(_printf_intcommon.o) - 0x08000790 0x08000790 0x0000041e Code RO 3890 .text c_w.l(_printf_fp_dec.o) - 0x08000bae 0x08000bae 0x00000002 PAD - 0x08000bb0 0x08000bb0 0x00000030 Code RO 3892 .text c_w.l(_printf_char_common.o) - 0x08000be0 0x08000be0 0x0000000a Code RO 3894 .text c_w.l(_sputc.o) - 0x08000bea 0x08000bea 0x0000002c Code RO 3896 .text c_w.l(_printf_char.o) - 0x08000c16 0x08000c16 0x0000000a Code RO 3941 .text c_w.l(rt_locale_twolibspace.o) - 0x08000c20 0x08000c20 0x0000008a Code RO 3943 .text c_w.l(lludiv10.o) - 0x08000caa 0x08000caa 0x00000002 PAD - 0x08000cac 0x08000cac 0x00000080 Code RO 3945 .text c_w.l(_printf_fp_infnan.o) - 0x08000d2c 0x08000d2c 0x000000e4 Code RO 3949 .text c_w.l(bigflt0.o) - 0x08000e10 0x08000e10 0x0000000c Code RO 3981 .text c_w.l(sys_exit.o) - 0x08000e1c 0x08000e1c 0x0000004a Code RO 3983 .text c_w.l(sys_stackheap_outer.o) - 0x08000e66 0x08000e66 0x00000002 Code RO 4042 .text c_w.l(use_no_semi.o) - 0x08000e68 0x08000e68 0x00000000 Code RO 4044 .text c_w.l(indicate_semi.o) - 0x08000e68 0x08000e68 0x0000003e Code RO 3952 CL$$btod_d2e c_w.l(btod.o) - 0x08000ea6 0x08000ea6 0x00000046 Code RO 3954 CL$$btod_d2e_denorm_low c_w.l(btod.o) - 0x08000eec 0x08000eec 0x00000060 Code RO 3953 CL$$btod_d2e_norm_op1 c_w.l(btod.o) - 0x08000f4c 0x08000f4c 0x00000338 Code RO 3962 CL$$btod_div_common c_w.l(btod.o) - 0x08001284 0x08001284 0x000000dc Code RO 3959 CL$$btod_e2e c_w.l(btod.o) - 0x08001360 0x08001360 0x0000002a Code RO 3956 CL$$btod_ediv c_w.l(btod.o) - 0x0800138a 0x0800138a 0x0000002a Code RO 3955 CL$$btod_emul c_w.l(btod.o) - 0x080013b4 0x080013b4 0x00000244 Code RO 3961 CL$$btod_mult_common c_w.l(btod.o) - 0x080015f8 0x080015f8 0x00000004 Code RO 3769 SVC_TABLE RTX_CM3.lib(svc_table.o) - 0x080015fc 0x080015fc 0x00000024 Code RO 600 i.ACCMD ws100t10.o - 0x08001620 0x08001620 0x00000044 Code RO 601 i.ACCtrl ws100t10.o - 0x08001664 0x08001664 0x00000010 Code RO 602 i.AC_CTRL_Init ws100t10.o - 0x08001674 0x08001674 0x000000e8 Code RO 509 i.AD7190_Init ad7190.o - 0x0800175c 0x0800175c 0x00000130 Code RO 510 i.AD7190_ReadData ad7190.o - 0x0800188c 0x0800188c 0x0000002e Code RO 511 i.AD7190_ReadRegister ad7190.o - 0x080018ba 0x080018ba 0x0000001a Code RO 512 i.AD7190_ReadRegisterOnce ad7190.o - 0x080018d4 0x080018d4 0x00000504 Code RO 513 i.AD7190_Run ad7190.o - 0x08001dd8 0x08001dd8 0x00000030 Code RO 514 i.AD7190_WaitForReady ad7190.o - 0x08001e08 0x08001e08 0x00000024 Code RO 515 i.AD7190_WriteRegister ad7190.o - 0x08001e2c 0x08001e2c 0x00000014 Code RO 516 i.AD7190_WriteRegisterOnce ad7190.o - 0x08001e40 0x08001e40 0x00000060 Code RO 735 i.BIOS_TIM2_TIMER_Init usarthmi.o - 0x08001ea0 0x08001ea0 0x000000a0 Code RO 736 i.BIOS_USART1_Init usarthmi.o - 0x08001f40 0x08001f40 0x0000006c Code RO 341 i.BIOS_USART2_Init usart.o - 0x08001fac 0x08001fac 0x00000050 Code RO 737 i.DataPrint usarthmi.o - 0x08001ffc 0x08001ffc 0x0000000c Code RO 738 i.DataRec usarthmi.o - 0x08002008 0x08002008 0x00001598 Code RO 854 i.DataUnpack hmi.o - 0x080035a0 0x080035a0 0x0000014c Code RO 855 i.FM24DataCRC hmi.o - 0x080036ec 0x080036ec 0x00000008 Code RO 399 i.FM24Init fm24.o - 0x080036f4 0x080036f4 0x0000005c Code RO 400 i.FM24_Read fm24.o - 0x08003750 0x08003750 0x00000048 Code RO 401 i.FM24_Write fm24.o - 0x08003798 0x08003798 0x0000002c Code RO 6 i.GPIO_InPutset bios.o - 0x080037c4 0x080037c4 0x00000116 Code RO 1271 i.GPIO_Init stm32f10x_gpio.o - 0x080038da 0x080038da 0x00000002 PAD - 0x080038dc 0x080038dc 0x00000090 Code RO 1273 i.GPIO_PinRemapConfig stm32f10x_gpio.o - 0x0800396c 0x0800396c 0x00000012 Code RO 1275 i.GPIO_ReadInputDataBit stm32f10x_gpio.o - 0x0800397e 0x0800397e 0x00000004 Code RO 1278 i.GPIO_ResetBits stm32f10x_gpio.o - 0x08003982 0x08003982 0x00000004 Code RO 1279 i.GPIO_SetBits stm32f10x_gpio.o - 0x08003986 0x08003986 0x00000002 PAD - 0x08003988 0x08003988 0x00000014 Code RO 856 i.HMICMDInit hmi.o - 0x0800399c 0x0800399c 0x0000024c Code RO 603 i.HeatPID_Task ws100t10.o - 0x08003be8 0x08003be8 0x00000010 Code RO 604 i.HeatTask_Init ws100t10.o - 0x08003bf8 0x08003bf8 0x00000014 Code RO 605 i.HeatTask_Socket ws100t10.o - 0x08003c0c 0x08003c0c 0x0000003c Code RO 152 i.I2C2_ACK i2c.o - 0x08003c48 0x08003c48 0x00000040 Code RO 153 i.I2C2_Init i2c.o - 0x08003c88 0x08003c88 0x0000003c Code RO 154 i.I2C2_NACK i2c.o - 0x08003cc4 0x08003cc4 0x00000064 Code RO 155 i.I2C2_ReadByte i2c.o - 0x08003d28 0x08003d28 0x00000068 Code RO 156 i.I2C2_SendByte i2c.o - 0x08003d90 0x08003d90 0x0000003c Code RO 157 i.I2C2_Start i2c.o - 0x08003dcc 0x08003dcc 0x00000038 Code RO 158 i.I2C2_Stop i2c.o - 0x08003e04 0x08003e04 0x00000064 Code RO 159 i.I2C2_Wait_ACK i2c.o - 0x08003e68 0x08003e68 0x00000040 Code RO 7 i.InstrumentTypeRead bios.o - 0x08003ea8 0x08003ea8 0x00000080 Code RO 678 i.MAX6675_ConvertTemperature max6675.o - 0x08003f28 0x08003f28 0x00000068 Code RO 679 i.MAX6675_Init max6675.o - 0x08003f90 0x08003f90 0x00000058 Code RO 680 i.MAX6675_ReadData max6675.o - 0x08003fe8 0x08003fe8 0x00001318 Code RO 857 i.Moisturing hmi.o - 0x08005300 0x08005300 0x00000010 Code RO 858 i.MoisturingRun hmi.o - 0x08005310 0x08005310 0x00000028 Code RO 607 i.Pump_OutCmd ws100t10.o - 0x08005338 0x08005338 0x00000020 Code RO 1395 i.RCC_APB2PeriphClockCmd stm32f10x_rcc.o - 0x08005358 0x08005358 0x00000084 Code RO 281 i.SPI1_Configuration spi.o - 0x080053dc 0x080053dc 0x00000038 Code RO 282 i.SPI1_ReadWrite spi.o - 0x08005414 0x08005414 0x00000018 Code RO 1608 i.SPI_Cmd stm32f10x_spi.o - 0x0800542c 0x0800542c 0x00000012 Code RO 1616 i.SPI_I2S_GetFlagStatus stm32f10x_spi.o - 0x0800543e 0x0800543e 0x00000006 Code RO 1619 i.SPI_I2S_ReceiveData stm32f10x_spi.o - 0x08005444 0x08005444 0x00000004 Code RO 1620 i.SPI_I2S_SendData stm32f10x_spi.o - 0x08005448 0x08005448 0x0000003c Code RO 1621 i.SPI_Init stm32f10x_spi.o - 0x08005484 0x08005484 0x0000001c Code RO 9 i.SafeCheck bios.o - 0x080054a0 0x080054a0 0x00000008 Code RO 2518 i.SetSysClock system_stm32f10x.o - 0x080054a8 0x080054a8 0x000000e0 Code RO 2519 i.SetSysClockTo72 system_stm32f10x.o - 0x08005588 0x08005588 0x00000060 Code RO 2521 i.SystemInit system_stm32f10x.o - 0x080055e8 0x080055e8 0x00000088 Code RO 739 i.TIM2_IRQHandler usarthmi.o - 0x08005670 0x08005670 0x00000018 Code RO 740 i.UART1_Received usarthmi.o - 0x08005688 0x08005688 0x00000020 Code RO 741 i.UART1_Send usarthmi.o - 0x080056a8 0x080056a8 0x00000094 Code RO 742 i.USART1_IRQHandler usarthmi.o - 0x0800573c 0x0800573c 0x00000034 Code RO 345 i.USART2Print usart.o - 0x08005770 0x08005770 0x00000018 Code RO 346 i.USART2_Send usart.o - 0x08005788 0x08005788 0x00000020 Code RO 743 i.USARTHMIInit usarthmi.o - 0x080057a8 0x080057a8 0x0000004a Code RO 2329 i.USART_ITConfig stm32f10x_usart.o - 0x080057f2 0x080057f2 0x00000002 PAD - 0x080057f4 0x080057f4 0x00000098 Code RO 168 i.WS100T10_Ctrl i2c.o - 0x0800588c 0x0800588c 0x0000008c Code RO 169 i.WS100T10_Init i2c.o - 0x08005918 0x08005918 0x00000028 Code RO 3979 i.__ARM_fpclassify m_ws.l(fpclassify.o) - 0x08005940 0x08005940 0x00000022 Code RO 744 i.__NVIC_EnableIRQ usarthmi.o - 0x08005962 0x08005962 0x00000046 Code RO 3658 i._init_box RTX_CM3.lib(rt_membox.o) - 0x080059a8 0x080059a8 0x0000000e Code RO 3801 i._is_digit c_w.l(__printf_wp.o) - 0x080059b6 0x080059b6 0x00000002 PAD - 0x080059b8 0x080059b8 0x00000020 Code RO 924 i._mutex_acquire rtx_conf_cm.o - 0x080059d8 0x080059d8 0x0000001c Code RO 926 i._mutex_release rtx_conf_cm.o - 0x080059f4 0x080059f4 0x0000003c Code RO 608 i._task_ACCtrl ws100t10.o - 0x08005a30 0x08005a30 0x00000030 Code RO 3711 i.dbg_init RTX_CM3.lib(hal_cm.o) - 0x08005a60 0x08005a60 0x00000020 Code RO 3712 i.dbg_task_notify RTX_CM3.lib(hal_cm.o) - 0x08005a80 0x08005a80 0x00000010 Code RO 3713 i.dbg_task_switch RTX_CM3.lib(hal_cm.o) - 0x08005a90 0x08005a90 0x00000082 Code RO 124 i.delay_us delay.o - 0x08005b12 0x08005b12 0x0000002c Code RO 2565 i.isrMessagePut RTX_CM3.lib(rt_cmsis.o) - 0x08005b3e 0x08005b3e 0x00000028 Code RO 2566 i.isrSemaphoreRelease RTX_CM3.lib(rt_cmsis.o) - 0x08005b66 0x08005b66 0x0000000e Code RO 3514 i.isr_mbx_send RTX_CM3.lib(rt_mailbox.o) - 0x08005b74 0x08005b74 0x00000010 Code RO 3561 i.isr_sem_send RTX_CM3.lib(rt_semaphore.o) - 0x08005b84 0x08005b84 0x0000000e Code RO 681 i.kalman_filter_init max6675.o - 0x08005b92 0x08005b92 0x0000000e Code RO 517 i.kalman_filter_init2 ad7190.o - 0x08005ba0 0x08005ba0 0x0000005a Code RO 682 i.kalman_filter_update max6675.o - 0x08005bfa 0x08005bfa 0x0000005a Code RO 518 i.kalman_filter_update2 ad7190.o - 0x08005c54 0x08005c54 0x0000019c Code RO 825 i.main moisture.o - 0x08005df0 0x08005df0 0x00000018 Code RO 2568 i.osDelay RTX_CM3.lib(rt_cmsis.o) - 0x08005e08 0x08005e08 0x00000024 Code RO 2569 i.osKernelInitialize RTX_CM3.lib(rt_cmsis.o) - 0x08005e2c 0x08005e2c 0x0000006c Code RO 2571 i.osKernelStart RTX_CM3.lib(rt_cmsis.o) - 0x08005e98 0x08005e98 0x00000018 Code RO 2572 i.osKernelSysTick RTX_CM3.lib(rt_cmsis.o) - 0x08005eb0 0x08005eb0 0x0000002c Code RO 2582 i.osMutexCreate RTX_CM3.lib(rt_cmsis.o) - 0x08005edc 0x08005edc 0x00000018 Code RO 2584 i.osMutexRelease RTX_CM3.lib(rt_cmsis.o) - 0x08005ef4 0x08005ef4 0x00000018 Code RO 2585 i.osMutexWait RTX_CM3.lib(rt_cmsis.o) - 0x08005f0c 0x08005f0c 0x0000002c Code RO 2590 i.osSemaphoreCreate RTX_CM3.lib(rt_cmsis.o) - 0x08005f38 0x08005f38 0x00000018 Code RO 2592 i.osSemaphoreRelease RTX_CM3.lib(rt_cmsis.o) - 0x08005f50 0x08005f50 0x00000018 Code RO 2593 i.osSemaphoreWait RTX_CM3.lib(rt_cmsis.o) - 0x08005f68 0x08005f68 0x0000002c Code RO 2597 i.osThreadCreate RTX_CM3.lib(rt_cmsis.o) - 0x08005f94 0x08005f94 0x00000018 Code RO 2598 i.osThreadExit RTX_CM3.lib(rt_cmsis.o) - 0x08005fac 0x08005fac 0x00000018 Code RO 2599 i.osThreadGetId RTX_CM3.lib(rt_cmsis.o) - 0x08005fc4 0x08005fc4 0x00000018 Code RO 2602 i.osThreadTerminate RTX_CM3.lib(rt_cmsis.o) - 0x08005fdc 0x08005fdc 0x00000022 Code RO 927 i.os_error rtx_conf_cm.o - 0x08005ffe 0x08005ffe 0x00000004 Code RO 928 i.os_idle_demon rtx_conf_cm.o - 0x08006002 0x08006002 0x00000002 PAD - 0x08006004 0x08006004 0x00000028 Code RO 3305 i.os_tick_init RTX_CM3.lib(rt_system.o) - 0x0800602c 0x0800602c 0x00000002 Code RO 3306 i.os_tick_irqack RTX_CM3.lib(rt_system.o) - 0x0800602e 0x0800602e 0x00000002 PAD - 0x08006030 0x08006030 0x00000010 Code RO 3307 i.os_tick_ovf RTX_CM3.lib(rt_system.o) - 0x08006040 0x08006040 0x00000014 Code RO 3308 i.os_tick_val RTX_CM3.lib(rt_system.o) - 0x08006054 0x08006054 0x0000001a Code RO 3659 i.rt_alloc_box RTX_CM3.lib(rt_membox.o) - 0x0800606e 0x0800606e 0x0000003e Code RO 3687 i.rt_alloc_mem RTX_CM3.lib(rt_memory.o) - 0x080060ac 0x080060ac 0x00000038 Code RO 3186 i.rt_block RTX_CM3.lib(rt_task.o) - 0x080060e4 0x080060e4 0x00000048 Code RO 3636 i.rt_chk_robin RTX_CM3.lib(rt_robin.o) - 0x0800612c 0x0800612c 0x00000070 Code RO 3437 i.rt_dec_dly RTX_CM3.lib(rt_list.o) - 0x0800619c 0x0800619c 0x00000044 Code RO 3187 i.rt_dispatch RTX_CM3.lib(rt_task.o) - 0x080061e0 0x080061e0 0x00000006 Code RO 3603 i.rt_dly_wait RTX_CM3.lib(rt_time.o) - 0x080061e6 0x080061e6 0x00000002 PAD - 0x080061e8 0x080061e8 0x00000050 Code RO 3398 i.rt_evt_psh RTX_CM3.lib(rt_event.o) - 0x08006238 0x08006238 0x0000002c Code RO 3660 i.rt_free_box RTX_CM3.lib(rt_membox.o) - 0x08006264 0x08006264 0x00000028 Code RO 3688 i.rt_free_mem RTX_CM3.lib(rt_memory.o) - 0x0800628c 0x0800628c 0x00000028 Code RO 3438 i.rt_get_first RTX_CM3.lib(rt_list.o) - 0x080062b4 0x080062b4 0x00000008 Code RO 2614 i.rt_id2obj RTX_CM3.lib(rt_cmsis.o) - 0x080062bc 0x080062bc 0x00000048 Code RO 3188 i.rt_init_context RTX_CM3.lib(rt_task.o) - 0x08006304 0x08006304 0x0000001a Code RO 3689 i.rt_init_mem RTX_CM3.lib(rt_memory.o) - 0x0800631e 0x0800631e 0x00000002 PAD - 0x08006320 0x08006320 0x00000018 Code RO 3637 i.rt_init_robin RTX_CM3.lib(rt_robin.o) - 0x08006338 0x08006338 0x00000080 Code RO 3714 i.rt_init_stack RTX_CM3.lib(hal_cm.o) - 0x080063b8 0x080063b8 0x00000008 Code RO 3515 i.rt_mbx_check RTX_CM3.lib(rt_mailbox.o) - 0x080063c0 0x080063c0 0x0000001a Code RO 3516 i.rt_mbx_init RTX_CM3.lib(rt_mailbox.o) - 0x080063da 0x080063da 0x00000002 PAD - 0x080063dc 0x080063dc 0x000000f0 Code RO 3517 i.rt_mbx_psh RTX_CM3.lib(rt_mailbox.o) - 0x080064cc 0x080064cc 0x00000044 Code RO 2615 i.rt_ms2tick RTX_CM3.lib(rt_cmsis.o) - 0x08006510 0x08006510 0x00000010 Code RO 3271 i.rt_mut_init RTX_CM3.lib(rt_mutex.o) - 0x08006520 0x08006520 0x000000d8 Code RO 3272 i.rt_mut_release RTX_CM3.lib(rt_mutex.o) - 0x080065f8 0x080065f8 0x00000078 Code RO 3273 i.rt_mut_wait RTX_CM3.lib(rt_mutex.o) - 0x08006670 0x08006670 0x0000007c Code RO 3309 i.rt_pop_req RTX_CM3.lib(rt_system.o) - 0x080066ec 0x080066ec 0x00000020 Code RO 3310 i.rt_psh_req RTX_CM3.lib(rt_system.o) - 0x0800670c 0x0800670c 0x0000005c Code RO 3440 i.rt_psq_enq RTX_CM3.lib(rt_list.o) - 0x08006768 0x08006768 0x00000048 Code RO 3441 i.rt_put_dly RTX_CM3.lib(rt_list.o) - 0x080067b0 0x080067b0 0x00000036 Code RO 3442 i.rt_put_prio RTX_CM3.lib(rt_list.o) - 0x080067e6 0x080067e6 0x00000002 PAD - 0x080067e8 0x080067e8 0x00000014 Code RO 3443 i.rt_put_rdy_first RTX_CM3.lib(rt_list.o) - 0x080067fc 0x080067fc 0x00000034 Code RO 3444 i.rt_resort_prio RTX_CM3.lib(rt_list.o) - 0x08006830 0x08006830 0x00000006 Code RO 3715 i.rt_ret_val RTX_CM3.lib(hal_cm.o) - 0x08006836 0x08006836 0x00000008 Code RO 3716 i.rt_ret_val2 RTX_CM3.lib(hal_cm.o) - 0x0800683e 0x0800683e 0x00000028 Code RO 3445 i.rt_rmv_dly RTX_CM3.lib(rt_list.o) - 0x08006866 0x08006866 0x00000002 PAD - 0x08006868 0x08006868 0x00000030 Code RO 3446 i.rt_rmv_list RTX_CM3.lib(rt_list.o) - 0x08006898 0x08006898 0x0000000c Code RO 3563 i.rt_sem_init RTX_CM3.lib(rt_semaphore.o) - 0x080068a4 0x080068a4 0x00000034 Code RO 3564 i.rt_sem_psh RTX_CM3.lib(rt_semaphore.o) - 0x080068d8 0x080068d8 0x0000002a Code RO 3565 i.rt_sem_send RTX_CM3.lib(rt_semaphore.o) - 0x08006902 0x08006902 0x00000002 PAD - 0x08006904 0x08006904 0x00000040 Code RO 3566 i.rt_sem_wait RTX_CM3.lib(rt_semaphore.o) - 0x08006944 0x08006944 0x00000024 Code RO 3312 i.rt_stk_check RTX_CM3.lib(rt_system.o) - 0x08006968 0x08006968 0x00000028 Code RO 3189 i.rt_switch_req RTX_CM3.lib(rt_task.o) - 0x08006990 0x08006990 0x000000cc Code RO 3190 i.rt_sys_init RTX_CM3.lib(rt_task.o) - 0x08006a5c 0x08006a5c 0x00000078 Code RO 3191 i.rt_sys_start RTX_CM3.lib(rt_task.o) - 0x08006ad4 0x08006ad4 0x00000040 Code RO 3314 i.rt_systick RTX_CM3.lib(rt_system.o) - 0x08006b14 0x08006b14 0x00000012 Code RO 2616 i.rt_tid2ptcb RTX_CM3.lib(rt_cmsis.o) - 0x08006b26 0x08006b26 0x00000002 PAD - 0x08006b28 0x08006b28 0x00000034 Code RO 2617 i.rt_timer_insert RTX_CM3.lib(rt_cmsis.o) - 0x08006b5c 0x08006b5c 0x00000088 Code RO 3192 i.rt_tsk_create RTX_CM3.lib(rt_task.o) - 0x08006be4 0x08006be4 0x0000017c Code RO 3193 i.rt_tsk_delete RTX_CM3.lib(rt_task.o) - 0x08006d60 0x08006d60 0x0000007c Code RO 3195 i.rt_tsk_prio RTX_CM3.lib(rt_task.o) - 0x08006ddc 0x08006ddc 0x00000010 Code RO 3196 i.rt_tsk_self RTX_CM3.lib(rt_task.o) - 0x08006dec 0x08006dec 0x00000012 Code RO 2619 i.svcDelay RTX_CM3.lib(rt_cmsis.o) - 0x08006dfe 0x08006dfe 0x00000002 PAD - 0x08006e00 0x08006e00 0x00000070 Code RO 2620 i.svcKernelInitialize RTX_CM3.lib(rt_cmsis.o) - 0x08006e70 0x08006e70 0x00000048 Code RO 2622 i.svcKernelStart RTX_CM3.lib(rt_cmsis.o) - 0x08006eb8 0x08006eb8 0x00000038 Code RO 2623 i.svcKernelSysTick RTX_CM3.lib(rt_cmsis.o) - 0x08006ef0 0x08006ef0 0x00000024 Code RO 2625 i.svcMessageCreate RTX_CM3.lib(rt_cmsis.o) - 0x08006f14 0x08006f14 0x0000001c Code RO 2628 i.svcMutexCreate RTX_CM3.lib(rt_cmsis.o) - 0x08006f30 0x08006f30 0x00000022 Code RO 2630 i.svcMutexRelease RTX_CM3.lib(rt_cmsis.o) - 0x08006f52 0x08006f52 0x0000003a Code RO 2631 i.svcMutexWait RTX_CM3.lib(rt_cmsis.o) - 0x08006f8c 0x08006f8c 0x00000024 Code RO 2633 i.svcSemaphoreCreate RTX_CM3.lib(rt_cmsis.o) - 0x08006fb0 0x08006fb0 0x00000028 Code RO 2635 i.svcSemaphoreRelease RTX_CM3.lib(rt_cmsis.o) - 0x08006fd8 0x08006fd8 0x00000032 Code RO 2636 i.svcSemaphoreWait RTX_CM3.lib(rt_cmsis.o) - 0x0800700a 0x0800700a 0x00000002 PAD - 0x0800700c 0x0800700c 0x0000006c Code RO 2640 i.svcThreadCreate RTX_CM3.lib(rt_cmsis.o) - 0x08007078 0x08007078 0x0000001c Code RO 2641 i.svcThreadGetId RTX_CM3.lib(rt_cmsis.o) - 0x08007094 0x08007094 0x00000038 Code RO 2644 i.svcThreadTerminate RTX_CM3.lib(rt_cmsis.o) - 0x080070cc 0x080070cc 0x0000005c Code RO 2655 i.sysTimerTick RTX_CM3.lib(rt_cmsis.o) - 0x08007128 0x08007128 0x0000002c Code RO 3975 locale$$code c_w.l(lc_numeric_c.o) - 0x08007154 0x08007154 0x00000062 Code RO 3827 x$fpl$d2f fz_ws.l(d2f.o) - 0x080071b6 0x080071b6 0x00000018 Code RO 3899 x$fpl$dcmpinf fz_ws.l(dcmpi.o) - 0x080071ce 0x080071ce 0x0000002e Code RO 3834 x$fpl$dflt fz_ws.l(dflt_clz.o) - 0x080071fc 0x080071fc 0x00000078 Code RO 3839 x$fpl$dleqf fz_ws.l(dleqf.o) - 0x08007274 0x08007274 0x00000154 Code RO 3841 x$fpl$dmul fz_ws.l(dmul.o) - 0x080073c8 0x080073c8 0x0000009c Code RO 3901 x$fpl$dnaninf fz_ws.l(dnaninf.o) - 0x08007464 0x08007464 0x0000000c Code RO 3903 x$fpl$dretinf fz_ws.l(dretinf.o) - 0x08007470 0x08007470 0x0000006c Code RO 3843 x$fpl$drleqf fz_ws.l(drleqf.o) - 0x080074dc 0x080074dc 0x00000056 Code RO 3845 x$fpl$f2d fz_ws.l(f2d.o) + 0x08000000 0x08000000 0x000000ec Data RO 2444 RESET startup_stm32f10x_md.o + 0x080000ec 0x080000ec 0x00000000 Code RO 3706 * .ARM.Collect$$$$00000000 mc_w.l(entry.o) + 0x080000ec 0x080000ec 0x00000004 Code RO 4016 .ARM.Collect$$$$00000001 mc_w.l(entry2.o) + 0x080000f0 0x080000f0 0x00000004 Code RO 4019 .ARM.Collect$$$$00000004 mc_w.l(entry5.o) + 0x080000f4 0x080000f4 0x00000000 Code RO 4021 .ARM.Collect$$$$00000008 mc_w.l(entry7b.o) + 0x080000f4 0x080000f4 0x00000000 Code RO 4023 .ARM.Collect$$$$0000000A mc_w.l(entry8b.o) + 0x080000f4 0x080000f4 0x00000004 Code RO 4029 .ARM.Collect$$$$0000000E mc_w.l(entry12b.o) + 0x080000f8 0x080000f8 0x00000000 Code RO 4024 .ARM.Collect$$$$0000000F mc_w.l(entry10a.o) + 0x080000f8 0x080000f8 0x00000000 Code RO 4026 .ARM.Collect$$$$00000011 mc_w.l(entry11a.o) + 0x080000f8 0x080000f8 0x00000018 Code RO 879 .ARM.Collect$$$$000000FF rtx_conf_cm.o + 0x08000110 0x08000110 0x00000004 Code RO 4017 .ARM.Collect$$$$00002712 mc_w.l(entry2.o) + 0x08000114 0x08000114 0x00000130 Code RO 3693 .emb_text RTX_CM3.lib(hal_cm3.o) + 0x08000244 0x08000244 0x00000024 Code RO 2445 .text startup_stm32f10x_md.o + 0x08000268 0x08000268 0x00000062 Code RO 3709 .text mc_w.l(uldiv.o) + 0x080002ca 0x080002ca 0x00000024 Code RO 3711 .text mc_w.l(memseta.o) + 0x080002ee 0x080002ee 0x0000000e Code RO 3713 .text mc_w.l(strlen.o) + 0x080002fc 0x080002fc 0x0000001c Code RO 3715 .text mc_w.l(strcmp.o) + 0x08000318 0x08000318 0x00000012 Code RO 3717 .text mc_w.l(strcpy.o) + 0x0800032a 0x0800032a 0x000000b0 Code RO 3980 .text mf_w.l(fadd.o) + 0x080003da 0x080003da 0x00000064 Code RO 3982 .text mf_w.l(fmul.o) + 0x0800043e 0x0800043e 0x0000007c Code RO 3984 .text mf_w.l(fdiv.o) + 0x080004ba 0x080004ba 0x0000014e Code RO 3986 .text mf_w.l(dadd.o) + 0x08000608 0x08000608 0x000000e4 Code RO 3988 .text mf_w.l(dmul.o) + 0x080006ec 0x080006ec 0x000000de Code RO 3990 .text mf_w.l(ddiv.o) + 0x080007ca 0x080007ca 0x00000012 Code RO 3992 .text mf_w.l(fflti.o) + 0x080007dc 0x080007dc 0x0000000a Code RO 3994 .text mf_w.l(ffltui.o) + 0x080007e6 0x080007e6 0x00000022 Code RO 3996 .text mf_w.l(dflti.o) + 0x08000808 0x08000808 0x0000001a Code RO 3998 .text mf_w.l(dfltui.o) + 0x08000822 0x08000822 0x00000028 Code RO 4000 .text mf_w.l(ffixui.o) + 0x0800084a 0x0800084a 0x0000003e Code RO 4002 .text mf_w.l(dfixi.o) + 0x08000888 0x08000888 0x00000026 Code RO 4004 .text mf_w.l(f2d.o) + 0x080008ae 0x080008ae 0x00000002 PAD + 0x080008b0 0x080008b0 0x00000030 Code RO 4006 .text mf_w.l(cdcmple.o) + 0x080008e0 0x080008e0 0x00000030 Code RO 4008 .text mf_w.l(cdrcmple.o) + 0x08000910 0x08000910 0x00000038 Code RO 4010 .text mf_w.l(d2f.o) + 0x08000948 0x08000948 0x00000014 Code RO 4012 .text mf_w.l(cfcmple.o) + 0x0800095c 0x0800095c 0x00000014 Code RO 4014 .text mf_w.l(cfrcmple.o) + 0x08000970 0x08000970 0x0000002c Code RO 4031 .text mc_w.l(uidiv.o) + 0x0800099c 0x0800099c 0x0000001e Code RO 4033 .text mc_w.l(llshl.o) + 0x080009ba 0x080009ba 0x00000020 Code RO 4035 .text mc_w.l(llushr.o) + 0x080009da 0x080009da 0x00000024 Code RO 4037 .text mc_w.l(llsshr.o) + 0x080009fe 0x080009fe 0x00000000 Code RO 4039 .text mc_w.l(iusefp.o) + 0x080009fe 0x080009fe 0x0000006e Code RO 4040 .text mf_w.l(fepilogue.o) + 0x08000a6c 0x08000a6c 0x000000ba Code RO 4042 .text mf_w.l(depilogue.o) + 0x08000b26 0x08000b26 0x00000030 Code RO 4044 .text mf_w.l(dfixul.o) + 0x08000b56 0x08000b56 0x00000002 PAD + 0x08000b58 0x08000b58 0x00000024 Code RO 4046 .text mc_w.l(init.o) + 0x08000b7c 0x08000b7c 0x0000003a Code RO 4056 .text mc_w.l(__dczerorl.o) + 0x08000bb6 0x08000bb6 0x00000002 PAD + 0x08000bb8 0x08000bb8 0x00000004 Code RO 3703 SVC_TABLE RTX_CM3.lib(svc_table.o) + 0x08000bbc 0x08000bbc 0x00000024 Code RO 557 i.ACCMD ws100t10.o + 0x08000be0 0x08000be0 0x00000044 Code RO 558 i.ACCtrl ws100t10.o + 0x08000c24 0x08000c24 0x00000010 Code RO 559 i.AC_CTRL_Init ws100t10.o + 0x08000c34 0x08000c34 0x00000098 Code RO 438 i.AD7190_Init ad7190.o + 0x08000ccc 0x08000ccc 0x00000144 Code RO 439 i.AD7190_ReadData ad7190.o + 0x08000e10 0x08000e10 0x0000002e Code RO 440 i.AD7190_ReadRegister ad7190.o + 0x08000e3e 0x08000e3e 0x0000001a Code RO 441 i.AD7190_ReadRegisterOnce ad7190.o + 0x08000e58 0x08000e58 0x000007a8 Code RO 442 i.AD7190_Run ad7190.o + 0x08001600 0x08001600 0x00000030 Code RO 443 i.AD7190_WaitForReady ad7190.o + 0x08001630 0x08001630 0x00000024 Code RO 444 i.AD7190_WriteRegister ad7190.o + 0x08001654 0x08001654 0x00000014 Code RO 445 i.AD7190_WriteRegisterOnce ad7190.o + 0x08001668 0x08001668 0x00000060 Code RO 691 i.BIOS_TIM2_TIMER_Init usarthmi.o + 0x080016c8 0x080016c8 0x000000a0 Code RO 692 i.BIOS_USART1_Init usarthmi.o + 0x08001768 0x08001768 0x0000006c Code RO 341 i.BIOS_USART2_Init usart.o + 0x080017d4 0x080017d4 0x00000050 Code RO 693 i.DataPrint usarthmi.o + 0x08001824 0x08001824 0x0000000c Code RO 694 i.DataRec usarthmi.o + 0x08001830 0x08001830 0x00001a30 Code RO 814 i.DataUnpack hmi.o + 0x08003260 0x08003260 0x00000160 Code RO 815 i.FM24DataCRC hmi.o + 0x080033c0 0x080033c0 0x00000008 Code RO 399 i.FM24Init fm24.o + 0x080033c8 0x080033c8 0x0000005c Code RO 400 i.FM24_Read fm24.o + 0x08003424 0x08003424 0x00000048 Code RO 401 i.FM24_Write fm24.o + 0x0800346c 0x0800346c 0x0000002c Code RO 6 i.GPIO_InPutset bios.o + 0x08003498 0x08003498 0x00000116 Code RO 1205 i.GPIO_Init stm32f10x_gpio.o + 0x080035ae 0x080035ae 0x00000002 PAD + 0x080035b0 0x080035b0 0x00000090 Code RO 1207 i.GPIO_PinRemapConfig stm32f10x_gpio.o + 0x08003640 0x08003640 0x00000012 Code RO 1209 i.GPIO_ReadInputDataBit stm32f10x_gpio.o + 0x08003652 0x08003652 0x00000004 Code RO 1212 i.GPIO_ResetBits stm32f10x_gpio.o + 0x08003656 0x08003656 0x00000004 Code RO 1213 i.GPIO_SetBits stm32f10x_gpio.o + 0x0800365a 0x0800365a 0x00000002 PAD + 0x0800365c 0x0800365c 0x00000014 Code RO 816 i.HMICMDInit hmi.o + 0x08003670 0x08003670 0x0000024c Code RO 560 i.HeatPID_Task ws100t10.o + 0x080038bc 0x080038bc 0x00000010 Code RO 561 i.HeatTask_Init ws100t10.o + 0x080038cc 0x080038cc 0x00000014 Code RO 562 i.HeatTask_Socket ws100t10.o + 0x080038e0 0x080038e0 0x0000003c Code RO 152 i.I2C2_ACK i2c.o + 0x0800391c 0x0800391c 0x00000040 Code RO 153 i.I2C2_Init i2c.o + 0x0800395c 0x0800395c 0x0000003c Code RO 154 i.I2C2_NACK i2c.o + 0x08003998 0x08003998 0x00000064 Code RO 155 i.I2C2_ReadByte i2c.o + 0x080039fc 0x080039fc 0x00000068 Code RO 156 i.I2C2_SendByte i2c.o + 0x08003a64 0x08003a64 0x0000003c Code RO 157 i.I2C2_Start i2c.o + 0x08003aa0 0x08003aa0 0x00000038 Code RO 158 i.I2C2_Stop i2c.o + 0x08003ad8 0x08003ad8 0x00000064 Code RO 159 i.I2C2_Wait_ACK i2c.o + 0x08003b3c 0x08003b3c 0x00000040 Code RO 7 i.InstrumentTypeRead bios.o + 0x08003b7c 0x08003b7c 0x00000080 Code RO 634 i.MAX6675_ConvertTemperature max6675.o + 0x08003bfc 0x08003bfc 0x00000068 Code RO 635 i.MAX6675_Init max6675.o + 0x08003c64 0x08003c64 0x00000058 Code RO 636 i.MAX6675_ReadData max6675.o + 0x08003cbc 0x08003cbc 0x000019f0 Code RO 817 i.Moisturing hmi.o + 0x080056ac 0x080056ac 0x00000010 Code RO 818 i.MoisturingRun hmi.o + 0x080056bc 0x080056bc 0x00000028 Code RO 564 i.Pump_OutCmd ws100t10.o + 0x080056e4 0x080056e4 0x00000020 Code RO 1329 i.RCC_APB2PeriphClockCmd stm32f10x_rcc.o + 0x08005704 0x08005704 0x0000007c Code RO 281 i.SPI1_Configuration spi.o + 0x08005780 0x08005780 0x0000007c Code RO 282 i.SPI1_ReadWrite spi.o + 0x080057fc 0x080057fc 0x00000018 Code RO 1542 i.SPI_Cmd stm32f10x_spi.o + 0x08005814 0x08005814 0x00000012 Code RO 1550 i.SPI_I2S_GetFlagStatus stm32f10x_spi.o + 0x08005826 0x08005826 0x00000006 Code RO 1553 i.SPI_I2S_ReceiveData stm32f10x_spi.o + 0x0800582c 0x0800582c 0x00000004 Code RO 1554 i.SPI_I2S_SendData stm32f10x_spi.o + 0x08005830 0x08005830 0x0000003c Code RO 1555 i.SPI_Init stm32f10x_spi.o + 0x0800586c 0x0800586c 0x0000001c Code RO 9 i.SafeCheck bios.o + 0x08005888 0x08005888 0x00000008 Code RO 2452 i.SetSysClock system_stm32f10x.o + 0x08005890 0x08005890 0x000000e0 Code RO 2453 i.SetSysClockTo72 system_stm32f10x.o + 0x08005970 0x08005970 0x00000060 Code RO 2455 i.SystemInit system_stm32f10x.o + 0x080059d0 0x080059d0 0x00000088 Code RO 695 i.TIM2_IRQHandler usarthmi.o + 0x08005a58 0x08005a58 0x00000018 Code RO 696 i.UART1_Received usarthmi.o + 0x08005a70 0x08005a70 0x00000020 Code RO 697 i.UART1_Send usarthmi.o + 0x08005a90 0x08005a90 0x00000094 Code RO 698 i.USART1_IRQHandler usarthmi.o + 0x08005b24 0x08005b24 0x00000034 Code RO 345 i.USART2Print usart.o + 0x08005b58 0x08005b58 0x00000018 Code RO 346 i.USART2_Send usart.o + 0x08005b70 0x08005b70 0x00000020 Code RO 699 i.USARTHMIInit usarthmi.o + 0x08005b90 0x08005b90 0x0000004a Code RO 2263 i.USART_ITConfig stm32f10x_usart.o + 0x08005bda 0x08005bda 0x00000002 PAD + 0x08005bdc 0x08005bdc 0x00000098 Code RO 168 i.WS100T10_Ctrl i2c.o + 0x08005c74 0x08005c74 0x0000008c Code RO 169 i.WS100T10_Init i2c.o + 0x08005d00 0x08005d00 0x00000028 Code RO 3954 i.__0sprintf mc_w.l(printfa.o) + 0x08005d28 0x08005d28 0x00000022 Code RO 700 i.__NVIC_EnableIRQ usarthmi.o + 0x08005d4a 0x08005d4a 0x0000000e Code RO 4050 i.__scatterload_copy mc_w.l(handlers.o) + 0x08005d58 0x08005d58 0x00000002 Code RO 4051 i.__scatterload_null mc_w.l(handlers.o) + 0x08005d5a 0x08005d5a 0x0000000e Code RO 4052 i.__scatterload_zeroinit mc_w.l(handlers.o) + 0x08005d68 0x08005d68 0x00000184 Code RO 3959 i._fp_digits mc_w.l(printfa.o) + 0x08005eec 0x08005eec 0x00000046 Code RO 3571 i._init_box RTX_CM3.lib(rt_membox.o) + 0x08005f32 0x08005f32 0x00000002 PAD + 0x08005f34 0x08005f34 0x000006b4 Code RO 3960 i._printf_core mc_w.l(printfa.o) + 0x080065e8 0x080065e8 0x00000024 Code RO 3961 i._printf_post_padding mc_w.l(printfa.o) + 0x0800660c 0x0800660c 0x0000002e Code RO 3962 i._printf_pre_padding mc_w.l(printfa.o) + 0x0800663a 0x0800663a 0x0000000a Code RO 3964 i._sputc mc_w.l(printfa.o) + 0x08006644 0x08006644 0x0000003c Code RO 565 i._task_ACCtrl ws100t10.o + 0x08006680 0x08006680 0x00000030 Code RO 3624 i.dbg_init RTX_CM3.lib(hal_cm.o) + 0x080066b0 0x080066b0 0x00000020 Code RO 3625 i.dbg_task_notify RTX_CM3.lib(hal_cm.o) + 0x080066d0 0x080066d0 0x00000010 Code RO 3626 i.dbg_task_switch RTX_CM3.lib(hal_cm.o) + 0x080066e0 0x080066e0 0x00000082 Code RO 124 i.delay_us delay.o + 0x08006762 0x08006762 0x0000002c Code RO 2499 i.isrMessagePut RTX_CM3.lib(rt_cmsis.o) + 0x0800678e 0x0800678e 0x00000028 Code RO 2500 i.isrSemaphoreRelease RTX_CM3.lib(rt_cmsis.o) + 0x080067b6 0x080067b6 0x0000000e Code RO 3418 i.isr_mbx_send RTX_CM3.lib(rt_mailbox.o) + 0x080067c4 0x080067c4 0x00000010 Code RO 3465 i.isr_sem_send RTX_CM3.lib(rt_semaphore.o) + 0x080067d4 0x080067d4 0x0000000e Code RO 637 i.kalman_filter_init max6675.o + 0x080067e2 0x080067e2 0x0000003c Code RO 449 i.kalman_filter_init2 ad7190.o + 0x0800681e 0x0800681e 0x0000005a Code RO 638 i.kalman_filter_update max6675.o + 0x08006878 0x08006878 0x000000bc Code RO 450 i.kalman_filter_update2 ad7190.o + 0x08006934 0x08006934 0x00000188 Code RO 781 i.main moisture.o + 0x08006abc 0x08006abc 0x00000018 Code RO 2502 i.osDelay RTX_CM3.lib(rt_cmsis.o) + 0x08006ad4 0x08006ad4 0x00000024 Code RO 2503 i.osKernelInitialize RTX_CM3.lib(rt_cmsis.o) + 0x08006af8 0x08006af8 0x0000006c Code RO 2505 i.osKernelStart RTX_CM3.lib(rt_cmsis.o) + 0x08006b64 0x08006b64 0x00000018 Code RO 2506 i.osKernelSysTick RTX_CM3.lib(rt_cmsis.o) + 0x08006b7c 0x08006b7c 0x0000002c Code RO 2516 i.osMutexCreate RTX_CM3.lib(rt_cmsis.o) + 0x08006ba8 0x08006ba8 0x00000018 Code RO 2518 i.osMutexRelease RTX_CM3.lib(rt_cmsis.o) + 0x08006bc0 0x08006bc0 0x00000018 Code RO 2519 i.osMutexWait RTX_CM3.lib(rt_cmsis.o) + 0x08006bd8 0x08006bd8 0x0000002c Code RO 2524 i.osSemaphoreCreate RTX_CM3.lib(rt_cmsis.o) + 0x08006c04 0x08006c04 0x00000018 Code RO 2526 i.osSemaphoreRelease RTX_CM3.lib(rt_cmsis.o) + 0x08006c1c 0x08006c1c 0x00000018 Code RO 2527 i.osSemaphoreWait RTX_CM3.lib(rt_cmsis.o) + 0x08006c34 0x08006c34 0x0000002c Code RO 2531 i.osThreadCreate RTX_CM3.lib(rt_cmsis.o) + 0x08006c60 0x08006c60 0x00000018 Code RO 2532 i.osThreadExit RTX_CM3.lib(rt_cmsis.o) + 0x08006c78 0x08006c78 0x00000018 Code RO 2533 i.osThreadGetId RTX_CM3.lib(rt_cmsis.o) + 0x08006c90 0x08006c90 0x00000018 Code RO 2536 i.osThreadTerminate RTX_CM3.lib(rt_cmsis.o) + 0x08006ca8 0x08006ca8 0x00000022 Code RO 880 i.os_error rtx_conf_cm.o + 0x08006cca 0x08006cca 0x00000004 Code RO 881 i.os_idle_demon rtx_conf_cm.o + 0x08006cce 0x08006cce 0x00000002 PAD + 0x08006cd0 0x08006cd0 0x00000028 Code RO 3205 i.os_tick_init RTX_CM3.lib(rt_system.o) + 0x08006cf8 0x08006cf8 0x00000002 Code RO 3206 i.os_tick_irqack RTX_CM3.lib(rt_system.o) + 0x08006cfa 0x08006cfa 0x00000002 PAD + 0x08006cfc 0x08006cfc 0x00000010 Code RO 3207 i.os_tick_ovf RTX_CM3.lib(rt_system.o) + 0x08006d0c 0x08006d0c 0x00000014 Code RO 3208 i.os_tick_val RTX_CM3.lib(rt_system.o) + 0x08006d20 0x08006d20 0x0000001a Code RO 3572 i.rt_alloc_box RTX_CM3.lib(rt_membox.o) + 0x08006d3a 0x08006d3a 0x0000003e Code RO 3600 i.rt_alloc_mem RTX_CM3.lib(rt_memory.o) + 0x08006d78 0x08006d78 0x00000038 Code RO 3120 i.rt_block RTX_CM3.lib(rt_task.o) + 0x08006db0 0x08006db0 0x00000048 Code RO 3672 i.rt_chk_robin RTX_CM3.lib(rt_robin.o) + 0x08006df8 0x08006df8 0x00000070 Code RO 3341 i.rt_dec_dly RTX_CM3.lib(rt_list.o) + 0x08006e68 0x08006e68 0x00000044 Code RO 3121 i.rt_dispatch RTX_CM3.lib(rt_task.o) + 0x08006eac 0x08006eac 0x00000006 Code RO 3507 i.rt_dly_wait RTX_CM3.lib(rt_time.o) + 0x08006eb2 0x08006eb2 0x00000002 PAD + 0x08006eb4 0x08006eb4 0x00000050 Code RO 3298 i.rt_evt_psh RTX_CM3.lib(rt_event.o) + 0x08006f04 0x08006f04 0x0000002c Code RO 3573 i.rt_free_box RTX_CM3.lib(rt_membox.o) + 0x08006f30 0x08006f30 0x00000028 Code RO 3601 i.rt_free_mem RTX_CM3.lib(rt_memory.o) + 0x08006f58 0x08006f58 0x00000028 Code RO 3342 i.rt_get_first RTX_CM3.lib(rt_list.o) + 0x08006f80 0x08006f80 0x00000008 Code RO 2548 i.rt_id2obj RTX_CM3.lib(rt_cmsis.o) + 0x08006f88 0x08006f88 0x00000048 Code RO 3122 i.rt_init_context RTX_CM3.lib(rt_task.o) + 0x08006fd0 0x08006fd0 0x0000001a Code RO 3602 i.rt_init_mem RTX_CM3.lib(rt_memory.o) + 0x08006fea 0x08006fea 0x00000002 PAD + 0x08006fec 0x08006fec 0x00000018 Code RO 3673 i.rt_init_robin RTX_CM3.lib(rt_robin.o) + 0x08007004 0x08007004 0x00000080 Code RO 3627 i.rt_init_stack RTX_CM3.lib(hal_cm.o) + 0x08007084 0x08007084 0x00000008 Code RO 3419 i.rt_mbx_check RTX_CM3.lib(rt_mailbox.o) + 0x0800708c 0x0800708c 0x0000001a Code RO 3420 i.rt_mbx_init RTX_CM3.lib(rt_mailbox.o) + 0x080070a6 0x080070a6 0x00000002 PAD + 0x080070a8 0x080070a8 0x000000f0 Code RO 3421 i.rt_mbx_psh RTX_CM3.lib(rt_mailbox.o) + 0x08007198 0x08007198 0x00000044 Code RO 2549 i.rt_ms2tick RTX_CM3.lib(rt_cmsis.o) + 0x080071dc 0x080071dc 0x00000010 Code RO 3541 i.rt_mut_init RTX_CM3.lib(rt_mutex.o) + 0x080071ec 0x080071ec 0x000000d8 Code RO 3542 i.rt_mut_release RTX_CM3.lib(rt_mutex.o) + 0x080072c4 0x080072c4 0x00000078 Code RO 3543 i.rt_mut_wait RTX_CM3.lib(rt_mutex.o) + 0x0800733c 0x0800733c 0x0000007c Code RO 3209 i.rt_pop_req RTX_CM3.lib(rt_system.o) + 0x080073b8 0x080073b8 0x00000020 Code RO 3210 i.rt_psh_req RTX_CM3.lib(rt_system.o) + 0x080073d8 0x080073d8 0x0000005c Code RO 3344 i.rt_psq_enq RTX_CM3.lib(rt_list.o) + 0x08007434 0x08007434 0x00000048 Code RO 3345 i.rt_put_dly RTX_CM3.lib(rt_list.o) + 0x0800747c 0x0800747c 0x00000036 Code RO 3346 i.rt_put_prio RTX_CM3.lib(rt_list.o) + 0x080074b2 0x080074b2 0x00000002 PAD + 0x080074b4 0x080074b4 0x00000014 Code RO 3347 i.rt_put_rdy_first RTX_CM3.lib(rt_list.o) + 0x080074c8 0x080074c8 0x00000034 Code RO 3348 i.rt_resort_prio RTX_CM3.lib(rt_list.o) + 0x080074fc 0x080074fc 0x00000006 Code RO 3628 i.rt_ret_val RTX_CM3.lib(hal_cm.o) + 0x08007502 0x08007502 0x00000008 Code RO 3629 i.rt_ret_val2 RTX_CM3.lib(hal_cm.o) + 0x0800750a 0x0800750a 0x00000028 Code RO 3349 i.rt_rmv_dly RTX_CM3.lib(rt_list.o) 0x08007532 0x08007532 0x00000002 PAD - 0x08007534 0x08007534 0x000000c4 Code RO 3847 x$fpl$fadd fz_ws.l(faddsub_clz.o) - 0x080075f8 0x080075f8 0x00000018 Code RO 3905 x$fpl$fcmpinf fz_ws.l(fcmpi.o) - 0x08007610 0x08007610 0x00000184 Code RO 3854 x$fpl$fdiv fz_ws.l(fdiv.o) - 0x08007794 0x08007794 0x00000068 Code RO 3857 x$fpl$feqf fz_ws.l(feqf.o) - 0x080077fc 0x080077fc 0x00000036 Code RO 3859 x$fpl$ffix fz_ws.l(ffix.o) - 0x08007832 0x08007832 0x00000002 PAD - 0x08007834 0x08007834 0x0000003e Code RO 3863 x$fpl$ffixu fz_ws.l(ffixu.o) - 0x08007872 0x08007872 0x00000002 PAD - 0x08007874 0x08007874 0x00000030 Code RO 3868 x$fpl$fflt fz_ws.l(fflt_clz.o) - 0x080078a4 0x080078a4 0x00000026 Code RO 3867 x$fpl$ffltu fz_ws.l(fflt_clz.o) - 0x080078ca 0x080078ca 0x00000002 PAD - 0x080078cc 0x080078cc 0x00000068 Code RO 3873 x$fpl$fleqf fz_ws.l(fleqf.o) - 0x08007934 0x08007934 0x00000102 Code RO 3875 x$fpl$fmul fz_ws.l(fmul.o) - 0x08007a36 0x08007a36 0x0000008c Code RO 3907 x$fpl$fnaninf fz_ws.l(fnaninf.o) - 0x08007ac2 0x08007ac2 0x0000000a Code RO 3909 x$fpl$fretinf fz_ws.l(fretinf.o) - 0x08007acc 0x08007acc 0x00000062 Code RO 3877 x$fpl$frleqf fz_ws.l(frleqf.o) - 0x08007b2e 0x08007b2e 0x00000014 Code RO 3848 x$fpl$frsb fz_ws.l(faddsub_clz.o) - 0x08007b42 0x08007b42 0x00000002 PAD - 0x08007b44 0x08007b44 0x000000ea Code RO 3849 x$fpl$fsub fz_ws.l(faddsub_clz.o) - 0x08007c2e 0x08007c2e 0x00000004 Code RO 3879 x$fpl$printf1 fz_ws.l(printf1.o) - 0x08007c32 0x08007c32 0x00000000 Code RO 3911 x$fpl$usenofp fz_ws.l(usenofp.o) - 0x08007c32 0x08007c32 0x00000002 PAD - 0x08007c34 0x08007c34 0x00000010 Data RO 520 .constdata ad7190.o - 0x08007c44 0x08007c44 0x00000020 Data RO 609 .constdata ws100t10.o - 0x08007c64 0x08007c64 0x00000010 Data RO 684 .constdata max6675.o - 0x08007c74 0x08007c74 0x00000004 Data RO 746 .constdata usarthmi.o - 0x08007c78 0x08007c78 0x000000ea Data RO 862 .constdata hmi.o - 0x08007d62 0x08007d62 0x00000002 PAD - 0x08007d64 0x08007d64 0x00000068 Data RO 930 .constdata rtx_conf_cm.o - 0x08007dcc 0x08007dcc 0x00000011 Data RO 3804 .constdata c_w.l(__printf_flags_wp.o) - 0x08007ddd 0x08007ddd 0x00000003 PAD - 0x08007de0 0x08007de0 0x00000094 Data RO 3950 .constdata c_w.l(bigflt0.o) - 0x08007e74 0x08007e74 0x00000020 Data RO 4109 Region$$Table anon$$obj.o - 0x08007e94 0x08007e94 0x0000001c Data RO 3974 locale$$data c_w.l(lc_numeric_c.o) + 0x08007534 0x08007534 0x00000030 Code RO 3350 i.rt_rmv_list RTX_CM3.lib(rt_list.o) + 0x08007564 0x08007564 0x0000000c Code RO 3467 i.rt_sem_init RTX_CM3.lib(rt_semaphore.o) + 0x08007570 0x08007570 0x00000034 Code RO 3468 i.rt_sem_psh RTX_CM3.lib(rt_semaphore.o) + 0x080075a4 0x080075a4 0x0000002a Code RO 3469 i.rt_sem_send RTX_CM3.lib(rt_semaphore.o) + 0x080075ce 0x080075ce 0x00000002 PAD + 0x080075d0 0x080075d0 0x00000040 Code RO 3470 i.rt_sem_wait RTX_CM3.lib(rt_semaphore.o) + 0x08007610 0x08007610 0x00000024 Code RO 3212 i.rt_stk_check RTX_CM3.lib(rt_system.o) + 0x08007634 0x08007634 0x00000028 Code RO 3123 i.rt_switch_req RTX_CM3.lib(rt_task.o) + 0x0800765c 0x0800765c 0x000000cc Code RO 3124 i.rt_sys_init RTX_CM3.lib(rt_task.o) + 0x08007728 0x08007728 0x00000078 Code RO 3125 i.rt_sys_start RTX_CM3.lib(rt_task.o) + 0x080077a0 0x080077a0 0x00000040 Code RO 3214 i.rt_systick RTX_CM3.lib(rt_system.o) + 0x080077e0 0x080077e0 0x00000012 Code RO 2550 i.rt_tid2ptcb RTX_CM3.lib(rt_cmsis.o) + 0x080077f2 0x080077f2 0x00000002 PAD + 0x080077f4 0x080077f4 0x00000034 Code RO 2551 i.rt_timer_insert RTX_CM3.lib(rt_cmsis.o) + 0x08007828 0x08007828 0x00000088 Code RO 3126 i.rt_tsk_create RTX_CM3.lib(rt_task.o) + 0x080078b0 0x080078b0 0x0000017c Code RO 3127 i.rt_tsk_delete RTX_CM3.lib(rt_task.o) + 0x08007a2c 0x08007a2c 0x0000007c Code RO 3129 i.rt_tsk_prio RTX_CM3.lib(rt_task.o) + 0x08007aa8 0x08007aa8 0x00000010 Code RO 3130 i.rt_tsk_self RTX_CM3.lib(rt_task.o) + 0x08007ab8 0x08007ab8 0x00000012 Code RO 2553 i.svcDelay RTX_CM3.lib(rt_cmsis.o) + 0x08007aca 0x08007aca 0x00000002 PAD + 0x08007acc 0x08007acc 0x00000070 Code RO 2554 i.svcKernelInitialize RTX_CM3.lib(rt_cmsis.o) + 0x08007b3c 0x08007b3c 0x00000048 Code RO 2556 i.svcKernelStart RTX_CM3.lib(rt_cmsis.o) + 0x08007b84 0x08007b84 0x00000038 Code RO 2557 i.svcKernelSysTick RTX_CM3.lib(rt_cmsis.o) + 0x08007bbc 0x08007bbc 0x00000024 Code RO 2559 i.svcMessageCreate RTX_CM3.lib(rt_cmsis.o) + 0x08007be0 0x08007be0 0x0000001c Code RO 2562 i.svcMutexCreate RTX_CM3.lib(rt_cmsis.o) + 0x08007bfc 0x08007bfc 0x00000022 Code RO 2564 i.svcMutexRelease RTX_CM3.lib(rt_cmsis.o) + 0x08007c1e 0x08007c1e 0x0000003a Code RO 2565 i.svcMutexWait RTX_CM3.lib(rt_cmsis.o) + 0x08007c58 0x08007c58 0x00000024 Code RO 2567 i.svcSemaphoreCreate RTX_CM3.lib(rt_cmsis.o) + 0x08007c7c 0x08007c7c 0x00000028 Code RO 2569 i.svcSemaphoreRelease RTX_CM3.lib(rt_cmsis.o) + 0x08007ca4 0x08007ca4 0x00000032 Code RO 2570 i.svcSemaphoreWait RTX_CM3.lib(rt_cmsis.o) + 0x08007cd6 0x08007cd6 0x00000002 PAD + 0x08007cd8 0x08007cd8 0x0000006c Code RO 2574 i.svcThreadCreate RTX_CM3.lib(rt_cmsis.o) + 0x08007d44 0x08007d44 0x0000001c Code RO 2575 i.svcThreadGetId RTX_CM3.lib(rt_cmsis.o) + 0x08007d60 0x08007d60 0x00000038 Code RO 2578 i.svcThreadTerminate RTX_CM3.lib(rt_cmsis.o) + 0x08007d98 0x08007d98 0x0000005c Code RO 2589 i.sysTimerTick RTX_CM3.lib(rt_cmsis.o) + 0x08007df4 0x08007df4 0x00000010 Data RO 452 .constdata ad7190.o + 0x08007e04 0x08007e04 0x00000020 Data RO 566 .constdata ws100t10.o + 0x08007e24 0x08007e24 0x00000010 Data RO 640 .constdata max6675.o + 0x08007e34 0x08007e34 0x00000004 Data RO 702 .constdata usarthmi.o + 0x08007e38 0x08007e38 0x0000041d Data RO 822 .constdata hmi.o + 0x08008255 0x08008255 0x00000003 PAD + 0x08008258 0x08008258 0x00000068 Data RO 883 .constdata rtx_conf_cm.o + 0x080082c0 0x080082c0 0x00000020 Data RO 4048 Region$$Table anon$$obj.o - Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x08007eb0, Size: 0x000049dc, Max: 0x00005000, ABSOLUTE) + Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x080082e0, Size: 0x0000459c, Max: 0x00005000, ABSOLUTE, COMPRESSED[0x00000028]) Exec Addr Load Addr Size Type Attr Idx E Section Name Object - 0x20000000 0x08007eb0 0x00000035 Data RW 521 .data ad7190.o - 0x20000035 0x08007ee5 0x00000003 PAD - 0x20000038 0x08007ee8 0x00000030 Data RW 610 .data ws100t10.o - 0x20000068 0x08007f18 0x00000004 Data RW 685 .data max6675.o - 0x2000006c 0x08007f1c 0x00000018 Data RW 747 .data usarthmi.o - 0x20000084 0x08007f34 0x00000039 Data RW 863 .data hmi.o - 0x200000bd 0x08007f6d 0x00000003 PAD - 0x200000c0 0x08007f70 0x00000014 Data RW 931 .data rtx_conf_cm.o - 0x200000d4 0x08007f84 0x00000014 Data RW 2522 .data system_stm32f10x.o - 0x200000e8 0x08007f98 0x00000008 Data RW 2658 .data RTX_CM3.lib(rt_cmsis.o) - 0x200000f0 0x08007fa0 0x00000008 Data RW 3198 .data RTX_CM3.lib(rt_task.o) - 0x200000f8 0x08007fa8 0x00000008 Data RW 3317 .data RTX_CM3.lib(rt_system.o) - 0x20000100 0x08007fb0 0x00000004 Data RW 3607 .data RTX_CM3.lib(rt_time.o) - 0x20000104 0x08007fb4 0x00000008 Data RW 3638 .data RTX_CM3.lib(rt_robin.o) - 0x2000010c 0x08007fbc 0x00000001 Data RW 3717 .data RTX_CM3.lib(hal_cm.o) - 0x2000010d 0x08007fbd 0x00000003 PAD - 0x20000110 - 0x00000028 Zero RW 519 .bss ad7190.o - 0x20000138 - 0x00000014 Zero RW 683 .bss max6675.o - 0x2000014c - 0x00000064 Zero RW 745 .bss usarthmi.o - 0x200001b0 - 0x00000164 Zero RW 861 .bss hmi.o - 0x20000314 - 0x00000034 Zero RW 3197 .bss RTX_CM3.lib(rt_task.o) - 0x20000348 - 0x00000030 Zero RW 3447 .bss RTX_CM3.lib(rt_list.o) - 0x20000378 - 0x00000060 Zero RW 3775 .bss c_w.l(libspace.o) - 0x200003d8 - 0x00000200 Zero RW 2509 HEAP startup_stm32f10x_md.o - 0x200005d8 - 0x00000400 Zero RW 2508 STACK startup_stm32f10x_md.o - 0x200009d8 0x08007fbd 0x00000628 PAD - 0x20001000 - 0x00000096 Zero RW 859 .ARM.__AT_0x20001000 hmi.o - 0x20001096 0x08007fbd 0x0000016a PAD - 0x20001200 - 0x00000096 Zero RW 860 .ARM.__AT_0x20001200 hmi.o - 0x20001296 0x08007fbd 0x00000002 PAD - 0x20001298 - 0x00003744 Zero RW 929 .bss rtx_conf_cm.o + 0x20000000 COMPRESSED 0x00000085 Data RW 453 .data ad7190.o + 0x20000085 COMPRESSED 0x00000003 PAD + 0x20000088 COMPRESSED 0x00000030 Data RW 567 .data ws100t10.o + 0x200000b8 COMPRESSED 0x00000004 Data RW 641 .data max6675.o + 0x200000bc COMPRESSED 0x00000018 Data RW 703 .data usarthmi.o + 0x200000d4 COMPRESSED 0x00000057 Data RW 823 .data hmi.o + 0x2000012b COMPRESSED 0x00000001 PAD + 0x2000012c COMPRESSED 0x00000010 Data RW 884 .data rtx_conf_cm.o + 0x2000013c COMPRESSED 0x00000014 Data RW 2456 .data system_stm32f10x.o + 0x20000150 COMPRESSED 0x00000008 Data RW 2592 .data RTX_CM3.lib(rt_cmsis.o) + 0x20000158 COMPRESSED 0x00000008 Data RW 3132 .data RTX_CM3.lib(rt_task.o) + 0x20000160 COMPRESSED 0x00000008 Data RW 3217 .data RTX_CM3.lib(rt_system.o) + 0x20000168 COMPRESSED 0x00000004 Data RW 3511 .data RTX_CM3.lib(rt_time.o) + 0x2000016c COMPRESSED 0x00000001 Data RW 3630 .data RTX_CM3.lib(hal_cm.o) + 0x2000016d COMPRESSED 0x00000003 PAD + 0x20000170 COMPRESSED 0x00000008 Data RW 3674 .data RTX_CM3.lib(rt_robin.o) + 0x20000178 - 0x000000d8 Zero RW 451 .bss ad7190.o + 0x20000250 - 0x00000014 Zero RW 639 .bss max6675.o + 0x20000264 - 0x00000064 Zero RW 701 .bss usarthmi.o + 0x200002c8 - 0x000007cc Zero RW 821 .bss hmi.o + 0x20000a94 - 0x00000034 Zero RW 3131 .bss RTX_CM3.lib(rt_task.o) + 0x20000ac8 - 0x00000030 Zero RW 3351 .bss RTX_CM3.lib(rt_list.o) + 0x20000af8 - 0x00000400 Zero RW 2442 STACK startup_stm32f10x_md.o + 0x20000ef8 COMPRESSED 0x00000108 PAD + 0x20001000 - 0x00000096 Zero RW 819 .ARM.__AT_0x20001000 hmi.o + 0x20001096 COMPRESSED 0x0000016a PAD + 0x20001200 - 0x00000096 Zero RW 820 .ARM.__AT_0x20001200 hmi.o + 0x20001296 COMPRESSED 0x00000002 PAD + 0x20001298 - 0x00003304 Zero RW 882 .bss rtx_conf_cm.o ============================================================================== @@ -2974,30 +2678,30 @@ Image component sizes Code (inc. data) RO Data RW Data ZI Data Debug Object Name - 2100 250 16 53 40 10829 ad7190.o - 136 14 0 0 0 235239 bios.o - 130 0 0 0 0 471 delay.o - 172 0 0 0 0 1988 fm24.o - 10784 2742 234 57 656 14024 hmi.o - 896 70 0 0 0 4820 i2c.o - 424 32 16 4 20 3769 max6675.o - 412 60 0 0 0 631 moisture.o - 126 26 104 20 14148 9123 rtx_conf_cm.o - 188 16 0 0 0 1050 spi.o - 64 26 236 0 1536 796 startup_stm32f10x_md.o - 448 6 0 0 0 5106 stm32f10x_gpio.o + 2860 376 16 133 216 12355 ad7190.o + 136 14 0 0 0 233839 bios.o + 130 0 0 0 0 499 delay.o + 172 0 0 0 0 2104 fm24.o + 13732 3092 1053 87 2296 15212 hmi.o + 896 70 0 0 0 5116 i2c.o + 424 32 16 4 20 3969 max6675.o + 392 52 0 0 0 655 moisture.o + 62 6 104 16 13060 7728 rtx_conf_cm.o + 248 14 0 0 0 1238 spi.o + 36 8 236 0 1024 820 startup_stm32f10x_md.o + 448 6 0 0 0 5122 stm32f10x_gpio.o 32 6 0 0 0 641 stm32f10x_rcc.o - 112 0 0 0 0 4446 stm32f10x_spi.o - 74 0 0 0 0 2593 stm32f10x_usart.o - 328 28 0 20 0 2301 system_stm32f10x.o - 184 26 0 0 0 1911 usart.o - 754 106 4 24 100 9796 usarthmi.o - 844 112 32 48 0 5228 ws100t10.o + 112 0 0 0 0 4462 stm32f10x_spi.o + 74 0 0 0 0 2605 stm32f10x_usart.o + 328 28 0 20 0 2441 system_stm32f10x.o + 184 26 0 0 0 2031 usart.o + 754 106 4 24 100 10176 usarthmi.o + 844 112 32 48 0 5458 ws100t10.o ---------------------------------------------------------------------- - 18216 3520 676 232 18440 314762 Object Totals + 21872 3948 1496 336 17344 316471 Object Totals 0 0 32 0 0 0 (incl. Generated) - 8 0 2 6 1940 0 (incl. Padding) + 8 0 3 4 628 0 (incl. Padding) ---------------------------------------------------------------------- @@ -3018,91 +2722,64 @@ Image component sizes 1216 174 0 8 52 9537 rt_task.o 6 0 0 4 0 636 rt_time.o 4 4 0 0 0 196 svc_table.o - 8 0 0 0 0 68 __main.o - 312 4 17 0 0 92 __printf_flags_wp.o - 14 0 0 0 0 68 __printf_wp.o - 0 0 0 0 0 0 __rtentry.o - 20 0 0 0 0 0 __rtentry2.o - 6 0 0 0 0 0 __rtentry4.o - 52 8 0 0 0 0 __scatter.o - 26 0 0 0 0 0 __scatter_copy.o - 28 0 0 0 0 0 __scatter_zi.o - 44 0 0 0 0 108 _printf_char.o - 48 6 0 0 0 96 _printf_char_common.o - 6 0 0 0 0 0 _printf_d.o - 120 16 0 0 0 92 _printf_dec.o - 6 0 0 0 0 0 _printf_f.o - 1054 0 0 0 0 216 _printf_fp_dec.o - 128 16 0 0 0 84 _printf_fp_infnan.o - 178 0 0 0 0 88 _printf_intcommon.o - 78 0 0 0 0 108 _printf_pad.o - 0 0 0 0 0 0 _printf_percent.o - 4 0 0 0 0 0 _printf_percent_end.o - 6 0 0 0 0 0 _printf_s.o - 82 0 0 0 0 80 _printf_str.o - 10 0 0 0 0 68 _sputc.o - 228 4 148 0 0 96 bigflt0.o - 1936 128 0 0 0 672 btod.o - 18 0 0 0 0 80 exit.o - 6 0 0 0 0 152 heapauxi.o - 0 0 0 0 0 0 indicate_semi.o - 44 10 28 0 0 76 lc_numeric_c.o - 2 0 0 0 0 0 libinit.o - 18 0 0 0 0 0 libinit2.o - 2 0 0 0 0 0 libshutdown.o - 2 0 0 0 0 0 libshutdown2.o - 8 4 0 0 96 68 libspace.o - 138 0 0 0 0 80 lludiv10.o - 40 6 0 0 0 84 noretval__2sprintf.o - 10 0 0 0 0 76 rt_locale_twolibspace.o - 2 0 0 0 0 0 rtexit.o - 10 0 0 0 0 0 rtexit2.o - 128 0 0 0 0 68 strcmpv7m.o - 72 0 0 0 0 80 strcpy.o - 62 0 0 0 0 76 strlen.o - 12 4 0 0 0 68 sys_exit.o - 74 0 0 0 0 80 sys_stackheap_outer.o - 2 0 0 0 0 68 use_no_semi.o - 98 4 0 0 0 92 d2f.o - 24 0 0 0 0 68 dcmpi.o - 46 0 0 0 0 68 dflt_clz.o - 120 4 0 0 0 92 dleqf.o - 340 12 0 0 0 104 dmul.o - 156 4 0 0 0 92 dnaninf.o - 12 0 0 0 0 68 dretinf.o - 108 0 0 0 0 80 drleqf.o - 86 4 0 0 0 84 f2d.o - 450 8 0 0 0 236 faddsub_clz.o - 24 0 0 0 0 68 fcmpi.o - 388 76 0 0 0 96 fdiv.o - 104 4 0 0 0 84 feqf.o - 54 4 0 0 0 84 ffix.o - 62 4 0 0 0 84 ffixu.o - 86 0 0 0 0 136 fflt_clz.o - 104 4 0 0 0 84 fleqf.o - 258 4 0 0 0 84 fmul.o - 140 4 0 0 0 84 fnaninf.o - 10 0 0 0 0 68 fretinf.o - 98 0 0 0 0 68 frleqf.o - 4 0 0 0 0 68 printf1.o - 0 0 0 0 0 0 usenofp.o - 40 0 0 0 0 68 fpclassify.o + 58 0 0 0 0 0 __dczerorl.o + 0 0 0 0 0 0 entry.o + 0 0 0 0 0 0 entry10a.o + 0 0 0 0 0 0 entry11a.o + 4 0 0 0 0 0 entry12b.o + 8 4 0 0 0 0 entry2.o + 4 0 0 0 0 0 entry5.o + 0 0 0 0 0 0 entry7b.o + 0 0 0 0 0 0 entry8b.o + 30 0 0 0 0 0 handlers.o + 36 8 0 0 0 68 init.o + 0 0 0 0 0 0 iusefp.o + 30 0 0 0 0 68 llshl.o + 36 0 0 0 0 68 llsshr.o + 32 0 0 0 0 68 llushr.o + 36 0 0 0 0 108 memseta.o + 2236 86 0 0 0 532 printfa.o + 28 0 0 0 0 76 strcmp.o + 18 0 0 0 0 68 strcpy.o + 14 0 0 0 0 68 strlen.o + 44 0 0 0 0 80 uidiv.o + 98 0 0 0 0 92 uldiv.o + 48 0 0 0 0 68 cdcmple.o + 48 0 0 0 0 68 cdrcmple.o + 20 0 0 0 0 68 cfcmple.o + 20 0 0 0 0 68 cfrcmple.o + 56 0 0 0 0 88 d2f.o + 334 0 0 0 0 148 dadd.o + 222 0 0 0 0 100 ddiv.o + 186 0 0 0 0 176 depilogue.o + 62 0 0 0 0 80 dfixi.o + 48 0 0 0 0 68 dfixul.o + 34 0 0 0 0 76 dflti.o + 26 0 0 0 0 76 dfltui.o + 228 0 0 0 0 96 dmul.o + 38 0 0 0 0 68 f2d.o + 176 0 0 0 0 140 fadd.o + 124 0 0 0 0 88 fdiv.o + 110 0 0 0 0 168 fepilogue.o + 40 0 0 0 0 68 ffixui.o + 18 0 0 0 0 68 fflti.o + 10 0 0 0 0 68 ffltui.o + 100 0 0 0 0 76 fmul.o ---------------------------------------------------------------------- - 13344 926 196 40 196 88467 Library Totals - 40 0 3 3 0 0 (incl. Padding) + 10136 682 0 40 100 86635 Library Totals + 28 0 0 3 0 0 (incl. Padding) ---------------------------------------------------------------------- Code (inc. data) RO Data RW Data ZI Data Debug Library Name 5448 584 0 37 100 83415 RTX_CM3.lib - 5044 206 193 0 96 2992 c_w.l - 2772 136 0 0 0 1992 fz_ws.l - 40 0 0 0 0 68 m_ws.l + 2712 98 0 0 0 1296 mc_w.l + 1948 0 0 0 0 1924 mf_w.l ---------------------------------------------------------------------- - 13344 926 196 40 196 88467 Library Totals + 10136 682 0 40 100 86635 Library Totals ---------------------------------------------------------------------- @@ -3111,15 +2788,15 @@ Image component sizes Code (inc. data) RO Data RW Data ZI Data Debug - 31560 4446 872 272 18636 391785 Grand Totals - 31560 4446 872 272 18636 391785 ELF Image Totals - 31560 4446 872 272 0 0 ROM Totals + 32008 4630 1496 376 17444 392990 Grand Totals + 32008 4630 1496 40 17444 392990 ELF Image Totals (compressed) + 32008 4630 1496 40 0 0 ROM Totals ============================================================================== - Total RO Size (Code + RO Data) 32432 ( 31.67kB) - Total RW Size (RW Data + ZI Data) 18908 ( 18.46kB) - Total ROM Size (Code + RO Data + RW Data) 32704 ( 31.94kB) + Total RO Size (Code + RO Data) 33504 ( 32.72kB) + Total RW Size (RW Data + ZI Data) 17820 ( 17.40kB) + Total ROM Size (Code + RO Data + RW Data) 33544 ( 32.76kB) ============================================================================== diff --git a/Moisture.uvoptx b/Moisture.uvoptx index 12eff6c..da635dd 100644 --- a/Moisture.uvoptx +++ b/Moisture.uvoptx @@ -103,7 +103,7 @@ 1 0 0 - 4 + 3 @@ -114,9 +114,29 @@ - Segger\JL2CM3.dll + BIN\CMSIS_AGDI.dll + + 0 + JL2CM3 + -U941000024 -O78 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO7 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128.FLM -FS08000000 -FL020000 -FP0($$Device:STM32F103C8$Flash\STM32F10x_128.FLM) + + + 0 + CMSIS_AGDI + -X"" -O206 -S8 -C0 -P00000000 -N00("ARM CoreSight SW-DP") -D00(1BA01477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128.FLM -FS08000000 -FL020000 -FP0($$Device:STM32F103C8$Flash\STM32F10x_128.FLM) + + + 0 + UL2CM3 + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128 -FS08000000 -FL020000 -FP0($$Device:STM32F103C8$Flash\STM32F10x_128.FLM)) + + + 0 + ST-LINKIII-KEIL_SWO + -U38FF68063050503448221643 -O206 -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 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128.FLM -FS08000000 -FL020000 -FP0($$Device:STM32F103C8$Flash\STM32F10x_128.FLM) + 0 ARMRTXEVENTFLAGS @@ -135,85 +155,10 @@ 0 DLGUARM - d - - - 0 - JL2CM3 - -U69400112 -O78 -S5 -ZTIFSpeedSel1000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(1BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128.FLM -FS08000000 -FL020000 -FP0($$Device:STM32F103C8$Flash\STM32F10x_128.FLM) - - - 0 - UL2CM3 - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128 -FS08000000 -FL020000 -FP0($$Device:STM32F103C8$Flash\STM32F10x_128.FLM)) + - - - 0 - 0 - 127 - 1 -
0
- 0 - 0 - 0 - 0 - 0 - 0 - .\Source\USARTHMI.c - - -
- - 1 - 0 - 109 - 1 -
134223724
- 0 - 0 - 0 - 0 - 0 - 1 - .\Source\AD7190.c - - \\Moisture\Source/AD7190.c\109 -
- - 2 - 0 - 118 - 1 -
134223738
- 0 - 0 - 0 - 0 - 0 - 1 - .\Source\AD7190.c - - \\Moisture\Source/AD7190.c\118 -
- - 3 - 0 - 131 - 1 -
134223776
- 0 - 0 - 0 - 0 - 0 - 1 - .\Source\AD7190.c - - \\Moisture\Source/AD7190.c\131 -
-
+ 0 @@ -248,227 +193,252 @@ 6 1 - ADvalue2filterOld,0x0A + buf 7 1 - ADvalue2filter + NameBuf 8 1 - CalibrateWeight2.WeightZero,0x0A + WeightDataBuf 9 1 - HeatOutValue + DataBufIndex,0x0A 10 1 - Percent,0x0A + \\Moisture\Source/HMI.c\WeightDataBuf 11 1 - Ki + CountNochange,0x0A 12 1 - ADvalue2,0x0A + DifErrCount,0x0A 13 1 - kf2 + lastdata,0x0A 14 1 - CountNochange,0x0A + UseuLBuf 15 1 - ADvalue2,0x0A + average 16 1 - ADvalue2filter + \\Moisture\Source/AD7190.c\UseuLBuf,0x0A 17 1 - DataIn + UseuLBuf2,0x0A 18 1 - DataInbuf + center 19 1 - NameBuf + \\Moisture\Source/AD7190.c\average 20 1 - startTime + ADvalue2filter 21 1 - buf + UninstiallRefWeight 22 1 - CountDelay,0x0A + CalibrateWeight2.WeightZero,0x0A 23 1 - Title + kf 24 1 - DataLogValue + alpf 25 1 - Set,0x0A + ChangeMax,0x0A 26 1 - len,0x0A + ADvalue2filterOld,0x0A 27 1 - ui + WeightData2Finally 28 1 - f + FliterCount,0x0A 29 1 - WeightData2Temp + WeightData2Finally 30 1 - buf + WeightData2Temp 31 1 - NameBufSelect + (WeightData2Temp - WeightRefStart) * ( 1.0f - FliterCount /1100.0f) 32 1 - startTimeSelect + Set.TempDelta 33 1 - StartWeightSelect + WeightZeroOld,0x0A 34 1 - StopWeightSelect + Set,0x0A 35 1 - WaterPercentSelect + SetZeroCount,0x0A 36 1 - NameBuf + WeightData2TempOld 37 1 - PwdBuf + (WeightData2Temp - WeightData2Finally) * ( 1.0f - 0.9f * FliterCount / 1000) 38 1 - NameBuf + FliterCount,0x0A 39 1 - weightChanging + WeightData2 40 1 - ErrCount + WeightOld 41 1 - TempI,0x0A + WeightDataS 42 1 - TemperatureIn + weight11g 43 1 - lostTick,0x0A + ZeroWeightOld 44 1 - CountDelay,0x0A + ZeroWeightChange 45 1 - oneTick,0x0A + ADvalue2,0x0A 46 1 - LastTick,0x0A + WeightData2Finally 47 1 - Err,0x0A + WeightData2 48 1 - buf + WeightData2Temp 49 1 - PwdBuf + ErrCount,0x0A 50 1 - NameBuf + DifErrCountAdd,0x0A + + + 51 + 1 + ErrcountAdd,0x0A + + + 52 + 1 + WeightDataBuf + + + 53 + 1 + DataBufIndex,0x0A + + + 54 + 1 + LCount,0x0A + + + 55 + 1 + DataOld,0x0A @@ -547,7 +517,7 @@ 1 - 1 + 0 0 2 10000000 diff --git a/Moisture.uvprojx b/Moisture.uvprojx index 90a1125..cea739b 100644 --- a/Moisture.uvprojx +++ b/Moisture.uvprojx @@ -17,8 +17,8 @@ STM32F103C8 STMicroelectronics - Keil.STM32F1xx_DFP.2.4.1 - https://www.keil.com/pack/ + Keil.STM32F1xx_DFP.2.2.0 + http://www.keil.com/pack/ IRAM(0x20000000,0x00005000) IROM(0x08000000,0x00010000) CPUTYPE("Cortex-M3") CLOCK(12000000) ELITTLE @@ -139,7 +139,7 @@ 1 BIN\UL2CM3.DLL - "" () + @@ -177,7 +177,7 @@ 0 "Cortex-M3" - 0 + 1 0 0 1 @@ -191,7 +191,7 @@ 0 0 8 - 0 + 1 0 0 0 @@ -424,6 +424,57 @@ CS5552.c 1 .\Source\CS5552.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 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 + + + + + + + + + AD7190.c @@ -477,12 +528,12 @@ - + - + @@ -492,7 +543,12 @@ - + + + + + + @@ -520,49 +576,49 @@ - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -580,7 +636,7 @@ RTE\Device\STM32F103C8\RTE_Device.h - + @@ -588,15 +644,15 @@ RTE\Device\STM32F103C8\startup_stm32f10x_md.s - + RTE\Device\STM32F103C8\stm32f10x_conf.h - - + + @@ -604,7 +660,7 @@ RTE\Device\STM32F103C8\system_stm32f10x.c - + diff --git a/Objects/Moisture.axf b/Objects/Moisture.axf index 267e22b9a262627e77327c3c29e714adcae55b7b..fc524b814462e61a6dd6f68f0b5118e5157d9fdd 100644 GIT binary patch literal 494360 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%0D+Cy6=3Q=HSwW0-_pq4{pB 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⋙WJAZ|Z8H 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Π=!Hx#^Q3x*+)44 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

fVg!z*7lES=GaHaarWhY8{$+UG6b-_g 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 C#gA@_P?3i~||`LEud%z25+q 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%0A|B9c?~F} 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 BFcts+ literal 499920 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

}aWU$((-P7HBZ-HOX%;=Ys)@ilsJq4$s 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 n&T};~N`IPW)XI* arr[j+1]) { + // 交换 arr[j] 和 arr[j+1] + temp = arr[j]; + arr[j] = arr[j+1]; + arr[j+1] = temp; + } + } + } +} + + +/** +*********************************************************** +* @brief printf函数默认打印输出到显示器,如果要输出到串口, + 必须重新实现fputc函数,将输出指向串口,称为重定向 +* @param +* @return +*********************************************************** +*/ +int fputc(int ch, FILE *f) +{ + while (!(READ_BIT(USART1->SR, USART_SR_TXE))) { + delay_us(100); + } + USART1->DR = ch; + return ch; +} + + +float average; +float center; +int ErrcountAdd = 0; +int DifErrCountAdd = 0; +uint32_t AD7190_ReadData( void ) { uint32_t data = 0; -//uint16_t TempI; if(AD7190_WaitForReady(50000)) { data = AD7190_ReadRegister(AD7190_REG_DATA); -// TempI = Read_Internal_Temperature(); -// // 将 ADC 值转换为电压值 -// float V_ADC = (TempI * Vref) / 4095; - -// // 计算温度值(摄氏度) -// TemperatureIn = ((V25 - V_ADC)*1000 / Avg_Slope) + 25.0; - if(data > 15000000) + if(fabs((int)data - (int)lastdata) > 100000 ) + { + DifErrCount ++; + DifErrCountAdd++; + } + else + { + DifErrCount = 0; + } + lastdata = data; + if((data > 8388608) || (data < 100 )) { ErrCount++; + ErrcountAdd++; } else { @@ -125,76 +201,53 @@ uint32_t AD7190_ReadData() else { ErrCount++; + ErrcountAdd++; } - if(ErrCount > 10) + if(ErrCount > 3 || DifErrCount > 20) { + uint32_t modeReg; + SPI1_Configuration(); SPI1_ReadWrite(0xFF); SPI1_ReadWrite(0xFF); SPI1_ReadWrite(0xFF); SPI1_ReadWrite(0xFF); - SPI1_ReadWrite(0xFF); + SPI1_ReadWrite(0xFF); // 40个脉冲复位ADC osDelay(50); - uint32_t modeReg; // 配置寄存器:通道选择、参考电压源、增益和工作模式 // 打开PSW uint8_t GPOC = AD7190_ReadRegisterOnce(AD7190_REG_GPOC); GPOC |= AD7190_GPOCON_BDPSW; AD7190_WriteRegisterOnce(AD7190_REG_GPOC, GPOC); osDelay(5); - uint32_t config = 0x0000011F; + uint32_t config = AD7190_CONF_GAIN_128 | AD7190_CONF_UB | AD7190_CONF_BUF | AD7190_CONF_CH0;// 0x0000011F; AD7190_WriteRegister(AD7190_REG_CONF, config); osDelay(5); - modeReg |= AD7190_CONF_MODE_FS9_0; // 滤波器最低速率输出 - AD7190_WriteRegister(AD7190_REG_MODE, modeReg); - osDelay(5); - // 执行上电校准 - modeReg = AD7190_ReadRegister(AD7190_REG_MODE); - modeReg &= ~0x00E00000; - modeReg |= AD7190_CONF_MODE_ZEROSEL; - AD7190_WriteRegister(AD7190_REG_MODE, modeReg); - osDelay(5); - AD7190_WaitForReady(1000000); - modeReg &= ~0x00E00000; - modeReg |= AD7190_CONF_MODE_FullSEL; - AD7190_WriteRegister(AD7190_REG_MODE, modeReg); - osDelay(5); - AD7190_WaitForReady(1000000); - // 校准完成 切换回连续转换模式 - modeReg = 0x000803FF; + + // 连续转换模式 + modeReg = AD7190_CONF_MODE_FS9_0 | AD7190_CONF_MODE_InCLK; AD7190_WriteRegister(AD7190_REG_MODE, modeReg); + + ErrCount = 0; osDelay(500); if(AD7190_WaitForReady(50000)) { data = AD7190_ReadRegister(AD7190_REG_DATA); } + } return data; } -// AD7190函数:读取AD转换结果并转换为实际电压值 -// static void bubbleSort2(float *num) -//{ -// float temp; -// int i, j; -// for (i = 0; i < 5; i++) { -// for (j = 0; j < 5 - i; j++) { -// if (num[j] > num[j + 1]) { -// // 交换相邻元素的值 -// temp = num[j]; -// num[j] = num[j + 1]; -// num[j + 1] = temp; -// } -// } -// } -//} // 定义卡尔曼滤波器的参数结构体 + +// 定义卡尔曼滤波器的参数结构体 typedef struct { - float x; // 状态估计值 - float P; // 状态协方差 - float Q; // 过程噪声协方差 - float R; // 观测噪声协方差 - float K; // 卡尔曼增益 + double x; // 状态估计值 + double P; // 状态协方差 + double Q; // 过程噪声协方差 + double R; // 观测噪声协方差 + double K; // 卡尔曼增益 } KalmanFilter; KalmanFilter kf2; @@ -220,27 +273,50 @@ void kalman_filter_update2(KalmanFilter *kf, float measurement) kf->P = (1 - kf->K) * P_pred; // 更新状态协方差 } -float WeightData2 = 0.0f; -float ADvalue2filter = 0.0f; -// static float bufferdata2[5]; -// static float dataout2[5]; -static float WeightData2Temp = 0.0f; -int32_t ADvalue2filterOld = 0; -int32_t ADvalue2 = 0; -uint8_t ic2 = 0; + +uint8_t FollowCount = 0; // 零点跟踪计数 +uint8_t TimeCount = 0; // 蠕变时间计数 +uint32_t FliterCount = 0; // 长期抑制计数 +uint16_t SetZeroCount = 0; // 卸载归零计数 + +int32_t ADvalue2 = 0; // ADC采样原始值 + +double ADvalue2filter = 0.0f; // ADC采样卡尔曼滤波值 +double ADvalue2filterOld = 0; // 上次ADC采样卡尔曼滤波值 + +double WeightData2Temp = 0.0f; // 本次ADvalue2filter计算重量值 +double WeightData2TempOld; // 上次ADvalue2filter计算重量值 + +double WeightData2Finally = 0.0f; // 最终输出前重量值 + +double UninstiallRefWeight= 0.0f; // 卸载重物时的重量值 + +double WeightZeroOld = 0; // 上次稳定状态时零点值 +struct uCalibrateWeight CalibrateWeight2; //传感器 斜率 零点 + +double WeightData2 = 0.0f; // 最终输出重量值 +bool weightChanging = false; // 传感器稳定标志 +bool weight11g = false; // 传感器稳定标志 +float ZeroWeightOld; +float ZeroWeightChange; + +float LowFecAlpha = 0.95f; // 超低频波动抑制系数,发生突变时偏向跟踪新值,相对稳定时跟踪旧值 +float WeightRefStart = 0; + uint8_t i; -int32_t data2 = 0; -struct uCalibrateWeight CalibrateWeight2; -uint8_t FollowCount = 0; -uint8_t TimeCount = 0; -int32_t WeightZeroOld = 0; -uint32_t modeRega; -uint32_t configa; -uint32_t configao; -bool weightChanging = false; -#include "APPDEF.H" + +#define ChangeMax 10 +#define ZeroTrackMax 0.050f +#define FollowMax 0.030f +#define FliterCountMax 200 +#define FollowDlteaMax 0.001f +#define FollowAlpha 0.9999f // 长期数据跟踪系数 void AD7190_Run(const void *p_arg) { + uint8_t FilterQOld, SensorQOld, ZeroTrackOld, RuBianLiangOld, ruBianTimeOld; + int8_t RubianLiang, RubianTime; + float ZeroTrackTime, ZeroTrackRange; + osDelay(600); ADvalue2 = AD7190_ReadData(); osDelay(200); @@ -248,16 +324,12 @@ void AD7190_Run(const void *p_arg) ADvalue2filterOld = ADvalue2filter = ADvalue2; kalman_filter_init2(&kf2, ADvalue2, 1.0, 0.001, 0.1); WeightZeroOld = CalibrateWeight2.WeightZero; - - uint8_t FilterQOld, SensorQOld, ZeroTrackOld, RuBianLiangOld, ruBianTimeOld; - int8_t RubianLiang, RubianTime; - float ZeroTrackTime, ZeroTrackRange; for (;;) { if (FilterQOld != Set.FilterQ) { FilterQOld = Set.FilterQ; - switch (Set.FilterQ) // 滤波器信任度 信任度越高 反应越慢数据显示越稳定 + switch (Set.FilterQ) // 滤波器信任度 信任度越高 反应越慢数据显示越稳定 { case 0: kf2.Q = 0.1; @@ -296,7 +368,7 @@ void AD7190_Run(const void *p_arg) if (SensorQOld != Set.SensorQ) { SensorQOld = Set.SensorQ; - switch (Set.SensorQ) // 传感器信任度 信任度越高 反应越迅速,数据波动越大 显示越不稳定 + switch (Set.SensorQ) // 传感器信任度 信任度越高 反应越迅速,数据波动越大 显示越不稳定 { case 0: kf2.R = 0.5; @@ -332,14 +404,14 @@ void AD7190_Run(const void *p_arg) break; } } - if (ZeroTrackOld != Set.ZeroTrack) // 零点跟踪 跟踪级别越高 原始数据发生缓慢变化时,最终数据不会发生变化的可能性越大。例如 当跟踪级别设置为9时,那么如果原始数据在4秒内变化小于2.5mg,那么最终数据不会发生变化。原理是cpu会将这4秒内变化的数据叠加到零点上,相当于动态调零了。 + if (ZeroTrackOld != Set.ZeroTrack) // 零点跟踪 跟踪级别越高 原始数据发生缓慢变化时,最终数据不会发生变化的可能性越大。例如 当跟踪级别设置为9时,那么如果原始数据在4秒内变化小于2.5mg,那么最终数据不会发生变化。原理是cpu会将这4秒内变化的数据叠加到零点上,相当于动态调零了。 { ZeroTrackOld = Set.ZeroTrack; switch (ZeroTrackOld) { case 0: - ZeroTrackTime = 20; - ZeroTrackRange = 0; + ZeroTrackTime = 20; // 连续20秒 + ZeroTrackRange = 0; // 相邻两次采样数据小于0.000g break; case 1: ZeroTrackTime = 15; @@ -381,7 +453,7 @@ void AD7190_Run(const void *p_arg) break; } } - if (ruBianTimeOld != Set.RuBianTime) // 蠕变时间 级别越高 蠕变时间越短,蠕变越快 零为不蠕变 + if (ruBianTimeOld != Set.RuBianTime) // 蠕变时间 级别越高 蠕变时间越短,蠕变越快 零为不蠕变 { ruBianTimeOld = Set.RuBianTime; switch (Set.RuBianTime) @@ -420,7 +492,7 @@ void AD7190_Run(const void *p_arg) break; } } - if (RuBianLiangOld != Set.RuBianLiang) //蠕变量 可分正向蠕变和反向蠕变 零为不蠕变 当零点跟踪为0时 调零后观察一段时间的数据变化 如果数据持续变化为负数 则为负蠕变。反之为正蠕变。 负蠕变调整蠕变量为负数级别(谨慎调整 建议不调整) + if (RuBianLiangOld != Set.RuBianLiang) //蠕变量 可分正向蠕变和反向蠕变 零为不蠕变 当零点跟踪为0时 调零后观察一段时间的数据变化 如果数据持续变化为负数 则为负蠕变。反之为正蠕变。 负蠕变调整蠕变量为负数级别(谨慎调整 建议不调整) { RuBianLiangOld = Set.RuBianLiang; switch (Set.RuBianLiang) @@ -463,13 +535,74 @@ void AD7190_Run(const void *p_arg) } } - osDelay(190); - ADvalue2 = AD7190_ReadData(); - kalman_filter_update2(&kf2, ADvalue2); // 更新步骤 - ADvalue2filter = kf2.x; - WeightData2Temp = CalibrateWeight2.WeightSlope * ((int32_t)ADvalue2filter - (int32_t)CalibrateWeight2.WeightZero); - if( RubianLiang != 0 ) + osDelay(200); + ADvalue2 = AD7190_ReadData(); //4.7Hz 213ms + kalman_filter_update2(&kf2, ADvalue2); // 更新步骤 + if(fabs(ADvalue2filter - kf2.x) < ChangeMax ) + { + LowFecAlpha = 0.95; // 数据处于稳定状态 未有重量突变或小幅度连续单向改变时信任上次值 + } + else + { + LowFecAlpha = 0.5; // 数据处于较大波动状态 有重量突变或小幅度连续单向改变时信任本次值 + } + ADvalue2filter = kf2.x *(1-LowFecAlpha)+ADvalue2filter*LowFecAlpha; +// if(pageNum != 1) +// { + +// if(WeightData2TempOld - WeightData2Temp > 0.500f) // 卸载重物 +// { +// if(UninstiallRefWeight < 0.005f) // 如果未触发归零条件 +// { +// UninstiallRefWeight = WeightData2TempOld; +// WeightZeroOld = CalibrateWeight2.WeightZero; // 备份零点原始值,以备不稳定状态下重新加载重物导致数据不准确 +// } +// } +// else if(WeightData2TempOld - WeightData2Temp < -0.500f)//加载重物 +// { +// UninstiallRefWeight = 0.0f; +// if( WeightZeroOld != CalibrateWeight2.WeightZero) +// { +// CalibrateWeight2.WeightZero = WeightZeroOld; // 置零未完成或零点跟踪未完成,恢复至改变前零点值,防止数据不准确 +// } +// SetZeroCount = 0; +// } +// if(UninstiallRefWeight > 0.005f) // 卸载重物后接近归零时进行归零操作 +// { +// if(SetZeroCount++ > 50 ) // 归零后重置触发归零条件 +// { +// +// UninstiallRefWeight = 0.0f; +// WeightZeroOld = CalibrateWeight2.WeightZero; +// SetZeroCount = 0; +// } +// if(fabs(WeightData2Temp) < 0.100f && fabs(WeightData2Temp) > 0.004f) // 符合归零区间范围则缓慢归零 +// { +// SetZeroCount = 0; +// CalibrateWeight2.WeightZero += WeightData2Temp / CalibrateWeight2.WeightSlope / 10; +// ZeroWeightChange = CalibrateWeight2.WeightSlope * (ADvalue2filter - CalibrateWeight2.WeightZero); +// } +// ZeroWeightOld = CalibrateWeight2.WeightSlope * (ADvalue2filter - WeightZeroOld); +// if( fabs(ZeroWeightOld) <= fabs(ZeroWeightChange) ) +// { +// weight11g=0; +// CalibrateWeight2.WeightZero = WeightZeroOld; +// } +// else +// { +// weight11g=1; +// } + +// } +// } + + WeightData2TempOld = WeightData2Temp; + WeightData2Temp = CalibrateWeight2.WeightSlope * (ADvalue2filter - CalibrateWeight2.WeightZero); + +// printf("%f,%f,%f,%.4f\n",Temperature,ADvalue2filter,WeightData2Temp,WeightData2Finally); + + if( RubianLiang != 0 ) // 蠕变 { if (TimeCount++ > 4 * RubianTime) // 动态称重时蠕变跟踪 { @@ -482,13 +615,14 @@ void AD7190_Run(const void *p_arg) } } - if (fabs(WeightData2 - WeightData2Temp) < ZeroTrackRange) + if (fabs(WeightData2TempOld - WeightData2Temp) < ZeroTrackRange && fabs(WeightData2Temp) < ZeroTrackMax && ( pageNum != 1)) // 符合跟踪范围 型评 当示值为零或相当于毛重为0时 负的净重值,且未运行,且水分测定仪处于平衡稳定状态 才允许运行 { if (FollowCount++ > 4 * ZeroTrackTime) // 零点动态跟踪 { FollowCount = 0; TimeCount = 0; CalibrateWeight2.WeightZero += ADvalue2filter - ADvalue2filterOld; + WeightZeroOld = CalibrateWeight2.WeightZero; ADvalue2filterOld = ADvalue2filter; } } @@ -497,7 +631,23 @@ void AD7190_Run(const void *p_arg) FollowCount = 0; ADvalue2filterOld = ADvalue2filter; } - if (fabs(WeightData2 - WeightData2Temp) > 0.01f) + + if ( fabs(WeightData2Temp) > ZeroTrackMax && fabs(WeightData2TempOld - WeightData2Temp) < FollowDlteaMax && fabs(WeightData2Temp - WeightRefStart) < FollowMax && ( pageNum != 1)) //重量不变且大于零点跟踪范围未加热进行长期数据跟踪 + { + if(FliterCount < FliterCountMax) + FliterCount++; + else + FliterCount = FliterCountMax; + WeightData2Finally = WeightData2Finally + (WeightData2Temp - WeightData2Finally) * ( 1.00000f - FollowAlpha * FliterCount / FliterCountMax); + } + else + { + WeightData2Finally = WeightRefStart = WeightData2Temp; + FliterCount = 0; + } + + + if (fabs(WeightData2 - WeightData2Finally) > 0.006f) // 变化大于50mg/s 置位传感器不稳定标志 { weightChanging = 1; } @@ -505,12 +655,17 @@ void AD7190_Run(const void *p_arg) { weightChanging = 0; } - if (fabs(WeightData2 - WeightData2Temp) > 0.001f) // 数据滤波 - { - WeightData2Temp = (int32_t)(WeightData2Temp * 10000) / 10000.0f; - WeightData2 = WeightData2Temp; + + if (fabs(WeightData2 - WeightData2Finally) > 0.0002f) // 数据滤波 + { + WeightData2 = (int32_t)(WeightData2Finally * 10000) / 10000.0f; } + else if(fabs(WeightData2Finally) < 0.001f) + { + WeightData2 = (int32_t)(WeightData2Finally * 10000) / 10000.0f; + } + } } @@ -518,44 +673,33 @@ osThreadDef(AD7190_Run, osPriorityNormal, 1, 0); // AD7190函数:初始化AD7190 void AD7190_Init() { + uint32_t modeReg; + SPI1_Configuration(); SPI1_ReadWrite(0xFF); SPI1_ReadWrite(0xFF); SPI1_ReadWrite(0xFF); SPI1_ReadWrite(0xFF); - SPI1_ReadWrite(0xFF); + SPI1_ReadWrite(0xFF); // 40个脉冲复位ADC osDelay(50); - uint32_t modeReg; // 配置寄存器:通道选择、参考电压源、增益和工作模式 // 打开PSW uint8_t GPOC = AD7190_ReadRegisterOnce(AD7190_REG_GPOC); GPOC |= AD7190_GPOCON_BDPSW; AD7190_WriteRegisterOnce(AD7190_REG_GPOC, GPOC); osDelay(5); - uint32_t config = 0x0000011F; + uint32_t config = AD7190_CONF_GAIN_128 | AD7190_CONF_UB | AD7190_CONF_BUF | AD7190_CONF_CH0;// 0x0000011F; AD7190_WriteRegister(AD7190_REG_CONF, config); osDelay(5); - modeReg |= AD7190_CONF_MODE_FS9_0; // 滤波器最低速率输出 + modeReg = AD7190_CONF_MODE_FS9_0 ;// 滤波器最低速率输出 执行上电校准 AD7190_WriteRegister(AD7190_REG_MODE, modeReg); osDelay(5); - // 执行上电校准 - modeReg = AD7190_ReadRegister(AD7190_REG_MODE); - modeReg &= ~0x00E00000; - modeReg |= AD7190_CONF_MODE_ZEROSEL; - AD7190_WriteRegister(AD7190_REG_MODE, modeReg); - osDelay(5); - AD7190_WaitForReady(1000000); - modeReg &= ~0x00E00000; - modeReg |= AD7190_CONF_MODE_FullSEL; - AD7190_WriteRegister(AD7190_REG_MODE, modeReg); - osDelay(5); - AD7190_WaitForReady(1000000); - // 校准完成 切换回连续转换模式 - modeReg = 0x000803FF; + //连续转换模式 + modeReg = AD7190_CONF_MODE_FS9_0 | AD7190_CONF_MODE_InCLK; AD7190_WriteRegister(AD7190_REG_MODE, modeReg); - CalibrateWeight2.WeightSlope = 0.0000818f; - CalibrateWeight2.WeightZero = 745430; + CalibrateWeight2.WeightSlope = 0.0001530345f; +// CalibrateWeight2.WeightZero = 745430; osThreadCreate(osThread(AD7190_Run), NULL); } diff --git a/Source/APPDEF.H b/Source/APPDEF.H index a93b3f8..80f9d85 100644 --- a/Source/APPDEF.H +++ b/Source/APPDEF.H @@ -52,21 +52,7 @@ extern uint8_t ucRegCoilsBuf[]; *******************************************************************************/ extern void delay_us(uint32_t us); -/******************************** 功能说明 ************************************* - * - *******************************************************************************/ -extern float UltrasoundData; -extern float H, S, V; -extern int sR, sG, sB; -struct ColorH { - float A; // 三次方 - float B; // 二次方 - float C; // 一次方 - float D; // 常数 -}; -extern struct ColorH ColorHSV; -extern float ColorOut; /******************************** 功能说明 ************************************* * *******************************************************************************/ @@ -80,18 +66,22 @@ extern void AD7190_Init(void); extern void AD7190_ReadVoltage(void); extern void WeightCtrl_Init(void); +extern uint8_t pageNum; struct uCalibrateWeight { double WeightSlope; // 斜率 - int32_t WeightZero; // 零点 + double WeightZero; // 零点 }; extern struct uCalibrateWeight CalibrateWeight; extern struct uCalibrateWeight CalibrateWeight2; extern uint32_t HX711Data; // 原始数据 extern uint32_t HX711Zero; // 原始数据 extern float WeightData; // 重量数据 -extern float WeightData2; // 重量数据 -extern float ADvalue2filter; +extern double WeightData2; // 重量数据 +extern double ADvalue2filter; +extern double WeightZeroOld; +extern double WeightData2Finally; +extern float Temperature; extern void MAX6675_Init(void); extern void USARTHMIInit(void); @@ -130,7 +120,7 @@ struct Pset { bool SW0; // 自定义开关1 bool SW1; // 自定义开关2 bool SW2; // 自定义开关3 - bool PercentChange; // 含水量含固量 + uint8_t PercentType; // 含水量含固量 uint8_t Title[32]; // 标题 uint8_t TitleOne[32]; // 标题1 uint8_t TitleTwo[32]; // 标题2 @@ -147,7 +137,7 @@ extern void FM24_Write(uint16_t addr, uint8_t *data, uint8_t len); extern void FM24_Read(uint16_t addr, uint8_t *data, uint8_t len); #define CalibrateWeight2Set 0x0140u #define RW_Set 0x0200u -#define CRCHead 0x55AAu +#define CRCHead 0x5A5Au // #define RW_WeightSlope 0x0104u // #define RW_WeightZero 0x0108u // #define RW_ColorHSV_A 0x010Cu diff --git a/Source/HMI.c b/Source/HMI.c index 73ec8b4..3c32b4d 100644 --- a/Source/HMI.c +++ b/Source/HMI.c @@ -16,16 +16,19 @@ uint8_t MaxWeight; uint8_t MaxTemp; float Resolution; float ResolutionWater; - +float SHIZHONG; +float HUICHAO; float StartWeight = 0; float StopWeight = 0; -float WaterPercent = 0.0f; +float PercentData = 0.0f; +float WaterPercentData = 0.0f; float WeightOld = 0.0f; uint16_t CountNochange = 0; uint16_t CountDelay = 0; uint8_t SCount = 0; uint16_t SRange = 100; float DisData = 0; +float FinishDisData; uint8_t NameBuf[40]; uint8_t startTime[20]; bool Finisflag = false; @@ -35,10 +38,6 @@ void FM24DataCRC() { FM24_Read(RW_Set, (uint8_t *)&Set, sizeof(Set)); FM24_Read(RW_Set, (uint8_t *)&Set, sizeof(Set)); - FM24_Read(CalibrateWeight2Set, (uint8_t *)&CalibrateWeight2, sizeof(CalibrateWeight2)); - if (CalibrateWeight2.WeightSlope < 0.0000001) { - CalibrateWeight2.WeightSlope = 0.0000001; - } if ((CRCHead != Set.CRC_Head) || (CRCEnd != Set.CRC_Tail)) { // 如果EEPROM中的数据未初始化或异常,则重新写入默认值 Set.CRC_Head = CRCHead; Set.AutoTimeStop = 60; // 60秒 @@ -50,16 +49,16 @@ void FM24DataCRC() Set.FilterQ = 5; // 滤波器信任度 Set.SensorQ = 2; // 传感器信任度 Set.HoldTime = 5; // 稳定时间 5秒 - Set.RuBianLiang = 6; // 蠕变量 - Set.RuBianTime = 8; // 蠕变时间 - Set.ZeroTrack = 0; // 零点跟踪 + Set.RuBianLiang = 5; // 蠕变量 + Set.RuBianTime = 0; // 蠕变时间 + Set.ZeroTrack = 1; // 零点跟踪 Set.TempDelta = 0; // 校准温度差 Set.WeightSet = 0; // 校准重量 Set.BaudRate = 9600; // 波特率 Set.SW0 = false; // 自定义开关1 Set.SW1 = false; // 自定义开关2 Set.SW2 = false; // 自定义开关3 - Set.PercentChange = false; // 默认显示含水量 + Set.PercentType = 0; // 默认显示含水量 sprintf((char *)Set.Title, "测试结果"); // 标题 sprintf((char *)Set.TitleOne, "山东云唐智能科技有限公司"); // 标题1 sprintf((char *)Set.TitleTwo, ""); // 标题2 @@ -67,11 +66,16 @@ void FM24DataCRC() sprintf((char *)Set.UserName, "实验室"); // 用户名 sprintf((char *)Set.UserPwd, "123456"); // 密码 Set.CRC_Tail = CRCEnd; - // FM24_Write(RW_Set, (uint8_t *)&Set, sizeof(Set)); - CalibrateWeight2.WeightSlope = 0.0000818f; - CalibrateWeight2.WeightZero = 745430; - // FM24_Write(CalibrateWeight2Set, (uint8_t *)&CalibrateWeight2, sizeof(CalibrateWeight2)); + FM24_Write(RW_Set, (uint8_t *)&Set, sizeof(Set)); + FM24_Write(CalibrateWeight2Set, (uint8_t *)&CalibrateWeight2, sizeof(CalibrateWeight2)); } + FM24_Read(CalibrateWeight2Set, (uint8_t *)&CalibrateWeight2, sizeof(CalibrateWeight2)); + if (CalibrateWeight2.WeightSlope < 0.0000001) + { + CalibrateWeight2.WeightSlope = 0.0000818f; + CalibrateWeight2.WeightZero = 745430; + } + } //bool t17Dis = false; //uint16_t t17DisCount =0; @@ -80,8 +84,8 @@ uint16_t t18DisCount =0; osSemaphoreId semDataChange; void DataUnpack(const void *p_arg) { - static uint8_t buf[150]__attribute__((at(0x20000000 + 0x1000))); - osSemaphoreDef(semDataChange); + static uint8_t buf[150]__attribute__((at(0x20000000 + 0x1000))); + osSemaphoreDef(semDataChange); semDataChange = osSemaphoreCreate(osSemaphore(semDataChange), 0); uint8_t i, j; for (;;) // @@ -89,513 +93,579 @@ void DataUnpack(const void *p_arg) osSemaphoreWait(semDataBack, osWaitForever); switch ((DataInbuf[1] << 8) | (DataInbuf[2])) // 页面控件ID { - case 0x0002: // 开始按钮 - if (weightChanging) { - sprintf((char *)buf, "play 1,3,0\xFF\xFF\xFF\0"); - DataPrint(buf, strlen((const char *)buf)); + case 0x0002: // 开始按钮 + if (weightChanging) { + sprintf((char *)buf, "play 1,3,0\xFF\xFF\xFF\0"); + DataPrint(buf, strlen((const char *)buf)); // sprintf((char *)buf, "t17.txt=\"传感器不稳定\"\xFF\xFF\xFF\0"); // DataPrint(buf, strlen((const char *)buf)); // t17Dis = true; // t17DisCount =0; - break; - } - if (WeightData2 < 1) { - sprintf((char *)buf, "play 1,6,0\xFF\xFF\xFF\0"); - DataPrint(buf, strlen((const char *)buf)); + break; + } + if (WeightData2 < 1) { + sprintf((char *)buf, "play 1,6,0\xFF\xFF\xFF\0"); + DataPrint(buf, strlen((const char *)buf)); // sprintf((char *)buf, "t17.txt=\"样品重量过轻\"\xFF\xFF\xFF\0"); // DataPrint(buf, strlen((const char *)buf)); // t17Dis = true; // t17DisCount =0; - break; - } - if (WeightData2 > MaxWeight) { - sprintf((char *)buf, "play 1,7,0\xFF\xFF\xFF\0"); - DataPrint(buf, strlen((const char *)buf)); + break; + } + if (WeightData2 > MaxWeight) { + sprintf((char *)buf, "play 1,7,0\xFF\xFF\xFF\0"); + DataPrint(buf, strlen((const char *)buf)); // sprintf((char *)buf, "t17.txt=\"样品重量过重\"\xFF\xFF\xFF\0"); // DataPrint(buf, strlen((const char *)buf)); // t17Dis = true; // t17DisCount =0; - break; - } - if (SafeCheck()) - { // 请关闭加热仓 - sprintf((char *)buf, "play 1,8,0\xFF\xFF\xFF\0"); - DataPrint(buf, strlen((const char *)buf)); + break; + } + if (SafeCheck()) + { // 请关闭加热仓 + sprintf((char *)buf, "play 1,8,0\xFF\xFF\xFF\0"); + DataPrint(buf, strlen((const char *)buf)); // sprintf((char *)buf, "t17.txt=\"请关闭加热仓\"\xFF\xFF\xFF\0"); // DataPrint(buf, strlen((const char *)buf)); // t17Dis = true; // t17DisCount =0; - break; - } + break; + } - sprintf((char *)buf, "play 1,5,0\xFF\xFF\xFF\0"); - DataPrint(buf, strlen((const char *)buf)); - osDelay(100); - pageNum = 1; - sprintf((char *)startTime, "%04d-%02d-%02d %02d:%02d", (DataInbuf[4] << 8 | DataInbuf[3]), DataInbuf[5], DataInbuf[6], DataInbuf[7], DataInbuf[8]); - for (i = 0; i < strlen((const char *)(&DataInbuf[9])) - 1; i++) { - NameBuf[i] = DataInbuf[i + 9]; - } - break; - case 0x0016: // 定时停机时间 - { - uint16_t TimeSt = DataInbuf[3] + (DataInbuf[4] << 8); - if (TimeSt == 0) { - Set.TimeStop = 1; - } else if (TimeSt > 99) { - Set.TimeStop = 99; - } else { - Set.TimeStop = TimeSt; - } - sprintf((char *)buf, "main.n0.val=%d\xFF\xFF\xFF\0", Set.TimeStop); - DataPrint(buf, strlen((const char *)buf)); + sprintf((char *)buf, "play 1,5,0\xFF\xFF\xFF\0"); + DataPrint(buf, strlen((const char *)buf)); + osDelay(100); + pageNum = 1; + sprintf((char *)startTime, "%04d-%02d-%02d %02d:%02d", (DataInbuf[4] << 8 | DataInbuf[3]), DataInbuf[5], DataInbuf[6], DataInbuf[7], DataInbuf[8]); + for (i = 0; i < strlen((const char *)(&DataInbuf[9])) - 1; i++) { + NameBuf[i] = DataInbuf[i + 9]; } - FM24_Write(RW_Set, (uint8_t *)&Set, sizeof(Set)); - break; - case 0x0017: // 干燥温度 - { - uint16_t TempSe = DataInbuf[3] + (DataInbuf[4] << 8); - if (TempSe < 40) { - Set.TempSet = 40; - } else if (TempSe > MaxTemp) { - Set.TempSet = MaxTemp; - } else { - Set.TempSet = TempSe; - } - sprintf((char *)buf, "main.n1.val=%d\xFF\xFF\xFF\0", Set.TempSet); - DataPrint(buf, strlen((const char *)buf)); + break; + case 0x0013: // 定时停机时间 + { + uint16_t TimeSt = DataInbuf[3] + (DataInbuf[4] << 8); + if (TimeSt == 0) { + Set.TimeStop = 1; + } else if (TimeSt > 99) { + Set.TimeStop = 99; + } else { + Set.TimeStop = TimeSt; } - FM24_Write(RW_Set, (uint8_t *)&Set, sizeof(Set)); - break; - case 0x0014: // 称重调零 + sprintf((char *)buf, "main.n0.val=%d\xFF\xFF\xFF\0", Set.TimeStop); + DataPrint(buf, strlen((const char *)buf)); + } + FM24_Write(RW_Set, (uint8_t *)&Set, sizeof(Set)); + break; + case 0x0014: // 干燥温度 + { + uint16_t TempSe = DataInbuf[3] + (DataInbuf[4] << 8); + if (TempSe < 40) { + Set.TempSet = 40; + } else if (TempSe > MaxTemp) { + Set.TempSet = MaxTemp; + } else { + Set.TempSet = TempSe; + } + sprintf((char *)buf, "main.n1.val=%d\xFF\xFF\xFF\0", Set.TempSet); + DataPrint(buf, strlen((const char *)buf)); + } + FM24_Write(RW_Set, (uint8_t *)&Set, sizeof(Set)); + break; + case 0x0015: // 称重调零 + if( fabs(WeightData2) <= MaxWeight * 0.04 ) // 型评 置零装置的效果不得大于总秤量的4% + { i = 0; - osDelay(100); - sprintf((char *)buf, "tsw b1,0\xFF\xFF\xFF\0"); - DataPrint(buf, strlen((const char *)buf)); + osDelay(100); + sprintf((char *)buf, "tsw b1,0\xFF\xFF\xFF\0"); + DataPrint(buf, strlen((const char *)buf)); do { i++; - if (fabs(CalibrateWeight2.WeightZero - ADvalue2filter) > 10) { - CalibrateWeight2.WeightZero = ADvalue2filter; + if (fabs(CalibrateWeight2.WeightZero - ADvalue2filter) > 5) + { + WeightZeroOld = CalibrateWeight2.WeightZero = ADvalue2filter; osDelay(600); - } else { + } + else + { + WeightZeroOld = CalibrateWeight2.WeightZero = ADvalue2filter; sprintf((char *)buf, "t18.txt=\"调零成功\"\xFF\xFF\xFF\0"); DataPrint(buf, strlen((const char *)buf)); - t18Dis = true; - t18DisCount =0; - break; + t18Dis = true; + t18DisCount =0; + break; } } while (i < 12); - if( i >= 12) - { - sprintf((char *)buf, "t18.txt=\"调零失败\"\xFF\xFF\xFF\0"); - DataPrint(buf, strlen((const char *)buf)); - t18Dis = true; - t18DisCount =0; - } - sprintf((char *)buf, "tsw b1,1\xFF\xFF\xFF\0"); + } + else + { + i = 12; + } + if( i >= 12 ) + { + sprintf((char *)buf, "t18.txt=\"调零失败\"\xFF\xFF\xFF\0"); DataPrint(buf, strlen((const char *)buf)); - FM24_Write(CalibrateWeight2Set, (uint8_t *)&CalibrateWeight2, sizeof(CalibrateWeight2)); - break; - case 0x0022: // 停机方式 - Set.AutoStyle = DataInbuf[3]; - FM24_Write(RW_Set, (uint8_t *)&Set, sizeof(Set)); - break; - case 0x0023: // 干燥模式 - Set.FastStyle = DataInbuf[3]; - FM24_Write(RW_Set, (uint8_t *)&Set, sizeof(Set)); - break; - case 0x0101: // 停止/返回按钮 - if ((Set.AutoStyle == 1) && (!Finisflag)) { - Finisflag = true; - } else { - Finisflag = false; - pageNum = 0; - } - break; - case 0x0129: // 保存 - sprintf((char *)buf, "DataDeal.DataLog.insert(\"%s^%s^%.3fg^%.3fg^%.2f%%^%.2f%%\")\xFF\xFF\xFF\0", NameBuf, startTime, StartWeight, StopWeight, WaterPercent, 100.0f - WaterPercent); - DataPrint(buf, strlen((const char *)buf)); - sprintf((char *)buf, "RunPage.t8.txt=\"保存成功!\"\xFF\xFF\xFF\0"); - DataPrint(buf, strlen((const char *)buf)); - break; - case 0x012A: // 打印 - sprintf((char *)buf, "/****************************/\r\n %s\r\n\0", Set.Title); + t18Dis = true; + t18DisCount =0; + } + sprintf((char *)buf, "tsw b1,1\xFF\xFF\xFF\0"); + DataPrint(buf, strlen((const char *)buf)); + FM24_Write(CalibrateWeight2Set, (uint8_t *)&CalibrateWeight2, sizeof(CalibrateWeight2)); + break; + case 0x0022: // 停机方式 + Set.AutoStyle = DataInbuf[3]; + FM24_Write(RW_Set, (uint8_t *)&Set, sizeof(Set)); + break; + case 0x0023: // 干燥模式 + Set.FastStyle = DataInbuf[3]; + FM24_Write(RW_Set, (uint8_t *)&Set, sizeof(Set)); + break; + case 0x0101: // 停止/返回按钮 + if ((Set.AutoStyle == 1) && (!Finisflag)) { + Finisflag = true; + } else { + Finisflag = false; + pageNum = 0; + } + break; + case 0x0129: // 保存 + if( (SHIZHONG == 999) && (HUICHAO == 999)) + { + sprintf((char *)buf, "DataDeal.DataLog.insert(\"%s^%s^%.3fg^%.3fg^%.2f%%^%.2f%%^-----%%^-----%%\")\xFF\xFF\xFF\0", NameBuf, startTime, StartWeight, StopWeight, WaterPercentData, 100.0f - WaterPercentData); + } + if( (SHIZHONG == 999) && (HUICHAO != 999)) + { + sprintf((char *)buf, "DataDeal.DataLog.insert(\"%s^%s^%.3fg^%.3fg^%.2f%%^%.2f%%^-----%%^%.2f%%\")\xFF\xFF\xFF\0", NameBuf, startTime, StartWeight, StopWeight, WaterPercentData, 100.0f - WaterPercentData, HUICHAO); + } + if( (SHIZHONG != 999) && (HUICHAO == 999)) + { + sprintf((char *)buf, "DataDeal.DataLog.insert(\"%s^%s^%.3fg^%.3fg^%.2f%%^%.2f%%^%.2f%%^-----%%\")\xFF\xFF\xFF\0", NameBuf, startTime, StartWeight, StopWeight, WaterPercentData, 100.0f - WaterPercentData, SHIZHONG); + } + if( (SHIZHONG != 999) && (HUICHAO != 999)) + { + sprintf((char *)buf, "DataDeal.DataLog.insert(\"%s^%s^%.3fg^%.3fg^%.2f%%^%.2f%%^%.2f%%^%.2f%%\")\xFF\xFF\xFF\0", NameBuf, startTime, StartWeight, StopWeight, WaterPercentData, 100.0f - WaterPercentData, SHIZHONG, HUICHAO); + } + DataPrint(buf, strlen((const char *)buf)); + sprintf((char *)buf, "RunPage.t8.txt=\"保存成功!\"\xFF\xFF\xFF\0"); + DataPrint(buf, strlen((const char *)buf)); + break; + case 0x012A: // 打印 + sprintf((char *)buf, "/****************************/\r\n %s\r\n\0", Set.Title); + USART2Print(buf, strlen((const char *)buf)); + if (Set.SW0) { + sprintf((char *)buf, " %s\r\n\0", Set.TitleOne); USART2Print(buf, strlen((const char *)buf)); - if (Set.SW0) { - sprintf((char *)buf, " %s\r\n\0", Set.TitleOne); - USART2Print(buf, strlen((const char *)buf)); - } - if (Set.SW1) { - sprintf((char *)buf, " %s\r\n\0", Set.TitleTwo); - USART2Print(buf, strlen((const char *)buf)); - } - if (Set.SW2) { - sprintf((char *)buf, " %s\r\n\0", Set.TitleThree); - USART2Print(buf, strlen((const char *)buf)); - } - sprintf((char *)buf, " 样品名:%s\r\n 测试时间:%s\r\n 起始重量:%.3fg\r\n 结束重量: %.3fg\r\n 含水量: %.2f%% \r\n 含固量: %.2f%%\r\n \0", NameBuf, startTime, StartWeight, StopWeight, WaterPercent, 100.0f - WaterPercent); + } + if (Set.SW1) { + sprintf((char *)buf, " %s\r\n\0", Set.TitleTwo); USART2Print(buf, strlen((const char *)buf)); - sprintf((char *)buf, "/****************************/\r\n\r\n\r\n\r\n \0"); + } + if (Set.SW2) { + sprintf((char *)buf, " %s\r\n\0", Set.TitleThree); USART2Print(buf, strlen((const char *)buf)); - break; - case 0x012B: // 查询 - break; - case 0x012C://含固量含水量 - Set.PercentChange = !Set.PercentChange; - FM24_Write(RW_Set, (uint8_t *)&Set, sizeof(Set)); - break; - case 0x0201: // 称重设置 - sprintf((char *)buf, "page WeightSet\xFF\xFF\xFF\0"); - DataPrint(buf, strlen((const char *)buf)); - pageNum = 3; - sprintf((char *)buf, "WeightSet.cb5.val=%d\xFF\xFF\xFF\0", Set.FilterQ); - DataPrint(buf, strlen((const char *)buf)); - sprintf((char *)buf, "WeightSet.cb4.val=%d\xFF\xFF\xFF\0", Set.RuBianLiang); - DataPrint(buf, strlen((const char *)buf)); - sprintf((char *)buf, "WeightSet.cb3.val=%d\xFF\xFF\xFF\0", Set.SensorQ); - DataPrint(buf, strlen((const char *)buf)); - sprintf((char *)buf, "WeightSet.cb2.val=%d\xFF\xFF\xFF\0", Set.RuBianTime); - DataPrint(buf, strlen((const char *)buf)); - sprintf((char *)buf, "WeightSet.cb1.val=%d\xFF\xFF\xFF\0", Set.HoldTime); - DataPrint(buf, strlen((const char *)buf)); - sprintf((char *)buf, "WeightSet.cb0.val=%d\xFF\xFF\xFF\0", Set.ZeroTrack); - DataPrint(buf, strlen((const char *)buf)); - sprintf((char *)buf, "WeightSet.n0.val=%d\xFF\xFF\xFF\0", Set.AutoTimeStop); - DataPrint(buf, strlen((const char *)buf)); - sprintf((char *)buf, "WeightSet.n1.val=%d\xFF\xFF\xFF\0", Set.AutoWeightChange); - DataPrint(buf, strlen((const char *)buf)); - break; - case 0x0202: // 标定设置 - pageNum = 4; - break; - case 0x0203: // 打印设置 - pageNum = 5; - break; - case 0x0206: // 系统设置 - pageNum = 8; - sprintf((char *)buf, "SysSet.t14.txt=\"%s\"\xFF\xFF\xFF\0", Set.UserName); - DataPrint(buf, strlen((const char *)buf)); - sprintf((char *)buf, "SysSet.t0.txt=\"\"\xFF\xFF\xFF\0"); - DataPrint(buf, strlen((const char *)buf)); - break; - case 0x0207: // 返回 - pageNum = 0; - break; - case 0x030C: // 滤波器信任度 - Set.FilterQ = DataInbuf[3]; - FM24_Write(RW_Set, (uint8_t *)&Set, sizeof(Set)); - break; - case 0x030A: // 传感器信任度 - Set.SensorQ = DataInbuf[3]; - FM24_Write(RW_Set, (uint8_t *)&Set, sizeof(Set)); - break; - case 0x0308: // 稳定时间 - Set.HoldTime = DataInbuf[3]; - FM24_Write(RW_Set, (uint8_t *)&Set, sizeof(Set)); - break; - case 0x030B: // 蠕变量 - Set.RuBianLiang = DataInbuf[3]; - FM24_Write(RW_Set, (uint8_t *)&Set, sizeof(Set)); - break; - case 0x0309: // 蠕变时间 - Set.RuBianTime = DataInbuf[3]; - FM24_Write(RW_Set, (uint8_t *)&Set, sizeof(Set)); - break; - case 0x0307: // 零点跟踪 - Set.ZeroTrack = DataInbuf[3]; - FM24_Write(RW_Set, (uint8_t *)&Set, sizeof(Set)); - break; - case 0x0301: // 自动停机时间 - if(DataInbuf[3] <= 5) - { - Set.AutoTimeStop = 5; - } - else - if(DataInbuf[3] > 120) - { - Set.AutoTimeStop = 120; - } - else - { - Set.AutoTimeStop = DataInbuf[3]; - } - FM24_Write(RW_Set, (uint8_t *)&Set, sizeof(Set)); - break; - case 0x0302: // 自动停机重量 - if(DataInbuf[3] <= 5) - { - Set.AutoWeightChange = 5; - } - else - if(DataInbuf[3] > 200) - { - Set.AutoWeightChange = 200; - } - else - { - Set.AutoWeightChange = DataInbuf[3]; - } - FM24_Write(RW_Set, (uint8_t *)&Set, sizeof(Set)); - break; - case 0x0310: // 返回 - pageNum = 2; - break; - case 0x0401: - Set.TempDelta = (DataInbuf[3] + (DataInbuf[4] << 8)) / 10.0f - (Temperature - Set.TempDelta); - FM24_Write(RW_Set, (uint8_t *)&Set, sizeof(Set)); - break; - case 0x0403: - CalibrateWeight2.WeightSlope = ((DataInbuf[3] + (DataInbuf[4] << 8) + (DataInbuf[5] << 16) + (DataInbuf[6] << 24)) / 10000.0f) / ((int32_t)ADvalue2filter - (int32_t)CalibrateWeight2.WeightZero); - FM24_Write(CalibrateWeight2Set, (uint8_t *)&CalibrateWeight2, sizeof(CalibrateWeight2)); - break; - case 0x0406: - CalibrateWeight2.WeightZero = ADvalue2filter; - break; - case 0x040A: // 返回 - pageNum = 2; - break; - case 0x0501: - for (i = 0; i < strlen((const char *)(&DataInbuf[3])) - 1; i++) { - Set.Title[i] = DataInbuf[i + 3]; - } - Set.Title[i] = '\0'; - FM24_Write(RW_Set, (uint8_t *)&Set, sizeof(Set)); - break; - case 0x0502: - for (i = 0; i < strlen((const char *)(&DataInbuf[3])) - 1; i++) { - Set.TitleOne[i] = DataInbuf[i + 3]; - } - Set.TitleOne[i] = '\0'; - FM24_Write(RW_Set, (uint8_t *)&Set, sizeof(Set)); - break; - case 0x0503: - for (i = 0; i < strlen((const char *)(&DataInbuf[3])) - 1; i++) { - Set.TitleTwo[i] = DataInbuf[i + 3]; - } - Set.TitleTwo[i] = '\0'; - FM24_Write(RW_Set, (uint8_t *)&Set, sizeof(Set)); - break; - case 0x0504: - for (i = 0; i < strlen((const char *)(&DataInbuf[3])) - 1; i++) { - Set.TitleThree[i] = DataInbuf[i + 3]; - } - Set.TitleThree[i] = '\0'; - FM24_Write(RW_Set, (uint8_t *)&Set, sizeof(Set)); - break; - case 0x0506: - Set.SW0 = DataInbuf[3]; - FM24_Write(RW_Set, (uint8_t *)&Set, sizeof(Set)); - break; - case 0x0507: - + } + + if( (SHIZHONG == 999) && (HUICHAO == 999)) + { + sprintf((char *)buf, " 样品名:%s\r\n 测试时间:%s\r\n 起始重量:%.3fg\r\n 结束重量: %.3fg\r\n 含水量: %.2f%% \r\n 含固量: %.2f%%\r\n 湿重率: -----%%\r\n 回潮率: -----%%\r\n\0", NameBuf, startTime, StartWeight, StopWeight, WaterPercentData, 100.0f - WaterPercentData); + } + if( (SHIZHONG == 999) && (HUICHAO != 999)) + { + sprintf((char *)buf, " 样品名:%s\r\n 测试时间:%s\r\n 起始重量:%.3fg\r\n 结束重量: %.3fg\r\n 含水量: %.2f%% \r\n 含固量: %.2f%%\r\n 湿重率: -----%%\r\n 回潮率: %.2f%%\r\n\0", NameBuf, startTime, StartWeight, StopWeight, WaterPercentData, 100.0f - WaterPercentData, HUICHAO); + } + if( (SHIZHONG != 999) && (HUICHAO == 999)) + { + sprintf((char *)buf, " 样品名:%s\r\n 测试时间:%s\r\n 起始重量:%.3fg\r\n 结束重量: %.3fg\r\n 含水量: %.2f%% \r\n 含固量: %.2f%%\r\n 湿重率: %.2f%%\r\n 回潮率:-----%%\r\n\0", NameBuf, startTime, StartWeight, StopWeight, WaterPercentData, 100.0f - WaterPercentData, SHIZHONG); + } + if( (SHIZHONG != 999) && (HUICHAO != 999)) + { + sprintf((char *)buf, " 样品名:%s\r\n 测试时间:%s\r\n 起始重量:%.3fg\r\n 结束重量: %.3fg\r\n 含水量: %.2f%% \r\n 含固量: %.2f%%\r\n 湿重率: %.2f%%\r\n 回潮率: %.2f%%\r\n\0", NameBuf, startTime, StartWeight, StopWeight, WaterPercentData, 100.0f - WaterPercentData, SHIZHONG, HUICHAO); + } + + + USART2Print(buf, strlen((const char *)buf)); + sprintf((char *)buf, "/****************************/\r\n\r\n\r\n\r\n \0"); + USART2Print(buf, strlen((const char *)buf)); + break; + case 0x012B: // 查询 + break; + case 0x012C://含固量含水量 + Set.PercentType = Set.PercentType + 1; + if(Set.PercentType >= 4 ) + Set.PercentType = 0; + FM24_Write(RW_Set, (uint8_t *)&Set, sizeof(Set)); + break; + case 0x0201: // 称重设置 + sprintf((char *)buf, "page WeightSet\xFF\xFF\xFF\0"); + DataPrint(buf, strlen((const char *)buf)); + pageNum = 3; + sprintf((char *)buf, "WeightSet.cb5.val=%d\xFF\xFF\xFF\0", Set.FilterQ); + DataPrint(buf, strlen((const char *)buf)); + sprintf((char *)buf, "WeightSet.cb4.val=%d\xFF\xFF\xFF\0", Set.RuBianLiang); + DataPrint(buf, strlen((const char *)buf)); + sprintf((char *)buf, "WeightSet.cb3.val=%d\xFF\xFF\xFF\0", Set.SensorQ); + DataPrint(buf, strlen((const char *)buf)); + sprintf((char *)buf, "WeightSet.cb2.val=%d\xFF\xFF\xFF\0", Set.RuBianTime); + DataPrint(buf, strlen((const char *)buf)); + sprintf((char *)buf, "WeightSet.cb1.val=%d\xFF\xFF\xFF\0", Set.HoldTime); + DataPrint(buf, strlen((const char *)buf)); + sprintf((char *)buf, "WeightSet.cb0.val=%d\xFF\xFF\xFF\0", Set.ZeroTrack); + DataPrint(buf, strlen((const char *)buf)); + sprintf((char *)buf, "WeightSet.n0.val=%d\xFF\xFF\xFF\0", Set.AutoTimeStop); + DataPrint(buf, strlen((const char *)buf)); + sprintf((char *)buf, "WeightSet.n1.val=%d\xFF\xFF\xFF\0", Set.AutoWeightChange); + DataPrint(buf, strlen((const char *)buf)); + break; + case 0x0202: // 标定设置 + pageNum = 4; + break; + case 0x0203: // 打印设置 + pageNum = 5; + break; + case 0x0206: // 系统设置 + pageNum = 8; + sprintf((char *)buf, "SysSet.t14.txt=\"%s\"\xFF\xFF\xFF\0", Set.UserName); + DataPrint(buf, strlen((const char *)buf)); + sprintf((char *)buf, "SysSet.t0.txt=\"\"\xFF\xFF\xFF\0"); + DataPrint(buf, strlen((const char *)buf)); + break; + case 0x0207: // 返回 + pageNum = 0; + break; + case 0x030C: // 滤波器信任度 + Set.FilterQ = DataInbuf[3]; + FM24_Write(RW_Set, (uint8_t *)&Set, sizeof(Set)); + break; + case 0x030A: // 传感器信任度 + Set.SensorQ = DataInbuf[3]; + FM24_Write(RW_Set, (uint8_t *)&Set, sizeof(Set)); + break; + case 0x0308: // 稳定时间 + Set.HoldTime = DataInbuf[3]; + FM24_Write(RW_Set, (uint8_t *)&Set, sizeof(Set)); + break; + case 0x030B: // 蠕变量 + Set.RuBianLiang = DataInbuf[3]; + FM24_Write(RW_Set, (uint8_t *)&Set, sizeof(Set)); + break; + case 0x0309: // 蠕变时间 + Set.RuBianTime = DataInbuf[3]; + FM24_Write(RW_Set, (uint8_t *)&Set, sizeof(Set)); + break; + case 0x0307: // 零点跟踪 + Set.ZeroTrack = DataInbuf[3]; + FM24_Write(RW_Set, (uint8_t *)&Set, sizeof(Set)); + break; + case 0x0301: // 自动停机时间 + if(DataInbuf[3] <= 5) + { + Set.AutoTimeStop = 5; + } + else if(DataInbuf[3] > 120) + { + Set.AutoTimeStop = 120; + } + else + { + Set.AutoTimeStop = DataInbuf[3]; + } + FM24_Write(RW_Set, (uint8_t *)&Set, sizeof(Set)); + break; + case 0x0302: // 自动停机重量 + if(DataInbuf[3] <= 5) + { + Set.AutoWeightChange = 5; + } + else if(DataInbuf[3] > 200) + { + Set.AutoWeightChange = 200; + } + else + { + Set.AutoWeightChange = DataInbuf[3]; + } + FM24_Write(RW_Set, (uint8_t *)&Set, sizeof(Set)); + break; + case 0x0310: // 返回 + pageNum = 2; + break; + case 0x0401: + Set.TempDelta = (DataInbuf[3] + (DataInbuf[4] << 8)) / 10.0f - (Temperature - Set.TempDelta); + FM24_Write(RW_Set, (uint8_t *)&Set, sizeof(Set)); + break; + case 0x0403: + CalibrateWeight2.WeightSlope = ((DataInbuf[3] + (DataInbuf[4] << 8) + (DataInbuf[5] << 16) + (DataInbuf[6] << 24)) / 10000.0f) / ((int32_t)ADvalue2filter - (int32_t)CalibrateWeight2.WeightZero); + FM24_Write(CalibrateWeight2Set, (uint8_t *)&CalibrateWeight2, sizeof(CalibrateWeight2)); + break; + case 0x0406: + WeightZeroOld = CalibrateWeight2.WeightZero = ADvalue2filter; + break; + case 0x040A: // 返回 + pageNum = 2; + break; + case 0x0501: + for (i = 0; i < strlen((const char *)(&DataInbuf[3])) - 1; i++) { + Set.Title[i] = DataInbuf[i + 3]; + } + Set.Title[i] = '\0'; + FM24_Write(RW_Set, (uint8_t *)&Set, sizeof(Set)); + break; + case 0x0502: + for (i = 0; i < strlen((const char *)(&DataInbuf[3])) - 1; i++) { + Set.TitleOne[i] = DataInbuf[i + 3]; + } + Set.TitleOne[i] = '\0'; + FM24_Write(RW_Set, (uint8_t *)&Set, sizeof(Set)); + break; + case 0x0503: + for (i = 0; i < strlen((const char *)(&DataInbuf[3])) - 1; i++) { + Set.TitleTwo[i] = DataInbuf[i + 3]; + } + Set.TitleTwo[i] = '\0'; + FM24_Write(RW_Set, (uint8_t *)&Set, sizeof(Set)); + break; + case 0x0504: + for (i = 0; i < strlen((const char *)(&DataInbuf[3])) - 1; i++) { + Set.TitleThree[i] = DataInbuf[i + 3]; + } + Set.TitleThree[i] = '\0'; + FM24_Write(RW_Set, (uint8_t *)&Set, sizeof(Set)); + break; + case 0x0506: + Set.SW0 = DataInbuf[3]; + FM24_Write(RW_Set, (uint8_t *)&Set, sizeof(Set)); + break; + case 0x0507: + switch(DataInbuf[3] + (DataInbuf[4] << 8) + (DataInbuf[5] << 16) + (DataInbuf[6] << 24) ) { - case 0: - Set.BaudRate = 1200; + case 0: + Set.BaudRate = 1200; break; - case 1: - Set.BaudRate = 2400; + case 1: + Set.BaudRate = 2400; break; - case 2: - Set.BaudRate = 4800; + case 2: + Set.BaudRate = 4800; break; - case 3: - Set.BaudRate = 9600; + case 3: + Set.BaudRate = 9600; break; - case 4: - Set.BaudRate = 19200; + case 4: + Set.BaudRate = 19200; break; - case 5: - Set.BaudRate = 38400; + case 5: + Set.BaudRate = 38400; break; - case 6: - Set.BaudRate = 57600; - break; - case 7: - default: - Set.BaudRate = 115200; + case 6: + Set.BaudRate = 57600; break; - - } - FM24_Write(RW_Set, (uint8_t *)&Set, sizeof(Set)); - BIOS_USART2_Init(Set.BaudRate); - break; - case 0x0512: - Set.SW1 = DataInbuf[3]; - FM24_Write(RW_Set, (uint8_t *)&Set, sizeof(Set)); - break; - case 0x0513: - Set.SW2 = DataInbuf[3]; - FM24_Write(RW_Set, (uint8_t *)&Set, sizeof(Set)); - break; - case 0x050E: // 返回 - pageNum = 2; - break; - case 0x0704: - // 打印 - for (i = 0; i < strlen((const char *)(&DataInbuf[3])) - 1; i++) { - DataLogValue[i] = DataInbuf[i + 3]; - } - uint8_t NameBufSelect[30]; - uint8_t startTimeSelect[30]; - uint8_t StartWeightSelect[20]; - uint8_t StopWeightSelect[20]; - uint8_t WaterPercentSelect[20]; - uint8_t WaterPercentSelect_1[20]; - i = 0; - j = 0; - do { - NameBufSelect[j++] = DataLogValue[i++]; - } while (DataLogValue[i] != '^'); - i++; - j = 0; - do { - startTimeSelect[j++] = DataLogValue[i++]; - } while (DataLogValue[i] != '^'); - i++; - j = 0; - do { - StartWeightSelect[j++] = DataLogValue[i++]; - } while (DataLogValue[i] != '^'); - i++; - j = 0; - do { - StopWeightSelect[j++] = DataLogValue[i++]; - } while (DataLogValue[i] != '^'); - i++; - j = 0; - do { - WaterPercentSelect[j++] = DataLogValue[i++]; - } while (DataLogValue[i] != '^'); - i++; - j = 0; - do { - WaterPercentSelect_1[j++] = DataLogValue[i++]; - } while (i < strlen((const char *)DataLogValue)); - sprintf((char *)buf, "/****************************/\r\n %s\r\n\0", Set.Title); - USART2Print(buf, strlen((const char *)buf)); - osDelay(200); - if (Set.SW0) { - sprintf((char *)buf, " %s\r\n\0", Set.TitleOne); - USART2Print(buf, strlen((const char *)buf)); - osDelay(200); - } - if (Set.SW1) { - sprintf((char *)buf, " %s\r\n\0", Set.TitleTwo); - USART2Print(buf, strlen((const char *)buf)); - osDelay(200); - } - if (Set.SW2) { - sprintf((char *)buf, " %s\r\n\0", Set.TitleThree); - USART2Print(buf, strlen((const char *)buf)); - osDelay(200); - } - sprintf((char *)buf, " 样品名:%s\r\n 测试时间:%s\r\n 起始重量:%s\r\n 结束重量: %s\r\n 含水量: %s \r\n 含固量: %s\r\n \0", NameBufSelect, startTimeSelect, StartWeightSelect, StopWeightSelect, WaterPercentSelect, WaterPercentSelect_1 ); - USART2Print(buf, strlen((const char *)buf)); - osDelay(200); - sprintf((char *)buf, "/****************************/\r\n\r\n\r\n\r\n \0"); - USART2Print(buf, strlen((const char *)buf)); - break; - case 0x0801: - sprintf((char *)buf, "page SysSet\xFF\xFF\xFF\0"); - DataPrint(buf, strlen((const char *)buf)); - break; - case 0x0802: - sprintf((char *)buf, "page VL\xFF\xFF\xFF\0"); - DataPrint(buf, strlen((const char *)buf)); - break; - case 0x0803: - sprintf((char *)buf, "page About\xFF\xFF\xFF\0"); - DataPrint(buf, strlen((const char *)buf)); - break; - case 0x0809: - j = 0; - uint8_t NameBuf[16]; - uint8_t PwdBuf[16]; - i = 3; - do { - NameBuf[j++] = DataInbuf[i++]; - } while (DataInbuf[i] != '^'); - j = 0; - i++; - do { - PwdBuf[j++] = DataInbuf[i++]; - } while (i < strlen((const char *)DataInbuf) - 1); - if ((strcmp((const char *)NameBuf, (const char *)Set.UserName) == 0) && (strcmp((const char *)PwdBuf, (const char *)Set.UserPwd) == 0)) { - sprintf((char *)buf, "UserLogIn.t14.txt=%s\xFF\xFF\xFF\0", NameBuf); - DataPrint(buf, strlen((const char *)buf)); - sprintf((char *)buf, "UserLogIn.t0.txt=\"\"\xFF\xFF\xFF\0"); - DataPrint(buf, strlen((const char *)buf)); - sprintf((char *)buf, "UserLogIn.t3.txt=\"\"\xFF\xFF\xFF\0"); - DataPrint(buf, strlen((const char *)buf)); - sprintf((char *)buf, "page UserLogIn\xFF\xFF\xFF\0"); - DataPrint(buf, strlen((const char *)buf)); - pageNum = 9; - } else { - sprintf((char *)buf, "play 1,1,0\xFF\xFF\xFF\0"); - DataPrint(buf, strlen((const char *)buf)); - } - break; - case 0x0909: - j = 0; - i = 3; - do { - NameBuf[j++] = DataInbuf[i++]; - } while (DataInbuf[i] != '^'); - j = 0; - i++; - do { - PwdBuf[j++] = DataInbuf[i++]; - } while (i < strlen((const char *)DataInbuf) - 1); - strcpy((char *)Set.UserName, (const char *)NameBuf); - strcpy((char *)Set.UserPwd, (const char *)PwdBuf); - FM24_Write(RW_Set, (uint8_t *)&Set, sizeof(Set)); - case 0x0C00: - pageNum = 0; - break; - case 0x0C01: - sprintf((char *)buf, "LogIn.t14.txt=\"%s\"\xFF\xFF\xFF\0", Set.UserName); - DataPrint(buf, strlen((const char *)buf)); - break; - case 0x0D05: - j = 0; - i = 3; - do { - NameBuf[j++] = DataInbuf[i++]; - } while (DataInbuf[i] != '^'); - j = 0; - i++; - do { - PwdBuf[j++] = DataInbuf[i++]; - } while (i < strlen((const char *)DataInbuf) - 1); - if ((strcmp((const char *)NameBuf, (const char *)Set.UserName) == 0) && (strcmp((const char *)PwdBuf, (const char *)Set.UserPwd) == 0)) { - sprintf((char *)buf, "page main\xFF\xFF\xFF\0"); - DataPrint(buf, strlen((const char *)buf)); - pageNum = 0; - } else { - sprintf((char *)buf, "play 1,1,0\xFF\xFF\xFF\0"); - DataPrint(buf, strlen((const char *)buf)); - } + case 7: default: + Set.BaudRate = 115200; break; + + } + FM24_Write(RW_Set, (uint8_t *)&Set, sizeof(Set)); + BIOS_USART2_Init(Set.BaudRate); + break; + case 0x0512: + Set.SW1 = DataInbuf[3]; + FM24_Write(RW_Set, (uint8_t *)&Set, sizeof(Set)); + break; + case 0x0513: + Set.SW2 = DataInbuf[3]; + FM24_Write(RW_Set, (uint8_t *)&Set, sizeof(Set)); + break; + case 0x050E: // 返回 + pageNum = 2; + break; + case 0x0704: + // 打印 + for (i = 0; i < strlen((const char *)(&DataInbuf[3])) - 1; i++) { + DataLogValue[i] = DataInbuf[i + 3]; + } + uint8_t NameBufSelect[30]; + uint8_t startTimeSelect[30]; + uint8_t StartWeightSelect[20]; + uint8_t StopWeightSelect[20]; + uint8_t WaterPercentSelect[20]; + uint8_t WaterPercentSelect_1[20]; + uint8_t SHIZHONGSelect[20]; + uint8_t HUICHAOSelect[20]; + i = 0; + j = 0; + do { + NameBufSelect[j++] = DataLogValue[i++]; + } while (DataLogValue[i] != '^'); + i++; + j = 0; + do { + startTimeSelect[j++] = DataLogValue[i++]; + } while (DataLogValue[i] != '^'); + i++; + j = 0; + do { + StartWeightSelect[j++] = DataLogValue[i++]; + } while (DataLogValue[i] != '^'); + i++; + j = 0; + do { + StopWeightSelect[j++] = DataLogValue[i++]; + } while (DataLogValue[i] != '^'); + i++; + j = 0; + do { + WaterPercentSelect[j++] = DataLogValue[i++]; + } while (DataLogValue[i] != '^'); + i++; + j = 0; + do { + WaterPercentSelect_1[j++] = DataLogValue[i++]; + } while (DataLogValue[i] != '^'); + i++; + j = 0; + do { + SHIZHONGSelect[j++] = DataLogValue[i++]; + } while (DataLogValue[i] != '^'); + i++; + j = 0; + do { + HUICHAOSelect[j++] = DataLogValue[i++]; + } while (i < strlen((const char *)DataLogValue)); + sprintf((char *)buf, "/****************************/\r\n %s\r\n\0", Set.Title); + USART2Print(buf, strlen((const char *)buf)); + osDelay(200); + if (Set.SW0) { + sprintf((char *)buf, " %s\r\n\0", Set.TitleOne); + USART2Print(buf, strlen((const char *)buf)); + osDelay(200); + } + if (Set.SW1) { + sprintf((char *)buf, " %s\r\n\0", Set.TitleTwo); + USART2Print(buf, strlen((const char *)buf)); + osDelay(200); + } + if (Set.SW2) { + sprintf((char *)buf, " %s\r\n\0", Set.TitleThree); + USART2Print(buf, strlen((const char *)buf)); + osDelay(200); + } + sprintf((char *)buf, " 样品名:%s\r\n 测试时间:%s\r\n 起始重量:%s\r\n 结束重量: %s\r\n 含水量: %s\r\n 含固量: %s\r\n 湿重率: %s\r\n 回潮率: %s\r\n \0", NameBufSelect, startTimeSelect, StartWeightSelect, StopWeightSelect, WaterPercentSelect, WaterPercentSelect_1, SHIZHONGSelect, HUICHAOSelect ); + USART2Print(buf, strlen((const char *)buf)); + osDelay(200); + sprintf((char *)buf, "/****************************/\r\n\r\n\r\n\r\n \0"); + USART2Print(buf, strlen((const char *)buf)); + break; + case 0x0801: + sprintf((char *)buf, "page SysSet\xFF\xFF\xFF\0"); + DataPrint(buf, strlen((const char *)buf)); + break; + case 0x0802: + sprintf((char *)buf, "page VL\xFF\xFF\xFF\0"); + DataPrint(buf, strlen((const char *)buf)); + break; + case 0x0803: + sprintf((char *)buf, "page About\xFF\xFF\xFF\0"); + DataPrint(buf, strlen((const char *)buf)); + break; + case 0x0809: + j = 0; + uint8_t NameBuf[16]; + uint8_t PwdBuf[16]; + i = 3; + do { + NameBuf[j++] = DataInbuf[i++]; + } while (DataInbuf[i] != '^'); + j = 0; + i++; + do { + PwdBuf[j++] = DataInbuf[i++]; + } while (i < strlen((const char *)DataInbuf) - 1); + if ((strcmp((const char *)NameBuf, (const char *)Set.UserName) == 0) && (strcmp((const char *)PwdBuf, (const char *)Set.UserPwd) == 0)) { + sprintf((char *)buf, "UserLogIn.t14.txt=%s\xFF\xFF\xFF\0", NameBuf); + DataPrint(buf, strlen((const char *)buf)); + sprintf((char *)buf, "UserLogIn.t0.txt=\"\"\xFF\xFF\xFF\0"); + DataPrint(buf, strlen((const char *)buf)); + sprintf((char *)buf, "UserLogIn.t3.txt=\"\"\xFF\xFF\xFF\0"); + DataPrint(buf, strlen((const char *)buf)); + sprintf((char *)buf, "page UserLogIn\xFF\xFF\xFF\0"); + DataPrint(buf, strlen((const char *)buf)); + pageNum = 9; + } else { + sprintf((char *)buf, "play 1,1,0\xFF\xFF\xFF\0"); + DataPrint(buf, strlen((const char *)buf)); + } + break; + case 0x0909: + j = 0; + i = 3; + do { + NameBuf[j++] = DataInbuf[i++]; + } while (DataInbuf[i] != '^'); + j = 0; + i++; + do { + PwdBuf[j++] = DataInbuf[i++]; + } while (i < strlen((const char *)DataInbuf) - 1); + strcpy((char *)Set.UserName, (const char *)NameBuf); + strcpy((char *)Set.UserPwd, (const char *)PwdBuf); + FM24_Write(RW_Set, (uint8_t *)&Set, sizeof(Set)); + case 0x0C00: + pageNum = 0; + break; + case 0x0C01: + sprintf((char *)buf, "LogIn.t14.txt=\"%s\"\xFF\xFF\xFF\0", Set.UserName); + DataPrint(buf, strlen((const char *)buf)); + break; + case 0x0D05: + j = 0; + i = 3; + do { + NameBuf[j++] = DataInbuf[i++]; + } while (DataInbuf[i] != '^'); + j = 0; + i++; + do { + PwdBuf[j++] = DataInbuf[i++]; + } while (i < strlen((const char *)DataInbuf) - 1); + if ((strcmp((const char *)NameBuf, (const char *)Set.UserName) == 0) && (strcmp((const char *)PwdBuf, (const char *)Set.UserPwd) == 0)) { + sprintf((char *)buf, "page main\xFF\xFF\xFF\0"); + DataPrint(buf, strlen((const char *)buf)); + pageNum = 0; + } else { + sprintf((char *)buf, "play 1,1,0\xFF\xFF\xFF\0"); + DataPrint(buf, strlen((const char *)buf)); + } + default: + break; } osSemaphoreRelease(semDataChange); } } #include "math.h" -extern float OutputMax; uint32_t LastTick, lostTick; +extern float OutputMax; +uint32_t LastTick, lostTick; uint8_t Err = 0; +float WeightDataBuf[410]; +float DiffWeight= 0; +uint16_t DataBufIndex = 0; +uint16_t DataOld; +uint16_t LCount = 200; +_Bool StartFirst = true; void Moisturing(const void *p_arg) { - static uint8_t buf[150]__attribute__((at(0x20000000 + 0x1200))); - uint8_t TempRefresh = 0; + static uint8_t buf[150]__attribute__((at(0x20000000 + 0x1200))); + uint8_t TempRefresh = 0; uint16_t SRangeTemp = 100; - bool PercentChg = Set.PercentChange; FM24DataCRC(); + Set.PercentType = 0; osDelay(1000); - CalibrateWeight2.WeightZero = ADvalue2filter; - BIOS_USART2_Init(Set.BaudRate); + if(fabs(ADvalue2filter - CalibrateWeight2.WeightZero) * CalibrateWeight2.WeightSlope < MaxWeight *0.2f ) + { + CalibrateWeight2.WeightZero = ADvalue2filter; + } + BIOS_USART2_Init(Set.BaudRate); float WeightDataS = 0; sprintf((char *)buf, "main.t6.txt=\"Max=%dg D=%1.3fg\"\xFF\xFF\xFF\0", MaxWeight, Resolution); DataPrint(buf, strlen((const char *)buf)); @@ -643,24 +713,24 @@ void Moisturing(const void *p_arg) // { // t17DisCount = 0; // } - if(t18Dis == true) - { - if(t18DisCount ++ > 5) - { - t18Dis = false; - t18DisCount = 0; - sprintf((char *)buf, "t18.txt=\" \"\xFF\xFF\xFF\0"); - DataPrint(buf, strlen((const char *)buf)); - osDelay(100); - } - } - else - { - t18DisCount = 0; - } + if(t18Dis == true) + { + if(t18DisCount ++ > 5) + { + t18Dis = false; + t18DisCount = 0; + sprintf((char *)buf, "t18.txt=\" \"\xFF\xFF\xFF\0"); + DataPrint(buf, strlen((const char *)buf)); + osDelay(100); + } + } + else + { + t18DisCount = 0; + } WeightDataS = (float)(((int32_t)((WeightData2+Resolution / 2) / Resolution)) * Resolution); - if (WeightDataS <= MaxWeight) { + if (WeightDataS <= MaxWeight+Resolution*9) { sprintf((char *)buf, "main.t0.txt=\"%3.3f\"\xFF\xFF\xFF\0", WeightDataS); } else { sprintf((char *)buf, "main.t0.txt=\"---.---\"\xFF\xFF\xFF\0"); @@ -676,25 +746,47 @@ void Moisturing(const void *p_arg) } if (pageNum == 1) // 运行界面 { + + LCount = Set.AutoTimeStop * 1000.0f / 300.0f - 1; + StartFirst = true; CountDelay = 0; CountNochange = 0; + DataBufIndex = 0; + memset(WeightDataBuf,0,410); WeightDataS = (float)(((int32_t)((WeightData2+Resolution / 2) / Resolution)) * Resolution); StartWeight = WeightDataS; switch (Set.FastStyle) { - case 0: - OutputMax = 1; - break; - case 1: - OutputMax = 0.75; - break; - case 2: - OutputMax = 0.5; - break; - default: - break; + case 0: + OutputMax = 1; + break; + case 1: + OutputMax = 0.75; + break; + case 2: + OutputMax = 0.5; + break; + default: + break; + } + + switch( Set.PercentType ) + { + default: + case 0: + sprintf((char *)buf, "RunPage.b1.txt=\"含水量\"\xFF\xFF\xFF\0"); + break; + case 1: + sprintf((char *)buf, "RunPage.b1.txt=\"含固量\"\xFF\xFF\xFF\0"); + break; + case 2: + sprintf((char *)buf, "RunPage.b1.txt=\"回潮率\"\xFF\xFF\xFF\0"); + break; + case 3: + sprintf((char *)buf, "RunPage.b1.txt=\"湿重率\"\xFF\xFF\xFF\0"); + break; } - sprintf((char *)buf, "RunPage.t7.txt=\"%s\"\xFF\xFF\xFF\0", Set.PercentChange?"含固量":"含水量"); DataPrint(buf, strlen((const char *)buf)); + sprintf((char *)buf, "RunPage.t5.txt=\"%s\"\xFF\xFF\xFF\0", Set.UserName); DataPrint(buf, strlen((const char *)buf)); sprintf((char *)buf, "RunPage.t14.txt=\"%s\"\xFF\xFF\xFF\0", NameBuf); @@ -707,7 +799,8 @@ void Moisturing(const void *p_arg) DataPrint(buf, strlen((const char *)buf)); sprintf((char *)buf, "RunPage.n3.val=%d\xFF\xFF\xFF\0", Set.TimeStop); DataPrint(buf, strlen((const char *)buf)); - if (SafeCheck()) { // 请关闭加热仓 + if (SafeCheck()) + { // 请关闭加热仓 sprintf((char *)buf, "play 1,8,0\xFF\xFF\xFF\0"); DataPrint(buf, strlen((const char *)buf)); do { @@ -726,15 +819,22 @@ void Moisturing(const void *p_arg) DataPrint(buf, strlen((const char *)buf)); sprintf((char *)buf, "tm0.en=1\xFF\xFF\xFF\0"); DataPrint(buf, strlen((const char *)buf)); + sprintf((char *)buf, "tsw b0,0\xFF\xFF\xFF\0"); + DataPrint(buf, strlen((const char *)buf)); + sprintf((char *)buf, "tsw b3,0\xFF\xFF\xFF\0"); + DataPrint(buf, strlen((const char *)buf)); + sprintf((char *)buf, "tsw cb0,0\xFF\xFF\xFF\0"); + DataPrint(buf, strlen((const char *)buf)); + sprintf((char *)buf, "tsw cb1,0\xFF\xFF\xFF\0"); + DataPrint(buf, strlen((const char *)buf)); + DisData = WeightOld = WeightDataS; // 定间隔延时 const uint32_t oneTick = osKernelSysTickMicroSec(1000u); // 微秒计时 oneTick 1ms - - LastTick = osKernelSysTick(); -// osDelay(60000); -// lostTick = (osKernelSysTick() - LastTick)/oneTick; + LastTick = osKernelSysTick(); do { - if (SafeCheck()) { // 请关闭加热仓 + if (SafeCheck()) + { // 请关闭加热仓 sprintf((char *)buf, "play 1,8,0\xFF\xFF\xFF\0"); DataPrint(buf, strlen((const char *)buf)); Pump_OutCmd(false); @@ -746,34 +846,38 @@ void Moisturing(const void *p_arg) // 计算已经逝去的tick计时单位 lostTick = (uint32_t)(osKernelSysTick() + oneTick / 2 - LastTick) / oneTick; // 计算余下需要的延时周期(设定间隔时间:300ms) - if (lostTick < 300u) { - osDelay(300u - lostTick); - LastTick = osKernelSysTick(); + if (lostTick < 300u) + { + osDelay(300u - lostTick); + LastTick = osKernelSysTick(); } else { // 已经逝去的时间超过设定的间隔,重新计算时间起点后少量延时。 osDelay(30); - LastTick = osKernelSysTick(); + LastTick = osKernelSysTick(); } StopWeight = DisData; - switch (Set.AutoStyle) { - case 0: // 自动模式 - if (CountNochange++ > Set.AutoTimeStop * (1000 / 300)) // 当计数器大于设定时间时,停止加热 - { - Finisflag = true; - } - break; - case 1: // 手动模式 - break; - case 2: // 定时模式 - if (CountDelay++ > Set.TimeStop * 60 * (1000 / 300)) // 当计数器大于设定时间时,停止加热) - { - Finisflag = true; - } - break; - default: - break; + switch (Set.AutoStyle) + { + case 0: // 自动模式 + if(CountNochange > 3 * 20 ) // 停止加热 + { + Finisflag = true; + } + break; + case 1: // 手动模式 + break; + case 2: // 定时模式 + if (CountDelay++ > Set.TimeStop * 60 * 1000.0f / 300.0f) // 当计数器大于设定时间时,停止加热) + { + Finisflag = true; + } + break; + default: + break; } - if (Finisflag) { + if (Finisflag) + { + FinishDisData = DisData; sprintf((char *)buf, "RunPage.tm0.en=0\xFF\xFF\xFF\0"); DataPrint(buf, strlen((const char *)buf)); Pump_OutCmd(false); @@ -785,59 +889,187 @@ void Moisturing(const void *p_arg) DataPrint(buf, strlen((const char *)buf)); sprintf((char *)buf, "tsw b3,1\xFF\xFF\xFF\0"); DataPrint(buf, strlen((const char *)buf)); - sprintf((char *)buf, "tsw b1,1\xFF\xFF\xFF\0"); - DataPrint(buf, strlen((const char *)buf)); +// sprintf((char *)buf, "tsw b1,1\xFF\xFF\xFF\0"); +// DataPrint(buf, strlen((const char *)buf)); + HUICHAO = (float)(((uint32_t)(((StartWeight - DisData) / DisData * 100.0f) / ResolutionWater)) * ResolutionWater); + if(HUICHAO > 999) + { + HUICHAO = 999; + } + SHIZHONG = (float)(((uint32_t)((StartWeight / DisData * 100.0f) / ResolutionWater)) * ResolutionWater); + if(SHIZHONG > 999) + { + SHIZHONG = 999; + } + + do { - osSemaphoreWait(semDataChange, osWaitForever); + switch( Set.PercentType ) + { + default: + case 0: + sprintf((char *)buf, "RunPage.b1.txt=\"含水量\"\xFF\xFF\xFF\0"); + PercentData = WaterPercentData; + break; + case 1: + sprintf((char *)buf, "RunPage.b1.txt=\"含固量\"\xFF\xFF\xFF\0"); + PercentData = 100 - WaterPercentData; + break; + case 2: + sprintf((char *)buf, "RunPage.b1.txt=\"回潮率\"\xFF\xFF\xFF\0"); + PercentData = HUICHAO; + break; + case 3: + sprintf((char *)buf, "RunPage.b1.txt=\"湿重率\"\xFF\xFF\xFF\0"); + PercentData = SHIZHONG; + break; + } + DataPrint(buf, strlen((const char *)buf)); + if(PercentData >= 999) + { + sprintf((char *)buf, "RunPage.t3.txt=\"-----%\"\xFF\xFF\xFF\0"); + } + else + { + sprintf((char *)buf, "RunPage.t3.txt=\"%.2f%%\"\xFF\xFF\xFF\0", PercentData); + } + DataPrint(buf, strlen((const char *)buf)); + osSemaphoreWait(semDataChange, osWaitForever); } while (pageNum == 1); + sprintf((char *)buf, "tsw cb0,0\xFF\xFF\xFF\0"); + DataPrint(buf, strlen((const char *)buf)); + sprintf((char *)buf, "tsw cb1,0\xFF\xFF\xFF\0"); + DataPrint(buf, strlen((const char *)buf)); + } WeightDataS = (float)(((int32_t)((WeightData2 + Resolution / 2) / Resolution)) * Resolution); - if( WeightData2 >= 0) - { - if (WeightOld - WeightDataS > Resolution) // 当重量变化大于0.001g时,更新数据 (只能减不能加) - { - DisData = WeightDataS; - } - if (WeightOld - WeightDataS > Set.AutoWeightChange / 1000) // 当重量变化大于x.xxxg时,计数器清零 - { - CountNochange = 0; - DisData = WeightOld = WeightDataS; - } - if (StartWeight != 0) { - WaterPercent = (float)(((uint32_t)(((StartWeight - DisData) / StartWeight * 100.0f) / ResolutionWater)) * ResolutionWater); - } - } + if( WeightData2 >= 0) + { + if (WeightOld - WeightDataS > Resolution) // 当重量变化大于0.001g时,更新数据 (只能减不能加) + { + DisData = WeightOld = WeightDataS; + } + /* */ + WeightDataBuf[DataBufIndex++] = WeightData2; + if(DataBufIndex >= 405) + DataBufIndex = 0; + if(!StartFirst) + { + DataOld = DataBufIndex - LCount; + if(DataBufIndex < LCount ) + { + DataOld = DataBufIndex + 405 - LCount; + } + DiffWeight = WeightDataBuf[DataOld] - WeightData2; + if( DiffWeight > Set.AutoWeightChange / 1000.0f ) + { + CountNochange = 0; +// DisData = WeightOld = WeightDataS; + } + else + { + CountNochange ++; + } + } + else + { + if(DataBufIndex > LCount) + StartFirst = false; + } + /* */ + + + + if ((StartWeight != 0) && (DisData != 0)) + { + switch( Set.PercentType ) + { + default: + case 0://含水量 + PercentData = (float)(((uint32_t)(((StartWeight - DisData) / StartWeight * 100.0f) / ResolutionWater)) * ResolutionWater); + break; + case 1://含固量 + PercentData = (float)(((uint32_t)(( DisData / StartWeight * 100.0f) / ResolutionWater)) * ResolutionWater); + break; + case 2://回潮率 + PercentData = (float)(((uint32_t)(((StartWeight - DisData) / DisData * 100.0f) / ResolutionWater)) * ResolutionWater); + if(PercentData > 999) + { + PercentData = 999; + } + break; + case 3://湿重率 + PercentData = (float)(((uint32_t)((StartWeight / DisData * 100.0f) / ResolutionWater)) * ResolutionWater); + if(PercentData > 999) + { + PercentData = 999; + } + break; + } + } + WaterPercentData =(float)(((uint32_t)(((StartWeight - DisData) / StartWeight * 100.0f) / ResolutionWater)) * ResolutionWater); + } sprintf((char *)buf, "RunPage.t0.txt=\"%3.3f\"\xFF\xFF\xFF\0", DisData); DataPrint(buf, strlen((const char *)buf)); sprintf((char *)buf, "RunPage.t12.txt=\"%3.0f\"\xFF\xFF\xFF\0", Temperature); DataPrint(buf, strlen((const char *)buf)); - if( PercentChg != Set.PercentChange ) + + switch( Set.PercentType ) { - PercentChg = Set.PercentChange; - sprintf((char *)buf, "RunPage.t7.txt=\"%s\"\xFF\xFF\xFF\0", Set.PercentChange?"含固量":"含水量"); - DataPrint(buf, strlen((const char *)buf)); + default: + case 0: + sprintf((char *)buf, "RunPage.b1.txt=\"含水量\"\xFF\xFF\xFF\0"); + break; + case 1: + sprintf((char *)buf, "RunPage.b1.txt=\"含固量\"\xFF\xFF\xFF\0"); + break; + case 2: + sprintf((char *)buf, "RunPage.b1.txt=\"回潮率\"\xFF\xFF\xFF\0"); + break; + case 3: + sprintf((char *)buf, "RunPage.b1.txt=\"湿重率\"\xFF\xFF\xFF\0"); + break; } - sprintf((char *)buf, "RunPage.t17.txt=\"%2.2f%%\"\xFF\xFF\xFF\0", Set.PercentChange?100.0f-WaterPercent:WaterPercent); DataPrint(buf, strlen((const char *)buf)); - sprintf((char *)buf, "RunPage.j0.val=%d\xFF\xFF\xFF\0", (uint8_t)WaterPercent); + if(PercentData >= 999) + { + sprintf((char *)buf, "RunPage.t3.txt=\"-----%\"\xFF\xFF\xFF\0"); + } + else + { + sprintf((char *)buf, "RunPage.t3.txt=\"%.2f%%\"\xFF\xFF\xFF\0", PercentData); + } DataPrint(buf, strlen((const char *)buf)); - if (SCount++ >= 3) { + + sprintf((char *)buf, "RunPage.t17.txt=\"%2.2f%%\"\xFF\xFF\xFF\0", WaterPercentData); + DataPrint(buf, strlen((const char *)buf)); + sprintf((char *)buf, "RunPage.j0.val=%d\xFF\xFF\xFF\0", (uint8_t)WaterPercentData); + DataPrint(buf, strlen((const char *)buf)); + + + if (SCount++ >= 3) + { SCount = 0; - if (WaterPercent <= 38.0f) { + + + if (WaterPercentData <= 38.0f) { SRangeTemp = 200; } - if (WaterPercent > 38.0f && WaterPercent < 76.0f) { + if (WaterPercentData > 38.0f && WaterPercentData <= 76.0f) { SRangeTemp = 100; } - if (WaterPercent > 76.0f) { + if (WaterPercentData > 76.0f && WaterPercentData <= 100.0f) { SRangeTemp = 70; } + if( WaterPercentData > 100.0f) { + SRangeTemp = 50; + } if (SRangeTemp != SRange) { SRange = SRangeTemp; sprintf((char *)buf, "s0.dis=%d\xFF\xFF\xFF\0", SRange); DataPrint(buf, strlen((const char *)buf)); } - sprintf((char *)buf, "add s0.id,0,%d\xFF\xFF\xFF\0", (uint8_t)(WaterPercent / 100.0f * 255)); + sprintf((char *)buf, "add s0.id,0,%d\xFF\xFF\xFF\0", (uint8_t)(( WaterPercentData > 100.0f? 100.0f:WaterPercentData ) / 100.0f * 255)); DataPrint(buf, strlen((const char *)buf)); } } while (pageNum == 1); @@ -847,30 +1079,30 @@ void Moisturing(const void *p_arg) } if (pageNum == 3) // 称重设置 { - if(osSemaphoreWait(semDataChange, 300) > 0) - { - osDelay(50); - sprintf((char *)buf, "WeightSet.cb5.val=%d\xFF\xFF\xFF\0", Set.FilterQ); - DataPrint(buf, strlen((const char *)buf)); - sprintf((char *)buf, "WeightSet.cb4.val=%d\xFF\xFF\xFF\0", Set.RuBianLiang); - DataPrint(buf, strlen((const char *)buf)); - sprintf((char *)buf, "WeightSet.cb3.val=%d\xFF\xFF\xFF\0", Set.SensorQ); - DataPrint(buf, strlen((const char *)buf)); - sprintf((char *)buf, "WeightSet.cb2.val=%d\xFF\xFF\xFF\0", Set.RuBianTime); - DataPrint(buf, strlen((const char *)buf)); - sprintf((char *)buf, "WeightSet.cb1.val=%d\xFF\xFF\xFF\0", Set.HoldTime); - DataPrint(buf, strlen((const char *)buf)); - sprintf((char *)buf, "WeightSet.cb0.val=%d\xFF\xFF\xFF\0", Set.ZeroTrack); - DataPrint(buf, strlen((const char *)buf)); - sprintf((char *)buf, "WeightSet.n0.val=%d\xFF\xFF\xFF\0", Set.AutoTimeStop); - DataPrint(buf, strlen((const char *)buf)); - sprintf((char *)buf, "WeightSet.n1.val=%d\xFF\xFF\xFF\0", Set.AutoWeightChange); - DataPrint(buf, strlen((const char *)buf)); - } + if(osSemaphoreWait(semDataChange, 300) > 0) + { + osDelay(50); + sprintf((char *)buf, "WeightSet.cb5.val=%d\xFF\xFF\xFF\0", Set.FilterQ); + DataPrint(buf, strlen((const char *)buf)); + sprintf((char *)buf, "WeightSet.cb4.val=%d\xFF\xFF\xFF\0", Set.RuBianLiang); + DataPrint(buf, strlen((const char *)buf)); + sprintf((char *)buf, "WeightSet.cb3.val=%d\xFF\xFF\xFF\0", Set.SensorQ); + DataPrint(buf, strlen((const char *)buf)); + sprintf((char *)buf, "WeightSet.cb2.val=%d\xFF\xFF\xFF\0", Set.RuBianTime); + DataPrint(buf, strlen((const char *)buf)); + sprintf((char *)buf, "WeightSet.cb1.val=%d\xFF\xFF\xFF\0", Set.HoldTime); + DataPrint(buf, strlen((const char *)buf)); + sprintf((char *)buf, "WeightSet.cb0.val=%d\xFF\xFF\xFF\0", Set.ZeroTrack); + DataPrint(buf, strlen((const char *)buf)); + sprintf((char *)buf, "WeightSet.n0.val=%d\xFF\xFF\xFF\0", Set.AutoTimeStop); + DataPrint(buf, strlen((const char *)buf)); + sprintf((char *)buf, "WeightSet.n1.val=%d\xFF\xFF\xFF\0", Set.AutoWeightChange); + DataPrint(buf, strlen((const char *)buf)); + } } if (pageNum == 4) // 校准设置 { - sprintf((char *)buf, "Calibration.t8.txt=\"%3.4f\"\xFF\xFF\xFF\0", WeightData2); + sprintf((char *)buf, "Calibration.t8.txt=\"%3.4f\"\xFF\xFF\xFF\0", WeightData2Finally); DataPrint(buf, strlen((const char *)buf)); sprintf((char *)buf, "Calibration.t6.txt=\"%3.0f\"\xFF\xFF\xFF\0", Temperature); DataPrint(buf, strlen((const char *)buf)); diff --git a/Source/Moisture.c b/Source/Moisture.c index 123318c..6d70fe6 100644 --- a/Source/Moisture.c +++ b/Source/Moisture.c @@ -22,7 +22,6 @@ int main(void) // INIT_CS555X(); osDelay(1000); // 3秒 AD7190_Init(); - CalibrateWeight2.WeightZero = ADvalue2filter; switch (InstrumentTypeRead()) { case 0x01: // 国产 40-180 铝 0.005-50 0.02 MaxWeight = 50; @@ -37,7 +36,7 @@ int main(void) MaxTemp = 180; break; case 0x03: // 国产 40-180 铝 0.001-100 0.01 - MaxWeight = 100; + MaxWeight = 120; Resolution = 0.001; ResolutionWater = 0.01; MaxTemp = 180; @@ -85,6 +84,7 @@ int main(void) MaxTemp = 0; break; } + USARTHMIInit(); HMICMDInit(); while (1) { diff --git a/Source/USARTHMI.c b/Source/USARTHMI.c index f3530ed..a5a3145 100644 --- a/Source/USARTHMI.c +++ b/Source/USARTHMI.c @@ -80,7 +80,7 @@ void DataPrint(uint8_t *buffer, uint8_t lenth) UART1_Send(*buffer++); while (!READ_BIT(USART1->SR, USART_SR_TC)) - delay_us(50u); + delay_us(5u); } // SET_BIT(USART1->CR1, USART_CR1_RXNEIE); osMutexRelease(USART_Mutex_ID); diff --git a/Source/spi.c b/Source/spi.c index e65fdb9..1d3b6df 100644 --- a/Source/spi.c +++ b/Source/spi.c @@ -129,9 +129,9 @@ void SPI1_Configuration(void) SPI_InitStructure.SPI_CPOL = SPI_CPOL_High; SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge; SPI_InitStructure.SPI_NSS = SPI_NSS_Soft; - SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_256; + SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_64; SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB; - SPI_InitStructure.SPI_CRCPolynomial = 7; +// SPI_InitStructure.SPI_CRCPolynomial = 7; SPI_Init(SPI1, &SPI_InitStructure); // 使能SPI1 @@ -176,16 +176,32 @@ uint8_t bus_SPIxShift1(uint8_t OutByte) // 定义SPI读取函数 uint8_t SPI1_ReadWrite(uint8_t data) { + uint16_t retry = 0; // 等待发送缓冲区为空 while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET) - ; + { + retry++; + if(retry>=0XFFFE) + return 0; //超时退出 + } + retry = 0; + while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_BSY) == SET) + { + retry++; + if(retry>=0XFFFE) + return 0; //超时退出 + } // 通过SPI发送数据 SPI_I2S_SendData(SPI1, data); - + retry = 0; // 等待接收缓冲区非空 while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET) - ; + { + retry++; + if(retry>=0XFFFE) + return 0; //超时退出 + } // 从SPI接收数据 return SPI_I2S_ReceiveData(SPI1);