ARM GAS  /tmp/ccsuRgce.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_rtu_master.c"
  12              		.text
  13              	.Ltext0:
  14              		.cfi_sections	.debug_frame
  15              		.file 1 "Component/modbus/modbus_rtu_master.c"
  16              		.section	.text.modbus_rtu_master_init,"ax",%progbits
  17              		.align	1
  18              		.p2align 2,,3
  19              		.global	modbus_rtu_master_init
  20              		.syntax unified
  21              		.code	16
  22              		.thumb_func
  24              	modbus_rtu_master_init:
  25              	.LVL0:
  26              	.LFB6:
   1:Component/modbus/modbus_rtu_master.c **** //
   2:Component/modbus/modbus_rtu_master.c **** // Created by user on 2024/7/3.
   3:Component/modbus/modbus_rtu_master.c **** //
   4:Component/modbus/modbus_rtu_master.c **** #include <stdlib.h>
   5:Component/modbus/modbus_rtu_master.c **** #include <string.h>
   6:Component/modbus/modbus_rtu_master.c **** #include <stdbool.h>
   7:Component/modbus/modbus_rtu_master.c **** #include "modbus_rtu_master.h"
   8:Component/modbus/modbus_rtu_master.c **** 
   9:Component/modbus/modbus_rtu_master.c **** #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
  10:Component/modbus/modbus_rtu_master.c **** #define BE16(a) __builtin_bswap16(a)
  11:Component/modbus/modbus_rtu_master.c **** #define BE32(a) __builtin_bswap32(a)
  12:Component/modbus/modbus_rtu_master.c **** #define BE64(a) __builtin_bswap64(a)
  13:Component/modbus/modbus_rtu_master.c **** #define LE16(a) (a)
  14:Component/modbus/modbus_rtu_master.c **** #define LE32(a) (a)
  15:Component/modbus/modbus_rtu_master.c **** #define LE64(a) (a)
  16:Component/modbus/modbus_rtu_master.c **** #else
  17:Component/modbus/modbus_rtu_master.c **** #define BE16(a) (a)
  18:Component/modbus/modbus_rtu_master.c **** #define BE32(a) (a)
  19:Component/modbus/modbus_rtu_master.c **** #define BE64(a) (a)
  20:Component/modbus/modbus_rtu_master.c **** #define LE16(a) __builtin_bswap16(a)
  21:Component/modbus/modbus_rtu_master.c **** #define LE32(a) __builtin_bswap32(a)
  22:Component/modbus/modbus_rtu_master.c **** #define LE64(a) __builtin_bswap64(a)
  23:Component/modbus/modbus_rtu_master.c **** #endif
  24:Component/modbus/modbus_rtu_master.c **** 
  25:Component/modbus/modbus_rtu_master.c **** static int __modbus_rtu_master_lock(modbus_rtu_master_t self);
  26:Component/modbus/modbus_rtu_master.c **** 
  27:Component/modbus/modbus_rtu_master.c **** static int __modbus_rtu_master_unlock(modbus_rtu_master_t self);
  28:Component/modbus/modbus_rtu_master.c **** 
  29:Component/modbus/modbus_rtu_master.c **** static int __modbus_rtu_master_on_send(modbus_rtu_master_t self, const uint32_t len);
  30:Component/modbus/modbus_rtu_master.c **** 
  31:Component/modbus/modbus_rtu_master.c **** static int __modbus_rtu_master_on_message(modbus_rtu_master_t self, enum MODBUS_ERROR error);
  32:Component/modbus/modbus_rtu_master.c **** 
ARM GAS  /tmp/ccsuRgce.s 			page 2


  33:Component/modbus/modbus_rtu_master.c **** static int __modbus_rtu_master_requst(modbus_rtu_master_t self);
  34:Component/modbus/modbus_rtu_master.c **** 
  35:Component/modbus/modbus_rtu_master.c **** static int __modbus_rtu_master_analysis(modbus_rtu_master_t self);
  36:Component/modbus/modbus_rtu_master.c **** 
  37:Component/modbus/modbus_rtu_master.c **** //==============================Private==============================//
  38:Component/modbus/modbus_rtu_master.c **** 
  39:Component/modbus/modbus_rtu_master.c **** /// @brief
  40:Component/modbus/modbus_rtu_master.c **** /// @param self
  41:Component/modbus/modbus_rtu_master.c **** static int __modbus_rtu_master_lock(modbus_rtu_master_t self)
  42:Component/modbus/modbus_rtu_master.c **** {
  43:Component/modbus/modbus_rtu_master.c ****     ;
  44:Component/modbus/modbus_rtu_master.c ****     return -MODBUS_ERROR_NO_ERROR;
  45:Component/modbus/modbus_rtu_master.c **** }
  46:Component/modbus/modbus_rtu_master.c **** 
  47:Component/modbus/modbus_rtu_master.c **** /// @brief
  48:Component/modbus/modbus_rtu_master.c **** /// @param self
  49:Component/modbus/modbus_rtu_master.c **** static int __modbus_rtu_master_unlock(modbus_rtu_master_t self)
  50:Component/modbus/modbus_rtu_master.c **** {
  51:Component/modbus/modbus_rtu_master.c ****     ;
  52:Component/modbus/modbus_rtu_master.c ****     return -MODBUS_ERROR_NO_ERROR;
  53:Component/modbus/modbus_rtu_master.c **** }
  54:Component/modbus/modbus_rtu_master.c **** 
  55:Component/modbus/modbus_rtu_master.c **** /// @brief
  56:Component/modbus/modbus_rtu_master.c **** /// @param self
  57:Component/modbus/modbus_rtu_master.c **** /// @param len
  58:Component/modbus/modbus_rtu_master.c **** /// @return
  59:Component/modbus/modbus_rtu_master.c **** static int __modbus_rtu_master_on_send(modbus_rtu_master_t self, const uint32_t len)
  60:Component/modbus/modbus_rtu_master.c **** {
  61:Component/modbus/modbus_rtu_master.c ****     if (self->on_send)
  62:Component/modbus/modbus_rtu_master.c ****     {
  63:Component/modbus/modbus_rtu_master.c ****         self->on_send(self->buffer.bytes, len);
  64:Component/modbus/modbus_rtu_master.c ****         return -MODBUS_ERROR_NO_ERROR;
  65:Component/modbus/modbus_rtu_master.c ****     }
  66:Component/modbus/modbus_rtu_master.c ****     else
  67:Component/modbus/modbus_rtu_master.c ****     {
  68:Component/modbus/modbus_rtu_master.c ****         return -MODBUS_ERROR_NULL_POINTER;
  69:Component/modbus/modbus_rtu_master.c ****     }
  70:Component/modbus/modbus_rtu_master.c **** }
  71:Component/modbus/modbus_rtu_master.c **** 
  72:Component/modbus/modbus_rtu_master.c **** /// @brief
  73:Component/modbus/modbus_rtu_master.c **** /// @param self
  74:Component/modbus/modbus_rtu_master.c **** /// @param len
  75:Component/modbus/modbus_rtu_master.c **** /// @return
  76:Component/modbus/modbus_rtu_master.c **** static int __modbus_rtu_master_on_message(modbus_rtu_master_t self, enum MODBUS_ERROR error)
  77:Component/modbus/modbus_rtu_master.c **** {
  78:Component/modbus/modbus_rtu_master.c ****     if (self->on_completion)
  79:Component/modbus/modbus_rtu_master.c ****     {
  80:Component/modbus/modbus_rtu_master.c ****         self->on_completion(self, error);
  81:Component/modbus/modbus_rtu_master.c ****         return -MODBUS_ERROR_NO_ERROR;
  82:Component/modbus/modbus_rtu_master.c ****     }
  83:Component/modbus/modbus_rtu_master.c ****     else
  84:Component/modbus/modbus_rtu_master.c ****     {
  85:Component/modbus/modbus_rtu_master.c ****         return -MODBUS_ERROR_NULL_POINTER;
  86:Component/modbus/modbus_rtu_master.c ****     }
  87:Component/modbus/modbus_rtu_master.c **** }
  88:Component/modbus/modbus_rtu_master.c **** 
  89:Component/modbus/modbus_rtu_master.c **** /// @brief
