增加modbus任务链表,待完善

This commit is contained in:
kkkjtr 2025-12-19 17:02:27 +08:00
parent a6b3e6729e
commit a8eef9a825
15 changed files with 370 additions and 248 deletions

File diff suppressed because one or more lines are too long

View File

@ -16,7 +16,7 @@
/* Private includes ----------------------------------------------------------*/ /* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */ /* USER CODE BEGIN Includes */
#include <string.h> #include <string.h>
#include "modbus.h" //#include "modbus.h"
/* USER CODE END Includes */ /* USER CODE END Includes */
/* Private typedef -----------------------------------------------------------*/ /* Private typedef -----------------------------------------------------------*/
@ -26,33 +26,7 @@
/* Private define ------------------------------------------------------------*/ /* Private define ------------------------------------------------------------*/
/* USER CODE BEGIN PD */ /* USER CODE BEGIN PD */
// 串口定义
#define SLAVE_UART &huart1
#define OUTPUT_PORT &huart2
// DMA接收缓冲区大小
#define RX_BUFFER_SIZE 256 // 增大缓冲区
#define OUTPUT_FRAME_SIZE 98
#define SLAVE_COUNT 3
#define MATRIX_POINTS_PER_SLAVE 30
#define TOTAL_MATRIX_POINTS 90
// 超时定义
#define RESPONSE_TIMEOUT_MS 40
#define STATE_DELAY_MS 10
// 命令定义
const uint8_t status_cmds[3][4] = {
{0x01, 0x01, 0xC0, 0x80}, // 从机1状态查询
{0x02, 0x01, 0xC0, 0x80}, // 从机2状态查询
{0x03, 0x01, 0xC0, 0x80} // 从机3状态查询
};
const uint8_t matrix_cmds[3][4] = {
{0x01, 0x03, 0x41, 0x41}, // 从机1矩阵查询
{0x02, 0x03, 0x41, 0x41}, // 从机2矩阵查询
{0x03, 0x03, 0x41, 0x41} // 从机3矩阵查询
};
/* USER CODE END PD */ /* USER CODE END PD */
/* Private macro -------------------------------------------------------------*/ /* Private macro -------------------------------------------------------------*/

File diff suppressed because one or more lines are too long

View File

@ -28,17 +28,19 @@ Project File Date: 12/17/2025
*** Using Compiler 'V5.06 update 7 (build 960)', folder: 'C:\app\Keil_v5\ARM\ARMCC\Bin' *** Using Compiler 'V5.06 update 7 (build 960)', folder: 'C:\app\Keil_v5\ARM\ARMCC\Bin'
Build target 'PressureSensorBoardMaster' Build target 'PressureSensorBoardMaster'
compiling modbus.c... compiling modbus.c...
..\MiddleWares\modbus.h(29): warning: #1-D: last line of file ends without a newline ..\MiddleWares\modbus.h(55): warning: #1-D: last line of file ends without a newline
#endif #endif
..\MiddleWares\modbus.c: 1 warning, 0 errors ..\MiddleWares\modbus.c(53): warning: #186-D: pointless comparison of unsigned integer with zero
compiling main.c... if(index < 0 || index >= MAX_NODES || node_used[index] == 0)
..\MiddleWares\modbus.h(29): warning: #1-D: last line of file ends without a newline ..\MiddleWares\modbus.c(116): warning: #186-D: pointless comparison of unsigned integer with zero
#endif if(index < 0 || index >= MAX_callback_NODES )
../Core/Src/main.c: 1 warning, 0 errors ..\MiddleWares\modbus.c(14): warning: #550-D: variable "callback_list_head" was set but never used
static CallbackNode* callback_list_head = NULL;
..\MiddleWares\modbus.c: 4 warnings, 0 errors
linking... linking...
Program Size: Code=6420 RO-data=312 RW-data=16 ZI-data=1992 Program Size: Code=6420 RO-data=312 RW-data=16 ZI-data=1992
FromELF: creating hex file... FromELF: creating hex file...
"PressureSensorBoardMaster\PressureSensorBoardMaster.axf" - 0 Error(s), 2 Warning(s). "PressureSensorBoardMaster\PressureSensorBoardMaster.axf" - 0 Error(s), 4 Warning(s).
<h2>Software Packages used:</h2> <h2>Software Packages used:</h2>

View File

@ -3,7 +3,7 @@
<title>Static Call Graph - [PressureSensorBoardMaster\PressureSensorBoardMaster.axf]</title></head> <title>Static Call Graph - [PressureSensorBoardMaster\PressureSensorBoardMaster.axf]</title></head>
<body><HR> <body><HR>
<H1>Static Call Graph for image PressureSensorBoardMaster\PressureSensorBoardMaster.axf</H1><HR> <H1>Static Call Graph for image PressureSensorBoardMaster\PressureSensorBoardMaster.axf</H1><HR>
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060960: Last Updated: Wed Dec 17 11:08:30 2025 <BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060960: Last Updated: Fri Dec 19 16:21:37 2025
<BR><P> <BR><P>
<H3>Maximum Stack Usage = 136 bytes + Unknown(Functions without stacksize, Cycles, Untraceable Function Pointers)</H3><H3> <H3>Maximum Stack Usage = 136 bytes + Unknown(Functions without stacksize, Cycles, Untraceable Function Pointers)</H3><H3>
Call chain for Maximum Stack Depth:</H3> Call chain for Maximum Stack Depth:</H3>
@ -91,8 +91,8 @@ Function Pointers
Global Symbols Global Symbols
</H3> </H3>
<P><STRONG><a name="[3b]"></a>__main</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, __main.o(!!!main)) <P><STRONG><a name="[3b]"></a>__main</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, __main.o(!!!main))
<BR><BR>[Calls]<UL><LI><a href="#[3c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload <BR><BR>[Calls]<UL><LI><a href="#[3d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_entry
<LI><a href="#[3d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_entry <LI><a href="#[3c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload
</UL> </UL>
<P><STRONG><a name="[3c]"></a>__scatterload</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter)) <P><STRONG><a name="[3c]"></a>__scatterload</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter))
@ -182,8 +182,8 @@ Global Symbols
<P><STRONG><a name="[a9]"></a>__rt_lib_shutdown_user_alloc_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000E)) <P><STRONG><a name="[a9]"></a>__rt_lib_shutdown_user_alloc_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000E))
<P><STRONG><a name="[3d]"></a>__rt_entry</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry.o(.ARM.Collect$$rtentry$$00000000)) <P><STRONG><a name="[3d]"></a>__rt_entry</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry.o(.ARM.Collect$$rtentry$$00000000))
<BR><BR>[Called By]<UL><LI><a href="#[3e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload_rt2 <BR><BR>[Called By]<UL><LI><a href="#[3b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__main
<LI><a href="#[3b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__main <LI><a href="#[3e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload_rt2
</UL> </UL>
<P><STRONG><a name="[aa]"></a>__rt_entry_presh_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$00000002)) <P><STRONG><a name="[aa]"></a>__rt_entry_presh_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$00000002))

View File

