ARM GAS  /tmp/ccA0xmY5.s 			page 1


   1              		.cpu cortex-m0
   2              		.arch armv6s-m
   3              		.fpu softvfp
   4              		.eabi_attribute 23, 1
   5              		.eabi_attribute 24, 1
   6              		.eabi_attribute 25, 1
   7              		.eabi_attribute 26, 1
   8              		.eabi_attribute 30, 2
   9              		.eabi_attribute 34, 0
  10              		.eabi_attribute 18, 4
  11              		.file	"modbus_define.c"
  12              		.text
  13              	.Ltext0:
  14              		.cfi_sections	.debug_frame
  15              		.file 1 "Component/modbus/modbus_define.c"
  16              		.section	.text.modbus_slave_root_init,"ax",%progbits
  17              		.align	1
  18              		.p2align 2,,3
  19              		.global	modbus_slave_root_init
  20              		.syntax unified
  21              		.code	16
  22              		.thumb_func
  24              	modbus_slave_root_init:
  25              	.LVL0:
  26              	.LFB2:
   1:Component/modbus/modbus_define.c **** #include <stdlib.h>
   2:Component/modbus/modbus_define.c **** #include <string.h>
   3:Component/modbus/modbus_define.c **** #include <stdbool.h>
   4:Component/modbus/modbus_define.c **** #include "modbus_define.h"
   5:Component/modbus/modbus_define.c **** 
   6:Component/modbus/modbus_define.c **** static void __modbus_slave_root_lock(modbus_slave_root_t self);
   7:Component/modbus/modbus_define.c **** static void __modbus_slave_root_unlock(modbus_slave_root_t self);
   8:Component/modbus/modbus_define.c **** 
   9:Component/modbus/modbus_define.c **** //==============================Private==============================//
  10:Component/modbus/modbus_define.c **** 
  11:Component/modbus/modbus_define.c **** /// @brief
  12:Component/modbus/modbus_define.c **** /// @param self
  13:Component/modbus/modbus_define.c **** static void __modbus_slave_root_lock(modbus_slave_root_t self)
  14:Component/modbus/modbus_define.c **** {
  15:Component/modbus/modbus_define.c ****     ;
  16:Component/modbus/modbus_define.c **** }
  17:Component/modbus/modbus_define.c **** 
  18:Component/modbus/modbus_define.c **** /// @brief
  19:Component/modbus/modbus_define.c **** /// @param self
  20:Component/modbus/modbus_define.c **** static void __modbus_slave_root_unlock(modbus_slave_root_t self)
  21:Component/modbus/modbus_define.c **** {
  22:Component/modbus/modbus_define.c ****     ;
  23:Component/modbus/modbus_define.c **** }
  24:Component/modbus/modbus_define.c **** 
  25:Component/modbus/modbus_define.c **** //==============================Public===============================//
  26:Component/modbus/modbus_define.c **** 
  27:Component/modbus/modbus_define.c **** 
  28:Component/modbus/modbus_define.c **** /// @brief
  29:Component/modbus/modbus_define.c **** /// @param self
  30:Component/modbus/modbus_define.c **** /// @return
  31:Component/modbus/modbus_define.c **** int modbus_slave_root_init(modbus_slave_root_t self, MODBUS_READ_HOOK_FUNC(on_read), MODBUS_WRITE_H
  32:Component/modbus/modbus_define.c **** {
ARM GAS  /tmp/ccA0xmY5.s 			page 2


  27              		.loc 1 32 1 view -0
  28              		.cfi_startproc
  29              		@ args = 0, pretend = 0, frame = 0
  30              		@ frame_needed = 0, uses_anonymous_args = 0
  31              		@ link register save eliminated.
  33:Component/modbus/modbus_define.c ****     if (!self)
  32              		.loc 1 33 5 view .LVU1
  33              		.loc 1 33 8 is_stmt 0 view .LVU2
  34 0000 0028     		cmp	r0, #0
  35 0002 06D0     		beq	.L3
  34:Component/modbus/modbus_define.c ****     {
  35:Component/modbus/modbus_define.c ****         return -MODBUS_ERROR_NULL_POINTER;
  36:Component/modbus/modbus_define.c ****     }
  37:Component/modbus/modbus_define.c ****     modbus_slave_node_init(&self->slave, 0, on_read, on_write);
  36              		.loc 1 37 5 is_stmt 1 view .LVU3
  37              	.LVL1:
  38              	.LBB36:
  39              	.LBI36:
  38:Component/modbus/modbus_define.c ****     return -MODBUS_ERROR_NO_ERROR;
  39:Component/modbus/modbus_define.c **** }
  40:Component/modbus/modbus_define.c **** 
  41:Component/modbus/modbus_define.c **** /// @brief
  42:Component/modbus/modbus_define.c **** /// @param self
  43:Component/modbus/modbus_define.c **** /// @return
  44:Component/modbus/modbus_define.c **** int modbus_slave_node_init(modbus_slave_t slave, uint8_t id, MODBUS_READ_HOOK_FUNC(on_read), MODBUS
  40              		.loc 1 44 5 view .LVU4
  41              	.LBB37:
  45:Component/modbus/modbus_define.c **** {
  46:Component/modbus/modbus_define.c ****     if (!slave)
  42              		.loc 1 46 5 view .LVU5
  47:Component/modbus/modbus_define.c ****     {
  48:Component/modbus/modbus_define.c ****         return -MODBUS_ERROR_NULL_POINTER;
  49:Component/modbus/modbus_define.c ****     }
  50:Component/modbus/modbus_define.c ****     slave->id = id;
  43              		.loc 1 50 5 view .LVU6
  44              		.loc 1 50 15 is_stmt 0 view .LVU7
  45 0004 0023     		movs	r3, #0
  51:Component/modbus/modbus_define.c ****     slave->next = NULL;
  52:Component/modbus/modbus_define.c ****     slave->on_read = on_read;
  46              		.loc 1 52 20 view .LVU8
  47 0006 8160     		str	r1, [r0, #8]
  50:Component/modbus/modbus_define.c ****     slave->next = NULL;
  48              		.loc 1 50 15 view .LVU9
  49 0008 0370     		strb	r3, [r0]
  51:Component/modbus/modbus_define.c ****     slave->next = NULL;
  50              		.loc 1 51 5 is_stmt 1 view .LVU10
  51:Component/modbus/modbus_define.c ****     slave->next = NULL;
  51              		.loc 1 51 17 is_stmt 0 view .LVU11
  52 000a 4360     		str	r3, [r0, #4]
  53              		.loc 1 52 5 is_stmt 1 view .LVU12
  53:Component/modbus/modbus_define.c ****     slave->on_write = on_write;
  54              		.loc 1 53 5 view .LVU13
  55              		.loc 1 53 21 is_stmt 0 view .LVU14
  56 000c C260     		str	r2, [r0, #12]
  54:Component/modbus/modbus_define.c ****     return -MODBUS_ERROR_NO_ERROR;
  57              		.loc 1 54 5 is_stmt 1 view .LVU15
  58              	.LVL2:
ARM GAS  /tmp/ccA0xmY5.s 			page 3


  59              		.loc 1 54 5 is_stmt 0 view .LVU16
  60              	.LBE37:
  61              	.LBE36:
  38:Component/modbus/modbus_define.c **** }
  62              		.loc 1 38 5 is_stmt 1 view .LVU17
  38:Component/modbus/modbus_define.c **** }
  63              		.loc 1 38 12 is_stmt 0 view .LVU18
  64 000e 0020     		movs	r0, #0
  65              	.LVL3:
  66              	.L1:
  39:Component/modbus/modbus_define.c **** 
  67              		.loc 1 39 1 view .LVU19
  68              		@ sp needed
  69 0010 7047     		bx	lr
  70              	.LVL4:
  71              	.L3:
  35:Component/modbus/modbus_define.c ****     }
  72              		.loc 1 35 16 view .LVU20
  73 0012 0520     		movs	r0, #5
  74              	.LVL5:
  35:Component/modbus/modbus_define.c ****     }
  75              		.loc 1 35 16 view .LVU21
  76 0014 4042     		rsbs	r0, r0, #0
  77 0016 FBE7     		b	.L1
  78              		.cfi_endproc
  79              	.LFE2:
  81              		.section	.text.modbus_slave_node_init,"ax",%progbits
  82              		.align	1
  83              		.p2align 2,,3
  84              		.global	modbus_slave_node_init
  85              		.syntax unified
  86              		.code	16
  87              		.thumb_func
  89              	modbus_slave_node_init:
  90              	.LVL6:
  91              	.LFB3:
  45:Component/modbus/modbus_define.c ****     if (!slave)
  92              		.loc 1 45 1 is_stmt 1 view -0
  93              		.cfi_startproc
  94              		@ args = 0, pretend = 0, frame = 0
  95              		@ frame_needed = 0, uses_anonymous_args = 0
  96              		@ link register save eliminated.
  46:Component/modbus/modbus_define.c ****     {
  97              		.loc 1 46 5 view .LVU23
  46:Component/modbus/modbus_define.c ****     {
  98              		.loc 1 46 8 is_stmt 0 view .LVU24
  99 0000 0028     		cmp	r0, #0
 100 0002 06D0     		beq	.L7
  50:Component/modbus/modbus_define.c ****     slave->next = NULL;
 101              		.loc 1 50 5 is_stmt 1 view .LVU25
  50:Component/modbus/modbus_define.c ****     slave->next = NULL;
 102              		.loc 1 50 15 is_stmt 0 view .LVU26
 103 0004 0170     		strb	r1, [r0]
  51:Component/modbus/modbus_define.c ****     slave->on_read = on_read;
 104              		.loc 1 51 5 is_stmt 1 view .LVU27
  51:Component/modbus/modbus_define.c ****     slave->on_read = on_read;
 105              		.loc 1 51 17 is_stmt 0 view .LVU28
ARM GAS  /tmp/ccA0xmY5.s 			page 4


 106 0006 0021     		movs	r1, #0
 107              	.LVL7:
  52:Component/modbus/modbus_define.c ****     slave->on_write = on_write;
 108              		.loc 1 52 20 view .LVU29
 109 0008 8260     		str	r2, [r0, #8]
  51:Component/modbus/modbus_define.c ****     slave->on_read = on_read;
 110              		.loc 1 51 17 view .LVU30
 111 000a 4160     		str	r1, [r0, #4]
  52:Component/modbus/modbus_define.c ****     slave->on_write = on_write;
 112              		.loc 1 52 5 is_stmt 1 view .LVU31
  53:Component/modbus/modbus_define.c ****     return -MODBUS_ERROR_NO_ERROR;
 113              		.loc 1 53 5 view .LVU32
  53:Component/modbus/modbus_define.c ****     return -MODBUS_ERROR_NO_ERROR;
 114              		.loc 1 53 21 is_stmt 0 view .LVU33
 115 000c C360     		str	r3, [r0, #12]
 116              		.loc 1 54 5 is_stmt 1 view .LVU34
 117              		.loc 1 54 12 is_stmt 0 view .LVU35
 118 000e 0020     		movs	r0, #0
 119              	.LVL8:
 120              	.L5:
  55:Component/modbus/modbus_define.c **** }
 121              		.loc 1 55 1 view .LVU36
 122              		@ sp needed
 123 0010 7047     		bx	lr
 124              	.LVL9:
 125              	.L7:
  48:Component/modbus/modbus_define.c ****     }
 126              		.loc 1 48 16 view .LVU37
 127 0012 0520     		movs	r0, #5
 128              	.LVL10:
  48:Component/modbus/modbus_define.c ****     }
 129              		.loc 1 48 16 view .LVU38
 130 0014 4042     		rsbs	r0, r0, #0
 131 0016 FBE7     		b	.L5
 132              		.cfi_endproc
 133              	.LFE3:
 135              		.section	.text.modbus_slave_node_create,"ax",%progbits
 136              		.align	1
 137              		.p2align 2,,3
 138              		.global	modbus_slave_node_create
 139              		.syntax unified
 140              		.code	16
 141              		.thumb_func
 143              	modbus_slave_node_create:
 144              	.LVL11:
 145              	.LFB4:
  56:Component/modbus/modbus_define.c **** 
  57:Component/modbus/modbus_define.c **** /// @brief
  58:Component/modbus/modbus_define.c **** /// @param self
  59:Component/modbus/modbus_define.c **** /// @param id
  60:Component/modbus/modbus_define.c **** /// @param MODBUS_HOOK_FUNC
  61:Component/modbus/modbus_define.c **** /// @param MODBUS_HOOK_FUNC
  62:Component/modbus/modbus_define.c **** /// @return
  63:Component/modbus/modbus_define.c **** int modbus_slave_node_create(modbus_slave_root_t self, uint8_t id, MODBUS_READ_HOOK_FUNC(on_read), 
  64:Component/modbus/modbus_define.c **** {
 146              		.loc 1 64 1 is_stmt 1 view -0
 147              		.cfi_startproc
ARM GAS  /tmp/ccA0xmY5.s 			page 5


 148              		@ args = 0, pretend = 0, frame = 0
 149              		@ frame_needed = 0, uses_anonymous_args = 0
  65:Component/modbus/modbus_define.c ****     modbus_slave_t slave;
 150              		.loc 1 65 5 view .LVU40
  66:Component/modbus/modbus_define.c ****     if (!self)
 151              		.loc 1 66 5 view .LVU41
  64:Component/modbus/modbus_define.c ****     modbus_slave_t slave;
 152              		.loc 1 64 1 is_stmt 0 view .LVU42
 153 0000 F0B5     		push	{r4, r5, r6, r7, lr}
 154              	.LCFI0:
 155              		.cfi_def_cfa_offset 20
 156              		.cfi_offset 4, -20
 157              		.cfi_offset 5, -16
 158              		.cfi_offset 6, -12
 159              		.cfi_offset 7, -8
 160              		.cfi_offset 14, -4
 161 0002 C646     		mov	lr, r8
 162 0004 0500     		movs	r5, r0
 163 0006 0E00     		movs	r6, r1
 164 0008 1700     		movs	r7, r2
 165 000a 9846     		mov	r8, r3
 166 000c 00B5     		push	{lr}
 167              	.LCFI1:
 168              		.cfi_def_cfa_offset 24
 169              		.cfi_offset 8, -24
 170              		.loc 1 66 8 view .LVU43
 171 000e 0028     		cmp	r0, #0
 172 0010 2AD0     		beq	.L18
  67:Component/modbus/modbus_define.c ****     {
  68:Component/modbus/modbus_define.c ****         return -MODBUS_ERROR_NULL_POINTER;
  69:Component/modbus/modbus_define.c ****     }
  70:Component/modbus/modbus_define.c ****     __modbus_slave_root_lock(self);
 173              		.loc 1 70 5 is_stmt 1 view .LVU44
  71:Component/modbus/modbus_define.c ****     if (!modbus_slave_find_node(self, id))
 174              		.loc 1 71 5 view .LVU45
 175              	.LVL12:
 176              	.LBB38:
 177              	.LBI38:
  72:Component/modbus/modbus_define.c ****     {
  73:Component/modbus/modbus_define.c ****         slave = (modbus_slave_t)malloc(sizeof(struct modbus_slave));
  74:Component/modbus/modbus_define.c ****         if (!slave)
  75:Component/modbus/modbus_define.c ****         {
  76:Component/modbus/modbus_define.c ****             return -MODBUS_ERROR_SLAVE_ADD_FILED;
  77:Component/modbus/modbus_define.c ****         }
  78:Component/modbus/modbus_define.c ****         modbus_slave_node_init(slave, id, on_read, on_write);
  79:Component/modbus/modbus_define.c ****     }
  80:Component/modbus/modbus_define.c ****     __modbus_slave_root_unlock(self);
  81:Component/modbus/modbus_define.c ****     return modbus_slave_add_node(self, slave);
  82:Component/modbus/modbus_define.c **** }
  83:Component/modbus/modbus_define.c **** 
  84:Component/modbus/modbus_define.c **** /// @brief
  85:Component/modbus/modbus_define.c **** /// @param self
  86:Component/modbus/modbus_define.c **** /// @param slave
  87:Component/modbus/modbus_define.c **** /// @return
  88:Component/modbus/modbus_define.c **** int modbus_slave_add_node(modbus_slave_root_t self, modbus_slave_t slave)
  89:Component/modbus/modbus_define.c **** {
  90:Component/modbus/modbus_define.c ****     modbus_slave_t pointer;
ARM GAS  /tmp/ccA0xmY5.s 			page 6


  91:Component/modbus/modbus_define.c ****     if (!self)
  92:Component/modbus/modbus_define.c ****     {
  93:Component/modbus/modbus_define.c ****         return -MODBUS_ERROR_NULL_POINTER;
  94:Component/modbus/modbus_define.c ****     }
  95:Component/modbus/modbus_define.c ****     __modbus_slave_root_lock(self);
  96:Component/modbus/modbus_define.c ****     pointer = &self->slave;
  97:Component/modbus/modbus_define.c ****     while (true)
  98:Component/modbus/modbus_define.c ****     {
  99:Component/modbus/modbus_define.c ****         if (pointer->id == slave->id)
 100:Component/modbus/modbus_define.c ****         {
 101:Component/modbus/modbus_define.c ****             if (pointer != slave)
 102:Component/modbus/modbus_define.c ****             {
 103:Component/modbus/modbus_define.c ****                 pointer->on_read = slave->on_read;
 104:Component/modbus/modbus_define.c ****                 pointer->on_write = slave->on_write;
 105:Component/modbus/modbus_define.c ****             }
 106:Component/modbus/modbus_define.c ****             break;
 107:Component/modbus/modbus_define.c ****         }
 108:Component/modbus/modbus_define.c ****         else if (pointer->next)
 109:Component/modbus/modbus_define.c ****         {
 110:Component/modbus/modbus_define.c ****             pointer = pointer->next;
 111:Component/modbus/modbus_define.c ****         }
 112:Component/modbus/modbus_define.c ****         else
 113:Component/modbus/modbus_define.c ****         {
 114:Component/modbus/modbus_define.c ****             pointer->next = slave;
 115:Component/modbus/modbus_define.c ****             break;
 116:Component/modbus/modbus_define.c ****         }
 117:Component/modbus/modbus_define.c ****     }
 118:Component/modbus/modbus_define.c ****     if (pointer->id == slave->id)
 119:Component/modbus/modbus_define.c ****     {
 120:Component/modbus/modbus_define.c ****         return -MODBUS_ERROR_SLAVE_ID_EXIST;
 121:Component/modbus/modbus_define.c ****     }
 122:Component/modbus/modbus_define.c ****     __modbus_slave_root_unlock(self);
 123:Component/modbus/modbus_define.c ****     return -MODBUS_ERROR_NO_ERROR;
 124:Component/modbus/modbus_define.c **** }
 125:Component/modbus/modbus_define.c **** 
 126:Component/modbus/modbus_define.c **** /// @brief
 127:Component/modbus/modbus_define.c **** /// @param self
 128:Component/modbus/modbus_define.c **** /// @param id
 129:Component/modbus/modbus_define.c **** /// @return
 130:Component/modbus/modbus_define.c **** modbus_slave_t modbus_slave_find_node(modbus_slave_root_t self, uint8_t id)
 178              		.loc 1 130 16 view .LVU46
 179              	.LBB39:
 131:Component/modbus/modbus_define.c **** {
 132:Component/modbus/modbus_define.c ****     modbus_slave_t pointer;
 180              		.loc 1 132 5 view .LVU47
 133:Component/modbus/modbus_define.c ****     if (!self)
 181              		.loc 1 133 5 view .LVU48
 134:Component/modbus/modbus_define.c ****     {
 135:Component/modbus/modbus_define.c ****         return NULL;
 136:Component/modbus/modbus_define.c ****     }
 137:Component/modbus/modbus_define.c ****     __modbus_slave_root_lock(self);
 182              		.loc 1 137 5 view .LVU49
 138:Component/modbus/modbus_define.c ****     pointer = &self->slave;
 183              		.loc 1 138 5 view .LVU50
 184              		.loc 1 138 13 is_stmt 0 view .LVU51
 185 0012 0400     		movs	r4, r0
 186 0014 02E0     		b	.L12
ARM GAS  /tmp/ccA0xmY5.s 			page 7


 187              	.LVL13:
 188              	.L23:
 139:Component/modbus/modbus_define.c ****     while (true)
 140:Component/modbus/modbus_define.c ****     {
 141:Component/modbus/modbus_define.c ****         if (pointer->id == id)
 142:Component/modbus/modbus_define.c ****         {
 143:Component/modbus/modbus_define.c ****             break;
 144:Component/modbus/modbus_define.c ****         }
 145:Component/modbus/modbus_define.c ****         else if (!pointer->next)
 189              		.loc 1 145 14 is_stmt 1 view .LVU52
 190              		.loc 1 145 26 is_stmt 0 view .LVU53
 191 0016 6468     		ldr	r4, [r4, #4]
 192              	.LVL14:
 193              		.loc 1 145 17 view .LVU54
 194 0018 002C     		cmp	r4, #0
 195 001a 1AD0     		beq	.L22
 196              	.LVL15:
 197              	.L12:
 139:Component/modbus/modbus_define.c ****     while (true)
 198              		.loc 1 139 5 is_stmt 1 view .LVU55
 141:Component/modbus/modbus_define.c ****         {
 199              		.loc 1 141 9 view .LVU56
 141:Component/modbus/modbus_define.c ****         {
 200              		.loc 1 141 12 is_stmt 0 view .LVU57
 201 001c 2078     		ldrb	r0, [r4]
 202 001e B042     		cmp	r0, r6
 203 0020 F9D1     		bne	.L23
 204              	.LVL16:
 141:Component/modbus/modbus_define.c ****         {
 205              		.loc 1 141 12 view .LVU58
 206              	.LBE39:
 207              	.LBE38:
 208              	.LBB40:
 209              	.LBB41:
  99:Component/modbus/modbus_define.c ****         {
 210              		.loc 1 99 33 view .LVU59
 211 0022 0020     		movs	r0, #0
 212 0024 0678     		ldrb	r6, [r0]
 213              	.LVL17:
  99:Component/modbus/modbus_define.c ****         {
 214              		.loc 1 99 33 view .LVU60
 215              	.LBE41:
 216              	.LBE40:
  80:Component/modbus/modbus_define.c ****     return modbus_slave_add_node(self, slave);
 217              		.loc 1 80 5 is_stmt 1 view .LVU61
  81:Component/modbus/modbus_define.c **** }
 218              		.loc 1 81 5 view .LVU62
 219              	.LBB44:
 220              	.LBI40:
  88:Component/modbus/modbus_define.c **** {
 221              		.loc 1 88 5 view .LVU63
 222              	.LBB42:
  90:Component/modbus/modbus_define.c ****     if (!self)
 223              		.loc 1 90 5 view .LVU64
  91:Component/modbus/modbus_define.c ****     {
 224              		.loc 1 91 5 view .LVU65
  95:Component/modbus/modbus_define.c ****     pointer = &self->slave;
ARM GAS  /tmp/ccA0xmY5.s 			page 8


 225              		.loc 1 95 5 view .LVU66
  96:Component/modbus/modbus_define.c ****     while (true)
 226              		.loc 1 96 5 view .LVU67
  96:Component/modbus/modbus_define.c ****     while (true)
 227              		.loc 1 96 5 is_stmt 0 view .LVU68
 228 0026 03E0     		b	.L15
 229              	.LVL18:
 230              	.L13:
 108:Component/modbus/modbus_define.c ****         {
 231              		.loc 1 108 14 is_stmt 1 view .LVU69
 108:Component/modbus/modbus_define.c ****         {
 232              		.loc 1 108 25 is_stmt 0 view .LVU70
 233 0028 6B68     		ldr	r3, [r5, #4]
 108:Component/modbus/modbus_define.c ****         {
 234              		.loc 1 108 17 view .LVU71
 235 002a 002B     		cmp	r3, #0
 236 002c 0ED0     		beq	.L24
 110:Component/modbus/modbus_define.c ****         }
 237              		.loc 1 110 21 view .LVU72
 238 002e 1D00     		movs	r5, r3
 239              	.LVL19:
 240              	.L15:
  97:Component/modbus/modbus_define.c ****     {
 241              		.loc 1 97 5 is_stmt 1 view .LVU73
  99:Component/modbus/modbus_define.c ****         {
 242              		.loc 1 99 9 view .LVU74
  99:Component/modbus/modbus_define.c ****         {
 243              		.loc 1 99 12 is_stmt 0 view .LVU75
 244 0030 2B78     		ldrb	r3, [r5]
 245 0032 B342     		cmp	r3, r6
 246 0034 F8D1     		bne	.L13
 101:Component/modbus/modbus_define.c ****             {
 247              		.loc 1 101 13 is_stmt 1 view .LVU76
 101:Component/modbus/modbus_define.c ****             {
 248              		.loc 1 101 16 is_stmt 0 view .LVU77
 249 0036 A842     		cmp	r0, r5
 250 0038 03D0     		beq	.L14
 103:Component/modbus/modbus_define.c ****                 pointer->on_write = slave->on_write;
 251              		.loc 1 103 17 is_stmt 1 view .LVU78
 103:Component/modbus/modbus_define.c ****                 pointer->on_write = slave->on_write;
 252              		.loc 1 103 41 is_stmt 0 view .LVU79
 253 003a 8268     		ldr	r2, [r0, #8]
 254 003c C368     		ldr	r3, [r0, #12]
 104:Component/modbus/modbus_define.c ****             }
 255              		.loc 1 104 17 is_stmt 1 view .LVU80
 103:Component/modbus/modbus_define.c ****                 pointer->on_write = slave->on_write;
 256              		.loc 1 103 34 is_stmt 0 view .LVU81
 257 003e AA60     		str	r2, [r5, #8]
 258 0040 EB60     		str	r3, [r5, #12]
 259              	.L14:
 118:Component/modbus/modbus_define.c ****     {
 260              		.loc 1 118 5 is_stmt 1 view .LVU82
 120:Component/modbus/modbus_define.c ****     }
 261              		.loc 1 120 16 is_stmt 0 view .LVU83
 262 0042 0820     		movs	r0, #8
 263 0044 4042     		rsbs	r0, r0, #0
 264              	.LVL20:
ARM GAS  /tmp/ccA0xmY5.s 			page 9


 265              	.L8:
 120:Component/modbus/modbus_define.c ****     }
 266              		.loc 1 120 16 view .LVU84
 267              	.LBE42:
 268              	.LBE44:
  82:Component/modbus/modbus_define.c **** 
 269              		.loc 1 82 1 view .LVU85
 270              		@ sp needed
 271              	.LVL21:
 272              	.LVL22:
  82:Component/modbus/modbus_define.c **** 
 273              		.loc 1 82 1 view .LVU86
 274 0046 80BC     		pop	{r7}
 275 0048 B846     		mov	r8, r7
 276 004a F0BD     		pop	{r4, r5, r6, r7, pc}
 277              	.LVL23:
 278              	.L24:
 279              	.LBB45:
 280              	.LBB43:
 114:Component/modbus/modbus_define.c ****             break;
 281              		.loc 1 114 13 is_stmt 1 view .LVU87
 114:Component/modbus/modbus_define.c ****             break;
 282              		.loc 1 114 27 is_stmt 0 view .LVU88
 283 004c 6860     		str	r0, [r5, #4]
 115:Component/modbus/modbus_define.c ****         }
 284              		.loc 1 115 13 is_stmt 1 view .LVU89
 118:Component/modbus/modbus_define.c ****     {
 285              		.loc 1 118 5 view .LVU90
 123:Component/modbus/modbus_define.c **** }
 286              		.loc 1 123 12 is_stmt 0 view .LVU91
 287 004e 0020     		movs	r0, #0
 288 0050 F9E7     		b	.L8
 289              	.LVL24:
 290              	.L22:
 123:Component/modbus/modbus_define.c **** }
 291              		.loc 1 123 12 view .LVU92
 292              	.LBE43:
 293              	.LBE45:
  73:Component/modbus/modbus_define.c ****         if (!slave)
 294              		.loc 1 73 9 is_stmt 1 view .LVU93
  73:Component/modbus/modbus_define.c ****         if (!slave)
 295              		.loc 1 73 33 is_stmt 0 view .LVU94
 296 0052 1020     		movs	r0, #16
 297 0054 FFF7FEFF 		bl	malloc
 298              	.LVL25:
  74:Component/modbus/modbus_define.c ****         {
 299              		.loc 1 74 9 is_stmt 1 view .LVU95
  74:Component/modbus/modbus_define.c ****         {
 300              		.loc 1 74 12 is_stmt 0 view .LVU96
 301 0058 0028     		cmp	r0, #0
 302 005a 08D0     		beq	.L25
  78:Component/modbus/modbus_define.c ****     }
 303              		.loc 1 78 9 is_stmt 1 view .LVU97
 304              	.LVL26:
 305              	.LBB46:
 306              	.LBI46:
  44:Component/modbus/modbus_define.c **** {
ARM GAS  /tmp/ccA0xmY5.s 			page 10


 307              		.loc 1 44 5 view .LVU98
 308              	.LBB47:
  46:Component/modbus/modbus_define.c ****     {
 309              		.loc 1 46 5 view .LVU99
  50:Component/modbus/modbus_define.c ****     slave->next = NULL;
 310              		.loc 1 50 5 view .LVU100
  53:Component/modbus/modbus_define.c ****     return -MODBUS_ERROR_NO_ERROR;
 311              		.loc 1 53 21 is_stmt 0 view .LVU101
 312 005c 4346     		mov	r3, r8
  50:Component/modbus/modbus_define.c ****     slave->next = NULL;
 313              		.loc 1 50 15 view .LVU102
 314 005e 0670     		strb	r6, [r0]
  51:Component/modbus/modbus_define.c ****     slave->on_read = on_read;
 315              		.loc 1 51 5 is_stmt 1 view .LVU103
  51:Component/modbus/modbus_define.c ****     slave->on_read = on_read;
 316              		.loc 1 51 17 is_stmt 0 view .LVU104
 317 0060 4460     		str	r4, [r0, #4]
  52:Component/modbus/modbus_define.c ****     slave->on_write = on_write;
 318              		.loc 1 52 5 is_stmt 1 view .LVU105
  52:Component/modbus/modbus_define.c ****     slave->on_write = on_write;
 319              		.loc 1 52 20 is_stmt 0 view .LVU106
 320 0062 8760     		str	r7, [r0, #8]
  53:Component/modbus/modbus_define.c ****     return -MODBUS_ERROR_NO_ERROR;
 321              		.loc 1 53 5 is_stmt 1 view .LVU107
  53:Component/modbus/modbus_define.c ****     return -MODBUS_ERROR_NO_ERROR;
 322              		.loc 1 53 21 is_stmt 0 view .LVU108
 323 0064 C360     		str	r3, [r0, #12]
  54:Component/modbus/modbus_define.c **** }
 324              		.loc 1 54 5 is_stmt 1 view .LVU109
 325              	.LVL27:
  54:Component/modbus/modbus_define.c **** }
 326              		.loc 1 54 5 is_stmt 0 view .LVU110
 327 0066 E3E7     		b	.L15
 328              	.LVL28:
 329              	.L18:
  54:Component/modbus/modbus_define.c **** }
 330              		.loc 1 54 5 view .LVU111
 331              	.LBE47:
 332              	.LBE46:
  68:Component/modbus/modbus_define.c ****     }
 333              		.loc 1 68 16 view .LVU112
 334 0068 0520     		movs	r0, #5
 335              	.LVL29:
  68:Component/modbus/modbus_define.c ****     }
 336              		.loc 1 68 16 view .LVU113
 337 006a 4042     		rsbs	r0, r0, #0
 338 006c EBE7     		b	.L8
 339              	.LVL30:
 340              	.L25:
  76:Component/modbus/modbus_define.c ****         }
 341              		.loc 1 76 20 view .LVU114
 342 006e 0920     		movs	r0, #9
 343              	.LVL31:
  76:Component/modbus/modbus_define.c ****         }
 344              		.loc 1 76 20 view .LVU115
 345 0070 4042     		rsbs	r0, r0, #0
 346 0072 E8E7     		b	.L8
ARM GAS  /tmp/ccA0xmY5.s 			page 11


 347              		.cfi_endproc
 348              	.LFE4:
 350              		.section	.text.modbus_slave_add_node,"ax",%progbits
 351              		.align	1
 352              		.p2align 2,,3
 353              		.global	modbus_slave_add_node
 354              		.syntax unified
 355              		.code	16
 356              		.thumb_func
 358              	modbus_slave_add_node:
 359              	.LVL32:
 360              	.LFB5:
  89:Component/modbus/modbus_define.c ****     modbus_slave_t pointer;
 361              		.loc 1 89 1 is_stmt 1 view -0
 362              		.cfi_startproc
 363              		@ args = 0, pretend = 0, frame = 0
 364              		@ frame_needed = 0, uses_anonymous_args = 0
 365              		@ link register save eliminated.
  90:Component/modbus/modbus_define.c ****     if (!self)
 366              		.loc 1 90 5 view .LVU117
  91:Component/modbus/modbus_define.c ****     {
 367              		.loc 1 91 5 view .LVU118
  91:Component/modbus/modbus_define.c ****     {
 368              		.loc 1 91 8 is_stmt 0 view .LVU119
 369 0000 0028     		cmp	r0, #0
 370 0002 14D0     		beq	.L31
  95:Component/modbus/modbus_define.c ****     pointer = &self->slave;
 371              		.loc 1 95 5 is_stmt 1 view .LVU120
  96:Component/modbus/modbus_define.c ****     while (true)
 372              		.loc 1 96 5 view .LVU121
 373              	.LVL33:
  99:Component/modbus/modbus_define.c ****         {
 374              		.loc 1 99 33 is_stmt 0 view .LVU122
 375 0004 0A78     		ldrb	r2, [r1]
 376 0006 03E0     		b	.L30
 377              	.LVL34:
 378              	.L28:
 108:Component/modbus/modbus_define.c ****         {
 379              		.loc 1 108 14 is_stmt 1 view .LVU123
 108:Component/modbus/modbus_define.c ****         {
 380              		.loc 1 108 25 is_stmt 0 view .LVU124
 381 0008 4368     		ldr	r3, [r0, #4]
 108:Component/modbus/modbus_define.c ****         {
 382              		.loc 1 108 17 view .LVU125
 383 000a 002B     		cmp	r3, #0
 384 000c 0CD0     		beq	.L33
 110:Component/modbus/modbus_define.c ****         }
 385              		.loc 1 110 21 view .LVU126
 386 000e 1800     		movs	r0, r3
 387              	.LVL35:
 388              	.L30:
  97:Component/modbus/modbus_define.c ****     {
 389              		.loc 1 97 5 is_stmt 1 view .LVU127
  99:Component/modbus/modbus_define.c ****         {
 390              		.loc 1 99 9 view .LVU128
  99:Component/modbus/modbus_define.c ****         {
 391              		.loc 1 99 12 is_stmt 0 view .LVU129
ARM GAS  /tmp/ccA0xmY5.s 			page 12


 392 0010 0378     		ldrb	r3, [r0]
 393 0012 9342     		cmp	r3, r2
 394 0014 F8D1     		bne	.L28
 101:Component/modbus/modbus_define.c ****             {
 395              		.loc 1 101 13 is_stmt 1 view .LVU130
 101:Component/modbus/modbus_define.c ****             {
 396              		.loc 1 101 16 is_stmt 0 view .LVU131
 397 0016 8842     		cmp	r0, r1
 398 0018 03D0     		beq	.L29
 103:Component/modbus/modbus_define.c ****                 pointer->on_write = slave->on_write;
 399              		.loc 1 103 17 is_stmt 1 view .LVU132
 103:Component/modbus/modbus_define.c ****                 pointer->on_write = slave->on_write;
 400              		.loc 1 103 41 is_stmt 0 view .LVU133
 401 001a 8A68     		ldr	r2, [r1, #8]
 402 001c CB68     		ldr	r3, [r1, #12]
 104:Component/modbus/modbus_define.c ****             }
 403              		.loc 1 104 17 is_stmt 1 view .LVU134
 103:Component/modbus/modbus_define.c ****                 pointer->on_write = slave->on_write;
 404              		.loc 1 103 34 is_stmt 0 view .LVU135
 405 001e 8260     		str	r2, [r0, #8]
 406 0020 C360     		str	r3, [r0, #12]
 407              	.L29:
 118:Component/modbus/modbus_define.c ****     {
 408              		.loc 1 118 5 is_stmt 1 view .LVU136
 120:Component/modbus/modbus_define.c ****     }
 409              		.loc 1 120 16 is_stmt 0 view .LVU137
 410 0022 0820     		movs	r0, #8
 411              	.LVL36:
 120:Component/modbus/modbus_define.c ****     }
 412              		.loc 1 120 16 view .LVU138
 413 0024 4042     		rsbs	r0, r0, #0
 414              	.LVL37:
 415              	.L26:
 124:Component/modbus/modbus_define.c **** 
 416              		.loc 1 124 1 view .LVU139
 417              		@ sp needed
 418 0026 7047     		bx	lr
 419              	.LVL38:
 420              	.L33:
 114:Component/modbus/modbus_define.c ****             break;
 421              		.loc 1 114 13 is_stmt 1 view .LVU140
 114:Component/modbus/modbus_define.c ****             break;
 422              		.loc 1 114 27 is_stmt 0 view .LVU141
 423 0028 4160     		str	r1, [r0, #4]
 115:Component/modbus/modbus_define.c ****         }
 424              		.loc 1 115 13 is_stmt 1 view .LVU142
 118:Component/modbus/modbus_define.c ****     {
 425              		.loc 1 118 5 view .LVU143
 123:Component/modbus/modbus_define.c **** }
 426              		.loc 1 123 12 is_stmt 0 view .LVU144
 427 002a 0020     		movs	r0, #0
 428              	.LVL39:
 123:Component/modbus/modbus_define.c **** }
 429              		.loc 1 123 12 view .LVU145
 430 002c FBE7     		b	.L26
 431              	.LVL40:
 432              	.L31:
ARM GAS  /tmp/ccA0xmY5.s 			page 13


  93:Component/modbus/modbus_define.c ****     }
 433              		.loc 1 93 16 view .LVU146
 434 002e 0520     		movs	r0, #5
 435              	.LVL41:
  93:Component/modbus/modbus_define.c ****     }
 436              		.loc 1 93 16 view .LVU147
 437 0030 4042     		rsbs	r0, r0, #0
 438 0032 F8E7     		b	.L26
 439              		.cfi_endproc
 440              	.LFE5:
 442              		.section	.text.modbus_slave_find_node,"ax",%progbits
 443              		.align	1
 444              		.p2align 2,,3
 445              		.global	modbus_slave_find_node
 446              		.syntax unified
 447              		.code	16
 448              		.thumb_func
 450              	modbus_slave_find_node:
 451              	.LVL42:
 452              	.LFB6:
 131:Component/modbus/modbus_define.c ****     modbus_slave_t pointer;
 453              		.loc 1 131 1 is_stmt 1 view -0
 454              		.cfi_startproc
 455              		@ args = 0, pretend = 0, frame = 0
 456              		@ frame_needed = 0, uses_anonymous_args = 0
 457              		@ link register save eliminated.
 132:Component/modbus/modbus_define.c ****     if (!self)
 458              		.loc 1 132 5 view .LVU149
 133:Component/modbus/modbus_define.c ****     {
 459              		.loc 1 133 5 view .LVU150
 133:Component/modbus/modbus_define.c ****     {
 460              		.loc 1 133 8 is_stmt 0 view .LVU151
 461 0000 0028     		cmp	r0, #0
 462 0002 03D1     		bne	.L36
 463 0004 06E0     		b	.L37
 464              	.LVL43:
 465              	.L39:
 466              		.loc 1 145 14 is_stmt 1 view .LVU152
 467              		.loc 1 145 26 is_stmt 0 view .LVU153
 468 0006 4068     		ldr	r0, [r0, #4]
 469              	.LVL44:
 470              		.loc 1 145 17 view .LVU154
 471 0008 0028     		cmp	r0, #0
 472 000a 02D0     		beq	.L34
 473              	.LVL45:
 474              	.L36:
 139:Component/modbus/modbus_define.c ****     {
 475              		.loc 1 139 5 is_stmt 1 view .LVU155
 141:Component/modbus/modbus_define.c ****         {
 476              		.loc 1 141 9 view .LVU156
 141:Component/modbus/modbus_define.c ****         {
 477              		.loc 1 141 12 is_stmt 0 view .LVU157
 478 000c 0378     		ldrb	r3, [r0]
 479 000e 8B42     		cmp	r3, r1
 480 0010 F9D1     		bne	.L39
 481              	.LVL46:
 482              	.L34:
ARM GAS  /tmp/ccA0xmY5.s 			page 14


 146:Component/modbus/modbus_define.c ****         {
 147:Component/modbus/modbus_define.c ****             pointer = NULL;
 148:Component/modbus/modbus_define.c ****             break;
 149:Component/modbus/modbus_define.c ****         }
 150:Component/modbus/modbus_define.c ****         pointer = pointer->next;
 151:Component/modbus/modbus_define.c ****     }
 152:Component/modbus/modbus_define.c ****     __modbus_slave_root_unlock(self);
 153:Component/modbus/modbus_define.c ****     return pointer;
 154:Component/modbus/modbus_define.c **** }
 483              		.loc 1 154 1 view .LVU158
 484              		@ sp needed
 485 0012 7047     		bx	lr
 486              	.LVL47:
 487              	.L37:
 135:Component/modbus/modbus_define.c ****     }
 488              		.loc 1 135 16 view .LVU159
 489 0014 0020     		movs	r0, #0
 490              	.LVL48:
 135:Component/modbus/modbus_define.c ****     }
 491              		.loc 1 135 16 view .LVU160
 492 0016 FCE7     		b	.L34
 493              		.cfi_endproc
 494              	.LFE6:
 496              		.section	.text.modbus_slave_remove_node,"ax",%progbits
 497              		.align	1
 498              		.p2align 2,,3
 499              		.global	modbus_slave_remove_node
 500              		.syntax unified
 501              		.code	16
 502              		.thumb_func
 504              	modbus_slave_remove_node:
 505              	.LVL49:
 506              	.LFB7:
 155:Component/modbus/modbus_define.c **** 
 156:Component/modbus/modbus_define.c **** /// @brief
 157:Component/modbus/modbus_define.c **** /// @param self
 158:Component/modbus/modbus_define.c **** /// @param id
 159:Component/modbus/modbus_define.c **** /// @return
 160:Component/modbus/modbus_define.c **** int modbus_slave_remove_node(modbus_slave_root_t self, uint8_t id)
 161:Component/modbus/modbus_define.c **** {
 507              		.loc 1 161 1 is_stmt 1 view -0
 508              		.cfi_startproc
 509              		@ args = 0, pretend = 0, frame = 0
 510              		@ frame_needed = 0, uses_anonymous_args = 0
 511              		@ link register save eliminated.
 162:Component/modbus/modbus_define.c ****     modbus_slave_t pointer;
 512              		.loc 1 162 5 view .LVU162
 163:Component/modbus/modbus_define.c ****     if (!self)
 513              		.loc 1 163 5 view .LVU163
 514              		.loc 1 163 8 is_stmt 0 view .LVU164
 515 0000 0028     		cmp	r0, #0
 516 0002 17D0     		beq	.L46
 164:Component/modbus/modbus_define.c ****     {
 165:Component/modbus/modbus_define.c ****         return -MODBUS_ERROR_NULL_POINTER;
 166:Component/modbus/modbus_define.c ****     }
 167:Component/modbus/modbus_define.c ****     __modbus_slave_root_lock(self);
 517              		.loc 1 167 5 is_stmt 1 view .LVU165
ARM GAS  /tmp/ccA0xmY5.s 			page 15


 168:Component/modbus/modbus_define.c ****     if (id)
 518              		.loc 1 168 5 view .LVU166
 519              		.loc 1 168 8 is_stmt 0 view .LVU167
 520 0004 0029     		cmp	r1, #0
 521 0006 0ED0     		beq	.L42
 169:Component/modbus/modbus_define.c ****     {
 170:Component/modbus/modbus_define.c ****         pointer = &self->slave;
 522              		.loc 1 170 9 is_stmt 1 view .LVU168
 523              	.LVL50:
 171:Component/modbus/modbus_define.c ****         if (pointer->id == id)
 524              		.loc 1 171 9 view .LVU169
 525              		.loc 1 171 12 is_stmt 0 view .LVU170
 526 0008 0378     		ldrb	r3, [r0]
 527 000a 8B42     		cmp	r3, r1
 528 000c 0BD0     		beq	.L42
 172:Component/modbus/modbus_define.c ****         {
 173:Component/modbus/modbus_define.c ****             modbus_slave_node_init(pointer, 0, NULL,NULL);
 174:Component/modbus/modbus_define.c ****         }
 175:Component/modbus/modbus_define.c ****         else
 176:Component/modbus/modbus_define.c ****         {
 177:Component/modbus/modbus_define.c ****             while (true)
 178:Component/modbus/modbus_define.c ****             {
 179:Component/modbus/modbus_define.c ****                 if (pointer->next->id == id)
 529              		.loc 1 179 28 view .LVU171
 530 000e 4368     		ldr	r3, [r0, #4]
 531              	.LVL51:
 532              	.L51:
 177:Component/modbus/modbus_define.c ****             {
 533              		.loc 1 177 13 is_stmt 1 view .LVU172
 534              		.loc 1 179 17 view .LVU173
 535              		.loc 1 179 20 is_stmt 0 view .LVU174
 536 0010 1A78     		ldrb	r2, [r3]
 537 0012 8A42     		cmp	r2, r1
 538 0014 04D0     		beq	.L52
 539              	.L45:
 540              	.LVL52:
 541              		.loc 1 179 20 view .LVU175
 542 0016 1800     		movs	r0, r3
 180:Component/modbus/modbus_define.c ****                 {
 181:Component/modbus/modbus_define.c ****                     pointer->next = pointer->next->next;
 543              		.loc 1 181 50 view .LVU176
 544 0018 5B68     		ldr	r3, [r3, #4]
 545              	.LVL53:
 177:Component/modbus/modbus_define.c ****             {
 546              		.loc 1 177 13 is_stmt 1 view .LVU177
 179:Component/modbus/modbus_define.c ****                 {
 547              		.loc 1 179 17 view .LVU178
 179:Component/modbus/modbus_define.c ****                 {
 548              		.loc 1 179 20 is_stmt 0 view .LVU179
 549 001a 1A78     		ldrb	r2, [r3]
 550 001c 8A42     		cmp	r2, r1
 551 001e FAD1     		bne	.L45
 552              	.L52:
 553              		.loc 1 181 21 is_stmt 1 view .LVU180
 554              		.loc 1 181 50 is_stmt 0 view .LVU181
 555 0020 5B68     		ldr	r3, [r3, #4]
 556              		.loc 1 181 35 view .LVU182
ARM GAS  /tmp/ccA0xmY5.s 			page 16


 557 0022 4360     		str	r3, [r0, #4]
 558 0024 F4E7     		b	.L51
 559              	.LVL54:
 560              	.L42:
 173:Component/modbus/modbus_define.c ****         }
 561              		.loc 1 173 13 is_stmt 1 view .LVU183
 562              	.LBB48:
 563              	.LBI48:
  44:Component/modbus/modbus_define.c **** {
 564              		.loc 1 44 5 view .LVU184
 565              	.LBB49:
  46:Component/modbus/modbus_define.c ****     {
 566              		.loc 1 46 5 view .LVU185
  50:Component/modbus/modbus_define.c ****     slave->next = NULL;
 567              		.loc 1 50 5 view .LVU186
  50:Component/modbus/modbus_define.c ****     slave->next = NULL;
 568              		.loc 1 50 15 is_stmt 0 view .LVU187
 569 0026 0023     		movs	r3, #0
 570 0028 0370     		strb	r3, [r0]
  51:Component/modbus/modbus_define.c ****     slave->on_read = on_read;
 571              		.loc 1 51 5 is_stmt 1 view .LVU188
  51:Component/modbus/modbus_define.c ****     slave->on_read = on_read;
 572              		.loc 1 51 17 is_stmt 0 view .LVU189
 573 002a 4360     		str	r3, [r0, #4]
  52:Component/modbus/modbus_define.c ****     slave->on_write = on_write;
 574              		.loc 1 52 5 is_stmt 1 view .LVU190
  52:Component/modbus/modbus_define.c ****     slave->on_write = on_write;
 575              		.loc 1 52 20 is_stmt 0 view .LVU191
 576 002c 8360     		str	r3, [r0, #8]
  53:Component/modbus/modbus_define.c ****     return -MODBUS_ERROR_NO_ERROR;
 577              		.loc 1 53 5 is_stmt 1 view .LVU192
  53:Component/modbus/modbus_define.c ****     return -MODBUS_ERROR_NO_ERROR;
 578              		.loc 1 53 21 is_stmt 0 view .LVU193
 579 002e C360     		str	r3, [r0, #12]
  54:Component/modbus/modbus_define.c **** }
 580              		.loc 1 54 5 is_stmt 1 view .LVU194
 581              	.LVL55:
  54:Component/modbus/modbus_define.c **** }
 582              		.loc 1 54 5 is_stmt 0 view .LVU195
 583              	.LBE49:
 584              	.LBE48:
 182:Component/modbus/modbus_define.c ****                 }
 183:Component/modbus/modbus_define.c ****                 else if (pointer->next)
 184:Component/modbus/modbus_define.c ****                 {
 185:Component/modbus/modbus_define.c ****                     pointer = pointer->next;
 186:Component/modbus/modbus_define.c ****                 }
 187:Component/modbus/modbus_define.c ****                 else
 188:Component/modbus/modbus_define.c ****                 {
 189:Component/modbus/modbus_define.c ****                     break;
 190:Component/modbus/modbus_define.c ****                 }
 191:Component/modbus/modbus_define.c ****             }
 192:Component/modbus/modbus_define.c ****         }
 193:Component/modbus/modbus_define.c ****     }
 194:Component/modbus/modbus_define.c ****     else
 195:Component/modbus/modbus_define.c ****     {
 196:Component/modbus/modbus_define.c ****         modbus_slave_node_init(&self->slave, 0, NULL,NULL);
 197:Component/modbus/modbus_define.c ****     }
ARM GAS  /tmp/ccA0xmY5.s 			page 17


 198:Component/modbus/modbus_define.c ****     __modbus_slave_root_unlock(self);
 199:Component/modbus/modbus_define.c ****     return -MODBUS_ERROR_NO_ERROR;
 585              		.loc 1 199 12 view .LVU196
 586 0030 0020     		movs	r0, #0
 587              	.LVL56:
 588              	.L40:
 200:Component/modbus/modbus_define.c **** }
 589              		.loc 1 200 1 view .LVU197
 590              		@ sp needed
 591 0032 7047     		bx	lr
 592              	.LVL57:
 593              	.L46:
 165:Component/modbus/modbus_define.c ****     }
 594              		.loc 1 165 16 view .LVU198
 595 0034 0520     		movs	r0, #5
 596              	.LVL58:
 165:Component/modbus/modbus_define.c ****     }
 597              		.loc 1 165 16 view .LVU199
 598 0036 4042     		rsbs	r0, r0, #0
 599 0038 FBE7     		b	.L40
 600              		.cfi_endproc
 601              	.LFE7:
 603 003a C046     		.section	.text.modbus_slave_delete_node,"ax",%progbits
 604              		.align	1
 605              		.p2align 2,,3
 606              		.global	modbus_slave_delete_node
 607              		.syntax unified
 608              		.code	16
 609              		.thumb_func
 611              	modbus_slave_delete_node:
 612              	.LVL59:
 613              	.LFB8:
 201:Component/modbus/modbus_define.c **** 
 202:Component/modbus/modbus_define.c **** /// @brief
 203:Component/modbus/modbus_define.c **** /// @param self
 204:Component/modbus/modbus_define.c **** /// @param id
 205:Component/modbus/modbus_define.c **** /// @return
 206:Component/modbus/modbus_define.c **** int modbus_slave_delete_node(modbus_slave_root_t self, uint8_t id)
 207:Component/modbus/modbus_define.c **** {
 614              		.loc 1 207 1 is_stmt 1 view -0
 615              		.cfi_startproc
 616              		@ args = 0, pretend = 0, frame = 0
 617              		@ frame_needed = 0, uses_anonymous_args = 0
 208:Component/modbus/modbus_define.c ****     modbus_slave_t garbage, pointer;
 618              		.loc 1 208 5 view .LVU201
 209:Component/modbus/modbus_define.c ****     if (!self)
 619              		.loc 1 209 5 view .LVU202
 207:Component/modbus/modbus_define.c ****     modbus_slave_t garbage, pointer;
 620              		.loc 1 207 1 is_stmt 0 view .LVU203
 621 0000 70B5     		push	{r4, r5, r6, lr}
 622              	.LCFI2:
 623              		.cfi_def_cfa_offset 16
 624              		.cfi_offset 4, -16
 625              		.cfi_offset 5, -12
 626              		.cfi_offset 6, -8
 627              		.cfi_offset 14, -4
 207:Component/modbus/modbus_define.c ****     modbus_slave_t garbage, pointer;
ARM GAS  /tmp/ccA0xmY5.s 			page 18


 628              		.loc 1 207 1 view .LVU204
 629 0002 0C00     		movs	r4, r1
 630              		.loc 1 209 8 view .LVU205
 631 0004 0028     		cmp	r0, #0
 632 0006 18D0     		beq	.L60
 210:Component/modbus/modbus_define.c ****     {
 211:Component/modbus/modbus_define.c ****         return -MODBUS_ERROR_NULL_POINTER;
 212:Component/modbus/modbus_define.c ****     }
 213:Component/modbus/modbus_define.c ****     __modbus_slave_root_lock(self);
 633              		.loc 1 213 5 is_stmt 1 view .LVU206
 214:Component/modbus/modbus_define.c ****     pointer = &self->slave;
 634              		.loc 1 214 5 view .LVU207
 635              	.LVL60:
 215:Component/modbus/modbus_define.c ****     if (pointer->id == id)
 636              		.loc 1 215 5 view .LVU208
 637              		.loc 1 215 8 is_stmt 0 view .LVU209
 638 0008 0378     		ldrb	r3, [r0]
 639 000a 8B42     		cmp	r3, r1
 640 000c 03D1     		bne	.L57
 641 000e 0EE0     		b	.L62
 642              	.LVL61:
 643              	.L58:
 216:Component/modbus/modbus_define.c ****     {
 217:Component/modbus/modbus_define.c ****         modbus_slave_node_init(pointer, 0, NULL,NULL);
 218:Component/modbus/modbus_define.c ****     }
 219:Component/modbus/modbus_define.c ****     else
 220:Component/modbus/modbus_define.c ****     {
 221:Component/modbus/modbus_define.c ****         while (pointer->next)
 222:Component/modbus/modbus_define.c ****         {
 223:Component/modbus/modbus_define.c ****             if (pointer->next->id == id)
 644              		.loc 1 223 13 is_stmt 1 view .LVU210
 645              		.loc 1 223 16 is_stmt 0 view .LVU211
 646 0010 0378     		ldrb	r3, [r0]
 647 0012 A342     		cmp	r3, r4
 648 0014 05D0     		beq	.L63
 649              	.LVL62:
 650              	.L57:
 221:Component/modbus/modbus_define.c ****         {
 651              		.loc 1 221 16 is_stmt 1 view .LVU212
 652 0016 0500     		movs	r5, r0
 221:Component/modbus/modbus_define.c ****         {
 653              		.loc 1 221 23 is_stmt 0 view .LVU213
 654 0018 4068     		ldr	r0, [r0, #4]
 655              	.LVL63:
 221:Component/modbus/modbus_define.c ****         {
 656              		.loc 1 221 16 view .LVU214
 657 001a 0028     		cmp	r0, #0
 658 001c F8D1     		bne	.L58
 659              	.LVL64:
 660              	.L59:
 224:Component/modbus/modbus_define.c ****             {
 225:Component/modbus/modbus_define.c ****                 garbage = pointer->next;
 226:Component/modbus/modbus_define.c ****                 pointer->next = pointer->next->next;
 227:Component/modbus/modbus_define.c ****                 free(garbage);
 228:Component/modbus/modbus_define.c ****             }
 229:Component/modbus/modbus_define.c ****             else
 230:Component/modbus/modbus_define.c ****             {
ARM GAS  /tmp/ccA0xmY5.s 			page 19


 231:Component/modbus/modbus_define.c ****                 pointer = pointer->next;
 232:Component/modbus/modbus_define.c ****             }
 233:Component/modbus/modbus_define.c ****         }
 234:Component/modbus/modbus_define.c ****     }
 235:Component/modbus/modbus_define.c ****     __modbus_slave_root_unlock(self);
 236:Component/modbus/modbus_define.c ****     return MODBUS_ERROR_NO_ERROR;
 661              		.loc 1 236 12 view .LVU215
 662 001e 0020     		movs	r0, #0
 663              	.L53:
 237:Component/modbus/modbus_define.c **** }
 664              		.loc 1 237 1 view .LVU216
 665              		@ sp needed
 666              	.LVL65:
 667              		.loc 1 237 1 view .LVU217
 668 0020 70BD     		pop	{r4, r5, r6, pc}
 669              	.LVL66:
 670              	.L63:
 225:Component/modbus/modbus_define.c ****                 pointer->next = pointer->next->next;
 671              		.loc 1 225 17 is_stmt 1 view .LVU218
 226:Component/modbus/modbus_define.c ****                 free(garbage);
 672              		.loc 1 226 17 view .LVU219
 226:Component/modbus/modbus_define.c ****                 free(garbage);
 673              		.loc 1 226 46 is_stmt 0 view .LVU220
 674 0022 4368     		ldr	r3, [r0, #4]
 226:Component/modbus/modbus_define.c ****                 free(garbage);
 675              		.loc 1 226 31 view .LVU221
 676 0024 6B60     		str	r3, [r5, #4]
 227:Component/modbus/modbus_define.c ****             }
 677              		.loc 1 227 17 is_stmt 1 view .LVU222
 678 0026 FFF7FEFF 		bl	free
 679              	.LVL67:
 227:Component/modbus/modbus_define.c ****             }
 680              		.loc 1 227 17 is_stmt 0 view .LVU223
 681 002a 2800     		movs	r0, r5
 682 002c F3E7     		b	.L57
 683              	.LVL68:
 684              	.L62:
 217:Component/modbus/modbus_define.c ****     }
 685              		.loc 1 217 9 is_stmt 1 view .LVU224
 686              	.LBB50:
 687              	.LBI50:
  44:Component/modbus/modbus_define.c **** {
 688              		.loc 1 44 5 view .LVU225
 689              	.LBB51:
  46:Component/modbus/modbus_define.c ****     {
 690              		.loc 1 46 5 view .LVU226
  50:Component/modbus/modbus_define.c ****     slave->next = NULL;
 691              		.loc 1 50 5 view .LVU227
  50:Component/modbus/modbus_define.c ****     slave->next = NULL;
 692              		.loc 1 50 15 is_stmt 0 view .LVU228
 693 002e 0023     		movs	r3, #0
 694 0030 0370     		strb	r3, [r0]
  51:Component/modbus/modbus_define.c ****     slave->on_read = on_read;
 695              		.loc 1 51 5 is_stmt 1 view .LVU229
  51:Component/modbus/modbus_define.c ****     slave->on_read = on_read;
 696              		.loc 1 51 17 is_stmt 0 view .LVU230
 697 0032 4360     		str	r3, [r0, #4]
ARM GAS  /tmp/ccA0xmY5.s 			page 20


  52:Component/modbus/modbus_define.c ****     slave->on_write = on_write;
 698              		.loc 1 52 5 is_stmt 1 view .LVU231
  52:Component/modbus/modbus_define.c ****     slave->on_write = on_write;
 699              		.loc 1 52 20 is_stmt 0 view .LVU232
 700 0034 8360     		str	r3, [r0, #8]
  53:Component/modbus/modbus_define.c ****     return -MODBUS_ERROR_NO_ERROR;
 701              		.loc 1 53 5 is_stmt 1 view .LVU233
  53:Component/modbus/modbus_define.c ****     return -MODBUS_ERROR_NO_ERROR;
 702              		.loc 1 53 21 is_stmt 0 view .LVU234
 703 0036 C360     		str	r3, [r0, #12]
  54:Component/modbus/modbus_define.c **** }
 704              		.loc 1 54 5 is_stmt 1 view .LVU235
 705              	.LVL69:
  54:Component/modbus/modbus_define.c **** }
 706              		.loc 1 54 5 is_stmt 0 view .LVU236
 707 0038 F1E7     		b	.L59
 708              	.LVL70:
 709              	.L60:
  54:Component/modbus/modbus_define.c **** }
 710              		.loc 1 54 5 view .LVU237
 711              	.LBE51:
 712              	.LBE50:
 211:Component/modbus/modbus_define.c ****     }
 713              		.loc 1 211 16 view .LVU238
 714 003a 0520     		movs	r0, #5
 715              	.LVL71:
 211:Component/modbus/modbus_define.c ****     }
 716              		.loc 1 211 16 view .LVU239
 717 003c 4042     		rsbs	r0, r0, #0
 718 003e EFE7     		b	.L53
 719              		.cfi_endproc
 720              	.LFE8:
 722              		.text
 723              	.Letext0:
 724              		.file 2 "/home/ha/toolchain/arm-gnu-toolchain-14.3/arm-none-eabi/include/machine/_default_types.h"
 725              		.file 3 "/home/ha/toolchain/arm-gnu-toolchain-14.3/arm-none-eabi/include/sys/_stdint.h"
 726              		.file 4 "Component/modbus/modbus_define.h"
 727              		.file 5 "/home/ha/toolchain/arm-gnu-toolchain-14.3/arm-none-eabi/include/stdlib.h"
ARM GAS  /tmp/ccA0xmY5.s 			page 21


DEFINED SYMBOLS
                            *ABS*:00000000 modbus_define.c
     /tmp/ccA0xmY5.s:17     .text.modbus_slave_root_init:00000000 $t
     /tmp/ccA0xmY5.s:24     .text.modbus_slave_root_init:00000000 modbus_slave_root_init
     /tmp/ccA0xmY5.s:82     .text.modbus_slave_node_init:00000000 $t
     /tmp/ccA0xmY5.s:89     .text.modbus_slave_node_init:00000000 modbus_slave_node_init
     /tmp/ccA0xmY5.s:136    .text.modbus_slave_node_create:00000000 $t
     /tmp/ccA0xmY5.s:143    .text.modbus_slave_node_create:00000000 modbus_slave_node_create
     /tmp/ccA0xmY5.s:351    .text.modbus_slave_add_node:00000000 $t
     /tmp/ccA0xmY5.s:358    .text.modbus_slave_add_node:00000000 modbus_slave_add_node
     /tmp/ccA0xmY5.s:443    .text.modbus_slave_find_node:00000000 $t
     /tmp/ccA0xmY5.s:450    .text.modbus_slave_find_node:00000000 modbus_slave_find_node
     /tmp/ccA0xmY5.s:497    .text.modbus_slave_remove_node:00000000 $t
     /tmp/ccA0xmY5.s:504    .text.modbus_slave_remove_node:00000000 modbus_slave_remove_node
     /tmp/ccA0xmY5.s:604    .text.modbus_slave_delete_node:00000000 $t
     /tmp/ccA0xmY5.s:611    .text.modbus_slave_delete_node:00000000 modbus_slave_delete_node

UNDEFINED SYMBOLS
malloc
free
