PID输出错误修正+参数调整

This commit is contained in:
吴俊潮 2024-09-07 13:06:02 +08:00
parent f47a4b4e6a
commit f65c03b9e7
14 changed files with 818 additions and 800 deletions

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@ -29,7 +29,7 @@ Project File Date: 08/26/2024
Build target 'VOQC'
compiling provalctrl.c...
linking...
Program Size: Code=34078 RO-data=458 RW-data=416 ZI-data=6704
Program Size: Code=34142 RO-data=458 RW-data=416 ZI-data=6704
FromELF: creating hex file...
"VOQC\VOQC.axf" - 0 Error(s), 0 Warning(s).

File diff suppressed because it is too large Load Diff

View File

@ -3,7 +3,7 @@
<title>Static Call Graph - [VOQC\VOQC.axf]</title></head>
<body><HR>
<H1>Static Call Graph for image VOQC\VOQC.axf</H1><HR>
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060960: Last Updated: Fri Sep 06 15:37:49 2024
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060960: Last Updated: Sat Sep 07 12:58:49 2024
<BR><P>
<H3>Maximum Stack Usage = 452 bytes + Unknown(Functions without stacksize, Cycles, Untraceable Function Pointers)</H3><H3>
Call chain for Maximum Stack Depth:</H3>
@ -487,8 +487,8 @@ Global Symbols
<P><STRONG><a name="[7b]"></a>__aeabi_uldivmod</STRONG> (Thumb, 0 bytes, Stack size 48 bytes, lludivv7m.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = __aeabi_uldivmod
</UL>
<BR>[Called By]<UL><LI><a href="#[d3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_SetConfig
<LI><a href="#[af]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_GetSysClockFreq
<BR>[Called By]<UL><LI><a href="#[af]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_GetSysClockFreq
<LI><a href="#[d3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_SetConfig
<LI><a href="#[7a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_ll_sdiv
</UL>
@ -590,10 +590,10 @@ Global Symbols
</UL>
<BR>[Calls]<UL><LI><a href="#[87]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
<LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_us
<LI><a href="#[85]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_ReadPin
<LI><a href="#[88]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ads1256_write_byte
<LI><a href="#[8a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ads1256_read_byte
<LI><a href="#[86]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ADS1256WREG
<LI><a href="#[85]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_ReadPin
<LI><a href="#[8c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dmul
<LI><a href="#[8b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_i2d
</UL>
@ -604,8 +604,8 @@ Global Symbols
<BR><BR>[Stack]<UL><LI>Max Depth = 44<LI>Call Chain = ADS1256WREG &rArr; ads1256_write_byte &rArr; delay_us
</UL>
<BR>[Calls]<UL><LI><a href="#[87]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
<LI><a href="#[88]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ads1256_write_byte
<LI><a href="#[85]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_ReadPin
<LI><a href="#[88]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ads1256_write_byte
</UL>
<BR>[Called By]<UL><LI><a href="#[103]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ads1256_init
<LI><a href="#[84]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ADS1256ReadData
@ -799,8 +799,8 @@ Global Symbols
</UL>
<BR>[Calls]<UL><LI><a href="#[a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;DMA_SetConfig
</UL>
<BR>[Called By]<UL><LI><a href="#[da]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_Transmit_DMA
<LI><a href="#[9a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_ADC_Start_DMA
<BR>[Called By]<UL><LI><a href="#[9a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_ADC_Start_DMA
<LI><a href="#[da]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_Transmit_DMA
</UL>
<P><STRONG><a name="[a1]"></a>HAL_Delay</STRONG> (Thumb, 36 bytes, Stack size 16 bytes, stm32f4xx_hal.o(i.HAL_Delay))
@ -893,9 +893,9 @@ Global Symbols
<LI><a href="#[b2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_OscConfig
<LI><a href="#[ae]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_ClockConfig
<LI><a href="#[a1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Delay
<LI><a href="#[9c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_DMA_Abort
<LI><a href="#[d8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_Transmit
<LI><a href="#[d9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_WaitOnFlagUntilTimeout
<LI><a href="#[9c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_DMA_Abort
</UL>
<P><STRONG><a name="[a3]"></a>HAL_I2C_Init</STRONG> (Thumb, 446 bytes, Stack size 16 bytes, stm32f4xx_hal_i2c.o(i.HAL_I2C_Init))
@ -1156,8 +1156,8 @@ Global Symbols
<P><STRONG><a name="[c2]"></a>HAL_TIM_PeriodElapsedCallback</STRONG> (Thumb, 54 bytes, Stack size 8 bytes, timer.o(i.HAL_TIM_PeriodElapsedCallback))
<BR><BR>[Stack]<UL><LI>Max Depth = 428<LI>Call Chain = HAL_TIM_PeriodElapsedCallback &rArr; modbus_process_rtu &rArr; modbus_analysis_rtu &rArr; writemulticoil_rtu &rArr; modbus_errfunction_rtu &rArr; uart_send &rArr; HAL_UART_Transmit_DMA &rArr; HAL_DMA_Start_IT &rArr; DMA_SetConfig
</UL>
<BR>[Calls]<UL><LI><a href="#[c8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;modbus_process_rtu
<LI><a href="#[c7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_Base_Stop_IT
<BR>[Calls]<UL><LI><a href="#[c7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_Base_Stop_IT
<LI><a href="#[c8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;modbus_process_rtu
<LI><a href="#[c6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tim6_cnt
</UL>
<BR>[Called By]<UL><LI><a href="#[be]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_IRQHandler
@ -1168,27 +1168,27 @@ Global Symbols
</UL>
<P><STRONG><a name="[ce]"></a>HAL_UARTEx_RxEventCallback</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, stm32f4xx_hal_uart.o(i.HAL_UARTEx_RxEventCallback))
<BR><BR>[Called By]<UL><LI><a href="#[ca]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_Receive_IT
<LI><a href="#[c9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_IRQHandler
<BR><BR>[Called By]<UL><LI><a href="#[c9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_IRQHandler
<LI><a href="#[ca]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_Receive_IT
</UL>
<P><STRONG><a name="[cd]"></a>HAL_UART_ErrorCallback</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, stm32f4xx_hal_uart.o(i.HAL_UART_ErrorCallback))
<BR><BR>[Called By]<UL><LI><a href="#[66]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_DMAError
<BR><BR>[Called By]<UL><LI><a href="#[c9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_IRQHandler
<LI><a href="#[66]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_DMAError
<LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_DMAAbortOnError
<LI><a href="#[c9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_IRQHandler
</UL>
<P><STRONG><a name="[c9]"></a>HAL_UART_IRQHandler</STRONG> (Thumb, 740 bytes, Stack size 40 bytes, stm32f4xx_hal_uart.o(i.HAL_UART_IRQHandler))
<BR><BR>[Stack]<UL><LI>Max Depth = 152<LI>Call Chain = HAL_UART_IRQHandler &rArr; UART_Receive_IT &rArr; HAL_UART_RxCpltCallback &rArr; modbus_rx_cb &rArr; HAL_UART_Transmit &rArr; UART_WaitOnFlagUntilTimeout
</UL>
<BR>[Calls]<UL><LI><a href="#[cd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_ErrorCallback
<BR>[Calls]<UL><LI><a href="#[9c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_DMA_Abort
<LI><a href="#[cc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_DMA_Abort_IT
<LI><a href="#[cd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_ErrorCallback
<LI><a href="#[ce]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UARTEx_RxEventCallback
<LI><a href="#[cf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_Transmit_IT
<LI><a href="#[ca]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_Receive_IT
<LI><a href="#[d0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_EndTransmit_IT
<LI><a href="#[cb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_EndRxTransfer
<LI><a href="#[9c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_DMA_Abort
<LI><a href="#[cc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_DMA_Abort_IT
</UL>
<BR>[Called By]<UL><LI><a href="#[54]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;USART6_IRQHandler
<LI><a href="#[34]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;USART3_IRQHandler
@ -1243,8 +1243,8 @@ Global Symbols
<P><STRONG><a name="[d8]"></a>HAL_UART_Transmit</STRONG> (Thumb, 190 bytes, Stack size 40 bytes, stm32f4xx_hal_uart.o(i.HAL_UART_Transmit))
<BR><BR>[Stack]<UL><LI>Max Depth = 72<LI>Call Chain = HAL_UART_Transmit &rArr; UART_WaitOnFlagUntilTimeout
</UL>
<BR>[Calls]<UL><LI><a href="#[d9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_WaitOnFlagUntilTimeout
<LI><a href="#[9d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
<BR>[Calls]<UL><LI><a href="#[9d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
<LI><a href="#[d9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_WaitOnFlagUntilTimeout
</UL>
<BR>[Called By]<UL><LI><a href="#[d7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;modbus_rx_cb
</UL>
@ -1634,9 +1634,9 @@ Global Symbols
<P><STRONG><a name="[f8]"></a>ads1220_setchannl</STRONG> (Thumb, 34 bytes, Stack size 8 bytes, ads1220.o(i.ads1220_setchannl))
<BR><BR>[Stack]<UL><LI>Max Depth = 60<LI>Call Chain = ads1220_setchannl &rArr; ads1220_writeregister &rArr; ads1220_write_byte &rArr; delay_us
</UL>
<BR>[Calls]<UL><LI><a href="#[ff]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ads1220_writeregister
<BR>[Calls]<UL><LI><a href="#[85]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_ReadPin
<LI><a href="#[ff]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ads1220_writeregister
<LI><a href="#[fe]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ads1220_write_byte
<LI><a href="#[85]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_ReadPin
</UL>
<BR>[Called By]<UL><LI><a href="#[f5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ads1220_get_data
</UL>
@ -1816,10 +1816,10 @@ Global Symbols
</UL>
<BR>[Calls]<UL><LI><a href="#[87]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
<LI><a href="#[113]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;encoder_init
<LI><a href="#[85]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_ReadPin
<LI><a href="#[f3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_74hc165_read_byte
<LI><a href="#[111]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;hc595_write_data
<LI><a href="#[112]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;disp_out
<LI><a href="#[85]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_ReadPin
<LI><a href="#[110]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;led_ctrl
</UL>
<BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
@ -2172,14 +2172,14 @@ Global Symbols
<BR><BR>[Stack]<UL><LI>Max Depth = 80<LI>Call Chain = modbus_rx_cb &rArr; HAL_UART_Transmit &rArr; UART_WaitOnFlagUntilTimeout
</UL>
<BR>[Calls]<UL><LI><a href="#[129]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_Base_Start_IT
<LI><a href="#[c7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_Base_Stop_IT
<LI><a href="#[d8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_Transmit
<LI><a href="#[d4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_Receive_IT
<LI><a href="#[c7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_Base_Stop_IT
</UL>
<BR>[Called By]<UL><LI><a href="#[d6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_RxCpltCallback
</UL>
<P><STRONG><a name="[13d]"></a>prov_adj</STRONG> (Thumb, 1496 bytes, Stack size 16 bytes, provalctrl.o(i.prov_adj))
<P><STRONG><a name="[13d]"></a>prov_adj</STRONG> (Thumb, 1504 bytes, Stack size 16 bytes, provalctrl.o(i.prov_adj))
<BR><BR>[Stack]<UL><LI>Max Depth = 80<LI>Call Chain = prov_adj &rArr; ee_writefloats &rArr; ee_writebytes &rArr; i2c_sendbyte
</UL>
<BR>[Calls]<UL><LI><a href="#[12d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;prov_adj_init
@ -2195,7 +2195,7 @@ Global Symbols
<LI><a href="#[13d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;prov_adj
</UL>
<P><STRONG><a name="[13e]"></a>prov_calibrate_pid</STRONG> (Thumb, 926 bytes, Stack size 8 bytes, provalctrl.o(i.prov_calibrate_pid))
<P><STRONG><a name="[13e]"></a>prov_calibrate_pid</STRONG> (Thumb, 986 bytes, Stack size 8 bytes, provalctrl.o(i.prov_calibrate_pid))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = prov_calibrate_pid
</UL>
<BR>[Calls]<UL><LI><a href="#[13f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;abs_bias
@ -2565,9 +2565,9 @@ Local Symbols
<BR>[Address Reference Count : 1]<UL><LI> stm32f4xx_hal_uart.o(i.HAL_UART_Transmit_DMA)
</UL>
<P><STRONG><a name="[cb]"></a>UART_EndRxTransfer</STRONG> (Thumb, 108 bytes, Stack size 0 bytes, stm32f4xx_hal_uart.o(i.UART_EndRxTransfer))
<BR><BR>[Called By]<UL><LI><a href="#[d9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_WaitOnFlagUntilTimeout
<BR><BR>[Called By]<UL><LI><a href="#[c9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_IRQHandler
<LI><a href="#[d9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_WaitOnFlagUntilTimeout
<LI><a href="#[66]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_DMAError
<LI><a href="#[c9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_IRQHandler
</UL>
<P><STRONG><a name="[d0]"></a>UART_EndTransmit_IT</STRONG> (Thumb, 32 bytes, Stack size 8 bytes, stm32f4xx_hal_uart.o(i.UART_EndTransmit_IT))
@ -2608,8 +2608,8 @@ Local Symbols
<P><STRONG><a name="[d9]"></a>UART_WaitOnFlagUntilTimeout</STRONG> (Thumb, 140 bytes, Stack size 32 bytes, stm32f4xx_hal_uart.o(i.UART_WaitOnFlagUntilTimeout))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = UART_WaitOnFlagUntilTimeout
</UL>
<BR>[Calls]<UL><LI><a href="#[cb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_EndRxTransfer
<LI><a href="#[9d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
<BR>[Calls]<UL><LI><a href="#[9d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
<LI><a href="#[cb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_EndRxTransfer
</UL>
<BR>[Called By]<UL><LI><a href="#[d8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_Transmit
</UL>