@ -432,6 +432,26 @@ Section Cross References
stm32f1xx_hal_uart.o(i.UART_WaitOnFlagUntilTimeout) refers to stm32f1xx_hal_uart.o(i.UART_EndRxTransfer) for UART_EndRxTransfer stm32f1xx_hal_uart.o(i.UART_WaitOnFlagUntilTimeout) refers to stm32f1xx_hal_uart.o(i.UART_EndRxTransfer) for UART_EndRxTransfer
system_stm32f1xx.o(i.SystemCoreClockUpdate) refers to system_stm32f1xx.o(.data) for .data system_stm32f1xx.o(i.SystemCoreClockUpdate) refers to system_stm32f1xx.o(.data) for .data
system_stm32f1xx.o(i.SystemCoreClockUpdate) refers to system_stm32f1xx.o(.constdata) for .constdata system_stm32f1xx.o(i.SystemCoreClockUpdate) refers to system_stm32f1xx.o(.constdata) for .constdata
modbus.o(i.allocate_callback_node) refers to modbus.o(.data) for .data
modbus.o(i.allocate_task) refers to rt_memclr_w.o(.text) for __aeabi_memclr4
modbus.o(i.allocate_task) refers to modbus.o(.data) for .data
modbus.o(i.allocate_task) refers to modbus.o(.bss) for .bss
modbus.o(i.callback_pool_init) refers to modbus.o(.data) for .data
modbus.o(i.callback_pool_init) refers to modbus.o(.bss) for .bss
modbus.o(i.check_align_table) refers to modbus.o(.data) for .data
modbus.o(i.free_callback_node) refers to modbus.o(.bss) for .bss
modbus.o(i.free_callback_node) refers to modbus.o(.data) for .data
modbus.o(i.free_task) refers to modbus.o(.bss) for .bss
modbus.o(i.free_task) refers to modbus.o(.data) for .data
modbus.o(i.modbus_init) refers to modbus.o(.data) for .data
modbus.o(i.modbus_init) refers to modbus.o(.bss) for .bss
modbus.o(i.reg_callback) refers to modbus.o(i.allocate_callback_node) for allocate_callback_node
modbus.o(.data) refers to modbus.o(.data) for is_ready1
modbus.o(.data) refers to modbus.o(.data) for bitmap1
modbus.o(.data) refers to modbus.o(.data) for is_ready2
modbus.o(.data) refers to modbus.o(.data) for bitmap2
modbus.o(.data) refers to modbus.o(.data) for is_ready3
modbus.o(.data) refers to modbus.o(.data) for bitmap3
__main.o(!!!main) refers to __rtentry.o(.ARM.Collect$$rtentry$$00000000) for __rt_entry __main.o(!!!main) refers to __rtentry.o(.ARM.Collect$$rtentry$$00000000) for __rt_entry
__rtentry.o(.ARM.Collect$$rtentry$$00000000) refers (Special) to __rtentry2.o(.ARM.Collect$$rtentry$$0000000A) for __rt_entry_li __rtentry.o(.ARM.Collect$$rtentry$$00000000) refers (Special) to __rtentry2.o(.ARM.Collect$$rtentry$$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$$0000000D) for __rt_entry_main
@ -540,8 +560,6 @@ Removing Unused input sections from the image.
Removing main.o(.rev16_text), (4 bytes). Removing main.o(.rev16_text), (4 bytes).
Removing main.o(.revsh_text), (4 bytes). Removing main.o(.revsh_text), (4 bytes).
Removing main.o(.rrx_text), (6 bytes). Removing main.o(.rrx_text), (6 bytes).
Removing main.o(.constdata), (12 bytes).
Removing main.o(.constdata), (12 bytes).
Removing gpio.o(.rev16_text), (4 bytes). Removing gpio.o(.rev16_text), (4 bytes).
Removing gpio.o(.revsh_text), (4 bytes). Removing gpio.o(.revsh_text), (4 bytes).
Removing gpio.o(.rrx_text), (6 bytes). Removing gpio.o(.rrx_text), (6 bytes).
@ -918,8 +936,25 @@ Removing Unused input sections from the image.
Removing modbus.o(.rev16_text), (4 bytes). Removing modbus.o(.rev16_text), (4 bytes).
Removing modbus.o(.revsh_text), (4 bytes). Removing modbus.o(.revsh_text), (4 bytes).
Removing modbus.o(.rrx_text), (6 bytes). Removing modbus.o(.rrx_text), (6 bytes).
Removing modbus.o(i.allocate_callback_node), (28 bytes).
Removing modbus.o(i.allocate_task), (60 bytes).
Removing modbus.o(i.callback_pool_init), (44 bytes).
Removing modbus.o(i.check_align_table), (16 bytes).
Removing modbus.o(i.execute_callback), (2 bytes).
Removing modbus.o(i.free_callback_node), (40 bytes).
Removing modbus.o(i.free_task), (56 bytes).
Removing modbus.o(i.modbus_init), (48 bytes).
Removing modbus.o(i.reg_callback), (10 bytes).
Removing modbus.o(.bss), (540 bytes).
Removing modbus.o(.data), (60 bytes).
Removing modbus.o(.data), (1 bytes).
Removing modbus.o(.data), (1 bytes).
Removing modbus.o(.data), (1 bytes).
Removing modbus.o(.data), (5 bytes).
Removing modbus.o(.data), (5 bytes).
Removing modbus.o(.data), (5 bytes).
381 unused section(s) (total 25070 bytes) removed from the image. 396 unused section(s) (total 25968 bytes) removed from the image.
============================================================================== ==============================================================================
@ -1423,161 +1458,161 @@ Memory Map of the image
Exec Addr Load Addr Size Type Attr Idx E Section Name Object Exec Addr Load Addr Size Type Attr Idx E Section Name Object
0x08000000 0x08000000 0x000000ec Data RO 3 RESET startup_stm32f103xb.o 0x08000000 0x08000000 0x000000ec Data RO 3 RESET startup_stm32f103xb.o
0x080000ec 0x080000ec 0x00000008 Code RO 2833 * !!!main c_w.l(__main.o) 0x080000ec 0x080000ec 0x00000008 Code RO 2896 * !!!main c_w.l(__main.o)
0x080000f4 0x080000f4 0x00000034 Code RO 2992 !!!scatter c_w.l(__scatter.o) 0x080000f4 0x080000f4 0x00000034 Code RO 3055 !!!scatter c_w.l(__scatter.o)
0x08000128 0x08000128 0x0000001a Code RO 2994 !!handler_copy c_w.l(__scatter_copy.o) 0x08000128 0x08000128 0x0000001a Code RO 3057 !!handler_copy c_w.l(__scatter_copy.o)
0x08000142 0x08000142 0x00000002 PAD 0x08000142 0x08000142 0x00000002 PAD
0x08000144 0x08000144 0x0000001c Code RO 2996 !!handler_zi c_w.l(__scatter_zi.o) 0x08000144 0x08000144 0x0000001c Code RO 3059 !!handler_zi c_w.l(__scatter_zi.o)
0x08000160 0x08000160 0x00000002 Code RO 2860 .ARM.Collect$$libinit$$00000000 c_w.l(libinit.o) 0x08000160 0x08000160 0x00000002 Code RO 2923 .ARM.Collect$$libinit$$00000000 c_w.l(libinit.o)
0x08000162 0x08000162 0x00000000 Code RO 2867 .ARM.Collect$$libinit$$00000002 c_w.l(libinit2.o) 0x08000162 0x08000162 0x00000000 Code RO 2930 .ARM.Collect$$libinit$$00000002 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 2869 .ARM.Collect$$libinit$$00000004 c_w.l(libinit2.o) 0x08000162 0x08000162 0x00000000 Code RO 2932 .ARM.Collect$$libinit$$00000004 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 2872 .ARM.Collect$$libinit$$0000000A c_w.l(libinit2.o) 0x08000162 0x08000162 0x00000000 Code RO 2935 .ARM.Collect$$libinit$$0000000A c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 2874 .ARM.Collect$$libinit$$0000000C c_w.l(libinit2.o) 0x08000162 0x08000162 0x00000000 Code RO 2937 .ARM.Collect$$libinit$$0000000C c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 2876 .ARM.Collect$$libinit$$0000000E c_w.l(libinit2.o) 0x08000162 0x08000162 0x00000000 Code RO 2939 .ARM.Collect$$libinit$$0000000E c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 2879 .ARM.Collect$$libinit$$00000011 c_w.l(libinit2.o) 0x08000162 0x08000162 0x00000000 Code RO 2942 .ARM.Collect$$libinit$$00000011 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 2881 .ARM.Collect$$libinit$$00000013 c_w.l(libinit2.o) 0x08000162 0x08000162 0x00000000 Code RO 2944 .ARM.Collect$$libinit$$00000013 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 2883 .ARM.Collect$$libinit$$00000015 c_w.l(libinit2.o) 0x08000162 0x08000162 0x00000000 Code RO 2946 .ARM.Collect$$libinit$$00000015 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 2885 .ARM.Collect$$libinit$$00000017 c_w.l(libinit2.o) 0x08000162 0x08000162 0x00000000 Code RO 2948 .ARM.Collect$$libinit$$00000017 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 2887 .ARM.Collect$$libinit$$00000019 c_w.l(libinit2.o) 0x08000162 0x08000162 0x00000000 Code RO 2950 .ARM.Collect$$libinit$$00000019 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 2889 .ARM.Collect$$libinit$$0000001B c_w.l(libinit2.o) 0x08000162 0x08000162 0x00000000 Code RO 2952 .ARM.Collect$$libinit$$0000001B c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 2891 .ARM.Collect$$libinit$$0000001D c_w.l(libinit2.o) 0x08000162 0x08000162 0x00000000 Code RO 2954 .ARM.Collect$$libinit$$0000001D c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 2893 .ARM.Collect$$libinit$$0000001F c_w.l(libinit2.o) 0x08000162 0x08000162 0x00000000 Code RO 2956 .ARM.Collect$$libinit$$0000001F c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 2895 .ARM.Collect$$libinit$$00000021 c_w.l(libinit2.o) 0x08000162 0x08000162 0x00000000 Code RO 2958 .ARM.Collect$$libinit$$00000021 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 2897 .ARM.Collect$$libinit$$00000023 c_w.l(libinit2.o) 0x08000162 0x08000162 0x00000000 Code RO 2960 .ARM.Collect$$libinit$$00000023 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 2899 .ARM.Collect$$libinit$$00000025 c_w.l(libinit2.o) 0x08000162 0x08000162 0x00000000 Code RO 2962 .ARM.Collect$$libinit$$00000025 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 2903 .ARM.Collect$$libinit$$0000002C c_w.l(libinit2.o) 0x08000162 0x08000162 0x00000000 Code RO 2966 .ARM.Collect$$libinit$$0000002C c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 2905 .ARM.Collect$$libinit$$0000002E c_w.l(libinit2.o) 0x08000162 0x08000162 0x00000000 Code RO 2968 .ARM.Collect$$libinit$$0000002E c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 2907 .ARM.Collect$$libinit$$00000030 c_w.l(libinit2.o) 0x08000162 0x08000162 0x00000000 Code RO 2970 .ARM.Collect$$libinit$$00000030 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 2909 .ARM.Collect$$libinit$$00000032 c_w.l(libinit2.o) 0x08000162 0x08000162 0x00000000 Code RO 2972 .ARM.Collect$$libinit$$00000032 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000002 Code RO 2910 .ARM.Collect$$libinit$$00000033 c_w.l(libinit2.o) 0x08000162 0x08000162 0x00000002 Code RO 2973 .ARM.Collect$$libinit$$00000033 c_w.l(libinit2.o)
0x08000164 0x08000164 0x00000002 Code RO 2930 .ARM.Collect$$libshutdown$$00000000 c_w.l(libshutdown.o) 0x08000164 0x08000164 0x00000002 Code RO 2993 .ARM.Collect$$libshutdown$$00000000 c_w.l(libshutdown.o)
0x08000166 0x08000166 0x00000000 Code RO 2943 .ARM.Collect$$libshutdown$$00000002 c_w.l(libshutdown2.o) 0x08000166 0x08000166 0x00000000 Code RO 3006 .ARM.Collect$$libshutdown$$00000002 c_w.l(libshutdown2.o)
0x08000166 0x08000166 0x00000000 Code RO 2945 .ARM.Collect$$libshutdown$$00000004 c_w.l(libshutdown2.o) 0x08000166 0x08000166 0x00000000 Code RO 3008 .ARM.Collect$$libshutdown$$00000004 c_w.l(libshutdown2.o)
0x08000166 0x08000166 0x00000000 Code RO 2947 .ARM.Collect$$libshutdown$$00000006 c_w.l(libshutdown2.o) 0x08000166 0x08000166 0x00000000 Code RO 3010 .ARM.Collect$$libshutdown$$00000006 c_w.l(libshutdown2.o)
0x08000166 0x08000166 0x00000000 Code RO 2950 .ARM.Collect$$libshutdown$$00000009 c_w.l(libshutdown2.o) 0x08000166 0x08000166 0x00000000 Code RO 3013 .ARM.Collect$$libshutdown$$00000009 c_w.l(libshutdown2.o)
0x08000166 0x08000166 0x00000000 Code RO 2953 .ARM.Collect$$libshutdown$$0000000C c_w.l(libshutdown2.o) 0x08000166 0x08000166 0x00000000 Code RO 3016 .ARM.Collect$$libshutdown$$0000000C c_w.l(libshutdown2.o)
0x08000166 0x08000166 0x00000000 Code RO 2955 .ARM.Collect$$libshutdown$$0000000E c_w.l(libshutdown2.o) 0x08000166 0x08000166 0x00000000 Code RO 3018 .ARM.Collect$$libshutdown$$0000000E c_w.l(libshutdown2.o)
0x08000166 0x08000166 0x00000000 Code RO 2958 .ARM.Collect$$libshutdown$$00000011 c_w.l(libshutdown2.o) 0x08000166 0x08000166 0x00000000 Code RO 3021 .ARM.Collect$$libshutdown$$00000011 c_w.l(libshutdown2.o)
0x08000166 0x08000166 0x00000002 Code RO 2959 .ARM.Collect$$libshutdown$$00000012 c_w.l(libshutdown2.o) 0x08000166 0x08000166 0x00000002 Code RO 3022 .ARM.Collect$$libshutdown$$00000012 c_w.l(libshutdown2.o)
0x08000168 0x08000168 0x00000000 Code RO 2835 .ARM.Collect$$rtentry$$00000000 c_w.l(__rtentry.o) 0x08000168 0x08000168 0x00000000 Code RO 2898 .ARM.Collect$$rtentry$$00000000 c_w.l(__rtentry.o)
0x08000168 0x08000168 0x00000000 Code RO 2837 .ARM.Collect$$rtentry$$00000002 c_w.l(__rtentry2.o) 0x08000168 0x08000168 0x00000000 Code RO 2900 .ARM.Collect$$rtentry$$00000002 c_w.l(__rtentry2.o)
0x08000168 0x08000168 0x00000006 Code RO 2849 .ARM.Collect$$rtentry$$00000004 c_w.l(__rtentry4.o) 0x08000168 0x08000168 0x00000006 Code RO 2912 .ARM.Collect$$rtentry$$00000004 c_w.l(__rtentry4.o)
0x0800016e 0x0800016e 0x00000000 Code RO 2839 .ARM.Collect$$rtentry$$00000009 c_w.l(__rtentry2.o) 0x0800016e 0x0800016e 0x00000000 Code RO 2902 .ARM.Collect$$rtentry$$00000009 c_w.l(__rtentry2.o)
0x0800016e 0x0800016e 0x00000004 Code RO 2840 .ARM.Collect$$rtentry$$0000000A c_w.l(__rtentry2.o) 0x0800016e 0x0800016e 0x00000004 Code RO 2903 .ARM.Collect$$rtentry$$0000000A c_w.l(__rtentry2.o)
0x08000172 0x08000172 0x00000000 Code RO 2842 .ARM.Collect$$rtentry$$0000000C c_w.l(__rtentry2.o) 0x08000172 0x08000172 0x00000000 Code RO 2905 .ARM.Collect$$rtentry$$0000000C c_w.l(__rtentry2.o)
0x08000172 0x08000172 0x00000008 Code RO 2843 .ARM.Collect$$rtentry$$0000000D c_w.l(__rtentry2.o) 0x08000172 0x08000172 0x00000008 Code RO 2906 .ARM.Collect$$rtentry$$0000000D c_w.l(__rtentry2.o)
0x0800017a 0x0800017a 0x00000002 Code RO 2864 .ARM.Collect$$rtexit$$00000000 c_w.l(rtexit.o) 0x0800017a 0x0800017a 0x00000002 Code RO 2927 .ARM.Collect$$rtexit$$00000000 c_w.l(rtexit.o)
0x0800017c 0x0800017c 0x00000000 Code RO 2912 .ARM.Collect$$rtexit$$00000002 c_w.l(rtexit2.o) 0x0800017c 0x0800017c 0x00000000 Code RO 2975 .ARM.Collect$$rtexit$$00000002 c_w.l(rtexit2.o)
0x0800017c 0x0800017c 0x00000004 Code RO 2913 .ARM.Collect$$rtexit$$00000003 c_w.l(rtexit2.o) 0x0800017c 0x0800017c 0x00000004 Code RO 2976 .ARM.Collect$$rtexit$$00000003 c_w.l(rtexit2.o)
0x08000180 0x08000180 0x00000006 Code RO 2914 .ARM.Collect$$rtexit$$00000004 c_w.l(rtexit2.o) 0x08000180 0x08000180 0x00000006 Code RO 2977 .ARM.Collect$$rtexit$$00000004 c_w.l(rtexit2.o)
0x08000186 0x08000186 0x00000002 PAD 0x08000186 0x08000186 0x00000002 PAD
0x08000188 0x08000188 0x00000040 Code RO 4 .text startup_stm32f103xb.o 0x08000188 0x08000188 0x00000040 Code RO 4 .text startup_stm32f103xb.o
0x080001c8 0x080001c8 0x0000004e Code RO 2829 .text c_w.l(rt_memclr_w.o) 0x080001c8 0x080001c8 0x0000004e Code RO 2892 .text c_w.l(rt_memclr_w.o)
0x08000216 0x08000216 0x00000006 Code RO 2831 .text c_w.l(heapauxi.o) 0x08000216 0x08000216 0x00000006 Code RO 2894 .text c_w.l(heapauxi.o)
0x0800021c 0x0800021c 0x0000004a Code RO 2851 .text c_w.l(sys_stackheap_outer.o) 0x0800021c 0x0800021c 0x0000004a Code RO 2914 .text c_w.l(sys_stackheap_outer.o)
0x08000266 0x08000266 0x00000012 Code RO 2853 .text c_w.l(exit.o) 0x08000266 0x08000266 0x00000012 Code RO 2916 .text c_w.l(exit.o)
0x08000278 0x08000278 0x00000008 Code RO 2861 .text c_w.l(libspace.o) 0x08000278 0x08000278 0x00000008 Code RO 2924 .text c_w.l(libspace.o)
0x08000280 0x08000280 0x0000000c Code RO 2922 .text c_w.l(sys_exit.o) 0x08000280 0x08000280 0x0000000c Code RO 2985 .text c_w.l(sys_exit.o)
0x0800028c 0x0800028c 0x00000002 Code RO 2933 .text c_w.l(use_no_semi.o) 0x0800028c 0x0800028c 0x00000002 Code RO 2996 .text c_w.l(use_no_semi.o)
0x0800028e 0x0800028e 0x00000000 Code RO 2935 .text c_w.l(indicate_semi.o) 0x0800028e 0x0800028e 0x00000000 Code RO 2998 .text c_w.l(indicate_semi.o)
0x0800028e 0x0800028e 0x00000002 Code RO 305 i.BusFault_Handler stm32f1xx_it.o 0x0800028e 0x0800028e 0x00000002 Code RO 298 i.BusFault_Handler stm32f1xx_it.o
0x08000290 0x08000290 0x0000000c Code RO 306 i.DMA1_Channel5_IRQHandler stm32f1xx_it.o 0x08000290 0x08000290 0x0000000c Code RO 299 i.DMA1_Channel5_IRQHandler stm32f1xx_it.o
0x0800029c 0x0800029c 0x00000002 Code RO 307 i.DebugMon_Handler stm32f1xx_it.o 0x0800029c 0x0800029c 0x00000002 Code RO 300 i.DebugMon_Handler stm32f1xx_it.o
0x0800029e 0x0800029e 0x00000004 Code RO 13 i.Error_Handler main.o 0x0800029e 0x0800029e 0x00000004 Code RO 13 i.Error_Handler main.o
0x080002a2 0x080002a2 0x00000046 Code RO 1813 i.HAL_DMA_Abort stm32f1xx_hal_dma.o 0x080002a2 0x080002a2 0x00000046 Code RO 1806 i.HAL_DMA_Abort stm32f1xx_hal_dma.o
0x080002e8 0x080002e8 0x00000098 Code RO 1814 i.HAL_DMA_Abort_IT stm32f1xx_hal_dma.o 0x080002e8 0x080002e8 0x00000098 Code RO 1807 i.HAL_DMA_Abort_IT stm32f1xx_hal_dma.o
0x08000380 0x08000380 0x00000154 Code RO 1818 i.HAL_DMA_IRQHandler stm32f1xx_hal_dma.o 0x08000380 0x08000380 0x00000154 Code RO 1811 i.HAL_DMA_IRQHandler stm32f1xx_hal_dma.o
0x080004d4 0x080004d4 0x0000005c Code RO 1819 i.HAL_DMA_Init stm32f1xx_hal_dma.o 0x080004d4 0x080004d4 0x0000005c Code RO 1812 i.HAL_DMA_Init stm32f1xx_hal_dma.o
0x08000530 0x08000530 0x000001e0 Code RO 1749 i.HAL_GPIO_Init stm32f1xx_hal_gpio.o 0x08000530 0x08000530 0x000001e0 Code RO 1742 i.HAL_GPIO_Init stm32f1xx_hal_gpio.o
0x08000710 0x08000710 0x0000000a Code RO 1753 i.HAL_GPIO_WritePin stm32f1xx_hal_gpio.o 0x08000710 0x08000710 0x0000000a Code RO 1746 i.HAL_GPIO_WritePin stm32f1xx_hal_gpio.o
0x0800071a 0x0800071a 0x00000002 PAD 0x0800071a 0x0800071a 0x00000002 PAD
0x0800071c 0x0800071c 0x0000000c Code RO 1443 i.HAL_GetTick stm32f1xx_hal.o 0x0800071c 0x0800071c 0x0000000c Code RO 1436 i.HAL_GetTick stm32f1xx_hal.o
0x08000728 0x08000728 0x00000010 Code RO 1449 i.HAL_IncTick stm32f1xx_hal.o 0x08000728 0x08000728 0x00000010 Code RO 1442 i.HAL_IncTick stm32f1xx_hal.o
0x08000738 0x08000738 0x00000024 Code RO 1450 i.HAL_Init stm32f1xx_hal.o 0x08000738 0x08000738 0x00000024 Code RO 1443 i.HAL_Init stm32f1xx_hal.o
0x0800075c 0x0800075c 0x00000040 Code RO 1451 i.HAL_InitTick stm32f1xx_hal.o 0x0800075c 0x0800075c 0x00000040 Code RO 1444 i.HAL_InitTick stm32f1xx_hal.o
0x0800079c 0x0800079c 0x0000003c Code RO 399 i.HAL_MspInit stm32f1xx_hal_msp.o 0x0800079c 0x0800079c 0x0000003c Code RO 392 i.HAL_MspInit stm32f1xx_hal_msp.o
0x080007d8 0x080007d8 0x0000001a Code RO 1909 i.HAL_NVIC_EnableIRQ stm32f1xx_hal_cortex.o 0x080007d8 0x080007d8 0x0000001a Code RO 1902 i.HAL_NVIC_EnableIRQ stm32f1xx_hal_cortex.o
0x080007f2 0x080007f2 0x00000002 PAD 0x080007f2 0x080007f2 0x00000002 PAD
0x080007f4 0x080007f4 0x00000040 Code RO 1915 i.HAL_NVIC_SetPriority stm32f1xx_hal_cortex.o 0x080007f4 0x080007f4 0x00000040 Code RO 1908 i.HAL_NVIC_SetPriority stm32f1xx_hal_cortex.o
0x08000834 0x08000834 0x00000024 Code RO 1916 i.HAL_NVIC_SetPriorityGrouping stm32f1xx_hal_cortex.o 0x08000834 0x08000834 0x00000024 Code RO 1909 i.HAL_NVIC_SetPriorityGrouping stm32f1xx_hal_cortex.o
0x08000858 0x08000858 0x00000002 Code RO 1606 i.HAL_RCC_CSSCallback stm32f1xx_hal_rcc.o 0x08000858 0x08000858 0x00000002 Code RO 1599 i.HAL_RCC_CSSCallback stm32f1xx_hal_rcc.o
0x0800085a 0x0800085a 0x00000002 PAD 0x0800085a 0x0800085a 0x00000002 PAD
0x0800085c 0x0800085c 0x0000012c Code RO 1607 i.HAL_RCC_ClockConfig stm32f1xx_hal_rcc.o 0x0800085c 0x0800085c 0x0000012c Code RO 1600 i.HAL_RCC_ClockConfig stm32f1xx_hal_rcc.o
0x08000988 0x08000988 0x0000000c Code RO 1610 i.HAL_RCC_EnableCSS stm32f1xx_hal_rcc.o 0x08000988 0x08000988 0x0000000c Code RO 1603 i.HAL_RCC_EnableCSS stm32f1xx_hal_rcc.o
0x08000994 0x08000994 0x00000020 Code RO 1614 i.HAL_RCC_GetPCLK1Freq stm32f1xx_hal_rcc.o 0x08000994 0x08000994 0x00000020 Code RO 1607 i.HAL_RCC_GetPCLK1Freq stm32f1xx_hal_rcc.o
0x080009b4 0x080009b4 0x00000020 Code RO 1615 i.HAL_RCC_GetPCLK2Freq stm32f1xx_hal_rcc.o 0x080009b4 0x080009b4 0x00000020 Code RO 1608 i.HAL_RCC_GetPCLK2Freq stm32f1xx_hal_rcc.o
0x080009d4 0x080009d4 0x0000004c Code RO 1616 i.HAL_RCC_GetSysClockFreq stm32f1xx_hal_rcc.o 0x080009d4 0x080009d4 0x0000004c Code RO 1609 i.HAL_RCC_GetSysClockFreq stm32f1xx_hal_rcc.o
0x08000a20 0x08000a20 0x00000018 Code RO 1618 i.HAL_RCC_NMI_IRQHandler stm32f1xx_hal_rcc.o 0x08000a20 0x08000a20 0x00000018 Code RO 1611 i.HAL_RCC_NMI_IRQHandler stm32f1xx_hal_rcc.o
0x08000a38 0x08000a38 0x00000320 Code RO 1619 i.HAL_RCC_OscConfig stm32f1xx_hal_rcc.o 0x08000a38 0x08000a38 0x00000320 Code RO 1612 i.HAL_RCC_OscConfig stm32f1xx_hal_rcc.o
0x08000d58 0x08000d58 0x00000028 Code RO 1920 i.HAL_SYSTICK_Config stm32f1xx_hal_cortex.o 0x08000d58 0x08000d58 0x00000028 Code RO 1913 i.HAL_SYSTICK_Config stm32f1xx_hal_cortex.o
0x08000d80 0x08000d80 0x00000002 Code RO 1165 i.HAL_TIMEx_BreakCallback stm32f1xx_hal_tim_ex.o 0x08000d80 0x08000d80 0x00000002 Code RO 1158 i.HAL_TIMEx_BreakCallback stm32f1xx_hal_tim_ex.o
0x08000d82 0x08000d82 0x00000002 Code RO 1166 i.HAL_TIMEx_CommutCallback stm32f1xx_hal_tim_ex.o 0x08000d82 0x08000d82 0x00000002 Code RO 1159 i.HAL_TIMEx_CommutCallback stm32f1xx_hal_tim_ex.o
0x08000d84 0x08000d84 0x00000068 Code RO 1184 i.HAL_TIMEx_MasterConfigSynchronization stm32f1xx_hal_tim_ex.o 0x08000d84 0x08000d84 0x00000068 Code RO 1177 i.HAL_TIMEx_MasterConfigSynchronization stm32f1xx_hal_tim_ex.o
0x08000dec 0x08000dec 0x0000005a Code RO 461 i.HAL_TIM_Base_Init stm32f1xx_hal_tim.o 0x08000dec 0x08000dec 0x0000005a Code RO 454 i.HAL_TIM_Base_Init stm32f1xx_hal_tim.o
0x08000e46 0x08000e46 0x00000002 PAD 0x08000e46 0x08000e46 0x00000002 PAD
0x08000e48 0x08000e48 0x0000003c Code RO 210 i.HAL_TIM_Base_MspInit tim.o 0x08000e48 0x08000e48 0x0000003c Code RO 203 i.HAL_TIM_Base_MspInit tim.o
0x08000e84 0x08000e84 0x000000dc Code RO 470 i.HAL_TIM_ConfigClockSource stm32f1xx_hal_tim.o 0x08000e84 0x08000e84 0x000000dc Code RO 463 i.HAL_TIM_ConfigClockSource stm32f1xx_hal_tim.o
0x08000f60 0x08000f60 0x00000002 Code RO 495 i.HAL_TIM_IC_CaptureCallback stm32f1xx_hal_tim.o 0x08000f60 0x08000f60 0x00000002 Code RO 488 i.HAL_TIM_IC_CaptureCallback stm32f1xx_hal_tim.o
0x08000f62 0x08000f62 0x00000130 Code RO 509 i.HAL_TIM_IRQHandler stm32f1xx_hal_tim.o 0x08000f62 0x08000f62 0x00000130 Code RO 502 i.HAL_TIM_IRQHandler stm32f1xx_hal_tim.o
0x08001092 0x08001092 0x00000002 Code RO 512 i.HAL_TIM_OC_DelayElapsedCallback stm32f1xx_hal_tim.o 0x08001092 0x08001092 0x00000002 Code RO 505 i.HAL_TIM_OC_DelayElapsedCallback stm32f1xx_hal_tim.o
0x08001094 0x08001094 0x00000002 Code RO 539 i.HAL_TIM_PWM_PulseFinishedCallback stm32f1xx_hal_tim.o 0x08001094 0x08001094 0x00000002 Code RO 532 i.HAL_TIM_PWM_PulseFinishedCallback stm32f1xx_hal_tim.o
0x08001096 0x08001096 0x00000002 Code RO 547 i.HAL_TIM_PeriodElapsedCallback stm32f1xx_hal_tim.o 0x08001096 0x08001096 0x00000002 Code RO 540 i.HAL_TIM_PeriodElapsedCallback stm32f1xx_hal_tim.o
0x08001098 0x08001098 0x00000002 Code RO 552 i.HAL_TIM_TriggerCallback stm32f1xx_hal_tim.o 0x08001098 0x08001098 0x00000002 Code RO 545 i.HAL_TIM_TriggerCallback stm32f1xx_hal_tim.o
0x0800109a 0x0800109a 0x00000002 Code RO 2421 i.HAL_UARTEx_RxEventCallback stm32f1xx_hal_uart.o 0x0800109a 0x0800109a 0x00000002 Code RO 2414 i.HAL_UARTEx_RxEventCallback stm32f1xx_hal_uart.o
0x0800109c 0x0800109c 0x00000002 Code RO 2435 i.HAL_UART_ErrorCallback stm32f1xx_hal_uart.o 0x0800109c 0x0800109c 0x00000002 Code RO 2428 i.HAL_UART_ErrorCallback stm32f1xx_hal_uart.o
0x0800109e 0x0800109e 0x00000002 PAD 0x0800109e 0x0800109e 0x00000002 PAD
0x080010a0 0x080010a0 0x0000026c Code RO 2438 i.HAL_UART_IRQHandler stm32f1xx_hal_uart.o 0x080010a0 0x080010a0 0x0000026c Code RO 2431 i.HAL_UART_IRQHandler stm32f1xx_hal_uart.o
0x0800130c 0x0800130c 0x00000064 Code RO 2439 i.HAL_UART_Init stm32f1xx_hal_uart.o 0x0800130c 0x0800130c 0x00000064 Code RO 2432 i.HAL_UART_Init stm32f1xx_hal_uart.o
0x08001370 0x08001370 0x00000150 Code RO 252 i.HAL_UART_MspInit usart.o 0x08001370 0x08001370 0x00000150 Code RO 245 i.HAL_UART_MspInit usart.o
0x080014c0 0x080014c0 0x00000002 Code RO 2445 i.HAL_UART_RxCpltCallback stm32f1xx_hal_uart.o 0x080014c0 0x080014c0 0x00000002 Code RO 2438 i.HAL_UART_RxCpltCallback stm32f1xx_hal_uart.o
0x080014c2 0x080014c2 0x00000002 Code RO 2450 i.HAL_UART_TxCpltCallback stm32f1xx_hal_uart.o 0x080014c2 0x080014c2 0x00000002 Code RO 2443 i.HAL_UART_TxCpltCallback stm32f1xx_hal_uart.o
0x080014c4 0x080014c4 0x00000002 Code RO 308 i.HardFault_Handler stm32f1xx_it.o 0x080014c4 0x080014c4 0x00000002 Code RO 301 i.HardFault_Handler stm32f1xx_it.o
0x080014c6 0x080014c6 0x00000002 PAD 0x080014c6 0x080014c6 0x00000002 PAD
0x080014c8 0x080014c8 0x0000002c Code RO 185 i.MX_DMA_Init dma.o 0x080014c8 0x080014c8 0x0000002c Code RO 178 i.MX_DMA_Init dma.o
0x080014f4 0x080014f4 0x00000070 Code RO 161 i.MX_GPIO_Init gpio.o 0x080014f4 0x080014f4 0x00000070 Code RO 154 i.MX_GPIO_Init gpio.o
0x08001564 0x08001564 0x00000068 Code RO 211 i.MX_TIM3_Init tim.o 0x08001564 0x08001564 0x00000068 Code RO 204 i.MX_TIM3_Init tim.o
0x080015cc 0x080015cc 0x00000038 Code RO 253 i.MX_USART1_UART_Init usart.o 0x080015cc 0x080015cc 0x00000038 Code RO 246 i.MX_USART1_UART_Init usart.o
0x08001604 0x08001604 0x00000038 Code RO 254 i.MX_USART2_UART_Init usart.o 0x08001604 0x08001604 0x00000038 Code RO 247 i.MX_USART2_UART_Init usart.o
0x0800163c 0x0800163c 0x00000038 Code RO 255 i.MX_USART3_UART_Init usart.o 0x0800163c 0x0800163c 0x00000038 Code RO 248 i.MX_USART3_UART_Init usart.o
0x08001674 0x08001674 0x00000002 Code RO 309 i.MemManage_Handler stm32f1xx_it.o 0x08001674 0x08001674 0x00000002 Code RO 302 i.MemManage_Handler stm32f1xx_it.o
0x08001676 0x08001676 0x00000006 Code RO 310 i.NMI_Handler stm32f1xx_it.o 0x08001676 0x08001676 0x00000006 Code RO 303 i.NMI_Handler stm32f1xx_it.o
0x0800167c 0x0800167c 0x00000002 Code RO 311 i.PendSV_Handler stm32f1xx_it.o 0x0800167c 0x0800167c 0x00000002 Code RO 304 i.PendSV_Handler stm32f1xx_it.o
0x0800167e 0x0800167e 0x00000002 Code RO 312 i.SVC_Handler stm32f1xx_it.o 0x0800167e 0x0800167e 0x00000002 Code RO 305 i.SVC_Handler stm32f1xx_it.o
0x08001680 0x08001680 0x00000004 Code RO 313 i.SysTick_Handler stm32f1xx_it.o 0x08001680 0x08001680 0x00000004 Code RO 306 i.SysTick_Handler stm32f1xx_it.o
0x08001684 0x08001684 0x00000060 Code RO 14 i.SystemClock_Config main.o 0x08001684 0x08001684 0x00000060 Code RO 14 i.SystemClock_Config main.o
0x080016e4 0x080016e4 0x00000002 Code RO 2773 i.SystemInit system_stm32f1xx.o 0x080016e4 0x080016e4 0x00000002 Code RO 2766 i.SystemInit system_stm32f1xx.o
0x080016e6 0x080016e6 0x00000002 PAD 0x080016e6 0x080016e6 0x00000002 PAD
0x080016e8 0x080016e8 0x0000000c Code RO 314 i.TIM3_IRQHandler stm32f1xx_it.o 0x080016e8 0x080016e8 0x0000000c Code RO 307 i.TIM3_IRQHandler stm32f1xx_it.o
0x080016f4 0x080016f4 0x00000078 Code RO 554 i.TIM_Base_SetConfig stm32f1xx_hal_tim.o 0x080016f4 0x080016f4 0x00000078 Code RO 547 i.TIM_Base_SetConfig stm32f1xx_hal_tim.o
0x0800176c 0x0800176c 0x00000014 Code RO 565 i.TIM_ETR_SetConfig stm32f1xx_hal_tim.o 0x0800176c 0x0800176c 0x00000014 Code RO 558 i.TIM_ETR_SetConfig stm32f1xx_hal_tim.o
0x08001780 0x08001780 0x00000010 Code RO 566 i.TIM_ITRx_SetConfig stm32f1xx_hal_tim.o 0x08001780 0x08001780 0x00000010 Code RO 559 i.TIM_ITRx_SetConfig stm32f1xx_hal_tim.o
0x08001790 0x08001790 0x00000022 Code RO 572 i.TIM_TI1_ConfigInputStage stm32f1xx_hal_tim.o 0x08001790 0x08001790 0x00000022 Code RO 565 i.TIM_TI1_ConfigInputStage stm32f1xx_hal_tim.o
0x080017b2 0x080017b2 0x00000024 Code RO 574 i.TIM_TI2_ConfigInputStage stm32f1xx_hal_tim.o 0x080017b2 0x080017b2 0x00000024 Code RO 567 i.TIM_TI2_ConfigInputStage stm32f1xx_hal_tim.o
0x080017d6 0x080017d6 0x00000010 Code RO 2452 i.UART_DMAAbortOnError stm32f1xx_hal_uart.o 0x080017d6 0x080017d6 0x00000010 Code RO 2445 i.UART_DMAAbortOnError stm32f1xx_hal_uart.o
0x080017e6 0x080017e6 0x0000004e Code RO 2462 i.UART_EndRxTransfer stm32f1xx_hal_uart.o 0x080017e6 0x080017e6 0x0000004e Code RO 2455 i.UART_EndRxTransfer stm32f1xx_hal_uart.o
0x08001834 0x08001834 0x000000c2 Code RO 2464 i.UART_Receive_IT stm32f1xx_hal_uart.o 0x08001834 0x08001834 0x000000c2 Code RO 2457 i.UART_Receive_IT stm32f1xx_hal_uart.o
0x080018f6 0x080018f6 0x00000002 PAD 0x080018f6 0x080018f6 0x00000002 PAD
0x080018f8 0x080018f8 0x000000b8 Code RO 2465 i.UART_SetConfig stm32f1xx_hal_uart.o 0x080018f8 0x080018f8 0x000000b8 Code RO 2458 i.UART_SetConfig stm32f1xx_hal_uart.o
0x080019b0 0x080019b0 0x0000000c Code RO 315 i.USART1_IRQHandler stm32f1xx_it.o 0x080019b0 0x080019b0 0x0000000c Code RO 308 i.USART1_IRQHandler stm32f1xx_it.o
0x080019bc 0x080019bc 0x00000002 Code RO 316 i.UsageFault_Handler stm32f1xx_it.o 0x080019bc 0x080019bc 0x00000002 Code RO 309 i.UsageFault_Handler stm32f1xx_it.o
0x080019be 0x080019be 0x00000020 Code RO 1922 i.__NVIC_SetPriority stm32f1xx_hal_cortex.o 0x080019be 0x080019be 0x00000020 Code RO 1915 i.__NVIC_SetPriority stm32f1xx_hal_cortex.o
0x080019de 0x080019de 0x00000022 Code RO 15 i.main main.o 0x080019de 0x080019de 0x00000022 Code RO 15 i.main main.o
0x08001a00 0x08001a00 0x00000012 Data RO 1620 .constdata stm32f1xx_hal_rcc.o 0x08001a00 0x08001a00 0x00000012 Data RO 1613 .constdata stm32f1xx_hal_rcc.o
0x08001a12 0x08001a12 0x00000010 Data RO 2774 .constdata system_stm32f1xx.o 0x08001a12 0x08001a12 0x00000010 Data RO 2767 .constdata system_stm32f1xx.o
0x08001a22 0x08001a22 0x00000008 Data RO 2775 .constdata system_stm32f1xx.o 0x08001a22 0x08001a22 0x00000008 Data RO 2768 .constdata system_stm32f1xx.o
0x08001a2a 0x08001a2a 0x00000002 PAD 0x08001a2a 0x08001a2a 0x00000002 PAD
0x08001a2c 0x08001a2c 0x00000020 Data RO 2990 Region$$Table anon$$obj.o 0x08001a2c 0x08001a2c 0x00000020 Data RO 3053 Region$$Table anon$$obj.o
Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x08001a4c, Size: 0x000007d8, Max: 0x00005000, ABSOLUTE) Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x08001a4c, Size: 0x000007d8, Max: 0x00005000, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object Exec Addr Load Addr Size Type Attr Idx E Section Name Object
0x20000000 0x08001a4c 0x0000000c Data RW 1457 .data stm32f1xx_hal.o 0x20000000 0x08001a4c 0x0000000c Data RW 1450 .data stm32f1xx_hal.o
0x2000000c 0x08001a58 0x00000004 Data RW 2776 .data system_stm32f1xx.o 0x2000000c 0x08001a58 0x00000004 Data RW 2769 .data system_stm32f1xx.o
0x20000010 - 0x00000048 Zero RW 212 .bss tim.o 0x20000010 - 0x00000048 Zero RW 205 .bss tim.o
0x20000058 - 0x0000011c Zero RW 256 .bss usart.o 0x20000058 - 0x0000011c Zero RW 249 .bss usart.o
0x20000174 - 0x00000060 Zero RW 2862 .bss c_w.l(libspace.o) 0x20000174 - 0x00000060 Zero RW 2925 .bss c_w.l(libspace.o)
0x200001d4 0x08001a5c 0x00000004 PAD 0x200001d4 0x08001a5c 0x00000004 PAD
0x200001d8 - 0x00000200 Zero RW 2 HEAP startup_stm32f103xb.o 0x200001d8 - 0x00000200 Zero RW 2 HEAP startup_stm32f103xb.o
0x200003d8 - 0x00000400 Zero RW 1 STACK startup_stm32f103xb.o 0x200003d8 - 0x00000400 Zero RW 1 STACK startup_stm32f103xb.o
@ -1592,7 +1627,7 @@ Image component sizes
44 4 0 0 0 822 dma.o 44 4 0 0 0 822 dma.o
112 10 0 0 0 979 gpio.o 112 10 0 0 0 979 gpio.o
134 0 0 0 0 428284 main.o 134 0 0 0 0 428008 main.o
64 26 236 0 1536 844 startup_stm32f103xb.o 64 26 236 0 1536 844 startup_stm32f103xb.o
128 24 0 12 0 5529 stm32f1xx_hal.o 128 24 0 12 0 5529 stm32f1xx_hal.o
198 14 0 0 0 29143 stm32f1xx_hal_cortex.o 198 14 0 0 0 29143 stm32f1xx_hal_cortex.o
@ -1609,7 +1644,7 @@ Image component sizes
504 58 0 0 284 3315 usart.o 504 58 0 0 284 3315 usart.o
---------------------------------------------------------------------- ----------------------------------------------------------------------
6066 376 312 16 1892 512982 Object Totals 6066 376 312 16 1892 512706 Object Totals
0 0 32 0 0 0 (incl. Generated) 0 0 32 0 0 0 (incl. Generated)
16 0 2 0 0 0 (incl. Padding) 16 0 2 0 0 0 (incl. Padding)
@ -1659,8 +1694,8 @@ Image component sizes
Code (inc. data) RO Data RW Data ZI Data Debug Code (inc. data) RO Data RW Data ZI Data Debug
6420 392 312 16 1992 509846 Grand Totals 6420 392 312 16 1992 509570 Grand Totals
6420 392 312 16 1992 509846 ELF Image Totals 6420 392 312 16 1992 509570 ELF Image Totals
6420 392 312 16 0 0 ROM Totals 6420 392 312 16 0 0 ROM Totals
============================================================================== ==============================================================================