ARM GAS  /tmp/ccsuRgce.s 			page 3


  90:Component/modbus/modbus_rtu_master.c **** /// @param self
  91:Component/modbus/modbus_rtu_master.c **** /// @return
  92:Component/modbus/modbus_rtu_master.c **** static int __modbus_rtu_master_requst(modbus_rtu_master_t self)
  93:Component/modbus/modbus_rtu_master.c **** {
  94:Component/modbus/modbus_rtu_master.c ****     uint32_t len;
  95:Component/modbus/modbus_rtu_master.c ****     self->buffer.head.id = self->execute->id;
  96:Component/modbus/modbus_rtu_master.c ****     self->buffer.head.comm = self->execute->comm;
  97:Component/modbus/modbus_rtu_master.c ****     self->buffer.head.addr = BE16(self->execute->addr);
  98:Component/modbus/modbus_rtu_master.c ****     switch (self->execute->comm)
  99:Component/modbus/modbus_rtu_master.c ****     {
 100:Component/modbus/modbus_rtu_master.c ****     case MODBUS_NONE_COMM:
 101:Component/modbus/modbus_rtu_master.c ****         break;
 102:Component/modbus/modbus_rtu_master.c ****     case MODBUS_READ_COIL:
 103:Component/modbus/modbus_rtu_master.c ****     case MODBUS_READ_REGS:
 104:Component/modbus/modbus_rtu_master.c ****     case MODBUS_READ_INPUT_COIL:
 105:Component/modbus/modbus_rtu_master.c ****     case MODBUS_READ_INPUT_REGS:
 106:Component/modbus/modbus_rtu_master.c ****         self->buffer.read_req.len = BE16(self->execute->len);
 107:Component/modbus/modbus_rtu_master.c ****         self->buffer.read_req.crc = BE16(modbus_crc(&self->buffer,
 108:Component/modbus/modbus_rtu_master.c ****                                                       sizeof(self->buffer.read_req) - 2));
 109:Component/modbus/modbus_rtu_master.c ****         __modbus_rtu_master_on_send(self, sizeof(self->buffer.read_req));
 110:Component/modbus/modbus_rtu_master.c ****         break;
 111:Component/modbus/modbus_rtu_master.c ****     case MODBUS_WRITE_SINGLE_REG:
 112:Component/modbus/modbus_rtu_master.c ****         self->buffer.write_sin_req.data = BE16(*self->execute->data);
 113:Component/modbus/modbus_rtu_master.c ****         self->buffer.write_sin_req.crc = BE16(modbus_crc(&self->buffer,
 114:Component/modbus/modbus_rtu_master.c ****                                                            sizeof(self->buffer.write_sin_req) - 2))
 115:Component/modbus/modbus_rtu_master.c ****         __modbus_rtu_master_on_send(self, sizeof(self->buffer.write_sin_req));
 116:Component/modbus/modbus_rtu_master.c ****         break;
 117:Component/modbus/modbus_rtu_master.c ****     case MODBUS_WRITE_SINGLE_COIL:
 118:Component/modbus/modbus_rtu_master.c ****         *self->execute->data ? self->buffer.write_sin_req.data = BE16(0xff00) : BE16(0x0000);
 119:Component/modbus/modbus_rtu_master.c ****         self->buffer.write_sin_req.crc = BE16(modbus_crc(&self->buffer,
 120:Component/modbus/modbus_rtu_master.c ****                                                            sizeof(self->buffer.write_sin_req) - 2))
 121:Component/modbus/modbus_rtu_master.c ****         __modbus_rtu_master_on_send(self, sizeof(self->buffer.write_sin_req));
 122:Component/modbus/modbus_rtu_master.c ****         break;
 123:Component/modbus/modbus_rtu_master.c ****     case MODBUS_WRITE_MUL_COILS:
 124:Component/modbus/modbus_rtu_master.c ****         self->buffer.write_mul_coil_req.len = BE16(self->execute->len);
 125:Component/modbus/modbus_rtu_master.c ****         self->buffer.write_mul_coil_req.cnt = (self->execute->len >> 3) + (bool)(self->execute->len
 126:Component/modbus/modbus_rtu_master.c ****         for (uint32_t loop = 0; loop < self->execute->len; loop++)
 127:Component/modbus/modbus_rtu_master.c ****         {
 128:Component/modbus/modbus_rtu_master.c ****             if (!(loop & 0x7))
 129:Component/modbus/modbus_rtu_master.c ****             {
 130:Component/modbus/modbus_rtu_master.c ****                 self->buffer.write_mul_coil_req.data[loop >> 3] = 0;
 131:Component/modbus/modbus_rtu_master.c ****             }
 132:Component/modbus/modbus_rtu_master.c ****             self->buffer.write_mul_coil_req.data[loop >> 3] |=
 133:Component/modbus/modbus_rtu_master.c ****                 ((bool)self->execute->data[loop]) << (loop & 0x7);
 134:Component/modbus/modbus_rtu_master.c ****         }
 135:Component/modbus/modbus_rtu_master.c ****         len = self->buffer.write_mul_coil_req.cnt + sizeof(self->buffer.write_mul_coil_req);
 136:Component/modbus/modbus_rtu_master.c ****         const uint16_t crc = modbus_crc(&self->buffer, len);
 137:Component/modbus/modbus_rtu_master.c ****         self->buffer.bytes[len++] = (crc >> 8) & 0xFF;
 138:Component/modbus/modbus_rtu_master.c ****         self->buffer.bytes[len++] = crc & 0xFF;
 139:Component/modbus/modbus_rtu_master.c ****         __modbus_rtu_master_on_send(self, len);
 140:Component/modbus/modbus_rtu_master.c ****         break;
 141:Component/modbus/modbus_rtu_master.c **** 
 142:Component/modbus/modbus_rtu_master.c ****     case MODBUS_WRITE_MUL_REGS:
 143:Component/modbus/modbus_rtu_master.c ****         self->buffer.write_mul_regs_req.len = BE16(self->execute->len);
 144:Component/modbus/modbus_rtu_master.c ****         self->buffer.write_mul_regs_req.cnt = self->execute->len << 1;
 145:Component/modbus/modbus_rtu_master.c ****         len = sizeof(self->buffer.write_mul_regs_req) + self->buffer.write_mul_regs_req.cnt;
 146:Component/modbus/modbus_rtu_master.c ****         for (uint32_t loop = 0; loop < (self->execute->len); loop++)
ARM GAS  /tmp/ccsuRgce.s 			page 4


 147:Component/modbus/modbus_rtu_master.c ****         {
 148:Component/modbus/modbus_rtu_master.c ****             self->buffer.write_mul_regs_req.data[loop] = self->execute->data[loop];
 149:Component/modbus/modbus_rtu_master.c ****         }
 150:Component/modbus/modbus_rtu_master.c ****         self->buffer.write_mul_regs_req.data[self->execute->len] = BE16(modbus_crc(&self->buffer, l
 151:Component/modbus/modbus_rtu_master.c ****         __modbus_rtu_master_on_send(self, len + 2);
 152:Component/modbus/modbus_rtu_master.c ****         break;
 153:Component/modbus/modbus_rtu_master.c ****     case MODBUS_READ_WRITE_REGS:
 154:Component/modbus/modbus_rtu_master.c ****         break;
 155:Component/modbus/modbus_rtu_master.c ****     default:
 156:Component/modbus/modbus_rtu_master.c ****         break;
 157:Component/modbus/modbus_rtu_master.c ****     }
 158:Component/modbus/modbus_rtu_master.c ****     return -MODBUS_ERROR_NO_ERROR;
 159:Component/modbus/modbus_rtu_master.c **** }
 160:Component/modbus/modbus_rtu_master.c **** 
 161:Component/modbus/modbus_rtu_master.c **** ///
 162:Component/modbus/modbus_rtu_master.c **** /// @param self
 163:Component/modbus/modbus_rtu_master.c **** /// @return
 164:Component/modbus/modbus_rtu_master.c **** static int __modbus_rtu_master_analysis(modbus_rtu_master_t self)
 165:Component/modbus/modbus_rtu_master.c **** {
 166:Component/modbus/modbus_rtu_master.c ****     uint8_t count;
 167:Component/modbus/modbus_rtu_master.c ****     uint16_t crc = 0;
 168:Component/modbus/modbus_rtu_master.c ****     crc = self->buffer.bytes[self->length - 1];
 169:Component/modbus/modbus_rtu_master.c ****     crc |= (self->buffer.bytes[self->length - 2] << 8);
 170:Component/modbus/modbus_rtu_master.c ****     if (self->execute->id != self->buffer.head.id)
 171:Component/modbus/modbus_rtu_master.c ****     {
 172:Component/modbus/modbus_rtu_master.c ****         return -MODBUS_ERROR_INVALID_DATA;
 173:Component/modbus/modbus_rtu_master.c ****     }
 174:Component/modbus/modbus_rtu_master.c ****     if (crc != modbus_crc(&self->buffer.bytes, self->length - 2))
 175:Component/modbus/modbus_rtu_master.c ****     {
 176:Component/modbus/modbus_rtu_master.c ****         return -MODBUS_ERROR_INVALID_DATA;
 177:Component/modbus/modbus_rtu_master.c ****     }
 178:Component/modbus/modbus_rtu_master.c ****     switch (self->buffer.head.comm)
 179:Component/modbus/modbus_rtu_master.c ****     {
 180:Component/modbus/modbus_rtu_master.c ****     case MODBUS_NONE_COMM:
 181:Component/modbus/modbus_rtu_master.c ****         break;
 182:Component/modbus/modbus_rtu_master.c ****     case MODBUS_READ_COIL:
 183:Component/modbus/modbus_rtu_master.c ****     case MODBUS_READ_INPUT_COIL:
 184:Component/modbus/modbus_rtu_master.c ****         count = (self->execute->len >> 3) + (bool)(self->execute->len & 0x7);
 185:Component/modbus/modbus_rtu_master.c ****         if (count != self->buffer.read_coil_res.cnt)
 186:Component/modbus/modbus_rtu_master.c ****         {
 187:Component/modbus/modbus_rtu_master.c ****             return -MODBUS_ERROR_INVALID_DATA;
 188:Component/modbus/modbus_rtu_master.c ****         }
 189:Component/modbus/modbus_rtu_master.c ****         for (uint32_t loop = 0; loop < self->execute->len; loop++)
 190:Component/modbus/modbus_rtu_master.c ****         {
 191:Component/modbus/modbus_rtu_master.c ****             self->execute->data[loop] = (self->buffer.read_coil_res.data[loop >> 3] >> (loop & 0x7)
 192:Component/modbus/modbus_rtu_master.c ****         }
 193:Component/modbus/modbus_rtu_master.c ****         break;
 194:Component/modbus/modbus_rtu_master.c ****     case MODBUS_READ_REGS:
 195:Component/modbus/modbus_rtu_master.c ****     case MODBUS_READ_INPUT_REGS:
 196:Component/modbus/modbus_rtu_master.c ****         count = (self->execute->len << 1);
 197:Component/modbus/modbus_rtu_master.c ****         if (count != self->buffer.read_regs_res.cnt)
 198:Component/modbus/modbus_rtu_master.c ****         {
 199:Component/modbus/modbus_rtu_master.c ****             return -MODBUS_ERROR_INVALID_DATA;
 200:Component/modbus/modbus_rtu_master.c ****         }
 201:Component/modbus/modbus_rtu_master.c ****         for (uint32_t loop = 0; loop < self->execute->len; loop++)
 202:Component/modbus/modbus_rtu_master.c ****         {
 203:Component/modbus/modbus_rtu_master.c ****             self->execute->data[loop] = BE16(self->buffer.read_regs_res.data[loop]);
ARM GAS  /tmp/ccsuRgce.s 			page 5


 204:Component/modbus/modbus_rtu_master.c ****         }
 205:Component/modbus/modbus_rtu_master.c ****         break;
 206:Component/modbus/modbus_rtu_master.c ****     case MODBUS_WRITE_MUL_REGS:
 207:Component/modbus/modbus_rtu_master.c ****     case MODBUS_WRITE_MUL_COILS:
 208:Component/modbus/modbus_rtu_master.c ****     case MODBUS_WRITE_SINGLE_REG:
 209:Component/modbus/modbus_rtu_master.c ****     case MODBUS_WRITE_SINGLE_COIL:
 210:Component/modbus/modbus_rtu_master.c ****         break;
 211:Component/modbus/modbus_rtu_master.c ****     case MODBUS_READ_WRITE_REGS:
 212:Component/modbus/modbus_rtu_master.c ****         count = self->execute->len << 1;
 213:Component/modbus/modbus_rtu_master.c ****         if (count != self->buffer.read_regs_res.cnt)
 214:Component/modbus/modbus_rtu_master.c ****         {
 215:Component/modbus/modbus_rtu_master.c ****             return -MODBUS_ERROR_INVALID_DATA;
 216:Component/modbus/modbus_rtu_master.c ****         }
 217:Component/modbus/modbus_rtu_master.c ****         for (uint32_t loop = 0; loop < self->execute->len; loop++)
 218:Component/modbus/modbus_rtu_master.c ****         {
 219:Component/modbus/modbus_rtu_master.c ****             self->execute->data[loop] = BE16(self->buffer.read_regs_res.data[loop]);
 220:Component/modbus/modbus_rtu_master.c ****         }
 221:Component/modbus/modbus_rtu_master.c ****         break;
 222:Component/modbus/modbus_rtu_master.c ****     case MODBUS_READ_COIL + 0x80:
 223:Component/modbus/modbus_rtu_master.c ****     case MODBUS_WRITE_MUL_REGS + 0x80:
 224:Component/modbus/modbus_rtu_master.c ****     case MODBUS_WRITE_MUL_COILS + 0x80:
 225:Component/modbus/modbus_rtu_master.c ****     case MODBUS_READ_WRITE_REGS + 0x80:
 226:Component/modbus/modbus_rtu_master.c ****     case MODBUS_READ_REGS + 0x80:
 227:Component/modbus/modbus_rtu_master.c ****     case MODBUS_READ_INPUT_COIL + 0x80:
 228:Component/modbus/modbus_rtu_master.c ****     case MODBUS_READ_INPUT_REGS + 0x80:
 229:Component/modbus/modbus_rtu_master.c ****     case MODBUS_WRITE_SINGLE_REG + 0x80:
 230:Component/modbus/modbus_rtu_master.c ****     case MODBUS_WRITE_SINGLE_COIL + 0x80:
 231:Component/modbus/modbus_rtu_master.c ****         return self->buffer.error_res.err;
 232:Component/modbus/modbus_rtu_master.c ****     default:
 233:Component/modbus/modbus_rtu_master.c ****         break;
 234:Component/modbus/modbus_rtu_master.c ****     }
 235:Component/modbus/modbus_rtu_master.c ****     return -MODBUS_ERROR_NO_ERROR;
 236:Component/modbus/modbus_rtu_master.c **** }
 237:Component/modbus/modbus_rtu_master.c **** 
 238:Component/modbus/modbus_rtu_master.c **** //==============================Public===============================//
 239:Component/modbus/modbus_rtu_master.c **** 
 240:Component/modbus/modbus_rtu_master.c **** ///
 241:Component/modbus/modbus_rtu_master.c **** /// @param self
 242:Component/modbus/modbus_rtu_master.c **** /// @param timeout
 243:Component/modbus/modbus_rtu_master.c **** int modbus_rtu_master_init(const modbus_rtu_master_t self, const uint32_t interval)
 244:Component/modbus/modbus_rtu_master.c **** {
  27              		.loc 1 244 1 view -0
  28              		.cfi_startproc
  29              		@ args = 0, pretend = 0, frame = 0
  30              		@ frame_needed = 0, uses_anonymous_args = 0
 245:Component/modbus/modbus_rtu_master.c ****     if (!self)
  31              		.loc 1 245 5 view .LVU1
 244:Component/modbus/modbus_rtu_master.c ****     if (!self)
  32              		.loc 1 244 1 is_stmt 0 view .LVU2
  33 0000 70B5     		push	{r4, r5, r6, lr}
  34              	.LCFI0:
  35              		.cfi_def_cfa_offset 16
  36              		.cfi_offset 4, -16
  37              		.cfi_offset 5, -12
  38              		.cfi_offset 6, -8
  39              		.cfi_offset 14, -4
 244:Component/modbus/modbus_rtu_master.c ****     if (!self)
ARM GAS  /tmp/ccsuRgce.s 			page 6


  40              		.loc 1 244 1 view .LVU3
  41 0002 0400     		movs	r4, r0
  42 0004 0D00     		movs	r5, r1
  43              		.loc 1 245 8 view .LVU4
  44 0006 0028     		cmp	r0, #0
  45 0008 07D0     		beq	.L3
 246:Component/modbus/modbus_rtu_master.c ****     {
 247:Component/modbus/modbus_rtu_master.c ****         return -MODBUS_ERROR_NULL_POINTER;
 248:Component/modbus/modbus_rtu_master.c ****     }
 249:Component/modbus/modbus_rtu_master.c ****     memset(self, 0, sizeof(*self));
  46              		.loc 1 249 5 is_stmt 1 view .LVU5
  47 000a 9222     		movs	r2, #146
  48 000c 0021     		movs	r1, #0
  49              	.LVL1:
  50              		.loc 1 249 5 is_stmt 0 view .LVU6
  51 000e 5200     		lsls	r2, r2, #1
  52 0010 FFF7FEFF 		bl	memset
  53              	.LVL2:
 250:Component/modbus/modbus_rtu_master.c ****     self->timeout = 0;
  54              		.loc 1 250 5 is_stmt 1 view .LVU7
 251:Component/modbus/modbus_rtu_master.c ****     self->interval = 0;
  55              		.loc 1 251 5 view .LVU8
 252:Component/modbus/modbus_rtu_master.c ****     self->reset_interval = interval;
  56              		.loc 1 252 5 view .LVU9
 253:Component/modbus/modbus_rtu_master.c ****     return -MODBUS_ERROR_NO_ERROR;
  57              		.loc 1 253 12 is_stmt 0 view .LVU10
  58 0014 0020     		movs	r0, #0
 252:Component/modbus/modbus_rtu_master.c ****     self->reset_interval = interval;
  59              		.loc 1 252 26 view .LVU11
  60 0016 2561     		str	r5, [r4, #16]
  61              		.loc 1 253 5 is_stmt 1 view .LVU12
  62              	.L1:
 254:Component/modbus/modbus_rtu_master.c **** }
  63              		.loc 1 254 1 is_stmt 0 view .LVU13
  64              		@ sp needed
  65              	.LVL3:
  66              	.LVL4:
  67              		.loc 1 254 1 view .LVU14
  68 0018 70BD     		pop	{r4, r5, r6, pc}
  69              	.LVL5:
  70              	.L3:
 247:Component/modbus/modbus_rtu_master.c ****     }
  71              		.loc 1 247 16 view .LVU15
  72 001a 0520     		movs	r0, #5
  73              	.LVL6:
 247:Component/modbus/modbus_rtu_master.c ****     }
  74              		.loc 1 247 16 view .LVU16
  75 001c 4042     		rsbs	r0, r0, #0
  76 001e FBE7     		b	.L1
  77              		.cfi_endproc
  78              	.LFE6:
  80              		.section	.text.modbus_rtu_master_create,"ax",%progbits
  81              		.align	1
  82              		.p2align 2,,3
  83              		.global	modbus_rtu_master_create
  84              		.syntax unified
  85              		.code	16
ARM GAS  /tmp/ccsuRgce.s 			page 7


  86              		.thumb_func
  88              	modbus_rtu_master_create:
  89              	.LVL7:
  90              	.LFB7:
 255:Component/modbus/modbus_rtu_master.c **** 
 256:Component/modbus/modbus_rtu_master.c **** ///
 257:Component/modbus/modbus_rtu_master.c **** /// @param interval
 258:Component/modbus/modbus_rtu_master.c **** /// @return
 259:Component/modbus/modbus_rtu_master.c **** modbus_rtu_master_t modbus_rtu_master_create(const uint32_t interval)
 260:Component/modbus/modbus_rtu_master.c **** {
  91              		.loc 1 260 1 is_stmt 1 view -0
  92              		.cfi_startproc
  93              		@ args = 0, pretend = 0, frame = 0
  94              		@ frame_needed = 0, uses_anonymous_args = 0
 261:Component/modbus/modbus_rtu_master.c ****     const modbus_rtu_master_t self = (modbus_rtu_master_t)malloc(sizeof(struct modbus_rtu_master));
  95              		.loc 1 261 5 view .LVU18
 260:Component/modbus/modbus_rtu_master.c ****     const modbus_rtu_master_t self = (modbus_rtu_master_t)malloc(sizeof(struct modbus_rtu_master));
  96              		.loc 1 260 1 is_stmt 0 view .LVU19
  97 0000 10B5     		push	{r4, lr}
  98              	.LCFI1:
  99              		.cfi_def_cfa_offset 8
 100              		.cfi_offset 4, -8
 101              		.cfi_offset 14, -4
 260:Component/modbus/modbus_rtu_master.c ****     const modbus_rtu_master_t self = (modbus_rtu_master_t)malloc(sizeof(struct modbus_rtu_master));
 102              		.loc 1 260 1 view .LVU20
 103 0002 0400     		movs	r4, r0
 104              		.loc 1 261 59 view .LVU21
 105 0004 9220     		movs	r0, #146
 106              	.LVL8:
 107              		.loc 1 261 59 view .LVU22
 108 0006 0121     		movs	r1, #1
 109 0008 4000     		lsls	r0, r0, #1
 110 000a FFF7FEFF 		bl	calloc
 111              	.LVL9:
 262:Component/modbus/modbus_rtu_master.c ****     if (self)
 112              		.loc 1 262 5 is_stmt 1 view .LVU23
 113              		.loc 1 262 8 is_stmt 0 view .LVU24
 114 000e 0028     		cmp	r0, #0
 115 0010 00D0     		beq	.L5
 263:Component/modbus/modbus_rtu_master.c ****     {
 264:Component/modbus/modbus_rtu_master.c ****         if (!modbus_rtu_master_init(self, interval))
 116              		.loc 1 264 9 is_stmt 1 view .LVU25
 117              	.LVL10:
 118              	.LBB55:
 119              	.LBI55:
 243:Component/modbus/modbus_rtu_master.c **** {
 120              		.loc 1 243 5 view .LVU26
 121              	.LBB56:
 245:Component/modbus/modbus_rtu_master.c ****     {
 122              		.loc 1 245 5 view .LVU27
 249:Component/modbus/modbus_rtu_master.c ****     self->timeout = 0;
 123              		.loc 1 249 5 view .LVU28
 250:Component/modbus/modbus_rtu_master.c ****     self->interval = 0;
 124              		.loc 1 250 5 view .LVU29
 251:Component/modbus/modbus_rtu_master.c ****     self->reset_interval = interval;
 125              		.loc 1 251 5 view .LVU30
 252:Component/modbus/modbus_rtu_master.c ****     return -MODBUS_ERROR_NO_ERROR;
ARM GAS  /tmp/ccsuRgce.s 			page 8


 126              		.loc 1 252 5 view .LVU31
 252:Component/modbus/modbus_rtu_master.c ****     return -MODBUS_ERROR_NO_ERROR;
 127              		.loc 1 252 26 is_stmt 0 view .LVU32
 128 0012 0461     		str	r4, [r0, #16]
 253:Component/modbus/modbus_rtu_master.c **** }
 129              		.loc 1 253 5 is_stmt 1 view .LVU33
 130              	.LVL11:
 253:Component/modbus/modbus_rtu_master.c **** }
 131              		.loc 1 253 5 is_stmt 0 view .LVU34
 132              	.LBE56:
 133              	.LBE55:
 265:Component/modbus/modbus_rtu_master.c ****         {
 266:Component/modbus/modbus_rtu_master.c ****             return self;
 134              		.loc 1 266 13 is_stmt 1 view .LVU35
 135              	.L5:
 267:Component/modbus/modbus_rtu_master.c ****         }
 268:Component/modbus/modbus_rtu_master.c ****         free(self);
 269:Component/modbus/modbus_rtu_master.c ****     }
 270:Component/modbus/modbus_rtu_master.c ****     return NULL;
 271:Component/modbus/modbus_rtu_master.c **** }
 136              		.loc 1 271 1 is_stmt 0 view .LVU36
 137              		@ sp needed
 138              	.LVL12:
 139              		.loc 1 271 1 view .LVU37
 140 0014 10BD     		pop	{r4, pc}
 141              		.cfi_endproc
 142              	.LFE7:
 144 0016 C046     		.section	.text.modbus_rtu_master_stop,"ax",%progbits
 145              		.align	1
 146              		.p2align 2,,3
 147              		.global	modbus_rtu_master_stop
 148              		.syntax unified
 149              		.code	16
 150              		.thumb_func
 152              	modbus_rtu_master_stop:
 153              	.LVL13:
 154              	.LFB8:
 272:Component/modbus/modbus_rtu_master.c **** 
 273:Component/modbus/modbus_rtu_master.c **** ///
 274:Component/modbus/modbus_rtu_master.c **** /// @param self
 275:Component/modbus/modbus_rtu_master.c **** /// @return
 276:Component/modbus/modbus_rtu_master.c **** int modbus_rtu_master_stop(modbus_rtu_master_t self)
 277:Component/modbus/modbus_rtu_master.c **** {
 155              		.loc 1 277 1 is_stmt 1 view -0
 156              		.cfi_startproc
 157              		@ args = 0, pretend = 0, frame = 0
 158              		@ frame_needed = 0, uses_anonymous_args = 0
 278:Component/modbus/modbus_rtu_master.c ****     return modbus_rtu_master_init(self, 0);
 159              		.loc 1 278 5 view .LVU39
 160              	.LBB57:
 161              	.LBI57:
 243:Component/modbus/modbus_rtu_master.c **** {
 162              		.loc 1 243 5 view .LVU40
 163              	.LBB58:
 245:Component/modbus/modbus_rtu_master.c ****     {
 164              		.loc 1 245 5 view .LVU41
 165              	.LBE58:
ARM GAS  /tmp/ccsuRgce.s 			page 9


 166              	.LBE57:
 277:Component/modbus/modbus_rtu_master.c ****     return modbus_rtu_master_init(self, 0);
 167              		.loc 1 277 1 is_stmt 0 view .LVU42
 168 0000 10B5     		push	{r4, lr}
 169              	.LCFI2:
 170              		.cfi_def_cfa_offset 8
 171              		.cfi_offset 4, -8
 172              		.cfi_offset 14, -4
 173              	.LBB61:
 174              	.LBB59:
 245:Component/modbus/modbus_rtu_master.c ****     {
 175              		.loc 1 245 8 view .LVU43
 176 0002 0028     		cmp	r0, #0
 177 0004 06D0     		beq	.L12
 249:Component/modbus/modbus_rtu_master.c ****     self->timeout = 0;
 178              		.loc 1 249 5 is_stmt 1 view .LVU44
 179 0006 9222     		movs	r2, #146
 180 0008 0021     		movs	r1, #0
 181 000a 5200     		lsls	r2, r2, #1
 182 000c FFF7FEFF 		bl	memset
 183              	.LVL14:
 250:Component/modbus/modbus_rtu_master.c ****     self->interval = 0;
 184              		.loc 1 250 5 view .LVU45
 251:Component/modbus/modbus_rtu_master.c ****     self->reset_interval = interval;
 185              		.loc 1 251 5 view .LVU46
 252:Component/modbus/modbus_rtu_master.c ****     return -MODBUS_ERROR_NO_ERROR;
 186              		.loc 1 252 5 view .LVU47
 253:Component/modbus/modbus_rtu_master.c **** }
 187              		.loc 1 253 5 view .LVU48
 253:Component/modbus/modbus_rtu_master.c **** }
 188              		.loc 1 253 12 is_stmt 0 view .LVU49
 189 0010 0020     		movs	r0, #0
 190              	.LVL15:
 191              	.L10:
 253:Component/modbus/modbus_rtu_master.c **** }
 192              		.loc 1 253 12 view .LVU50
 193              	.LBE59:
 194              	.LBE61:
 279:Component/modbus/modbus_rtu_master.c **** }
 195              		.loc 1 279 1 view .LVU51
 196              		@ sp needed
 197 0012 10BD     		pop	{r4, pc}
 198              	.LVL16:
 199              	.L12:
 200              	.LBB62:
 201              	.LBB60:
 247:Component/modbus/modbus_rtu_master.c ****     }
 202              		.loc 1 247 16 view .LVU52
 203 0014 0520     		movs	r0, #5
 204              	.LVL17:
 247:Component/modbus/modbus_rtu_master.c ****     }
 205              		.loc 1 247 16 view .LVU53
 206 0016 4042     		rsbs	r0, r0, #0
 207              	.LVL18:
 247:Component/modbus/modbus_rtu_master.c ****     }
 208              		.loc 1 247 16 view .LVU54
 209              	.LBE60:
ARM GAS  /tmp/ccsuRgce.s 			page 10


 210              	.LBE62:
 278:Component/modbus/modbus_rtu_master.c **** }
 211              		.loc 1 278 12 view .LVU55
 212 0018 FBE7     		b	.L10
 213              		.cfi_endproc
 214              	.LFE8:
 216 001a C046     		.section	.text.modbus_rtu_master_delete,"ax",%progbits
 217              		.align	1
 218              		.p2align 2,,3
 219              		.global	modbus_rtu_master_delete
 220              		.syntax unified
 221              		.code	16
 222              		.thumb_func
 224              	modbus_rtu_master_delete:
 225              	.LVL19:
 226              	.LFB9:
 280:Component/modbus/modbus_rtu_master.c **** 
 281:Component/modbus/modbus_rtu_master.c **** ///
 282:Component/modbus/modbus_rtu_master.c **** /// @param self
 283:Component/modbus/modbus_rtu_master.c **** /// @return
 284:Component/modbus/modbus_rtu_master.c **** int modbus_rtu_master_delete(modbus_rtu_master_t *self)
 285:Component/modbus/modbus_rtu_master.c **** {
 227              		.loc 1 285 1 is_stmt 1 view -0
 228              		.cfi_startproc
 229              		@ args = 0, pretend = 0, frame = 0
 230              		@ frame_needed = 0, uses_anonymous_args = 0
 286:Component/modbus/modbus_rtu_master.c ****     if (!(self && *self))
 231              		.loc 1 286 5 view .LVU57
 285:Component/modbus/modbus_rtu_master.c ****     if (!(self && *self))
 232              		.loc 1 285 1 is_stmt 0 view .LVU58
 233 0000 10B5     		push	{r4, lr}
 234              	.LCFI3:
 235              		.cfi_def_cfa_offset 8
 236              		.cfi_offset 4, -8
 237              		.cfi_offset 14, -4
 285:Component/modbus/modbus_rtu_master.c ****     if (!(self && *self))
 238              		.loc 1 285 1 view .LVU59
 239 0002 041E     		subs	r4, r0, #0
 240              		.loc 1 286 8 view .LVU60
 241 0004 0ED0     		beq	.L16
 242              		.loc 1 286 19 discriminator 1 view .LVU61
 243 0006 0068     		ldr	r0, [r0]
 244              	.LVL20:
 245              		.loc 1 286 9 discriminator 1 view .LVU62
 246 0008 0028     		cmp	r0, #0
 247 000a 0BD0     		beq	.L16
 287:Component/modbus/modbus_rtu_master.c ****     {
 288:Component/modbus/modbus_rtu_master.c ****         return -MODBUS_ERROR_NULL_POINTER;
 289:Component/modbus/modbus_rtu_master.c ****     }
 290:Component/modbus/modbus_rtu_master.c ****     modbus_rtu_master_stop(*self);
 248              		.loc 1 290 5 is_stmt 1 view .LVU63
 249              	.LVL21:
 250              	.LBB63:
 251              	.LBI63:
 276:Component/modbus/modbus_rtu_master.c **** {
 252              		.loc 1 276 5 view .LVU64
 278:Component/modbus/modbus_rtu_master.c **** }
ARM GAS  /tmp/ccsuRgce.s 			page 11


 253              		.loc 1 278 5 view .LVU65
 254              	.LBB64:
 255              	.LBI64:
 243:Component/modbus/modbus_rtu_master.c **** {
 256              		.loc 1 243 5 view .LVU66
 257              	.LBB65:
 245:Component/modbus/modbus_rtu_master.c ****     {
 258              		.loc 1 245 5 view .LVU67
 249:Component/modbus/modbus_rtu_master.c ****     self->timeout = 0;
 259              		.loc 1 249 5 view .LVU68
 260 000c 9222     		movs	r2, #146
 261 000e 0021     		movs	r1, #0
 262 0010 5200     		lsls	r2, r2, #1
 263 0012 FFF7FEFF 		bl	memset
 264              	.LVL22:
 250:Component/modbus/modbus_rtu_master.c ****     self->interval = 0;
 265              		.loc 1 250 5 view .LVU69
 251:Component/modbus/modbus_rtu_master.c ****     self->reset_interval = interval;
 266              		.loc 1 251 5 view .LVU70
 252:Component/modbus/modbus_rtu_master.c ****     return -MODBUS_ERROR_NO_ERROR;
 267              		.loc 1 252 5 view .LVU71
 253:Component/modbus/modbus_rtu_master.c **** }
 268              		.loc 1 253 5 view .LVU72
 253:Component/modbus/modbus_rtu_master.c **** }
 269              		.loc 1 253 5 is_stmt 0 view .LVU73
 270              	.LBE65:
 271              	.LBE64:
 272              	.LBE63:
 291:Component/modbus/modbus_rtu_master.c ****     free(*self);
 273              		.loc 1 291 5 is_stmt 1 view .LVU74
 274 0016 2068     		ldr	r0, [r4]
 275 0018 FFF7FEFF 		bl	free
 276              	.LVL23:
 292:Component/modbus/modbus_rtu_master.c ****     *self = NULL;
 277              		.loc 1 292 5 view .LVU75
 278              		.loc 1 292 11 is_stmt 0 view .LVU76
 279 001c 0023     		movs	r3, #0
 293:Component/modbus/modbus_rtu_master.c ****     return -MODBUS_ERROR_NO_ERROR;
 280              		.loc 1 293 12 view .LVU77
 281 001e 0020     		movs	r0, #0
 292:Component/modbus/modbus_rtu_master.c ****     *self = NULL;
 282              		.loc 1 292 11 view .LVU78
 283 0020 2360     		str	r3, [r4]
 284              		.loc 1 293 5 is_stmt 1 view .LVU79
 285              	.L13:
 294:Component/modbus/modbus_rtu_master.c **** }
 286              		.loc 1 294 1 is_stmt 0 view .LVU80
 287              		@ sp needed
 288              	.LVL24:
 289              		.loc 1 294 1 view .LVU81
 290 0022 10BD     		pop	{r4, pc}
 291              	.LVL25:
 292              	.L16:
 288:Component/modbus/modbus_rtu_master.c ****     }
 293              		.loc 1 288 16 view .LVU82
 294 0024 0520     		movs	r0, #5
 295 0026 4042     		rsbs	r0, r0, #0