View File

@ -3179,53 +3179,53 @@ Image Symbol Table
i.modbus_rtu_init 0x080062c8 Section 0 modbus_rtu.o(i.modbus_rtu_init)
i.modbus_rx_cb 0x0800631c Section 0 modbus_rtu.o(i.modbus_rx_cb)
i.prov_adj 0x080063a0 Section 0 provalctrl.o(i.prov_adj)
i.prov_adj_init 0x080069ac Section 0 provalctrl.o(i.prov_adj_init)
i.prov_calibrate_pid 0x08006a64 Section 0 provalctrl.o(i.prov_calibrate_pid)
i.prov_ctrl 0x08006e18 Section 0 provalctrl.o(i.prov_ctrl)
i.prov_init 0x08006e84 Section 0 provalctrl.o(i.prov_init)
i.prov_set 0x080070fc Section 0 provalctrl.o(i.prov_set)
i.readcoilstate_rtu 0x080071fc Section 0 modbus_rtu.o(i.readcoilstate_rtu)
i.readdisinputstate_rtu 0x0800734c Section 0 modbus_rtu.o(i.readdisinputstate_rtu)
i.readholdreg_rtu 0x08007498 Section 0 modbus_rtu.o(i.readholdreg_rtu)
i.readinputreg_rtu 0x080075a4 Section 0 modbus_rtu.o(i.readinputreg_rtu)
i.setcs 0x080076a8 Section 0 ms5803.o(i.setcs)
i.tim6_cnt 0x08007710 Section 0 timer.o(i.tim6_cnt)
i.uart_send 0x0800791c Section 0 uarts.o(i.uart_send)
i.wf5803_ReadReg 0x08007930 Section 0 mf5803.o(i.wf5803_ReadReg)
i.wf5803_WriteReg 0x08007952 Section 0 mf5803.o(i.wf5803_WriteReg)
i.writemulticoil_rtu 0x08007974 Section 0 modbus_rtu.o(i.writemulticoil_rtu)
i.writemultireg_rtu 0x08007ac0 Section 0 modbus_rtu.o(i.writemultireg_rtu)
i.writesinglecoil_rtu 0x08007bc4 Section 0 modbus_rtu.o(i.writesinglecoil_rtu)
i.writesinglereg_rtu 0x08007c88 Section 0 modbus_rtu.o(i.writesinglereg_rtu)
x$fpl$dadd 0x08007d40 Section 336 daddsub_clz.o(x$fpl$dadd)
$v0 0x08007d40 Number 0 daddsub_clz.o(x$fpl$dadd)
_dadd1 0x08007d51 Thumb Code 0 daddsub_clz.o(x$fpl$dadd)
x$fpl$ddiv 0x08007e90 Section 688 ddiv.o(x$fpl$ddiv)
$v0 0x08007e90 Number 0 ddiv.o(x$fpl$ddiv)
ddiv_entry 0x08007e97 Thumb Code 0 ddiv.o(x$fpl$ddiv)
x$fpl$dfix 0x08008140 Section 94 dfix.o(x$fpl$dfix)
$v0 0x08008140 Number 0 dfix.o(x$fpl$dfix)
x$fpl$dfixu 0x080081a0 Section 90 dfixu.o(x$fpl$dfixu)
$v0 0x080081a0 Number 0 dfixu.o(x$fpl$dfixu)
x$fpl$dflt 0x080081fa Section 46 dflt_clz.o(x$fpl$dflt)
$v0 0x080081fa Number 0 dflt_clz.o(x$fpl$dflt)
x$fpl$dfltll 0x08008228 Section 162 dfltll_clz.o(x$fpl$dfltll)
$v0 0x08008228 Number 0 dfltll_clz.o(x$fpl$dfltll)
x$fpl$dmul 0x080082cc Section 340 dmul.o(x$fpl$dmul)
$v0 0x080082cc Number 0 dmul.o(x$fpl$dmul)
x$fpl$dnaninf 0x08008420 Section 156 dnaninf.o(x$fpl$dnaninf)
$v0 0x08008420 Number 0 dnaninf.o(x$fpl$dnaninf)
x$fpl$dretinf 0x080084bc Section 12 dretinf.o(x$fpl$dretinf)
$v0 0x080084bc Number 0 dretinf.o(x$fpl$dretinf)
x$fpl$dsub 0x080084c8 Section 468 daddsub_clz.o(x$fpl$dsub)
$v0 0x080084c8 Number 0 daddsub_clz.o(x$fpl$dsub)
_dsub1 0x080084d9 Thumb Code 0 daddsub_clz.o(x$fpl$dsub)
x$fpl$fpinit 0x0800869c Section 10 fpinit.o(x$fpl$fpinit)
$v0 0x0800869c Number 0 fpinit.o(x$fpl$fpinit)
.constdata 0x080086a6 Section 8 stm32f4xx_hal_dma.o(.constdata)
x$fpl$usenofp 0x080086a6 Section 0 usenofp.o(x$fpl$usenofp)
flagBitshiftOffset 0x080086a6 Data 8 stm32f4xx_hal_dma.o(.constdata)
.constdata 0x080086ae Section 24 system_stm32f4xx.o(.constdata)
i.prov_adj_init 0x080069b4 Section 0 provalctrl.o(i.prov_adj_init)
i.prov_calibrate_pid 0x08006a6c Section 0 provalctrl.o(i.prov_calibrate_pid)
i.prov_ctrl 0x08006e60 Section 0 provalctrl.o(i.prov_ctrl)
i.prov_init 0x08006ecc Section 0 provalctrl.o(i.prov_init)
i.prov_set 0x0800713c Section 0 provalctrl.o(i.prov_set)
i.readcoilstate_rtu 0x0800723c Section 0 modbus_rtu.o(i.readcoilstate_rtu)
i.readdisinputstate_rtu 0x0800738c Section 0 modbus_rtu.o(i.readdisinputstate_rtu)
i.readholdreg_rtu 0x080074d8 Section 0 modbus_rtu.o(i.readholdreg_rtu)
i.readinputreg_rtu 0x080075e4 Section 0 modbus_rtu.o(i.readinputreg_rtu)
i.setcs 0x080076e8 Section 0 ms5803.o(i.setcs)
i.tim6_cnt 0x08007750 Section 0 timer.o(i.tim6_cnt)
i.uart_send 0x0800795c Section 0 uarts.o(i.uart_send)
i.wf5803_ReadReg 0x08007970 Section 0 mf5803.o(i.wf5803_ReadReg)
i.wf5803_WriteReg 0x08007992 Section 0 mf5803.o(i.wf5803_WriteReg)
i.writemulticoil_rtu 0x080079b4 Section 0 modbus_rtu.o(i.writemulticoil_rtu)
i.writemultireg_rtu 0x08007b00 Section 0 modbus_rtu.o(i.writemultireg_rtu)
i.writesinglecoil_rtu 0x08007c04 Section 0 modbus_rtu.o(i.writesinglecoil_rtu)
i.writesinglereg_rtu 0x08007cc8 Section 0 modbus_rtu.o(i.writesinglereg_rtu)
x$fpl$dadd 0x08007d80 Section 336 daddsub_clz.o(x$fpl$dadd)
$v0 0x08007d80 Number 0 daddsub_clz.o(x$fpl$dadd)
_dadd1 0x08007d91 Thumb Code 0 daddsub_clz.o(x$fpl$dadd)
x$fpl$ddiv 0x08007ed0 Section 688 ddiv.o(x$fpl$ddiv)
$v0 0x08007ed0 Number 0 ddiv.o(x$fpl$ddiv)
ddiv_entry 0x08007ed7 Thumb Code 0 ddiv.o(x$fpl$ddiv)
x$fpl$dfix 0x08008180 Section 94 dfix.o(x$fpl$dfix)
$v0 0x08008180 Number 0 dfix.o(x$fpl$dfix)
x$fpl$dfixu 0x080081e0 Section 90 dfixu.o(x$fpl$dfixu)
$v0 0x080081e0 Number 0 dfixu.o(x$fpl$dfixu)
x$fpl$dflt 0x0800823a Section 46 dflt_clz.o(x$fpl$dflt)
$v0 0x0800823a Number 0 dflt_clz.o(x$fpl$dflt)
x$fpl$dfltll 0x08008268 Section 162 dfltll_clz.o(x$fpl$dfltll)
$v0 0x08008268 Number 0 dfltll_clz.o(x$fpl$dfltll)
x$fpl$dmul 0x0800830c Section 340 dmul.o(x$fpl$dmul)
$v0 0x0800830c Number 0 dmul.o(x$fpl$dmul)
x$fpl$dnaninf 0x08008460 Section 156 dnaninf.o(x$fpl$dnaninf)
$v0 0x08008460 Number 0 dnaninf.o(x$fpl$dnaninf)
x$fpl$dretinf 0x080084fc Section 12 dretinf.o(x$fpl$dretinf)
$v0 0x080084fc Number 0 dretinf.o(x$fpl$dretinf)
x$fpl$dsub 0x08008508 Section 468 daddsub_clz.o(x$fpl$dsub)
$v0 0x08008508 Number 0 daddsub_clz.o(x$fpl$dsub)
_dsub1 0x08008519 Thumb Code 0 daddsub_clz.o(x$fpl$dsub)
x$fpl$fpinit 0x080086dc Section 10 fpinit.o(x$fpl$fpinit)
$v0 0x080086dc Number 0 fpinit.o(x$fpl$fpinit)
.constdata 0x080086e6 Section 8 stm32f4xx_hal_dma.o(.constdata)
x$fpl$usenofp 0x080086e6 Section 0 usenofp.o(x$fpl$usenofp)
flagBitshiftOffset 0x080086e6 Data 8 stm32f4xx_hal_dma.o(.constdata)
.constdata 0x080086ee Section 24 system_stm32f4xx.o(.constdata)
.data 0x20000000 Section 9 stm32f4xx_hal.o(.data)
.data 0x2000000c Section 4 system_stm32f4xx.o(.data)
.data 0x20000010 Section 24 ads1256.o(.data)
@ -3633,51 +3633,51 @@ Image Symbol Table
modbus_process_rtu 0x08006285 Thumb Code 64 modbus_rtu.o(i.modbus_process_rtu)
modbus_rtu_init 0x080062c9 Thumb Code 58 modbus_rtu.o(i.modbus_rtu_init)
modbus_rx_cb 0x0800631d Thumb Code 98 modbus_rtu.o(i.modbus_rx_cb)
prov_adj 0x080063a1 Thumb Code 1496 provalctrl.o(i.prov_adj)
prov_adj_init 0x080069ad Thumb Code 168 provalctrl.o(i.prov_adj_init)
prov_calibrate_pid 0x08006a65 Thumb Code 926 provalctrl.o(i.prov_calibrate_pid)
prov_ctrl 0x08006e19 Thumb Code 102 provalctrl.o(i.prov_ctrl)
prov_init 0x08006e85 Thumb Code 588 provalctrl.o(i.prov_init)
prov_set 0x080070fd Thumb Code 244 provalctrl.o(i.prov_set)
readcoilstate_rtu 0x080071fd Thumb Code 326 modbus_rtu.o(i.readcoilstate_rtu)
readdisinputstate_rtu 0x0800734d Thumb Code 322 modbus_rtu.o(i.readdisinputstate_rtu)
readholdreg_rtu 0x08007499 Thumb Code 258 modbus_rtu.o(i.readholdreg_rtu)
readinputreg_rtu 0x080075a5 Thumb Code 252 modbus_rtu.o(i.readinputreg_rtu)
setcs 0x080076a9 Thumb Code 86 ms5803.o(i.setcs)
tim6_cnt 0x08007711 Thumb Code 420 timer.o(i.tim6_cnt)
uart_send 0x0800791d Thumb Code 20 uarts.o(i.uart_send)
wf5803_ReadReg 0x08007931 Thumb Code 34 mf5803.o(i.wf5803_ReadReg)
wf5803_WriteReg 0x08007953 Thumb Code 34 mf5803.o(i.wf5803_WriteReg)
writemulticoil_rtu 0x08007975 Thumb Code 322 modbus_rtu.o(i.writemulticoil_rtu)
writemultireg_rtu 0x08007ac1 Thumb Code 252 modbus_rtu.o(i.writemultireg_rtu)
writesinglecoil_rtu 0x08007bc5 Thumb Code 188 modbus_rtu.o(i.writesinglecoil_rtu)
writesinglereg_rtu 0x08007c89 Thumb Code 176 modbus_rtu.o(i.writesinglereg_rtu)
__aeabi_dadd 0x08007d41 Thumb Code 0 daddsub_clz.o(x$fpl$dadd)
_dadd 0x08007d41 Thumb Code 332 daddsub_clz.o(x$fpl$dadd)
__aeabi_ddiv 0x08007e91 Thumb Code 0 ddiv.o(x$fpl$ddiv)
_ddiv 0x08007e91 Thumb Code 552 ddiv.o(x$fpl$ddiv)
__aeabi_d2iz 0x08008141 Thumb Code 0 dfix.o(x$fpl$dfix)
_dfix 0x08008141 Thumb Code 94 dfix.o(x$fpl$dfix)
__aeabi_d2uiz 0x080081a1 Thumb Code 0 dfixu.o(x$fpl$dfixu)
_dfixu 0x080081a1 Thumb Code 90 dfixu.o(x$fpl$dfixu)
__aeabi_i2d 0x080081fb Thumb Code 0 dflt_clz.o(x$fpl$dflt)
_dflt 0x080081fb Thumb Code 46 dflt_clz.o(x$fpl$dflt)
__aeabi_l2d 0x08008229 Thumb Code 0 dfltll_clz.o(x$fpl$dfltll)
_ll_sto_d 0x08008229 Thumb Code 162 dfltll_clz.o(x$fpl$dfltll)
__aeabi_dmul 0x080082cd Thumb Code 0 dmul.o(x$fpl$dmul)
_dmul 0x080082cd Thumb Code 332 dmul.o(x$fpl$dmul)
__fpl_dnaninf 0x08008421 Thumb Code 156 dnaninf.o(x$fpl$dnaninf)
__fpl_dretinf 0x080084bd Thumb Code 12 dretinf.o(x$fpl$dretinf)
__aeabi_dsub 0x080084c9 Thumb Code 0 daddsub_clz.o(x$fpl$dsub)
_dsub 0x080084c9 Thumb Code 464 daddsub_clz.o(x$fpl$dsub)
_fp_init 0x0800869d Thumb Code 10 fpinit.o(x$fpl$fpinit)
__fplib_config_fpu_vfp 0x080086a5 Thumb Code 0 fpinit.o(x$fpl$fpinit)
__fplib_config_pureend_doubles 0x080086a5 Thumb Code 0 fpinit.o(x$fpl$fpinit)
__I$use$fp 0x080086a6 Number 0 usenofp.o(x$fpl$usenofp)
AHBPrescTable 0x080086ae Data 16 system_stm32f4xx.o(.constdata)
APBPrescTable 0x080086be Data 8 system_stm32f4xx.o(.constdata)
Region$$Table$$Base 0x080086c8 Number 0 anon$$obj.o(Region$$Table)
Region$$Table$$Limit 0x080086e8 Number 0 anon$$obj.o(Region$$Table)
prov_adj 0x080063a1 Thumb Code 1504 provalctrl.o(i.prov_adj)
prov_adj_init 0x080069b5 Thumb Code 168 provalctrl.o(i.prov_adj_init)
prov_calibrate_pid 0x08006a6d Thumb Code 986 provalctrl.o(i.prov_calibrate_pid)
prov_ctrl 0x08006e61 Thumb Code 102 provalctrl.o(i.prov_ctrl)
prov_init 0x08006ecd Thumb Code 588 provalctrl.o(i.prov_init)
prov_set 0x0800713d Thumb Code 244 provalctrl.o(i.prov_set)
readcoilstate_rtu 0x0800723d Thumb Code 326 modbus_rtu.o(i.readcoilstate_rtu)
readdisinputstate_rtu 0x0800738d Thumb Code 322 modbus_rtu.o(i.readdisinputstate_rtu)
readholdreg_rtu 0x080074d9 Thumb Code 258 modbus_rtu.o(i.readholdreg_rtu)
readinputreg_rtu 0x080075e5 Thumb Code 252 modbus_rtu.o(i.readinputreg_rtu)
setcs 0x080076e9 Thumb Code 86 ms5803.o(i.setcs)
tim6_cnt 0x08007751 Thumb Code 420 timer.o(i.tim6_cnt)
uart_send 0x0800795d Thumb Code 20 uarts.o(i.uart_send)
wf5803_ReadReg 0x08007971 Thumb Code 34 mf5803.o(i.wf5803_ReadReg)
wf5803_WriteReg 0x08007993 Thumb Code 34 mf5803.o(i.wf5803_WriteReg)
writemulticoil_rtu 0x080079b5 Thumb Code 322 modbus_rtu.o(i.writemulticoil_rtu)
writemultireg_rtu 0x08007b01 Thumb Code 252 modbus_rtu.o(i.writemultireg_rtu)
writesinglecoil_rtu 0x08007c05 Thumb Code 188 modbus_rtu.o(i.writesinglecoil_rtu)
writesinglereg_rtu 0x08007cc9 Thumb Code 176 modbus_rtu.o(i.writesinglereg_rtu)
__aeabi_dadd 0x08007d81 Thumb Code 0 daddsub_clz.o(x$fpl$dadd)
_dadd 0x08007d81 Thumb Code 332 daddsub_clz.o(x$fpl$dadd)
__aeabi_ddiv 0x08007ed1 Thumb Code 0 ddiv.o(x$fpl$ddiv)
_ddiv 0x08007ed1 Thumb Code 552 ddiv.o(x$fpl$ddiv)
__aeabi_d2iz 0x08008181 Thumb Code 0 dfix.o(x$fpl$dfix)
_dfix 0x08008181 Thumb Code 94 dfix.o(x$fpl$dfix)
__aeabi_d2uiz 0x080081e1 Thumb Code 0 dfixu.o(x$fpl$dfixu)
_dfixu 0x080081e1 Thumb Code 90 dfixu.o(x$fpl$dfixu)
__aeabi_i2d 0x0800823b Thumb Code 0 dflt_clz.o(x$fpl$dflt)
_dflt 0x0800823b Thumb Code 46 dflt_clz.o(x$fpl$dflt)
__aeabi_l2d 0x08008269 Thumb Code 0 dfltll_clz.o(x$fpl$dfltll)
_ll_sto_d 0x08008269 Thumb Code 162 dfltll_clz.o(x$fpl$dfltll)
__aeabi_dmul 0x0800830d Thumb Code 0 dmul.o(x$fpl$dmul)
_dmul 0x0800830d Thumb Code 332 dmul.o(x$fpl$dmul)
__fpl_dnaninf 0x08008461 Thumb Code 156 dnaninf.o(x$fpl$dnaninf)
__fpl_dretinf 0x080084fd Thumb Code 12 dretinf.o(x$fpl$dretinf)
__aeabi_dsub 0x08008509 Thumb Code 0 daddsub_clz.o(x$fpl$dsub)
_dsub 0x08008509 Thumb Code 464 daddsub_clz.o(x$fpl$dsub)
_fp_init 0x080086dd Thumb Code 10 fpinit.o(x$fpl$fpinit)
__fplib_config_fpu_vfp 0x080086e5 Thumb Code 0 fpinit.o(x$fpl$fpinit)
__fplib_config_pureend_doubles 0x080086e5 Thumb Code 0 fpinit.o(x$fpl$fpinit)
__I$use$fp 0x080086e6 Number 0 usenofp.o(x$fpl$usenofp)
AHBPrescTable 0x080086ee Data 16 system_stm32f4xx.o(.constdata)
APBPrescTable 0x080086fe Data 8 system_stm32f4xx.o(.constdata)
Region$$Table$$Base 0x08008708 Number 0 anon$$obj.o(Region$$Table)
Region$$Table$$Limit 0x08008728 Number 0 anon$$obj.o(Region$$Table)
uwTick 0x20000000 Data 4 stm32f4xx_hal.o(.data)
uwTickPrio 0x20000004 Data 4 stm32f4xx_hal.o(.data)
uwTickFreq 0x20000008 Data 1 stm32f4xx_hal.o(.data)
@ -3802,9 +3802,9 @@ Memory Map of the image
Image Entry point : 0x08000189
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00008888, Max: 0x00100000, ABSOLUTE, COMPRESSED[0x00008708])
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x000088c8, Max: 0x00100000, ABSOLUTE, COMPRESSED[0x00008748])
Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x000086e8, Max: 0x00100000, ABSOLUTE)
Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x00008728, Max: 0x00100000, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
@ -4087,46 +4087,46 @@ Memory Map of the image
0x08006284 0x08006284 0x00000044 Code RO 5110 i.modbus_process_rtu modbus_rtu.o
0x080062c8 0x080062c8 0x00000054 Code RO 5111 i.modbus_rtu_init modbus_rtu.o
0x0800631c 0x0800631c 0x00000084 Code RO 5112 i.modbus_rx_cb modbus_rtu.o
0x080063a0 0x080063a0 0x0000060c Code RO 5963 i.prov_adj provalctrl.o
0x080069ac 0x080069ac 0x000000b8 Code RO 5964 i.prov_adj_init provalctrl.o
0x08006a64 0x08006a64 0x000003b4 Code RO 5965 i.prov_calibrate_pid provalctrl.o
0x08006e18 0x08006e18 0x0000006c Code RO 5966 i.prov_ctrl provalctrl.o
0x08006e84 0x08006e84 0x00000278 Code RO 5967 i.prov_init provalctrl.o
0x080070fc 0x080070fc 0x00000100 Code RO 5968 i.prov_set provalctrl.o
0x080071fc 0x080071fc 0x00000150 Code RO 5113 i.readcoilstate_rtu modbus_rtu.o
0x0800734c 0x0800734c 0x0000014c Code RO 5114 i.readdisinputstate_rtu modbus_rtu.o
0x08007498 0x08007498 0x0000010c Code RO 5115 i.readholdreg_rtu modbus_rtu.o
0x080075a4 0x080075a4 0x00000104 Code RO 5116 i.readinputreg_rtu modbus_rtu.o
0x080076a8 0x080076a8 0x00000068 Code RO 4749 i.setcs ms5803.o
0x08007710 0x08007710 0x0000020c Code RO 5867 i.tim6_cnt timer.o
0x0800791c 0x0800791c 0x00000014 Code RO 5910 i.uart_send uarts.o
0x08007930 0x08007930 0x00000022 Code RO 4970 i.wf5803_ReadReg mf5803.o
0x08007952 0x08007952 0x00000022 Code RO 4972 i.wf5803_WriteReg mf5803.o
0x08007974 0x08007974 0x0000014c Code RO 5117 i.writemulticoil_rtu modbus_rtu.o
0x08007ac0 0x08007ac0 0x00000104 Code RO 5118 i.writemultireg_rtu modbus_rtu.o
0x08007bc4 0x08007bc4 0x000000c4 Code RO 5119 i.writesinglecoil_rtu modbus_rtu.o
0x08007c88 0x08007c88 0x000000b8 Code RO 5120 i.writesinglereg_rtu modbus_rtu.o
0x08007d40 0x08007d40 0x00000150 Code RO 6188 x$fpl$dadd fz_wm.l(daddsub_clz.o)
0x08007e90 0x08007e90 0x000002b0 Code RO 6195 x$fpl$ddiv fz_wm.l(ddiv.o)
0x08008140 0x08008140 0x0000005e Code RO 6198 x$fpl$dfix fz_wm.l(dfix.o)
0x0800819e 0x0800819e 0x00000002 PAD
0x080081a0 0x080081a0 0x0000005a Code RO 6206 x$fpl$dfixu fz_wm.l(dfixu.o)
0x080081fa 0x080081fa 0x0000002e Code RO 6211 x$fpl$dflt fz_wm.l(dflt_clz.o)
0x08008228 0x08008228 0x000000a2 Code RO 6216 x$fpl$dfltll fz_wm.l(dfltll_clz.o)
0x080082ca 0x080082ca 0x00000002 PAD
0x080082cc 0x080082cc 0x00000154 Code RO 6220 x$fpl$dmul fz_wm.l(dmul.o)
0x08008420 0x08008420 0x0000009c Code RO 6252 x$fpl$dnaninf fz_wm.l(dnaninf.o)
0x080084bc 0x080084bc 0x0000000c Code RO 6254 x$fpl$dretinf fz_wm.l(dretinf.o)
0x080084c8 0x080084c8 0x000001d4 Code RO 6190 x$fpl$dsub fz_wm.l(daddsub_clz.o)
0x0800869c 0x0800869c 0x0000000a Code RO 6423 x$fpl$fpinit fz_wm.l(fpinit.o)
0x080086a6 0x080086a6 0x00000000 Code RO 6260 x$fpl$usenofp fz_wm.l(usenofp.o)
0x080086a6 0x080086a6 0x00000008 Data RO 1572 .constdata stm32f4xx_hal_dma.o
0x080086ae 0x080086ae 0x00000018 Data RO 4417 .constdata system_stm32f4xx.o
0x080086c6 0x080086c6 0x00000002 PAD
0x080086c8 0x080086c8 0x00000020 Data RO 6479 Region$$Table anon$$obj.o
0x080063a0 0x080063a0 0x00000614 Code RO 5963 i.prov_adj provalctrl.o
0x080069b4 0x080069b4 0x000000b8 Code RO 5964 i.prov_adj_init provalctrl.o
0x08006a6c 0x08006a6c 0x000003f4 Code RO 5965 i.prov_calibrate_pid provalctrl.o
0x08006e60 0x08006e60 0x0000006c Code RO 5966 i.prov_ctrl provalctrl.o
0x08006ecc 0x08006ecc 0x00000270 Code RO 5967 i.prov_init provalctrl.o
0x0800713c 0x0800713c 0x00000100 Code RO 5968 i.prov_set provalctrl.o
0x0800723c 0x0800723c 0x00000150 Code RO 5113 i.readcoilstate_rtu modbus_rtu.o
0x0800738c 0x0800738c 0x0000014c Code RO 5114 i.readdisinputstate_rtu modbus_rtu.o
0x080074d8 0x080074d8 0x0000010c Code RO 5115 i.readholdreg_rtu modbus_rtu.o
0x080075e4 0x080075e4 0x00000104 Code RO 5116 i.readinputreg_rtu modbus_rtu.o
0x080076e8 0x080076e8 0x00000068 Code RO 4749 i.setcs ms5803.o
0x08007750 0x08007750 0x0000020c Code RO 5867 i.tim6_cnt timer.o
0x0800795c 0x0800795c 0x00000014 Code RO 5910 i.uart_send uarts.o
0x08007970 0x08007970 0x00000022 Code RO 4970 i.wf5803_ReadReg mf5803.o
0x08007992 0x08007992 0x00000022 Code RO 4972 i.wf5803_WriteReg mf5803.o
0x080079b4 0x080079b4 0x0000014c Code RO 5117 i.writemulticoil_rtu modbus_rtu.o
0x08007b00 0x08007b00 0x00000104 Code RO 5118 i.writemultireg_rtu modbus_rtu.o
0x08007c04 0x08007c04 0x000000c4 Code RO 5119 i.writesinglecoil_rtu modbus_rtu.o
0x08007cc8 0x08007cc8 0x000000b8 Code RO 5120 i.writesinglereg_rtu modbus_rtu.o
0x08007d80 0x08007d80 0x00000150 Code RO 6188 x$fpl$dadd fz_wm.l(daddsub_clz.o)
0x08007ed0 0x08007ed0 0x000002b0 Code RO 6195 x$fpl$ddiv fz_wm.l(ddiv.o)
0x08008180 0x08008180 0x0000005e Code RO 6198 x$fpl$dfix fz_wm.l(dfix.o)
0x080081de 0x080081de 0x00000002 PAD
0x080081e0 0x080081e0 0x0000005a Code RO 6206 x$fpl$dfixu fz_wm.l(dfixu.o)
0x0800823a 0x0800823a 0x0000002e Code RO 6211 x$fpl$dflt fz_wm.l(dflt_clz.o)
0x08008268 0x08008268 0x000000a2 Code RO 6216 x$fpl$dfltll fz_wm.l(dfltll_clz.o)
0x0800830a 0x0800830a 0x00000002 PAD
0x0800830c 0x0800830c 0x00000154 Code RO 6220 x$fpl$dmul fz_wm.l(dmul.o)
0x08008460 0x08008460 0x0000009c Code RO 6252 x$fpl$dnaninf fz_wm.l(dnaninf.o)
0x080084fc 0x080084fc 0x0000000c Code RO 6254 x$fpl$dretinf fz_wm.l(dretinf.o)
0x08008508 0x08008508 0x000001d4 Code RO 6190 x$fpl$dsub fz_wm.l(daddsub_clz.o)
0x080086dc 0x080086dc 0x0000000a Code RO 6423 x$fpl$fpinit fz_wm.l(fpinit.o)
0x080086e6 0x080086e6 0x00000000 Code RO 6260 x$fpl$usenofp fz_wm.l(usenofp.o)
0x080086e6 0x080086e6 0x00000008 Data RO 1572 .constdata stm32f4xx_hal_dma.o
0x080086ee 0x080086ee 0x00000018 Data RO 4417 .constdata system_stm32f4xx.o
0x08008706 0x08008706 0x00000002 PAD
0x08008708 0x08008708 0x00000020 Data RO 6479 Region$$Table anon$$obj.o
Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x080086e8, Size: 0x00001bd0, Max: 0x0001c000, ABSOLUTE, COMPRESSED[0x00000020])
Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x08008728, Size: 0x00001bd0, Max: 0x0001c000, ABSOLUTE, COMPRESSED[0x00000020])
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
@ -4167,7 +4167,7 @@ Memory Map of the image
0x200017d0 - 0x00000400 Zero RW 1 STACK startup_stm32f407xx.o
Execution Region RW_IRAM2 (Exec base: 0x2001c000, Load base: 0x08008708, Size: 0x00000000, Max: 0x00004000, ABSOLUTE)
Execution Region RW_IRAM2 (Exec base: 0x2001c000, Load base: 0x08008748, Size: 0x00000000, Max: 0x00004000, ABSOLUTE)
**** No section assigned to this execution region ****
@ -4198,7 +4198,7 @@ Image component sizes
358 32 0 110 196 7180 modbus.o
2760 146 0 0 2048 13994 modbus_rtu.o
256 50 0 17 0 3199 ms5803.o
4442 266 0 41 456 9270 provalctrl.o
4506 262 0 41 456 9318 provalctrl.o
204 22 0 0 88 1861 spi.o
64 26 392 0 1536 892 startup_stm32f407xx.o
212 36 0 9 0 9777 stm32f4xx_hal.o
@ -4221,7 +4221,7 @@ Image component sizes
1288 114 0 0 840 5222 usart.o
----------------------------------------------------------------------
30712 2058 458 416 6608 946750 Object Totals
30776 2054 458 416 6608 946798 Object Totals
0 0 32 0 0 0 (incl. Generated)
30 0 2 13 3 0 (incl. Padding)
@ -4286,15 +4286,15 @@ Image component sizes
Code (inc. data) RO Data RW Data ZI Data Debug
34078 2250 458 416 6704 926598 Grand Totals
34078 2250 458 32 6704 926598 ELF Image Totals (compressed)
34078 2250 458 32 0 0 ROM Totals
34142 2246 458 416 6704 926646 Grand Totals
34142 2246 458 32 6704 926646 ELF Image Totals (compressed)
34142 2246 458 32 0 0 ROM Totals
==============================================================================
Total RO Size (Code + RO Data) 34536 ( 33.73kB)
Total RO Size (Code + RO Data) 34600 ( 33.79kB)
Total RW Size (RW Data + ZI Data) 7120 ( 6.95kB)
Total ROM Size (Code + RO Data + RW Data) 34568 ( 33.76kB)
Total ROM Size (Code + RO Data + RW Data) 34632 ( 33.82kB)
==============================================================================