View File

@ -1,7 +1,7 @@
Dependencies for Project 'PressureSensorBoardMaster', Target 'PressureSensorBoardMaster': (DO NOT MODIFY !) Dependencies for Project 'PressureSensorBoardMaster', Target 'PressureSensorBoardMaster': (DO NOT MODIFY !)
CompilerVersion: 5060960::V5.06 update 7 (build 960)::.\ARMCC CompilerVersion: 5060960::V5.06 update 7 (build 960)::.\ARMCC
F (startup_stm32f103xb.s)(0x69420903)(--cpu Cortex-M3 -g --apcs=interwork -I.\RTE\_PressureSensorBoardMaster -IC:\app\Keil_v5\ARM\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include -IC:\app\Keil_v5\ARM\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include --pd "__UVISION_VERSION SETA 541" --pd "STM32F10X_MD SETA 1" --pd "_RTE_ SETA 1" --list startup_stm32f103xb.lst --xref -o pressuresensorboardmaster\startup_stm32f103xb.o --depend pressuresensorboardmaster\startup_stm32f103xb.d) F (startup_stm32f103xb.s)(0x69420903)(--cpu Cortex-M3 -g --apcs=interwork -I.\RTE\_PressureSensorBoardMaster -IC:\app\Keil_v5\ARM\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include -IC:\app\Keil_v5\ARM\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include --pd "__UVISION_VERSION SETA 541" --pd "STM32F10X_MD SETA 1" --pd "_RTE_ SETA 1" --list startup_stm32f103xb.lst --xref -o pressuresensorboardmaster\startup_stm32f103xb.o --depend pressuresensorboardmaster\startup_stm32f103xb.d)
F (../Core/Src/main.c)(0x6942163A)(--c99 -c --cpu Cortex-M3 -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ..\MiddleWares -I.\RTE\_PressureSensorBoardMaster -IC:\app\Keil_v5\ARM\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include -IC:\app\Keil_v5\ARM\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include -D__UVISION_VERSION="541" -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o pressuresensorboardmaster\main.o --omf_browse pressuresensorboardmaster\main.crf --depend pressuresensorboardmaster\main.d) F (../Core/Src/main.c)(0x6944FE48)(--c99 -c --cpu Cortex-M3 -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ..\MiddleWares -I.\RTE\_PressureSensorBoardMaster -IC:\app\Keil_v5\ARM\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include -IC:\app\Keil_v5\ARM\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include -D__UVISION_VERSION="541" -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o pressuresensorboardmaster\main.o --omf_browse pressuresensorboardmaster\main.crf --depend pressuresensorboardmaster\main.d)
I (../Core/Inc/main.h)(0x68FECD59) I (../Core/Inc/main.h)(0x68FECD59)
I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x68E72B55) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x68E72B55)
I (../Core/Inc/stm32f1xx_hal_conf.h)(0x69420902) I (../Core/Inc/stm32f1xx_hal_conf.h)(0x69420902)
@ -35,7 +35,6 @@ I (../Core/Inc/tim.h)(0x6930E838)
I (../Core/Inc/usart.h)(0x6912E845) I (../Core/Inc/usart.h)(0x6912E845)
I (../Core/Inc/gpio.h)(0x68FECD58) I (../Core/Inc/gpio.h)(0x68FECD58)
I (C:\app\Keil_v5\ARM\ARMCC\include\string.h)(0x6025237E) I (C:\app\Keil_v5\ARM\ARMCC\include\string.h)(0x6025237E)
I (..\MiddleWares\modbus.h)(0x69421EA9)
F (../Core/Src/gpio.c)(0x69142865)(--c99 -c --cpu Cortex-M3 -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ..\MiddleWares -I.\RTE\_PressureSensorBoardMaster -IC:\app\Keil_v5\ARM\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include -IC:\app\Keil_v5\ARM\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include -D__UVISION_VERSION="541" -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o pressuresensorboardmaster\gpio.o --omf_browse pressuresensorboardmaster\gpio.crf --depend pressuresensorboardmaster\gpio.d) F (../Core/Src/gpio.c)(0x69142865)(--c99 -c --cpu Cortex-M3 -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ..\MiddleWares -I.\RTE\_PressureSensorBoardMaster -IC:\app\Keil_v5\ARM\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include -IC:\app\Keil_v5\ARM\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include -D__UVISION_VERSION="541" -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o pressuresensorboardmaster\gpio.o --omf_browse pressuresensorboardmaster\gpio.crf --depend pressuresensorboardmaster\gpio.d)
I (../Core/Inc/gpio.h)(0x68FECD58) I (../Core/Inc/gpio.h)(0x68FECD58)
I (../Core/Inc/main.h)(0x68FECD59) I (../Core/Inc/main.h)(0x68FECD59)
@ -635,8 +634,8 @@ I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h)(0x68E72B55)
I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h)(0x68E72B55) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h)(0x68E72B55)
I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h)(0x68E72B55) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h)(0x68E72B55)
I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h)(0x68E72B55) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h)(0x68E72B55)
F (..\MiddleWares\modbus.c)(0x6942171A)(--c99 -c --cpu Cortex-M3 -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ..\MiddleWares -I.\RTE\_PressureSensorBoardMaster -IC:\app\Keil_v5\ARM\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include -IC:\app\Keil_v5\ARM\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include -D__UVISION_VERSION="541" -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o pressuresensorboardmaster\modbus.o --omf_browse pressuresensorboardmaster\modbus.crf --depend pressuresensorboardmaster\modbus.d) F (..\MiddleWares\modbus.c)(0x69450564)(--c99 -c --cpu Cortex-M3 -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ..\MiddleWares -I.\RTE\_PressureSensorBoardMaster -IC:\app\Keil_v5\ARM\Packs\ARM\CMSIS\6.1.0\CMSIS\Core\Include -IC:\app\Keil_v5\ARM\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include -D__UVISION_VERSION="541" -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o pressuresensorboardmaster\modbus.o --omf_browse pressuresensorboardmaster\modbus.crf --depend pressuresensorboardmaster\modbus.d)
I (..\MiddleWares\modbus.h)(0x69421EA9) I (..\MiddleWares\modbus.h)(0x6944F6AD)
I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x68E72B55) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x68E72B55)
I (../Core/Inc/stm32f1xx_hal_conf.h)(0x69420902) I (../Core/Inc/stm32f1xx_hal_conf.h)(0x69420902)
I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h)(0x68E72B55) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h)(0x68E72B55)
@ -664,4 +663,6 @@ I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h)(0x68E72B55)
I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h)(0x68E72B55) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h)(0x68E72B55)
I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h)(0x68E72B55) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h)(0x68E72B55)
I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h)(0x68E72B55) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h)(0x68E72B55)
F (..\MiddleWares\modbus.h)(0x69421EA9)() I (C:\app\Keil_v5\ARM\ARMCC\include\stdlib.h)(0x60252374)
I (C:\app\Keil_v5\ARM\ARMCC\include\string.h)(0x6025237E)
F (..\MiddleWares\modbus.h)(0x6944F6AD)()