ARM GAS  /tmp/ccsuRgce.s 			page 12


 296 0028 FBE7     		b	.L13
 297              		.cfi_endproc
 298              	.LFE9:
 300 002a C046     		.section	.text.modbus_rtu_master_set_on_send,"ax",%progbits
 301              		.align	1
 302              		.p2align 2,,3
 303              		.global	modbus_rtu_master_set_on_send
 304              		.syntax unified
 305              		.code	16
 306              		.thumb_func
 308              	modbus_rtu_master_set_on_send:
 309              	.LVL26:
 310              	.LFB10:
 295:Component/modbus/modbus_rtu_master.c **** 
 296:Component/modbus/modbus_rtu_master.c **** /// @brief
 297:Component/modbus/modbus_rtu_master.c **** /// @param self
 298:Component/modbus/modbus_rtu_master.c **** /// @param point
 299:Component/modbus/modbus_rtu_master.c **** /// @return
 300:Component/modbus/modbus_rtu_master.c **** int modbus_rtu_master_set_on_send(modbus_rtu_master_t self, void (*p)(void *, uint32_t))
 301:Component/modbus/modbus_rtu_master.c **** {
 311              		.loc 1 301 1 is_stmt 1 view -0
 312              		.cfi_startproc
 313              		@ args = 0, pretend = 0, frame = 0
 314              		@ frame_needed = 0, uses_anonymous_args = 0
 315              		@ link register save eliminated.
 302:Component/modbus/modbus_rtu_master.c ****     if (!(self && p))
 316              		.loc 1 302 5 view .LVU84
 317              		.loc 1 302 8 is_stmt 0 view .LVU85
 318 0000 0028     		cmp	r0, #0
 319 0002 04D0     		beq	.L20
 320              		.loc 1 302 9 discriminator 1 view .LVU86
 321 0004 0029     		cmp	r1, #0
 322 0006 02D0     		beq	.L20
 303:Component/modbus/modbus_rtu_master.c ****     {
 304:Component/modbus/modbus_rtu_master.c ****         return -MODBUS_ERROR_NULL_POINTER;
 305:Component/modbus/modbus_rtu_master.c ****     }
 306:Component/modbus/modbus_rtu_master.c ****     __modbus_rtu_master_lock(self);
 323              		.loc 1 306 5 is_stmt 1 view .LVU87
 307:Component/modbus/modbus_rtu_master.c ****     self->on_send = p;
 324              		.loc 1 307 5 view .LVU88
 325              		.loc 1 307 19 is_stmt 0 view .LVU89
 326 0008 4161     		str	r1, [r0, #20]
 308:Component/modbus/modbus_rtu_master.c ****     __modbus_rtu_master_unlock(self);
 327              		.loc 1 308 5 is_stmt 1 view .LVU90
 309:Component/modbus/modbus_rtu_master.c ****     return -MODBUS_ERROR_NO_ERROR;
 328              		.loc 1 309 5 view .LVU91
 329              		.loc 1 309 12 is_stmt 0 view .LVU92
 330 000a 0020     		movs	r0, #0
 331              	.LVL27:
 332              	.L17:
 310:Component/modbus/modbus_rtu_master.c **** }
 333              		.loc 1 310 1 view .LVU93
 334              		@ sp needed
 335 000c 7047     		bx	lr
 336              	.LVL28:
 337              	.L20:
 304:Component/modbus/modbus_rtu_master.c ****     }