View File

@ -66,7 +66,7 @@ I (C:\Users\admin\Desktop\wujunchao\99_General softwares\Keil_v5\ARM\ARM Compile
I (../board/Inc/ms5803.h)(0x669760FF)
I (../board/Inc/ds18b20.h)(0x6694D35E)
I (../board/Inc/dac7311.h)(0x66949B65)
I (../users/Inc/provalctrl.h)(0x66DAB0EF)
I (../users/Inc/provalctrl.h)(0x66DBB69C)
I (../board/Inc/eeprom.h)(0x66CE9587)
F (../Core/Src/gpio.c)(0x66C2E5A9)(--c99 -c --cpu Cortex-M4.fp.sp -g -O0 -Otime --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../board/Inc -I ../CH395Q -I ../modbus/Inc -I ../users/Inc -I.\RTE\_VOQC -IC:\Users\admin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include -IC:\Users\admin\AppData\Local\Arm\Packs\Keil\STM32F4xx_DFP\2.15.0\Drivers\CMSIS\Device\ST\STM32F4xx\Include -D__UVISION_VERSION="539" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx -o voqc\gpio.o --omf_browse voqc\gpio.crf --depend voqc\gpio.d)
I (../Core/Inc/gpio.h)(0x668F85FA)
@ -1429,7 +1429,7 @@ I (../CH395Q/ch395inc.h)(0x66C443B0)
I (../Core/Inc/spi.h)(0x668F85FC)
I (../CH395Q/ch395cmd.h)(0x664FF969)
I (C:\Users\admin\Desktop\wujunchao\99_General softwares\Keil_v5\ARM\ARM Compiler_5_06\include\string.h)(0x5E8E3CC2)
I (../users/Inc/provalctrl.h)(0x66DAB0EF)
I (../users/Inc/provalctrl.h)(0x66DBB69C)
I (../board/Inc/dac7311.h)(0x66949B65)
I (../board/Inc/eeprom.h)(0x66CE9587)
F (..\board\Src\dac7311.c)(0x66AB21F7)(--c99 -c --cpu Cortex-M4.fp.sp -g -O0 -Otime --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../board/Inc -I ../CH395Q -I ../modbus/Inc -I ../users/Inc -I.\RTE\_VOQC -IC:\Users\admin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include -IC:\Users\admin\AppData\Local\Arm\Packs\Keil\STM32F4xx_DFP\2.15.0\Drivers\CMSIS\Device\ST\STM32F4xx\Include -D__UVISION_VERSION="539" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx -o voqc\dac7311.o --omf_browse voqc\dac7311.crf --depend voqc\dac7311.d)
@ -2242,8 +2242,8 @@ I (../Core/Inc/spi.h)(0x668F85FC)
I (../CH395Q/ch395cmd.h)(0x664FF969)
I (C:\Users\admin\Desktop\wujunchao\99_General softwares\Keil_v5\ARM\ARM Compiler_5_06\include\string.h)(0x5E8E3CC2)
I (C:\Users\admin\Desktop\wujunchao\99_General softwares\Keil_v5\ARM\ARM Compiler_5_06\include\stdio.h)(0x5E8E3CC2)
F (..\users\Src\provalctrl.c)(0x66DAB147)(--c99 -c --cpu Cortex-M4.fp.sp -g -O0 -Otime --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../board/Inc -I ../CH395Q -I ../modbus/Inc -I ../users/Inc -I.\RTE\_VOQC -IC:\Users\admin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include -IC:\Users\admin\AppData\Local\Arm\Packs\Keil\STM32F4xx_DFP\2.15.0\Drivers\CMSIS\Device\ST\STM32F4xx\Include -D__UVISION_VERSION="539" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx -o voqc\provalctrl.o --omf_browse voqc\provalctrl.crf --depend voqc\provalctrl.d)
I (../users/Inc/provalctrl.h)(0x66DAB0EF)
F (..\users\Src\provalctrl.c)(0x66DBDD6A)(--c99 -c --cpu Cortex-M4.fp.sp -g -O0 -Otime --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../board/Inc -I ../CH395Q -I ../modbus/Inc -I ../users/Inc -I.\RTE\_VOQC -IC:\Users\admin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include -IC:\Users\admin\AppData\Local\Arm\Packs\Keil\STM32F4xx_DFP\2.15.0\Drivers\CMSIS\Device\ST\STM32F4xx\Include -D__UVISION_VERSION="539" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx -o voqc\provalctrl.o --omf_browse voqc\provalctrl.crf --depend voqc\provalctrl.d)
I (../users/Inc/provalctrl.h)(0x66DBB69C)
I (../modbus/Inc/modbus.h)(0x66CEC5B0)
I (../users/Inc/timer.h)(0x66CEDE30)
I (../Core/Inc/tim.h)(0x6694D67D)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -28,13 +28,13 @@ void prov_init(void) //不同比例阀的初始参数不一样
pv_one.input_max = 20; //输入电流上限20mA
pv_one.bias = 0; //偏差 = 目标气压百分比 - 当前气压百分比
pv_one.bias_previous = 0; //前一个时刻的偏差
pv_one.bias_area = 0.3; //允许的误差范围±a(%)
pv_one.bias_area = 0.5; //允许的误差范围±a(%)
pv_one.Kp = data_rd[0]; //比例系数
pv_one.Ti = (data_rd[1] == 0)?(1000000):(data_rd[1]); //积分时间,位于分母
pv_one.Ing = 0; //积分输出
pv_one.Ing_max = 5000; //积分上限
pv_one.Ing_min = -5000; //积分下限
pv_one.Ing_min = 0; //积分下限
pv_one.Ing_sum = 0; //偏差求和
pv_one.Td = data_rd[2]; //微分时间
pv_one.Ts = 0.05; //采样周期50ms
@ -78,7 +78,7 @@ void prov_init(void) //不同比例阀的初始参数不一样
pv_two.Ti = (data_rd[1] == 0)?(1000000):(data_rd[1]); //积分时间
pv_two.Ing = 0;
pv_two.Ing_max = 5000;
pv_two.Ing_min = -5000;
pv_two.Ing_min = 0;
pv_two.Ing_sum = 0;
pv_two.Td = data_rd[2];
pv_two.Ts = 0.05; //采样周期50ms
@ -171,45 +171,38 @@ void prov_calibrate_pid(propotion_valve *pvx)
{
if( (abs_bias(pvx->bias) > pvx->bias_area ) && (abs_bias(pvx->bias) < BIAS_MAX) ) //误差进入目标±BIAS_MAX%以内后再进行控制
{
beta_in = ( abs_bias(pvx->bias) + BIAS_MAX * (float)1.25 ) / ( BIAS_MAX ); //变速积分
beta_in = ( abs_bias(pvx->bias*pvx->bias) + BIAS_MAX ) / ( BIAS_MAX ); //变速积分
beta_out = ( abs_bias(pvx->bias) + BIAS_MAX/2 ) / ( BIAS_MAX ); //变速积分
switch(pvx->gas_direction) //根据气体方向对输出范围做补偿
{
case GAS_IN:
{
if( (pvx->Ing_sum >= pvx->Ing_min) && (pvx->Ing_sum <= pvx->Ing_max) ) //积分累加与限幅
{
pvx->Ing_sum += pvx->bias * beta_in; //偏差求和
}else
{
pvx->Ing_sum = (pvx->Ing_sum > 0)?(pvx->Ing_max):(pvx->Ing_min);
}
pvx->Ing_sum += pvx->bias;// * beta_in; //偏差求和
pvx->Ing_sum = (pvx->Ing_sum > pvx->Ing_max)?(pvx->Ing_max):(pvx->Ing_sum); //积分限幅
pvx->Ing_sum = (pvx->Ing_sum < pvx->Ing_min)?(pvx->Ing_min):(pvx->Ing_sum);
pvx->Ing = ( pvx->Ts / pvx->Ti ) * pvx->Ing_sum; //积分项
pvx->Div = ( pvx->Td / pvx->Ts ) * ( pvx->bias - pvx->bias_previous ); //微分项
pvx->pidout = pvx->Kp*( pvx->bias + pvx->Ing + pvx->Div ); //pid输出
pvx->current_input = (pvx->pidout/100) * (pvx->input_max - pvx->input_min);
pvx->current_input = (pvx->pidout/100) * (pvx->input_max - pvx->input_min) + pvx->input_min;
}
break;
case GAS_OUT:
{
if( (pvx->Ing_sum >= pvx->Ing_min) && (pvx->Ing_sum <= pvx->Ing_max) ) //积分累加与限幅
{
pvx->Ing_sum += pvx->bias * beta_out; //偏差求和
}else
{
pvx->Ing_sum = (pvx->Ing_sum > 0)?(pvx->Ing_max):(pvx->Ing_min);
}
pvx->Ing_sum += pvx->bias;// * beta_out; //偏差求和
pvx->Ing_sum = (pvx->Ing_sum > pvx->Ing_max)?(pvx->Ing_max):(pvx->Ing_sum); //积分限幅
pvx->Ing_sum = (pvx->Ing_sum < pvx->Ing_min)?(pvx->Ing_min):(pvx->Ing_sum);
pvx->Ing = ( pvx->Ts / pvx->Ti ) * pvx->Ing_sum; //积分项
pvx->Div = ( pvx->Td / pvx->Ts ) * ( pvx->bias - pvx->bias_previous ); //微分项
pvx->pidout = pvx->Kp*( pvx->bias + pvx->Ing + pvx->Div ); //pid输出
pvx->current_input = (pvx->pidout/100) * (pvx->input_max - pvx->input_min);
pvx->current_input = (pvx->pidout/100) * (pvx->input_max - pvx->input_min) + pvx->input_min;
}
break;
@ -236,13 +229,34 @@ void prov_calibrate_pid(propotion_valve *pvx)
if( pvx->target_current <= pvx->input_min*(float)(1.005) )
{
pvx->current_input = pvx->input_min;
pvx->Ing_sum = pvx->input_min / pvx->Kp / ( pvx->Ts / pvx->Ti );
// pvx->Ing_sum = 0;
}
pvx->pvout(pvx->current_input); //dac输出
}else if(abs_bias(pvx->bias) >= BIAS_MAX)
{
pvx->Ing_sum = pvx->current_input / pvx->Kp / ( pvx->Ts / pvx->Ti ); //预估积分值,改善滞后
switch(pvx->gas_direction) //根据气体方向对输出范围做补偿
{
case GAS_IN:
{
pvx->Ing_sum = (pvx->target_percent - 100*out_makeup) / pvx->Kp / ( pvx->Ts / pvx->Ti ); //预估积分值,改善滞后
pvx->Ing_sum = (pvx->Ing_sum < pvx->Ing_min)?(pvx->Ing_min):(pvx->Ing_sum);
}
break;
case GAS_OUT:
{
pvx->Ing_sum = pvx->target_percent / pvx->Kp / ( pvx->Ts / pvx->Ti ); //预估积分值,改善滞后
}
break;
default:
{
}
break;
}
}
}
@ -560,8 +574,8 @@ void prov_adj(propotion_valve *pvx, prov_adjust *adj_pvx)
/* PI [0.45,0.8]*/
/* PID [0.6,0.5,0.12]*/
pvx->Kp = (float)0.6 * ( 4 * (float)0.1 ) / ( (float)3.1415 * adj_pvx->relay_A );
pvx->Ti = (float)0.5 * adj_pvx->relay_Tc/1000 / 10;
pvx->Kp = (float)0.6 * ( 4 * (float)0.1 ) / ( (float)3.1415 * adj_pvx->relay_A ) / 3;
pvx->Ti = (float)0.5 * adj_pvx->relay_Tc/1000 / 20;
pvx->Td = (float)0.12 * adj_pvx->relay_Tc/1000;
pvx->Ing_sum = 0;