View File

@ -33,4 +33,3 @@ pressuresensorboardmaster\main.o: ../Core/Inc/tim.h
pressuresensorboardmaster\main.o: ../Core/Inc/usart.h pressuresensorboardmaster\main.o: ../Core/Inc/usart.h
pressuresensorboardmaster\main.o: ../Core/Inc/gpio.h pressuresensorboardmaster\main.o: ../Core/Inc/gpio.h
pressuresensorboardmaster\main.o: C:\app\Keil_v5\ARM\ARMCC\Bin\..\include\string.h pressuresensorboardmaster\main.o: C:\app\Keil_v5\ARM\ARMCC\Bin\..\include\string.h
pressuresensorboardmaster\main.o: ..\MiddleWares\modbus.h

View File

@ -28,3 +28,5 @@ pressuresensorboardmaster\modbus.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1x
pressuresensorboardmaster\modbus.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h pressuresensorboardmaster\modbus.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h
pressuresensorboardmaster\modbus.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h pressuresensorboardmaster\modbus.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h
pressuresensorboardmaster\modbus.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h pressuresensorboardmaster\modbus.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h
pressuresensorboardmaster\modbus.o: C:\app\Keil_v5\ARM\ARMCC\Bin\..\include\stdlib.h
pressuresensorboardmaster\modbus.o: C:\app\Keil_v5\ARM\ARMCC\Bin\..\include\string.h