ARM GAS  /tmp/ccsuRgce.s 			page 13


 338              		.loc 1 304 16 view .LVU94
 339 000e 0520     		movs	r0, #5
 340              	.LVL29:
 304:Component/modbus/modbus_rtu_master.c ****     }
 341              		.loc 1 304 16 view .LVU95
 342 0010 4042     		rsbs	r0, r0, #0
 343 0012 FBE7     		b	.L17
 344              		.cfi_endproc
 345              	.LFE10:
 347              		.section	.text.modbus_rtu_master_set_on_message,"ax",%progbits
 348              		.align	1
 349              		.p2align 2,,3
 350              		.global	modbus_rtu_master_set_on_message
 351              		.syntax unified
 352              		.code	16
 353              		.thumb_func
 355              	modbus_rtu_master_set_on_message:
 356              	.LVL30:
 357              	.LFB11:
 311:Component/modbus/modbus_rtu_master.c **** 
 312:Component/modbus/modbus_rtu_master.c **** /// @brief
 313:Component/modbus/modbus_rtu_master.c **** /// @param self
 314:Component/modbus/modbus_rtu_master.c **** /// @param point
 315:Component/modbus/modbus_rtu_master.c **** /// @return
 316:Component/modbus/modbus_rtu_master.c **** int modbus_rtu_master_set_on_message(modbus_rtu_master_t self, void (*p)(modbus_rtu_master_t, int))
 317:Component/modbus/modbus_rtu_master.c **** {
 358              		.loc 1 317 1 is_stmt 1 view -0
 359              		.cfi_startproc
 360              		@ args = 0, pretend = 0, frame = 0
 361              		@ frame_needed = 0, uses_anonymous_args = 0
 362              		@ link register save eliminated.
 318:Component/modbus/modbus_rtu_master.c ****     if (!(self && p))
 363              		.loc 1 318 5 view .LVU97
 364              		.loc 1 318 8 is_stmt 0 view .LVU98
 365 0000 0028     		cmp	r0, #0
 366 0002 04D0     		beq	.L24
 367              		.loc 1 318 9 discriminator 1 view .LVU99
 368 0004 0029     		cmp	r1, #0
 369 0006 02D0     		beq	.L24
 319:Component/modbus/modbus_rtu_master.c ****     {
 320:Component/modbus/modbus_rtu_master.c ****         return -MODBUS_ERROR_NULL_POINTER;
 321:Component/modbus/modbus_rtu_master.c ****     }
 322:Component/modbus/modbus_rtu_master.c ****     __modbus_rtu_master_lock(self);
 370              		.loc 1 322 5 is_stmt 1 view .LVU100
 323:Component/modbus/modbus_rtu_master.c ****     self->on_completion = p;
 371              		.loc 1 323 5 view .LVU101
 372              		.loc 1 323 25 is_stmt 0 view .LVU102
 373 0008 8161     		str	r1, [r0, #24]
 324:Component/modbus/modbus_rtu_master.c ****     __modbus_rtu_master_unlock(self);
 374              		.loc 1 324 5 is_stmt 1 view .LVU103
 325:Component/modbus/modbus_rtu_master.c ****     return -MODBUS_ERROR_NO_ERROR;
 375              		.loc 1 325 5 view .LVU104
 376              		.loc 1 325 12 is_stmt 0 view .LVU105
 377 000a 0020     		movs	r0, #0
 378              	.LVL31:
 379              	.L21:
 326:Component/modbus/modbus_rtu_master.c **** }
ARM GAS  /tmp/ccsuRgce.s 			page 14


 380              		.loc 1 326 1 view .LVU106
 381              		@ sp needed
 382 000c 7047     		bx	lr
 383              	.LVL32:
 384              	.L24:
 320:Component/modbus/modbus_rtu_master.c ****     }
 385              		.loc 1 320 16 view .LVU107
 386 000e 0520     		movs	r0, #5
 387              	.LVL33:
 320:Component/modbus/modbus_rtu_master.c ****     }
 388              		.loc 1 320 16 view .LVU108
 389 0010 4042     		rsbs	r0, r0, #0
 390 0012 FBE7     		b	.L21
 391              		.cfi_endproc
 392              	.LFE11:
 394              		.section	.text.modbus_rtu_master_buffer_size,"ax",%progbits
 395              		.align	1
 396              		.p2align 2,,3
 397              		.global	modbus_rtu_master_buffer_size
 398              		.syntax unified
 399              		.code	16
 400              		.thumb_func
 402              	modbus_rtu_master_buffer_size:
 403              	.LVL34:
 404              	.LFB12:
 327:Component/modbus/modbus_rtu_master.c **** 
 328:Component/modbus/modbus_rtu_master.c **** /// @brief
 329:Component/modbus/modbus_rtu_master.c **** /// @param self
 330:Component/modbus/modbus_rtu_master.c **** /// @return
 331:Component/modbus/modbus_rtu_master.c **** int modbus_rtu_master_buffer_size(modbus_rtu_master_t self)
 332:Component/modbus/modbus_rtu_master.c **** {
 405              		.loc 1 332 1 is_stmt 1 view -0
 406              		.cfi_startproc
 407              		@ args = 0, pretend = 0, frame = 0
 408              		@ frame_needed = 0, uses_anonymous_args = 0
 409              		@ link register save eliminated.
 333:Component/modbus/modbus_rtu_master.c ****     if (!self)
 410              		.loc 1 333 5 view .LVU110
 411              		.loc 1 333 8 is_stmt 0 view .LVU111
 412 0000 0028     		cmp	r0, #0
 413 0002 04D0     		beq	.L27
 334:Component/modbus/modbus_rtu_master.c ****     {
 335:Component/modbus/modbus_rtu_master.c ****         return 0;
 336:Component/modbus/modbus_rtu_master.c ****     }
 337:Component/modbus/modbus_rtu_master.c ****     return sizeof(self->buffer) - self->length;
 414              		.loc 1 337 5 is_stmt 1 view .LVU112
 415              		.loc 1 337 33 is_stmt 0 view .LVU113
 416 0004 4368     		ldr	r3, [r0, #4]
 417 0006 8420     		movs	r0, #132
 418              	.LVL35:
 419              		.loc 1 337 33 view .LVU114
 420 0008 4000     		lsls	r0, r0, #1
 421 000a C01A     		subs	r0, r0, r3
 422              	.L26:
 338:Component/modbus/modbus_rtu_master.c **** }
 423              		.loc 1 338 1 view .LVU115
 424              		@ sp needed
ARM GAS  /tmp/ccsuRgce.s 			page 15


 425 000c 7047     		bx	lr
 426              	.LVL36:
 427              	.L27:
 428              		.loc 1 338 1 view .LVU116
 429 000e 0020     		movs	r0, #0
 430              	.LVL37:
 431              		.loc 1 338 1 view .LVU117
 432 0010 FCE7     		b	.L26
 433              		.cfi_endproc
 434              	.LFE12:
 436 0012 C046     		.section	.text.modbus_rtu_master_buffer_addr,"ax",%progbits
 437              		.align	1
 438              		.p2align 2,,3
 439              		.global	modbus_rtu_master_buffer_addr
 440              		.syntax unified
 441              		.code	16
 442              		.thumb_func
 444              	modbus_rtu_master_buffer_addr:
 445              	.LVL38:
 446              	.LFB13:
 339:Component/modbus/modbus_rtu_master.c **** 
 340:Component/modbus/modbus_rtu_master.c **** /// @brief
 341:Component/modbus/modbus_rtu_master.c **** /// @param self
 342:Component/modbus/modbus_rtu_master.c **** /// @return
 343:Component/modbus/modbus_rtu_master.c **** void *modbus_rtu_master_buffer_addr(modbus_rtu_master_t self)
 344:Component/modbus/modbus_rtu_master.c **** {
 447              		.loc 1 344 1 is_stmt 1 view -0
 448              		.cfi_startproc
 449              		@ args = 0, pretend = 0, frame = 0
 450              		@ frame_needed = 0, uses_anonymous_args = 0
 451              		@ link register save eliminated.
 345:Component/modbus/modbus_rtu_master.c ****     if (!self)
 452              		.loc 1 345 5 view .LVU119
 453              		.loc 1 345 8 is_stmt 0 view .LVU120
 454 0000 0028     		cmp	r0, #0
 455 0002 03D0     		beq	.L30
 346:Component/modbus/modbus_rtu_master.c ****     {
 347:Component/modbus/modbus_rtu_master.c ****         return NULL;
 348:Component/modbus/modbus_rtu_master.c ****     }
 349:Component/modbus/modbus_rtu_master.c ****     return &self->buffer.bytes[self->length];
 456              		.loc 1 349 5 is_stmt 1 view .LVU121
 457              		.loc 1 349 12 is_stmt 0 view .LVU122
 458 0004 4368     		ldr	r3, [r0, #4]
 459 0006 1C33     		adds	r3, r3, #28
 460 0008 C018     		adds	r0, r0, r3
 461              	.LVL39:
 462              	.L28:
 350:Component/modbus/modbus_rtu_master.c **** }
 463              		.loc 1 350 1 view .LVU123
 464              		@ sp needed
 465 000a 7047     		bx	lr
 466              	.LVL40:
 467              	.L30:
 347:Component/modbus/modbus_rtu_master.c ****     }
 468              		.loc 1 347 16 view .LVU124
 469 000c 0020     		movs	r0, #0
 470              	.LVL41:
ARM GAS  /tmp/ccsuRgce.s 			page 16


 347:Component/modbus/modbus_rtu_master.c ****     }
 471              		.loc 1 347 16 view .LVU125
 472 000e FCE7     		b	.L28
 473              		.cfi_endproc
 474              	.LFE13:
 476              		.section	.text.modbus_rtu_master_on_timer,"ax",%progbits
 477              		.align	1
 478              		.p2align 2,,3
 479              		.global	modbus_rtu_master_on_timer
 480              		.syntax unified
 481              		.code	16
 482              		.thumb_func
 484              	modbus_rtu_master_on_timer:
 485              	.LVL42:
 486              	.LFB14:
 351:Component/modbus/modbus_rtu_master.c **** 
 352:Component/modbus/modbus_rtu_master.c **** /// @brief
 353:Component/modbus/modbus_rtu_master.c **** /// @param self
 354:Component/modbus/modbus_rtu_master.c **** /// @param tick
 355:Component/modbus/modbus_rtu_master.c **** /// @return
 356:Component/modbus/modbus_rtu_master.c **** int modbus_rtu_master_on_timer(modbus_rtu_master_t self, uint32_t tick)
 357:Component/modbus/modbus_rtu_master.c **** {
 487              		.loc 1 357 1 is_stmt 1 view -0
 488              		.cfi_startproc
 489              		@ args = 0, pretend = 0, frame = 0
 490              		@ frame_needed = 0, uses_anonymous_args = 0
 358:Component/modbus/modbus_rtu_master.c ****     if (!self)
 491              		.loc 1 358 5 view .LVU127
 357:Component/modbus/modbus_rtu_master.c ****     if (!self)
 492              		.loc 1 357 1 is_stmt 0 view .LVU128
 493 0000 F0B5     		push	{r4, r5, r6, r7, lr}
 494              	.LCFI4:
 495              		.cfi_def_cfa_offset 20
 496              		.cfi_offset 4, -20
 497              		.cfi_offset 5, -16
 498              		.cfi_offset 6, -12
 499              		.cfi_offset 7, -8
 500              		.cfi_offset 14, -4
 501 0002 C646     		mov	lr, r8
 502 0004 0400     		movs	r4, r0
 503 0006 00B5     		push	{lr}
 504              	.LCFI5:
 505              		.cfi_def_cfa_offset 24
 506              		.cfi_offset 8, -24
 507              		.loc 1 358 8 view .LVU129
 508 0008 0028     		cmp	r0, #0
 509 000a 00D1     		bne	.LCB391
 510 000c A5E0     		b	.L54	@long jump
 511              	.LCB391:
 359:Component/modbus/modbus_rtu_master.c ****     {
 360:Component/modbus/modbus_rtu_master.c ****         return -MODBUS_ERROR_NULL_POINTER;
 361:Component/modbus/modbus_rtu_master.c ****     }
 362:Component/modbus/modbus_rtu_master.c ****     __modbus_rtu_master_lock(self);
 512              		.loc 1 362 5 is_stmt 1 view .LVU130
 363:Component/modbus/modbus_rtu_master.c ****     if (self->interval >= tick)
 513              		.loc 1 363 5 view .LVU131
 514              		.loc 1 363 13 is_stmt 0 view .LVU132
ARM GAS  /tmp/ccsuRgce.s 			page 17


 515 000e C368     		ldr	r3, [r0, #12]
 516              		.loc 1 363 8 view .LVU133
 517 0010 8B42     		cmp	r3, r1
 518 0012 11D2     		bcs	.L72
 364:Component/modbus/modbus_rtu_master.c ****     {
 365:Component/modbus/modbus_rtu_master.c ****         self->interval -= tick;
 366:Component/modbus/modbus_rtu_master.c ****         if (self->interval < tick)
 367:Component/modbus/modbus_rtu_master.c ****         {
 368:Component/modbus/modbus_rtu_master.c ****             self->timeout = 0;
 369:Component/modbus/modbus_rtu_master.c ****             self->interval = 0;
 370:Component/modbus/modbus_rtu_master.c ****             __modbus_rtu_master_unlock(self);
 371:Component/modbus/modbus_rtu_master.c ****             __modbus_rtu_master_on_message(self, __modbus_rtu_master_analysis(self));
 372:Component/modbus/modbus_rtu_master.c ****             __modbus_rtu_master_lock(self);
 373:Component/modbus/modbus_rtu_master.c ****         }
 374:Component/modbus/modbus_rtu_master.c ****     }
 375:Component/modbus/modbus_rtu_master.c ****     else if (self->timeout >= tick)
 519              		.loc 1 375 10 is_stmt 1 view .LVU134
 520              		.loc 1 375 18 is_stmt 0 view .LVU135
 521 0014 8368     		ldr	r3, [r0, #8]
 522              		.loc 1 375 13 view .LVU136
 523 0016 8B42     		cmp	r3, r1
 524 0018 0AD3     		bcc	.L35
 376:Component/modbus/modbus_rtu_master.c ****     {
 377:Component/modbus/modbus_rtu_master.c ****         self->timeout -= tick;
 525              		.loc 1 377 9 is_stmt 1 view .LVU137
 526              		.loc 1 377 23 is_stmt 0 view .LVU138
 527 001a 5B1A     		subs	r3, r3, r1
 378:Component/modbus/modbus_rtu_master.c ****         if (self->timeout < tick)
 528              		.loc 1 378 9 is_stmt 1 view .LVU139
 529              		.loc 1 378 12 is_stmt 0 view .LVU140
 530 001c 8B42     		cmp	r3, r1
 531 001e 4FD2     		bcs	.L73
 379:Component/modbus/modbus_rtu_master.c ****         {
 380:Component/modbus/modbus_rtu_master.c ****             self->timeout = 0;
 532              		.loc 1 380 13 is_stmt 1 view .LVU141
 533              		.loc 1 380 27 is_stmt 0 view .LVU142
 534 0020 0023     		movs	r3, #0
 535 0022 8360     		str	r3, [r0, #8]
 381:Component/modbus/modbus_rtu_master.c ****             self->interval = 0;
 536              		.loc 1 381 13 is_stmt 1 view .LVU143
 537              		.loc 1 381 28 is_stmt 0 view .LVU144
 538 0024 C360     		str	r3, [r0, #12]
 382:Component/modbus/modbus_rtu_master.c ****             __modbus_rtu_master_unlock(self);
 539              		.loc 1 382 13 is_stmt 1 view .LVU145
 383:Component/modbus/modbus_rtu_master.c ****             __modbus_rtu_master_on_message(self, MODBUS_ERROR_MASTER_TIMEOUT);
 540              		.loc 1 383 13 view .LVU146
 541              	.LVL43:
 542              	.LBB78:
 543              	.LBI78:
  76:Component/modbus/modbus_rtu_master.c **** {
 544              		.loc 1 76 12 view .LVU147
 545              	.LBB79:
  78:Component/modbus/modbus_rtu_master.c ****     {
 546              		.loc 1 78 5 view .LVU148
  78:Component/modbus/modbus_rtu_master.c ****     {
 547              		.loc 1 78 13 is_stmt 0 view .LVU149
 548 0026 8369     		ldr	r3, [r0, #24]
ARM GAS  /tmp/ccsuRgce.s 			page 18


  78:Component/modbus/modbus_rtu_master.c ****     {
 549              		.loc 1 78 8 view .LVU150
 550 0028 002B     		cmp	r3, #0
 551 002a 01D0     		beq	.L35
  80:Component/modbus/modbus_rtu_master.c ****         return -MODBUS_ERROR_NO_ERROR;
 552              		.loc 1 80 9 is_stmt 1 view .LVU151
 553 002c 0721     		movs	r1, #7
 554              	.LVL44:
  80:Component/modbus/modbus_rtu_master.c ****         return -MODBUS_ERROR_NO_ERROR;
 555              		.loc 1 80 9 is_stmt 0 view .LVU152
 556 002e 9847     		blx	r3
 557              	.LVL45:
  81:Component/modbus/modbus_rtu_master.c ****     }
 558              		.loc 1 81 9 is_stmt 1 view .LVU153
 559              	.L35:
  81:Component/modbus/modbus_rtu_master.c ****     }
 560              		.loc 1 81 9 is_stmt 0 view .LVU154
 561              	.LBE79:
 562              	.LBE78:
 384:Component/modbus/modbus_rtu_master.c ****             __modbus_rtu_master_lock(self);
 385:Component/modbus/modbus_rtu_master.c ****         }
 386:Component/modbus/modbus_rtu_master.c ****     }
 387:Component/modbus/modbus_rtu_master.c ****     __modbus_rtu_master_unlock(self);
 388:Component/modbus/modbus_rtu_master.c ****     return -MODBUS_ERROR_NO_ERROR;
 563              		.loc 1 388 12 view .LVU155
 564 0030 0020     		movs	r0, #0
 565              	.L31:
 389:Component/modbus/modbus_rtu_master.c **** }
 566              		.loc 1 389 1 view .LVU156
 567              		@ sp needed
 568              	.LVL46:
 569              		.loc 1 389 1 view .LVU157
 570 0032 80BC     		pop	{r7}
 571 0034 B846     		mov	r8, r7
 572 0036 F0BD     		pop	{r4, r5, r6, r7, pc}
 573              	.LVL47:
 574              	.L72:
 365:Component/modbus/modbus_rtu_master.c ****         if (self->interval < tick)
 575              		.loc 1 365 9 is_stmt 1 view .LVU158
 365:Component/modbus/modbus_rtu_master.c ****         if (self->interval < tick)
 576              		.loc 1 365 24 is_stmt 0 view .LVU159
 577 0038 5B1A     		subs	r3, r3, r1
 578 003a C360     		str	r3, [r0, #12]
 366:Component/modbus/modbus_rtu_master.c ****         {
 579              		.loc 1 366 9 is_stmt 1 view .LVU160
 366:Component/modbus/modbus_rtu_master.c ****         {
 580              		.loc 1 366 12 is_stmt 0 view .LVU161
 581 003c 8B42     		cmp	r3, r1
 582 003e F7D2     		bcs	.L35
 368:Component/modbus/modbus_rtu_master.c ****             self->interval = 0;
 583              		.loc 1 368 13 is_stmt 1 view .LVU162
 368:Component/modbus/modbus_rtu_master.c ****             self->interval = 0;
 584              		.loc 1 368 27 is_stmt 0 view .LVU163
 585 0040 0023     		movs	r3, #0
 586              	.LBB80:
 587              	.LBB81:
 168:Component/modbus/modbus_rtu_master.c ****     crc |= (self->buffer.bytes[self->length - 2] << 8);
ARM GAS  /tmp/ccsuRgce.s 			page 19


 588              		.loc 1 168 34 view .LVU164
 589 0042 4168     		ldr	r1, [r0, #4]
 590              	.LVL48:
 168:Component/modbus/modbus_rtu_master.c ****     crc |= (self->buffer.bytes[self->length - 2] << 8);
 591              		.loc 1 168 34 view .LVU165
 592              	.LBE81:
 593              	.LBE80:
 368:Component/modbus/modbus_rtu_master.c ****             self->interval = 0;
 594              		.loc 1 368 27 view .LVU166
 595 0044 8360     		str	r3, [r0, #8]
 369:Component/modbus/modbus_rtu_master.c ****             __modbus_rtu_master_unlock(self);
 596              		.loc 1 369 13 is_stmt 1 view .LVU167
 597              	.LBB89:
 598              	.LBB86:
 169:Component/modbus/modbus_rtu_master.c ****     if (self->execute->id != self->buffer.head.id)
 599              		.loc 1 169 31 is_stmt 0 view .LVU168
 600 0046 4218     		adds	r2, r0, r1
 601              	.LBE86:
 602              	.LBE89:
 369:Component/modbus/modbus_rtu_master.c ****             __modbus_rtu_master_unlock(self);
 603              		.loc 1 369 28 view .LVU169
 604 0048 C360     		str	r3, [r0, #12]
 370:Component/modbus/modbus_rtu_master.c ****             __modbus_rtu_master_on_message(self, __modbus_rtu_master_analysis(self));
 605              		.loc 1 370 13 is_stmt 1 view .LVU170
 371:Component/modbus/modbus_rtu_master.c ****             __modbus_rtu_master_lock(self);
 606              		.loc 1 371 13 view .LVU171
 607              	.LVL49:
 608              	.LBB90:
 609              	.LBI80:
 164:Component/modbus/modbus_rtu_master.c **** {
 610              		.loc 1 164 12 view .LVU172
 611              	.LBB87:
 166:Component/modbus/modbus_rtu_master.c ****     uint16_t crc = 0;
 612              		.loc 1 166 5 view .LVU173
 167:Component/modbus/modbus_rtu_master.c ****     crc = self->buffer.bytes[self->length - 1];
 613              		.loc 1 167 5 view .LVU174
 168:Component/modbus/modbus_rtu_master.c ****     crc |= (self->buffer.bytes[self->length - 2] << 8);
 614              		.loc 1 168 5 view .LVU175
 169:Component/modbus/modbus_rtu_master.c ****     if (self->execute->id != self->buffer.head.id)
 615              		.loc 1 169 5 view .LVU176
 169:Component/modbus/modbus_rtu_master.c ****     if (self->execute->id != self->buffer.head.id)
 616              		.loc 1 169 9 is_stmt 0 view .LVU177
 617 004a 937E     		ldrb	r3, [r2, #26]
 618 004c D57E     		ldrb	r5, [r2, #27]
 619 004e 1B02     		lsls	r3, r3, #8
 620 0050 1D43     		orrs	r5, r3
 621              	.LVL50:
 170:Component/modbus/modbus_rtu_master.c ****     {
 622              		.loc 1 170 5 is_stmt 1 view .LVU178
 170:Component/modbus/modbus_rtu_master.c ****     {
 623              		.loc 1 170 22 is_stmt 0 view .LVU179
 624 0052 0368     		ldr	r3, [r0]
 170:Component/modbus/modbus_rtu_master.c ****     {
 625              		.loc 1 170 8 view .LVU180
 626 0054 1A78     		ldrb	r2, [r3]
 627 0056 037F     		ldrb	r3, [r0, #28]
 628 0058 9A42     		cmp	r2, r3
ARM GAS  /tmp/ccsuRgce.s 			page 20


 629 005a 00D0     		beq	.LCB498
 630 005c 7BE0     		b	.L38	@long jump
 631              	.LCB498:
 174:Component/modbus/modbus_rtu_master.c ****     {
 632              		.loc 1 174 5 is_stmt 1 view .LVU181
 174:Component/modbus/modbus_rtu_master.c ****     {
 633              		.loc 1 174 16 is_stmt 0 view .LVU182
 634 005e 0239     		subs	r1, r1, #2
 635 0060 89B2     		uxth	r1, r1
 636 0062 1C30     		adds	r0, r0, #28
 637              	.LVL51:
 174:Component/modbus/modbus_rtu_master.c ****     {
 638              		.loc 1 174 16 view .LVU183
 639 0064 FFF7FEFF 		bl	modbus_crc
 640              	.LVL52:
 174:Component/modbus/modbus_rtu_master.c ****     {
 641              		.loc 1 174 8 discriminator 1 view .LVU184
 642 0068 8542     		cmp	r5, r0
 643 006a 74D1     		bne	.L38
 178:Component/modbus/modbus_rtu_master.c ****     {
 644              		.loc 1 178 5 is_stmt 1 view .LVU185
 178:Component/modbus/modbus_rtu_master.c ****     {
 645              		.loc 1 178 30 is_stmt 0 view .LVU186
 646 006c 637F     		ldrb	r3, [r4, #29]
 178:Component/modbus/modbus_rtu_master.c ****     {
 647              		.loc 1 178 5 view .LVU187
 648 006e 172B     		cmp	r3, #23
 649 0070 56D0     		beq	.L39
 650 0072 4BD8     		bhi	.L40
 651 0074 022B     		cmp	r3, #2
 652 0076 25D9     		bls	.L74
 653 0078 033B     		subs	r3, r3, #3
 654 007a 012B     		cmp	r3, #1
 655 007c 19D8     		bhi	.L43
 196:Component/modbus/modbus_rtu_master.c ****         if (count != self->buffer.read_regs_res.cnt)
 656              		.loc 1 196 9 is_stmt 1 view .LVU188
 196:Component/modbus/modbus_rtu_master.c ****         if (count != self->buffer.read_regs_res.cnt)
 657              		.loc 1 196 22 is_stmt 0 view .LVU189
 658 007e 2068     		ldr	r0, [r4]
 197:Component/modbus/modbus_rtu_master.c ****         {
 659              		.loc 1 197 12 view .LVU190
 660 0080 A17F     		ldrb	r1, [r4, #30]
 196:Component/modbus/modbus_rtu_master.c ****         if (count != self->buffer.read_regs_res.cnt)
 661              		.loc 1 196 31 view .LVU191
 662 0082 8288     		ldrh	r2, [r0, #4]
 663              	.LVL53:
 197:Component/modbus/modbus_rtu_master.c ****         {
 664              		.loc 1 197 9 is_stmt 1 view .LVU192
 196:Component/modbus/modbus_rtu_master.c ****         if (count != self->buffer.read_regs_res.cnt)
 665              		.loc 1 196 15 is_stmt 0 view .LVU193
 666 0084 5300     		lsls	r3, r2, #1
 197:Component/modbus/modbus_rtu_master.c ****         {
 667              		.loc 1 197 12 view .LVU194
 668 0086 DBB2     		uxtb	r3, r3
 669 0088 9942     		cmp	r1, r3
 670 008a 64D1     		bne	.L38
 671              	.LVL54:
ARM GAS  /tmp/ccsuRgce.s 			page 21


 672              	.LBB82:
 201:Component/modbus/modbus_rtu_master.c ****         {
 673              		.loc 1 201 38 is_stmt 1 discriminator 1 view .LVU195
 674 008c 002A     		cmp	r2, #0
 675 008e 10D0     		beq	.L43
 201:Component/modbus/modbus_rtu_master.c ****         {
 676              		.loc 1 201 23 is_stmt 0 view .LVU196
 677 0090 0022     		movs	r2, #0
 678              	.LVL55:
 203:Component/modbus/modbus_rtu_master.c ****         }
 679              		.loc 1 203 26 view .LVU197
 680 0092 8568     		ldr	r5, [r0, #8]
 681              	.LVL56:
 682              	.L50:
 203:Component/modbus/modbus_rtu_master.c ****         }
 683              		.loc 1 203 13 is_stmt 1 view .LVU198
 203:Component/modbus/modbus_rtu_master.c ****         }
 684              		.loc 1 203 41 is_stmt 0 view .LVU199
 685 0094 1300     		movs	r3, r2
 686 0096 0C33     		adds	r3, r3, #12
 687 0098 5B00     		lsls	r3, r3, #1
 688 009a E318     		adds	r3, r4, r3
 689 009c D979     		ldrb	r1, [r3, #7]
 690 009e 1B7A     		ldrb	r3, [r3, #8]
 691 00a0 1B02     		lsls	r3, r3, #8
 692 00a2 0B43     		orrs	r3, r1
 693 00a4 5BBA     		rev16	r3, r3
 203:Component/modbus/modbus_rtu_master.c ****         }
 694              		.loc 1 203 39 discriminator 1 view .LVU200
 695 00a6 5100     		lsls	r1, r2, #1
 696 00a8 6B52     		strh	r3, [r5, r1]
 201:Component/modbus/modbus_rtu_master.c ****         {
 697              		.loc 1 201 64 is_stmt 1 discriminator 3 view .LVU201
 201:Component/modbus/modbus_rtu_master.c ****         {
 698              		.loc 1 201 53 is_stmt 0 discriminator 1 view .LVU202
 699 00aa 8388     		ldrh	r3, [r0, #4]
 201:Component/modbus/modbus_rtu_master.c ****         {
 700              		.loc 1 201 64 discriminator 3 view .LVU203
 701 00ac 0132     		adds	r2, r2, #1
 702              	.LVL57:
 201:Component/modbus/modbus_rtu_master.c ****         {
 703              		.loc 1 201 38 is_stmt 1 discriminator 1 view .LVU204
 704 00ae 9A42     		cmp	r2, r3
 705 00b0 F0D3     		bcc	.L50
 706              	.LVL58:
 707              	.L43:
 201:Component/modbus/modbus_rtu_master.c ****         {
 708              		.loc 1 201 38 is_stmt 0 discriminator 1 view .LVU205
 709              	.LBE82:
 710              	.LBB83:
 217:Component/modbus/modbus_rtu_master.c ****         {
 711              		.loc 1 217 23 view .LVU206
 712 00b2 0021     		movs	r1, #0
 713              	.L37:
 714              	.LVL59:
 217:Component/modbus/modbus_rtu_master.c ****         {
 715              		.loc 1 217 23 view .LVU207
ARM GAS  /tmp/ccsuRgce.s 			page 22


 716              	.LBE83:
 717              	.LBE87:
 718              	.LBE90:
 719              	.LBB91:
 720              	.LBI91:
  76:Component/modbus/modbus_rtu_master.c **** {
 721              		.loc 1 76 12 is_stmt 1 view .LVU208
 722              	.LBB92:
  78:Component/modbus/modbus_rtu_master.c ****     {
 723              		.loc 1 78 5 view .LVU209
  78:Component/modbus/modbus_rtu_master.c ****     {
 724              		.loc 1 78 13 is_stmt 0 view .LVU210
 725 00b4 A369     		ldr	r3, [r4, #24]
  78:Component/modbus/modbus_rtu_master.c ****     {
 726              		.loc 1 78 8 view .LVU211
 727 00b6 002B     		cmp	r3, #0
 728 00b8 BAD0     		beq	.L35
  80:Component/modbus/modbus_rtu_master.c ****         return -MODBUS_ERROR_NO_ERROR;
 729              		.loc 1 80 9 is_stmt 1 view .LVU212
 730 00ba 2000     		movs	r0, r4
 731 00bc 9847     		blx	r3
 732              	.LVL60:
  81:Component/modbus/modbus_rtu_master.c ****     }
 733              		.loc 1 81 9 view .LVU213
  81:Component/modbus/modbus_rtu_master.c ****     }
 734              		.loc 1 81 16 is_stmt 0 view .LVU214
 735 00be B7E7     		b	.L35
 736              	.LVL61:
 737              	.L73:
  81:Component/modbus/modbus_rtu_master.c ****     }
 738              		.loc 1 81 16 view .LVU215
 739              	.LBE92:
 740              	.LBE91:
 377:Component/modbus/modbus_rtu_master.c ****         if (self->timeout < tick)
 741              		.loc 1 377 23 view .LVU216
 742 00c0 8360     		str	r3, [r0, #8]
 743 00c2 B5E7     		b	.L35
 744              	.LVL62:
 745              	.L74:
 746              	.LBB93:
 747              	.LBB88:
 178:Component/modbus/modbus_rtu_master.c ****     {
 748              		.loc 1 178 5 view .LVU217
 749 00c4 002B     		cmp	r3, #0
 750 00c6 F4D0     		beq	.L43
 184:Component/modbus/modbus_rtu_master.c ****         if (count != self->buffer.read_coil_res.cnt)
 751              		.loc 1 184 9 is_stmt 1 view .LVU218
 184:Component/modbus/modbus_rtu_master.c ****         if (count != self->buffer.read_coil_res.cnt)
 752              		.loc 1 184 45 is_stmt 0 view .LVU219
 753 00c8 0723     		movs	r3, #7
 184:Component/modbus/modbus_rtu_master.c ****         if (count != self->buffer.read_coil_res.cnt)
 754              		.loc 1 184 22 view .LVU220
 755 00ca 2068     		ldr	r0, [r4]
 184:Component/modbus/modbus_rtu_master.c ****         if (count != self->buffer.read_coil_res.cnt)
 756              		.loc 1 184 31 view .LVU221
 757 00cc 8288     		ldrh	r2, [r0, #4]
 758              	.LVL63:
ARM GAS  /tmp/ccsuRgce.s 			page 23


 185:Component/modbus/modbus_rtu_master.c ****         {
 759              		.loc 1 185 9 is_stmt 1 view .LVU222
 184:Component/modbus/modbus_rtu_master.c ****         if (count != self->buffer.read_coil_res.cnt)
 760              		.loc 1 184 45 is_stmt 0 view .LVU223
 761 00ce 1340     		ands	r3, r2
 762 00d0 591E     		subs	r1, r3, #1
 763 00d2 8B41     		sbcs	r3, r3, r1
 184:Component/modbus/modbus_rtu_master.c ****         if (count != self->buffer.read_coil_res.cnt)
 764              		.loc 1 184 43 view .LVU224
 765 00d4 D108     		lsrs	r1, r2, #3
 184:Component/modbus/modbus_rtu_master.c ****         if (count != self->buffer.read_coil_res.cnt)
 766              		.loc 1 184 15 view .LVU225
 767 00d6 5B18     		adds	r3, r3, r1
 185:Component/modbus/modbus_rtu_master.c ****         {
 768              		.loc 1 185 12 view .LVU226
 769 00d8 A17F     		ldrb	r1, [r4, #30]
 770 00da DBB2     		uxtb	r3, r3
 771 00dc 9942     		cmp	r1, r3
 772 00de 3AD1     		bne	.L38
 773              	.LVL64:
 774              	.LBB84:
 189:Component/modbus/modbus_rtu_master.c ****         {
 775              		.loc 1 189 38 is_stmt 1 discriminator 1 view .LVU227
 776 00e0 002A     		cmp	r2, #0
 777 00e2 E6D0     		beq	.L43
 191:Component/modbus/modbus_rtu_master.c ****         }
 778              		.loc 1 191 102 is_stmt 0 view .LVU228
 779 00e4 0122     		movs	r2, #1
 780              	.LVL65:
 189:Component/modbus/modbus_rtu_master.c ****         {
 781              		.loc 1 189 23 view .LVU229
 782 00e6 0023     		movs	r3, #0
 191:Component/modbus/modbus_rtu_master.c ****         }
 783              		.loc 1 191 94 view .LVU230
 784 00e8 0726     		movs	r6, #7
 191:Component/modbus/modbus_rtu_master.c ****         }
 785              		.loc 1 191 102 view .LVU231
 786 00ea 9046     		mov	r8, r2
 191:Component/modbus/modbus_rtu_master.c ****         }
 787              		.loc 1 191 26 view .LVU232
 788 00ec 8768     		ldr	r7, [r0, #8]
 789              	.LVL66:
 790              	.L48:
 191:Component/modbus/modbus_rtu_master.c ****         }
 791              		.loc 1 191 13 is_stmt 1 view .LVU233
 191:Component/modbus/modbus_rtu_master.c ****         }
 792              		.loc 1 191 94 is_stmt 0 view .LVU234
 793 00ee 3500     		movs	r5, r6
 191:Component/modbus/modbus_rtu_master.c ****         }
 794              		.loc 1 191 79 view .LVU235
 795 00f0 DA08     		lsrs	r2, r3, #3
 191:Component/modbus/modbus_rtu_master.c ****         }
 796              		.loc 1 191 73 view .LVU236
 797 00f2 A218     		adds	r2, r4, r2
 798 00f4 D27F     		ldrb	r2, [r2, #31]
 191:Component/modbus/modbus_rtu_master.c ****         }
 799              		.loc 1 191 94 view .LVU237
ARM GAS  /tmp/ccsuRgce.s 			page 24


 800 00f6 1D40     		ands	r5, r3
 191:Component/modbus/modbus_rtu_master.c ****         }
 801              		.loc 1 191 85 view .LVU238
 802 00f8 2A41     		asrs	r2, r2, r5
 191:Component/modbus/modbus_rtu_master.c ****         }
 803              		.loc 1 191 102 view .LVU239
 804 00fa 4546     		mov	r5, r8
 191:Component/modbus/modbus_rtu_master.c ****         }
 805              		.loc 1 191 39 view .LVU240
 806 00fc 5900     		lsls	r1, r3, #1
 191:Component/modbus/modbus_rtu_master.c ****         }
 807              		.loc 1 191 102 view .LVU241
 808 00fe 2A40     		ands	r2, r5
 191:Component/modbus/modbus_rtu_master.c ****         }
 809              		.loc 1 191 39 view .LVU242
 810 0100 7A52     		strh	r2, [r7, r1]
 189:Component/modbus/modbus_rtu_master.c ****         {
 811              		.loc 1 189 64 is_stmt 1 discriminator 3 view .LVU243
 189:Component/modbus/modbus_rtu_master.c ****         {
 812              		.loc 1 189 53 is_stmt 0 discriminator 1 view .LVU244
 813 0102 8288     		ldrh	r2, [r0, #4]
 189:Component/modbus/modbus_rtu_master.c ****         {
 814              		.loc 1 189 64 discriminator 3 view .LVU245
 815 0104 0133     		adds	r3, r3, #1
 816              	.LVL67:
 189:Component/modbus/modbus_rtu_master.c ****         {
 817              		.loc 1 189 38 is_stmt 1 discriminator 1 view .LVU246
 818 0106 9342     		cmp	r3, r2
 819 0108 F1D3     		bcc	.L48
 820 010a D2E7     		b	.L43
 821              	.LVL68:
 822              	.L40:
 189:Component/modbus/modbus_rtu_master.c ****         {
 823              		.loc 1 189 38 is_stmt 0 discriminator 1 view .LVU247
 824              	.LBE84:
 178:Component/modbus/modbus_rtu_master.c ****     {
 825              		.loc 1 178 5 view .LVU248
 826 010c 7F33     		adds	r3, r3, #127
 827 010e DBB2     		uxtb	r3, r3
 828 0110 162B     		cmp	r3, #22
 829 0112 CED8     		bhi	.L43
 830 0114 124A     		ldr	r2, .L75
 831 0116 DA40     		lsrs	r2, r2, r3
 832 0118 D207     		lsls	r2, r2, #31
 833 011a CAD5     		bpl	.L43
 231:Component/modbus/modbus_rtu_master.c ****     default:
 834              		.loc 1 231 9 is_stmt 1 view .LVU249
 231:Component/modbus/modbus_rtu_master.c ****     default:
 835              		.loc 1 231 38 is_stmt 0 view .LVU250
 836 011c A17F     		ldrb	r1, [r4, #30]
 837 011e C9E7     		b	.L37
 838              	.L39:
 212:Component/modbus/modbus_rtu_master.c ****         if (count != self->buffer.read_regs_res.cnt)
 839              		.loc 1 212 9 is_stmt 1 view .LVU251
 212:Component/modbus/modbus_rtu_master.c ****         if (count != self->buffer.read_regs_res.cnt)
 840              		.loc 1 212 21 is_stmt 0 view .LVU252
 841 0120 2068     		ldr	r0, [r4]
ARM GAS  /tmp/ccsuRgce.s 			page 25


 213:Component/modbus/modbus_rtu_master.c ****         {
 842              		.loc 1 213 12 view .LVU253
 843 0122 A17F     		ldrb	r1, [r4, #30]
 212:Component/modbus/modbus_rtu_master.c ****         if (count != self->buffer.read_regs_res.cnt)
 844              		.loc 1 212 30 view .LVU254
 845 0124 8288     		ldrh	r2, [r0, #4]
 846              	.LVL69:
 213:Component/modbus/modbus_rtu_master.c ****         {
 847              		.loc 1 213 9 is_stmt 1 view .LVU255
 212:Component/modbus/modbus_rtu_master.c ****         if (count != self->buffer.read_regs_res.cnt)
 848              		.loc 1 212 15 is_stmt 0 view .LVU256
 849 0126 5300     		lsls	r3, r2, #1
 213:Component/modbus/modbus_rtu_master.c ****         {
 850              		.loc 1 213 12 view .LVU257
 851 0128 DBB2     		uxtb	r3, r3
 852 012a 9942     		cmp	r1, r3
 853 012c 13D1     		bne	.L38
 854              	.LVL70:
 855              	.LBB85:
 217:Component/modbus/modbus_rtu_master.c ****         {
 856              		.loc 1 217 38 is_stmt 1 discriminator 1 view .LVU258
 857 012e 002A     		cmp	r2, #0
 858 0130 BFD0     		beq	.L43
 217:Component/modbus/modbus_rtu_master.c ****         {
 859              		.loc 1 217 23 is_stmt 0 view .LVU259
 860 0132 0022     		movs	r2, #0
 861              	.LVL71:
 219:Component/modbus/modbus_rtu_master.c ****         }
 862              		.loc 1 219 26 view .LVU260
 863 0134 8568     		ldr	r5, [r0, #8]
 864              	.LVL72:
 865              	.L51:
 219:Component/modbus/modbus_rtu_master.c ****         }
 866              		.loc 1 219 13 is_stmt 1 view .LVU261
 219:Component/modbus/modbus_rtu_master.c ****         }
 867              		.loc 1 219 41 is_stmt 0 view .LVU262
 868 0136 1300     		movs	r3, r2
 869 0138 0C33     		adds	r3, r3, #12
 870 013a 5B00     		lsls	r3, r3, #1
 871 013c E318     		adds	r3, r4, r3
 872 013e D979     		ldrb	r1, [r3, #7]
 873 0140 1B7A     		ldrb	r3, [r3, #8]
 874 0142 1B02     		lsls	r3, r3, #8
 875 0144 0B43     		orrs	r3, r1
 876 0146 5BBA     		rev16	r3, r3
 219:Component/modbus/modbus_rtu_master.c ****         }
 877              		.loc 1 219 39 discriminator 1 view .LVU263
 878 0148 5100     		lsls	r1, r2, #1
 879 014a 6B52     		strh	r3, [r5, r1]
 217:Component/modbus/modbus_rtu_master.c ****         {
 880              		.loc 1 217 64 is_stmt 1 discriminator 3 view .LVU264
 217:Component/modbus/modbus_rtu_master.c ****         {
 881              		.loc 1 217 53 is_stmt 0 discriminator 1 view .LVU265
 882 014c 8388     		ldrh	r3, [r0, #4]
 217:Component/modbus/modbus_rtu_master.c ****         {
 883              		.loc 1 217 64 discriminator 3 view .LVU266
 884 014e 0132     		adds	r2, r2, #1
ARM GAS  /tmp/ccsuRgce.s 			page 26


 885              	.LVL73:
 217:Component/modbus/modbus_rtu_master.c ****         {
 886              		.loc 1 217 38 is_stmt 1 discriminator 1 view .LVU267
 887 0150 9A42     		cmp	r2, r3
 888 0152 F0D3     		bcc	.L51
 889 0154 ADE7     		b	.L43
 890              	.LVL74:
 891              	.L38:
 217:Component/modbus/modbus_rtu_master.c ****         {
 892              		.loc 1 217 23 is_stmt 0 view .LVU268
 893 0156 FD21     		movs	r1, #253
 894 0158 ACE7     		b	.L37
 895              	.LVL75:
 896              	.L54:
 217:Component/modbus/modbus_rtu_master.c ****         {
 897              		.loc 1 217 23 view .LVU269
 898              	.LBE85:
 899              	.LBE88:
 900              	.LBE93:
 360:Component/modbus/modbus_rtu_master.c ****     }
 901              		.loc 1 360 16 view .LVU270
 902 015a 0520     		movs	r0, #5
 903              	.LVL76:
 360:Component/modbus/modbus_rtu_master.c ****     }
 904              		.loc 1 360 16 view .LVU271
 905 015c 4042     		rsbs	r0, r0, #0
 906 015e 68E7     		b	.L31
 907              	.L76:
 908              		.align	2
 909              	.L75:
 910 0160 3FC04000 		.word	4243519
 911              		.cfi_endproc
 912              	.LFE14:
 914              		.section	.text.modbus_rtu_master_on_recv,"ax",%progbits
 915              		.align	1
 916              		.p2align 2,,3
 917              		.global	modbus_rtu_master_on_recv
 918              		.syntax unified
 919              		.code	16
 920              		.thumb_func
 922              	modbus_rtu_master_on_recv:
 923              	.LVL77:
 924              	.LFB15:
 390:Component/modbus/modbus_rtu_master.c **** 
 391:Component/modbus/modbus_rtu_master.c **** /// @brief
 392:Component/modbus/modbus_rtu_master.c **** /// @param self
 393:Component/modbus/modbus_rtu_master.c **** /// @param data
 394:Component/modbus/modbus_rtu_master.c **** /// @param len
 395:Component/modbus/modbus_rtu_master.c **** /// @return
 396:Component/modbus/modbus_rtu_master.c **** int modbus_rtu_master_on_recv(modbus_rtu_master_t self, const void *data, const uint32_t len)
 397:Component/modbus/modbus_rtu_master.c **** {
 925              		.loc 1 397 1 is_stmt 1 view -0
 926              		.cfi_startproc
 927              		@ args = 0, pretend = 0, frame = 0
 928              		@ frame_needed = 0, uses_anonymous_args = 0
 398:Component/modbus/modbus_rtu_master.c ****     if (!self)
 929              		.loc 1 398 5 view .LVU273
ARM GAS  /tmp/ccsuRgce.s 			page 27


 397:Component/modbus/modbus_rtu_master.c ****     if (!self)
 930              		.loc 1 397 1 is_stmt 0 view .LVU274
 931 0000 70B5     		push	{r4, r5, r6, lr}
 932              	.LCFI6:
 933              		.cfi_def_cfa_offset 16
 934              		.cfi_offset 4, -16
 935              		.cfi_offset 5, -12
 936              		.cfi_offset 6, -8
 937              		.cfi_offset 14, -4
 397:Component/modbus/modbus_rtu_master.c ****     if (!self)
 938              		.loc 1 397 1 view .LVU275
 939 0002 0400     		movs	r4, r0
 940 0004 1500     		movs	r5, r2
 941              		.loc 1 398 8 view .LVU276
 942 0006 0028     		cmp	r0, #0
 943 0008 1AD0     		beq	.L82
 399:Component/modbus/modbus_rtu_master.c ****     {
 400:Component/modbus/modbus_rtu_master.c ****         return -MODBUS_ERROR_NULL_POINTER;
 401:Component/modbus/modbus_rtu_master.c ****     }
 402:Component/modbus/modbus_rtu_master.c ****     __modbus_rtu_master_lock(self);
 944              		.loc 1 402 5 is_stmt 1 view .LVU277
 403:Component/modbus/modbus_rtu_master.c ****     if (!(self->timeout || self->interval))
 945              		.loc 1 403 5 view .LVU278
 946              		.loc 1 403 8 is_stmt 0 view .LVU279
 947 000a 8368     		ldr	r3, [r0, #8]
 948 000c 002B     		cmp	r3, #0
 949 000e 13D0     		beq	.L89
 950              	.L79:
 404:Component/modbus/modbus_rtu_master.c ****     {
 405:Component/modbus/modbus_rtu_master.c ****         return -MODBUS_ERROR_NO_ERROR;
 406:Component/modbus/modbus_rtu_master.c ****     }
 407:Component/modbus/modbus_rtu_master.c ****     else if ((self->length + len) > MODBUS_BUFFER_SIZE)
 951              		.loc 1 407 10 is_stmt 1 view .LVU280
 952              		.loc 1 407 13 is_stmt 0 view .LVU281
 953 0010 8422     		movs	r2, #132
 954              	.LVL78:
 955              		.loc 1 407 19 view .LVU282
 956 0012 6068     		ldr	r0, [r4, #4]
 957              	.LVL79:
 958              		.loc 1 407 13 view .LVU283
 959 0014 5200     		lsls	r2, r2, #1
 960              		.loc 1 407 28 view .LVU284
 961 0016 4319     		adds	r3, r0, r5
 962              		.loc 1 407 13 view .LVU285
 963 0018 9342     		cmp	r3, r2
 964 001a 0BD8     		bhi	.L80
 408:Component/modbus/modbus_rtu_master.c ****     {
 409:Component/modbus/modbus_rtu_master.c ****         return -MODBUS_ERROR_NO_ERROR;
 410:Component/modbus/modbus_rtu_master.c ****     }
 411:Component/modbus/modbus_rtu_master.c ****     else if (data)
 965              		.loc 1 411 10 is_stmt 1 view .LVU286
 966              		.loc 1 411 13 is_stmt 0 view .LVU287
 967 001c 0029     		cmp	r1, #0
 968 001e 06D0     		beq	.L81
 412:Component/modbus/modbus_rtu_master.c ****     {
 413:Component/modbus/modbus_rtu_master.c ****         memcpy(&self->buffer.bytes[self->length], data, len);
 969              		.loc 1 413 9 is_stmt 1 view .LVU288
ARM GAS  /tmp/ccsuRgce.s 			page 28


 970              		.loc 1 413 16 is_stmt 0 view .LVU289
 971 0020 1C30     		adds	r0, r0, #28
 972              		.loc 1 413 9 view .LVU290
 973 0022 2A00     		movs	r2, r5
 974              		.loc 1 413 16 view .LVU291
 975 0024 2018     		adds	r0, r4, r0
 976              		.loc 1 413 9 view .LVU292
 977 0026 FFF7FEFF 		bl	memcpy
 978              	.LVL80:
 414:Component/modbus/modbus_rtu_master.c ****     }
 415:Component/modbus/modbus_rtu_master.c ****     self->length += len;
 979              		.loc 1 415 18 view .LVU293
 980 002a 6368     		ldr	r3, [r4, #4]
 981 002c EB18     		adds	r3, r5, r3
 982              	.L81:
 983              		.loc 1 415 5 is_stmt 1 view .LVU294
 984              		.loc 1 415 18 is_stmt 0 view .LVU295
 985 002e 6360     		str	r3, [r4, #4]
 416:Component/modbus/modbus_rtu_master.c ****     self->interval = self->reset_interval;
 986              		.loc 1 416 5 is_stmt 1 view .LVU296
 987              		.loc 1 416 20 is_stmt 0 view .LVU297
 988 0030 2369     		ldr	r3, [r4, #16]
 989 0032 E360     		str	r3, [r4, #12]
 417:Component/modbus/modbus_rtu_master.c ****     __modbus_rtu_master_unlock(self);
 990              		.loc 1 417 5 is_stmt 1 view .LVU298
 418:Component/modbus/modbus_rtu_master.c ****     return -MODBUS_ERROR_NO_ERROR;
 991              		.loc 1 418 5 view .LVU299
 992              	.L80:
 405:Component/modbus/modbus_rtu_master.c ****     }
 993              		.loc 1 405 16 is_stmt 0 view .LVU300
 994 0034 0020     		movs	r0, #0
 995              	.L77:
 419:Component/modbus/modbus_rtu_master.c **** }
 996              		.loc 1 419 1 view .LVU301
 997              		@ sp needed
 998              	.LVL81:
 999              	.LVL82:
 1000              		.loc 1 419 1 view .LVU302
 1001 0036 70BD     		pop	{r4, r5, r6, pc}
 1002              	.LVL83:
 1003              	.L89:
 403:Component/modbus/modbus_rtu_master.c ****     {
 1004              		.loc 1 403 9 discriminator 1 view .LVU303
 1005 0038 C368     		ldr	r3, [r0, #12]
 1006 003a 002B     		cmp	r3, #0
 1007 003c E8D1     		bne	.L79
 1008 003e F9E7     		b	.L80
 1009              	.L82:
 400:Component/modbus/modbus_rtu_master.c ****     }
 1010              		.loc 1 400 16 view .LVU304
 1011 0040 0520     		movs	r0, #5
 1012              	.LVL84:
 400:Component/modbus/modbus_rtu_master.c ****     }
 1013              		.loc 1 400 16 view .LVU305
 1014 0042 4042     		rsbs	r0, r0, #0
 1015 0044 F7E7     		b	.L77
 1016              		.cfi_endproc
ARM GAS  /tmp/ccsuRgce.s 			page 29


 1017              	.LFE15:
 1019 0046 C046     		.section	.text.modbus_rtu_master_execution,"ax",%progbits
 1020              		.align	1
 1021              		.p2align 2,,3
 1022              		.global	modbus_rtu_master_execution
 1023              		.syntax unified
 1024              		.code	16
 1025              		.thumb_func
 1027              	modbus_rtu_master_execution:
 1028              	.LVL85:
 1029              	.LFB16:
 420:Component/modbus/modbus_rtu_master.c **** 
 421:Component/modbus/modbus_rtu_master.c **** /// @brief
 422:Component/modbus/modbus_rtu_master.c **** /// @param self
 423:Component/modbus/modbus_rtu_master.c **** /// @param execution
 424:Component/modbus/modbus_rtu_master.c **** /// @return
 425:Component/modbus/modbus_rtu_master.c **** MODBUS_ERROR modbus_rtu_master_execution(modbus_rtu_master_t self, struct modbus_execute *execute)
 426:Component/modbus/modbus_rtu_master.c **** {
 1030              		.loc 1 426 1 is_stmt 1 view -0
 1031              		.cfi_startproc
 1032              		@ args = 0, pretend = 0, frame = 0
 1033              		@ frame_needed = 0, uses_anonymous_args = 0
 427:Component/modbus/modbus_rtu_master.c ****     if (!self && execute)
 1034              		.loc 1 427 5 view .LVU307
 426:Component/modbus/modbus_rtu_master.c ****     if (!self && execute)
 1035              		.loc 1 426 1 is_stmt 0 view .LVU308
 1036 0000 F0B5     		push	{r4, r5, r6, r7, lr}
 1037              	.LCFI7:
 1038              		.cfi_def_cfa_offset 20
 1039              		.cfi_offset 4, -20
 1040              		.cfi_offset 5, -16
 1041              		.cfi_offset 6, -12
 1042              		.cfi_offset 7, -8
 1043              		.cfi_offset 14, -4
 1044 0002 D646     		mov	lr, r10
 1045 0004 4F46     		mov	r7, r9
 1046 0006 4646     		mov	r6, r8
 1047 0008 0400     		movs	r4, r0
 1048 000a 0D00     		movs	r5, r1
 1049 000c C0B5     		push	{r6, r7, lr}
 1050              	.LCFI8:
 1051              		.cfi_def_cfa_offset 32
 1052              		.cfi_offset 8, -32
 1053              		.cfi_offset 9, -28
 1054              		.cfi_offset 10, -24
 1055              		.loc 1 427 8 view .LVU309
 1056 000e 0028     		cmp	r0, #0
 1057 0010 2FD0     		beq	.L152
 1058              	.LVL86:
 1059              	.L91:
 428:Component/modbus/modbus_rtu_master.c ****     {
 429:Component/modbus/modbus_rtu_master.c ****         return -MODBUS_ERROR_NULL_POINTER;
 430:Component/modbus/modbus_rtu_master.c ****     }
 431:Component/modbus/modbus_rtu_master.c ****     if (self->interval && self->timeout)
 1060              		.loc 1 431 5 is_stmt 1 view .LVU310
 1061              		.loc 1 431 8 is_stmt 0 view .LVU311
 1062 0012 E368     		ldr	r3, [r4, #12]
ARM GAS  /tmp/ccsuRgce.s 			page 30


 1063 0014 002B     		cmp	r3, #0
 1064 0016 02D0     		beq	.L93
 1065              		.loc 1 431 24 discriminator 1 view .LVU312
 1066 0018 A368     		ldr	r3, [r4, #8]
 1067 001a 002B     		cmp	r3, #0
 1068 001c 30D1     		bne	.L120
 1069              	.L93:
 432:Component/modbus/modbus_rtu_master.c ****     {
 433:Component/modbus/modbus_rtu_master.c ****         return -MODBUS_ERROR_MASTER_BUSY;
 434:Component/modbus/modbus_rtu_master.c ****     }
 435:Component/modbus/modbus_rtu_master.c ****     __modbus_rtu_master_lock(self);
 1070              		.loc 1 435 5 is_stmt 1 view .LVU313
 436:Component/modbus/modbus_rtu_master.c ****     self->execute = execute;
 1071              		.loc 1 436 5 view .LVU314
 1072              	.LBB122:
 1073              	.LBB123:
  95:Component/modbus/modbus_rtu_master.c ****     self->buffer.head.comm = self->execute->comm;
 1074              		.loc 1 95 26 is_stmt 0 view .LVU315
 1075 001e 2B78     		ldrb	r3, [r5]
 1076              	.LBE123:
 1077              	.LBE122:
 1078              		.loc 1 436 19 view .LVU316
 1079 0020 2560     		str	r5, [r4]
 437:Component/modbus/modbus_rtu_master.c ****     __modbus_rtu_master_requst(self);
 1080              		.loc 1 437 5 is_stmt 1 view .LVU317
 1081              	.LVL87:
 1082              	.LBB148:
 1083              	.LBI122:
  92:Component/modbus/modbus_rtu_master.c **** {
 1084              		.loc 1 92 12 view .LVU318
 1085              	.LBB145:
  94:Component/modbus/modbus_rtu_master.c ****     self->buffer.head.id = self->execute->id;
 1086              		.loc 1 94 5 view .LVU319
  95:Component/modbus/modbus_rtu_master.c ****     self->buffer.head.comm = self->execute->comm;
 1087              		.loc 1 95 5 view .LVU320
  95:Component/modbus/modbus_rtu_master.c ****     self->buffer.head.comm = self->execute->comm;
 1088              		.loc 1 95 26 is_stmt 0 view .LVU321
 1089 0022 2377     		strb	r3, [r4, #28]
  96:Component/modbus/modbus_rtu_master.c ****     self->buffer.head.addr = BE16(self->execute->addr);
 1090              		.loc 1 96 5 is_stmt 1 view .LVU322
  96:Component/modbus/modbus_rtu_master.c ****     self->buffer.head.addr = BE16(self->execute->addr);
 1091              		.loc 1 96 43 is_stmt 0 view .LVU323
 1092 0024 2B7B     		ldrb	r3, [r5, #12]
  96:Component/modbus/modbus_rtu_master.c ****     self->buffer.head.addr = BE16(self->execute->addr);
 1093              		.loc 1 96 28 view .LVU324
 1094 0026 6377     		strb	r3, [r4, #29]
  97:Component/modbus/modbus_rtu_master.c ****     switch (self->execute->comm)
 1095              		.loc 1 97 5 is_stmt 1 view .LVU325
  97:Component/modbus/modbus_rtu_master.c ****     switch (self->execute->comm)
 1096              		.loc 1 97 30 is_stmt 0 view .LVU326
 1097 0028 6A88     		ldrh	r2, [r5, #2]
 1098 002a 52BA     		rev16	r2, r2
  97:Component/modbus/modbus_rtu_master.c ****     switch (self->execute->comm)
 1099              		.loc 1 97 28 discriminator 1 view .LVU327
 1100 002c E283     		strh	r2, [r4, #30]
  98:Component/modbus/modbus_rtu_master.c ****     {
 1101              		.loc 1 98 5 is_stmt 1 view .LVU328
ARM GAS  /tmp/ccsuRgce.s 			page 31


 1102 002e 102B     		cmp	r3, #16
 1103 0030 15D8     		bhi	.L94
  98:Component/modbus/modbus_rtu_master.c ****     {
 1104              		.loc 1 98 5 is_stmt 0 view .LVU329
 1105 0032 7A4A     		ldr	r2, .L153
 1106 0034 9B00     		lsls	r3, r3, #2
 1107 0036 D358     		ldr	r3, [r2, r3]
 1108 0038 9F46     		mov	pc, r3
 1109              		.section	.rodata.modbus_rtu_master_execution,"a",%progbits
 1110              		.align	2
 1111              	.L96:
 1112 0000 5E000000 		.word	.L94
 1113 0004 7A000000 		.word	.L100
 1114 0008 7A000000 		.word	.L100
 1115 000c 7A000000 		.word	.L100
 1116 0010 7A000000 		.word	.L100
 1117 0014 84000000 		.word	.L99
 1118 0018 3A000000 		.word	.L98
 1119 001c 5E000000 		.word	.L94
 1120 0020 5E000000 		.word	.L94
 1121 0024 5E000000 		.word	.L94
 1122 0028 5E000000 		.word	.L94
 1123 002c 5E000000 		.word	.L94
 1124 0030 5E000000 		.word	.L94
 1125 0034 5E000000 		.word	.L94
 1126 0038 5E000000 		.word	.L94
 1127 003c 54010000 		.word	.L97
 1128 0040 90000000 		.word	.L95
 1129              		.section	.text.modbus_rtu_master_execution
 1130              	.L98:
 1131              	.LBB124:
 112:Component/modbus/modbus_rtu_master.c ****         self->buffer.write_sin_req.crc = BE16(modbus_crc(&self->buffer,
 1132              		.loc 1 112 9 is_stmt 1 view .LVU330
 112:Component/modbus/modbus_rtu_master.c ****         self->buffer.write_sin_req.crc = BE16(modbus_crc(&self->buffer,
 1133              		.loc 1 112 43 is_stmt 0 view .LVU331
 1134 003a AB68     		ldr	r3, [r5, #8]
 1135 003c 1B88     		ldrh	r3, [r3]
 1136 003e 5BBA     		rev16	r3, r3
 1137              	.L150:
 118:Component/modbus/modbus_rtu_master.c ****         self->buffer.write_sin_req.crc = BE16(modbus_crc(&self->buffer,
 1138              		.loc 1 118 64 discriminator 1 view .LVU332
 1139 0040 2384     		strh	r3, [r4, #32]
 1140              	.L103:
 119:Component/modbus/modbus_rtu_master.c ****                                                            sizeof(self->buffer.write_sin_req) - 2))
 1141              		.loc 1 119 9 is_stmt 1 view .LVU333
 119:Component/modbus/modbus_rtu_master.c ****                                                            sizeof(self->buffer.write_sin_req) - 2))
 1142              		.loc 1 119 42 is_stmt 0 view .LVU334
 1143 0042 2600     		movs	r6, r4
 1144 0044 1C36     		adds	r6, r6, #28
 1145 0046 0621     		movs	r1, #6
 1146              	.LVL88:
 119:Component/modbus/modbus_rtu_master.c ****                                                            sizeof(self->buffer.write_sin_req) - 2))
 1147              		.loc 1 119 42 view .LVU335
 1148 0048 3000     		movs	r0, r6
 1149 004a FFF7FEFF 		bl	modbus_crc
 1150              	.LVL89:
 1151              	.LBB125:
ARM GAS  /tmp/ccsuRgce.s 			page 32


 1152              	.LBB126:
  61:Component/modbus/modbus_rtu_master.c ****     {
 1153              		.loc 1 61 13 view .LVU336
 1154 004e 6369     		ldr	r3, [r4, #20]
 1155              	.LBE126:
 1156              	.LBE125:
 119:Component/modbus/modbus_rtu_master.c ****                                                            sizeof(self->buffer.write_sin_req) - 2))
 1157              		.loc 1 119 42 discriminator 1 view .LVU337
 1158 0050 40BA     		rev16	r0, r0
 119:Component/modbus/modbus_rtu_master.c ****                                                            sizeof(self->buffer.write_sin_req) - 2))
 1159              		.loc 1 119 40 discriminator 2 view .LVU338
 1160 0052 6084     		strh	r0, [r4, #34]
 121:Component/modbus/modbus_rtu_master.c ****         break;
 1161              		.loc 1 121 9 is_stmt 1 view .LVU339
 1162              	.LVL90:
 1163              	.LBB128:
 1164              	.LBI125:
  59:Component/modbus/modbus_rtu_master.c **** {
 1165              		.loc 1 59 12 view .LVU340
 1166              	.LBB127:
  61:Component/modbus/modbus_rtu_master.c ****     {
 1167              		.loc 1 61 5 view .LVU341
  61:Component/modbus/modbus_rtu_master.c ****     {
 1168              		.loc 1 61 8 is_stmt 0 view .LVU342
 1169 0054 002B     		cmp	r3, #0
 1170 0056 02D0     		beq	.L94
  63:Component/modbus/modbus_rtu_master.c ****         return -MODBUS_ERROR_NO_ERROR;
 1171              		.loc 1 63 9 is_stmt 1 view .LVU343
 1172 0058 0821     		movs	r1, #8
 1173 005a 3000     		movs	r0, r6
 1174 005c 9847     		blx	r3
 1175              	.LVL91:
  64:Component/modbus/modbus_rtu_master.c ****     }
 1176              		.loc 1 64 9 view .LVU344
 1177              	.L94:
  64:Component/modbus/modbus_rtu_master.c ****     }
 1178              		.loc 1 64 9 is_stmt 0 view .LVU345
 1179              	.LBE127:
 1180              	.LBE128:
 1181              	.LBE124:
 158:Component/modbus/modbus_rtu_master.c **** }
 1182              		.loc 1 158 5 is_stmt 1 view .LVU346
 158:Component/modbus/modbus_rtu_master.c **** }
 1183              		.loc 1 158 5 is_stmt 0 view .LVU347
 1184              	.LBE145:
 1185              	.LBE148:
 438:Component/modbus/modbus_rtu_master.c ****     self->timeout = execute->timeout;
 1186              		.loc 1 438 5 is_stmt 1 view .LVU348
 1187              		.loc 1 438 19 is_stmt 0 view .LVU349
 1188 005e 2B69     		ldr	r3, [r5, #16]
 439:Component/modbus/modbus_rtu_master.c ****     self->length = 0;
 440:Component/modbus/modbus_rtu_master.c ****     __modbus_rtu_master_unlock(self);
 441:Component/modbus/modbus_rtu_master.c ****     return -MODBUS_ERROR_NO_ERROR;
 1189              		.loc 1 441 12 view .LVU350
 1190 0060 0020     		movs	r0, #0
 438:Component/modbus/modbus_rtu_master.c ****     self->timeout = execute->timeout;
 1191              		.loc 1 438 19 view .LVU351
ARM GAS  /tmp/ccsuRgce.s 			page 33


 1192 0062 A360     		str	r3, [r4, #8]
 439:Component/modbus/modbus_rtu_master.c ****     self->length = 0;
 1193              		.loc 1 439 5 is_stmt 1 view .LVU352
 439:Component/modbus/modbus_rtu_master.c ****     self->length = 0;
 1194              		.loc 1 439 18 is_stmt 0 view .LVU353
 1195 0064 0023     		movs	r3, #0
 1196 0066 6360     		str	r3, [r4, #4]
 440:Component/modbus/modbus_rtu_master.c ****     return -MODBUS_ERROR_NO_ERROR;
 1197              		.loc 1 440 5 is_stmt 1 view .LVU354
 1198              		.loc 1 441 5 view .LVU355
 1199              	.L92:
 442:Component/modbus/modbus_rtu_master.c **** }
 1200              		.loc 1 442 1 is_stmt 0 view .LVU356
 1201              		@ sp needed
 1202              	.LVL92:
 1203              	.LVL93:
 1204              		.loc 1 442 1 view .LVU357
 1205 0068 E0BC     		pop	{r5, r6, r7}
 1206 006a BA46     		mov	r10, r7
 1207 006c B146     		mov	r9, r6
 1208 006e A846     		mov	r8, r5
 1209 0070 F0BD     		pop	{r4, r5, r6, r7, pc}
 1210              	.LVL94:
 1211              	.L152:
 429:Component/modbus/modbus_rtu_master.c ****     }
 1212              		.loc 1 429 16 view .LVU358
 1213 0072 FB20     		movs	r0, #251
 1214              	.LVL95:
 427:Component/modbus/modbus_rtu_master.c ****     {
 1215              		.loc 1 427 15 discriminator 1 view .LVU359
 1216 0074 0029     		cmp	r1, #0
 1217 0076 CCD0     		beq	.L91
 1218 0078 F6E7     		b	.L92
 1219              	.LVL96:
 1220              	.L100:
 1221              	.LBB149:
 1222              	.LBB146:
 1223              	.LBB143:
 106:Component/modbus/modbus_rtu_master.c ****         self->buffer.read_req.crc = BE16(modbus_crc(&self->buffer,
 1224              		.loc 1 106 9 is_stmt 1 view .LVU360
 106:Component/modbus/modbus_rtu_master.c ****         self->buffer.read_req.crc = BE16(modbus_crc(&self->buffer,
 1225              		.loc 1 106 37 is_stmt 0 view .LVU361
 1226 007a AB88     		ldrh	r3, [r5, #4]
 1227 007c 5BBA     		rev16	r3, r3
 1228 007e DFE7     		b	.L150
 1229              	.LVL97:
 1230              	.L120:
 106:Component/modbus/modbus_rtu_master.c ****         self->buffer.read_req.crc = BE16(modbus_crc(&self->buffer,
 1231              		.loc 1 106 37 view .LVU362
 1232              	.LBE143:
 1233              	.LBE146:
 1234              	.LBE149:
 433:Component/modbus/modbus_rtu_master.c ****     }
 1235              		.loc 1 433 16 view .LVU363
 1236 0080 FA20     		movs	r0, #250
 1237 0082 F1E7     		b	.L92
 1238              	.LVL98:
ARM GAS  /tmp/ccsuRgce.s 			page 34


 1239              	.L99:
 1240              	.LBB150:
 1241              	.LBB147:
 1242              	.LBB144:
 118:Component/modbus/modbus_rtu_master.c ****         self->buffer.write_sin_req.crc = BE16(modbus_crc(&self->buffer,
 1243              		.loc 1 118 9 is_stmt 1 view .LVU364
 1244 0084 AB68     		ldr	r3, [r5, #8]
 118:Component/modbus/modbus_rtu_master.c ****         self->buffer.write_sin_req.crc = BE16(modbus_crc(&self->buffer,
 1245              		.loc 1 118 79 is_stmt 0 view .LVU365
 1246 0086 1B88     		ldrh	r3, [r3]
 1247 0088 002B     		cmp	r3, #0
 1248 008a DAD0     		beq	.L103
 118:Component/modbus/modbus_rtu_master.c ****         self->buffer.write_sin_req.crc = BE16(modbus_crc(&self->buffer,
 1249              		.loc 1 118 64 discriminator 1 view .LVU366
 1250 008c FF23     		movs	r3, #255
 1251 008e D7E7     		b	.L150
 1252              	.L95:
 143:Component/modbus/modbus_rtu_master.c ****         self->buffer.write_mul_regs_req.cnt = self->execute->len << 1;
 1253              		.loc 1 143 9 is_stmt 1 view .LVU367
 143:Component/modbus/modbus_rtu_master.c ****         self->buffer.write_mul_regs_req.cnt = self->execute->len << 1;
 1254              		.loc 1 143 47 is_stmt 0 view .LVU368
 1255 0090 AF88     		ldrh	r7, [r5, #4]
 1256 0092 7BBA     		rev16	r3, r7
 143:Component/modbus/modbus_rtu_master.c ****         self->buffer.write_mul_regs_req.cnt = self->execute->len << 1;
 1257              		.loc 1 143 45 discriminator 1 view .LVU369
 1258 0094 2384     		strh	r3, [r4, #32]
 144:Component/modbus/modbus_rtu_master.c ****         len = sizeof(self->buffer.write_mul_regs_req) + self->buffer.write_mul_regs_req.cnt;
 1259              		.loc 1 144 9 is_stmt 1 view .LVU370
 144:Component/modbus/modbus_rtu_master.c ****         len = sizeof(self->buffer.write_mul_regs_req) + self->buffer.write_mul_regs_req.cnt;
 1260              		.loc 1 144 45 is_stmt 0 view .LVU371
 1261 0096 2223     		movs	r3, #34
 144:Component/modbus/modbus_rtu_master.c ****         len = sizeof(self->buffer.write_mul_regs_req) + self->buffer.write_mul_regs_req.cnt;
 1262              		.loc 1 144 66 view .LVU372
 1263 0098 7E00     		lsls	r6, r7, #1
 1264 009a F6B2     		uxtb	r6, r6
 144:Component/modbus/modbus_rtu_master.c ****         len = sizeof(self->buffer.write_mul_regs_req) + self->buffer.write_mul_regs_req.cnt;
 1265              		.loc 1 144 45 view .LVU373
 1266 009c E654     		strb	r6, [r4, r3]
 145:Component/modbus/modbus_rtu_master.c ****         for (uint32_t loop = 0; loop < (self->execute->len); loop++)
 1267              		.loc 1 145 9 is_stmt 1 view .LVU374
 145:Component/modbus/modbus_rtu_master.c ****         for (uint32_t loop = 0; loop < (self->execute->len); loop++)
 1268              		.loc 1 145 13 is_stmt 0 view .LVU375
 1269 009e F31D     		adds	r3, r6, #7
 1270 00a0 9846     		mov	r8, r3
 1271              	.LVL99:
 146:Component/modbus/modbus_rtu_master.c ****         {
 1272              		.loc 1 146 9 is_stmt 1 view .LVU376
 1273              	.LBB129:
 146:Component/modbus/modbus_rtu_master.c ****         {
 1274              		.loc 1 146 14 view .LVU377
 146:Component/modbus/modbus_rtu_master.c ****         {
 1275              		.loc 1 146 38 discriminator 1 view .LVU378
 1276 00a2 002F     		cmp	r7, #0
 1277 00a4 3FD0     		beq	.L115
 148:Component/modbus/modbus_rtu_master.c ****         }
 1278              		.loc 1 148 71 is_stmt 0 view .LVU379
 1279 00a6 AB68     		ldr	r3, [r5, #8]
ARM GAS  /tmp/ccsuRgce.s 			page 35


 1280              	.LVL100:
 148:Component/modbus/modbus_rtu_master.c ****         }
 1281              		.loc 1 148 71 view .LVU380
 1282 00a8 9C46     		mov	ip, r3
 1283 00aa 7B1E     		subs	r3, r7, #1
 1284 00ac 062B     		cmp	r3, #6
 1285 00ae 00D8     		bhi	.LCB1102
 1286 00b0 A5E0     		b	.L122	@long jump
 1287              	.LCB1102:
 1288 00b2 2100     		movs	r1, r4
 1289              	.LVL101:
 148:Component/modbus/modbus_rtu_master.c ****         }
 1290              		.loc 1 148 71 view .LVU381
 1291 00b4 2200     		movs	r2, r4
 1292 00b6 6346     		mov	r3, ip
 1293 00b8 2231     		adds	r1, r1, #34
 1294 00ba 2332     		adds	r2, r2, #35
 1295 00bc C91A     		subs	r1, r1, r3
 1296 00be 0629     		cmp	r1, #6
 1297 00c0 00D8     		bhi	.LCB1114
 1298 00c2 9CE0     		b	.L122	@long jump
 1299              	.LCB1114:
 1300 00c4 6146     		mov	r1, ip
 1301 00c6 1143     		orrs	r1, r2
 1302 00c8 4907     		lsls	r1, r1, #29
 1303 00ca 00D0     		beq	.LCB1122
 1304 00cc 97E0     		b	.L122	@long jump
 1305              	.LCB1122:
 1306 00ce B908     		lsrs	r1, r7, #2
 1307 00d0 C900     		lsls	r1, r1, #3
 1308 00d2 6144     		add	r1, r1, ip
 1309 00d4 8946     		mov	r9, r1
 1310              	.LVL102:
 1311              	.L113:
 148:Component/modbus/modbus_rtu_master.c ****         }
 1312              		.loc 1 148 13 is_stmt 1 view .LVU382
 148:Component/modbus/modbus_rtu_master.c ****         }
 1313              		.loc 1 148 77 is_stmt 0 view .LVU383
 1314 00d6 03CB     		ldmia	r3!, {r0, r1}
 148:Component/modbus/modbus_rtu_master.c ****         }
 1315              		.loc 1 148 56 view .LVU384
 1316 00d8 03C2     		stmia	r2!, {r0, r1}
 146:Component/modbus/modbus_rtu_master.c ****         {
 1317              		.loc 1 146 66 is_stmt 1 discriminator 3 view .LVU385
 146:Component/modbus/modbus_rtu_master.c ****         {
 1318              		.loc 1 146 38 discriminator 1 view .LVU386
 1319 00da 4B45     		cmp	r3, r9
 1320 00dc FBD1     		bne	.L113
 1321 00de 0323     		movs	r3, #3
 1322 00e0 3A00     		movs	r2, r7
 1323 00e2 9A43     		bics	r2, r3
 1324 00e4 3B42     		tst	r3, r7
 1325 00e6 1ED0     		beq	.L115
 1326              	.LVL103:
 148:Component/modbus/modbus_rtu_master.c ****         }
 1327              		.loc 1 148 13 view .LVU387
 148:Component/modbus/modbus_rtu_master.c ****         }
ARM GAS  /tmp/ccsuRgce.s 			page 36


 1328              		.loc 1 148 77 is_stmt 0 view .LVU388
 1329 00e8 5300     		lsls	r3, r2, #1
 1330 00ea E018     		adds	r0, r4, r3
 1331 00ec 8246     		mov	r10, r0
 148:Component/modbus/modbus_rtu_master.c ****         }
 1332              		.loc 1 148 56 view .LVU389
 1333 00ee 2320     		movs	r0, #35
 1334 00f0 8146     		mov	r9, r0
 148:Component/modbus/modbus_rtu_master.c ****         }
 1335              		.loc 1 148 77 view .LVU390
 1336 00f2 6146     		mov	r1, ip
 148:Component/modbus/modbus_rtu_master.c ****         }
 1337              		.loc 1 148 56 view .LVU391
 1338 00f4 D144     		add	r9, r9, r10
 1339 00f6 4846     		mov	r0, r9
 148:Component/modbus/modbus_rtu_master.c ****         }
 1340              		.loc 1 148 77 view .LVU392
 1341 00f8 C95A     		ldrh	r1, [r1, r3]
 148:Component/modbus/modbus_rtu_master.c ****         }
 1342              		.loc 1 148 56 view .LVU393
 1343 00fa 0170     		strb	r1, [r0]
 1344 00fc 090A     		lsrs	r1, r1, #8
 1345 00fe 4170     		strb	r1, [r0, #1]
 146:Component/modbus/modbus_rtu_master.c ****         {
 1346              		.loc 1 146 66 is_stmt 1 discriminator 3 view .LVU394
 1347              	.LVL104:
 146:Component/modbus/modbus_rtu_master.c ****         {
 1348              		.loc 1 146 38 discriminator 1 view .LVU395
 146:Component/modbus/modbus_rtu_master.c ****         {
 1349              		.loc 1 146 66 is_stmt 0 discriminator 3 view .LVU396
 1350 0100 511C     		adds	r1, r2, #1
 146:Component/modbus/modbus_rtu_master.c ****         {
 1351              		.loc 1 146 38 discriminator 1 view .LVU397
 1352 0102 8F42     		cmp	r7, r1
 1353 0104 0FD9     		bls	.L115
 148:Component/modbus/modbus_rtu_master.c ****         }
 1354              		.loc 1 148 13 is_stmt 1 view .LVU398
 148:Component/modbus/modbus_rtu_master.c ****         }
 1355              		.loc 1 148 56 is_stmt 0 view .LVU399
 1356 0106 2520     		movs	r0, #37
 148:Component/modbus/modbus_rtu_master.c ****         }
 1357              		.loc 1 148 77 view .LVU400
 1358 0108 6344     		add	r3, r3, ip
 148:Component/modbus/modbus_rtu_master.c ****         }
 1359              		.loc 1 148 56 view .LVU401
 1360 010a 8446     		mov	ip, r0
 1361 010c D444     		add	ip, ip, r10
 1362 010e 6046     		mov	r0, ip
 148:Component/modbus/modbus_rtu_master.c ****         }
 1363              		.loc 1 148 77 view .LVU402
 1364 0110 5988     		ldrh	r1, [r3, #2]
 146:Component/modbus/modbus_rtu_master.c ****         {
 1365              		.loc 1 146 66 discriminator 3 view .LVU403
 1366 0112 0232     		adds	r2, r2, #2
 148:Component/modbus/modbus_rtu_master.c ****         }
 1367              		.loc 1 148 56 view .LVU404
 1368 0114 0170     		strb	r1, [r0]
ARM GAS  /tmp/ccsuRgce.s 			page 37


 1369 0116 090A     		lsrs	r1, r1, #8
 1370 0118 4170     		strb	r1, [r0, #1]
 146:Component/modbus/modbus_rtu_master.c ****         {
 1371              		.loc 1 146 66 is_stmt 1 discriminator 3 view .LVU405
 1372              	.LVL105:
 146:Component/modbus/modbus_rtu_master.c ****         {
 1373              		.loc 1 146 38 discriminator 1 view .LVU406
 1374 011a 9742     		cmp	r7, r2
 1375 011c 03D9     		bls	.L115
 148:Component/modbus/modbus_rtu_master.c ****         }
 1376              		.loc 1 148 13 view .LVU407
 148:Component/modbus/modbus_rtu_master.c ****         }
 1377              		.loc 1 148 77 is_stmt 0 view .LVU408
 1378 011e 9B88     		ldrh	r3, [r3, #4]
 148:Component/modbus/modbus_rtu_master.c ****         }
 1379              		.loc 1 148 56 view .LVU409
 1380 0120 8370     		strb	r3, [r0, #2]
 1381 0122 1B0A     		lsrs	r3, r3, #8
 1382 0124 C370     		strb	r3, [r0, #3]
 146:Component/modbus/modbus_rtu_master.c ****         {
 1383              		.loc 1 146 66 is_stmt 1 discriminator 3 view .LVU410
 1384              	.LVL106:
 146:Component/modbus/modbus_rtu_master.c ****         {
 1385              		.loc 1 146 38 discriminator 1 view .LVU411
 1386              	.L115:
 146:Component/modbus/modbus_rtu_master.c ****         {
 1387              		.loc 1 146 38 is_stmt 0 discriminator 1 view .LVU412
 1388              	.LBE129:
 150:Component/modbus/modbus_rtu_master.c ****         __modbus_rtu_master_on_send(self, len + 2);
 1389              		.loc 1 150 9 is_stmt 1 view .LVU413
 150:Component/modbus/modbus_rtu_master.c ****         __modbus_rtu_master_on_send(self, len + 2);
 1390              		.loc 1 150 68 is_stmt 0 view .LVU414
 1391 0126 2700     		movs	r7, r4
 1392 0128 4346     		mov	r3, r8
 1393 012a 1C37     		adds	r7, r7, #28
 1394 012c 99B2     		uxth	r1, r3
 1395 012e 3800     		movs	r0, r7
 1396 0130 FFF7FEFF 		bl	modbus_crc
 1397              	.LVL107:
 151:Component/modbus/modbus_rtu_master.c ****         break;
 1398              		.loc 1 151 9 view .LVU415
 1399 0134 3100     		movs	r1, r6
 150:Component/modbus/modbus_rtu_master.c ****         __modbus_rtu_master_on_send(self, len + 2);
 1400              		.loc 1 150 59 discriminator 1 view .LVU416
 1401 0136 2368     		ldr	r3, [r4]
 150:Component/modbus/modbus_rtu_master.c ****         __modbus_rtu_master_on_send(self, len + 2);
 1402              		.loc 1 150 68 discriminator 1 view .LVU417
 1403 0138 40BA     		rev16	r0, r0
 150:Component/modbus/modbus_rtu_master.c ****         __modbus_rtu_master_on_send(self, len + 2);
 1404              		.loc 1 150 59 discriminator 1 view .LVU418
 1405 013a 9B88     		ldrh	r3, [r3, #4]
 150:Component/modbus/modbus_rtu_master.c ****         __modbus_rtu_master_on_send(self, len + 2);
 1406              		.loc 1 150 68 discriminator 1 view .LVU419
 1407 013c 82B2     		uxth	r2, r0
 150:Component/modbus/modbus_rtu_master.c ****         __modbus_rtu_master_on_send(self, len + 2);
 1408              		.loc 1 150 66 discriminator 2 view .LVU420
 1409 013e 0C33     		adds	r3, r3, #12
ARM GAS  /tmp/ccsuRgce.s 			page 38


 1410 0140 5B00     		lsls	r3, r3, #1
 1411 0142 E318     		adds	r3, r4, r3
 1412 0144 120A     		lsrs	r2, r2, #8
 1413 0146 D872     		strb	r0, [r3, #11]
 1414 0148 1A73     		strb	r2, [r3, #12]
 151:Component/modbus/modbus_rtu_master.c ****         break;
 1415              		.loc 1 151 9 is_stmt 1 view .LVU421
 1416              	.LBB130:
 1417              	.LBB131:
  61:Component/modbus/modbus_rtu_master.c ****     {
 1418              		.loc 1 61 13 is_stmt 0 view .LVU422
 1419 014a 6369     		ldr	r3, [r4, #20]
 1420              	.LBE131:
 1421              	.LBE130:
 151:Component/modbus/modbus_rtu_master.c ****         break;
 1422              		.loc 1 151 9 view .LVU423
 1423 014c 0931     		adds	r1, r1, #9
 1424              	.LVL108:
 1425              	.LBB134:
 1426              	.LBI130:
  59:Component/modbus/modbus_rtu_master.c **** {
 1427              		.loc 1 59 12 is_stmt 1 view .LVU424
 1428              	.LBB132:
  61:Component/modbus/modbus_rtu_master.c ****     {
 1429              		.loc 1 61 5 view .LVU425
  61:Component/modbus/modbus_rtu_master.c ****     {
 1430              		.loc 1 61 8 is_stmt 0 view .LVU426
 1431 014e 002B     		cmp	r3, #0
 1432 0150 46D1     		bne	.L111
 1433 0152 84E7     		b	.L94
 1434              	.LVL109:
 1435              	.L97:
  61:Component/modbus/modbus_rtu_master.c ****     {
 1436              		.loc 1 61 8 view .LVU427
 1437              	.LBE132:
 1438              	.LBE134:
 124:Component/modbus/modbus_rtu_master.c ****         self->buffer.write_mul_coil_req.cnt = (self->execute->len >> 3) + (bool)(self->execute->len
 1439              		.loc 1 124 9 is_stmt 1 view .LVU428
 125:Component/modbus/modbus_rtu_master.c ****         for (uint32_t loop = 0; loop < self->execute->len; loop++)
 1440              		.loc 1 125 75 is_stmt 0 view .LVU429
 1441 0154 0726     		movs	r6, #7
 124:Component/modbus/modbus_rtu_master.c ****         self->buffer.write_mul_coil_req.cnt = (self->execute->len >> 3) + (bool)(self->execute->len
 1442              		.loc 1 124 47 view .LVU430
 1443 0156 AF88     		ldrh	r7, [r5, #4]
 1444 0158 7BBA     		rev16	r3, r7
 125:Component/modbus/modbus_rtu_master.c ****         for (uint32_t loop = 0; loop < self->execute->len; loop++)
 1445              		.loc 1 125 75 view .LVU431
 1446 015a 3E40     		ands	r6, r7
 124:Component/modbus/modbus_rtu_master.c ****         self->buffer.write_mul_coil_req.cnt = (self->execute->len >> 3) + (bool)(self->execute->len
 1447              		.loc 1 124 45 discriminator 1 view .LVU432
 1448 015c 2384     		strh	r3, [r4, #32]
 125:Component/modbus/modbus_rtu_master.c ****         for (uint32_t loop = 0; loop < self->execute->len; loop++)
 1449              		.loc 1 125 9 is_stmt 1 view .LVU433
 125:Component/modbus/modbus_rtu_master.c ****         for (uint32_t loop = 0; loop < self->execute->len; loop++)
 1450              		.loc 1 125 75 is_stmt 0 view .LVU434
 1451 015e 731E     		subs	r3, r6, #1
 1452 0160 9E41     		sbcs	r6, r6, r3
ARM GAS  /tmp/ccsuRgce.s 			page 39


 125:Component/modbus/modbus_rtu_master.c ****         for (uint32_t loop = 0; loop < self->execute->len; loop++)
 1453              		.loc 1 125 73 view .LVU435
 1454 0162 FB08     		lsrs	r3, r7, #3
 1455 0164 F618     		adds	r6, r6, r3
 1456 0166 F3B2     		uxtb	r3, r6
 1457 0168 9A46     		mov	r10, r3
 125:Component/modbus/modbus_rtu_master.c ****         for (uint32_t loop = 0; loop < self->execute->len; loop++)
 1458              		.loc 1 125 45 view .LVU436
 1459 016a 2223     		movs	r3, #34
 1460 016c 5246     		mov	r2, r10
 1461 016e E254     		strb	r2, [r4, r3]
 126:Component/modbus/modbus_rtu_master.c ****         {
 1462              		.loc 1 126 9 is_stmt 1 view .LVU437
 1463              	.LBB135:
 126:Component/modbus/modbus_rtu_master.c ****         {
 1464              		.loc 1 126 14 view .LVU438
 1465              	.LVL110:
 126:Component/modbus/modbus_rtu_master.c ****         {
 1466              		.loc 1 126 38 discriminator 1 view .LVU439
 1467 0170 002F     		cmp	r7, #0
 1468 0172 1ED0     		beq	.L108
 133:Component/modbus/modbus_rtu_master.c ****         }
 1469              		.loc 1 133 37 is_stmt 0 view .LVU440
 1470 0174 AB68     		ldr	r3, [r5, #8]
 128:Component/modbus/modbus_rtu_master.c ****             {
 1471              		.loc 1 128 24 view .LVU441
 1472 0176 0720     		movs	r0, #7
 133:Component/modbus/modbus_rtu_master.c ****         }
 1473              		.loc 1 133 37 view .LVU442
 1474 0178 9C46     		mov	ip, r3
 126:Component/modbus/modbus_rtu_master.c ****         {
 1475              		.loc 1 126 23 view .LVU443
 1476 017a 0023     		movs	r3, #0
 1477              	.LVL111:
 1478              	.L109:
 128:Component/modbus/modbus_rtu_master.c ****             {
 1479              		.loc 1 128 13 is_stmt 1 view .LVU444
 128:Component/modbus/modbus_rtu_master.c ****             {
 1480              		.loc 1 128 24 is_stmt 0 view .LVU445
 1481 017c 0100     		movs	r1, r0
 130:Component/modbus/modbus_rtu_master.c ****             }
 1482              		.loc 1 130 59 view .LVU446
 1483 017e DA08     		lsrs	r2, r3, #3
 128:Component/modbus/modbus_rtu_master.c ****             {
 1484              		.loc 1 128 24 view .LVU447
 1485 0180 1940     		ands	r1, r3
 130:Component/modbus/modbus_rtu_master.c ****             }
 1486              		.loc 1 130 65 view .LVU448
 1487 0182 A218     		adds	r2, r4, r2
 128:Component/modbus/modbus_rtu_master.c ****             {
 1488              		.loc 1 128 16 view .LVU449
 1489 0184 1842     		tst	r0, r3
 1490 0186 2ED0     		beq	.L106
 132:Component/modbus/modbus_rtu_master.c ****                 ((bool)self->execute->data[loop]) << (loop & 0x7);
 1491              		.loc 1 132 13 is_stmt 1 view .LVU450
 132:Component/modbus/modbus_rtu_master.c ****                 ((bool)self->execute->data[loop]) << (loop & 0x7);
 1492              		.loc 1 132 61 is_stmt 0 view .LVU451
ARM GAS  /tmp/ccsuRgce.s 			page 40


 1493 0188 2326     		movs	r6, #35
 1494 018a B146     		mov	r9, r6
 133:Component/modbus/modbus_rtu_master.c ****         }
 1495              		.loc 1 133 43 view .LVU452
 1496 018c 5E00     		lsls	r6, r3, #1
 1497 018e B046     		mov	r8, r6
 132:Component/modbus/modbus_rtu_master.c ****                 ((bool)self->execute->data[loop]) << (loop & 0x7);
 1498              		.loc 1 132 61 view .LVU453
 1499 0190 9144     		add	r9, r9, r2
 133:Component/modbus/modbus_rtu_master.c ****         }
 1500              		.loc 1 133 18 view .LVU454
 1501 0192 6646     		mov	r6, ip
 1502 0194 4246     		mov	r2, r8
 1503 0196 B25A     		ldrh	r2, [r6, r2]
 126:Component/modbus/modbus_rtu_master.c ****         {
 1504              		.loc 1 126 64 discriminator 2 view .LVU455
 1505 0198 0133     		adds	r3, r3, #1
 1506              	.LVL112:
 133:Component/modbus/modbus_rtu_master.c ****         }
 1507              		.loc 1 133 18 view .LVU456
 1508 019a 1600     		movs	r6, r2
 1509 019c 721E     		subs	r2, r6, #1
 1510 019e 9641     		sbcs	r6, r6, r2
 133:Component/modbus/modbus_rtu_master.c ****         }
 1511              		.loc 1 133 51 view .LVU457
 1512 01a0 8E40     		lsls	r6, r6, r1
 132:Component/modbus/modbus_rtu_master.c ****                 ((bool)self->execute->data[loop]) << (loop & 0x7);
 1513              		.loc 1 132 61 view .LVU458
 1514 01a2 4A46     		mov	r2, r9
 133:Component/modbus/modbus_rtu_master.c ****         }
 1515              		.loc 1 133 51 view .LVU459
 1516 01a4 3100     		movs	r1, r6
 132:Component/modbus/modbus_rtu_master.c ****                 ((bool)self->execute->data[loop]) << (loop & 0x7);
 1517              		.loc 1 132 61 view .LVU460
 1518 01a6 1278     		ldrb	r2, [r2]
 1519 01a8 1143     		orrs	r1, r2
 1520 01aa 4A46     		mov	r2, r9
 1521 01ac 1170     		strb	r1, [r2]
 126:Component/modbus/modbus_rtu_master.c ****         {
 1522              		.loc 1 126 64 is_stmt 1 discriminator 2 view .LVU461
 1523              	.LVL113:
 126:Component/modbus/modbus_rtu_master.c ****         {
 1524              		.loc 1 126 38 discriminator 1 view .LVU462
 1525 01ae 9F42     		cmp	r7, r3
 1526 01b0 E4D8     		bhi	.L109
 1527              	.LVL114:
 1528              	.L108:
 126:Component/modbus/modbus_rtu_master.c ****         {
 1529              		.loc 1 126 38 is_stmt 0 discriminator 1 view .LVU463
 1530              	.LBE135:
 135:Component/modbus/modbus_rtu_master.c ****         const uint16_t crc = modbus_crc(&self->buffer, len);
 1531              		.loc 1 135 9 is_stmt 1 view .LVU464
 135:Component/modbus/modbus_rtu_master.c ****         const uint16_t crc = modbus_crc(&self->buffer, len);
 1532              		.loc 1 135 13 is_stmt 0 view .LVU465
 1533 01b2 5346     		mov	r3, r10
 136:Component/modbus/modbus_rtu_master.c ****         self->buffer.bytes[len++] = (crc >> 8) & 0xFF;
 1534              		.loc 1 136 41 view .LVU466
ARM GAS  /tmp/ccsuRgce.s 			page 41


 1535 01b4 2700     		movs	r7, r4
 135:Component/modbus/modbus_rtu_master.c ****         const uint16_t crc = modbus_crc(&self->buffer, len);
 1536              		.loc 1 135 13 view .LVU467
 1537 01b6 0733     		adds	r3, r3, #7
 1538 01b8 9846     		mov	r8, r3
 1539              	.LVL115:
 136:Component/modbus/modbus_rtu_master.c ****         self->buffer.bytes[len++] = (crc >> 8) & 0xFF;
 1540              		.loc 1 136 9 is_stmt 1 view .LVU468
 136:Component/modbus/modbus_rtu_master.c ****         self->buffer.bytes[len++] = (crc >> 8) & 0xFF;
 1541              		.loc 1 136 41 is_stmt 0 view .LVU469
 1542 01ba 1C37     		adds	r7, r7, #28
 136:Component/modbus/modbus_rtu_master.c ****         self->buffer.bytes[len++] = (crc >> 8) & 0xFF;
 1543              		.loc 1 136 30 view .LVU470
 1544 01bc 1900     		movs	r1, r3
 1545 01be 3800     		movs	r0, r7
 1546 01c0 FFF7FEFF 		bl	modbus_crc
 1547              	.LVL116:
 137:Component/modbus/modbus_rtu_master.c ****         self->buffer.bytes[len++] = crc & 0xFF;
 1548              		.loc 1 137 9 is_stmt 1 view .LVU471
 137:Component/modbus/modbus_rtu_master.c ****         self->buffer.bytes[len++] = crc & 0xFF;
 1549              		.loc 1 137 35 is_stmt 0 view .LVU472
 1550 01c4 4346     		mov	r3, r8
 1551 01c6 020A     		lsrs	r2, r0, #8
 1552 01c8 E318     		adds	r3, r4, r3
 1553 01ca 1A77     		strb	r2, [r3, #28]
 138:Component/modbus/modbus_rtu_master.c ****         __modbus_rtu_master_on_send(self, len);
 1554              		.loc 1 138 9 is_stmt 1 view .LVU473
 138:Component/modbus/modbus_rtu_master.c ****         __modbus_rtu_master_on_send(self, len);
 1555              		.loc 1 138 35 is_stmt 0 view .LVU474
 1556 01cc 5346     		mov	r3, r10
 138:Component/modbus/modbus_rtu_master.c ****         __modbus_rtu_master_on_send(self, len);
 1557              		.loc 1 138 31 view .LVU475
 1558 01ce 5146     		mov	r1, r10
 138:Component/modbus/modbus_rtu_master.c ****         __modbus_rtu_master_on_send(self, len);
 1559              		.loc 1 138 35 view .LVU476
 1560 01d0 E618     		adds	r6, r4, r3
 1561              	.LBB136:
 1562              	.LBB137:
  61:Component/modbus/modbus_rtu_master.c ****     {
 1563              		.loc 1 61 13 view .LVU477
 1564 01d2 6369     		ldr	r3, [r4, #20]
 1565              	.LBE137:
 1566              	.LBE136:
 138:Component/modbus/modbus_rtu_master.c ****         __modbus_rtu_master_on_send(self, len);
 1567              		.loc 1 138 35 view .LVU478
 1568 01d4 2436     		adds	r6, r6, #36
 138:Component/modbus/modbus_rtu_master.c ****         __modbus_rtu_master_on_send(self, len);
 1569              		.loc 1 138 31 view .LVU479
 1570 01d6 0931     		adds	r1, r1, #9
 1571              	.LVL117:
 138:Component/modbus/modbus_rtu_master.c ****         __modbus_rtu_master_on_send(self, len);
 1572              		.loc 1 138 35 view .LVU480
 1573 01d8 3070     		strb	r0, [r6]
 139:Component/modbus/modbus_rtu_master.c ****         break;
 1574              		.loc 1 139 9 is_stmt 1 view .LVU481
 1575              	.LVL118:
 1576              	.LBB139:
ARM GAS  /tmp/ccsuRgce.s 			page 42


 1577              	.LBI136:
  59:Component/modbus/modbus_rtu_master.c **** {
 1578              		.loc 1 59 12 view .LVU482
 1579              	.LBB138:
  61:Component/modbus/modbus_rtu_master.c ****     {
 1580              		.loc 1 61 5 view .LVU483
  61:Component/modbus/modbus_rtu_master.c ****     {
 1581              		.loc 1 61 8 is_stmt 0 view .LVU484
 1582 01da 002B     		cmp	r3, #0
 1583 01dc 00D1     		bne	.LCB1363
 1584 01de 3EE7     		b	.L94	@long jump
 1585              	.LCB1363:
 1586              	.LVL119:
 1587              	.L111:
  61:Component/modbus/modbus_rtu_master.c ****     {
 1588              		.loc 1 61 8 view .LVU485
 1589              	.LBE138:
 1590              	.LBE139:
 1591              	.LBB140:
 1592              	.LBB133:
  63:Component/modbus/modbus_rtu_master.c ****         return -MODBUS_ERROR_NO_ERROR;
 1593              		.loc 1 63 9 is_stmt 1 view .LVU486
 1594 01e0 3800     		movs	r0, r7
 1595 01e2 9847     		blx	r3
 1596              	.LVL120:
  64:Component/modbus/modbus_rtu_master.c ****     }
 1597              		.loc 1 64 9 view .LVU487
  64:Component/modbus/modbus_rtu_master.c ****     }
 1598              		.loc 1 64 16 is_stmt 0 view .LVU488
 1599 01e4 3BE7     		b	.L94
 1600              	.LVL121:
 1601              	.L106:
  64:Component/modbus/modbus_rtu_master.c ****     }
 1602              		.loc 1 64 16 view .LVU489
 1603              	.LBE133:
 1604              	.LBE140:
 1605              	.LBB141:
 130:Component/modbus/modbus_rtu_master.c ****             }
 1606              		.loc 1 130 17 is_stmt 1 view .LVU490
 133:Component/modbus/modbus_rtu_master.c ****         }
 1607              		.loc 1 133 18 is_stmt 0 view .LVU491
 1608 01e6 6646     		mov	r6, ip
 130:Component/modbus/modbus_rtu_master.c ****             }
 1609              		.loc 1 130 65 view .LVU492
 1610 01e8 2332     		adds	r2, r2, #35
 1611 01ea 1170     		strb	r1, [r2]
 132:Component/modbus/modbus_rtu_master.c ****                 ((bool)self->execute->data[loop]) << (loop & 0x7);
 1612              		.loc 1 132 13 is_stmt 1 view .LVU493
 133:Component/modbus/modbus_rtu_master.c ****         }
 1613              		.loc 1 133 43 is_stmt 0 view .LVU494
 1614 01ec 5900     		lsls	r1, r3, #1
 133:Component/modbus/modbus_rtu_master.c ****         }
 1615              		.loc 1 133 18 view .LVU495
 1616 01ee 715A     		ldrh	r1, [r6, r1]
 126:Component/modbus/modbus_rtu_master.c ****         {
 1617              		.loc 1 126 64 discriminator 2 view .LVU496
 1618 01f0 0133     		adds	r3, r3, #1
ARM GAS  /tmp/ccsuRgce.s 			page 43


 1619              	.LVL122:
 133:Component/modbus/modbus_rtu_master.c ****         }
 1620              		.loc 1 133 18 view .LVU497
 1621 01f2 4E1E     		subs	r6, r1, #1
 1622 01f4 B141     		sbcs	r1, r1, r6
 132:Component/modbus/modbus_rtu_master.c ****                 ((bool)self->execute->data[loop]) << (loop & 0x7);
 1623              		.loc 1 132 61 view .LVU498
 1624 01f6 1170     		strb	r1, [r2]
 126:Component/modbus/modbus_rtu_master.c ****         {
 1625              		.loc 1 126 64 is_stmt 1 discriminator 2 view .LVU499
 1626              	.LVL123:
 126:Component/modbus/modbus_rtu_master.c ****         {
 1627              		.loc 1 126 38 discriminator 1 view .LVU500
 1628 01f8 9F42     		cmp	r7, r3
 1629 01fa BFD8     		bhi	.L109
 1630 01fc D9E7     		b	.L108
 1631              	.LVL124:
 1632              	.L122:
 126:Component/modbus/modbus_rtu_master.c ****         {
 1633              		.loc 1 126 38 is_stmt 0 discriminator 1 view .LVU501
 1634              	.LBE141:
 1635              	.LBB142:
 148:Component/modbus/modbus_rtu_master.c ****         }
 1636              		.loc 1 148 71 view .LVU502
 1637 01fe 0022     		movs	r2, #0
 1638              	.LVL125:
 1639              	.L117:
 148:Component/modbus/modbus_rtu_master.c ****         }
 1640              		.loc 1 148 13 is_stmt 1 view .LVU503
 148:Component/modbus/modbus_rtu_master.c ****         }
 1641              		.loc 1 148 77 is_stmt 0 view .LVU504
 1642 0200 6146     		mov	r1, ip
 1643 0202 5300     		lsls	r3, r2, #1
 1644 0204 C95A     		ldrh	r1, [r1, r3]
 148:Component/modbus/modbus_rtu_master.c ****         }
 1645              		.loc 1 148 56 view .LVU505
 1646 0206 1300     		movs	r3, r2
 1647 0208 0C33     		adds	r3, r3, #12
 1648 020a 5B00     		lsls	r3, r3, #1
 1649 020c E318     		adds	r3, r4, r3
 1650 020e D972     		strb	r1, [r3, #11]
 146:Component/modbus/modbus_rtu_master.c ****         {
 1651              		.loc 1 146 66 discriminator 3 view .LVU506
 1652 0210 0132     		adds	r2, r2, #1
 1653              	.LVL126:
 148:Component/modbus/modbus_rtu_master.c ****         }
 1654              		.loc 1 148 56 view .LVU507
 1655 0212 090A     		lsrs	r1, r1, #8
 1656 0214 1973     		strb	r1, [r3, #12]
 146:Component/modbus/modbus_rtu_master.c ****         {
 1657              		.loc 1 146 66 is_stmt 1 discriminator 3 view .LVU508
 1658              	.LVL127:
 146:Component/modbus/modbus_rtu_master.c ****         {
 1659              		.loc 1 146 38 discriminator 1 view .LVU509
 1660 0216 9742     		cmp	r7, r2
 1661 0218 F2D8     		bhi	.L117
 1662 021a 84E7     		b	.L115
ARM GAS  /tmp/ccsuRgce.s 			page 44


 1663              	.L154:
 1664              		.align	2
 1665              	.L153:
 1666 021c 00000000 		.word	.L96
 1667              	.LBE142:
 1668              	.LBE144:
 1669              	.LBE147:
 1670              	.LBE150:
 1671              		.cfi_endproc
 1672              	.LFE16:
 1674              		.text
 1675              	.Letext0:
 1676              		.file 2 "/home/ha/toolchain/arm-gnu-toolchain-14.3/arm-none-eabi/include/machine/_default_types.h"
 1677              		.file 3 "/home/ha/toolchain/arm-gnu-toolchain-14.3/arm-none-eabi/include/sys/_stdint.h"
 1678              		.file 4 "Component/modbus/modbus_define.h"
 1679              		.file 5 "Component/modbus/modbus_rtu.h"
 1680              		.file 6 "Component/modbus/modbus_rtu_master.h"
 1681              		.file 7 "/home/ha/toolchain/arm-gnu-toolchain-14.3/arm-none-eabi/include/string.h"
 1682              		.file 8 "/home/ha/toolchain/arm-gnu-toolchain-14.3/arm-none-eabi/include/stdlib.h"
 1683              		.file 9 "<built-in>"
ARM GAS  /tmp/ccsuRgce.s 			page 45


DEFINED SYMBOLS
                            *ABS*:00000000 modbus_rtu_master.c
     /tmp/ccsuRgce.s:17     .text.modbus_rtu_master_init:00000000 $t
     /tmp/ccsuRgce.s:24     .text.modbus_rtu_master_init:00000000 modbus_rtu_master_init
     /tmp/ccsuRgce.s:81     .text.modbus_rtu_master_create:00000000 $t
     /tmp/ccsuRgce.s:88     .text.modbus_rtu_master_create:00000000 modbus_rtu_master_create
     /tmp/ccsuRgce.s:145    .text.modbus_rtu_master_stop:00000000 $t
     /tmp/ccsuRgce.s:152    .text.modbus_rtu_master_stop:00000000 modbus_rtu_master_stop
     /tmp/ccsuRgce.s:217    .text.modbus_rtu_master_delete:00000000 $t
     /tmp/ccsuRgce.s:224    .text.modbus_rtu_master_delete:00000000 modbus_rtu_master_delete
     /tmp/ccsuRgce.s:301    .text.modbus_rtu_master_set_on_send:00000000 $t
     /tmp/ccsuRgce.s:308    .text.modbus_rtu_master_set_on_send:00000000 modbus_rtu_master_set_on_send
     /tmp/ccsuRgce.s:348    .text.modbus_rtu_master_set_on_message:00000000 $t
     /tmp/ccsuRgce.s:355    .text.modbus_rtu_master_set_on_message:00000000 modbus_rtu_master_set_on_message
     /tmp/ccsuRgce.s:395    .text.modbus_rtu_master_buffer_size:00000000 $t
     /tmp/ccsuRgce.s:402    .text.modbus_rtu_master_buffer_size:00000000 modbus_rtu_master_buffer_size
     /tmp/ccsuRgce.s:437    .text.modbus_rtu_master_buffer_addr:00000000 $t
     /tmp/ccsuRgce.s:444    .text.modbus_rtu_master_buffer_addr:00000000 modbus_rtu_master_buffer_addr
     /tmp/ccsuRgce.s:477    .text.modbus_rtu_master_on_timer:00000000 $t
     /tmp/ccsuRgce.s:484    .text.modbus_rtu_master_on_timer:00000000 modbus_rtu_master_on_timer
     /tmp/ccsuRgce.s:910    .text.modbus_rtu_master_on_timer:00000160 $d
     /tmp/ccsuRgce.s:915    .text.modbus_rtu_master_on_recv:00000000 $t
     /tmp/ccsuRgce.s:922    .text.modbus_rtu_master_on_recv:00000000 modbus_rtu_master_on_recv
     /tmp/ccsuRgce.s:1020   .text.modbus_rtu_master_execution:00000000 $t
     /tmp/ccsuRgce.s:1027   .text.modbus_rtu_master_execution:00000000 modbus_rtu_master_execution
     /tmp/ccsuRgce.s:1110   .rodata.modbus_rtu_master_execution:00000000 $d
     /tmp/ccsuRgce.s:1666   .text.modbus_rtu_master_execution:0000021c $d

UNDEFINED SYMBOLS
memset
calloc
free
modbus_crc
memcpy