View File

@ -1,24 +1,147 @@
#include "modbus.h" #include "modbus.h"
#include <stdlib.h>
#include <string.h>
#define MAX_NODES 20
#define MAX_callback_NODES 10
#define TABLE_SIZE (sizeof(table)/ sizeof(table[0]))
static modbus_task node_pool[MAX_NODES];
static uint8_t node_used[MAX_NODES] = {0};
static modbus_task* free_list =NULL;
static CallbackNode callback_pool[MAX_callback_NODES];
static CallbackNode* callback_list_head = NULL;
static CallbackNode* callback_free_list = NULL;
void modbus_init(void) void modbus_init(void)
{ {
for(int i = MAX_NODES-1; i >= 0; i--)
{
node_pool[i].next = free_list;
free_list = &node_pool[i];
node_used[i] = 0;
}
modbus_task_node* p = NULL; }
modbus_task* allocate_task(void)
{
if(free_list == NULL)
{
return NULL;
}
modbus_task* node = free_list;
free_list = free_list->next;
uint8_t index = node - node_pool;
node_used[index] = 1;
memset(node, 0, sizeof(modbus_task));
node->next = NULL;
return node;
}
void free_task(modbus_task* node)
{
if(node == NULL)return;
uint8_t index = node - node_pool;
if(index < 0 || index >= MAX_NODES || node_used[index] == 0)
{
return;
}
node->next = free_list;
free_list = node;
node_used[index] = 0;
}
void check_align_table(uint8_t slave, uint16_t addr, uint8_t* data)
{
for(int i = 0; i < TABLE_SIZE; i++ )
{
if((table[i].slave == slave)&&(table[i].reg_addr) == addr)
{
if(addr == 1000)
{
}
else if(addr == 2000)
{
}
}
}
}
void callback_pool_init(void)
{
for(int i = MAX_callback_NODES-1; i >= 0; i--)
{
callback_pool[i].next = callback_free_list;
callback_free_list = &callback_pool[i];
}
callback_list_head = NULL;
}
CallbackNode* allocate_callback_node(void)
{
if(callback_free_list == NULL) return NULL;
CallbackNode* node = callback_free_list;
callback_free_list = callback_free_list->next;
memset(node, 0, sizeof(CallbackNode));
node->next = NULL;
return node;
}
void free_callback_node(CallbackNode* node)
{
if(node == NULL)return;
uint8_t index = node - callback_pool;
if(index < 0 || index >= MAX_callback_NODES )
{
return;
}
node->next = callback_free_list;
callback_free_list = node;
}
void reg_callback(uint8_t slave, uint16_t addr, ModbusCallback func)
{
if(func == NULL)return;
CallbackNode* new_node = allocate_callback_node();
if(new_node == NULL)return;
new_node->slave = slave;
new_node->addr = addr;
new_node->callback = func;
new_node->next = NULL;
new_node->next = callback_list_head;
callback_list_head = new_node;
}
void execute_callback()
{
@ -40,20 +163,6 @@ void modbus_init(void)