ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 1 1 .cpu cortex-m4 2 .arch armv7e-m 3 .fpu fpv4-sp-d16 4 .eabi_attribute 27, 1 5 .eabi_attribute 28, 1 6 .eabi_attribute 20, 1 7 .eabi_attribute 21, 1 8 .eabi_attribute 23, 3 9 .eabi_attribute 24, 1 10 .eabi_attribute 25, 1 11 .eabi_attribute 26, 1 12 .eabi_attribute 30, 6 13 .eabi_attribute 34, 1 14 .eabi_attribute 18, 4 15 .file "soft_water_device.c" 16 .text 17 .Ltext0: 18 .cfi_sections .debug_frame 19 .global liquid_inf 20 .section .bss.liquid_inf,"aw",%nobits 21 .align 2 24 liquid_inf: 25 0000 00000000 .space 7 25 000000 26 .global liquid_aver_value 27 .section .bss.liquid_aver_value,"aw",%nobits 28 .align 2 31 liquid_aver_value: 32 0000 00000000 .space 40 32 00000000 32 00000000 32 00000000 32 00000000 33 .global liquid_aver_i 34 .section .bss.liquid_aver_i,"aw",%nobits 37 liquid_aver_i: 38 0000 00 .space 1 39 .global liquid_opening 40 .section .bss.liquid_opening,"aw",%nobits 43 liquid_opening: 44 0000 00 .space 1 45 .global liquid_aver_time 46 .section .bss.liquid_aver_time,"aw",%nobits 47 .align 2 50 liquid_aver_time: 51 0000 00000000 .space 4 52 .section .text.liquid_recieved_hookfuction,"ax",%progbits 53 .align 1 54 .global liquid_recieved_hookfuction 55 .syntax unified 56 .thumb 57 .thumb_func 59 liquid_recieved_hookfuction: 60 .LFB133: 61 .file 1 "user_src/soft_water_device.c" 1:user_src/soft_water_device.c **** #include "soft_water_device.h" 2:user_src/soft_water_device.c **** #include "common.h" ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 2 3:user_src/soft_water_device.c **** #include "string.h" 4:user_src/soft_water_device.c **** #include "soft_p_2_c.h" 5:user_src/soft_water_device.c **** #include "soft_flow.h" 6:user_src/soft_water_device.c **** #include "soft_seed_device.h" 7:user_src/soft_water_device.c **** #include "soft_crc.h" 8:user_src/soft_water_device.c **** #include "soft_version.h" 9:user_src/soft_water_device.c **** 10:user_src/soft_water_device.c **** /** 11:user_src/soft_water_device.c **** * @file liquid_recieved_hookfuction 12:user_src/soft_water_device.c **** * @brief 液位计解析 13:user_src/soft_water_device.c **** * @param 14:user_src/soft_water_device.c **** * @details 15:user_src/soft_water_device.c **** * @author Zhang Sir 16:user_src/soft_water_device.c **** **/ 17:user_src/soft_water_device.c **** liquid liquid_inf; 18:user_src/soft_water_device.c **** short liquid_aver_value[20] = {0}; 19:user_src/soft_water_device.c **** uint8_t liquid_aver_i = 0; 20:user_src/soft_water_device.c **** bool liquid_opening = false; //初始化 21:user_src/soft_water_device.c **** int liquid_aver_time = 0; 22:user_src/soft_water_device.c **** void liquid_recieved_hookfuction(uint32_t cellCanID,uint8_t data[], uint8_t len) 23:user_src/soft_water_device.c **** { 62 .loc 1 23 1 63 .cfi_startproc 64 @ args = 0, pretend = 0, frame = 16 65 @ frame_needed = 1, uses_anonymous_args = 0 66 0000 80B5 push {r7, lr} 67 .LCFI0: 68 .cfi_def_cfa_offset 8 69 .cfi_offset 7, -8 70 .cfi_offset 14, -4 71 0002 84B0 sub sp, sp, #16 72 .LCFI1: 73 .cfi_def_cfa_offset 24 74 0004 00AF add r7, sp, #0 75 .LCFI2: 76 .cfi_def_cfa_register 7 77 0006 F860 str r0, [r7, #12] 78 0008 B960 str r1, [r7, #8] 79 000a 1346 mov r3, r2 80 000c FB71 strb r3, [r7, #7] 24:user_src/soft_water_device.c **** Dev.Checklow_Link.connect_status = COMP_NORMAL; 81 .loc 1 24 38 82 000e 434B ldr r3, .L5 83 0010 0122 movs r2, #1 84 0012 83F8C420 strb r2, [r3, #196] 25:user_src/soft_water_device.c **** Dev.Checklow_Link.recv_time = HAL_GetTick(); 85 .loc 1 25 35 86 0016 FFF7FEFF bl HAL_GetTick 87 001a 0346 mov r3, r0 88 .loc 1 25 33 89 001c 3F4A ldr r2, .L5 90 001e C2F8BC30 str r3, [r2, #188] 26:user_src/soft_water_device.c **** 27:user_src/soft_water_device.c **** memcpy(&liquid_inf.liquid_percent,&data[0],3); 91 .loc 1 27 5 92 0022 0322 movs r2, #3 93 0024 B968 ldr r1, [r7, #8] ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 3 94 0026 3E48 ldr r0, .L5+4 95 0028 FFF7FEFF bl memcpy 28:user_src/soft_water_device.c **** //俯仰小于8度 29:user_src/soft_water_device.c **** if((abs(planep.roll_angle / 100.0f) < 8) && (abs(planep.pitch_angle / 100.0f) < 8) && HAL_GetTi 96 .loc 1 29 19 97 002c 3D4B ldr r3, .L5+8 98 002e B3F90230 ldrsh r3, [r3, #2] @ unaligned 99 0032 1BB2 sxth r3, r3 100 .loc 1 29 31 101 0034 07EE903A vmov s15, r3 @ int 102 0038 B8EEE77A vcvt.f32.s32 s14, s15 103 003c DFED3A6A vldr.32 s13, .L5+12 104 0040 C7EE267A vdiv.f32 s15, s14, s13 105 .loc 1 29 7 106 0044 FDEEE77A vcvt.s32.f32 s15, s15 107 0048 17EE903A vmov r3, s15 @ int 108 004c 13F1070F cmn r3, #7 109 0050 59DB blt .L2 110 .loc 1 29 19 discriminator 1 111 0052 344B ldr r3, .L5+8 112 0054 B3F90230 ldrsh r3, [r3, #2] @ unaligned 113 0058 1BB2 sxth r3, r3 114 .loc 1 29 31 discriminator 1 115 005a 07EE903A vmov s15, r3 @ int 116 005e B8EEE77A vcvt.f32.s32 s14, s15 117 0062 DFED316A vldr.32 s13, .L5+12 118 0066 C7EE267A vdiv.f32 s15, s14, s13 119 .loc 1 29 41 discriminator 1 120 006a FDEEE77A vcvt.s32.f32 s15, s15 121 006e 17EE903A vmov r3, s15 @ int 122 0072 072B cmp r3, #7 123 0074 47DC bgt .L2 124 .loc 1 29 60 discriminator 2 125 0076 2B4B ldr r3, .L5+8 126 0078 B3F90430 ldrsh r3, [r3, #4] @ unaligned 127 007c 1BB2 sxth r3, r3 128 .loc 1 29 73 discriminator 2 129 007e 07EE903A vmov s15, r3 @ int 130 0082 B8EEE77A vcvt.f32.s32 s14, s15 131 0086 DFED286A vldr.32 s13, .L5+12 132 008a C7EE267A vdiv.f32 s15, s14, s13 133 .loc 1 29 46 discriminator 2 134 008e FDEEE77A vcvt.s32.f32 s15, s15 135 0092 17EE903A vmov r3, s15 @ int 136 0096 13F1070F cmn r3, #7 137 009a 34DB blt .L2 138 .loc 1 29 60 discriminator 3 139 009c 214B ldr r3, .L5+8 140 009e B3F90430 ldrsh r3, [r3, #4] @ unaligned 141 00a2 1BB2 sxth r3, r3 142 .loc 1 29 73 discriminator 3 143 00a4 07EE903A vmov s15, r3 @ int 144 00a8 B8EEE77A vcvt.f32.s32 s14, s15 145 00ac DFED1E6A vldr.32 s13, .L5+12 146 00b0 C7EE267A vdiv.f32 s15, s14, s13 147 .loc 1 29 83 discriminator 3 148 00b4 FDEEE77A vcvt.s32.f32 s15, s15 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 4 149 00b8 17EE903A vmov r3, s15 @ int 150 00bc 072B cmp r3, #7 151 00be 22DC bgt .L2 152 .loc 1 29 91 discriminator 4 153 00c0 FFF7FEFF bl HAL_GetTick 154 00c4 0346 mov r3, r0 155 .loc 1 29 105 discriminator 4 156 00c6 194A ldr r2, .L5+16 157 00c8 1268 ldr r2, [r2] 158 00ca 9B1A subs r3, r3, r2 159 .loc 1 29 88 discriminator 4 160 00cc B3F57A7F cmp r3, #1000 161 00d0 19D9 bls .L2 30:user_src/soft_water_device.c **** { 31:user_src/soft_water_device.c **** liquid_aver_value[liquid_aver_i] = liquid_inf.liquid_percent; 162 .loc 1 31 26 163 00d2 174B ldr r3, .L5+20 164 00d4 1B78 ldrb r3, [r3] @ zero_extendqisi2 165 00d6 1A46 mov r2, r3 166 .loc 1 31 54 167 00d8 114B ldr r3, .L5+4 168 00da B3F90010 ldrsh r1, [r3] 169 .loc 1 31 42 170 00de 154B ldr r3, .L5+24 171 00e0 23F81210 strh r1, [r3, r2, lsl #1] @ movhi 32:user_src/soft_water_device.c **** liquid_aver_i++; 172 .loc 1 32 22 173 00e4 124B ldr r3, .L5+20 174 00e6 1B78 ldrb r3, [r3] @ zero_extendqisi2 175 00e8 0133 adds r3, r3, #1 176 00ea DAB2 uxtb r2, r3 177 00ec 104B ldr r3, .L5+20 178 00ee 1A70 strb r2, [r3] 33:user_src/soft_water_device.c **** if(liquid_aver_i > 19 ) 179 .loc 1 33 26 180 00f0 0F4B ldr r3, .L5+20 181 00f2 1B78 ldrb r3, [r3] @ zero_extendqisi2 182 .loc 1 33 11 183 00f4 132B cmp r3, #19 184 00f6 0DD9 bls .L4 34:user_src/soft_water_device.c **** { 35:user_src/soft_water_device.c **** liquid_opening = true; 185 .loc 1 35 28 186 00f8 0F4B ldr r3, .L5+28 187 00fa 0122 movs r2, #1 188 00fc 1A70 strb r2, [r3] 36:user_src/soft_water_device.c **** liquid_aver_i = 0; 189 .loc 1 36 27 190 00fe 0C4B ldr r3, .L5+20 191 0100 0022 movs r2, #0 192 0102 1A70 strb r2, [r3] 33:user_src/soft_water_device.c **** if(liquid_aver_i > 19 ) 193 .loc 1 33 11 194 0104 06E0 b .L4 195 .L2: 37:user_src/soft_water_device.c **** } 38:user_src/soft_water_device.c **** } ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 5 39:user_src/soft_water_device.c **** else 40:user_src/soft_water_device.c **** { 41:user_src/soft_water_device.c **** liquid_aver_time = HAL_GetTick(); 196 .loc 1 41 28 197 0106 FFF7FEFF bl HAL_GetTick 198 010a 0346 mov r3, r0 199 010c 1A46 mov r2, r3 200 .loc 1 41 26 201 010e 074B ldr r3, .L5+16 202 0110 1A60 str r2, [r3] 42:user_src/soft_water_device.c **** } 43:user_src/soft_water_device.c **** } 203 .loc 1 43 1 204 0112 00BF nop 205 .L4: 206 0114 00BF nop 207 0116 1037 adds r7, r7, #16 208 .LCFI3: 209 .cfi_def_cfa_offset 8 210 0118 BD46 mov sp, r7 211 .LCFI4: 212 .cfi_def_cfa_register 13 213 @ sp needed 214 011a 80BD pop {r7, pc} 215 .L6: 216 .align 2 217 .L5: 218 011c 00000000 .word Dev 219 0120 00000000 .word liquid_inf 220 0124 00000000 .word planep 221 0128 0000C842 .word 1120403456 222 012c 00000000 .word liquid_aver_time 223 0130 00000000 .word liquid_aver_i 224 0134 00000000 .word liquid_aver_value 225 0138 00000000 .word liquid_opening 226 .cfi_endproc 227 .LFE133: 229 .section .text.decode_liquid_info,"ax",%progbits 230 .align 1 231 .global decode_liquid_info 232 .syntax unified 233 .thumb 234 .thumb_func 236 decode_liquid_info: 237 .LFB134: 44:user_src/soft_water_device.c **** 45:user_src/soft_water_device.c **** /** 46:user_src/soft_water_device.c **** * @file decode_liquid_info 47:user_src/soft_water_device.c **** * @brief 解析液位计 48:user_src/soft_water_device.c **** * @param 49:user_src/soft_water_device.c **** * @details 50:user_src/soft_water_device.c **** * @author Zhang Sir 51:user_src/soft_water_device.c **** **/ 52:user_src/soft_water_device.c **** int decode_liquid_info(void) 53:user_src/soft_water_device.c **** { 238 .loc 1 53 1 239 .cfi_startproc ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 6 240 @ args = 0, pretend = 0, frame = 8 241 @ frame_needed = 1, uses_anonymous_args = 0 242 0000 80B5 push {r7, lr} 243 .LCFI5: 244 .cfi_def_cfa_offset 8 245 .cfi_offset 7, -8 246 .cfi_offset 14, -4 247 0002 82B0 sub sp, sp, #8 248 .LCFI6: 249 .cfi_def_cfa_offset 16 250 0004 00AF add r7, sp, #0 251 .LCFI7: 252 .cfi_def_cfa_register 7 54:user_src/soft_water_device.c **** Check_dev_link(&Dev.Checklow_Link,5000,(char *)&liquid_inf.liquid_percent,sizeof(liquid)); 253 .loc 1 54 5 254 0006 0723 movs r3, #7 255 0008 1A4A ldr r2, .L13 256 000a 41F28831 movw r1, #5000 257 000e 1A48 ldr r0, .L13+4 258 0010 FFF7FEFF bl Check_dev_link 55:user_src/soft_water_device.c **** 56:user_src/soft_water_device.c **** if(Dev.Checklow_Link.connect_status == COMP_NORMAL) 259 .loc 1 56 25 260 0014 194B ldr r3, .L13+8 261 0016 93F8C430 ldrb r3, [r3, #196] @ zero_extendqisi2 262 .loc 1 56 7 263 001a 012B cmp r3, #1 264 001c 25D1 bne .L8 265 .LBB2: 57:user_src/soft_water_device.c **** { 58:user_src/soft_water_device.c **** int liquid_temp = 0; 266 .loc 1 58 13 267 001e 0023 movs r3, #0 268 0020 7B60 str r3, [r7, #4] 59:user_src/soft_water_device.c **** //上电没滤波直接显示 60:user_src/soft_water_device.c **** if(liquid_opening == false) 269 .loc 1 60 27 270 0022 174B ldr r3, .L13+12 271 0024 1B78 ldrb r3, [r3] @ zero_extendqisi2 272 0026 83F00103 eor r3, r3, #1 273 002a DBB2 uxtb r3, r3 274 .loc 1 60 11 275 002c 002B cmp r3, #0 276 002e 03D0 beq .L9 61:user_src/soft_water_device.c **** { 62:user_src/soft_water_device.c **** return liquid_inf.liquid_percent; 277 .loc 1 62 30 278 0030 104B ldr r3, .L13 279 0032 B3F90030 ldrsh r3, [r3] 280 0036 19E0 b .L10 281 .L9: 282 .LBB3: 63:user_src/soft_water_device.c **** } 64:user_src/soft_water_device.c **** 65:user_src/soft_water_device.c **** for(uint8_t i = 0; i < 20; i++) 283 .loc 1 65 21 284 0038 0023 movs r3, #0 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 7 285 003a FB70 strb r3, [r7, #3] 286 .loc 1 65 9 287 003c 0AE0 b .L11 288 .L12: 66:user_src/soft_water_device.c **** { 67:user_src/soft_water_device.c **** liquid_temp += liquid_aver_value[i]; 289 .loc 1 67 45 discriminator 3 290 003e FB78 ldrb r3, [r7, #3] @ zero_extendqisi2 291 0040 104A ldr r2, .L13+16 292 0042 32F91330 ldrsh r3, [r2, r3, lsl #1] 293 0046 1A46 mov r2, r3 294 .loc 1 67 25 discriminator 3 295 0048 7B68 ldr r3, [r7, #4] 296 004a 1344 add r3, r3, r2 297 004c 7B60 str r3, [r7, #4] 65:user_src/soft_water_device.c **** { 298 .loc 1 65 37 discriminator 3 299 004e FB78 ldrb r3, [r7, #3] @ zero_extendqisi2 300 0050 0133 adds r3, r3, #1 301 0052 FB70 strb r3, [r7, #3] 302 .L11: 65:user_src/soft_water_device.c **** { 303 .loc 1 65 9 discriminator 1 304 0054 FB78 ldrb r3, [r7, #3] @ zero_extendqisi2 305 0056 132B cmp r3, #19 306 0058 F1D9 bls .L12 307 .LBE3: 68:user_src/soft_water_device.c **** } 69:user_src/soft_water_device.c **** return liquid_temp / 20; 308 .loc 1 69 28 309 005a 7B68 ldr r3, [r7, #4] 310 005c 0A4A ldr r2, .L13+20 311 005e 82FB0312 smull r1, r2, r2, r3 312 0062 D210 asrs r2, r2, #3 313 0064 DB17 asrs r3, r3, #31 314 0066 D31A subs r3, r2, r3 315 0068 00E0 b .L10 316 .L8: 317 .LBE2: 70:user_src/soft_water_device.c **** } 71:user_src/soft_water_device.c **** else 72:user_src/soft_water_device.c **** { 73:user_src/soft_water_device.c **** return 0; 318 .loc 1 73 16 319 006a 0023 movs r3, #0 320 .L10: 74:user_src/soft_water_device.c **** } 75:user_src/soft_water_device.c **** 76:user_src/soft_water_device.c **** } 321 .loc 1 76 1 322 006c 1846 mov r0, r3 323 006e 0837 adds r7, r7, #8 324 .LCFI8: 325 .cfi_def_cfa_offset 8 326 0070 BD46 mov sp, r7 327 .LCFI9: 328 .cfi_def_cfa_register 13 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 8 329 @ sp needed 330 0072 80BD pop {r7, pc} 331 .L14: 332 .align 2 333 .L13: 334 0074 00000000 .word liquid_inf 335 0078 BC000000 .word Dev+188 336 007c 00000000 .word Dev 337 0080 00000000 .word liquid_opening 338 0084 00000000 .word liquid_aver_value 339 0088 67666666 .word 1717986919 340 .cfi_endproc 341 .LFE134: 343 .global flow_inf 344 .section .bss.flow_inf,"aw",%nobits 345 .align 2 348 flow_inf: 349 0000 00000000 .space 37 349 00000000 349 00000000 349 00000000 349 00000000 350 .section .text.Flow_recieved_hookfuction,"ax",%progbits 351 .align 1 352 .global Flow_recieved_hookfuction 353 .syntax unified 354 .thumb 355 .thumb_func 357 Flow_recieved_hookfuction: 358 .LFB135: 77:user_src/soft_water_device.c **** 78:user_src/soft_water_device.c **** 79:user_src/soft_water_device.c **** /** 80:user_src/soft_water_device.c **** * @file Flow_recieved_hookfuction 81:user_src/soft_water_device.c **** * @brief 流量计解析 82:user_src/soft_water_device.c **** * @param 83:user_src/soft_water_device.c **** * @details 84:user_src/soft_water_device.c **** * @author Zhang Sir 85:user_src/soft_water_device.c **** **/ 86:user_src/soft_water_device.c **** flow flow_inf; 87:user_src/soft_water_device.c **** void Flow_recieved_hookfuction(uint32_t cellCanID,uint8_t data[], uint8_t len) 88:user_src/soft_water_device.c **** { 359 .loc 1 88 1 360 .cfi_startproc 361 @ args = 0, pretend = 0, frame = 16 362 @ frame_needed = 1, uses_anonymous_args = 0 363 0000 80B5 push {r7, lr} 364 .LCFI10: 365 .cfi_def_cfa_offset 8 366 .cfi_offset 7, -8 367 .cfi_offset 14, -4 368 0002 84B0 sub sp, sp, #16 369 .LCFI11: 370 .cfi_def_cfa_offset 24 371 0004 00AF add r7, sp, #0 372 .LCFI12: 373 .cfi_def_cfa_register 7 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 9 374 0006 F860 str r0, [r7, #12] 375 0008 B960 str r1, [r7, #8] 376 000a 1346 mov r3, r2 377 000c FB71 strb r3, [r7, #7] 89:user_src/soft_water_device.c **** 90:user_src/soft_water_device.c **** switch (cellCanID) 378 .loc 1 90 5 379 000e FB68 ldr r3, [r7, #12] 380 0010 8A4A ldr r2, .L42 381 0012 9342 cmp r3, r2 382 0014 04D0 beq .L16 383 0016 FB68 ldr r3, [r7, #12] 384 0018 894A ldr r2, .L42+4 385 001a 9342 cmp r3, r2 386 001c 58D0 beq .L17 91:user_src/soft_water_device.c **** { 92:user_src/soft_water_device.c **** case 0x2012C0: 93:user_src/soft_water_device.c **** flow_inf.ch = data[0]; 94:user_src/soft_water_device.c **** switch (flow_inf.ch) 95:user_src/soft_water_device.c **** { 96:user_src/soft_water_device.c **** case 1: 97:user_src/soft_water_device.c **** memcpy(&flow_inf.ch1.speed,&data[1],5); 98:user_src/soft_water_device.c **** 99:user_src/soft_water_device.c **** if(flow_inf.ch1.last_ml > flow_inf.ch1.ml) 100:user_src/soft_water_device.c **** { 101:user_src/soft_water_device.c **** flow_inf.ch1.overturn++; 102:user_src/soft_water_device.c **** } 103:user_src/soft_water_device.c **** flow_inf.ch1.last_ml = flow_inf.ch1.ml; 104:user_src/soft_water_device.c **** 105:user_src/soft_water_device.c **** Dev.Flow_Link1.connect_status = COMP_NORMAL; 106:user_src/soft_water_device.c **** Dev.Flow_Link1.recv_time = HAL_GetTick(); 107:user_src/soft_water_device.c **** break; 108:user_src/soft_water_device.c **** case 2: 109:user_src/soft_water_device.c **** memcpy(&flow_inf.ch2.speed,&data[1],5); 110:user_src/soft_water_device.c **** 111:user_src/soft_water_device.c **** if(flow_inf.ch2.last_ml > flow_inf.ch2.ml) 112:user_src/soft_water_device.c **** { 113:user_src/soft_water_device.c **** flow_inf.ch2.overturn++; 114:user_src/soft_water_device.c **** } 115:user_src/soft_water_device.c **** flow_inf.ch2.last_ml = flow_inf.ch2.ml; 116:user_src/soft_water_device.c **** 117:user_src/soft_water_device.c **** Dev.Flow_Link2.connect_status = COMP_NORMAL; 118:user_src/soft_water_device.c **** Dev.Flow_Link2.recv_time = HAL_GetTick(); 119:user_src/soft_water_device.c **** break; 120:user_src/soft_water_device.c **** default: 121:user_src/soft_water_device.c **** break; 122:user_src/soft_water_device.c **** } 123:user_src/soft_water_device.c **** break; 124:user_src/soft_water_device.c **** case 0x2812C0: 125:user_src/soft_water_device.c **** switch (data[0]) 126:user_src/soft_water_device.c **** { 127:user_src/soft_water_device.c **** case 0xF1: 128:user_src/soft_water_device.c **** if(data[1]== 0x01) 129:user_src/soft_water_device.c **** flow_inf.ch1.k = data[2] + ((data[3] << 8) & 0xff00); 130:user_src/soft_water_device.c **** if(data[4]== 0x02) 131:user_src/soft_water_device.c **** flow_inf.ch2.k = data[5] + ((data[6] << 8) & 0xff00); 132:user_src/soft_water_device.c **** pmu_set_ack(_MSGID_SET,MSGID_SET_MIMO_FLOW,flow_inf.ch1.k,flow_inf.ch2.k); ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 10 133:user_src/soft_water_device.c **** flow_inf.ch1.set_k = false; 134:user_src/soft_water_device.c **** break; 135:user_src/soft_water_device.c **** case 0XF2: 136:user_src/soft_water_device.c **** if(data[1]== 0x01) 137:user_src/soft_water_device.c **** flow_inf.ch1.k = data[2] + ((data[3] << 8) & 0xff00); 138:user_src/soft_water_device.c **** if(data[4]== 0x02) 139:user_src/soft_water_device.c **** flow_inf.ch2.k = data[5] + ((data[6] << 8) & 0xff00); 140:user_src/soft_water_device.c **** 141:user_src/soft_water_device.c **** if(flow_inf.ch2.k != 0) //多判断一次,CAN通讯质量不高可能获取不到 142:user_src/soft_water_device.c **** { 143:user_src/soft_water_device.c **** Dev.Flow.facid = FAC_QIFEI_DOU; 144:user_src/soft_water_device.c **** } 145:user_src/soft_water_device.c **** flow_inf.ch1.get_k = true; 146:user_src/soft_water_device.c **** break; 147:user_src/soft_water_device.c **** case 0XF3: 148:user_src/soft_water_device.c **** flow_inf.ch1.k_multiple = data[1] + ((data[2] << 8) & 0xff00); 149:user_src/soft_water_device.c **** flow_inf.ch2.k_multiple = data[1] + ((data[2] << 8) & 0xff00); 150:user_src/soft_water_device.c **** break; 151:user_src/soft_water_device.c **** case 0XF7: 152:user_src/soft_water_device.c **** if(data[1] == 'Q' && data[2] == 'F') 153:user_src/soft_water_device.c **** { 154:user_src/soft_water_device.c **** Dev.Flow.facid = FAC_QIFEI_SIG; 155:user_src/soft_water_device.c **** if(Dev.Flow_Link2.connect_status == COMP_NORMAL) 156:user_src/soft_water_device.c **** { 157:user_src/soft_water_device.c **** Dev.Flow.facid = FAC_QIFEI_DOU; 158:user_src/soft_water_device.c **** } 159:user_src/soft_water_device.c **** } 160:user_src/soft_water_device.c **** break; 161:user_src/soft_water_device.c **** default: 162:user_src/soft_water_device.c **** break; 163:user_src/soft_water_device.c **** } 164:user_src/soft_water_device.c **** break; 165:user_src/soft_water_device.c **** default: 166:user_src/soft_water_device.c **** break; 387 .loc 1 166 13 388 001e 08E1 b .L25 389 .L16: 93:user_src/soft_water_device.c **** switch (flow_inf.ch) 390 .loc 1 93 31 391 0020 BB68 ldr r3, [r7, #8] 392 0022 1A78 ldrb r2, [r3] @ zero_extendqisi2 93:user_src/soft_water_device.c **** switch (flow_inf.ch) 393 .loc 1 93 25 394 0024 874B ldr r3, .L42+8 395 0026 1A70 strb r2, [r3] 94:user_src/soft_water_device.c **** { 396 .loc 1 94 29 397 0028 864B ldr r3, .L42+8 398 002a 1B78 ldrb r3, [r3] @ zero_extendqisi2 399 002c 012B cmp r3, #1 400 002e 02D0 beq .L19 401 0030 022B cmp r3, #2 402 0032 26D0 beq .L20 121:user_src/soft_water_device.c **** } 403 .loc 1 121 17 404 0034 4BE0 b .L23 405 .L19: ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 11 97:user_src/soft_water_device.c **** 406 .loc 1 97 44 407 0036 BB68 ldr r3, [r7, #8] 408 0038 0133 adds r3, r3, #1 97:user_src/soft_water_device.c **** 409 .loc 1 97 17 410 003a 0522 movs r2, #5 411 003c 1946 mov r1, r3 412 003e 8248 ldr r0, .L42+12 413 0040 FFF7FEFF bl memcpy 99:user_src/soft_water_device.c **** { 414 .loc 1 99 32 415 0044 7F4B ldr r3, .L42+8 416 0046 DA88 ldrh r2, [r3, #6] 99:user_src/soft_water_device.c **** { 417 .loc 1 99 56 418 0048 7E4B ldr r3, .L42+8 419 004a B3F80330 ldrh r3, [r3, #3] @ unaligned 420 004e 9BB2 uxth r3, r3 99:user_src/soft_water_device.c **** { 421 .loc 1 99 19 422 0050 9A42 cmp r2, r3 423 0052 05D9 bls .L22 101:user_src/soft_water_device.c **** } 424 .loc 1 101 33 425 0054 7B4B ldr r3, .L42+8 426 0056 1B89 ldrh r3, [r3, #8] 101:user_src/soft_water_device.c **** } 427 .loc 1 101 42 428 0058 0133 adds r3, r3, #1 429 005a 9AB2 uxth r2, r3 430 005c 794B ldr r3, .L42+8 431 005e 1A81 strh r2, [r3, #8] @ movhi 432 .L22: 103:user_src/soft_water_device.c **** 433 .loc 1 103 52 434 0060 784B ldr r3, .L42+8 435 0062 B3F80330 ldrh r3, [r3, #3] @ unaligned 436 0066 9AB2 uxth r2, r3 103:user_src/soft_water_device.c **** 437 .loc 1 103 38 438 0068 764B ldr r3, .L42+8 439 006a DA80 strh r2, [r3, #6] @ movhi 105:user_src/soft_water_device.c **** Dev.Flow_Link1.recv_time = HAL_GetTick(); 440 .loc 1 105 47 441 006c 774B ldr r3, .L42+16 442 006e 0122 movs r2, #1 443 0070 83F89C20 strb r2, [r3, #156] 106:user_src/soft_water_device.c **** break; 444 .loc 1 106 44 445 0074 FFF7FEFF bl HAL_GetTick 446 0078 0346 mov r3, r0 106:user_src/soft_water_device.c **** break; 447 .loc 1 106 42 448 007a 744A ldr r2, .L42+16 449 007c C2F89430 str r3, [r2, #148] 107:user_src/soft_water_device.c **** case 2: ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 12 450 .loc 1 107 17 451 0080 25E0 b .L23 452 .L20: 109:user_src/soft_water_device.c **** 453 .loc 1 109 44 454 0082 BB68 ldr r3, [r7, #8] 455 0084 0133 adds r3, r3, #1 109:user_src/soft_water_device.c **** 456 .loc 1 109 17 457 0086 0522 movs r2, #5 458 0088 1946 mov r1, r3 459 008a 7148 ldr r0, .L42+20 460 008c FFF7FEFF bl memcpy 111:user_src/soft_water_device.c **** { 461 .loc 1 111 32 462 0090 6C4B ldr r3, .L42+8 463 0092 1A8B ldrh r2, [r3, #24] 111:user_src/soft_water_device.c **** { 464 .loc 1 111 56 465 0094 6B4B ldr r3, .L42+8 466 0096 B3F81530 ldrh r3, [r3, #21] @ unaligned 467 009a 9BB2 uxth r3, r3 111:user_src/soft_water_device.c **** { 468 .loc 1 111 19 469 009c 9A42 cmp r2, r3 470 009e 05D9 bls .L24 113:user_src/soft_water_device.c **** } 471 .loc 1 113 33 472 00a0 684B ldr r3, .L42+8 473 00a2 5B8B ldrh r3, [r3, #26] 113:user_src/soft_water_device.c **** } 474 .loc 1 113 42 475 00a4 0133 adds r3, r3, #1 476 00a6 9AB2 uxth r2, r3 477 00a8 664B ldr r3, .L42+8 478 00aa 5A83 strh r2, [r3, #26] @ movhi 479 .L24: 115:user_src/soft_water_device.c **** 480 .loc 1 115 52 481 00ac 654B ldr r3, .L42+8 482 00ae B3F81530 ldrh r3, [r3, #21] @ unaligned 483 00b2 9AB2 uxth r2, r3 115:user_src/soft_water_device.c **** 484 .loc 1 115 38 485 00b4 634B ldr r3, .L42+8 486 00b6 1A83 strh r2, [r3, #24] @ movhi 117:user_src/soft_water_device.c **** Dev.Flow_Link2.recv_time = HAL_GetTick(); 487 .loc 1 117 47 488 00b8 644B ldr r3, .L42+16 489 00ba 0122 movs r2, #1 490 00bc 83F8A820 strb r2, [r3, #168] 118:user_src/soft_water_device.c **** break; 491 .loc 1 118 44 492 00c0 FFF7FEFF bl HAL_GetTick 493 00c4 0346 mov r3, r0 118:user_src/soft_water_device.c **** break; 494 .loc 1 118 42 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 13 495 00c6 614A ldr r2, .L42+16 496 00c8 C2F8A030 str r3, [r2, #160] 119:user_src/soft_water_device.c **** default: 497 .loc 1 119 17 498 00cc 00BF nop 499 .L23: 123:user_src/soft_water_device.c **** case 0x2812C0: 500 .loc 1 123 9 501 00ce B0E0 b .L25 502 .L17: 125:user_src/soft_water_device.c **** { 503 .loc 1 125 25 504 00d0 BB68 ldr r3, [r7, #8] 505 00d2 1B78 ldrb r3, [r3] @ zero_extendqisi2 506 00d4 F13B subs r3, r3, #241 507 00d6 062B cmp r3, #6 508 00d8 00F2A780 bhi .L39 509 00dc 01A2 adr r2, .L28 510 00de 52F823F0 ldr pc, [r2, r3, lsl #2] 511 00e2 00BF .p2align 2 512 .L28: 513 00e4 01010000 .word .L31+1 514 00e8 65010000 .word .L30+1 515 00ec C5010000 .word .L29+1 516 00f0 2B020000 .word .L39+1 517 00f4 2B020000 .word .L39+1 518 00f8 2B020000 .word .L39+1 519 00fc FB010000 .word .L27+1 520 .p2align 1 521 .L31: 128:user_src/soft_water_device.c **** flow_inf.ch1.k = data[2] + ((data[3] << 8) & 0xff00); 522 .loc 1 128 24 523 0100 BB68 ldr r3, [r7, #8] 524 0102 0133 adds r3, r3, #1 525 0104 1B78 ldrb r3, [r3] @ zero_extendqisi2 128:user_src/soft_water_device.c **** flow_inf.ch1.k = data[2] + ((data[3] << 8) & 0xff00); 526 .loc 1 128 19 527 0106 012B cmp r3, #1 528 0108 0CD1 bne .L32 129:user_src/soft_water_device.c **** if(data[4]== 0x02) 529 .loc 1 129 42 530 010a BB68 ldr r3, [r7, #8] 531 010c 0233 adds r3, r3, #2 532 010e 1B78 ldrb r3, [r3] @ zero_extendqisi2 533 0110 9AB2 uxth r2, r3 129:user_src/soft_water_device.c **** if(data[4]== 0x02) 534 .loc 1 129 54 535 0112 BB68 ldr r3, [r7, #8] 536 0114 0333 adds r3, r3, #3 537 0116 1B78 ldrb r3, [r3] @ zero_extendqisi2 129:user_src/soft_water_device.c **** if(data[4]== 0x02) 538 .loc 1 129 58 539 0118 1B02 lsls r3, r3, #8 129:user_src/soft_water_device.c **** if(data[4]== 0x02) 540 .loc 1 129 46 541 011a 9BB2 uxth r3, r3 542 011c 1344 add r3, r3, r2 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 14 543 011e 9AB2 uxth r2, r3 129:user_src/soft_water_device.c **** if(data[4]== 0x02) 544 .loc 1 129 36 545 0120 484B ldr r3, .L42+8 546 0122 5A81 strh r2, [r3, #10] @ movhi 547 .L32: 130:user_src/soft_water_device.c **** flow_inf.ch2.k = data[5] + ((data[6] << 8) & 0xff00); 548 .loc 1 130 24 549 0124 BB68 ldr r3, [r7, #8] 550 0126 0433 adds r3, r3, #4 551 0128 1B78 ldrb r3, [r3] @ zero_extendqisi2 130:user_src/soft_water_device.c **** flow_inf.ch2.k = data[5] + ((data[6] << 8) & 0xff00); 552 .loc 1 130 19 553 012a 022B cmp r3, #2 554 012c 0CD1 bne .L33 131:user_src/soft_water_device.c **** pmu_set_ack(_MSGID_SET,MSGID_SET_MIMO_FLOW,flow_inf.ch1.k,flow_inf.ch2.k); 555 .loc 1 131 42 556 012e BB68 ldr r3, [r7, #8] 557 0130 0533 adds r3, r3, #5 558 0132 1B78 ldrb r3, [r3] @ zero_extendqisi2 559 0134 9AB2 uxth r2, r3 131:user_src/soft_water_device.c **** pmu_set_ack(_MSGID_SET,MSGID_SET_MIMO_FLOW,flow_inf.ch1.k,flow_inf.ch2.k); 560 .loc 1 131 54 561 0136 BB68 ldr r3, [r7, #8] 562 0138 0633 adds r3, r3, #6 563 013a 1B78 ldrb r3, [r3] @ zero_extendqisi2 131:user_src/soft_water_device.c **** pmu_set_ack(_MSGID_SET,MSGID_SET_MIMO_FLOW,flow_inf.ch1.k,flow_inf.ch2.k); 564 .loc 1 131 58 565 013c 1B02 lsls r3, r3, #8 131:user_src/soft_water_device.c **** pmu_set_ack(_MSGID_SET,MSGID_SET_MIMO_FLOW,flow_inf.ch1.k,flow_inf.ch2.k); 566 .loc 1 131 46 567 013e 9BB2 uxth r3, r3 568 0140 1344 add r3, r3, r2 569 0142 9AB2 uxth r2, r3 131:user_src/soft_water_device.c **** pmu_set_ack(_MSGID_SET,MSGID_SET_MIMO_FLOW,flow_inf.ch1.k,flow_inf.ch2.k); 570 .loc 1 131 36 571 0144 3F4B ldr r3, .L42+8 572 0146 9A83 strh r2, [r3, #28] @ movhi 573 .L33: 132:user_src/soft_water_device.c **** flow_inf.ch1.set_k = false; 574 .loc 1 132 72 575 0148 3E4B ldr r3, .L42+8 576 014a 5B89 ldrh r3, [r3, #10] 132:user_src/soft_water_device.c **** flow_inf.ch1.set_k = false; 577 .loc 1 132 17 578 014c 1AB2 sxth r2, r3 132:user_src/soft_water_device.c **** flow_inf.ch1.set_k = false; 579 .loc 1 132 87 580 014e 3D4B ldr r3, .L42+8 581 0150 9B8B ldrh r3, [r3, #28] 132:user_src/soft_water_device.c **** flow_inf.ch1.set_k = false; 582 .loc 1 132 17 583 0152 1BB2 sxth r3, r3 584 0154 1521 movs r1, #21 585 0156 1620 movs r0, #22 586 0158 FFF7FEFF bl pmu_set_ack 133:user_src/soft_water_device.c **** break; ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 15 587 .loc 1 133 36 588 015c 394B ldr r3, .L42+8 589 015e 0022 movs r2, #0 590 0160 DA73 strb r2, [r3, #15] 134:user_src/soft_water_device.c **** case 0XF2: 591 .loc 1 134 17 592 0162 65E0 b .L34 593 .L30: 136:user_src/soft_water_device.c **** flow_inf.ch1.k = data[2] + ((data[3] << 8) & 0xff00); 594 .loc 1 136 24 595 0164 BB68 ldr r3, [r7, #8] 596 0166 0133 adds r3, r3, #1 597 0168 1B78 ldrb r3, [r3] @ zero_extendqisi2 136:user_src/soft_water_device.c **** flow_inf.ch1.k = data[2] + ((data[3] << 8) & 0xff00); 598 .loc 1 136 19 599 016a 012B cmp r3, #1 600 016c 0CD1 bne .L35 137:user_src/soft_water_device.c **** if(data[4]== 0x02) 601 .loc 1 137 42 602 016e BB68 ldr r3, [r7, #8] 603 0170 0233 adds r3, r3, #2 604 0172 1B78 ldrb r3, [r3] @ zero_extendqisi2 605 0174 9AB2 uxth r2, r3 137:user_src/soft_water_device.c **** if(data[4]== 0x02) 606 .loc 1 137 54 607 0176 BB68 ldr r3, [r7, #8] 608 0178 0333 adds r3, r3, #3 609 017a 1B78 ldrb r3, [r3] @ zero_extendqisi2 137:user_src/soft_water_device.c **** if(data[4]== 0x02) 610 .loc 1 137 58 611 017c 1B02 lsls r3, r3, #8 137:user_src/soft_water_device.c **** if(data[4]== 0x02) 612 .loc 1 137 46 613 017e 9BB2 uxth r3, r3 614 0180 1344 add r3, r3, r2 615 0182 9AB2 uxth r2, r3 137:user_src/soft_water_device.c **** if(data[4]== 0x02) 616 .loc 1 137 36 617 0184 2F4B ldr r3, .L42+8 618 0186 5A81 strh r2, [r3, #10] @ movhi 619 .L35: 138:user_src/soft_water_device.c **** flow_inf.ch2.k = data[5] + ((data[6] << 8) & 0xff00); 620 .loc 1 138 24 621 0188 BB68 ldr r3, [r7, #8] 622 018a 0433 adds r3, r3, #4 623 018c 1B78 ldrb r3, [r3] @ zero_extendqisi2 138:user_src/soft_water_device.c **** flow_inf.ch2.k = data[5] + ((data[6] << 8) & 0xff00); 624 .loc 1 138 19 625 018e 022B cmp r3, #2 626 0190 0CD1 bne .L36 139:user_src/soft_water_device.c **** 627 .loc 1 139 42 628 0192 BB68 ldr r3, [r7, #8] 629 0194 0533 adds r3, r3, #5 630 0196 1B78 ldrb r3, [r3] @ zero_extendqisi2 631 0198 9AB2 uxth r2, r3 139:user_src/soft_water_device.c **** ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 16 632 .loc 1 139 54 633 019a BB68 ldr r3, [r7, #8] 634 019c 0633 adds r3, r3, #6 635 019e 1B78 ldrb r3, [r3] @ zero_extendqisi2 139:user_src/soft_water_device.c **** 636 .loc 1 139 58 637 01a0 1B02 lsls r3, r3, #8 139:user_src/soft_water_device.c **** 638 .loc 1 139 46 639 01a2 9BB2 uxth r3, r3 640 01a4 1344 add r3, r3, r2 641 01a6 9AB2 uxth r2, r3 139:user_src/soft_water_device.c **** 642 .loc 1 139 36 643 01a8 264B ldr r3, .L42+8 644 01aa 9A83 strh r2, [r3, #28] @ movhi 645 .L36: 141:user_src/soft_water_device.c **** { 646 .loc 1 141 32 647 01ac 254B ldr r3, .L42+8 648 01ae 9B8B ldrh r3, [r3, #28] 141:user_src/soft_water_device.c **** { 649 .loc 1 141 19 650 01b0 002B cmp r3, #0 651 01b2 03D0 beq .L37 143:user_src/soft_water_device.c **** } 652 .loc 1 143 36 653 01b4 254B ldr r3, .L42+16 654 01b6 0822 movs r2, #8 655 01b8 83F87C20 strb r2, [r3, #124] 656 .L37: 145:user_src/soft_water_device.c **** break; 657 .loc 1 145 36 658 01bc 214B ldr r3, .L42+8 659 01be 0122 movs r2, #1 660 01c0 9A73 strb r2, [r3, #14] 146:user_src/soft_water_device.c **** case 0XF3: 661 .loc 1 146 17 662 01c2 35E0 b .L34 663 .L29: 148:user_src/soft_water_device.c **** flow_inf.ch2.k_multiple = data[1] + ((data[2] << 8) & 0xff00); 664 .loc 1 148 47 665 01c4 BB68 ldr r3, [r7, #8] 666 01c6 0133 adds r3, r3, #1 667 01c8 1B78 ldrb r3, [r3] @ zero_extendqisi2 668 01ca 9AB2 uxth r2, r3 148:user_src/soft_water_device.c **** flow_inf.ch2.k_multiple = data[1] + ((data[2] << 8) & 0xff00); 669 .loc 1 148 59 670 01cc BB68 ldr r3, [r7, #8] 671 01ce 0233 adds r3, r3, #2 672 01d0 1B78 ldrb r3, [r3] @ zero_extendqisi2 148:user_src/soft_water_device.c **** flow_inf.ch2.k_multiple = data[1] + ((data[2] << 8) & 0xff00); 673 .loc 1 148 63 674 01d2 1B02 lsls r3, r3, #8 148:user_src/soft_water_device.c **** flow_inf.ch2.k_multiple = data[1] + ((data[2] << 8) & 0xff00); 675 .loc 1 148 51 676 01d4 9BB2 uxth r3, r3 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 17 677 01d6 1344 add r3, r3, r2 678 01d8 9AB2 uxth r2, r3 148:user_src/soft_water_device.c **** flow_inf.ch2.k_multiple = data[1] + ((data[2] << 8) & 0xff00); 679 .loc 1 148 41 680 01da 1A4B ldr r3, .L42+8 681 01dc 9A81 strh r2, [r3, #12] @ movhi 149:user_src/soft_water_device.c **** break; 682 .loc 1 149 47 683 01de BB68 ldr r3, [r7, #8] 684 01e0 0133 adds r3, r3, #1 685 01e2 1B78 ldrb r3, [r3] @ zero_extendqisi2 686 01e4 9AB2 uxth r2, r3 149:user_src/soft_water_device.c **** break; 687 .loc 1 149 59 688 01e6 BB68 ldr r3, [r7, #8] 689 01e8 0233 adds r3, r3, #2 690 01ea 1B78 ldrb r3, [r3] @ zero_extendqisi2 149:user_src/soft_water_device.c **** break; 691 .loc 1 149 63 692 01ec 1B02 lsls r3, r3, #8 149:user_src/soft_water_device.c **** break; 693 .loc 1 149 51 694 01ee 9BB2 uxth r3, r3 695 01f0 1344 add r3, r3, r2 696 01f2 9AB2 uxth r2, r3 149:user_src/soft_water_device.c **** break; 697 .loc 1 149 41 698 01f4 134B ldr r3, .L42+8 699 01f6 DA83 strh r2, [r3, #30] @ movhi 150:user_src/soft_water_device.c **** case 0XF7: 700 .loc 1 150 17 701 01f8 1AE0 b .L34 702 .L27: 152:user_src/soft_water_device.c **** { 703 .loc 1 152 24 704 01fa BB68 ldr r3, [r7, #8] 705 01fc 0133 adds r3, r3, #1 706 01fe 1B78 ldrb r3, [r3] @ zero_extendqisi2 152:user_src/soft_water_device.c **** { 707 .loc 1 152 19 708 0200 512B cmp r3, #81 709 0202 14D1 bne .L40 152:user_src/soft_water_device.c **** { 710 .loc 1 152 42 discriminator 1 711 0204 BB68 ldr r3, [r7, #8] 712 0206 0233 adds r3, r3, #2 713 0208 1B78 ldrb r3, [r3] @ zero_extendqisi2 152:user_src/soft_water_device.c **** { 714 .loc 1 152 35 discriminator 1 715 020a 462B cmp r3, #70 716 020c 0FD1 bne .L40 154:user_src/soft_water_device.c **** if(Dev.Flow_Link2.connect_status == COMP_NORMAL) 717 .loc 1 154 36 718 020e 0F4B ldr r3, .L42+16 719 0210 0722 movs r2, #7 720 0212 83F87C20 strb r2, [r3, #124] 155:user_src/soft_water_device.c **** { ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 18 721 .loc 1 155 38 722 0216 0D4B ldr r3, .L42+16 723 0218 93F8A830 ldrb r3, [r3, #168] @ zero_extendqisi2 155:user_src/soft_water_device.c **** { 724 .loc 1 155 23 725 021c 012B cmp r3, #1 726 021e 06D1 bne .L40 157:user_src/soft_water_device.c **** } 727 .loc 1 157 40 728 0220 0A4B ldr r3, .L42+16 729 0222 0822 movs r2, #8 730 0224 83F87C20 strb r2, [r3, #124] 160:user_src/soft_water_device.c **** default: 731 .loc 1 160 17 732 0228 01E0 b .L40 733 .L39: 162:user_src/soft_water_device.c **** } 734 .loc 1 162 17 735 022a 00BF nop 736 022c 00E0 b .L41 737 .L40: 160:user_src/soft_water_device.c **** default: 738 .loc 1 160 17 739 022e 00BF nop 740 .L34: 741 .L41: 164:user_src/soft_water_device.c **** default: 742 .loc 1 164 13 743 0230 00BF nop 744 .L25: 167:user_src/soft_water_device.c **** } 168:user_src/soft_water_device.c **** 169:user_src/soft_water_device.c **** } 745 .loc 1 169 1 746 0232 00BF nop 747 0234 1037 adds r7, r7, #16 748 .LCFI13: 749 .cfi_def_cfa_offset 8 750 0236 BD46 mov sp, r7 751 .LCFI14: 752 .cfi_def_cfa_register 13 753 @ sp needed 754 0238 80BD pop {r7, pc} 755 .L43: 756 023a 00BF .align 2 757 .L42: 758 023c C0122000 .word 2101952 759 0240 C0122800 .word 2626240 760 0244 00000000 .word flow_inf 761 0248 01000000 .word flow_inf+1 762 024c 00000000 .word Dev 763 0250 13000000 .word flow_inf+19 764 .cfi_endproc 765 .LFE135: 767 .section .text.distributor_recieved_hookfuction,"ax",%progbits 768 .align 1 769 .global distributor_recieved_hookfuction ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 19 770 .syntax unified 771 .thumb 772 .thumb_func 774 distributor_recieved_hookfuction: 775 .LFB136: 170:user_src/soft_water_device.c **** 171:user_src/soft_water_device.c **** /** 172:user_src/soft_water_device.c **** * @file distributor_recieved_hookfuction 173:user_src/soft_water_device.c **** * @brief 解析分电板信息 174:user_src/soft_water_device.c **** * @param 175:user_src/soft_water_device.c **** * @details 176:user_src/soft_water_device.c **** * @author Zhang Sir 177:user_src/soft_water_device.c **** **/ 178:user_src/soft_water_device.c **** void distributor_recieved_hookfuction(uint32_t cellCanID,uint8_t data[], uint8_t len) 179:user_src/soft_water_device.c **** { 776 .loc 1 179 1 777 .cfi_startproc 778 @ args = 0, pretend = 0, frame = 16 779 @ frame_needed = 1, uses_anonymous_args = 0 780 0000 80B5 push {r7, lr} 781 .LCFI15: 782 .cfi_def_cfa_offset 8 783 .cfi_offset 7, -8 784 .cfi_offset 14, -4 785 0002 84B0 sub sp, sp, #16 786 .LCFI16: 787 .cfi_def_cfa_offset 24 788 0004 00AF add r7, sp, #0 789 .LCFI17: 790 .cfi_def_cfa_register 7 791 0006 F860 str r0, [r7, #12] 792 0008 B960 str r1, [r7, #8] 793 000a 1346 mov r3, r2 794 000c FB71 strb r3, [r7, #7] 795 000e BB68 ldr r3, [r7, #8] 796 0010 1B88 ldrh r3, [r3] @ unaligned 797 0012 9AB2 uxth r2, r3 180:user_src/soft_water_device.c **** memcpy(&distributor.arm_sensor1,&data[0],2); 798 .loc 1 180 5 799 0014 064B ldr r3, .L45 800 0016 1A80 strh r2, [r3] @ movhi 181:user_src/soft_water_device.c **** 182:user_src/soft_water_device.c **** Distributor_Link.connect_status = COMP_NORMAL; 801 .loc 1 182 37 802 0018 064B ldr r3, .L45+4 803 001a 0122 movs r2, #1 804 001c 1A72 strb r2, [r3, #8] 183:user_src/soft_water_device.c **** Distributor_Link.recv_time = HAL_GetTick(); 805 .loc 1 183 34 806 001e FFF7FEFF bl HAL_GetTick 807 0022 0346 mov r3, r0 808 .loc 1 183 32 809 0024 034A ldr r2, .L45+4 810 0026 1360 str r3, [r2] 184:user_src/soft_water_device.c **** } 811 .loc 1 184 1 812 0028 00BF nop ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 20 813 002a 1037 adds r7, r7, #16 814 .LCFI18: 815 .cfi_def_cfa_offset 8 816 002c BD46 mov sp, r7 817 .LCFI19: 818 .cfi_def_cfa_register 13 819 @ sp needed 820 002e 80BD pop {r7, pc} 821 .L46: 822 .align 2 823 .L45: 824 0030 00000000 .word distributor 825 0034 00000000 .word Distributor_Link 826 .cfi_endproc 827 .LFE136: 829 .global distributor 830 .section .data.distributor,"aw" 831 .align 2 834 distributor: 835 0000 0000 .space 2 836 0002 E803 .short 1000 837 0004 E803 .short 1000 838 .global Distributor_Link 839 .section .bss.Distributor_Link,"aw",%nobits 840 .align 2 843 Distributor_Link: 844 0000 00000000 .space 12 844 00000000 844 00000000 845 .section .text.Can_sendmsg_to_distributor,"ax",%progbits 846 .align 1 847 .global Can_sendmsg_to_distributor 848 .syntax unified 849 .thumb 850 .thumb_func 852 Can_sendmsg_to_distributor: 853 .LFB137: 185:user_src/soft_water_device.c **** 186:user_src/soft_water_device.c **** 187:user_src/soft_water_device.c **** /** 188:user_src/soft_water_device.c **** * @file Can_sendmsg_to_distributor 189:user_src/soft_water_device.c **** * @brief 发送信息给分电板 190:user_src/soft_water_device.c **** * @param 191:user_src/soft_water_device.c **** * @details 192:user_src/soft_water_device.c **** * @author Zhang Sir 193:user_src/soft_water_device.c **** **/ 194:user_src/soft_water_device.c **** distributor_info distributor = {.nozzle1 = 1000, .nozzle2 = 1000}; 195:user_src/soft_water_device.c **** Connect_check Distributor_Link; 196:user_src/soft_water_device.c **** void Can_sendmsg_to_distributor(void) 197:user_src/soft_water_device.c **** { 854 .loc 1 197 1 855 .cfi_startproc 856 @ args = 0, pretend = 0, frame = 8 857 @ frame_needed = 1, uses_anonymous_args = 0 858 0000 80B5 push {r7, lr} 859 .LCFI20: 860 .cfi_def_cfa_offset 8 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 21 861 .cfi_offset 7, -8 862 .cfi_offset 14, -4 863 0002 82B0 sub sp, sp, #8 864 .LCFI21: 865 .cfi_def_cfa_offset 16 866 0004 00AF add r7, sp, #0 867 .LCFI22: 868 .cfi_def_cfa_register 7 198:user_src/soft_water_device.c **** if(Distributor_Link.connect_status != COMP_NORMAL) 869 .loc 1 198 24 870 0006 134B ldr r3, .L51 871 0008 1B7A ldrb r3, [r3, #8] @ zero_extendqisi2 872 .loc 1 198 7 873 000a 012B cmp r3, #1 874 000c 1ED1 bne .L50 199:user_src/soft_water_device.c **** return; 200:user_src/soft_water_device.c **** 201:user_src/soft_water_device.c **** uint8_t can_buf[8] = {0}; 875 .loc 1 201 13 876 000e 0023 movs r3, #0 877 0010 3B60 str r3, [r7] 878 0012 0023 movs r3, #0 879 0014 7B60 str r3, [r7, #4] 202:user_src/soft_water_device.c **** 203:user_src/soft_water_device.c **** can_buf[0] = distributor.nozzle1 & 0xff; 880 .loc 1 203 29 881 0016 104B ldr r3, .L51+4 882 0018 5B88 ldrh r3, [r3, #2] 883 .loc 1 203 16 884 001a DBB2 uxtb r3, r3 885 001c 3B70 strb r3, [r7] 204:user_src/soft_water_device.c **** can_buf[1] = (distributor.nozzle1 >> 8) & 0xff; 886 .loc 1 204 30 887 001e 0E4B ldr r3, .L51+4 888 0020 5B88 ldrh r3, [r3, #2] 889 .loc 1 204 16 890 0022 1B0A lsrs r3, r3, #8 891 0024 9BB2 uxth r3, r3 892 0026 DBB2 uxtb r3, r3 893 0028 7B70 strb r3, [r7, #1] 205:user_src/soft_water_device.c **** 206:user_src/soft_water_device.c **** can_buf[2] = distributor.nozzle2 & 0xff; 894 .loc 1 206 29 895 002a 0B4B ldr r3, .L51+4 896 002c 9B88 ldrh r3, [r3, #4] 897 .loc 1 206 16 898 002e DBB2 uxtb r3, r3 899 0030 BB70 strb r3, [r7, #2] 207:user_src/soft_water_device.c **** can_buf[3] = (distributor.nozzle2 >> 8) & 0xff; 900 .loc 1 207 30 901 0032 094B ldr r3, .L51+4 902 0034 9B88 ldrh r3, [r3, #4] 903 .loc 1 207 16 904 0036 1B0A lsrs r3, r3, #8 905 0038 9BB2 uxth r3, r3 906 003a DBB2 uxtb r3, r3 907 003c FB70 strb r3, [r7, #3] ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 22 208:user_src/soft_water_device.c **** 209:user_src/soft_water_device.c **** can_send_msg_normal(can_buf,8,0x81422); 908 .loc 1 209 5 909 003e 3B46 mov r3, r7 910 0040 064A ldr r2, .L51+8 911 0042 0821 movs r1, #8 912 0044 1846 mov r0, r3 913 0046 FFF7FEFF bl can_send_msg_normal 914 004a 00E0 b .L47 915 .L50: 199:user_src/soft_water_device.c **** 916 .loc 1 199 9 917 004c 00BF nop 918 .L47: 210:user_src/soft_water_device.c **** } 919 .loc 1 210 1 920 004e 0837 adds r7, r7, #8 921 .LCFI23: 922 .cfi_def_cfa_offset 8 923 0050 BD46 mov sp, r7 924 .LCFI24: 925 .cfi_def_cfa_register 13 926 @ sp needed 927 0052 80BD pop {r7, pc} 928 .L52: 929 .align 2 930 .L51: 931 0054 00000000 .word Distributor_Link 932 0058 00000000 .word distributor 933 005c 22140800 .word 529442 934 .cfi_endproc 935 .LFE137: 937 .section .text.can_sendmsg_flow,"ax",%progbits 938 .align 1 939 .global can_sendmsg_flow 940 .syntax unified 941 .thumb 942 .thumb_func 944 can_sendmsg_flow: 945 .LFB138: 211:user_src/soft_water_device.c **** 212:user_src/soft_water_device.c **** 213:user_src/soft_water_device.c **** /** 214:user_src/soft_water_device.c **** * @file can_sendmsg_flow 215:user_src/soft_water_device.c **** * @brief 发送信息到流量计 216:user_src/soft_water_device.c **** * @param 217:user_src/soft_water_device.c **** * @details 218:user_src/soft_water_device.c **** * @author Zhang Sir 219:user_src/soft_water_device.c **** **/ 220:user_src/soft_water_device.c **** void can_sendmsg_flow(void) 221:user_src/soft_water_device.c **** { 946 .loc 1 221 1 947 .cfi_startproc 948 @ args = 0, pretend = 0, frame = 8 949 @ frame_needed = 1, uses_anonymous_args = 0 950 0000 80B5 push {r7, lr} 951 .LCFI25: ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 23 952 .cfi_def_cfa_offset 8 953 .cfi_offset 7, -8 954 .cfi_offset 14, -4 955 0002 82B0 sub sp, sp, #8 956 .LCFI26: 957 .cfi_def_cfa_offset 16 958 0004 00AF add r7, sp, #0 959 .LCFI27: 960 .cfi_def_cfa_register 7 222:user_src/soft_water_device.c **** uint8_t can_buf[8] = {0}; 961 .loc 1 222 13 962 0006 0023 movs r3, #0 963 0008 3B60 str r3, [r7] 964 000a 0023 movs r3, #0 965 000c 7B60 str r3, [r7, #4] 223:user_src/soft_water_device.c **** 224:user_src/soft_water_device.c **** //获取厂商ID 225:user_src/soft_water_device.c **** if(Dev.Flow_Link1.connect_status == COMP_NORMAL && Dev.Flow.facid == 0xff) 966 .loc 1 225 22 967 000e 424B ldr r3, .L60 968 0010 93F89C30 ldrb r3, [r3, #156] @ zero_extendqisi2 969 .loc 1 225 7 970 0014 012B cmp r3, #1 971 0016 0FD1 bne .L54 972 .loc 1 225 64 discriminator 1 973 0018 3F4B ldr r3, .L60 974 001a 93F87C30 ldrb r3, [r3, #124] @ zero_extendqisi2 975 .loc 1 225 53 discriminator 1 976 001e FF2B cmp r3, #255 977 0020 0AD1 bne .L54 226:user_src/soft_water_device.c **** { 227:user_src/soft_water_device.c **** can_buf[0] = 0XF7; 978 .loc 1 227 20 979 0022 F723 movs r3, #247 980 0024 3B70 strb r3, [r7] 228:user_src/soft_water_device.c **** can_buf[7] = 0XFE; 981 .loc 1 228 20 982 0026 FE23 movs r3, #254 983 0028 FB71 strb r3, [r7, #7] 229:user_src/soft_water_device.c **** can_send_msg_normal(can_buf,8,0x216020); 984 .loc 1 229 9 985 002a 3B46 mov r3, r7 986 002c 3B4A ldr r2, .L60+4 987 002e 0821 movs r1, #8 988 0030 1846 mov r0, r3 989 0032 FFF7FEFF bl can_send_msg_normal 990 0036 6AE0 b .L55 991 .L54: 230:user_src/soft_water_device.c **** } 231:user_src/soft_water_device.c **** //上电读取流量计K值 和 系数单位 232:user_src/soft_water_device.c **** else if(Dev.Flow_Link1.connect_status == COMP_NORMAL && (Dev.Flow.facid == FAC_VK || 992 .loc 1 232 27 993 0038 374B ldr r3, .L60 994 003a 93F89C30 ldrb r3, [r3, #156] @ zero_extendqisi2 995 .loc 1 232 12 996 003e 012B cmp r3, #1 997 0040 2AD1 bne .L56 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 24 998 .loc 1 232 70 discriminator 1 999 0042 354B ldr r3, .L60 1000 0044 93F87C30 ldrb r3, [r3, #124] @ zero_extendqisi2 1001 .loc 1 232 58 discriminator 1 1002 0048 002B cmp r3, #0 1003 004a 09D0 beq .L57 233:user_src/soft_water_device.c **** Dev.Flow.facid == FAC_QIFEI_SIG ||Dev.Flow.facid == FAC_QIFEI_DOU) && flow_inf.ch1.get_k == 1004 .loc 1 233 17 discriminator 2 1005 004c 324B ldr r3, .L60 1006 004e 93F87C30 ldrb r3, [r3, #124] @ zero_extendqisi2 232:user_src/soft_water_device.c **** Dev.Flow.facid == FAC_QIFEI_SIG ||Dev.Flow.facid == FAC_QIFEI_DOU) && flow_inf.ch1.get_k == 1007 .loc 1 232 87 discriminator 2 1008 0052 072B cmp r3, #7 1009 0054 04D0 beq .L57 1010 .loc 1 233 51 1011 0056 304B ldr r3, .L60 1012 0058 93F87C30 ldrb r3, [r3, #124] @ zero_extendqisi2 1013 .loc 1 233 41 1014 005c 082B cmp r3, #8 1015 005e 1BD1 bne .L56 1016 .L57: 1017 .loc 1 233 91 discriminator 1 1018 0060 2F4B ldr r3, .L60+8 1019 0062 9B7B ldrb r3, [r3, #14] @ zero_extendqisi2 1020 .loc 1 233 98 discriminator 1 1021 0064 83F00103 eor r3, r3, #1 1022 0068 DBB2 uxtb r3, r3 1023 .loc 1 233 76 discriminator 1 1024 006a 002B cmp r3, #0 1025 006c 14D0 beq .L56 234:user_src/soft_water_device.c **** { 235:user_src/soft_water_device.c **** can_buf[0] = 0XF2; 1026 .loc 1 235 20 1027 006e F223 movs r3, #242 1028 0070 3B70 strb r3, [r7] 236:user_src/soft_water_device.c **** can_buf[7] = 0XFE; 1029 .loc 1 236 20 1030 0072 FE23 movs r3, #254 1031 0074 FB71 strb r3, [r7, #7] 237:user_src/soft_water_device.c **** can_send_msg_normal(can_buf,8,0x216020); 1032 .loc 1 237 9 1033 0076 3B46 mov r3, r7 1034 0078 284A ldr r2, .L60+4 1035 007a 0821 movs r1, #8 1036 007c 1846 mov r0, r3 1037 007e FFF7FEFF bl can_send_msg_normal 238:user_src/soft_water_device.c **** 239:user_src/soft_water_device.c **** can_buf[0] = 0XF3; 1038 .loc 1 239 20 1039 0082 F323 movs r3, #243 1040 0084 3B70 strb r3, [r7] 240:user_src/soft_water_device.c **** can_buf[7] = 0XFE; 1041 .loc 1 240 20 1042 0086 FE23 movs r3, #254 1043 0088 FB71 strb r3, [r7, #7] 241:user_src/soft_water_device.c **** can_send_msg_normal(can_buf,8,0x216020); 1044 .loc 1 241 9 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 25 1045 008a 3B46 mov r3, r7 1046 008c 234A ldr r2, .L60+4 1047 008e 0821 movs r1, #8 1048 0090 1846 mov r0, r3 1049 0092 FFF7FEFF bl can_send_msg_normal 1050 0096 3AE0 b .L55 1051 .L56: 242:user_src/soft_water_device.c **** 243:user_src/soft_water_device.c **** } 244:user_src/soft_water_device.c **** else if (Dev.Flow_Link1.connect_status == COMP_NORMAL && (Dev.Flow.facid == FAC_VK || 1052 .loc 1 244 28 1053 0098 1F4B ldr r3, .L60 1054 009a 93F89C30 ldrb r3, [r3, #156] @ zero_extendqisi2 1055 .loc 1 244 13 1056 009e 012B cmp r3, #1 1057 00a0 35D1 bne .L59 1058 .loc 1 244 71 discriminator 1 1059 00a2 1D4B ldr r3, .L60 1060 00a4 93F87C30 ldrb r3, [r3, #124] @ zero_extendqisi2 1061 .loc 1 244 59 discriminator 1 1062 00a8 002B cmp r3, #0 1063 00aa 09D0 beq .L58 245:user_src/soft_water_device.c **** Dev.Flow.facid == FAC_QIFEI_SIG ||Dev.Flow.facid == FAC_QIFEI_DOU) && 1064 .loc 1 245 17 discriminator 2 1065 00ac 1A4B ldr r3, .L60 1066 00ae 93F87C30 ldrb r3, [r3, #124] @ zero_extendqisi2 244:user_src/soft_water_device.c **** Dev.Flow.facid == FAC_QIFEI_SIG ||Dev.Flow.facid == FAC_QIFEI_DOU) && 1067 .loc 1 244 88 discriminator 2 1068 00b2 072B cmp r3, #7 1069 00b4 04D0 beq .L58 1070 .loc 1 245 51 1071 00b6 184B ldr r3, .L60 1072 00b8 93F87C30 ldrb r3, [r3, #124] @ zero_extendqisi2 1073 .loc 1 245 41 1074 00bc 082B cmp r3, #8 1075 00be 26D1 bne .L59 1076 .L58: 246:user_src/soft_water_device.c **** flow_inf.ch1.set_k == true) 1077 .loc 1 246 22 discriminator 1 1078 00c0 174B ldr r3, .L60+8 1079 00c2 DB7B ldrb r3, [r3, #15] @ zero_extendqisi2 245:user_src/soft_water_device.c **** Dev.Flow.facid == FAC_QIFEI_SIG ||Dev.Flow.facid == FAC_QIFEI_DOU) && 1080 .loc 1 245 76 discriminator 1 1081 00c4 002B cmp r3, #0 1082 00c6 22D0 beq .L59 247:user_src/soft_water_device.c **** { 248:user_src/soft_water_device.c **** can_buf[0] = 0XF1; 1083 .loc 1 248 20 1084 00c8 F123 movs r3, #241 1085 00ca 3B70 strb r3, [r7] 249:user_src/soft_water_device.c **** can_buf[1] = 0x1; 1086 .loc 1 249 20 1087 00cc 0123 movs r3, #1 1088 00ce 7B70 strb r3, [r7, #1] 250:user_src/soft_water_device.c **** can_buf[5] = flow_inf.ch1.cal_k; 1089 .loc 1 250 34 1090 00d0 134B ldr r3, .L60+8 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 26 1091 00d2 1B8A ldrh r3, [r3, #16] 1092 .loc 1 250 20 1093 00d4 DBB2 uxtb r3, r3 1094 00d6 7B71 strb r3, [r7, #5] 251:user_src/soft_water_device.c **** can_buf[6] = (flow_inf.ch1.cal_k >> 8) & 0xff; //12做个调换 1095 .loc 1 251 35 1096 00d8 114B ldr r3, .L60+8 1097 00da 1B8A ldrh r3, [r3, #16] 1098 .loc 1 251 20 1099 00dc 1B0A lsrs r3, r3, #8 1100 00de 9BB2 uxth r3, r3 1101 00e0 DBB2 uxtb r3, r3 1102 00e2 BB71 strb r3, [r7, #6] 252:user_src/soft_water_device.c **** can_buf[4] = 0x2; 1103 .loc 1 252 20 1104 00e4 0223 movs r3, #2 1105 00e6 3B71 strb r3, [r7, #4] 253:user_src/soft_water_device.c **** can_buf[2] = flow_inf.ch2.cal_k; 1106 .loc 1 253 34 1107 00e8 0D4B ldr r3, .L60+8 1108 00ea 5B8C ldrh r3, [r3, #34] 1109 .loc 1 253 20 1110 00ec DBB2 uxtb r3, r3 1111 00ee BB70 strb r3, [r7, #2] 254:user_src/soft_water_device.c **** can_buf[3] = (flow_inf.ch2.cal_k >> 8) & 0xff; 1112 .loc 1 254 35 1113 00f0 0B4B ldr r3, .L60+8 1114 00f2 5B8C ldrh r3, [r3, #34] 1115 .loc 1 254 20 1116 00f4 1B0A lsrs r3, r3, #8 1117 00f6 9BB2 uxth r3, r3 1118 00f8 DBB2 uxtb r3, r3 1119 00fa FB70 strb r3, [r7, #3] 255:user_src/soft_water_device.c **** can_buf[7] = 0XFE; 1120 .loc 1 255 20 1121 00fc FE23 movs r3, #254 1122 00fe FB71 strb r3, [r7, #7] 256:user_src/soft_water_device.c **** 257:user_src/soft_water_device.c **** can_send_msg_normal(can_buf,8,0x216020); 1123 .loc 1 257 9 1124 0100 3B46 mov r3, r7 1125 0102 064A ldr r2, .L60+4 1126 0104 0821 movs r1, #8 1127 0106 1846 mov r0, r3 1128 0108 FFF7FEFF bl can_send_msg_normal 258:user_src/soft_water_device.c **** } 259:user_src/soft_water_device.c **** 260:user_src/soft_water_device.c **** 261:user_src/soft_water_device.c **** } 1129 .loc 1 261 1 1130 010c FFE7 b .L59 1131 .L55: 1132 .L59: 1133 010e 00BF nop 1134 0110 0837 adds r7, r7, #8 1135 .LCFI28: 1136 .cfi_def_cfa_offset 8 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 27 1137 0112 BD46 mov sp, r7 1138 .LCFI29: 1139 .cfi_def_cfa_register 13 1140 @ sp needed 1141 0114 80BD pop {r7, pc} 1142 .L61: 1143 0116 00BF .align 2 1144 .L60: 1145 0118 00000000 .word Dev 1146 011c 20602100 .word 2187296 1147 0120 00000000 .word flow_inf 1148 .cfi_endproc 1149 .LFE138: 1151 .global set_HWesc_ESCid 1152 .section .bss.set_HWesc_ESCid,"aw",%nobits 1155 set_HWesc_ESCid: 1156 0000 00 .space 1 1157 .global SetEscidTail 1158 .section .bss.SetEscidTail,"aw",%nobits 1159 .align 2 1162 SetEscidTail: 1163 0000 00 .space 1 1164 .global curNodeID 1165 .section .data.curNodeID,"aw" 1166 .align 1 1169 curNodeID: 1170 0000 0100 .short 1 1171 .global setESCidInfo 1172 .section .data.setESCidInfo,"aw" 1173 .align 2 1176 setESCidInfo: 1177 0000 05 .byte 5 1178 0001 00000000 .space 11 1178 00000000 1178 000000 1179 .section .text.HW_CanSetESCInfomation,"ax",%progbits 1180 .align 1 1181 .global HW_CanSetESCInfomation 1182 .syntax unified 1183 .thumb 1184 .thumb_func 1186 HW_CanSetESCInfomation: 1187 .LFB139: 262:user_src/soft_water_device.c **** 263:user_src/soft_water_device.c **** 264:user_src/soft_water_device.c **** /** 265:user_src/soft_water_device.c **** * @file HW_CanSetESCInfomation 266:user_src/soft_water_device.c **** * @brief HW设置类信息 267:user_src/soft_water_device.c **** * @param 268:user_src/soft_water_device.c **** * @details 269:user_src/soft_water_device.c **** * @author Zhang Sir 270:user_src/soft_water_device.c **** **/ 271:user_src/soft_water_device.c **** bool set_HWesc_ESCid = false; 272:user_src/soft_water_device.c **** HWTail SetEscidTail = {0}; 273:user_src/soft_water_device.c **** uint16_t curNodeID = 1; //当前能接收到的ESC的id 274:user_src/soft_water_device.c **** _setESCidInfo setESCidInfo = {.reTxMaxCnt = 5}; 275:user_src/soft_water_device.c **** void HW_CanSetESCInfomation( void ) ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 28 276:user_src/soft_water_device.c **** { 1188 .loc 1 276 1 1189 .cfi_startproc 1190 @ args = 0, pretend = 0, frame = 16 1191 @ frame_needed = 1, uses_anonymous_args = 0 1192 0000 80B5 push {r7, lr} 1193 .LCFI30: 1194 .cfi_def_cfa_offset 8 1195 .cfi_offset 7, -8 1196 .cfi_offset 14, -4 1197 0002 84B0 sub sp, sp, #16 1198 .LCFI31: 1199 .cfi_def_cfa_offset 24 1200 0004 00AF add r7, sp, #0 1201 .LCFI32: 1202 .cfi_def_cfa_register 7 277:user_src/soft_water_device.c **** uint8_t send_can_buf[8] = {0}; 1203 .loc 1 277 13 1204 0006 0023 movs r3, #0 1205 0008 7B60 str r3, [r7, #4] 1206 000a 0023 movs r3, #0 1207 000c BB60 str r3, [r7, #8] 278:user_src/soft_water_device.c **** uint32_t canID = 0; 1208 .loc 1 278 14 1209 000e 0023 movs r3, #0 1210 0010 FB60 str r3, [r7, #12] 279:user_src/soft_water_device.c **** 280:user_src/soft_water_device.c **** if ( set_HWesc_ESCid == true ) 1211 .loc 1 280 26 1212 0012 A14B ldr r3, .L85 1213 0014 1B78 ldrb r3, [r3] @ zero_extendqisi2 1214 .loc 1 280 8 1215 0016 002B cmp r3, #0 1216 0018 00F02D82 beq .L84 281:user_src/soft_water_device.c **** { 282:user_src/soft_water_device.c **** //超时退出.任何阶段配置失败是否要执行退出配置模式? 283:user_src/soft_water_device.c **** if ( setESCidInfo.reTxMaxCnt <= 0 && setESCidInfo.setESCidStep != SETESCID_EXIT ) 1217 .loc 1 283 26 1218 001c 9F4B ldr r3, .L85+4 1219 001e 93F90030 ldrsb r3, [r3] 1220 .loc 1 283 12 1221 0022 002B cmp r3, #0 1222 0024 49DC bgt .L64 1223 .loc 1 283 59 discriminator 1 1224 0026 9D4B ldr r3, .L85+4 1225 0028 5B78 ldrb r3, [r3, #1] @ zero_extendqisi2 1226 .loc 1 283 44 discriminator 1 1227 002a 032B cmp r3, #3 1228 002c 45D0 beq .L64 284:user_src/soft_water_device.c **** { 285:user_src/soft_water_device.c **** setESCidInfo.setESCidStep = SETESCID_EXIT; 1229 .loc 1 285 39 1230 002e 9B4B ldr r3, .L85+4 1231 0030 0322 movs r2, #3 1232 0032 5A70 strb r2, [r3, #1] 286:user_src/soft_water_device.c **** setESCidInfo.reTxMaxCnt = 5; 1233 .loc 1 286 37 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 29 1234 0034 994B ldr r3, .L85+4 1235 0036 0522 movs r2, #5 1236 0038 1A70 strb r2, [r3] 287:user_src/soft_water_device.c **** set_HWesc_ESCid = false; 1237 .loc 1 287 29 1238 003a 974B ldr r3, .L85 1239 003c 0022 movs r2, #0 1240 003e 1A70 strb r2, [r3] 288:user_src/soft_water_device.c **** 289:user_src/soft_water_device.c **** //继续配置2号水泵 290:user_src/soft_water_device.c **** if(setESCidInfo.setESCidNum == 1) 1241 .loc 1 290 28 1242 0040 964B ldr r3, .L85+4 1243 0042 9B79 ldrb r3, [r3, #6] @ zero_extendqisi2 1244 .loc 1 290 15 1245 0044 012B cmp r3, #1 1246 0046 0CD1 bne .L65 291:user_src/soft_water_device.c **** { 292:user_src/soft_water_device.c **** setESCidInfo.setESCidNum++; 1247 .loc 1 292 29 1248 0048 944B ldr r3, .L85+4 1249 004a 9B79 ldrb r3, [r3, #6] @ zero_extendqisi2 1250 .loc 1 292 41 1251 004c 0133 adds r3, r3, #1 1252 004e DAB2 uxtb r2, r3 1253 0050 924B ldr r3, .L85+4 1254 0052 9A71 strb r2, [r3, #6] 293:user_src/soft_water_device.c **** setESCidInfo.setESCidStep = SETESCID_INIT; 1255 .loc 1 293 43 1256 0054 914B ldr r3, .L85+4 1257 0056 0022 movs r2, #0 1258 0058 5A70 strb r2, [r3, #1] 294:user_src/soft_water_device.c **** set_HWesc_ESCid = true; 1259 .loc 1 294 33 1260 005a 8F4B ldr r3, .L85 1261 005c 0122 movs r2, #1 1262 005e 1A70 strb r2, [r3] 1263 0060 2BE0 b .L64 1264 .L65: 295:user_src/soft_water_device.c **** } 296:user_src/soft_water_device.c **** else if(setESCidInfo.setESCidNum == 2) 1265 .loc 1 296 33 1266 0062 8E4B ldr r3, .L85+4 1267 0064 9B79 ldrb r3, [r3, #6] @ zero_extendqisi2 1268 .loc 1 296 20 1269 0066 022B cmp r3, #2 1270 0068 27D1 bne .L64 297:user_src/soft_water_device.c **** { 298:user_src/soft_water_device.c **** //设置成功,发送ACK 299:user_src/soft_water_device.c **** if(Dev.L_pump1_Link.connect_status == COMP_NORMAL && 1271 .loc 1 299 36 1272 006a 8D4B ldr r3, .L85+8 1273 006c 93F81432 ldrb r3, [r3, #532] @ zero_extendqisi2 1274 .loc 1 299 19 1275 0070 012B cmp r3, #1 1276 0072 0BD1 bne .L66 300:user_src/soft_water_device.c **** Dev.L_pump2_Link.connect_status == COMP_NORMAL) ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 30 1277 .loc 1 300 37 discriminator 1 1278 0074 8A4B ldr r3, .L85+8 1279 0076 93F82832 ldrb r3, [r3, #552] @ zero_extendqisi2 299:user_src/soft_water_device.c **** Dev.L_pump2_Link.connect_status == COMP_NORMAL) 1280 .loc 1 299 67 discriminator 1 1281 007a 012B cmp r3, #1 1282 007c 06D1 bne .L66 301:user_src/soft_water_device.c **** { 302:user_src/soft_water_device.c **** pmu_set_ack(_MSGID_SET,MSGID_SET_PUMP_ID,3,1); 1283 .loc 1 302 21 1284 007e 0123 movs r3, #1 1285 0080 0322 movs r2, #3 1286 0082 2021 movs r1, #32 1287 0084 1620 movs r0, #22 1288 0086 FFF7FEFF bl pmu_set_ack 1289 008a 16E0 b .L64 1290 .L66: 303:user_src/soft_water_device.c **** } 304:user_src/soft_water_device.c **** else if (Dev.L_pump1_Link.connect_status == COMP_NORMAL) 1291 .loc 1 304 42 1292 008c 844B ldr r3, .L85+8 1293 008e 93F81432 ldrb r3, [r3, #532] @ zero_extendqisi2 1294 .loc 1 304 25 1295 0092 012B cmp r3, #1 1296 0094 06D1 bne .L67 305:user_src/soft_water_device.c **** { 306:user_src/soft_water_device.c **** pmu_set_ack(_MSGID_SET,MSGID_SET_PUMP_ID,1,1); 1297 .loc 1 306 21 1298 0096 0123 movs r3, #1 1299 0098 0122 movs r2, #1 1300 009a 2021 movs r1, #32 1301 009c 1620 movs r0, #22 1302 009e FFF7FEFF bl pmu_set_ack 1303 00a2 0AE0 b .L64 1304 .L67: 307:user_src/soft_water_device.c **** } 308:user_src/soft_water_device.c **** else if (Dev.L_pump2_Link.connect_status == COMP_NORMAL) 1305 .loc 1 308 42 1306 00a4 7E4B ldr r3, .L85+8 1307 00a6 93F82832 ldrb r3, [r3, #552] @ zero_extendqisi2 1308 .loc 1 308 25 1309 00aa 012B cmp r3, #1 1310 00ac 05D1 bne .L64 309:user_src/soft_water_device.c **** { 310:user_src/soft_water_device.c **** pmu_set_ack(_MSGID_SET,MSGID_SET_PUMP_ID,2,1); 1311 .loc 1 310 21 1312 00ae 0123 movs r3, #1 1313 00b0 0222 movs r2, #2 1314 00b2 2021 movs r1, #32 1315 00b4 1620 movs r0, #22 1316 00b6 FFF7FEFF bl pmu_set_ack 1317 .L64: 311:user_src/soft_water_device.c **** } 312:user_src/soft_water_device.c **** 313:user_src/soft_water_device.c **** } 314:user_src/soft_water_device.c **** } 315:user_src/soft_water_device.c **** ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 31 316:user_src/soft_water_device.c **** // 初始化并清零现场 317:user_src/soft_water_device.c **** if ( setESCidInfo.setESCidStep == SETESCID_INIT ) 1318 .loc 1 317 26 1319 00ba 784B ldr r3, .L85+4 1320 00bc 5B78 ldrb r3, [r3, #1] @ zero_extendqisi2 1321 .loc 1 317 12 1322 00be 002B cmp r3, #0 1323 00c0 33D1 bne .L68 318:user_src/soft_water_device.c **** { 319:user_src/soft_water_device.c **** setESCidInfo.getSetIDModeRes = false; 1324 .loc 1 319 42 1325 00c2 764B ldr r3, .L85+4 1326 00c4 0022 movs r2, #0 1327 00c6 9A70 strb r2, [r3, #2] 320:user_src/soft_water_device.c **** setESCidInfo.reTxMaxCnt = 5; 1328 .loc 1 320 37 1329 00c8 744B ldr r3, .L85+4 1330 00ca 0522 movs r2, #5 1331 00cc 1A70 strb r2, [r3] 321:user_src/soft_water_device.c **** setESCidInfo.getSetIDModeResCnt = 0; 1332 .loc 1 321 45 1333 00ce 734B ldr r3, .L85+4 1334 00d0 0022 movs r2, #0 1335 00d2 9A80 strh r2, [r3, #4] @ movhi 322:user_src/soft_water_device.c **** 323:user_src/soft_water_device.c **** if ( setESCidInfo.setESCidNum > 0 && setESCidInfo.setESCidNum <= 4 ) 1336 .loc 1 323 30 1337 00d4 714B ldr r3, .L85+4 1338 00d6 9B79 ldrb r3, [r3, #6] @ zero_extendqisi2 1339 .loc 1 323 16 1340 00d8 002B cmp r3, #0 1341 00da 22D0 beq .L69 1342 .loc 1 323 62 discriminator 1 1343 00dc 6F4B ldr r3, .L85+4 1344 00de 9B79 ldrb r3, [r3, #6] @ zero_extendqisi2 1345 .loc 1 323 47 discriminator 1 1346 00e0 042B cmp r3, #4 1347 00e2 1ED8 bhi .L69 324:user_src/soft_water_device.c **** { 325:user_src/soft_water_device.c **** EscMsg[setESCidInfo.setESCidNum].ResSetID = false; 1348 .loc 1 325 36 1349 00e4 6D4B ldr r3, .L85+4 1350 00e6 9B79 ldrb r3, [r3, #6] @ zero_extendqisi2 1351 00e8 1946 mov r1, r3 1352 .loc 1 325 59 1353 00ea 6E4A ldr r2, .L85+12 1354 00ec 4FF4A273 mov r3, #324 1355 00f0 01FB03F3 mul r3, r1, r3 1356 00f4 1344 add r3, r3, r2 1357 00f6 2C33 adds r3, r3, #44 1358 00f8 0022 movs r2, #0 1359 00fa 1A70 strb r2, [r3] 326:user_src/soft_water_device.c **** EscMsg[setESCidInfo.setESCidNum].ResSetIDModeExit = false; 1360 .loc 1 326 36 1361 00fc 674B ldr r3, .L85+4 1362 00fe 9B79 ldrb r3, [r3, #6] @ zero_extendqisi2 1363 0100 1946 mov r1, r3 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 32 1364 .loc 1 326 67 1365 0102 684A ldr r2, .L85+12 1366 0104 4FF4A273 mov r3, #324 1367 0108 01FB03F3 mul r3, r1, r3 1368 010c 1344 add r3, r3, r2 1369 010e 2B33 adds r3, r3, #43 1370 0110 0022 movs r2, #0 1371 0112 1A70 strb r2, [r3] 327:user_src/soft_water_device.c **** 328:user_src/soft_water_device.c **** setESCidInfo.setESCidStep++; 1372 .loc 1 328 29 1373 0114 614B ldr r3, .L85+4 1374 0116 5B78 ldrb r3, [r3, #1] @ zero_extendqisi2 1375 .loc 1 328 42 1376 0118 0133 adds r3, r3, #1 1377 011a DAB2 uxtb r2, r3 1378 011c 5F4B ldr r3, .L85+4 1379 011e 5A70 strb r2, [r3, #1] 329:user_src/soft_water_device.c **** } 330:user_src/soft_water_device.c **** else 331:user_src/soft_water_device.c **** { 332:user_src/soft_water_device.c **** set_HWesc_ESCid = false; 333:user_src/soft_water_device.c **** } 334:user_src/soft_water_device.c **** } 335:user_src/soft_water_device.c **** // 进入配置模式 336:user_src/soft_water_device.c **** else if ( setESCidInfo.setESCidStep == SETESCID_ENTER ) 337:user_src/soft_water_device.c **** { 338:user_src/soft_water_device.c **** if ( setESCidInfo.getSetIDModeRes == false ) 339:user_src/soft_water_device.c **** { 340:user_src/soft_water_device.c **** //广播帧 341:user_src/soft_water_device.c **** canID = ( ( HW_PRI_MEDIUM << HW_CANID_PRI_POS ) & HW_CANID_PRI_MASK ) | 342:user_src/soft_water_device.c **** ( ( HW_FRAME_MSG_SET_ID_MODE << HW_CANID_MSGID_POS ) & HW_CANID_MSGID_MASK 343:user_src/soft_water_device.c **** ( ( HW_TYPE_MSG << HW_CANID_SNM_POS ) & HW_CANID_SNM_MASK ) | 344:user_src/soft_water_device.c **** ( ( HW_NODE_BDC << HW_CANID_SRCNODE_POS )& HW_CANID_SRCNODE_MASK ); 345:user_src/soft_water_device.c **** 346:user_src/soft_water_device.c **** send_can_buf[0] = HW_SETIDMODE_MODE2; 347:user_src/soft_water_device.c **** send_can_buf[1] = HW_SETIDMODE_CONTROL1; 348:user_src/soft_water_device.c **** 349:user_src/soft_water_device.c **** SetEscidTail.HWTailBit.start = 1; 350:user_src/soft_water_device.c **** SetEscidTail.HWTailBit.end = 1; 351:user_src/soft_water_device.c **** SetEscidTail.HWTailBit.toggle = 0; 352:user_src/soft_water_device.c **** send_can_buf[2] = SetEscidTail.HWTailByte; 353:user_src/soft_water_device.c **** 354:user_src/soft_water_device.c **** can_send_msg_normal(send_can_buf,3,canID); 355:user_src/soft_water_device.c **** 356:user_src/soft_water_device.c **** SetEscidTail.HWTailBit.tranid++; 357:user_src/soft_water_device.c **** 358:user_src/soft_water_device.c **** setESCidInfo.reTxMaxCnt--; 359:user_src/soft_water_device.c **** } 360:user_src/soft_water_device.c **** else 361:user_src/soft_water_device.c **** { 362:user_src/soft_water_device.c **** setESCidInfo.setESCidStep++; 363:user_src/soft_water_device.c **** 364:user_src/soft_water_device.c **** setESCidInfo.reTxMaxCnt = 5; 365:user_src/soft_water_device.c **** 366:user_src/soft_water_device.c **** setESCidInfo.setEscIDDelayTime = HAL_GetTick(); 367:user_src/soft_water_device.c **** } ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 33 368:user_src/soft_water_device.c **** } 369:user_src/soft_water_device.c **** //配合油门,发送设置ID指令(要配置ID的通道PWM给1000,其余通道失能 370:user_src/soft_water_device.c **** else if ( setESCidInfo.setESCidStep == SETESCID_SET ) 371:user_src/soft_water_device.c **** { 372:user_src/soft_water_device.c **** //配置信息 373:user_src/soft_water_device.c **** //EscSet.send_type2_canid[0] = 1; 374:user_src/soft_water_device.c **** //EscSet.send_type2_canid[1] = 1; 375:user_src/soft_water_device.c **** //setESCidInfo.setESCidNum = 2; 376:user_src/soft_water_device.c **** 377:user_src/soft_water_device.c **** //配置ID属于伪服务帧,不关心DESnode 378:user_src/soft_water_device.c **** canID = ( ( HW_PRI_MEDIUM << HW_CANID_PRI_POS ) & HW_CANID_PRI_MASK ) | 379:user_src/soft_water_device.c **** ( ( HW_SETID_ID << HW_CANID_SERID_POS ) & HW_CANID_SERID_MASK ) | 380:user_src/soft_water_device.c **** ( ( HW_TYPE_REQ << HW_CANID_RNR_POS ) & HW_CANID_RNR_MASK ) | 381:user_src/soft_water_device.c **** ( ( curNodeID << HW_CANID_DESNODE_POS ) & HW_CANID_DESNODE_MASK ) | 382:user_src/soft_water_device.c **** ( ( HW_TYPE_SER << HW_CANID_SNM_POS ) & HW_CANID_SNM_MASK ) | 383:user_src/soft_water_device.c **** ( ( HW_NODE_BDC << HW_CANID_SRCNODE_POS )& HW_CANID_SRCNODE_MASK ); 384:user_src/soft_water_device.c **** 385:user_src/soft_water_device.c **** //等待电调的油门信号失能判定时间300ms,每次配置一个电调 386:user_src/soft_water_device.c **** if ( HAL_GetTick() - setESCidInfo.setEscIDDelayTime > 2000 ) 387:user_src/soft_water_device.c **** { 388:user_src/soft_water_device.c **** if ( EscMsg[setESCidInfo.setESCidNum].ResSetID == false ) 389:user_src/soft_water_device.c **** { 390:user_src/soft_water_device.c **** send_can_buf[0] = setESCidInfo.setESCidNum; 391:user_src/soft_water_device.c **** send_can_buf[1] = setESCidInfo.setESCidNum; 392:user_src/soft_water_device.c **** 393:user_src/soft_water_device.c **** SetEscidTail.HWTailBit.start = 1; 394:user_src/soft_water_device.c **** SetEscidTail.HWTailBit.end = 1; 395:user_src/soft_water_device.c **** SetEscidTail.HWTailBit.toggle = 0; 396:user_src/soft_water_device.c **** send_can_buf[2] = SetEscidTail.HWTailByte; 397:user_src/soft_water_device.c **** 398:user_src/soft_water_device.c **** can_send_msg_normal(send_can_buf,3,canID); 399:user_src/soft_water_device.c **** 400:user_src/soft_water_device.c **** SetEscidTail.HWTailBit.tranid++; 401:user_src/soft_water_device.c **** setESCidInfo.reTxMaxCnt--; 402:user_src/soft_water_device.c **** } 403:user_src/soft_water_device.c **** else 404:user_src/soft_water_device.c **** { 405:user_src/soft_water_device.c **** setESCidInfo.setESCidStep++; 406:user_src/soft_water_device.c **** 407:user_src/soft_water_device.c **** setESCidInfo.reTxMaxCnt = 5; 408:user_src/soft_water_device.c **** } 409:user_src/soft_water_device.c **** } 410:user_src/soft_water_device.c **** } 411:user_src/soft_water_device.c **** //nodeID配置完成/失败后退出配置模式,广播发送,全部回复 412:user_src/soft_water_device.c **** else if ( setESCidInfo.setESCidStep == SETESCID_EXIT ) 413:user_src/soft_water_device.c **** { 414:user_src/soft_water_device.c **** if ( EscMsg[setESCidInfo.setESCidNum].ResSetIDModeExit == false ) 415:user_src/soft_water_device.c **** { 416:user_src/soft_water_device.c **** //广播帧 417:user_src/soft_water_device.c **** canID = ( ( HW_PRI_MEDIUM << HW_CANID_PRI_POS ) & HW_CANID_PRI_MASK ) | 418:user_src/soft_water_device.c **** ( ( HW_FRAME_MSG_SET_ID_MODE << HW_CANID_MSGID_POS ) & HW_CANID_MSGID_MASK 419:user_src/soft_water_device.c **** ( ( HW_TYPE_MSG << HW_CANID_SNM_POS ) & HW_CANID_SNM_MASK ) | 420:user_src/soft_water_device.c **** ( ( HW_NODE_BDC << HW_CANID_SRCNODE_POS )& HW_CANID_SRCNODE_MASK ); 421:user_src/soft_water_device.c **** 422:user_src/soft_water_device.c **** send_can_buf[0] = HW_SETIDMODE_MODE1; 423:user_src/soft_water_device.c **** send_can_buf[1] = HW_SETIDMODE_CONTROL1; 424:user_src/soft_water_device.c **** ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 34 425:user_src/soft_water_device.c **** SetEscidTail.HWTailBit.start = 1; 426:user_src/soft_water_device.c **** SetEscidTail.HWTailBit.end = 1; 427:user_src/soft_water_device.c **** SetEscidTail.HWTailBit.toggle = 0; 428:user_src/soft_water_device.c **** send_can_buf[2] = SetEscidTail.HWTailByte; 429:user_src/soft_water_device.c **** 430:user_src/soft_water_device.c **** can_send_msg_normal(send_can_buf,3,canID); 431:user_src/soft_water_device.c **** 432:user_src/soft_water_device.c **** SetEscidTail.HWTailBit.tranid++; 433:user_src/soft_water_device.c **** 434:user_src/soft_water_device.c **** setESCidInfo.reTxMaxCnt--; 435:user_src/soft_water_device.c **** } 436:user_src/soft_water_device.c **** else 437:user_src/soft_water_device.c **** { 438:user_src/soft_water_device.c **** //广播模式,总线上有其他同NODEID的ESC时也会收到反馈 439:user_src/soft_water_device.c **** set_HWesc_ESCid = false; 440:user_src/soft_water_device.c **** 441:user_src/soft_water_device.c **** setESCidInfo.setESCidStep++; 442:user_src/soft_water_device.c **** setESCidInfo.reTxMaxCnt = 5; 443:user_src/soft_water_device.c **** 444:user_src/soft_water_device.c **** 445:user_src/soft_water_device.c **** 446:user_src/soft_water_device.c **** //继续配置2号水泵 447:user_src/soft_water_device.c **** if(setESCidInfo.setESCidNum == 1) 448:user_src/soft_water_device.c **** { 449:user_src/soft_water_device.c **** setESCidInfo.setESCidNum++; 450:user_src/soft_water_device.c **** setESCidInfo.setESCidStep = SETESCID_INIT; 451:user_src/soft_water_device.c **** set_HWesc_ESCid = true; 452:user_src/soft_water_device.c **** } 453:user_src/soft_water_device.c **** else if(setESCidInfo.setESCidNum == 2) 454:user_src/soft_water_device.c **** { 455:user_src/soft_water_device.c **** //设置成功,发送ACK 456:user_src/soft_water_device.c **** if(Dev.L_pump1_Link.connect_status == COMP_NORMAL && 457:user_src/soft_water_device.c **** Dev.L_pump2_Link.connect_status == COMP_NORMAL) 458:user_src/soft_water_device.c **** { 459:user_src/soft_water_device.c **** pmu_set_ack(_MSGID_SET,MSGID_SET_PUMP_ID,3,1); 460:user_src/soft_water_device.c **** } 461:user_src/soft_water_device.c **** else if (Dev.L_pump1_Link.connect_status == COMP_NORMAL) 462:user_src/soft_water_device.c **** { 463:user_src/soft_water_device.c **** pmu_set_ack(_MSGID_SET,MSGID_SET_PUMP_ID,1,1); 464:user_src/soft_water_device.c **** } 465:user_src/soft_water_device.c **** else if (Dev.L_pump2_Link.connect_status == COMP_NORMAL) 466:user_src/soft_water_device.c **** { 467:user_src/soft_water_device.c **** pmu_set_ack(_MSGID_SET,MSGID_SET_PUMP_ID,2,1); 468:user_src/soft_water_device.c **** } 469:user_src/soft_water_device.c **** 470:user_src/soft_water_device.c **** } 471:user_src/soft_water_device.c **** } 472:user_src/soft_water_device.c **** 473:user_src/soft_water_device.c **** //超时退出 474:user_src/soft_water_device.c **** if ( setESCidInfo.reTxMaxCnt <= 0 ) 475:user_src/soft_water_device.c **** { 476:user_src/soft_water_device.c **** set_HWesc_ESCid = false; 477:user_src/soft_water_device.c **** 478:user_src/soft_water_device.c **** //继续配置2号水泵 479:user_src/soft_water_device.c **** if(setESCidInfo.setESCidNum == 1) 480:user_src/soft_water_device.c **** { 481:user_src/soft_water_device.c **** setESCidInfo.setESCidNum++; ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 35 482:user_src/soft_water_device.c **** setESCidInfo.setESCidStep = SETESCID_INIT; 483:user_src/soft_water_device.c **** set_HWesc_ESCid = true; 484:user_src/soft_water_device.c **** } 485:user_src/soft_water_device.c **** else if(setESCidInfo.setESCidNum == 2) 486:user_src/soft_water_device.c **** { 487:user_src/soft_water_device.c **** //设置成功,发送ACK 488:user_src/soft_water_device.c **** if(Dev.L_pump1_Link.connect_status == COMP_NORMAL && 489:user_src/soft_water_device.c **** Dev.L_pump2_Link.connect_status == COMP_NORMAL) 490:user_src/soft_water_device.c **** { 491:user_src/soft_water_device.c **** pmu_set_ack(_MSGID_SET,MSGID_SET_PUMP_ID,3,1); 492:user_src/soft_water_device.c **** } 493:user_src/soft_water_device.c **** else if (Dev.L_pump1_Link.connect_status == COMP_NORMAL) 494:user_src/soft_water_device.c **** { 495:user_src/soft_water_device.c **** pmu_set_ack(_MSGID_SET,MSGID_SET_PUMP_ID,1,1); 496:user_src/soft_water_device.c **** } 497:user_src/soft_water_device.c **** else if (Dev.L_pump2_Link.connect_status == COMP_NORMAL) 498:user_src/soft_water_device.c **** { 499:user_src/soft_water_device.c **** pmu_set_ack(_MSGID_SET,MSGID_SET_PUMP_ID,2,1); 500:user_src/soft_water_device.c **** } 501:user_src/soft_water_device.c **** 502:user_src/soft_water_device.c **** } 503:user_src/soft_water_device.c **** setESCidInfo.setESCidStep = SETESCID_INIT; 504:user_src/soft_water_device.c **** setESCidInfo.reTxMaxCnt = 5; 505:user_src/soft_water_device.c **** } 506:user_src/soft_water_device.c **** } 507:user_src/soft_water_device.c **** } 508:user_src/soft_water_device.c **** } 1380 .loc 1 508 1 1381 0120 A9E1 b .L84 1382 .L69: 332:user_src/soft_water_device.c **** } 1383 .loc 1 332 33 1384 0122 5D4B ldr r3, .L85 1385 0124 0022 movs r2, #0 1386 0126 1A70 strb r2, [r3] 1387 .loc 1 508 1 1388 0128 A5E1 b .L84 1389 .L68: 336:user_src/soft_water_device.c **** { 1390 .loc 1 336 31 1391 012a 5C4B ldr r3, .L85+4 1392 012c 5B78 ldrb r3, [r3, #1] @ zero_extendqisi2 336:user_src/soft_water_device.c **** { 1393 .loc 1 336 17 1394 012e 012B cmp r3, #1 1395 0130 4BD1 bne .L71 338:user_src/soft_water_device.c **** { 1396 .loc 1 338 30 1397 0132 5A4B ldr r3, .L85+4 1398 0134 9B78 ldrb r3, [r3, #2] @ zero_extendqisi2 338:user_src/soft_water_device.c **** { 1399 .loc 1 338 47 1400 0136 83F00103 eor r3, r3, #1 1401 013a DBB2 uxtb r3, r3 338:user_src/soft_water_device.c **** { 1402 .loc 1 338 16 1403 013c 002B cmp r3, #0 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 36 1404 013e 35D0 beq .L72 341:user_src/soft_water_device.c **** ( ( HW_FRAME_MSG_SET_ID_MODE << HW_CANID_MSGID_POS ) & HW_CANID_MSGID_MASK 1405 .loc 1 341 24 1406 0140 594B ldr r3, .L85+16 1407 0142 FB60 str r3, [r7, #12] 346:user_src/soft_water_device.c **** send_can_buf[1] = HW_SETIDMODE_CONTROL1; 1408 .loc 1 346 33 1409 0144 AA23 movs r3, #170 1410 0146 3B71 strb r3, [r7, #4] 347:user_src/soft_water_device.c **** 1411 .loc 1 347 33 1412 0148 5523 movs r3, #85 1413 014a 7B71 strb r3, [r7, #5] 349:user_src/soft_water_device.c **** SetEscidTail.HWTailBit.end = 1; 1414 .loc 1 349 46 1415 014c 574A ldr r2, .L85+20 1416 014e 1378 ldrb r3, [r2] 1417 0150 43F08003 orr r3, r3, #128 1418 0154 1370 strb r3, [r2] 350:user_src/soft_water_device.c **** SetEscidTail.HWTailBit.toggle = 0; 1419 .loc 1 350 44 1420 0156 554A ldr r2, .L85+20 1421 0158 1378 ldrb r3, [r2] 1422 015a 43F04003 orr r3, r3, #64 1423 015e 1370 strb r3, [r2] 351:user_src/soft_water_device.c **** send_can_buf[2] = SetEscidTail.HWTailByte; 1424 .loc 1 351 47 1425 0160 524A ldr r2, .L85+20 1426 0162 1378 ldrb r3, [r2] 1427 0164 6FF34513 bfc r3, #5, #1 1428 0168 1370 strb r3, [r2] 352:user_src/soft_water_device.c **** 1429 .loc 1 352 47 1430 016a 504B ldr r3, .L85+20 1431 016c 1B78 ldrb r3, [r3] @ zero_extendqisi2 352:user_src/soft_water_device.c **** 1432 .loc 1 352 33 1433 016e BB71 strb r3, [r7, #6] 354:user_src/soft_water_device.c **** 1434 .loc 1 354 17 1435 0170 3B1D adds r3, r7, #4 1436 0172 FA68 ldr r2, [r7, #12] 1437 0174 0321 movs r1, #3 1438 0176 1846 mov r0, r3 1439 0178 FFF7FEFF bl can_send_msg_normal 356:user_src/soft_water_device.c **** 1440 .loc 1 356 39 1441 017c 4B4B ldr r3, .L85+20 1442 017e 1B78 ldrb r3, [r3] 1443 0180 C3F30403 ubfx r3, r3, #0, #5 1444 0184 DBB2 uxtb r3, r3 356:user_src/soft_water_device.c **** 1445 .loc 1 356 46 1446 0186 0133 adds r3, r3, #1 1447 0188 03F01F03 and r3, r3, #31 1448 018c D9B2 uxtb r1, r3 1449 018e 474A ldr r2, .L85+20 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 37 1450 0190 1378 ldrb r3, [r2] 1451 0192 61F30403 bfi r3, r1, #0, #5 1452 0196 1370 strb r3, [r2] 358:user_src/soft_water_device.c **** } 1453 .loc 1 358 29 1454 0198 404B ldr r3, .L85+4 1455 019a 93F90030 ldrsb r3, [r3] 358:user_src/soft_water_device.c **** } 1456 .loc 1 358 40 1457 019e DBB2 uxtb r3, r3 1458 01a0 013B subs r3, r3, #1 1459 01a2 DBB2 uxtb r3, r3 1460 01a4 5AB2 sxtb r2, r3 1461 01a6 3D4B ldr r3, .L85+4 1462 01a8 1A70 strb r2, [r3] 1463 .loc 1 508 1 1464 01aa 64E1 b .L84 1465 .L72: 362:user_src/soft_water_device.c **** 1466 .loc 1 362 29 1467 01ac 3B4B ldr r3, .L85+4 1468 01ae 5B78 ldrb r3, [r3, #1] @ zero_extendqisi2 362:user_src/soft_water_device.c **** 1469 .loc 1 362 42 1470 01b0 0133 adds r3, r3, #1 1471 01b2 DAB2 uxtb r2, r3 1472 01b4 394B ldr r3, .L85+4 1473 01b6 5A70 strb r2, [r3, #1] 364:user_src/soft_water_device.c **** 1474 .loc 1 364 41 1475 01b8 384B ldr r3, .L85+4 1476 01ba 0522 movs r2, #5 1477 01bc 1A70 strb r2, [r3] 366:user_src/soft_water_device.c **** } 1478 .loc 1 366 50 1479 01be FFF7FEFF bl HAL_GetTick 1480 01c2 0346 mov r3, r0 366:user_src/soft_water_device.c **** } 1481 .loc 1 366 48 1482 01c4 354A ldr r2, .L85+4 1483 01c6 9360 str r3, [r2, #8] 1484 .loc 1 508 1 1485 01c8 55E1 b .L84 1486 .L71: 370:user_src/soft_water_device.c **** { 1487 .loc 1 370 31 1488 01ca 344B ldr r3, .L85+4 1489 01cc 5B78 ldrb r3, [r3, #1] @ zero_extendqisi2 370:user_src/soft_water_device.c **** { 1490 .loc 1 370 17 1491 01ce 022B cmp r3, #2 1492 01d0 72D1 bne .L73 381:user_src/soft_water_device.c **** ( ( HW_TYPE_SER << HW_CANID_SNM_POS ) & HW_CANID_SNM_MASK ) | 1493 .loc 1 381 35 1494 01d2 374B ldr r3, .L85+24 1495 01d4 1B88 ldrh r3, [r3] 1496 01d6 1B02 lsls r3, r3, #8 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 38 381:user_src/soft_water_device.c **** ( ( HW_TYPE_SER << HW_CANID_SNM_POS ) & HW_CANID_SNM_MASK ) | 1497 .loc 1 381 61 1498 01d8 03F4FE42 and r2, r3, #32512 382:user_src/soft_water_device.c **** ( ( HW_NODE_BDC << HW_CANID_SRCNODE_POS )& HW_CANID_SRCNODE_MASK ); 1499 .loc 1 382 81 1500 01dc 354B ldr r3, .L85+28 1501 01de 1343 orrs r3, r3, r2 378:user_src/soft_water_device.c **** ( ( HW_SETID_ID << HW_CANID_SERID_POS ) & HW_CANID_SERID_MASK ) | 1502 .loc 1 378 19 1503 01e0 FB60 str r3, [r7, #12] 386:user_src/soft_water_device.c **** { 1504 .loc 1 386 18 1505 01e2 FFF7FEFF bl HAL_GetTick 1506 01e6 0246 mov r2, r0 386:user_src/soft_water_device.c **** { 1507 .loc 1 386 46 1508 01e8 2C4B ldr r3, .L85+4 1509 01ea 9B68 ldr r3, [r3, #8] 386:user_src/soft_water_device.c **** { 1510 .loc 1 386 32 1511 01ec D31A subs r3, r2, r3 386:user_src/soft_water_device.c **** { 1512 .loc 1 386 16 1513 01ee B3F5FA6F cmp r3, #2000 1514 01f2 40F24081 bls .L84 388:user_src/soft_water_device.c **** { 1515 .loc 1 388 41 1516 01f6 294B ldr r3, .L85+4 1517 01f8 9B79 ldrb r3, [r3, #6] @ zero_extendqisi2 1518 01fa 1946 mov r1, r3 388:user_src/soft_water_device.c **** { 1519 .loc 1 388 54 1520 01fc 294A ldr r2, .L85+12 1521 01fe 4FF4A273 mov r3, #324 1522 0202 01FB03F3 mul r3, r1, r3 1523 0206 1344 add r3, r3, r2 1524 0208 2C33 adds r3, r3, #44 1525 020a 1B78 ldrb r3, [r3] @ zero_extendqisi2 388:user_src/soft_water_device.c **** { 1526 .loc 1 388 64 1527 020c 83F00103 eor r3, r3, #1 1528 0210 DBB2 uxtb r3, r3 388:user_src/soft_water_device.c **** { 1529 .loc 1 388 20 1530 0212 002B cmp r3, #0 1531 0214 35D0 beq .L74 390:user_src/soft_water_device.c **** send_can_buf[1] = setESCidInfo.setESCidNum; 1532 .loc 1 390 51 1533 0216 214B ldr r3, .L85+4 1534 0218 9B79 ldrb r3, [r3, #6] @ zero_extendqisi2 390:user_src/soft_water_device.c **** send_can_buf[1] = setESCidInfo.setESCidNum; 1535 .loc 1 390 37 1536 021a 3B71 strb r3, [r7, #4] 391:user_src/soft_water_device.c **** 1537 .loc 1 391 51 1538 021c 1F4B ldr r3, .L85+4 1539 021e 9B79 ldrb r3, [r3, #6] @ zero_extendqisi2 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 39 391:user_src/soft_water_device.c **** 1540 .loc 1 391 37 1541 0220 7B71 strb r3, [r7, #5] 393:user_src/soft_water_device.c **** SetEscidTail.HWTailBit.end = 1; 1542 .loc 1 393 50 1543 0222 224A ldr r2, .L85+20 1544 0224 1378 ldrb r3, [r2] 1545 0226 43F08003 orr r3, r3, #128 1546 022a 1370 strb r3, [r2] 394:user_src/soft_water_device.c **** SetEscidTail.HWTailBit.toggle = 0; 1547 .loc 1 394 48 1548 022c 1F4A ldr r2, .L85+20 1549 022e 1378 ldrb r3, [r2] 1550 0230 43F04003 orr r3, r3, #64 1551 0234 1370 strb r3, [r2] 395:user_src/soft_water_device.c **** send_can_buf[2] = SetEscidTail.HWTailByte; 1552 .loc 1 395 51 1553 0236 1D4A ldr r2, .L85+20 1554 0238 1378 ldrb r3, [r2] 1555 023a 6FF34513 bfc r3, #5, #1 1556 023e 1370 strb r3, [r2] 396:user_src/soft_water_device.c **** 1557 .loc 1 396 51 1558 0240 1A4B ldr r3, .L85+20 1559 0242 1B78 ldrb r3, [r3] @ zero_extendqisi2 396:user_src/soft_water_device.c **** 1560 .loc 1 396 37 1561 0244 BB71 strb r3, [r7, #6] 398:user_src/soft_water_device.c **** 1562 .loc 1 398 21 1563 0246 3B1D adds r3, r7, #4 1564 0248 FA68 ldr r2, [r7, #12] 1565 024a 0321 movs r1, #3 1566 024c 1846 mov r0, r3 1567 024e FFF7FEFF bl can_send_msg_normal 400:user_src/soft_water_device.c **** setESCidInfo.reTxMaxCnt--; 1568 .loc 1 400 43 1569 0252 164B ldr r3, .L85+20 1570 0254 1B78 ldrb r3, [r3] 1571 0256 C3F30403 ubfx r3, r3, #0, #5 1572 025a DBB2 uxtb r3, r3 400:user_src/soft_water_device.c **** setESCidInfo.reTxMaxCnt--; 1573 .loc 1 400 50 1574 025c 0133 adds r3, r3, #1 1575 025e 03F01F03 and r3, r3, #31 1576 0262 D9B2 uxtb r1, r3 1577 0264 114A ldr r2, .L85+20 1578 0266 1378 ldrb r3, [r2] 1579 0268 61F30403 bfi r3, r1, #0, #5 1580 026c 1370 strb r3, [r2] 401:user_src/soft_water_device.c **** } 1581 .loc 1 401 33 1582 026e 0B4B ldr r3, .L85+4 1583 0270 93F90030 ldrsb r3, [r3] 401:user_src/soft_water_device.c **** } 1584 .loc 1 401 44 1585 0274 DBB2 uxtb r3, r3 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 40 1586 0276 013B subs r3, r3, #1 1587 0278 DBB2 uxtb r3, r3 1588 027a 5AB2 sxtb r2, r3 1589 027c 074B ldr r3, .L85+4 1590 027e 1A70 strb r2, [r3] 1591 .loc 1 508 1 1592 0280 F9E0 b .L84 1593 .L74: 405:user_src/soft_water_device.c **** 1594 .loc 1 405 33 1595 0282 064B ldr r3, .L85+4 1596 0284 5B78 ldrb r3, [r3, #1] @ zero_extendqisi2 405:user_src/soft_water_device.c **** 1597 .loc 1 405 46 1598 0286 0133 adds r3, r3, #1 1599 0288 DAB2 uxtb r2, r3 1600 028a 044B ldr r3, .L85+4 1601 028c 5A70 strb r2, [r3, #1] 407:user_src/soft_water_device.c **** } 1602 .loc 1 407 45 1603 028e 034B ldr r3, .L85+4 1604 0290 0522 movs r2, #5 1605 0292 1A70 strb r2, [r3] 1606 .loc 1 508 1 1607 0294 EFE0 b .L84 1608 .L86: 1609 0296 00BF .align 2 1610 .L85: 1611 0298 00000000 .word set_HWesc_ESCid 1612 029c 00000000 .word setESCidInfo 1613 02a0 00000000 .word Dev 1614 02a4 00000000 .word EscMsg 1615 02a8 102E4E10 .word 273559056 1616 02ac 00000000 .word SetEscidTail 1617 02b0 00000000 .word curNodeID 1618 02b4 9080D210 .word 282230928 1619 .L73: 412:user_src/soft_water_device.c **** { 1620 .loc 1 412 31 1621 02b8 714B ldr r3, .L87 1622 02ba 5B78 ldrb r3, [r3, #1] @ zero_extendqisi2 412:user_src/soft_water_device.c **** { 1623 .loc 1 412 17 1624 02bc 032B cmp r3, #3 1625 02be 40F0DA80 bne .L84 414:user_src/soft_water_device.c **** { 1626 .loc 1 414 37 1627 02c2 6F4B ldr r3, .L87 1628 02c4 9B79 ldrb r3, [r3, #6] @ zero_extendqisi2 1629 02c6 1946 mov r1, r3 414:user_src/soft_water_device.c **** { 1630 .loc 1 414 50 1631 02c8 6E4A ldr r2, .L87+4 1632 02ca 4FF4A273 mov r3, #324 1633 02ce 01FB03F3 mul r3, r1, r3 1634 02d2 1344 add r3, r3, r2 1635 02d4 2B33 adds r3, r3, #43 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 41 1636 02d6 1B78 ldrb r3, [r3] @ zero_extendqisi2 414:user_src/soft_water_device.c **** { 1637 .loc 1 414 68 1638 02d8 83F00103 eor r3, r3, #1 1639 02dc DBB2 uxtb r3, r3 414:user_src/soft_water_device.c **** { 1640 .loc 1 414 16 1641 02de 002B cmp r3, #0 1642 02e0 35D0 beq .L75 417:user_src/soft_water_device.c **** ( ( HW_FRAME_MSG_SET_ID_MODE << HW_CANID_MSGID_POS ) & HW_CANID_MSGID_MASK 1643 .loc 1 417 24 1644 02e2 694B ldr r3, .L87+8 1645 02e4 FB60 str r3, [r7, #12] 422:user_src/soft_water_device.c **** send_can_buf[1] = HW_SETIDMODE_CONTROL1; 1646 .loc 1 422 33 1647 02e6 5523 movs r3, #85 1648 02e8 3B71 strb r3, [r7, #4] 423:user_src/soft_water_device.c **** 1649 .loc 1 423 33 1650 02ea 5523 movs r3, #85 1651 02ec 7B71 strb r3, [r7, #5] 425:user_src/soft_water_device.c **** SetEscidTail.HWTailBit.end = 1; 1652 .loc 1 425 46 1653 02ee 674A ldr r2, .L87+12 1654 02f0 1378 ldrb r3, [r2] 1655 02f2 43F08003 orr r3, r3, #128 1656 02f6 1370 strb r3, [r2] 426:user_src/soft_water_device.c **** SetEscidTail.HWTailBit.toggle = 0; 1657 .loc 1 426 44 1658 02f8 644A ldr r2, .L87+12 1659 02fa 1378 ldrb r3, [r2] 1660 02fc 43F04003 orr r3, r3, #64 1661 0300 1370 strb r3, [r2] 427:user_src/soft_water_device.c **** send_can_buf[2] = SetEscidTail.HWTailByte; 1662 .loc 1 427 47 1663 0302 624A ldr r2, .L87+12 1664 0304 1378 ldrb r3, [r2] 1665 0306 6FF34513 bfc r3, #5, #1 1666 030a 1370 strb r3, [r2] 428:user_src/soft_water_device.c **** 1667 .loc 1 428 47 1668 030c 5F4B ldr r3, .L87+12 1669 030e 1B78 ldrb r3, [r3] @ zero_extendqisi2 428:user_src/soft_water_device.c **** 1670 .loc 1 428 33 1671 0310 BB71 strb r3, [r7, #6] 430:user_src/soft_water_device.c **** 1672 .loc 1 430 17 1673 0312 3B1D adds r3, r7, #4 1674 0314 FA68 ldr r2, [r7, #12] 1675 0316 0321 movs r1, #3 1676 0318 1846 mov r0, r3 1677 031a FFF7FEFF bl can_send_msg_normal 432:user_src/soft_water_device.c **** 1678 .loc 1 432 39 1679 031e 5B4B ldr r3, .L87+12 1680 0320 1B78 ldrb r3, [r3] ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 42 1681 0322 C3F30403 ubfx r3, r3, #0, #5 1682 0326 DBB2 uxtb r3, r3 432:user_src/soft_water_device.c **** 1683 .loc 1 432 46 1684 0328 0133 adds r3, r3, #1 1685 032a 03F01F03 and r3, r3, #31 1686 032e D9B2 uxtb r1, r3 1687 0330 564A ldr r2, .L87+12 1688 0332 1378 ldrb r3, [r2] 1689 0334 61F30403 bfi r3, r1, #0, #5 1690 0338 1370 strb r3, [r2] 434:user_src/soft_water_device.c **** } 1691 .loc 1 434 29 1692 033a 514B ldr r3, .L87 1693 033c 93F90030 ldrsb r3, [r3] 434:user_src/soft_water_device.c **** } 1694 .loc 1 434 40 1695 0340 DBB2 uxtb r3, r3 1696 0342 013B subs r3, r3, #1 1697 0344 DBB2 uxtb r3, r3 1698 0346 5AB2 sxtb r2, r3 1699 0348 4D4B ldr r3, .L87 1700 034a 1A70 strb r2, [r3] 1701 034c 48E0 b .L76 1702 .L75: 439:user_src/soft_water_device.c **** 1703 .loc 1 439 33 1704 034e 504B ldr r3, .L87+16 1705 0350 0022 movs r2, #0 1706 0352 1A70 strb r2, [r3] 441:user_src/soft_water_device.c **** setESCidInfo.reTxMaxCnt = 5; 1707 .loc 1 441 29 1708 0354 4A4B ldr r3, .L87 1709 0356 5B78 ldrb r3, [r3, #1] @ zero_extendqisi2 441:user_src/soft_water_device.c **** setESCidInfo.reTxMaxCnt = 5; 1710 .loc 1 441 42 1711 0358 0133 adds r3, r3, #1 1712 035a DAB2 uxtb r2, r3 1713 035c 484B ldr r3, .L87 1714 035e 5A70 strb r2, [r3, #1] 442:user_src/soft_water_device.c **** 1715 .loc 1 442 41 1716 0360 474B ldr r3, .L87 1717 0362 0522 movs r2, #5 1718 0364 1A70 strb r2, [r3] 447:user_src/soft_water_device.c **** { 1719 .loc 1 447 32 1720 0366 464B ldr r3, .L87 1721 0368 9B79 ldrb r3, [r3, #6] @ zero_extendqisi2 447:user_src/soft_water_device.c **** { 1722 .loc 1 447 19 1723 036a 012B cmp r3, #1 1724 036c 0CD1 bne .L77 449:user_src/soft_water_device.c **** setESCidInfo.setESCidStep = SETESCID_INIT; 1725 .loc 1 449 33 1726 036e 444B ldr r3, .L87 1727 0370 9B79 ldrb r3, [r3, #6] @ zero_extendqisi2 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 43 449:user_src/soft_water_device.c **** setESCidInfo.setESCidStep = SETESCID_INIT; 1728 .loc 1 449 45 1729 0372 0133 adds r3, r3, #1 1730 0374 DAB2 uxtb r2, r3 1731 0376 424B ldr r3, .L87 1732 0378 9A71 strb r2, [r3, #6] 450:user_src/soft_water_device.c **** set_HWesc_ESCid = true; 1733 .loc 1 450 47 1734 037a 414B ldr r3, .L87 1735 037c 0022 movs r2, #0 1736 037e 5A70 strb r2, [r3, #1] 451:user_src/soft_water_device.c **** } 1737 .loc 1 451 37 1738 0380 434B ldr r3, .L87+16 1739 0382 0122 movs r2, #1 1740 0384 1A70 strb r2, [r3] 1741 0386 2BE0 b .L76 1742 .L77: 453:user_src/soft_water_device.c **** { 1743 .loc 1 453 37 1744 0388 3D4B ldr r3, .L87 1745 038a 9B79 ldrb r3, [r3, #6] @ zero_extendqisi2 453:user_src/soft_water_device.c **** { 1746 .loc 1 453 24 1747 038c 022B cmp r3, #2 1748 038e 27D1 bne .L76 456:user_src/soft_water_device.c **** Dev.L_pump2_Link.connect_status == COMP_NORMAL) 1749 .loc 1 456 40 1750 0390 404B ldr r3, .L87+20 1751 0392 93F81432 ldrb r3, [r3, #532] @ zero_extendqisi2 456:user_src/soft_water_device.c **** Dev.L_pump2_Link.connect_status == COMP_NORMAL) 1752 .loc 1 456 23 1753 0396 012B cmp r3, #1 1754 0398 0BD1 bne .L78 457:user_src/soft_water_device.c **** { 1755 .loc 1 457 41 discriminator 1 1756 039a 3E4B ldr r3, .L87+20 1757 039c 93F82832 ldrb r3, [r3, #552] @ zero_extendqisi2 456:user_src/soft_water_device.c **** Dev.L_pump2_Link.connect_status == COMP_NORMAL) 1758 .loc 1 456 71 discriminator 1 1759 03a0 012B cmp r3, #1 1760 03a2 06D1 bne .L78 459:user_src/soft_water_device.c **** } 1761 .loc 1 459 25 1762 03a4 0123 movs r3, #1 1763 03a6 0322 movs r2, #3 1764 03a8 2021 movs r1, #32 1765 03aa 1620 movs r0, #22 1766 03ac FFF7FEFF bl pmu_set_ack 1767 03b0 16E0 b .L76 1768 .L78: 461:user_src/soft_water_device.c **** { 1769 .loc 1 461 46 1770 03b2 384B ldr r3, .L87+20 1771 03b4 93F81432 ldrb r3, [r3, #532] @ zero_extendqisi2 461:user_src/soft_water_device.c **** { 1772 .loc 1 461 29 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 44 1773 03b8 012B cmp r3, #1 1774 03ba 06D1 bne .L79 463:user_src/soft_water_device.c **** } 1775 .loc 1 463 25 1776 03bc 0123 movs r3, #1 1777 03be 0122 movs r2, #1 1778 03c0 2021 movs r1, #32 1779 03c2 1620 movs r0, #22 1780 03c4 FFF7FEFF bl pmu_set_ack 1781 03c8 0AE0 b .L76 1782 .L79: 465:user_src/soft_water_device.c **** { 1783 .loc 1 465 46 1784 03ca 324B ldr r3, .L87+20 1785 03cc 93F82832 ldrb r3, [r3, #552] @ zero_extendqisi2 465:user_src/soft_water_device.c **** { 1786 .loc 1 465 29 1787 03d0 012B cmp r3, #1 1788 03d2 05D1 bne .L76 467:user_src/soft_water_device.c **** } 1789 .loc 1 467 25 1790 03d4 0123 movs r3, #1 1791 03d6 0222 movs r2, #2 1792 03d8 2021 movs r1, #32 1793 03da 1620 movs r0, #22 1794 03dc FFF7FEFF bl pmu_set_ack 1795 .L76: 474:user_src/soft_water_device.c **** { 1796 .loc 1 474 30 1797 03e0 274B ldr r3, .L87 1798 03e2 93F90030 ldrsb r3, [r3] 474:user_src/soft_water_device.c **** { 1799 .loc 1 474 16 1800 03e6 002B cmp r3, #0 1801 03e8 45DC bgt .L84 476:user_src/soft_water_device.c **** 1802 .loc 1 476 33 1803 03ea 294B ldr r3, .L87+16 1804 03ec 0022 movs r2, #0 1805 03ee 1A70 strb r2, [r3] 479:user_src/soft_water_device.c **** { 1806 .loc 1 479 32 1807 03f0 234B ldr r3, .L87 1808 03f2 9B79 ldrb r3, [r3, #6] @ zero_extendqisi2 479:user_src/soft_water_device.c **** { 1809 .loc 1 479 19 1810 03f4 012B cmp r3, #1 1811 03f6 0CD1 bne .L80 481:user_src/soft_water_device.c **** setESCidInfo.setESCidStep = SETESCID_INIT; 1812 .loc 1 481 33 1813 03f8 214B ldr r3, .L87 1814 03fa 9B79 ldrb r3, [r3, #6] @ zero_extendqisi2 481:user_src/soft_water_device.c **** setESCidInfo.setESCidStep = SETESCID_INIT; 1815 .loc 1 481 45 1816 03fc 0133 adds r3, r3, #1 1817 03fe DAB2 uxtb r2, r3 1818 0400 1F4B ldr r3, .L87 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 45 1819 0402 9A71 strb r2, [r3, #6] 482:user_src/soft_water_device.c **** set_HWesc_ESCid = true; 1820 .loc 1 482 47 1821 0404 1E4B ldr r3, .L87 1822 0406 0022 movs r2, #0 1823 0408 5A70 strb r2, [r3, #1] 483:user_src/soft_water_device.c **** } 1824 .loc 1 483 37 1825 040a 214B ldr r3, .L87+16 1826 040c 0122 movs r2, #1 1827 040e 1A70 strb r2, [r3] 1828 0410 2BE0 b .L81 1829 .L80: 485:user_src/soft_water_device.c **** { 1830 .loc 1 485 37 1831 0412 1B4B ldr r3, .L87 1832 0414 9B79 ldrb r3, [r3, #6] @ zero_extendqisi2 485:user_src/soft_water_device.c **** { 1833 .loc 1 485 24 1834 0416 022B cmp r3, #2 1835 0418 27D1 bne .L81 488:user_src/soft_water_device.c **** Dev.L_pump2_Link.connect_status == COMP_NORMAL) 1836 .loc 1 488 40 1837 041a 1E4B ldr r3, .L87+20 1838 041c 93F81432 ldrb r3, [r3, #532] @ zero_extendqisi2 488:user_src/soft_water_device.c **** Dev.L_pump2_Link.connect_status == COMP_NORMAL) 1839 .loc 1 488 23 1840 0420 012B cmp r3, #1 1841 0422 0BD1 bne .L82 489:user_src/soft_water_device.c **** { 1842 .loc 1 489 41 discriminator 1 1843 0424 1B4B ldr r3, .L87+20 1844 0426 93F82832 ldrb r3, [r3, #552] @ zero_extendqisi2 488:user_src/soft_water_device.c **** Dev.L_pump2_Link.connect_status == COMP_NORMAL) 1845 .loc 1 488 71 discriminator 1 1846 042a 012B cmp r3, #1 1847 042c 06D1 bne .L82 491:user_src/soft_water_device.c **** } 1848 .loc 1 491 25 1849 042e 0123 movs r3, #1 1850 0430 0322 movs r2, #3 1851 0432 2021 movs r1, #32 1852 0434 1620 movs r0, #22 1853 0436 FFF7FEFF bl pmu_set_ack 1854 043a 16E0 b .L81 1855 .L82: 493:user_src/soft_water_device.c **** { 1856 .loc 1 493 46 1857 043c 154B ldr r3, .L87+20 1858 043e 93F81432 ldrb r3, [r3, #532] @ zero_extendqisi2 493:user_src/soft_water_device.c **** { 1859 .loc 1 493 29 1860 0442 012B cmp r3, #1 1861 0444 06D1 bne .L83 495:user_src/soft_water_device.c **** } 1862 .loc 1 495 25 1863 0446 0123 movs r3, #1 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 46 1864 0448 0122 movs r2, #1 1865 044a 2021 movs r1, #32 1866 044c 1620 movs r0, #22 1867 044e FFF7FEFF bl pmu_set_ack 1868 0452 0AE0 b .L81 1869 .L83: 497:user_src/soft_water_device.c **** { 1870 .loc 1 497 46 1871 0454 0F4B ldr r3, .L87+20 1872 0456 93F82832 ldrb r3, [r3, #552] @ zero_extendqisi2 497:user_src/soft_water_device.c **** { 1873 .loc 1 497 29 1874 045a 012B cmp r3, #1 1875 045c 05D1 bne .L81 499:user_src/soft_water_device.c **** } 1876 .loc 1 499 25 1877 045e 0123 movs r3, #1 1878 0460 0222 movs r2, #2 1879 0462 2021 movs r1, #32 1880 0464 1620 movs r0, #22 1881 0466 FFF7FEFF bl pmu_set_ack 1882 .L81: 503:user_src/soft_water_device.c **** setESCidInfo.reTxMaxCnt = 5; 1883 .loc 1 503 43 1884 046a 054B ldr r3, .L87 1885 046c 0022 movs r2, #0 1886 046e 5A70 strb r2, [r3, #1] 504:user_src/soft_water_device.c **** } 1887 .loc 1 504 41 1888 0470 034B ldr r3, .L87 1889 0472 0522 movs r2, #5 1890 0474 1A70 strb r2, [r3] 1891 .L84: 1892 .loc 1 508 1 1893 0476 00BF nop 1894 0478 1037 adds r7, r7, #16 1895 .LCFI33: 1896 .cfi_def_cfa_offset 8 1897 047a BD46 mov sp, r7 1898 .LCFI34: 1899 .cfi_def_cfa_register 13 1900 @ sp needed 1901 047c 80BD pop {r7, pc} 1902 .L88: 1903 047e 00BF .align 2 1904 .L87: 1905 0480 00000000 .word setESCidInfo 1906 0484 00000000 .word EscMsg 1907 0488 102E4E10 .word 273559056 1908 048c 00000000 .word SetEscidTail 1909 0490 00000000 .word set_HWesc_ESCid 1910 0494 00000000 .word Dev 1911 .cfi_endproc 1912 .LFE139: 1914 .section .text.canardConvertFloat16ToNativeFloat,"ax",%progbits 1915 .align 1 1916 .global canardConvertFloat16ToNativeFloat ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 47 1917 .syntax unified 1918 .thumb 1919 .thumb_func 1921 canardConvertFloat16ToNativeFloat: 1922 .LFB140: 509:user_src/soft_water_device.c **** 510:user_src/soft_water_device.c **** 511:user_src/soft_water_device.c **** float canardConvertFloat16ToNativeFloat(uint16_t value) 512:user_src/soft_water_device.c **** { 1923 .loc 1 512 1 1924 .cfi_startproc 1925 @ args = 0, pretend = 0, frame = 24 1926 @ frame_needed = 1, uses_anonymous_args = 0 1927 @ link register save eliminated. 1928 0000 80B4 push {r7} 1929 .LCFI35: 1930 .cfi_def_cfa_offset 4 1931 .cfi_offset 7, -4 1932 0002 87B0 sub sp, sp, #28 1933 .LCFI36: 1934 .cfi_def_cfa_offset 32 1935 0004 00AF add r7, sp, #0 1936 .LCFI37: 1937 .cfi_def_cfa_register 7 1938 0006 0346 mov r3, r0 1939 0008 FB80 strh r3, [r7, #6] @ movhi 513:user_src/soft_water_device.c **** union FP32 514:user_src/soft_water_device.c **** { 515:user_src/soft_water_device.c **** uint32_t u; 516:user_src/soft_water_device.c **** float f; 517:user_src/soft_water_device.c **** }; 518:user_src/soft_water_device.c **** 519:user_src/soft_water_device.c **** const union FP32 magic = { (254UL - 15UL) << 23U }; 1940 .loc 1 519 22 1941 000a 4FF0EF43 mov r3, #2004877312 1942 000e 7B61 str r3, [r7, #20] 520:user_src/soft_water_device.c **** const union FP32 was_inf_nan = { (127UL + 16UL) << 23U }; 1943 .loc 1 520 22 1944 0010 4FF08F43 mov r3, #1199570944 1945 0014 3B61 str r3, [r7, #16] 521:user_src/soft_water_device.c **** union FP32 out; 522:user_src/soft_water_device.c **** 523:user_src/soft_water_device.c **** out.u = (value & 0x7FFFU) << 13U; 1946 .loc 1 523 31 1947 0016 FB88 ldrh r3, [r7, #6] 1948 0018 5A03 lsls r2, r3, #13 1949 001a 144B ldr r3, .L94 1950 001c 1340 ands r3, r3, r2 1951 .loc 1 523 11 1952 001e FB60 str r3, [r7, #12] 524:user_src/soft_water_device.c **** out.f *= magic.f; 1953 .loc 1 524 11 1954 0020 97ED037A vldr.32 s14, [r7, #12] 1955 .loc 1 524 19 1956 0024 D7ED057A vldr.32 s15, [r7, #20] 1957 .loc 1 524 11 1958 0028 67EE277A vmul.f32 s15, s14, s15 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 48 1959 002c C7ED037A vstr.32 s15, [r7, #12] 525:user_src/soft_water_device.c **** if (out.f >= was_inf_nan.f) 1960 .loc 1 525 12 1961 0030 97ED037A vldr.32 s14, [r7, #12] 1962 .loc 1 525 29 1963 0034 D7ED047A vldr.32 s15, [r7, #16] 1964 .loc 1 525 8 1965 0038 B4EEE77A vcmpe.f32 s14, s15 1966 003c F1EE10FA vmrs APSR_nzcv, FPSCR 1967 0040 03DB blt .L90 526:user_src/soft_water_device.c **** { 527:user_src/soft_water_device.c **** out.u |= 255UL << 23U; 1968 .loc 1 527 15 1969 0042 FB68 ldr r3, [r7, #12] 1970 0044 43F0FF43 orr r3, r3, #2139095040 1971 0048 FB60 str r3, [r7, #12] 1972 .L90: 528:user_src/soft_water_device.c **** } 529:user_src/soft_water_device.c **** out.u |= (value & 0x8000UL) << 16U; 1973 .loc 1 529 11 1974 004a FA68 ldr r2, [r7, #12] 1975 .loc 1 529 33 1976 004c FB88 ldrh r3, [r7, #6] 1977 004e 1B04 lsls r3, r3, #16 1978 0050 03F00043 and r3, r3, #-2147483648 1979 .loc 1 529 11 1980 0054 1343 orrs r3, r3, r2 1981 0056 FB60 str r3, [r7, #12] 530:user_src/soft_water_device.c **** 531:user_src/soft_water_device.c **** return out.f; 1982 .loc 1 531 15 1983 0058 FB68 ldr r3, [r7, #12] @ float 1984 005a 07EE903A vmov s15, r3 532:user_src/soft_water_device.c **** } 1985 .loc 1 532 1 1986 005e B0EE670A vmov.f32 s0, s15 1987 0062 1C37 adds r7, r7, #28 1988 .LCFI38: 1989 .cfi_def_cfa_offset 4 1990 0064 BD46 mov sp, r7 1991 .LCFI39: 1992 .cfi_def_cfa_register 13 1993 @ sp needed 1994 0066 5DF8047B ldr r7, [sp], #4 1995 .LCFI40: 1996 .cfi_restore 7 1997 .cfi_def_cfa_offset 0 1998 006a 7047 bx lr 1999 .L95: 2000 .align 2 2001 .L94: 2002 006c 00E0FF0F .word 268427264 2003 .cfi_endproc 2004 .LFE140: 2006 .global power_BatteryInfo 2007 .section .bss.power_BatteryInfo,"aw",%nobits 2008 .align 2 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 49 2011 power_BatteryInfo: 2012 0000 00000000 .space 72 2012 00000000 2012 00000000 2012 00000000 2012 00000000 2013 .global batteryInfoBuf 2014 .section .bss.batteryInfoBuf,"aw",%nobits 2015 .align 2 2018 batteryInfoBuf: 2019 0000 00000000 .space 55 2019 00000000 2019 00000000 2019 00000000 2019 00000000 2020 .section .rodata 2021 .align 2 2022 .LC0: 2023 0000 63757272 .ascii "current\000" 2023 656E7400 2024 .section .text.uavcan_equipment_power_BatteryInfo_decode,"ax",%progbits 2025 .align 1 2026 .global uavcan_equipment_power_BatteryInfo_decode 2027 .syntax unified 2028 .thumb 2029 .thumb_func 2031 uavcan_equipment_power_BatteryInfo_decode: 2032 .LFB141: 533:user_src/soft_water_device.c **** /** 534:user_src/soft_water_device.c **** * @file uavcan_equipment_power_BatteryInfo_decode 535:user_src/soft_water_device.c **** * @brief CAN解析电流传感器 536:user_src/soft_water_device.c **** * @param 537:user_src/soft_water_device.c **** * @details 538:user_src/soft_water_device.c **** * @author Zhang Sir 539:user_src/soft_water_device.c **** **/ 540:user_src/soft_water_device.c **** struct uavcan_equipment_power_BatteryInfo power_BatteryInfo; 541:user_src/soft_water_device.c **** 542:user_src/soft_water_device.c **** uint8_t batteryInfoBuf[UAVCAN_EQUIPMENT_POWER_BATTERYINFO_MAX_SIZE] = {0}; 543:user_src/soft_water_device.c **** void uavcan_equipment_power_BatteryInfo_decode(uint8_t *recv_buf, uint32_t len, uint32_t id) 544:user_src/soft_water_device.c **** { 2033 .loc 1 544 1 2034 .cfi_startproc 2035 @ args = 0, pretend = 0, frame = 32 2036 @ frame_needed = 1, uses_anonymous_args = 0 2037 0000 80B5 push {r7, lr} 2038 .LCFI41: 2039 .cfi_def_cfa_offset 8 2040 .cfi_offset 7, -8 2041 .cfi_offset 14, -4 2042 0002 90B0 sub sp, sp, #64 2043 .LCFI42: 2044 .cfi_def_cfa_offset 72 2045 0004 08AF add r7, sp, #32 2046 .LCFI43: 2047 .cfi_def_cfa 7, 40 2048 0006 F860 str r0, [r7, #12] 2049 0008 B960 str r1, [r7, #8] ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 50 2050 000a 7A60 str r2, [r7, #4] 545:user_src/soft_water_device.c **** static uint32_t BufIndex = 0; 546:user_src/soft_water_device.c **** static bool BufGetS = false; 547:user_src/soft_water_device.c **** 548:user_src/soft_water_device.c **** Dev.Current_Link.connect_status = COMP_NORMAL; 2051 .loc 1 548 37 2052 000c 644B ldr r3, .L103+8 2053 000e 0122 movs r2, #1 2054 0010 83F8F421 strb r2, [r3, #500] 549:user_src/soft_water_device.c **** Dev.Current_Link.recv_time = HAL_GetTick(); 2055 .loc 1 549 34 2056 0014 FFF7FEFF bl HAL_GetTick 2057 0018 0346 mov r3, r0 2058 .loc 1 549 32 2059 001a 614A ldr r2, .L103+8 2060 001c C2F8EC31 str r3, [r2, #492] 550:user_src/soft_water_device.c **** 551:user_src/soft_water_device.c **** HWTail revTail = {0}; 2061 .loc 1 551 12 2062 0020 0023 movs r3, #0 2063 0022 3B75 strb r3, [r7, #20] 552:user_src/soft_water_device.c **** if ( len > 0 && len <= 8 ) 2064 .loc 1 552 8 2065 0024 BB68 ldr r3, [r7, #8] 2066 0026 002B cmp r3, #0 2067 0028 08D0 beq .L97 2068 .loc 1 552 18 discriminator 1 2069 002a BB68 ldr r3, [r7, #8] 2070 002c 082B cmp r3, #8 2071 002e 05D8 bhi .L97 553:user_src/soft_water_device.c **** revTail.HWTailByte = recv_buf[len - 1]; 2072 .loc 1 553 38 2073 0030 BB68 ldr r3, [r7, #8] 2074 0032 013B subs r3, r3, #1 2075 0034 FA68 ldr r2, [r7, #12] 2076 0036 1344 add r3, r3, r2 2077 0038 1B78 ldrb r3, [r3] @ zero_extendqisi2 2078 .loc 1 553 28 2079 003a 3B75 strb r3, [r7, #20] 2080 .L97: 554:user_src/soft_water_device.c **** 555:user_src/soft_water_device.c **** if ( revTail.HWTailBit.start == 1 ) 2081 .loc 1 555 34 2082 003c 3B7D ldrb r3, [r7, #20] @ zero_extendqisi2 2083 003e 23F07F03 bic r3, r3, #127 2084 0042 DBB2 uxtb r3, r3 2085 .loc 1 555 8 2086 0044 002B cmp r3, #0 2087 0046 05D0 beq .L98 556:user_src/soft_water_device.c **** { 557:user_src/soft_water_device.c **** BufIndex = 0; 2088 .loc 1 557 18 2089 0048 564B ldr r3, .L103+12 2090 004a 0022 movs r2, #0 2091 004c 1A60 str r2, [r3] 558:user_src/soft_water_device.c **** BufGetS = true; 2092 .loc 1 558 17 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 51 2093 004e 564B ldr r3, .L103+16 2094 0050 0122 movs r2, #1 2095 0052 1A70 strb r2, [r3] 2096 .L98: 559:user_src/soft_water_device.c **** } 560:user_src/soft_water_device.c **** 561:user_src/soft_water_device.c **** if ( BufGetS == true && BufIndex + len - 1 <= sizeof( batteryInfoBuf ) ) 2097 .loc 1 561 18 2098 0054 544B ldr r3, .L103+16 2099 0056 1B78 ldrb r3, [r3] @ zero_extendqisi2 2100 .loc 1 561 8 2101 0058 002B cmp r3, #0 2102 005a 18D0 beq .L99 2103 .loc 1 561 38 discriminator 1 2104 005c 514B ldr r3, .L103+12 2105 005e 1A68 ldr r2, [r3] 2106 0060 BB68 ldr r3, [r7, #8] 2107 0062 1344 add r3, r3, r2 2108 .loc 1 561 44 discriminator 1 2109 0064 013B subs r3, r3, #1 2110 .loc 1 561 26 discriminator 1 2111 0066 372B cmp r3, #55 2112 0068 11D8 bhi .L99 562:user_src/soft_water_device.c **** { 563:user_src/soft_water_device.c **** memcpy( &batteryInfoBuf[BufIndex], recv_buf, len - 1 ); 2113 .loc 1 563 32 2114 006a 4E4B ldr r3, .L103+12 2115 006c 1B68 ldr r3, [r3] 2116 .loc 1 563 17 2117 006e 4F4A ldr r2, .L103+20 2118 0070 9818 adds r0, r3, r2 2119 .loc 1 563 58 2120 0072 BB68 ldr r3, [r7, #8] 2121 0074 013B subs r3, r3, #1 2122 .loc 1 563 9 2123 0076 1A46 mov r2, r3 2124 0078 F968 ldr r1, [r7, #12] 2125 007a FFF7FEFF bl memcpy 564:user_src/soft_water_device.c **** 565:user_src/soft_water_device.c **** BufIndex += ( len - 1 ); 2126 .loc 1 565 18 2127 007e 494B ldr r3, .L103+12 2128 0080 1A68 ldr r2, [r3] 2129 0082 BB68 ldr r3, [r7, #8] 2130 0084 1344 add r3, r3, r2 2131 0086 013B subs r3, r3, #1 2132 0088 464A ldr r2, .L103+12 2133 008a 1360 str r3, [r2] 2134 008c 05E0 b .L100 2135 .L99: 566:user_src/soft_water_device.c **** } 567:user_src/soft_water_device.c **** else 568:user_src/soft_water_device.c **** { 569:user_src/soft_water_device.c **** BufIndex = 0; 2136 .loc 1 569 18 2137 008e 454B ldr r3, .L103+12 2138 0090 0022 movs r2, #0 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 52 2139 0092 1A60 str r2, [r3] 570:user_src/soft_water_device.c **** BufGetS = false; 2140 .loc 1 570 17 2141 0094 444B ldr r3, .L103+16 2142 0096 0022 movs r2, #0 2143 0098 1A70 strb r2, [r3] 2144 .L100: 571:user_src/soft_water_device.c **** } 572:user_src/soft_water_device.c **** 573:user_src/soft_water_device.c **** if ( BufGetS == true && revTail.HWTailBit.end == 1 ) 2145 .loc 1 573 18 2146 009a 434B ldr r3, .L103+16 2147 009c 1B78 ldrb r3, [r3] @ zero_extendqisi2 2148 .loc 1 573 8 2149 009e 002B cmp r3, #0 2150 00a0 75D0 beq .L102 2151 .loc 1 573 51 discriminator 1 2152 00a2 3B7D ldrb r3, [r7, #20] @ zero_extendqisi2 2153 00a4 03F04003 and r3, r3, #64 2154 00a8 DBB2 uxtb r3, r3 2155 .loc 1 573 26 discriminator 1 2156 00aa 002B cmp r3, #0 2157 00ac 6FD0 beq .L102 2158 .LBB4: 574:user_src/soft_water_device.c **** { 575:user_src/soft_water_device.c **** uint16_t sigcrc = crcAddSignature( HW_CRC_INITVALUE, UAVCAN_EQUIPMENT_POWER_BATTERYINFO_SIG 2159 .loc 1 575 27 2160 00ae 3AA3 adr r3, .L103 2161 00b0 D3E90023 ldrd r2, [r3] 2162 00b4 4FF6FF70 movw r0, #65535 2163 00b8 FFF7FEFF bl crcAddSignature 2164 00bc 0346 mov r3, r0 2165 00be FB83 strh r3, [r7, #30] @ movhi 576:user_src/soft_water_device.c **** uint16_t crc = crcAdd( sigcrc, &batteryInfoBuf[2], BufIndex - 2 ); 2166 .loc 1 576 24 2167 00c0 384B ldr r3, .L103+12 2168 00c2 1B68 ldr r3, [r3] 2169 .loc 1 576 69 2170 00c4 9A1E subs r2, r3, #2 2171 .loc 1 576 24 2172 00c6 FB8B ldrh r3, [r7, #30] 2173 00c8 3949 ldr r1, .L103+24 2174 00ca 1846 mov r0, r3 2175 00cc FFF7FEFF bl crcAdd 2176 00d0 0346 mov r3, r0 2177 00d2 BB83 strh r3, [r7, #28] @ movhi 577:user_src/soft_water_device.c **** 578:user_src/soft_water_device.c **** uint16_t recvCRC = ( batteryInfoBuf[1] << 8 ) + batteryInfoBuf[0]; 2178 .loc 1 578 44 2179 00d4 354B ldr r3, .L103+20 2180 00d6 5B78 ldrb r3, [r3, #1] @ zero_extendqisi2 2181 00d8 9BB2 uxth r3, r3 2182 .loc 1 578 48 2183 00da 1B02 lsls r3, r3, #8 2184 00dc 9AB2 uxth r2, r3 2185 .loc 1 578 71 2186 00de 334B ldr r3, .L103+20 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 53 2187 00e0 1B78 ldrb r3, [r3] @ zero_extendqisi2 2188 00e2 9BB2 uxth r3, r3 2189 .loc 1 578 18 2190 00e4 1344 add r3, r3, r2 2191 00e6 7B83 strh r3, [r7, #26] @ movhi 579:user_src/soft_water_device.c **** 580:user_src/soft_water_device.c **** if ( crc == recvCRC ) 2192 .loc 1 580 12 2193 00e8 BA8B ldrh r2, [r7, #28] 2194 00ea 7B8B ldrh r3, [r7, #26] 2195 00ec 9A42 cmp r2, r3 2196 00ee 4ED1 bne .L102 2197 .LBB5: 581:user_src/soft_water_device.c **** { 582:user_src/soft_water_device.c **** uint16_t float16_val = 0; 2198 .loc 1 582 22 2199 00f0 0023 movs r3, #0 2200 00f2 3B83 strh r3, [r7, #24] @ movhi 583:user_src/soft_water_device.c **** 584:user_src/soft_water_device.c **** float16_val = batteryInfoBuf[2] + batteryInfoBuf[3]*256; 2201 .loc 1 584 41 2202 00f4 2D4B ldr r3, .L103+20 2203 00f6 9B78 ldrb r3, [r3, #2] @ zero_extendqisi2 2204 00f8 9AB2 uxth r2, r3 2205 .loc 1 584 61 2206 00fa 2C4B ldr r3, .L103+20 2207 00fc DB78 ldrb r3, [r3, #3] @ zero_extendqisi2 2208 .loc 1 584 45 2209 00fe 9BB2 uxth r3, r3 2210 0100 1B02 lsls r3, r3, #8 2211 0102 9BB2 uxth r3, r3 2212 .loc 1 584 25 2213 0104 1344 add r3, r3, r2 2214 0106 3B83 strh r3, [r7, #24] @ movhi 585:user_src/soft_water_device.c **** power_BatteryInfo.temperature = canardConvertFloat16ToNativeFloat(float16_val); 2215 .loc 1 585 45 2216 0108 3B8B ldrh r3, [r7, #24] 2217 010a 1846 mov r0, r3 2218 010c FFF7FEFF bl canardConvertFloat16ToNativeFloat 2219 0110 F0EE407A vmov.f32 s15, s0 2220 .loc 1 585 43 2221 0114 274B ldr r3, .L103+28 2222 0116 C3ED007A vstr.32 s15, [r3] 586:user_src/soft_water_device.c **** 587:user_src/soft_water_device.c **** float16_val = batteryInfoBuf[4] + batteryInfoBuf[5]*256; 2223 .loc 1 587 41 2224 011a 244B ldr r3, .L103+20 2225 011c 1B79 ldrb r3, [r3, #4] @ zero_extendqisi2 2226 011e 9AB2 uxth r2, r3 2227 .loc 1 587 61 2228 0120 224B ldr r3, .L103+20 2229 0122 5B79 ldrb r3, [r3, #5] @ zero_extendqisi2 2230 .loc 1 587 45 2231 0124 9BB2 uxth r3, r3 2232 0126 1B02 lsls r3, r3, #8 2233 0128 9BB2 uxth r3, r3 2234 .loc 1 587 25 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 54 2235 012a 1344 add r3, r3, r2 2236 012c 3B83 strh r3, [r7, #24] @ movhi 588:user_src/soft_water_device.c **** power_BatteryInfo.voltage = canardConvertFloat16ToNativeFloat(float16_val); 2237 .loc 1 588 41 2238 012e 3B8B ldrh r3, [r7, #24] 2239 0130 1846 mov r0, r3 2240 0132 FFF7FEFF bl canardConvertFloat16ToNativeFloat 2241 0136 F0EE407A vmov.f32 s15, s0 2242 .loc 1 588 39 2243 013a 1E4B ldr r3, .L103+28 2244 013c C3ED017A vstr.32 s15, [r3, #4] 589:user_src/soft_water_device.c **** 590:user_src/soft_water_device.c **** float16_val = batteryInfoBuf[6] + batteryInfoBuf[7]*256; 2245 .loc 1 590 41 2246 0140 1A4B ldr r3, .L103+20 2247 0142 9B79 ldrb r3, [r3, #6] @ zero_extendqisi2 2248 0144 9AB2 uxth r2, r3 2249 .loc 1 590 61 2250 0146 194B ldr r3, .L103+20 2251 0148 DB79 ldrb r3, [r3, #7] @ zero_extendqisi2 2252 .loc 1 590 45 2253 014a 9BB2 uxth r3, r3 2254 014c 1B02 lsls r3, r3, #8 2255 014e 9BB2 uxth r3, r3 2256 .loc 1 590 25 2257 0150 1344 add r3, r3, r2 2258 0152 3B83 strh r3, [r7, #24] @ movhi 591:user_src/soft_water_device.c **** power_BatteryInfo.current = canardConvertFloat16ToNativeFloat(float16_val); 2259 .loc 1 591 41 2260 0154 3B8B ldrh r3, [r7, #24] 2261 0156 1846 mov r0, r3 2262 0158 FFF7FEFF bl canardConvertFloat16ToNativeFloat 2263 015c F0EE407A vmov.f32 s15, s0 2264 .loc 1 591 39 2265 0160 144B ldr r3, .L103+28 2266 0162 C3ED027A vstr.32 s15, [r3, #8] 592:user_src/soft_water_device.c **** 593:user_src/soft_water_device.c **** regist_dev_info(&dev_current,DEVICE_CURRENT,false,NULL,0,NULL,0,NULL,10,"current",8); 2267 .loc 1 593 13 2268 0166 0823 movs r3, #8 2269 0168 0693 str r3, [sp, #24] 2270 016a 134B ldr r3, .L103+32 2271 016c 0593 str r3, [sp, #20] 2272 016e 0A23 movs r3, #10 2273 0170 0493 str r3, [sp, #16] 2274 0172 0023 movs r3, #0 2275 0174 0393 str r3, [sp, #12] 2276 0176 0023 movs r3, #0 2277 0178 0293 str r3, [sp, #8] 2278 017a 0023 movs r3, #0 2279 017c 0193 str r3, [sp, #4] 2280 017e 0023 movs r3, #0 2281 0180 0093 str r3, [sp] 2282 0182 0023 movs r3, #0 2283 0184 0022 movs r2, #0 2284 0186 2221 movs r1, #34 2285 0188 0C48 ldr r0, .L103+36 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 55 2286 018a FFF7FEFF bl regist_dev_info 2287 .L102: 2288 .LBE5: 2289 .LBE4: 594:user_src/soft_water_device.c **** } 595:user_src/soft_water_device.c **** 596:user_src/soft_water_device.c **** } 597:user_src/soft_water_device.c **** } 2290 .loc 1 597 1 2291 018e 00BF nop 2292 0190 2037 adds r7, r7, #32 2293 .LCFI44: 2294 .cfi_def_cfa_offset 8 2295 0192 BD46 mov sp, r7 2296 .LCFI45: 2297 .cfi_def_cfa_register 13 2298 @ sp needed 2299 0194 80BD pop {r7, pc} 2300 .L104: 2301 0196 00BF .align 3 2302 .L103: 2303 0198 6619718A .word -1972299418 2304 019c 54269C24 .word 614213204 2305 01a0 00000000 .word Dev 2306 01a4 00000000 .word BufIndex.2 2307 01a8 00000000 .word BufGetS.1 2308 01ac 00000000 .word batteryInfoBuf 2309 01b0 02000000 .word batteryInfoBuf+2 2310 01b4 00000000 .word power_BatteryInfo 2311 01b8 00000000 .word .LC0 2312 01bc 00000000 .word dev_current 2313 .cfi_endproc 2314 .LFE141: 2316 .global rawcmdTail 2317 .section .bss.rawcmdTail,"aw",%nobits 2318 .align 2 2321 rawcmdTail: 2322 0000 00 .space 1 2323 .global setIDTail 2324 .section .bss.setIDTail,"aw",%nobits 2325 .align 2 2328 setIDTail: 2329 0000 00 .space 1 2330 .global EscMsg 2331 .section .bss.EscMsg,"aw",%nobits 2332 .align 2 2335 EscMsg: 2336 0000 00000000 .space 972 2336 00000000 2336 00000000 2336 00000000 2336 00000000 2337 .section .text.HobbywingCanRecvHookFunction,"ax",%progbits 2338 .align 1 2339 .global HobbywingCanRecvHookFunction 2340 .syntax unified 2341 .thumb ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 56 2342 .thumb_func 2344 HobbywingCanRecvHookFunction: 2345 .LFB142: 598:user_src/soft_water_device.c **** 599:user_src/soft_water_device.c **** 600:user_src/soft_water_device.c **** /** 601:user_src/soft_water_device.c **** * @file HobbywingCanRecvHookFunction 602:user_src/soft_water_device.c **** * @brief CAN解析好盈协议 603:user_src/soft_water_device.c **** * @param 604:user_src/soft_water_device.c **** * @details 605:user_src/soft_water_device.c **** * @author Zhang Sir 606:user_src/soft_water_device.c **** **/ 607:user_src/soft_water_device.c **** HWTail rawcmdTail = {0}; 608:user_src/soft_water_device.c **** HWTail setIDTail = {0}; 609:user_src/soft_water_device.c **** _EscLinkDevice EscMsg[3]; 610:user_src/soft_water_device.c **** void HobbywingCanRecvHookFunction(uint32_t id, uint8_t *recv_buf, uint8_t len) 611:user_src/soft_water_device.c **** { 2346 .loc 1 611 1 2347 .cfi_startproc 2348 @ args = 0, pretend = 0, frame = 40 2349 @ frame_needed = 1, uses_anonymous_args = 0 2350 0000 80B5 push {r7, lr} 2351 .LCFI46: 2352 .cfi_def_cfa_offset 8 2353 .cfi_offset 7, -8 2354 .cfi_offset 14, -4 2355 0002 8AB0 sub sp, sp, #40 2356 .LCFI47: 2357 .cfi_def_cfa_offset 48 2358 0004 00AF add r7, sp, #0 2359 .LCFI48: 2360 .cfi_def_cfa_register 7 2361 0006 F860 str r0, [r7, #12] 2362 0008 B960 str r1, [r7, #8] 2363 000a 1346 mov r3, r2 2364 000c FB71 strb r3, [r7, #7] 612:user_src/soft_water_device.c **** //去掉NODEID 613:user_src/soft_water_device.c **** uint32_t Can_filte_id = id & 0x1FFFFF00; 2365 .loc 1 613 14 2366 000e FB68 ldr r3, [r7, #12] 2367 0010 23F06043 bic r3, r3, #-536870912 2368 0014 23F0FF03 bic r3, r3, #255 2369 0018 FB61 str r3, [r7, #28] 614:user_src/soft_water_device.c **** 615:user_src/soft_water_device.c **** if(Can_filte_id == 0x1F4E5200 || Can_filte_id == 0x1F4E5300 || Can_filte_id == 0x1F4E5400|| 2370 .loc 1 615 7 2371 001a FB69 ldr r3, [r7, #28] 2372 001c BB4A ldr r2, .L158 2373 001e 9342 cmp r3, r2 2374 0020 1CD0 beq .L106 2375 .loc 1 615 35 discriminator 1 2376 0022 FB69 ldr r3, [r7, #28] 2377 0024 BA4A ldr r2, .L158+4 2378 0026 9342 cmp r3, r2 2379 0028 18D0 beq .L106 2380 .loc 1 615 65 discriminator 2 2381 002a FB69 ldr r3, [r7, #28] ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 57 2382 002c B94A ldr r2, .L158+8 2383 002e 9342 cmp r3, r2 2384 0030 14D0 beq .L106 2385 .loc 1 615 94 discriminator 3 2386 0032 FB69 ldr r3, [r7, #28] 2387 0034 B84A ldr r2, .L158+12 2388 0036 9342 cmp r3, r2 2389 0038 10D0 beq .L106 616:user_src/soft_water_device.c **** Can_filte_id == 0x004E2E00 || Can_filte_id == 0x1000D200 || Can_filte_id == 0x004E2D00|| 2390 .loc 1 616 35 2391 003a FB69 ldr r3, [r7, #28] 2392 003c B74A ldr r2, .L158+16 2393 003e 9342 cmp r3, r2 2394 0040 0CD0 beq .L106 2395 .loc 1 616 65 discriminator 1 2396 0042 FB69 ldr r3, [r7, #28] 2397 0044 B64A ldr r2, .L158+20 2398 0046 9342 cmp r3, r2 2399 0048 08D0 beq .L106 2400 .loc 1 616 94 discriminator 2 2401 004a FB69 ldr r3, [r7, #28] 2402 004c B54A ldr r2, .L158+24 2403 004e 9342 cmp r3, r2 2404 0050 04D0 beq .L106 617:user_src/soft_water_device.c **** Can_filte_id == 0x18044400 || Can_filte_id ==0x00D21000 ){} 2405 .loc 1 617 35 2406 0052 FB69 ldr r3, [r7, #28] 2407 0054 B44A ldr r2, .L158+28 2408 0056 9342 cmp r3, r2 2409 0058 40F08683 bne .L152 2410 .L106: 618:user_src/soft_water_device.c **** else{return;} 619:user_src/soft_water_device.c **** 620:user_src/soft_water_device.c **** uint16_t TypeID = 0; 2411 .loc 1 620 14 2412 005c 0023 movs r3, #0 2413 005e FB84 strh r3, [r7, #38] @ movhi 621:user_src/soft_water_device.c **** uint8_t SerOrMsg = ( id & HW_CANID_SNM_MASK ) >> HW_CANID_SNM_POS; 2414 .loc 1 621 51 2415 0060 FB68 ldr r3, [r7, #12] 2416 0062 DB09 lsrs r3, r3, #7 2417 0064 DBB2 uxtb r3, r3 2418 .loc 1 621 13 2419 0066 03F00103 and r3, r3, #1 2420 006a FB76 strb r3, [r7, #27] 622:user_src/soft_water_device.c **** uint8_t SrcNodeID = ( id & HW_CANID_SRCNODE_MASK ) >> HW_CANID_SRCNODE_POS; 2421 .loc 1 622 56 2422 006c FB68 ldr r3, [r7, #12] 2423 006e DBB2 uxtb r3, r3 2424 .loc 1 622 13 2425 0070 03F07F03 and r3, r3, #127 2426 0074 87F82530 strb r3, [r7, #37] 623:user_src/soft_water_device.c **** 624:user_src/soft_water_device.c **** if ( SerOrMsg == HW_TYPE_SER ) 2427 .loc 1 624 8 2428 0078 FB7E ldrb r3, [r7, #27] @ zero_extendqisi2 2429 007a 012B cmp r3, #1 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 58 2430 007c 05D1 bne .L108 625:user_src/soft_water_device.c **** TypeID = ( id & HW_CANID_SERID_MASK ) >> HW_CANID_SERID_POS; 2431 .loc 1 625 47 2432 007e FB68 ldr r3, [r7, #12] 2433 0080 1B0C lsrs r3, r3, #16 2434 0082 9BB2 uxth r3, r3 2435 .loc 1 625 16 2436 0084 DBB2 uxtb r3, r3 2437 0086 FB84 strh r3, [r7, #38] @ movhi 2438 0088 02E0 b .L109 2439 .L108: 626:user_src/soft_water_device.c **** else 627:user_src/soft_water_device.c **** TypeID = ( id & HW_CANID_MSGID_MASK ) >> HW_CANID_MSGID_POS; 2440 .loc 1 627 47 2441 008a FB68 ldr r3, [r7, #12] 2442 008c 1B0A lsrs r3, r3, #8 2443 .loc 1 627 16 2444 008e FB84 strh r3, [r7, #38] @ movhi 2445 .L109: 628:user_src/soft_water_device.c **** 629:user_src/soft_water_device.c **** switch ( TypeID ) 2446 .loc 1 629 5 2447 0090 FB8C ldrh r3, [r7, #38] 2448 0092 44F62E62 movw r2, #20014 2449 0096 9342 cmp r3, r2 2450 0098 0BD0 beq .L110 2451 009a 44F62E62 movw r2, #20014 2452 009e 9342 cmp r3, r2 2453 00a0 25DC bgt .L111 2454 00a2 40F24442 movw r2, #1092 2455 00a6 9342 cmp r3, r2 2456 00a8 19D0 beq .L112 2457 00aa 44F62D62 movw r2, #20013 2458 00ae 9342 cmp r3, r2 630:user_src/soft_water_device.c **** { 631:user_src/soft_water_device.c **** //单独解析HW_FRAME_MSG_SET_ID_MODE的反馈,进入设置时电调的自身节点不 632:user_src/soft_water_device.c **** case HW_FRAME_MSG_SET_ID_MODE: 633:user_src/soft_water_device.c **** { 634:user_src/soft_water_device.c **** uint8_t _mode = recv_buf[0]; 635:user_src/soft_water_device.c **** uint8_t _control = recv_buf[1]; 636:user_src/soft_water_device.c **** //进入配置ID模式 637:user_src/soft_water_device.c **** if ( _mode == HW_SETIDMODE_MODE2 && _control == HW_SETIDMODE_CONTROL1 ) 638:user_src/soft_water_device.c **** { 639:user_src/soft_water_device.c **** setESCidInfo.getSetIDModeRes = true; 640:user_src/soft_water_device.c **** setESCidInfo.getSetIDModeResCnt++; 641:user_src/soft_water_device.c **** } 642:user_src/soft_water_device.c **** } 643:user_src/soft_water_device.c **** break; 644:user_src/soft_water_device.c **** case HW_FRAME_MSG_GET_ESC_ID: 645:user_src/soft_water_device.c **** //hw_canesc_link_status = COMP_NORMAL; 646:user_src/soft_water_device.c **** break; 2459 .loc 1 646 13 2460 00b0 1DE0 b .L111 2461 .L110: 2462 .LBB6: 634:user_src/soft_water_device.c **** uint8_t _control = recv_buf[1]; 2463 .loc 1 634 21 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 59 2464 00b2 BB68 ldr r3, [r7, #8] 2465 00b4 1B78 ldrb r3, [r3] 2466 00b6 BB76 strb r3, [r7, #26] 635:user_src/soft_water_device.c **** //进入配置ID模式 2467 .loc 1 635 21 2468 00b8 BB68 ldr r3, [r7, #8] 2469 00ba 5B78 ldrb r3, [r3, #1] 2470 00bc 7B76 strb r3, [r7, #25] 637:user_src/soft_water_device.c **** { 2471 .loc 1 637 16 2472 00be BB7E ldrb r3, [r7, #26] @ zero_extendqisi2 2473 00c0 AA2B cmp r3, #170 2474 00c2 13D1 bne .L153 637:user_src/soft_water_device.c **** { 2475 .loc 1 637 46 discriminator 1 2476 00c4 7B7E ldrb r3, [r7, #25] @ zero_extendqisi2 2477 00c6 552B cmp r3, #85 2478 00c8 10D1 bne .L153 639:user_src/soft_water_device.c **** setESCidInfo.getSetIDModeResCnt++; 2479 .loc 1 639 46 2480 00ca 984B ldr r3, .L158+32 2481 00cc 0122 movs r2, #1 2482 00ce 9A70 strb r2, [r3, #2] 640:user_src/soft_water_device.c **** } 2483 .loc 1 640 29 2484 00d0 964B ldr r3, .L158+32 2485 00d2 9B88 ldrh r3, [r3, #4] 640:user_src/soft_water_device.c **** } 2486 .loc 1 640 48 2487 00d4 0133 adds r3, r3, #1 2488 00d6 9AB2 uxth r2, r3 2489 00d8 944B ldr r3, .L158+32 2490 00da 9A80 strh r2, [r3, #4] @ movhi 2491 .LBE6: 643:user_src/soft_water_device.c **** case HW_FRAME_MSG_GET_ESC_ID: 2492 .loc 1 643 9 2493 00dc 06E0 b .L153 2494 .L112: 647:user_src/soft_water_device.c **** case UAVCAN_EQUIPMENT_POWER_BATTERYINFO_ID: 648:user_src/soft_water_device.c **** uavcan_equipment_power_BatteryInfo_decode(recv_buf, len, id); 2495 .loc 1 648 13 2496 00de FB79 ldrb r3, [r7, #7] @ zero_extendqisi2 2497 00e0 FA68 ldr r2, [r7, #12] 2498 00e2 1946 mov r1, r3 2499 00e4 B868 ldr r0, [r7, #8] 2500 00e6 FFF7FEFF bl uavcan_equipment_power_BatteryInfo_decode 649:user_src/soft_water_device.c **** break; 2501 .loc 1 649 13 2502 00ea 00E0 b .L111 2503 .L153: 643:user_src/soft_water_device.c **** case HW_FRAME_MSG_GET_ESC_ID: 2504 .loc 1 643 9 2505 00ec 00BF nop 2506 .L111: 650:user_src/soft_water_device.c **** } 651:user_src/soft_water_device.c **** 652:user_src/soft_water_device.c **** _EscLinkDevice *EscPtr = NULL; ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 60 2507 .loc 1 652 21 2508 00ee 0023 movs r3, #0 2509 00f0 3B62 str r3, [r7, #32] 653:user_src/soft_water_device.c **** 654:user_src/soft_water_device.c **** if ( SrcNodeID >= 1 && SrcNodeID <= 2 ) 2510 .loc 1 654 8 2511 00f2 97F82530 ldrb r3, [r7, #37] @ zero_extendqisi2 2512 00f6 002B cmp r3, #0 2513 00f8 0DD0 beq .L115 2514 .loc 1 654 25 discriminator 1 2515 00fa 97F82530 ldrb r3, [r7, #37] @ zero_extendqisi2 2516 00fe 022B cmp r3, #2 2517 0100 09D8 bhi .L115 655:user_src/soft_water_device.c **** { 656:user_src/soft_water_device.c **** EscPtr = &EscMsg[SrcNodeID]; 2518 .loc 1 656 25 2519 0102 97F82530 ldrb r3, [r7, #37] @ zero_extendqisi2 2520 .loc 1 656 16 2521 0106 4FF4A272 mov r2, #324 2522 010a 02FB03F3 mul r3, r2, r3 2523 010e 884A ldr r2, .L158+36 2524 0110 1344 add r3, r3, r2 2525 0112 3B62 str r3, [r7, #32] 2526 0114 13E0 b .L116 2527 .L115: 657:user_src/soft_water_device.c **** } 658:user_src/soft_water_device.c **** else if (SrcNodeID == 16 || SrcNodeID == 1) 2528 .loc 1 658 13 2529 0116 97F82530 ldrb r3, [r7, #37] @ zero_extendqisi2 2530 011a 102B cmp r3, #16 2531 011c 03D0 beq .L117 2532 .loc 1 658 30 discriminator 1 2533 011e 97F82530 ldrb r3, [r7, #37] @ zero_extendqisi2 2534 0122 012B cmp r3, #1 2535 0124 0BD1 bne .L116 2536 .L117: 659:user_src/soft_water_device.c **** { 660:user_src/soft_water_device.c **** SrcNodeID = 1; 2537 .loc 1 660 19 2538 0126 0123 movs r3, #1 2539 0128 87F82530 strb r3, [r7, #37] 661:user_src/soft_water_device.c **** EscPtr = &EscMsg[SrcNodeID]; 2540 .loc 1 661 25 2541 012c 97F82530 ldrb r3, [r7, #37] @ zero_extendqisi2 2542 .loc 1 661 16 2543 0130 4FF4A272 mov r2, #324 2544 0134 02FB03F3 mul r3, r2, r3 2545 0138 7D4A ldr r2, .L158+36 2546 013a 1344 add r3, r3, r2 2547 013c 3B62 str r3, [r7, #32] 2548 .L116: 662:user_src/soft_water_device.c **** } 663:user_src/soft_water_device.c **** 664:user_src/soft_water_device.c **** 665:user_src/soft_water_device.c **** if ( EscPtr != NULL ) 2549 .loc 1 665 8 2550 013e 3B6A ldr r3, [r7, #32] ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 61 2551 0140 002B cmp r3, #0 2552 0142 00F01683 beq .L105 2553 .LBB7: 666:user_src/soft_water_device.c **** { 667:user_src/soft_water_device.c **** if(SrcNodeID == 1) 2554 .loc 1 667 11 2555 0146 97F82530 ldrb r3, [r7, #37] @ zero_extendqisi2 2556 014a 012B cmp r3, #1 2557 014c 0ED1 bne .L118 668:user_src/soft_water_device.c **** { 669:user_src/soft_water_device.c **** Dev.L_pump1_Link.connect_status = COMP_NORMAL; 2558 .loc 1 669 45 2559 014e 794B ldr r3, .L158+40 2560 0150 0122 movs r2, #1 2561 0152 83F81422 strb r2, [r3, #532] 670:user_src/soft_water_device.c **** Dev.L_pump1_Link.recv_time = HAL_GetTick(); 2562 .loc 1 670 42 2563 0156 FFF7FEFF bl HAL_GetTick 2564 015a 0346 mov r3, r0 2565 .loc 1 670 40 2566 015c 754A ldr r2, .L158+40 2567 015e C2F80C32 str r3, [r2, #524] 671:user_src/soft_water_device.c **** Dev.L_pump1.facid = FAC_HW_ESC; 2568 .loc 1 671 31 2569 0162 744B ldr r3, .L158+40 2570 0164 1022 movs r2, #16 2571 0166 83F80422 strb r2, [r3, #516] 2572 016a 11E0 b .L119 2573 .L118: 672:user_src/soft_water_device.c **** } 673:user_src/soft_water_device.c **** else if(SrcNodeID == 2) 2574 .loc 1 673 16 2575 016c 97F82530 ldrb r3, [r7, #37] @ zero_extendqisi2 2576 0170 022B cmp r3, #2 2577 0172 0DD1 bne .L119 674:user_src/soft_water_device.c **** { 675:user_src/soft_water_device.c **** Dev.L_pump2_Link.connect_status = COMP_NORMAL; 2578 .loc 1 675 45 2579 0174 6F4B ldr r3, .L158+40 2580 0176 0122 movs r2, #1 2581 0178 83F82822 strb r2, [r3, #552] 676:user_src/soft_water_device.c **** Dev.L_pump2_Link.recv_time = HAL_GetTick(); 2582 .loc 1 676 42 2583 017c FFF7FEFF bl HAL_GetTick 2584 0180 0346 mov r3, r0 2585 .loc 1 676 40 2586 0182 6C4A ldr r2, .L158+40 2587 0184 C2F82032 str r3, [r2, #544] 677:user_src/soft_water_device.c **** Dev.L_pump2.facid = FAC_HW_ESC; 2588 .loc 1 677 31 2589 0188 6A4B ldr r3, .L158+40 2590 018a 1022 movs r2, #16 2591 018c 83F81822 strb r2, [r3, #536] 2592 .L119: 678:user_src/soft_water_device.c **** } 679:user_src/soft_water_device.c **** 680:user_src/soft_water_device.c **** HWTail revTail = {0}; ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 62 2593 .loc 1 680 16 2594 0190 0023 movs r3, #0 2595 0192 3B74 strb r3, [r7, #16] 681:user_src/soft_water_device.c **** if ( len > 0 && len <= 8 ) 2596 .loc 1 681 12 2597 0194 FB79 ldrb r3, [r7, #7] @ zero_extendqisi2 2598 0196 002B cmp r3, #0 2599 0198 08D0 beq .L120 2600 .loc 1 681 22 discriminator 1 2601 019a FB79 ldrb r3, [r7, #7] @ zero_extendqisi2 2602 019c 082B cmp r3, #8 2603 019e 05D8 bhi .L120 682:user_src/soft_water_device.c **** revTail.HWTailByte = recv_buf[len - 1]; 2604 .loc 1 682 42 2605 01a0 FB79 ldrb r3, [r7, #7] @ zero_extendqisi2 2606 01a2 013B subs r3, r3, #1 2607 01a4 BA68 ldr r2, [r7, #8] 2608 01a6 1344 add r3, r3, r2 2609 01a8 1B78 ldrb r3, [r3] @ zero_extendqisi2 2610 .loc 1 682 32 2611 01aa 3B74 strb r3, [r7, #16] 2612 .L120: 683:user_src/soft_water_device.c **** 684:user_src/soft_water_device.c **** switch ( TypeID ) 2613 .loc 1 684 9 2614 01ac FB8C ldrh r3, [r7, #38] 2615 01ae F22B cmp r3, #242 2616 01b0 00F3C280 bgt .L121 2617 01b4 D22B cmp r3, #210 2618 01b6 5FDA bge .L122 685:user_src/soft_water_device.c **** { 686:user_src/soft_water_device.c **** //esc自动上报 MSG1 2 3 687:user_src/soft_water_device.c **** case HW_MSG1_ID: 688:user_src/soft_water_device.c **** 689:user_src/soft_water_device.c **** EscPtr->motorRPM = ( recv_buf[1] << 8 ) + recv_buf[0]; 690:user_src/soft_water_device.c **** EscPtr->pwm_value = ( recv_buf[3] << 8 ) + recv_buf[2]; 691:user_src/soft_water_device.c **** EscPtr->warn_flag = ( recv_buf[5] << 8 ) + recv_buf[4]; 692:user_src/soft_water_device.c **** break; 693:user_src/soft_water_device.c **** 694:user_src/soft_water_device.c **** case HW_MSG2_ID: 695:user_src/soft_water_device.c **** EscPtr->esc_voltage = ( ( recv_buf[1] << 8 ) + recv_buf[0] ) / 10.0f; 696:user_src/soft_water_device.c **** EscPtr->esc_current = ( ( recv_buf[3] << 8 ) + recv_buf[2] ) / 10.0f; 697:user_src/soft_water_device.c **** EscPtr->esc_temperature = recv_buf[4]; 698:user_src/soft_water_device.c **** break; 699:user_src/soft_water_device.c **** 700:user_src/soft_water_device.c **** case HW_MSG3_ID: 701:user_src/soft_water_device.c **** EscPtr->esc_mosTemp = recv_buf[0]; 702:user_src/soft_water_device.c **** EscPtr->esc_capTemp = recv_buf[1]; 703:user_src/soft_water_device.c **** EscPtr->esc_motorTemp = recv_buf[2]; 704:user_src/soft_water_device.c **** break; 705:user_src/soft_water_device.c **** 706:user_src/soft_water_device.c **** case HW_MSGCONTROL_ID: 707:user_src/soft_water_device.c **** EscPtr->MsgCtrOpt = recv_buf[0]; 708:user_src/soft_water_device.c **** memcpy( &EscPtr->MsgCtrCmd, &recv_buf[1], 4 ); 709:user_src/soft_water_device.c **** break; 710:user_src/soft_water_device.c **** 711:user_src/soft_water_device.c **** case HW_FRAME_MSG_GET_ESC_ID: ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 63 712:user_src/soft_water_device.c **** EscPtr->GetESCid = true; 713:user_src/soft_water_device.c **** EscPtr->GetEscNodeID = recv_buf[0]; 714:user_src/soft_water_device.c **** EscPtr->GetEscThrCh = recv_buf[1]; 715:user_src/soft_water_device.c **** break; 716:user_src/soft_water_device.c **** case HW_FRAME_MSG_SET_ID_MODE: 717:user_src/soft_water_device.c **** //退出配置ID模式 718:user_src/soft_water_device.c **** if ( recv_buf[0] == 0x55 && recv_buf[1] == 0x55 ) 719:user_src/soft_water_device.c **** EscPtr->ResSetIDModeExit = true; 720:user_src/soft_water_device.c **** break; 721:user_src/soft_water_device.c **** case HW_SETID_ID: 722:user_src/soft_water_device.c **** EscPtr->ResSetID = true; 723:user_src/soft_water_device.c **** EscPtr->SetIDNodeID = recv_buf[0]; 724:user_src/soft_water_device.c **** EscPtr->SetIDThrCh = recv_buf[1]; 725:user_src/soft_water_device.c **** break; 726:user_src/soft_water_device.c **** 727:user_src/soft_water_device.c **** case HW_SETBAUD_ID: 728:user_src/soft_water_device.c **** EscPtr->SetBaud = recv_buf[0]; 729:user_src/soft_water_device.c **** break; 730:user_src/soft_water_device.c **** 731:user_src/soft_water_device.c **** case HW_SETLED_ID: 732:user_src/soft_water_device.c **** EscPtr->SetLEDOpt = recv_buf[0]; 733:user_src/soft_water_device.c **** EscPtr->SetLEDClr = recv_buf[1]; 734:user_src/soft_water_device.c **** EscPtr->SetLEDBlk = recv_buf[2]; 735:user_src/soft_water_device.c **** break; 736:user_src/soft_water_device.c **** 737:user_src/soft_water_device.c **** case HW_SETROTATION_ID: 738:user_src/soft_water_device.c **** EscPtr->SetRotDir = recv_buf[0]; 739:user_src/soft_water_device.c **** break; 740:user_src/soft_water_device.c **** 741:user_src/soft_water_device.c **** case HW_SETGET_FREQ_ID: 742:user_src/soft_water_device.c **** EscPtr->SetFreqOpt = recv_buf[0]; 743:user_src/soft_water_device.c **** EscPtr->SetFreqID = ( recv_buf[2] << 8 ) + recv_buf[1]; 744:user_src/soft_water_device.c **** EscPtr->SetFreqFreq = recv_buf[3]; 745:user_src/soft_water_device.c **** break; 746:user_src/soft_water_device.c **** 747:user_src/soft_water_device.c **** case HW_THRSELEXT_ID: 748:user_src/soft_water_device.c **** EscPtr->ThrSrc = recv_buf[0]; 749:user_src/soft_water_device.c **** break; 750:user_src/soft_water_device.c **** 751:user_src/soft_water_device.c **** case HW_SELFTEST_ID: 752:user_src/soft_water_device.c **** EscPtr->SelfCheckSta = recv_buf[0]; 753:user_src/soft_water_device.c **** break; 754:user_src/soft_water_device.c **** 755:user_src/soft_water_device.c **** case HW_ESCINFO_ID: 756:user_src/soft_water_device.c **** if ( revTail.HWTailBit.start == 1 ) 757:user_src/soft_water_device.c **** { 758:user_src/soft_water_device.c **** EscPtr->_VerBufIndex = 0; 759:user_src/soft_water_device.c **** EscPtr->_VerBufGetS = true; 760:user_src/soft_water_device.c **** } 761:user_src/soft_water_device.c **** 762:user_src/soft_water_device.c **** if ( EscPtr->_VerBufGetS == true && EscPtr->_VerBufIndex + len - 1 < sizeof( EscPtr 763:user_src/soft_water_device.c **** { 764:user_src/soft_water_device.c **** memcpy( &EscPtr->_VerBuf[EscPtr->_VerBufIndex], recv_buf, len - 1 ); 765:user_src/soft_water_device.c **** 766:user_src/soft_water_device.c **** EscPtr->_VerBufIndex += ( len - 1 ); 767:user_src/soft_water_device.c **** } 768:user_src/soft_water_device.c **** else ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 64 769:user_src/soft_water_device.c **** { 770:user_src/soft_water_device.c **** EscPtr->_VerBufIndex = 0; 771:user_src/soft_water_device.c **** EscPtr->_VerBufGetS = false; 772:user_src/soft_water_device.c **** } 773:user_src/soft_water_device.c **** 774:user_src/soft_water_device.c **** if ( EscPtr->_VerBufGetS == true && revTail.HWTailBit.end == 1 ) 775:user_src/soft_water_device.c **** { 776:user_src/soft_water_device.c **** uint16_t sigcrc = crcAddSignature( HW_CRC_INITVALUE, HW_ESCINFO_SIG ); 777:user_src/soft_water_device.c **** uint16_t crc = crcAdd( sigcrc, &EscPtr->_VerBuf[2], EscPtr->_VerBufIndex - 2 ); 778:user_src/soft_water_device.c **** 779:user_src/soft_water_device.c **** uint16_t recvCRC = ( EscPtr->_VerBuf[1] << 8 ) + EscPtr->_VerBuf[0]; 780:user_src/soft_water_device.c **** 781:user_src/soft_water_device.c **** if ( crc == recvCRC ) 782:user_src/soft_water_device.c **** { 783:user_src/soft_water_device.c **** uint8_t ESCinfoOpt = EscPtr->_VerBuf[2]; 784:user_src/soft_water_device.c **** 785:user_src/soft_water_device.c **** switch ( ESCinfoOpt ) 786:user_src/soft_water_device.c **** { 787:user_src/soft_water_device.c **** case HW_ESCINFO_OPT00: 788:user_src/soft_water_device.c **** EscPtr->GetESCInfoOpt00 = true; 789:user_src/soft_water_device.c **** memcpy( EscPtr->LinkSoftVer, &EscPtr->_VerBuf[3], 16 ); 790:user_src/soft_water_device.c **** memcpy( EscPtr->LinkHardVer, &EscPtr->_VerBuf[19], 16 ); 791:user_src/soft_water_device.c **** memcpy( EscPtr->LinkDevVer, &EscPtr->_VerBuf[35], 16 ); 792:user_src/soft_water_device.c **** memcpy( EscPtr->LinkSN, &EscPtr->_VerBuf[51], 8 ); 793:user_src/soft_water_device.c **** break; 794:user_src/soft_water_device.c **** case HW_ESCINFO_OPT01: 795:user_src/soft_water_device.c **** EscPtr->GetESCInfoOpt01 = true; 796:user_src/soft_water_device.c **** memcpy( EscPtr->DriveSoftVer, &EscPtr->_VerBuf[3], 16 ); 797:user_src/soft_water_device.c **** memcpy( EscPtr->DriveHardVer, &EscPtr->_VerBuf[19], 16 ); 798:user_src/soft_water_device.c **** memcpy( EscPtr->DriveDevVer, &EscPtr->_VerBuf[35], 16 ); 799:user_src/soft_water_device.c **** memcpy( EscPtr->DriveSN, &EscPtr->_VerBuf[51], 8 ); 800:user_src/soft_water_device.c **** break; 801:user_src/soft_water_device.c **** case HW_ESCINFO_OPT02: 802:user_src/soft_water_device.c **** EscPtr->GetESCInfoOpt02 = true; 803:user_src/soft_water_device.c **** memcpy( EscPtr->HardSN, &EscPtr->_VerBuf[3], 16 ); 804:user_src/soft_water_device.c **** memcpy( EscPtr->ProtocolVer, &EscPtr->_VerBuf[19], 8 ); 805:user_src/soft_water_device.c **** break; 806:user_src/soft_water_device.c **** default: 807:user_src/soft_water_device.c **** break; 808:user_src/soft_water_device.c **** } 809:user_src/soft_water_device.c **** 810:user_src/soft_water_device.c **** } 811:user_src/soft_water_device.c **** } 812:user_src/soft_water_device.c **** break; 813:user_src/soft_water_device.c **** //设置回应ESC配置信息 814:user_src/soft_water_device.c **** case HW_GETMAJORCONF_ID: 815:user_src/soft_water_device.c **** EscPtr->GetMajorConf = true; 816:user_src/soft_water_device.c **** EscPtr->MajorConfRot = ( recv_buf[0] >> 7 ) & 0x01; //电机旋转方向(0: 817:user_src/soft_water_device.c **** EscPtr->MajorConfThrSrc = ( recv_buf[0] >> 6 ) & 0x01; //油门信号源(0:CAN 818:user_src/soft_water_device.c **** EscPtr->MajorConfThrCh = recv_buf[0] & 0x3F; //定的数字油门通 819:user_src/soft_water_device.c **** EscPtr->MajorConfLEDBlink = ( recv_buf[1] >> 3 ) & 0x1f; //LED闪烁状态; 820:user_src/soft_water_device.c **** EscPtr->MajorConfLEDColor = recv_buf[1] & 0x07; //LED静态灯色RGB; 821:user_src/soft_water_device.c **** EscPtr->MajorConfMSG2UPHZ = ( recv_buf[2] >> 4 ) & 0x0f; //MSG2数据帧上报速 822:user_src/soft_water_device.c **** EscPtr->MajorConfMSG1UPHZ = recv_buf[2] & 0x0f; //MSG1数据帧上报速 823:user_src/soft_water_device.c **** EscPtr->MajorConfInstAngle = recv_buf[3] + ( recv_buf[4] << 8 ); //定位角度数 824:user_src/soft_water_device.c **** break; 825:user_src/soft_water_device.c **** default: ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 65 826:user_src/soft_water_device.c **** break; 2619 .loc 1 826 17 2620 01b8 D8E2 b .L154 2621 .L141: 684:user_src/soft_water_device.c **** { 2622 .loc 1 684 9 2623 01ba A3F59C43 sub r3, r3, #19968 2624 01be 2A3B subs r3, r3, #42 2625 01c0 2A2B cmp r3, #42 2626 01c2 00F2D382 bhi .L154 2627 01c6 01A2 adr r2, .L125 2628 01c8 52F823F0 ldr pc, [r2, r3, lsl #2] 2629 .p2align 2 2630 .L125: 2631 01cc 11040000 .word .L130+1 2632 01d0 6D070000 .word .L154+1 2633 01d4 6D070000 .word .L154+1 2634 01d8 29040000 .word .L129+1 2635 01dc 47040000 .word .L128+1 2636 01e0 6D070000 .word .L154+1 2637 01e4 6D070000 .word .L154+1 2638 01e8 6D070000 .word .L154+1 2639 01ec 6D070000 .word .L154+1 2640 01f0 6D070000 .word .L154+1 2641 01f4 6D070000 .word .L154+1 2642 01f8 6D070000 .word .L154+1 2643 01fc 6D070000 .word .L154+1 2644 0200 6D070000 .word .L154+1 2645 0204 6D070000 .word .L154+1 2646 0208 6D070000 .word .L154+1 2647 020c 6D070000 .word .L154+1 2648 0210 6D070000 .word .L154+1 2649 0214 6D070000 .word .L154+1 2650 0218 6D070000 .word .L154+1 2651 021c 6D070000 .word .L154+1 2652 0220 6D070000 .word .L154+1 2653 0224 6D070000 .word .L154+1 2654 0228 6D070000 .word .L154+1 2655 022c 6D070000 .word .L154+1 2656 0230 6D070000 .word .L154+1 2657 0234 6D070000 .word .L154+1 2658 0238 6D070000 .word .L154+1 2659 023c 6D070000 .word .L154+1 2660 0240 6D070000 .word .L154+1 2661 0244 6D070000 .word .L154+1 2662 0248 6D070000 .word .L154+1 2663 024c 6D070000 .word .L154+1 2664 0250 6D070000 .word .L154+1 2665 0254 6D070000 .word .L154+1 2666 0258 6D070000 .word .L154+1 2667 025c 6D070000 .word .L154+1 2668 0260 6D070000 .word .L154+1 2669 0264 6D070000 .word .L154+1 2670 0268 6D070000 .word .L154+1 2671 026c 4F030000 .word .L127+1 2672 0270 A3030000 .word .L126+1 2673 0274 F7030000 .word .L124+1 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 66 2674 .p2align 1 2675 .L122: 2676 0278 D23B subs r3, r3, #210 2677 027a 202B cmp r3, #32 2678 027c 00F27682 bhi .L154 2679 0280 01A2 adr r2, .L132 2680 0282 52F823F0 ldr pc, [r2, r3, lsl #2] 2681 0286 00BF .p2align 2 2682 .L132: 2683 0288 67040000 .word .L140+1 2684 028c 85040000 .word .L139+1 2685 0290 91040000 .word .L138+1 2686 0294 B1040000 .word .L137+1 2687 0298 BD040000 .word .L136+1 2688 029c EF040000 .word .L135+1 2689 02a0 FB040000 .word .L134+1 2690 02a4 6D070000 .word .L154+1 2691 02a8 6D070000 .word .L154+1 2692 02ac 6D070000 .word .L154+1 2693 02b0 6D070000 .word .L154+1 2694 02b4 6D070000 .word .L154+1 2695 02b8 6D070000 .word .L154+1 2696 02bc 6D070000 .word .L154+1 2697 02c0 6D070000 .word .L154+1 2698 02c4 6D070000 .word .L154+1 2699 02c8 6D070000 .word .L154+1 2700 02cc 6D070000 .word .L154+1 2701 02d0 6D070000 .word .L154+1 2702 02d4 6D070000 .word .L154+1 2703 02d8 6D070000 .word .L154+1 2704 02dc 6D070000 .word .L154+1 2705 02e0 6D070000 .word .L154+1 2706 02e4 6D070000 .word .L154+1 2707 02e8 6D070000 .word .L154+1 2708 02ec 6D070000 .word .L154+1 2709 02f0 6D070000 .word .L154+1 2710 02f4 6D070000 .word .L154+1 2711 02f8 6D070000 .word .L154+1 2712 02fc 6D070000 .word .L154+1 2713 0300 07050000 .word .L133+1 2714 0304 6D070000 .word .L154+1 2715 0308 DF060000 .word .L131+1 2716 .p2align 1 2717 .L159: 2718 .align 2 2719 .L158: 2720 030c 00524E1F .word 525226496 2721 0310 00534E1F .word 525226752 2722 0314 00544E1F .word 525227008 2723 0318 002E4E00 .word 5123584 2724 031c 00D20010 .word 268489216 2725 0320 002D4E00 .word 5123328 2726 0324 00440418 .word 402932736 2727 0328 0010D200 .word 13766656 2728 032c 00000000 .word setESCidInfo 2729 0330 00000000 .word EscMsg 2730 0334 00000000 .word Dev ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 67 2731 .L121: 2732 0338 44F65462 movw r2, #20052 2733 033c 9342 cmp r3, r2 2734 033e 00F31582 bgt .L154 2735 0342 44F62A62 movw r2, #20010 2736 0346 9342 cmp r3, r2 2737 0348 BFF637AF bge .L141 2738 .loc 1 826 17 2739 034c 0EE2 b .L154 2740 .L127: 689:user_src/soft_water_device.c **** EscPtr->pwm_value = ( recv_buf[3] << 8 ) + recv_buf[2]; 2741 .loc 1 689 46 2742 034e BB68 ldr r3, [r7, #8] 2743 0350 0133 adds r3, r3, #1 2744 0352 1B78 ldrb r3, [r3] @ zero_extendqisi2 2745 0354 9BB2 uxth r3, r3 689:user_src/soft_water_device.c **** EscPtr->pwm_value = ( recv_buf[3] << 8 ) + recv_buf[2]; 2746 .loc 1 689 50 2747 0356 1B02 lsls r3, r3, #8 2748 0358 9AB2 uxth r2, r3 689:user_src/soft_water_device.c **** EscPtr->pwm_value = ( recv_buf[3] << 8 ) + recv_buf[2]; 2749 .loc 1 689 67 2750 035a BB68 ldr r3, [r7, #8] 2751 035c 1B78 ldrb r3, [r3] @ zero_extendqisi2 2752 035e 9BB2 uxth r3, r3 689:user_src/soft_water_device.c **** EscPtr->pwm_value = ( recv_buf[3] << 8 ) + recv_buf[2]; 2753 .loc 1 689 57 2754 0360 1344 add r3, r3, r2 2755 0362 9AB2 uxth r2, r3 689:user_src/soft_water_device.c **** EscPtr->pwm_value = ( recv_buf[3] << 8 ) + recv_buf[2]; 2756 .loc 1 689 34 2757 0364 3B6A ldr r3, [r7, #32] 2758 0366 9A81 strh r2, [r3, #12] @ movhi 690:user_src/soft_water_device.c **** EscPtr->warn_flag = ( recv_buf[5] << 8 ) + recv_buf[4]; 2759 .loc 1 690 47 2760 0368 BB68 ldr r3, [r7, #8] 2761 036a 0333 adds r3, r3, #3 2762 036c 1B78 ldrb r3, [r3] @ zero_extendqisi2 2763 036e 9BB2 uxth r3, r3 690:user_src/soft_water_device.c **** EscPtr->warn_flag = ( recv_buf[5] << 8 ) + recv_buf[4]; 2764 .loc 1 690 51 2765 0370 1B02 lsls r3, r3, #8 2766 0372 9AB2 uxth r2, r3 690:user_src/soft_water_device.c **** EscPtr->warn_flag = ( recv_buf[5] << 8 ) + recv_buf[4]; 2767 .loc 1 690 68 2768 0374 BB68 ldr r3, [r7, #8] 2769 0376 0233 adds r3, r3, #2 2770 0378 1B78 ldrb r3, [r3] @ zero_extendqisi2 2771 037a 9BB2 uxth r3, r3 690:user_src/soft_water_device.c **** EscPtr->warn_flag = ( recv_buf[5] << 8 ) + recv_buf[4]; 2772 .loc 1 690 58 2773 037c 1344 add r3, r3, r2 2774 037e 9AB2 uxth r2, r3 690:user_src/soft_water_device.c **** EscPtr->warn_flag = ( recv_buf[5] << 8 ) + recv_buf[4]; 2775 .loc 1 690 35 2776 0380 3B6A ldr r3, [r7, #32] 2777 0382 DA81 strh r2, [r3, #14] @ movhi ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 68 691:user_src/soft_water_device.c **** break; 2778 .loc 1 691 47 2779 0384 BB68 ldr r3, [r7, #8] 2780 0386 0533 adds r3, r3, #5 2781 0388 1B78 ldrb r3, [r3] @ zero_extendqisi2 2782 038a 9BB2 uxth r3, r3 691:user_src/soft_water_device.c **** break; 2783 .loc 1 691 51 2784 038c 1B02 lsls r3, r3, #8 2785 038e 9AB2 uxth r2, r3 691:user_src/soft_water_device.c **** break; 2786 .loc 1 691 68 2787 0390 BB68 ldr r3, [r7, #8] 2788 0392 0433 adds r3, r3, #4 2789 0394 1B78 ldrb r3, [r3] @ zero_extendqisi2 2790 0396 9BB2 uxth r3, r3 691:user_src/soft_water_device.c **** break; 2791 .loc 1 691 58 2792 0398 1344 add r3, r3, r2 2793 039a 9AB2 uxth r2, r3 691:user_src/soft_water_device.c **** break; 2794 .loc 1 691 35 2795 039c 3B6A ldr r3, [r7, #32] 2796 039e 1A82 strh r2, [r3, #16] @ movhi 692:user_src/soft_water_device.c **** 2797 .loc 1 692 17 2798 03a0 E7E1 b .L105 2799 .L126: 695:user_src/soft_water_device.c **** EscPtr->esc_current = ( ( recv_buf[3] << 8 ) + recv_buf[2] ) / 10.0f; 2800 .loc 1 695 51 2801 03a2 BB68 ldr r3, [r7, #8] 2802 03a4 0133 adds r3, r3, #1 2803 03a6 1B78 ldrb r3, [r3] @ zero_extendqisi2 695:user_src/soft_water_device.c **** EscPtr->esc_current = ( ( recv_buf[3] << 8 ) + recv_buf[2] ) / 10.0f; 2804 .loc 1 695 55 2805 03a8 1B02 lsls r3, r3, #8 695:user_src/soft_water_device.c **** EscPtr->esc_current = ( ( recv_buf[3] << 8 ) + recv_buf[2] ) / 10.0f; 2806 .loc 1 695 72 2807 03aa BA68 ldr r2, [r7, #8] 2808 03ac 1278 ldrb r2, [r2] @ zero_extendqisi2 695:user_src/soft_water_device.c **** EscPtr->esc_current = ( ( recv_buf[3] << 8 ) + recv_buf[2] ) / 10.0f; 2809 .loc 1 695 62 2810 03ae 1344 add r3, r3, r2 695:user_src/soft_water_device.c **** EscPtr->esc_current = ( ( recv_buf[3] << 8 ) + recv_buf[2] ) / 10.0f; 2811 .loc 1 695 78 2812 03b0 07EE903A vmov s15, r3 @ int 2813 03b4 B8EEE77A vcvt.f32.s32 s14, s15 2814 03b8 F2EE046A vmov.f32 s13, #1.0e+1 2815 03bc C7EE267A vdiv.f32 s15, s14, s13 695:user_src/soft_water_device.c **** EscPtr->esc_current = ( ( recv_buf[3] << 8 ) + recv_buf[2] ) / 10.0f; 2816 .loc 1 695 37 2817 03c0 3B6A ldr r3, [r7, #32] 2818 03c2 C3ED057A vstr.32 s15, [r3, #20] 696:user_src/soft_water_device.c **** EscPtr->esc_temperature = recv_buf[4]; 2819 .loc 1 696 51 2820 03c6 BB68 ldr r3, [r7, #8] 2821 03c8 0333 adds r3, r3, #3 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 69 2822 03ca 1B78 ldrb r3, [r3] @ zero_extendqisi2 696:user_src/soft_water_device.c **** EscPtr->esc_temperature = recv_buf[4]; 2823 .loc 1 696 55 2824 03cc 1B02 lsls r3, r3, #8 696:user_src/soft_water_device.c **** EscPtr->esc_temperature = recv_buf[4]; 2825 .loc 1 696 72 2826 03ce BA68 ldr r2, [r7, #8] 2827 03d0 0232 adds r2, r2, #2 2828 03d2 1278 ldrb r2, [r2] @ zero_extendqisi2 696:user_src/soft_water_device.c **** EscPtr->esc_temperature = recv_buf[4]; 2829 .loc 1 696 62 2830 03d4 1344 add r3, r3, r2 696:user_src/soft_water_device.c **** EscPtr->esc_temperature = recv_buf[4]; 2831 .loc 1 696 78 2832 03d6 07EE903A vmov s15, r3 @ int 2833 03da B8EEE77A vcvt.f32.s32 s14, s15 2834 03de F2EE046A vmov.f32 s13, #1.0e+1 2835 03e2 C7EE267A vdiv.f32 s15, s14, s13 696:user_src/soft_water_device.c **** EscPtr->esc_temperature = recv_buf[4]; 2836 .loc 1 696 37 2837 03e6 3B6A ldr r3, [r7, #32] 2838 03e8 C3ED067A vstr.32 s15, [r3, #24] 697:user_src/soft_water_device.c **** break; 2839 .loc 1 697 41 2840 03ec BB68 ldr r3, [r7, #8] 2841 03ee 1A79 ldrb r2, [r3, #4] @ zero_extendqisi2 2842 03f0 3B6A ldr r3, [r7, #32] 2843 03f2 1A77 strb r2, [r3, #28] 698:user_src/soft_water_device.c **** 2844 .loc 1 698 17 2845 03f4 BDE1 b .L105 2846 .L124: 701:user_src/soft_water_device.c **** EscPtr->esc_capTemp = recv_buf[1]; 2847 .loc 1 701 47 2848 03f6 BB68 ldr r3, [r7, #8] 2849 03f8 1A78 ldrb r2, [r3] @ zero_extendqisi2 701:user_src/soft_water_device.c **** EscPtr->esc_capTemp = recv_buf[1]; 2850 .loc 1 701 37 2851 03fa 3B6A ldr r3, [r7, #32] 2852 03fc 5A77 strb r2, [r3, #29] 702:user_src/soft_water_device.c **** EscPtr->esc_motorTemp = recv_buf[2]; 2853 .loc 1 702 37 2854 03fe BB68 ldr r3, [r7, #8] 2855 0400 5A78 ldrb r2, [r3, #1] @ zero_extendqisi2 2856 0402 3B6A ldr r3, [r7, #32] 2857 0404 9A77 strb r2, [r3, #30] 703:user_src/soft_water_device.c **** break; 2858 .loc 1 703 39 2859 0406 BB68 ldr r3, [r7, #8] 2860 0408 9A78 ldrb r2, [r3, #2] @ zero_extendqisi2 2861 040a 3B6A ldr r3, [r7, #32] 2862 040c DA77 strb r2, [r3, #31] 704:user_src/soft_water_device.c **** 2863 .loc 1 704 17 2864 040e B0E1 b .L105 2865 .L130: 707:user_src/soft_water_device.c **** memcpy( &EscPtr->MsgCtrCmd, &recv_buf[1], 4 ); ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 70 2866 .loc 1 707 45 2867 0410 BB68 ldr r3, [r7, #8] 2868 0412 1A78 ldrb r2, [r3] @ zero_extendqisi2 707:user_src/soft_water_device.c **** memcpy( &EscPtr->MsgCtrCmd, &recv_buf[1], 4 ); 2869 .loc 1 707 35 2870 0414 3B6A ldr r3, [r7, #32] 2871 0416 83F82020 strb r2, [r3, #32] 708:user_src/soft_water_device.c **** break; 2872 .loc 1 708 25 2873 041a 3B6A ldr r3, [r7, #32] 2874 041c 2433 adds r3, r3, #36 708:user_src/soft_water_device.c **** break; 2875 .loc 1 708 45 2876 041e BA68 ldr r2, [r7, #8] 2877 0420 0132 adds r2, r2, #1 2878 0422 1268 ldr r2, [r2] @ unaligned 708:user_src/soft_water_device.c **** break; 2879 .loc 1 708 17 2880 0424 1A60 str r2, [r3] @ unaligned 709:user_src/soft_water_device.c **** 2881 .loc 1 709 17 2882 0426 A4E1 b .L105 2883 .L129: 712:user_src/soft_water_device.c **** EscPtr->GetEscNodeID = recv_buf[0]; 2884 .loc 1 712 34 2885 0428 3B6A ldr r3, [r7, #32] 2886 042a 0122 movs r2, #1 2887 042c 83F82820 strb r2, [r3, #40] 713:user_src/soft_water_device.c **** EscPtr->GetEscThrCh = recv_buf[1]; 2888 .loc 1 713 48 2889 0430 BB68 ldr r3, [r7, #8] 2890 0432 1A78 ldrb r2, [r3] @ zero_extendqisi2 713:user_src/soft_water_device.c **** EscPtr->GetEscThrCh = recv_buf[1]; 2891 .loc 1 713 38 2892 0434 3B6A ldr r3, [r7, #32] 2893 0436 83F82920 strb r2, [r3, #41] 714:user_src/soft_water_device.c **** break; 2894 .loc 1 714 37 2895 043a BB68 ldr r3, [r7, #8] 2896 043c 5A78 ldrb r2, [r3, #1] @ zero_extendqisi2 2897 043e 3B6A ldr r3, [r7, #32] 2898 0440 83F82A20 strb r2, [r3, #42] 715:user_src/soft_water_device.c **** case HW_FRAME_MSG_SET_ID_MODE: 2899 .loc 1 715 17 2900 0444 95E1 b .L105 2901 .L128: 718:user_src/soft_water_device.c **** EscPtr->ResSetIDModeExit = true; 2902 .loc 1 718 30 2903 0446 BB68 ldr r3, [r7, #8] 2904 0448 1B78 ldrb r3, [r3] @ zero_extendqisi2 718:user_src/soft_water_device.c **** EscPtr->ResSetIDModeExit = true; 2905 .loc 1 718 20 2906 044a 552B cmp r3, #85 2907 044c 40F09081 bne .L155 718:user_src/soft_water_device.c **** EscPtr->ResSetIDModeExit = true; 2908 .loc 1 718 53 discriminator 1 2909 0450 BB68 ldr r3, [r7, #8] ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 71 2910 0452 0133 adds r3, r3, #1 2911 0454 1B78 ldrb r3, [r3] @ zero_extendqisi2 718:user_src/soft_water_device.c **** EscPtr->ResSetIDModeExit = true; 2912 .loc 1 718 42 discriminator 1 2913 0456 552B cmp r3, #85 2914 0458 40F08A81 bne .L155 719:user_src/soft_water_device.c **** break; 2915 .loc 1 719 46 2916 045c 3B6A ldr r3, [r7, #32] 2917 045e 0122 movs r2, #1 2918 0460 83F82B20 strb r2, [r3, #43] 720:user_src/soft_water_device.c **** case HW_SETID_ID: 2919 .loc 1 720 17 2920 0464 84E1 b .L155 2921 .L140: 722:user_src/soft_water_device.c **** EscPtr->SetIDNodeID = recv_buf[0]; 2922 .loc 1 722 34 2923 0466 3B6A ldr r3, [r7, #32] 2924 0468 0122 movs r2, #1 2925 046a 83F82C20 strb r2, [r3, #44] 723:user_src/soft_water_device.c **** EscPtr->SetIDThrCh = recv_buf[1]; 2926 .loc 1 723 47 2927 046e BB68 ldr r3, [r7, #8] 2928 0470 1A78 ldrb r2, [r3] @ zero_extendqisi2 723:user_src/soft_water_device.c **** EscPtr->SetIDThrCh = recv_buf[1]; 2929 .loc 1 723 37 2930 0472 3B6A ldr r3, [r7, #32] 2931 0474 83F82D20 strb r2, [r3, #45] 724:user_src/soft_water_device.c **** break; 2932 .loc 1 724 36 2933 0478 BB68 ldr r3, [r7, #8] 2934 047a 5A78 ldrb r2, [r3, #1] @ zero_extendqisi2 2935 047c 3B6A ldr r3, [r7, #32] 2936 047e 83F82E20 strb r2, [r3, #46] 725:user_src/soft_water_device.c **** 2937 .loc 1 725 17 2938 0482 76E1 b .L105 2939 .L139: 728:user_src/soft_water_device.c **** break; 2940 .loc 1 728 43 2941 0484 BB68 ldr r3, [r7, #8] 2942 0486 1A78 ldrb r2, [r3] @ zero_extendqisi2 728:user_src/soft_water_device.c **** break; 2943 .loc 1 728 33 2944 0488 3B6A ldr r3, [r7, #32] 2945 048a 83F82F20 strb r2, [r3, #47] 729:user_src/soft_water_device.c **** 2946 .loc 1 729 17 2947 048e 70E1 b .L105 2948 .L138: 732:user_src/soft_water_device.c **** EscPtr->SetLEDClr = recv_buf[1]; 2949 .loc 1 732 45 2950 0490 BB68 ldr r3, [r7, #8] 2951 0492 1A78 ldrb r2, [r3] @ zero_extendqisi2 732:user_src/soft_water_device.c **** EscPtr->SetLEDClr = recv_buf[1]; 2952 .loc 1 732 35 2953 0494 3B6A ldr r3, [r7, #32] ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 72 2954 0496 83F83020 strb r2, [r3, #48] 733:user_src/soft_water_device.c **** EscPtr->SetLEDBlk = recv_buf[2]; 2955 .loc 1 733 35 2956 049a BB68 ldr r3, [r7, #8] 2957 049c 5A78 ldrb r2, [r3, #1] @ zero_extendqisi2 2958 049e 3B6A ldr r3, [r7, #32] 2959 04a0 83F83120 strb r2, [r3, #49] 734:user_src/soft_water_device.c **** break; 2960 .loc 1 734 35 2961 04a4 BB68 ldr r3, [r7, #8] 2962 04a6 9A78 ldrb r2, [r3, #2] @ zero_extendqisi2 2963 04a8 3B6A ldr r3, [r7, #32] 2964 04aa 83F83220 strb r2, [r3, #50] 735:user_src/soft_water_device.c **** 2965 .loc 1 735 17 2966 04ae 60E1 b .L105 2967 .L137: 738:user_src/soft_water_device.c **** break; 2968 .loc 1 738 45 2969 04b0 BB68 ldr r3, [r7, #8] 2970 04b2 1A78 ldrb r2, [r3] @ zero_extendqisi2 738:user_src/soft_water_device.c **** break; 2971 .loc 1 738 35 2972 04b4 3B6A ldr r3, [r7, #32] 2973 04b6 83F83320 strb r2, [r3, #51] 739:user_src/soft_water_device.c **** 2974 .loc 1 739 17 2975 04ba 5AE1 b .L105 2976 .L136: 742:user_src/soft_water_device.c **** EscPtr->SetFreqID = ( recv_buf[2] << 8 ) + recv_buf[1]; 2977 .loc 1 742 46 2978 04bc BB68 ldr r3, [r7, #8] 2979 04be 1A78 ldrb r2, [r3] @ zero_extendqisi2 742:user_src/soft_water_device.c **** EscPtr->SetFreqID = ( recv_buf[2] << 8 ) + recv_buf[1]; 2980 .loc 1 742 36 2981 04c0 3B6A ldr r3, [r7, #32] 2982 04c2 83F83420 strb r2, [r3, #52] 743:user_src/soft_water_device.c **** EscPtr->SetFreqFreq = recv_buf[3]; 2983 .loc 1 743 47 2984 04c6 BB68 ldr r3, [r7, #8] 2985 04c8 0233 adds r3, r3, #2 2986 04ca 1B78 ldrb r3, [r3] @ zero_extendqisi2 2987 04cc 9BB2 uxth r3, r3 743:user_src/soft_water_device.c **** EscPtr->SetFreqFreq = recv_buf[3]; 2988 .loc 1 743 51 2989 04ce 1B02 lsls r3, r3, #8 2990 04d0 9AB2 uxth r2, r3 743:user_src/soft_water_device.c **** EscPtr->SetFreqFreq = recv_buf[3]; 2991 .loc 1 743 68 2992 04d2 BB68 ldr r3, [r7, #8] 2993 04d4 0133 adds r3, r3, #1 2994 04d6 1B78 ldrb r3, [r3] @ zero_extendqisi2 2995 04d8 9BB2 uxth r3, r3 743:user_src/soft_water_device.c **** EscPtr->SetFreqFreq = recv_buf[3]; 2996 .loc 1 743 58 2997 04da 1344 add r3, r3, r2 2998 04dc 9AB2 uxth r2, r3 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 73 743:user_src/soft_water_device.c **** EscPtr->SetFreqFreq = recv_buf[3]; 2999 .loc 1 743 35 3000 04de 3B6A ldr r3, [r7, #32] 3001 04e0 DA86 strh r2, [r3, #54] @ movhi 744:user_src/soft_water_device.c **** break; 3002 .loc 1 744 37 3003 04e2 BB68 ldr r3, [r7, #8] 3004 04e4 DA78 ldrb r2, [r3, #3] @ zero_extendqisi2 3005 04e6 3B6A ldr r3, [r7, #32] 3006 04e8 83F83820 strb r2, [r3, #56] 745:user_src/soft_water_device.c **** 3007 .loc 1 745 17 3008 04ec 41E1 b .L105 3009 .L135: 748:user_src/soft_water_device.c **** break; 3010 .loc 1 748 42 3011 04ee BB68 ldr r3, [r7, #8] 3012 04f0 1A78 ldrb r2, [r3] @ zero_extendqisi2 748:user_src/soft_water_device.c **** break; 3013 .loc 1 748 32 3014 04f2 3B6A ldr r3, [r7, #32] 3015 04f4 83F83920 strb r2, [r3, #57] 749:user_src/soft_water_device.c **** 3016 .loc 1 749 17 3017 04f8 3BE1 b .L105 3018 .L134: 752:user_src/soft_water_device.c **** break; 3019 .loc 1 752 48 3020 04fa BB68 ldr r3, [r7, #8] 3021 04fc 1A78 ldrb r2, [r3] @ zero_extendqisi2 752:user_src/soft_water_device.c **** break; 3022 .loc 1 752 38 3023 04fe 3B6A ldr r3, [r7, #32] 3024 0500 83F83A20 strb r2, [r3, #58] 753:user_src/soft_water_device.c **** 3025 .loc 1 753 17 3026 0504 35E1 b .L105 3027 .L133: 756:user_src/soft_water_device.c **** { 3028 .loc 1 756 46 3029 0506 3B7C ldrb r3, [r7, #16] @ zero_extendqisi2 3030 0508 23F07F03 bic r3, r3, #127 3031 050c DBB2 uxtb r3, r3 756:user_src/soft_water_device.c **** { 3032 .loc 1 756 20 3033 050e 002B cmp r3, #0 3034 0510 07D0 beq .L144 758:user_src/soft_water_device.c **** EscPtr->_VerBufGetS = true; 3035 .loc 1 758 42 3036 0512 3B6A ldr r3, [r7, #32] 3037 0514 0022 movs r2, #0 3038 0516 83F87F20 strb r2, [r3, #127] 759:user_src/soft_water_device.c **** } 3039 .loc 1 759 41 3040 051a 3B6A ldr r3, [r7, #32] 3041 051c 0122 movs r2, #1 3042 051e 83F88020 strb r2, [r3, #128] ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 74 3043 .L144: 762:user_src/soft_water_device.c **** { 3044 .loc 1 762 28 3045 0522 3B6A ldr r3, [r7, #32] 3046 0524 93F88030 ldrb r3, [r3, #128] @ zero_extendqisi2 762:user_src/soft_water_device.c **** { 3047 .loc 1 762 20 3048 0528 002B cmp r3, #0 3049 052a 21D0 beq .L145 762:user_src/soft_water_device.c **** { 3050 .loc 1 762 59 discriminator 1 3051 052c 3B6A ldr r3, [r7, #32] 3052 052e 93F87F30 ldrb r3, [r3, #127] @ zero_extendqisi2 3053 0532 1A46 mov r2, r3 762:user_src/soft_water_device.c **** { 3054 .loc 1 762 74 discriminator 1 3055 0534 FB79 ldrb r3, [r7, #7] @ zero_extendqisi2 3056 0536 1344 add r3, r3, r2 762:user_src/soft_water_device.c **** { 3057 .loc 1 762 80 discriminator 1 3058 0538 013B subs r3, r3, #1 762:user_src/soft_water_device.c **** { 3059 .loc 1 762 50 discriminator 1 3060 053a 432B cmp r3, #67 3061 053c 18D8 bhi .L145 764:user_src/soft_water_device.c **** 3062 .loc 1 764 52 3063 053e 3B6A ldr r3, [r7, #32] 3064 0540 93F87F30 ldrb r3, [r3, #127] @ zero_extendqisi2 764:user_src/soft_water_device.c **** 3065 .loc 1 764 29 3066 0544 3833 adds r3, r3, #56 3067 0546 3A6A ldr r2, [r7, #32] 3068 0548 1344 add r3, r3, r2 3069 054a D81C adds r0, r3, #3 764:user_src/soft_water_device.c **** 3070 .loc 1 764 83 3071 054c FB79 ldrb r3, [r7, #7] @ zero_extendqisi2 3072 054e 013B subs r3, r3, #1 764:user_src/soft_water_device.c **** 3073 .loc 1 764 21 3074 0550 1A46 mov r2, r3 3075 0552 B968 ldr r1, [r7, #8] 3076 0554 FFF7FEFF bl memcpy 766:user_src/soft_water_device.c **** } 3077 .loc 1 766 42 3078 0558 3B6A ldr r3, [r7, #32] 3079 055a 93F87F20 ldrb r2, [r3, #127] @ zero_extendqisi2 3080 055e FB79 ldrb r3, [r7, #7] 3081 0560 1344 add r3, r3, r2 3082 0562 DBB2 uxtb r3, r3 3083 0564 013B subs r3, r3, #1 3084 0566 DAB2 uxtb r2, r3 3085 0568 3B6A ldr r3, [r7, #32] 3086 056a 83F87F20 strb r2, [r3, #127] 3087 056e 07E0 b .L146 3088 .L145: ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 75 770:user_src/soft_water_device.c **** EscPtr->_VerBufGetS = false; 3089 .loc 1 770 42 3090 0570 3B6A ldr r3, [r7, #32] 3091 0572 0022 movs r2, #0 3092 0574 83F87F20 strb r2, [r3, #127] 771:user_src/soft_water_device.c **** } 3093 .loc 1 771 41 3094 0578 3B6A ldr r3, [r7, #32] 3095 057a 0022 movs r2, #0 3096 057c 83F88020 strb r2, [r3, #128] 3097 .L146: 774:user_src/soft_water_device.c **** { 3098 .loc 1 774 28 3099 0580 3B6A ldr r3, [r7, #32] 3100 0582 93F88030 ldrb r3, [r3, #128] @ zero_extendqisi2 774:user_src/soft_water_device.c **** { 3101 .loc 1 774 20 3102 0586 002B cmp r3, #0 3103 0588 00F0A580 beq .L156 774:user_src/soft_water_device.c **** { 3104 .loc 1 774 75 discriminator 1 3105 058c 3B7C ldrb r3, [r7, #16] @ zero_extendqisi2 3106 058e 03F04003 and r3, r3, #64 3107 0592 DBB2 uxtb r3, r3 774:user_src/soft_water_device.c **** { 3108 .loc 1 774 50 discriminator 1 3109 0594 002B cmp r3, #0 3110 0596 00F09E80 beq .L156 3111 .LBB8: 776:user_src/soft_water_device.c **** uint16_t crc = crcAdd( sigcrc, &EscPtr->_VerBuf[2], EscPtr->_VerBufIndex - 2 ); 3112 .loc 1 776 39 3113 059a 77A3 adr r3, .L160 3114 059c D3E90023 ldrd r2, [r3] 3115 05a0 4FF6FF70 movw r0, #65535 3116 05a4 FFF7FEFF bl crcAddSignature 3117 05a8 0346 mov r3, r0 3118 05aa FB82 strh r3, [r7, #22] @ movhi 777:user_src/soft_water_device.c **** 3119 .loc 1 777 52 3120 05ac 3B6A ldr r3, [r7, #32] 3121 05ae 03F13D01 add r1, r3, #61 777:user_src/soft_water_device.c **** 3122 .loc 1 777 79 3123 05b2 3B6A ldr r3, [r7, #32] 3124 05b4 93F87F30 ldrb r3, [r3, #127] @ zero_extendqisi2 777:user_src/soft_water_device.c **** 3125 .loc 1 777 94 3126 05b8 023B subs r3, r3, #2 777:user_src/soft_water_device.c **** 3127 .loc 1 777 36 3128 05ba 1A46 mov r2, r3 3129 05bc FB8A ldrh r3, [r7, #22] 3130 05be 1846 mov r0, r3 3131 05c0 FFF7FEFF bl crcAdd 3132 05c4 0346 mov r3, r0 3133 05c6 BB82 strh r3, [r7, #20] @ movhi 779:user_src/soft_water_device.c **** ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 76 3134 .loc 1 779 57 3135 05c8 3B6A ldr r3, [r7, #32] 3136 05ca 93F83C30 ldrb r3, [r3, #60] @ zero_extendqisi2 3137 05ce 9BB2 uxth r3, r3 779:user_src/soft_water_device.c **** 3138 .loc 1 779 61 3139 05d0 1B02 lsls r3, r3, #8 3140 05d2 9AB2 uxth r2, r3 779:user_src/soft_water_device.c **** 3141 .loc 1 779 85 3142 05d4 3B6A ldr r3, [r7, #32] 3143 05d6 93F83B30 ldrb r3, [r3, #59] @ zero_extendqisi2 3144 05da 9BB2 uxth r3, r3 779:user_src/soft_water_device.c **** 3145 .loc 1 779 30 3146 05dc 1344 add r3, r3, r2 3147 05de 7B82 strh r3, [r7, #18] @ movhi 781:user_src/soft_water_device.c **** { 3148 .loc 1 781 24 3149 05e0 BA8A ldrh r2, [r7, #20] 3150 05e2 7B8A ldrh r3, [r7, #18] 3151 05e4 9A42 cmp r2, r3 3152 05e6 76D1 bne .L156 3153 .LBB9: 783:user_src/soft_water_device.c **** 3154 .loc 1 783 33 3155 05e8 3B6A ldr r3, [r7, #32] 3156 05ea 93F83D30 ldrb r3, [r3, #61] 3157 05ee 7B74 strb r3, [r7, #17] 785:user_src/soft_water_device.c **** { 3158 .loc 1 785 25 3159 05f0 7B7C ldrb r3, [r7, #17] @ zero_extendqisi2 3160 05f2 022B cmp r3, #2 3161 05f4 58D0 beq .L148 3162 05f6 022B cmp r3, #2 3163 05f8 6FDC bgt .L157 3164 05fa 002B cmp r3, #0 3165 05fc 02D0 beq .L150 3166 05fe 012B cmp r3, #1 3167 0600 29D0 beq .L151 807:user_src/soft_water_device.c **** } 3168 .loc 1 807 33 3169 0602 6AE0 b .L157 3170 .L150: 788:user_src/soft_water_device.c **** memcpy( EscPtr->LinkSoftVer, &EscPtr->_VerBuf[3], 16 ); 3171 .loc 1 788 57 3172 0604 3B6A ldr r3, [r7, #32] 3173 0606 0122 movs r2, #1 3174 0608 83F88120 strb r2, [r3, #129] 789:user_src/soft_water_device.c **** memcpy( EscPtr->LinkHardVer, &EscPtr->_VerBuf[19], 16 ); 3175 .loc 1 789 47 3176 060c 3B6A ldr r3, [r7, #32] 3177 060e 03F18200 add r0, r3, #130 789:user_src/soft_water_device.c **** memcpy( EscPtr->LinkHardVer, &EscPtr->_VerBuf[19], 16 ); 3178 .loc 1 789 62 3179 0612 3B6A ldr r3, [r7, #32] 3180 0614 3E33 adds r3, r3, #62 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 77 789:user_src/soft_water_device.c **** memcpy( EscPtr->LinkHardVer, &EscPtr->_VerBuf[19], 16 ); 3181 .loc 1 789 33 3182 0616 1022 movs r2, #16 3183 0618 1946 mov r1, r3 3184 061a FFF7FEFF bl memcpy 790:user_src/soft_water_device.c **** memcpy( EscPtr->LinkDevVer, &EscPtr->_VerBuf[35], 16 ); 3185 .loc 1 790 47 3186 061e 3B6A ldr r3, [r7, #32] 3187 0620 03F19200 add r0, r3, #146 790:user_src/soft_water_device.c **** memcpy( EscPtr->LinkDevVer, &EscPtr->_VerBuf[35], 16 ); 3188 .loc 1 790 62 3189 0624 3B6A ldr r3, [r7, #32] 3190 0626 4E33 adds r3, r3, #78 790:user_src/soft_water_device.c **** memcpy( EscPtr->LinkDevVer, &EscPtr->_VerBuf[35], 16 ); 3191 .loc 1 790 33 3192 0628 1022 movs r2, #16 3193 062a 1946 mov r1, r3 3194 062c FFF7FEFF bl memcpy 791:user_src/soft_water_device.c **** memcpy( EscPtr->LinkSN, &EscPtr->_VerBuf[51], 8 ); 3195 .loc 1 791 47 3196 0630 3B6A ldr r3, [r7, #32] 3197 0632 03F1A200 add r0, r3, #162 791:user_src/soft_water_device.c **** memcpy( EscPtr->LinkSN, &EscPtr->_VerBuf[51], 8 ); 3198 .loc 1 791 61 3199 0636 3B6A ldr r3, [r7, #32] 3200 0638 5E33 adds r3, r3, #94 791:user_src/soft_water_device.c **** memcpy( EscPtr->LinkSN, &EscPtr->_VerBuf[51], 8 ); 3201 .loc 1 791 33 3202 063a 1022 movs r2, #16 3203 063c 1946 mov r1, r3 3204 063e FFF7FEFF bl memcpy 792:user_src/soft_water_device.c **** break; 3205 .loc 1 792 47 3206 0642 3B6A ldr r3, [r7, #32] 3207 0644 03F1B200 add r0, r3, #178 792:user_src/soft_water_device.c **** break; 3208 .loc 1 792 57 3209 0648 3B6A ldr r3, [r7, #32] 3210 064a 6E33 adds r3, r3, #110 792:user_src/soft_water_device.c **** break; 3211 .loc 1 792 33 3212 064c 0822 movs r2, #8 3213 064e 1946 mov r1, r3 3214 0650 FFF7FEFF bl memcpy 793:user_src/soft_water_device.c **** case HW_ESCINFO_OPT01: 3215 .loc 1 793 33 3216 0654 42E0 b .L147 3217 .L151: 795:user_src/soft_water_device.c **** memcpy( EscPtr->DriveSoftVer, &EscPtr->_VerBuf[3], 16 ); 3218 .loc 1 795 57 3219 0656 3B6A ldr r3, [r7, #32] 3220 0658 0122 movs r2, #1 3221 065a 83F8BA20 strb r2, [r3, #186] 796:user_src/soft_water_device.c **** memcpy( EscPtr->DriveHardVer, &EscPtr->_VerBuf[19], 16 ); 3222 .loc 1 796 47 3223 065e 3B6A ldr r3, [r7, #32] 3224 0660 03F1BB00 add r0, r3, #187 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 78 796:user_src/soft_water_device.c **** memcpy( EscPtr->DriveHardVer, &EscPtr->_VerBuf[19], 16 ); 3225 .loc 1 796 63 3226 0664 3B6A ldr r3, [r7, #32] 3227 0666 3E33 adds r3, r3, #62 796:user_src/soft_water_device.c **** memcpy( EscPtr->DriveHardVer, &EscPtr->_VerBuf[19], 16 ); 3228 .loc 1 796 33 3229 0668 1022 movs r2, #16 3230 066a 1946 mov r1, r3 3231 066c FFF7FEFF bl memcpy 797:user_src/soft_water_device.c **** memcpy( EscPtr->DriveDevVer, &EscPtr->_VerBuf[35], 16 ); 3232 .loc 1 797 47 3233 0670 3B6A ldr r3, [r7, #32] 3234 0672 03F1CB00 add r0, r3, #203 797:user_src/soft_water_device.c **** memcpy( EscPtr->DriveDevVer, &EscPtr->_VerBuf[35], 16 ); 3235 .loc 1 797 63 3236 0676 3B6A ldr r3, [r7, #32] 3237 0678 4E33 adds r3, r3, #78 797:user_src/soft_water_device.c **** memcpy( EscPtr->DriveDevVer, &EscPtr->_VerBuf[35], 16 ); 3238 .loc 1 797 33 3239 067a 1022 movs r2, #16 3240 067c 1946 mov r1, r3 3241 067e FFF7FEFF bl memcpy 798:user_src/soft_water_device.c **** memcpy( EscPtr->DriveSN, &EscPtr->_VerBuf[51], 8 ); 3242 .loc 1 798 47 3243 0682 3B6A ldr r3, [r7, #32] 3244 0684 03F1DB00 add r0, r3, #219 798:user_src/soft_water_device.c **** memcpy( EscPtr->DriveSN, &EscPtr->_VerBuf[51], 8 ); 3245 .loc 1 798 62 3246 0688 3B6A ldr r3, [r7, #32] 3247 068a 5E33 adds r3, r3, #94 798:user_src/soft_water_device.c **** memcpy( EscPtr->DriveSN, &EscPtr->_VerBuf[51], 8 ); 3248 .loc 1 798 33 3249 068c 1022 movs r2, #16 3250 068e 1946 mov r1, r3 3251 0690 FFF7FEFF bl memcpy 799:user_src/soft_water_device.c **** break; 3252 .loc 1 799 47 3253 0694 3B6A ldr r3, [r7, #32] 3254 0696 03F1EB00 add r0, r3, #235 799:user_src/soft_water_device.c **** break; 3255 .loc 1 799 58 3256 069a 3B6A ldr r3, [r7, #32] 3257 069c 6E33 adds r3, r3, #110 799:user_src/soft_water_device.c **** break; 3258 .loc 1 799 33 3259 069e 0822 movs r2, #8 3260 06a0 1946 mov r1, r3 3261 06a2 FFF7FEFF bl memcpy 800:user_src/soft_water_device.c **** case HW_ESCINFO_OPT02: 3262 .loc 1 800 33 3263 06a6 19E0 b .L147 3264 .L148: 802:user_src/soft_water_device.c **** memcpy( EscPtr->HardSN, &EscPtr->_VerBuf[3], 16 ); 3265 .loc 1 802 57 3266 06a8 3B6A ldr r3, [r7, #32] 3267 06aa 0122 movs r2, #1 3268 06ac 83F8F320 strb r2, [r3, #243] ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 79 803:user_src/soft_water_device.c **** memcpy( EscPtr->ProtocolVer, &EscPtr->_VerBuf[19], 8 ); 3269 .loc 1 803 47 3270 06b0 3B6A ldr r3, [r7, #32] 3271 06b2 03F1F400 add r0, r3, #244 803:user_src/soft_water_device.c **** memcpy( EscPtr->ProtocolVer, &EscPtr->_VerBuf[19], 8 ); 3272 .loc 1 803 57 3273 06b6 3B6A ldr r3, [r7, #32] 3274 06b8 3E33 adds r3, r3, #62 803:user_src/soft_water_device.c **** memcpy( EscPtr->ProtocolVer, &EscPtr->_VerBuf[19], 8 ); 3275 .loc 1 803 33 3276 06ba 1022 movs r2, #16 3277 06bc 1946 mov r1, r3 3278 06be FFF7FEFF bl memcpy 804:user_src/soft_water_device.c **** break; 3279 .loc 1 804 47 3280 06c2 3B6A ldr r3, [r7, #32] 3281 06c4 03F58270 add r0, r3, #260 804:user_src/soft_water_device.c **** break; 3282 .loc 1 804 62 3283 06c8 3B6A ldr r3, [r7, #32] 3284 06ca 4E33 adds r3, r3, #78 804:user_src/soft_water_device.c **** break; 3285 .loc 1 804 33 3286 06cc 0822 movs r2, #8 3287 06ce 1946 mov r1, r3 3288 06d0 FFF7FEFF bl memcpy 805:user_src/soft_water_device.c **** default: 3289 .loc 1 805 33 3290 06d4 02E0 b .L147 3291 .L156: 810:user_src/soft_water_device.c **** } 3292 .loc 1 810 21 3293 06d6 00BF nop 3294 06d8 4BE0 b .L105 3295 .L157: 807:user_src/soft_water_device.c **** } 3296 .loc 1 807 33 3297 06da 00BF nop 3298 .L147: 3299 .LBE9: 3300 .LBE8: 812:user_src/soft_water_device.c **** //设置回应ESC配置信息 3301 .loc 1 812 17 3302 06dc 49E0 b .L105 3303 .L131: 815:user_src/soft_water_device.c **** EscPtr->MajorConfRot = ( recv_buf[0] >> 7 ) & 0x01; //电机旋转方向(0: 3304 .loc 1 815 38 3305 06de 3B6A ldr r3, [r7, #32] 3306 06e0 0122 movs r2, #1 3307 06e2 83F83821 strb r2, [r3, #312] 816:user_src/soft_water_device.c **** EscPtr->MajorConfThrSrc = ( recv_buf[0] >> 6 ) & 0x01; //油门信号源(0:CAN 3308 .loc 1 816 50 3309 06e6 BB68 ldr r3, [r7, #8] 3310 06e8 1B78 ldrb r3, [r3] @ zero_extendqisi2 816:user_src/soft_water_device.c **** EscPtr->MajorConfThrSrc = ( recv_buf[0] >> 6 ) & 0x01; //油门信号源(0:CAN 3311 .loc 1 816 38 3312 06ea DB09 lsrs r3, r3, #7 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 80 3313 06ec DAB2 uxtb r2, r3 3314 06ee 3B6A ldr r3, [r7, #32] 3315 06f0 83F83921 strb r2, [r3, #313] 817:user_src/soft_water_device.c **** EscPtr->MajorConfThrCh = recv_buf[0] & 0x3F; //定的数字油门通 3316 .loc 1 817 53 3317 06f4 BB68 ldr r3, [r7, #8] 3318 06f6 1B78 ldrb r3, [r3] @ zero_extendqisi2 817:user_src/soft_water_device.c **** EscPtr->MajorConfThrCh = recv_buf[0] & 0x3F; //定的数字油门通 3319 .loc 1 817 64 3320 06f8 9B09 lsrs r3, r3, #6 3321 06fa DBB2 uxtb r3, r3 3322 06fc 03F00103 and r3, r3, #1 3323 0700 DAB2 uxtb r2, r3 817:user_src/soft_water_device.c **** EscPtr->MajorConfThrCh = recv_buf[0] & 0x3F; //定的数字油门通 3324 .loc 1 817 41 3325 0702 3B6A ldr r3, [r7, #32] 3326 0704 83F83A21 strb r2, [r3, #314] 818:user_src/soft_water_device.c **** EscPtr->MajorConfLEDBlink = ( recv_buf[1] >> 3 ) & 0x1f; //LED闪烁状态; 3327 .loc 1 818 50 3328 0708 BB68 ldr r3, [r7, #8] 3329 070a 1B78 ldrb r3, [r3] @ zero_extendqisi2 818:user_src/soft_water_device.c **** EscPtr->MajorConfLEDBlink = ( recv_buf[1] >> 3 ) & 0x1f; //LED闪烁状态; 3330 .loc 1 818 54 3331 070c 03F03F03 and r3, r3, #63 3332 0710 DAB2 uxtb r2, r3 818:user_src/soft_water_device.c **** EscPtr->MajorConfLEDBlink = ( recv_buf[1] >> 3 ) & 0x1f; //LED闪烁状态; 3333 .loc 1 818 40 3334 0712 3B6A ldr r3, [r7, #32] 3335 0714 83F83B21 strb r2, [r3, #315] 819:user_src/soft_water_device.c **** EscPtr->MajorConfLEDColor = recv_buf[1] & 0x07; //LED静态灯色RGB; 3336 .loc 1 819 55 3337 0718 BB68 ldr r3, [r7, #8] 3338 071a 0133 adds r3, r3, #1 3339 071c 1B78 ldrb r3, [r3] @ zero_extendqisi2 819:user_src/soft_water_device.c **** EscPtr->MajorConfLEDColor = recv_buf[1] & 0x07; //LED静态灯色RGB; 3340 .loc 1 819 43 3341 071e DB08 lsrs r3, r3, #3 3342 0720 DAB2 uxtb r2, r3 3343 0722 3B6A ldr r3, [r7, #32] 3344 0724 83F83C21 strb r2, [r3, #316] 820:user_src/soft_water_device.c **** EscPtr->MajorConfMSG2UPHZ = ( recv_buf[2] >> 4 ) & 0x0f; //MSG2数据帧上报速 3345 .loc 1 820 53 3346 0728 BB68 ldr r3, [r7, #8] 3347 072a 0133 adds r3, r3, #1 3348 072c 1B78 ldrb r3, [r3] @ zero_extendqisi2 820:user_src/soft_water_device.c **** EscPtr->MajorConfMSG2UPHZ = ( recv_buf[2] >> 4 ) & 0x0f; //MSG2数据帧上报速 3349 .loc 1 820 57 3350 072e 03F00703 and r3, r3, #7 3351 0732 DAB2 uxtb r2, r3 820:user_src/soft_water_device.c **** EscPtr->MajorConfMSG2UPHZ = ( recv_buf[2] >> 4 ) & 0x0f; //MSG2数据帧上报速 3352 .loc 1 820 43 3353 0734 3B6A ldr r3, [r7, #32] 3354 0736 83F83D21 strb r2, [r3, #317] 821:user_src/soft_water_device.c **** EscPtr->MajorConfMSG1UPHZ = recv_buf[2] & 0x0f; //MSG1数据帧上报速 3355 .loc 1 821 55 3356 073a BB68 ldr r3, [r7, #8] 3357 073c 0233 adds r3, r3, #2 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 81 3358 073e 1B78 ldrb r3, [r3] @ zero_extendqisi2 821:user_src/soft_water_device.c **** EscPtr->MajorConfMSG1UPHZ = recv_buf[2] & 0x0f; //MSG1数据帧上报速 3359 .loc 1 821 43 3360 0740 1B09 lsrs r3, r3, #4 3361 0742 DAB2 uxtb r2, r3 3362 0744 3B6A ldr r3, [r7, #32] 3363 0746 83F83E21 strb r2, [r3, #318] 822:user_src/soft_water_device.c **** EscPtr->MajorConfInstAngle = recv_buf[3] + ( recv_buf[4] << 8 ); //定位角度数 3364 .loc 1 822 53 3365 074a BB68 ldr r3, [r7, #8] 3366 074c 0233 adds r3, r3, #2 3367 074e 1B78 ldrb r3, [r3] @ zero_extendqisi2 822:user_src/soft_water_device.c **** EscPtr->MajorConfInstAngle = recv_buf[3] + ( recv_buf[4] << 8 ); //定位角度数 3368 .loc 1 822 57 3369 0750 03F00F03 and r3, r3, #15 3370 0754 DAB2 uxtb r2, r3 822:user_src/soft_water_device.c **** EscPtr->MajorConfInstAngle = recv_buf[3] + ( recv_buf[4] << 8 ); //定位角度数 3371 .loc 1 822 43 3372 0756 3B6A ldr r3, [r7, #32] 3373 0758 83F83F21 strb r2, [r3, #319] 823:user_src/soft_water_device.c **** break; 3374 .loc 1 823 44 3375 075c BB68 ldr r3, [r7, #8] 3376 075e DA78 ldrb r2, [r3, #3] @ zero_extendqisi2 3377 0760 3B6A ldr r3, [r7, #32] 3378 0762 83F84021 strb r2, [r3, #320] 824:user_src/soft_water_device.c **** default: 3379 .loc 1 824 17 3380 0766 04E0 b .L105 3381 .L152: 3382 .LBE7: 618:user_src/soft_water_device.c **** 3383 .loc 1 618 10 3384 0768 00BF nop 3385 076a 02E0 b .L105 3386 .L154: 3387 .LBB10: 3388 .loc 1 826 17 3389 076c 00BF nop 3390 076e 00E0 b .L105 3391 .L155: 720:user_src/soft_water_device.c **** case HW_SETID_ID: 3392 .loc 1 720 17 3393 0770 00BF nop 3394 .L105: 3395 .LBE10: 827:user_src/soft_water_device.c **** } 828:user_src/soft_water_device.c **** } 829:user_src/soft_water_device.c **** } 3396 .loc 1 829 1 3397 0772 2837 adds r7, r7, #40 3398 .LCFI49: 3399 .cfi_def_cfa_offset 8 3400 0774 BD46 mov sp, r7 3401 .LCFI50: 3402 .cfi_def_cfa_register 13 3403 @ sp needed ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 82 3404 0776 80BD pop {r7, pc} 3405 .L161: 3406 .align 3 3407 .L160: 3408 0778 9B087423 .word 594806939 3409 077c 212AFED7 .word -671208927 3410 .cfi_endproc 3411 .LFE142: 3413 .global GetEscInfoTail 3414 .section .bss.GetEscInfoTail,"aw",%nobits 3415 .align 2 3418 GetEscInfoTail: 3419 0000 00 .space 1 3420 .global GetMInfoTail 3421 .section .bss.GetMInfoTail,"aw",%nobits 3422 .align 2 3425 GetMInfoTail: 3426 0000 00 .space 1 3427 .global GetMajorConfTail 3428 .section .bss.GetMajorConfTail,"aw",%nobits 3429 .align 2 3432 GetMajorConfTail: 3433 0000 00 .space 1 3434 .global GetESCidTail 3435 .section .bss.GetESCidTail,"aw",%nobits 3436 .align 2 3439 GetESCidTail: 3440 0000 00 .space 1 3441 .section .text.HW_CanGetESCInfomation,"ax",%progbits 3442 .align 1 3443 .global HW_CanGetESCInfomation 3444 .syntax unified 3445 .thumb 3446 .thumb_func 3448 HW_CanGetESCInfomation: 3449 .LFB143: 830:user_src/soft_water_device.c **** 831:user_src/soft_water_device.c **** 832:user_src/soft_water_device.c **** 833:user_src/soft_water_device.c **** /** 834:user_src/soft_water_device.c **** * @file HW_CanGetESCInfomation 835:user_src/soft_water_device.c **** * @brief 上电获取好盈版本配置信息 836:user_src/soft_water_device.c **** * @param 837:user_src/soft_water_device.c **** * @details 838:user_src/soft_water_device.c **** * @author Zhang Sir 839:user_src/soft_water_device.c **** **/ 840:user_src/soft_water_device.c **** HWTail GetEscInfoTail = {0}; 841:user_src/soft_water_device.c **** HWTail GetMInfoTail = {0}; 842:user_src/soft_water_device.c **** HWTail GetMajorConfTail = {0}; 843:user_src/soft_water_device.c **** HWTail GetESCidTail = {0}; 844:user_src/soft_water_device.c **** void HW_CanGetESCInfomation( void ) 845:user_src/soft_water_device.c **** { 3450 .loc 1 845 1 3451 .cfi_startproc 3452 @ args = 0, pretend = 0, frame = 0 3453 @ frame_needed = 1, uses_anonymous_args = 0 3454 @ link register save eliminated. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 83 3455 0000 80B4 push {r7} 3456 .LCFI51: 3457 .cfi_def_cfa_offset 4 3458 .cfi_offset 7, -4 3459 0002 00AF add r7, sp, #0 3460 .LCFI52: 3461 .cfi_def_cfa_register 7 846:user_src/soft_water_device.c **** // uint8_t send_can_buf[8] = {0}; 847:user_src/soft_water_device.c **** // uint16_t desnodeID = 0; 848:user_src/soft_water_device.c **** // uint32_t canID = 0; 849:user_src/soft_water_device.c **** 850:user_src/soft_water_device.c **** // if ( Dev.Pump_Link.connect_status == COMP_NORMAL && Dev.Pump.facid == FAC_HW_ESC ) 851:user_src/soft_water_device.c **** // { 852:user_src/soft_water_device.c **** // 获取版本信息 853:user_src/soft_water_device.c **** // if (EscMsg[desnodeID].GetESCInfoOpt00 != true ) 854:user_src/soft_water_device.c **** // { 855:user_src/soft_water_device.c **** // canID = ( ( HW_PRI_MEDIUM << HW_CANID_PRI_POS ) & HW_CANID_PRI_MASK ) | 856:user_src/soft_water_device.c **** // ( ( HW_ESCINFO_ID << HW_CANID_SERID_POS ) & HW_CANID_SERID_MASK ) | 857:user_src/soft_water_device.c **** // ( ( HW_TYPE_REQ << HW_CANID_RNR_POS ) & HW_CANID_RNR_MASK ) | 858:user_src/soft_water_device.c **** // ( ( desnodeID << HW_CANID_DESNODE_POS )& HW_CANID_DESNODE_MASK ) | 859:user_src/soft_water_device.c **** // ( ( HW_TYPE_SER << HW_CANID_SNM_POS ) & HW_CANID_SNM_MASK ) | 860:user_src/soft_water_device.c **** // ( ( HW_NODE_BDC << HW_CANID_SRCNODE_POS ) & HW_CANID_SRCNODE_MASK ); 861:user_src/soft_water_device.c **** 862:user_src/soft_water_device.c **** // send_can_buf[0] = HW_ESCINFO_OPT00; 863:user_src/soft_water_device.c **** 864:user_src/soft_water_device.c **** // GetEscInfoTail.HWTailBit.start = 1; 865:user_src/soft_water_device.c **** // GetEscInfoTail.HWTailBit.end = 1; 866:user_src/soft_water_device.c **** // GetEscInfoTail.HWTailBit.toggle = 0; 867:user_src/soft_water_device.c **** // send_can_buf[1] = GetEscInfoTail.HWTailByte; 868:user_src/soft_water_device.c **** 869:user_src/soft_water_device.c **** // can_send_msg_normal(send_can_buf,2,canID); 870:user_src/soft_water_device.c **** 871:user_src/soft_water_device.c **** // GetEscInfoTail.HWTailBit.tranid++; 872:user_src/soft_water_device.c **** // } 873:user_src/soft_water_device.c **** // else if ( EscMsg[desnodeID].GetESCInfoOpt01 != true ) 874:user_src/soft_water_device.c **** // { 875:user_src/soft_water_device.c **** // canID = ( ( HW_PRI_MEDIUM << HW_CANID_PRI_POS ) & HW_CANID_PRI_MASK ) | 876:user_src/soft_water_device.c **** // ( ( HW_ESCINFO_ID << HW_CANID_SERID_POS ) & HW_CANID_SERID_MASK ) | 877:user_src/soft_water_device.c **** // ( ( HW_TYPE_REQ << HW_CANID_RNR_POS ) & HW_CANID_RNR_MASK ) | 878:user_src/soft_water_device.c **** // ( ( desnodeID << HW_CANID_DESNODE_POS )& HW_CANID_DESNODE_MASK ) | 879:user_src/soft_water_device.c **** // ( ( HW_TYPE_SER << HW_CANID_SNM_POS ) & HW_CANID_SNM_MASK ) | 880:user_src/soft_water_device.c **** // ( ( HW_NODE_BDC << HW_CANID_SRCNODE_POS ) & HW_CANID_SRCNODE_MASK ); 881:user_src/soft_water_device.c **** 882:user_src/soft_water_device.c **** // send_can_buf[0] = HW_ESCINFO_OPT01; 883:user_src/soft_water_device.c **** 884:user_src/soft_water_device.c **** // GetEscInfoTail.HWTailBit.start = 1; 885:user_src/soft_water_device.c **** // GetEscInfoTail.HWTailBit.end = 1; 886:user_src/soft_water_device.c **** // GetEscInfoTail.HWTailBit.toggle = 0; 887:user_src/soft_water_device.c **** // send_can_buf[1] = GetEscInfoTail.HWTailByte; 888:user_src/soft_water_device.c **** 889:user_src/soft_water_device.c **** // can_send_msg_normal(send_can_buf,2,canID); 890:user_src/soft_water_device.c **** 891:user_src/soft_water_device.c **** // GetEscInfoTail.HWTailBit.tranid++; 892:user_src/soft_water_device.c **** // } 893:user_src/soft_water_device.c **** // else if (EscMsg[desnodeID].GetESCInfoOpt02 != true ) 894:user_src/soft_water_device.c **** // { 895:user_src/soft_water_device.c **** // canID = ( ( HW_PRI_MEDIUM << HW_CANID_PRI_POS ) & HW_CANID_PRI_MASK ) | ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 84 896:user_src/soft_water_device.c **** // ( ( HW_ESCINFO_ID << HW_CANID_SERID_POS ) & HW_CANID_SERID_MASK ) | 897:user_src/soft_water_device.c **** // ( ( HW_TYPE_REQ << HW_CANID_RNR_POS ) & HW_CANID_RNR_MASK ) | 898:user_src/soft_water_device.c **** // ( ( desnodeID << HW_CANID_DESNODE_POS )& HW_CANID_DESNODE_MASK ) | 899:user_src/soft_water_device.c **** // ( ( HW_TYPE_SER << HW_CANID_SNM_POS ) & HW_CANID_SNM_MASK ) | 900:user_src/soft_water_device.c **** // ( ( HW_NODE_BDC << HW_CANID_SRCNODE_POS ) & HW_CANID_SRCNODE_MASK ); 901:user_src/soft_water_device.c **** 902:user_src/soft_water_device.c **** // send_can_buf[0] = HW_ESCINFO_OPT02; 903:user_src/soft_water_device.c **** 904:user_src/soft_water_device.c **** // GetEscInfoTail.HWTailBit.start = 1; 905:user_src/soft_water_device.c **** // GetEscInfoTail.HWTailBit.end = 1; 906:user_src/soft_water_device.c **** // GetEscInfoTail.HWTailBit.toggle = 0; 907:user_src/soft_water_device.c **** // send_can_buf[1] = GetEscInfoTail.HWTailByte; 908:user_src/soft_water_device.c **** 909:user_src/soft_water_device.c **** // can_send_msg_normal(send_can_buf,2,canID); 910:user_src/soft_water_device.c **** 911:user_src/soft_water_device.c **** // GetEscInfoTail.HWTailBit.tranid++; 912:user_src/soft_water_device.c **** // } 913:user_src/soft_water_device.c **** // else if ( EscMsg[desnodeID].GetMajorConf != true ) 914:user_src/soft_water_device.c **** // { 915:user_src/soft_water_device.c **** // canID = ( ( HW_PRI_MEDIUM << HW_CANID_PRI_POS ) & HW_CANID_PRI_MASK ) | 916:user_src/soft_water_device.c **** // ( ( HW_GETMAJORCONF_ID << HW_CANID_SERID_POS ) & HW_CANID_SERID_MASK ) | 917:user_src/soft_water_device.c **** // ( ( HW_TYPE_REQ << HW_CANID_RNR_POS ) & HW_CANID_RNR_MASK ) | 918:user_src/soft_water_device.c **** // ( ( desnodeID << HW_CANID_DESNODE_POS )& HW_CANID_DESNODE_MASK ) | 919:user_src/soft_water_device.c **** // ( ( HW_TYPE_SER << HW_CANID_SNM_POS ) & HW_CANID_SNM_MASK ) | 920:user_src/soft_water_device.c **** // ( ( HW_NODE_BDC << HW_CANID_SRCNODE_POS ) & HW_CANID_SRCNODE_MASK ); 921:user_src/soft_water_device.c **** 922:user_src/soft_water_device.c **** // send_can_buf[0] = HW_MAJORCONF_OPT0; 923:user_src/soft_water_device.c **** 924:user_src/soft_water_device.c **** // GetMajorConfTail.HWTailBit.start = 1; 925:user_src/soft_water_device.c **** // GetMajorConfTail.HWTailBit.end = 1; 926:user_src/soft_water_device.c **** // GetMajorConfTail.HWTailBit.toggle = 0; 927:user_src/soft_water_device.c **** // send_can_buf[1] = GetMajorConfTail.HWTailByte; 928:user_src/soft_water_device.c **** 929:user_src/soft_water_device.c **** // can_send_msg_normal(send_can_buf,2,canID); 930:user_src/soft_water_device.c **** 931:user_src/soft_water_device.c **** // GetMajorConfTail.HWTailBit.tranid++; 932:user_src/soft_water_device.c **** 933:user_src/soft_water_device.c **** // } 934:user_src/soft_water_device.c **** 935:user_src/soft_water_device.c **** // 获取的反馈ID和VK电池有冲突 936:user_src/soft_water_device.c **** // if (EscMsg[desnodeID].GetESCid != true ) 937:user_src/soft_water_device.c **** // { 938:user_src/soft_water_device.c **** // canID = ( ( HW_PRI_MEDIUM << HW_CANID_PRI_POS ) & HW_CANID_PRI_MASK ) | 939:user_src/soft_water_device.c **** // ( ( HW_FRAME_MSG_GET_ESC_ID << HW_CANID_MSGID_POS ) & HW_CANID_MSGID_MAS 940:user_src/soft_water_device.c **** // ( ( HW_TYPE_MSG << HW_CANID_SNM_POS ) & HW_CANID_SNM_MASK ) | 941:user_src/soft_water_device.c **** // ( ( HW_NODE_BDC << HW_CANID_SRCNODE_POS )& HW_CANID_SRCNODE_MASK ); 942:user_src/soft_water_device.c **** 943:user_src/soft_water_device.c **** // send_can_buf[0] = HW_GETESCID_OPT0; 944:user_src/soft_water_device.c **** 945:user_src/soft_water_device.c **** // GetESCidTail.HWTailBit.start = 1; 946:user_src/soft_water_device.c **** // GetESCidTail.HWTailBit.end = 1; 947:user_src/soft_water_device.c **** // GetESCidTail.HWTailBit.toggle = 0; 948:user_src/soft_water_device.c **** // send_can_buf[1] = GetESCidTail.HWTailByte; 949:user_src/soft_water_device.c **** 950:user_src/soft_water_device.c **** // can_send_msg_normal(send_can_buf,2,canID); 951:user_src/soft_water_device.c **** 952:user_src/soft_water_device.c **** // GetESCidTail.HWTailBit.tranid++; ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 85 953:user_src/soft_water_device.c **** // } 954:user_src/soft_water_device.c **** // } 955:user_src/soft_water_device.c **** } 3462 .loc 1 955 1 3463 0004 00BF nop 3464 0006 BD46 mov sp, r7 3465 .LCFI53: 3466 .cfi_def_cfa_register 13 3467 @ sp needed 3468 0008 5DF8047B ldr r7, [sp], #4 3469 .LCFI54: 3470 .cfi_restore 7 3471 .cfi_def_cfa_offset 0 3472 000c 7047 bx lr 3473 .cfi_endproc 3474 .LFE143: 3476 .global send_thr_buf 3477 .section .bss.send_thr_buf,"aw",%nobits 3478 .align 2 3481 send_thr_buf: 3482 0000 00000000 .space 8 3482 00000000 3483 .section .text.esc_throttle_switch,"ax",%progbits 3484 .align 1 3485 .global esc_throttle_switch 3486 .syntax unified 3487 .thumb 3488 .thumb_func 3490 esc_throttle_switch: 3491 .LFB144: 956:user_src/soft_water_device.c **** 957:user_src/soft_water_device.c **** 958:user_src/soft_water_device.c **** 959:user_src/soft_water_device.c **** /** 960:user_src/soft_water_device.c **** * @file esc_throttle_switch 961:user_src/soft_water_device.c **** * @brief 将PWM转换成HW油门 962:user_src/soft_water_device.c **** * @param 963:user_src/soft_water_device.c **** * @details 964:user_src/soft_water_device.c **** * @author Zhang Sir 965:user_src/soft_water_device.c **** **/ 966:user_src/soft_water_device.c **** uint8_t send_thr_buf[8] = {0}; 967:user_src/soft_water_device.c **** void esc_throttle_switch( int16_t *buf) 968:user_src/soft_water_device.c **** { 3492 .loc 1 968 1 3493 .cfi_startproc 3494 @ args = 0, pretend = 0, frame = 48 3495 @ frame_needed = 1, uses_anonymous_args = 0 3496 0000 80B5 push {r7, lr} 3497 .LCFI55: 3498 .cfi_def_cfa_offset 8 3499 .cfi_offset 7, -8 3500 .cfi_offset 14, -4 3501 0002 8CB0 sub sp, sp, #48 3502 .LCFI56: 3503 .cfi_def_cfa_offset 56 3504 0004 00AF add r7, sp, #0 3505 .LCFI57: ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 86 3506 .cfi_def_cfa_register 7 3507 0006 7860 str r0, [r7, #4] 969:user_src/soft_water_device.c **** uint8_t temp_swich_buf[16] = {0}; 3508 .loc 1 969 13 3509 0008 0023 movs r3, #0 3510 000a FB61 str r3, [r7, #28] 3511 000c 07F12003 add r3, r7, #32 3512 0010 0022 movs r2, #0 3513 0012 1A60 str r2, [r3] 3514 0014 5A60 str r2, [r3, #4] 3515 0016 9A60 str r2, [r3, #8] 970:user_src/soft_water_device.c **** int16_t escbuf[8] = {0}; 3516 .loc 1 970 13 3517 0018 07F10C03 add r3, r7, #12 3518 001c 0022 movs r2, #0 3519 001e 1A60 str r2, [r3] 3520 0020 5A60 str r2, [r3, #4] 3521 0022 9A60 str r2, [r3, #8] 3522 0024 DA60 str r2, [r3, #12] 3523 .LBB11: 971:user_src/soft_water_device.c **** 972:user_src/soft_water_device.c **** 973:user_src/soft_water_device.c **** for ( short i = 0; i < 4; i++ ) 3524 .loc 1 973 17 3525 0026 0023 movs r3, #0 3526 0028 FB85 strh r3, [r7, #46] @ movhi 3527 .loc 1 973 5 3528 002a 30E0 b .L164 3529 .L165: 974:user_src/soft_water_device.c **** { 975:user_src/soft_water_device.c **** escbuf[i] = math_cons_i16( ( buf[i] - 1050 ), 0, 900 ) * 8191.0f / 900; 3530 .loc 1 975 41 discriminator 3 3531 002c B7F92E30 ldrsh r3, [r7, #46] 3532 0030 5B00 lsls r3, r3, #1 3533 0032 7A68 ldr r2, [r7, #4] 3534 0034 1344 add r3, r3, r2 3535 0036 B3F90030 ldrsh r3, [r3] 3536 003a 9BB2 uxth r3, r3 3537 .loc 1 975 45 discriminator 3 3538 003c A3F21A43 subw r3, r3, #1050 3539 0040 9BB2 uxth r3, r3 3540 .loc 1 975 21 discriminator 3 3541 0042 1BB2 sxth r3, r3 3542 0044 4FF46172 mov r2, #900 3543 0048 0021 movs r1, #0 3544 004a 1846 mov r0, r3 3545 004c FFF7FEFF bl math_cons_i16 3546 0050 0346 mov r3, r0 3547 0052 07EE903A vmov s15, r3 @ int 3548 .loc 1 975 64 discriminator 3 3549 0056 F8EEE77A vcvt.f32.s32 s15, s15 3550 005a 9FED417A vldr.32 s14, .L166 3551 005e 27EE877A vmul.f32 s14, s15, s14 3552 .loc 1 975 74 discriminator 3 3553 0062 DFED406A vldr.32 s13, .L166+4 3554 0066 C7EE267A vdiv.f32 s15, s14, s13 3555 .loc 1 975 15 discriminator 3 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 87 3556 006a B7F92E30 ldrsh r3, [r7, #46] 3557 .loc 1 975 19 discriminator 3 3558 006e FDEEE77A vcvt.s32.f32 s15, s15 3559 0072 17EE902A vmov r2, s15 @ int 3560 0076 12B2 sxth r2, r2 3561 0078 5B00 lsls r3, r3, #1 3562 007a 3033 adds r3, r3, #48 3563 007c 3B44 add r3, r3, r7 3564 007e 23F8242C strh r2, [r3, #-36] @ movhi 973:user_src/soft_water_device.c **** { 3565 .loc 1 973 32 discriminator 3 3566 0082 B7F92E30 ldrsh r3, [r7, #46] 3567 0086 9BB2 uxth r3, r3 3568 0088 0133 adds r3, r3, #1 3569 008a 9BB2 uxth r3, r3 3570 008c FB85 strh r3, [r7, #46] @ movhi 3571 .L164: 973:user_src/soft_water_device.c **** { 3572 .loc 1 973 5 discriminator 1 3573 008e B7F92E30 ldrsh r3, [r7, #46] 3574 0092 032B cmp r3, #3 3575 0094 CADD ble .L165 3576 .LBE11: 976:user_src/soft_water_device.c **** } 977:user_src/soft_water_device.c **** 978:user_src/soft_water_device.c **** memcpy( temp_swich_buf, escbuf, 8 ); 3577 .loc 1 978 5 3578 0096 07F10C01 add r1, r7, #12 3579 009a 07F11C03 add r3, r7, #28 3580 009e 0822 movs r2, #8 3581 00a0 1846 mov r0, r3 3582 00a2 FFF7FEFF bl memcpy 979:user_src/soft_water_device.c **** send_thr_buf[0] = temp_swich_buf[0]; 3583 .loc 1 979 37 3584 00a6 3A7F ldrb r2, [r7, #28] @ zero_extendqisi2 3585 .loc 1 979 21 3586 00a8 2F4B ldr r3, .L166+8 3587 00aa 1A70 strb r2, [r3] 980:user_src/soft_water_device.c **** send_thr_buf[1] = ( temp_swich_buf[1] << 2 ) | ( ( temp_swich_buf[2] >> 6 ) & 0x03 ); 3588 .loc 1 980 39 3589 00ac 7B7F ldrb r3, [r7, #29] @ zero_extendqisi2 3590 .loc 1 980 43 3591 00ae 9B00 lsls r3, r3, #2 3592 .loc 1 980 50 3593 00b0 5AB2 sxtb r2, r3 3594 .loc 1 980 70 3595 00b2 BB7F ldrb r3, [r7, #30] @ zero_extendqisi2 3596 .loc 1 980 50 3597 00b4 9B09 lsrs r3, r3, #6 3598 00b6 DBB2 uxtb r3, r3 3599 00b8 5BB2 sxtb r3, r3 3600 00ba 1343 orrs r3, r3, r2 3601 00bc 5BB2 sxtb r3, r3 3602 00be DAB2 uxtb r2, r3 3603 .loc 1 980 21 3604 00c0 294B ldr r3, .L166+8 3605 00c2 5A70 strb r2, [r3, #1] ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 88 981:user_src/soft_water_device.c **** send_thr_buf[2] = ( temp_swich_buf[2] << 2 ) | ( ( temp_swich_buf[3] >> 4 ) & 0x03 ); 3606 .loc 1 981 39 3607 00c4 BB7F ldrb r3, [r7, #30] @ zero_extendqisi2 3608 .loc 1 981 43 3609 00c6 9B00 lsls r3, r3, #2 3610 .loc 1 981 50 3611 00c8 5AB2 sxtb r2, r3 3612 .loc 1 981 70 3613 00ca FB7F ldrb r3, [r7, #31] @ zero_extendqisi2 3614 .loc 1 981 81 3615 00cc 1B09 lsrs r3, r3, #4 3616 00ce DBB2 uxtb r3, r3 3617 00d0 5BB2 sxtb r3, r3 3618 00d2 03F00303 and r3, r3, #3 3619 00d6 5BB2 sxtb r3, r3 3620 .loc 1 981 50 3621 00d8 1343 orrs r3, r3, r2 3622 00da 5BB2 sxtb r3, r3 3623 00dc DAB2 uxtb r2, r3 3624 .loc 1 981 21 3625 00de 224B ldr r3, .L166+8 3626 00e0 9A70 strb r2, [r3, #2] 982:user_src/soft_water_device.c **** send_thr_buf[3] = ( temp_swich_buf[3] << 4 ) | ( ( temp_swich_buf[4] >> 4 ) & 0x0f ); 3627 .loc 1 982 39 3628 00e2 FB7F ldrb r3, [r7, #31] @ zero_extendqisi2 3629 .loc 1 982 43 3630 00e4 1B01 lsls r3, r3, #4 3631 .loc 1 982 50 3632 00e6 5AB2 sxtb r2, r3 3633 .loc 1 982 70 3634 00e8 97F82030 ldrb r3, [r7, #32] @ zero_extendqisi2 3635 .loc 1 982 50 3636 00ec 1B09 lsrs r3, r3, #4 3637 00ee DBB2 uxtb r3, r3 3638 00f0 5BB2 sxtb r3, r3 3639 00f2 1343 orrs r3, r3, r2 3640 00f4 5BB2 sxtb r3, r3 3641 00f6 DAB2 uxtb r2, r3 3642 .loc 1 982 21 3643 00f8 1B4B ldr r3, .L166+8 3644 00fa DA70 strb r2, [r3, #3] 983:user_src/soft_water_device.c **** send_thr_buf[4] = ( temp_swich_buf[4] << 4 ) | ( ( temp_swich_buf[5] >> 2 ) & 0x0f ); 3645 .loc 1 983 39 3646 00fc 97F82030 ldrb r3, [r7, #32] @ zero_extendqisi2 3647 .loc 1 983 43 3648 0100 1B01 lsls r3, r3, #4 3649 .loc 1 983 50 3650 0102 5AB2 sxtb r2, r3 3651 .loc 1 983 70 3652 0104 97F82130 ldrb r3, [r7, #33] @ zero_extendqisi2 3653 .loc 1 983 81 3654 0108 9B08 lsrs r3, r3, #2 3655 010a DBB2 uxtb r3, r3 3656 010c 5BB2 sxtb r3, r3 3657 010e 03F00F03 and r3, r3, #15 3658 0112 5BB2 sxtb r3, r3 3659 .loc 1 983 50 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 89 3660 0114 1343 orrs r3, r3, r2 3661 0116 5BB2 sxtb r3, r3 3662 0118 DAB2 uxtb r2, r3 3663 .loc 1 983 21 3664 011a 134B ldr r3, .L166+8 3665 011c 1A71 strb r2, [r3, #4] 984:user_src/soft_water_device.c **** send_thr_buf[5] = ( temp_swich_buf[5] << 6 ) | ( ( temp_swich_buf[6] >> 2 ) & 0x3f ); 3666 .loc 1 984 39 3667 011e 97F82130 ldrb r3, [r7, #33] @ zero_extendqisi2 3668 .loc 1 984 43 3669 0122 9B01 lsls r3, r3, #6 3670 .loc 1 984 50 3671 0124 5AB2 sxtb r2, r3 3672 .loc 1 984 70 3673 0126 97F82230 ldrb r3, [r7, #34] @ zero_extendqisi2 3674 .loc 1 984 50 3675 012a 9B08 lsrs r3, r3, #2 3676 012c DBB2 uxtb r3, r3 3677 012e 5BB2 sxtb r3, r3 3678 0130 1343 orrs r3, r3, r2 3679 0132 5BB2 sxtb r3, r3 3680 0134 DAB2 uxtb r2, r3 3681 .loc 1 984 21 3682 0136 0C4B ldr r3, .L166+8 3683 0138 5A71 strb r2, [r3, #5] 985:user_src/soft_water_device.c **** send_thr_buf[6] = ( temp_swich_buf[6] << 6 ) | ( temp_swich_buf[7] & 0x3f ); 3684 .loc 1 985 39 3685 013a 97F82230 ldrb r3, [r7, #34] @ zero_extendqisi2 3686 .loc 1 985 43 3687 013e 9B01 lsls r3, r3, #6 3688 .loc 1 985 50 3689 0140 5AB2 sxtb r2, r3 3690 .loc 1 985 68 3691 0142 97F82330 ldrb r3, [r7, #35] @ zero_extendqisi2 3692 0146 5BB2 sxtb r3, r3 3693 .loc 1 985 72 3694 0148 03F03F03 and r3, r3, #63 3695 014c 5BB2 sxtb r3, r3 3696 .loc 1 985 50 3697 014e 1343 orrs r3, r3, r2 3698 0150 5BB2 sxtb r3, r3 3699 0152 DAB2 uxtb r2, r3 3700 .loc 1 985 21 3701 0154 044B ldr r3, .L166+8 3702 0156 9A71 strb r2, [r3, #6] 986:user_src/soft_water_device.c **** 987:user_src/soft_water_device.c **** } 3703 .loc 1 987 1 3704 0158 00BF nop 3705 015a 3037 adds r7, r7, #48 3706 .LCFI58: 3707 .cfi_def_cfa_offset 8 3708 015c BD46 mov sp, r7 3709 .LCFI59: 3710 .cfi_def_cfa_register 13 3711 @ sp needed 3712 015e 80BD pop {r7, pc} ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 90 3713 .L167: 3714 .align 2 3715 .L166: 3716 0160 00F8FF45 .word 1174403072 3717 0164 00006144 .word 1147207680 3718 0168 00000000 .word send_thr_buf 3719 .cfi_endproc 3720 .LFE144: 3722 .section .text.can_sendmsg_esc,"ax",%progbits 3723 .align 1 3724 .global can_sendmsg_esc 3725 .syntax unified 3726 .thumb 3727 .thumb_func 3729 can_sendmsg_esc: 3730 .LFB145: 988:user_src/soft_water_device.c **** 989:user_src/soft_water_device.c **** 990:user_src/soft_water_device.c **** /** 991:user_src/soft_water_device.c **** * @file can_sendmsg_esc 992:user_src/soft_water_device.c **** * @brief can发送HW 993:user_src/soft_water_device.c **** * @param 994:user_src/soft_water_device.c **** * @details 995:user_src/soft_water_device.c **** * @author Zhang Sir 996:user_src/soft_water_device.c **** **/ 997:user_src/soft_water_device.c **** void can_sendmsg_esc(void) 998:user_src/soft_water_device.c **** { 3731 .loc 1 998 1 3732 .cfi_startproc 3733 @ args = 0, pretend = 0, frame = 16 3734 @ frame_needed = 1, uses_anonymous_args = 0 3735 0000 80B5 push {r7, lr} 3736 .LCFI60: 3737 .cfi_def_cfa_offset 8 3738 .cfi_offset 7, -8 3739 .cfi_offset 14, -4 3740 0002 84B0 sub sp, sp, #16 3741 .LCFI61: 3742 .cfi_def_cfa_offset 24 3743 0004 00AF add r7, sp, #0 3744 .LCFI62: 3745 .cfi_def_cfa_register 7 999:user_src/soft_water_device.c **** int16_t pwm_buf[4] = {0}; 3746 .loc 1 999 13 3747 0006 3B1D adds r3, r7, #4 3748 0008 0022 movs r2, #0 3749 000a 1A60 str r2, [r3] 3750 000c 5A60 str r2, [r3, #4] 1000:user_src/soft_water_device.c **** 1001:user_src/soft_water_device.c **** int canID = ( ( 0x00 << HW_CANID_PRI_POS ) & HW_CANID_PRI_MASK ) | 3751 .loc 1 1001 9 3752 000e 1F4B ldr r3, .L169 3753 0010 FB60 str r3, [r7, #12] 1002:user_src/soft_water_device.c **** ( ( HW_RAWCOMMAND_ID << HW_CANID_MSGID_POS ) & HW_CANID_MSGID_MASK ) | 1003:user_src/soft_water_device.c **** ( ( HW_TYPE_MSG << HW_CANID_SNM_POS ) & HW_CANID_SNM_MASK ) | 1004:user_src/soft_water_device.c **** ( ( HW_NODE_BDC << HW_CANID_SRCNODE_POS )& HW_CANID_SRCNODE_MASK ); 1005:user_src/soft_water_device.c **** ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 91 1006:user_src/soft_water_device.c **** 1007:user_src/soft_water_device.c **** pwm_buf[0] = pmu_pin.pump1; 3754 .loc 1 1007 25 3755 0012 1F4B ldr r3, .L169+4 3756 0014 B3F90030 ldrsh r3, [r3] @ unaligned 3757 0018 1BB2 sxth r3, r3 3758 .loc 1 1007 16 3759 001a BB80 strh r3, [r7, #4] @ movhi 1008:user_src/soft_water_device.c **** pwm_buf[1] = pmu_pin.pump2; 3760 .loc 1 1008 25 3761 001c 1C4B ldr r3, .L169+4 3762 001e B3F90230 ldrsh r3, [r3, #2] @ unaligned 3763 0022 1BB2 sxth r3, r3 3764 .loc 1 1008 16 3765 0024 FB80 strh r3, [r7, #6] @ movhi 1009:user_src/soft_water_device.c **** pwm_buf[2] = 0; 3766 .loc 1 1009 16 3767 0026 0023 movs r3, #0 3768 0028 3B81 strh r3, [r7, #8] @ movhi 1010:user_src/soft_water_device.c **** pwm_buf[3] = 0; 3769 .loc 1 1010 16 3770 002a 0023 movs r3, #0 3771 002c 7B81 strh r3, [r7, #10] @ movhi 1011:user_src/soft_water_device.c **** esc_throttle_switch(pwm_buf); 3772 .loc 1 1011 5 3773 002e 3B1D adds r3, r7, #4 3774 0030 1846 mov r0, r3 3775 0032 FFF7FEFF bl esc_throttle_switch 1012:user_src/soft_water_device.c **** 1013:user_src/soft_water_device.c **** 1014:user_src/soft_water_device.c **** rawcmdTail.HWTailBit.start = 1; 3776 .loc 1 1014 32 3777 0036 174A ldr r2, .L169+8 3778 0038 1378 ldrb r3, [r2] 3779 003a 43F08003 orr r3, r3, #128 3780 003e 1370 strb r3, [r2] 1015:user_src/soft_water_device.c **** rawcmdTail.HWTailBit.end = 1; 3781 .loc 1 1015 30 3782 0040 144A ldr r2, .L169+8 3783 0042 1378 ldrb r3, [r2] 3784 0044 43F04003 orr r3, r3, #64 3785 0048 1370 strb r3, [r2] 1016:user_src/soft_water_device.c **** rawcmdTail.HWTailBit.toggle = 0; 3786 .loc 1 1016 33 3787 004a 124A ldr r2, .L169+8 3788 004c 1378 ldrb r3, [r2] 3789 004e 6FF34513 bfc r3, #5, #1 3790 0052 1370 strb r3, [r2] 1017:user_src/soft_water_device.c **** send_thr_buf[7] = rawcmdTail.HWTailByte; 3791 .loc 1 1017 33 3792 0054 0F4B ldr r3, .L169+8 3793 0056 1A78 ldrb r2, [r3] @ zero_extendqisi2 3794 .loc 1 1017 21 3795 0058 0F4B ldr r3, .L169+12 3796 005a DA71 strb r2, [r3, #7] 1018:user_src/soft_water_device.c **** 1019:user_src/soft_water_device.c **** can_send_msg_normal(send_thr_buf,8,canID); ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 92 3797 .loc 1 1019 5 3798 005c FB68 ldr r3, [r7, #12] 3799 005e 1A46 mov r2, r3 3800 0060 0821 movs r1, #8 3801 0062 0D48 ldr r0, .L169+12 3802 0064 FFF7FEFF bl can_send_msg_normal 1020:user_src/soft_water_device.c **** 1021:user_src/soft_water_device.c **** rawcmdTail.HWTailBit.tranid++; 3803 .loc 1 1021 25 3804 0068 0A4B ldr r3, .L169+8 3805 006a 1B78 ldrb r3, [r3] 3806 006c C3F30403 ubfx r3, r3, #0, #5 3807 0070 DBB2 uxtb r3, r3 3808 .loc 1 1021 32 3809 0072 0133 adds r3, r3, #1 3810 0074 03F01F03 and r3, r3, #31 3811 0078 D9B2 uxtb r1, r3 3812 007a 064A ldr r2, .L169+8 3813 007c 1378 ldrb r3, [r2] 3814 007e 61F30403 bfi r3, r1, #0, #5 3815 0082 1370 strb r3, [r2] 1022:user_src/soft_water_device.c **** 1023:user_src/soft_water_device.c **** } 3816 .loc 1 1023 1 3817 0084 00BF nop 3818 0086 1037 adds r7, r7, #16 3819 .LCFI63: 3820 .cfi_def_cfa_offset 8 3821 0088 BD46 mov sp, r7 3822 .LCFI64: 3823 .cfi_def_cfa_register 13 3824 @ sp needed 3825 008a 80BD pop {r7, pc} 3826 .L170: 3827 .align 2 3828 .L169: 3829 008c 10844E00 .word 5145616 3830 0090 00000000 .word pmu_pin 3831 0094 00000000 .word rawcmdTail 3832 0098 00000000 .word send_thr_buf 3833 .cfi_endproc 3834 .LFE145: 3836 .section .text.Hobbywing_esc_func,"ax",%progbits 3837 .align 1 3838 .global Hobbywing_esc_func 3839 .syntax unified 3840 .thumb 3841 .thumb_func 3843 Hobbywing_esc_func: 3844 .LFB146: 1024:user_src/soft_water_device.c **** 1025:user_src/soft_water_device.c **** void Hobbywing_esc_func(void) 1026:user_src/soft_water_device.c **** { 3845 .loc 1 1026 1 3846 .cfi_startproc 3847 @ args = 0, pretend = 0, frame = 0 3848 @ frame_needed = 1, uses_anonymous_args = 0 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 93 3849 0000 80B5 push {r7, lr} 3850 .LCFI65: 3851 .cfi_def_cfa_offset 8 3852 .cfi_offset 7, -8 3853 .cfi_offset 14, -4 3854 0002 00AF add r7, sp, #0 3855 .LCFI66: 3856 .cfi_def_cfa_register 7 1027:user_src/soft_water_device.c **** static uint32_t time_1hz = 0; 1028:user_src/soft_water_device.c **** if((Dev.L_pump1_Link.connect_status == COMP_NORMAL && Dev.L_pump1.facid== FAC_HW_ESC) || 3857 .loc 1 1028 25 3858 0004 154B ldr r3, .L177 3859 0006 93F81432 ldrb r3, [r3, #532] @ zero_extendqisi2 3860 .loc 1 1028 7 3861 000a 012B cmp r3, #1 3862 000c 04D1 bne .L172 3863 .loc 1 1028 70 discriminator 1 3864 000e 134B ldr r3, .L177 3865 0010 93F80432 ldrb r3, [r3, #516] @ zero_extendqisi2 3866 .loc 1 1028 56 discriminator 1 3867 0014 102B cmp r3, #16 3868 0016 09D0 beq .L173 3869 .L172: 1029:user_src/soft_water_device.c **** (Dev.L_pump2_Link.connect_status == COMP_NORMAL && Dev.L_pump2.facid== FAC_HW_ESC)) 3870 .loc 1 1029 26 discriminator 3 3871 0018 104B ldr r3, .L177 3872 001a 93F82832 ldrb r3, [r3, #552] @ zero_extendqisi2 1028:user_src/soft_water_device.c **** (Dev.L_pump2_Link.connect_status == COMP_NORMAL && Dev.L_pump2.facid== FAC_HW_ESC)) 3873 .loc 1 1028 91 discriminator 3 3874 001e 012B cmp r3, #1 3875 0020 19D1 bne .L176 3876 .loc 1 1029 71 3877 0022 0E4B ldr r3, .L177 3878 0024 93F81832 ldrb r3, [r3, #536] @ zero_extendqisi2 3879 .loc 1 1029 57 3880 0028 102B cmp r3, #16 3881 002a 14D1 bne .L176 3882 .L173: 1030:user_src/soft_water_device.c **** { 1031:user_src/soft_water_device.c **** if(Check_Timer_Ready(&time_1hz,_1_HZ_)) 3883 .loc 1 1031 12 3884 002c 4FF47A71 mov r1, #1000 3885 0030 0B48 ldr r0, .L177+4 3886 0032 FFF7FEFF bl Check_Timer_Ready 3887 0036 0346 mov r3, r0 3888 .loc 1 1031 11 3889 0038 002B cmp r3, #0 3890 003a 03D0 beq .L175 1032:user_src/soft_water_device.c **** { 1033:user_src/soft_water_device.c **** HW_CanGetESCInfomation(); 3891 .loc 1 1033 13 3892 003c FFF7FEFF bl HW_CanGetESCInfomation 1034:user_src/soft_water_device.c **** HW_CanSetESCInfomation(); 3893 .loc 1 1034 13 3894 0040 FFF7FEFF bl HW_CanSetESCInfomation 3895 .L175: 1035:user_src/soft_water_device.c **** } ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 94 1036:user_src/soft_water_device.c **** 1037:user_src/soft_water_device.c **** if(set_HWesc_ESCid != true) 3896 .loc 1 1037 28 3897 0044 074B ldr r3, .L177+8 3898 0046 1B78 ldrb r3, [r3] @ zero_extendqisi2 3899 0048 83F00103 eor r3, r3, #1 3900 004c DBB2 uxtb r3, r3 3901 .loc 1 1037 11 3902 004e 002B cmp r3, #0 3903 0050 01D0 beq .L176 1038:user_src/soft_water_device.c **** { 1039:user_src/soft_water_device.c **** can_sendmsg_esc(); 3904 .loc 1 1039 13 3905 0052 FFF7FEFF bl can_sendmsg_esc 3906 .L176: 1040:user_src/soft_water_device.c **** } 1041:user_src/soft_water_device.c **** } 1042:user_src/soft_water_device.c **** 1043:user_src/soft_water_device.c **** } 3907 .loc 1 1043 1 3908 0056 00BF nop 3909 0058 80BD pop {r7, pc} 3910 .L178: 3911 005a 00BF .align 2 3912 .L177: 3913 005c 00000000 .word Dev 3914 0060 00000000 .word time_1hz.0 3915 0064 00000000 .word set_HWesc_ESCid 3916 .cfi_endproc 3917 .LFE146: 3919 .section .bss.BufIndex.2,"aw",%nobits 3920 .align 2 3923 BufIndex.2: 3924 0000 00000000 .space 4 3925 .section .bss.BufGetS.1,"aw",%nobits 3928 BufGetS.1: 3929 0000 00 .space 1 3930 .section .bss.time_1hz.0,"aw",%nobits 3931 .align 2 3934 time_1hz.0: 3935 0000 00000000 .space 4 3936 .text 3937 .Letext0: 3938 .file 2 "d:\\arm-gcc\\arm-none-eabi\\include\\machine\\_default_types.h" 3939 .file 3 "d:\\arm-gcc\\arm-none-eabi\\include\\sys\\_stdint.h" 3940 .file 4 "user_inc/common.h" 3941 .file 5 "user_inc/soft_water_device.h" 3942 .file 6 "user_inc/soft_p_2_c.h" 3943 .file 7 "user_inc/soft_eft.h" 3944 .file 8 "user_inc/soft_seed_device.h" 3945 .file 9 "user_inc/soft_version.h" ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 95 DEFINED SYMBOLS *ABS*:00000000 soft_water_device.c C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:24 .bss.liquid_inf:00000000 liquid_inf C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:21 .bss.liquid_inf:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:31 .bss.liquid_aver_value:00000000 liquid_aver_value C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:28 .bss.liquid_aver_value:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:37 .bss.liquid_aver_i:00000000 liquid_aver_i C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:38 .bss.liquid_aver_i:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:43 .bss.liquid_opening:00000000 liquid_opening C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:44 .bss.liquid_opening:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:50 .bss.liquid_aver_time:00000000 liquid_aver_time C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:47 .bss.liquid_aver_time:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:53 .text.liquid_recieved_hookfuction:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:59 .text.liquid_recieved_hookfuction:00000000 liquid_recieved_hookfuction C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:218 .text.liquid_recieved_hookfuction:0000011c $d C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:230 .text.decode_liquid_info:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:236 .text.decode_liquid_info:00000000 decode_liquid_info C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:334 .text.decode_liquid_info:00000074 $d C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:348 .bss.flow_inf:00000000 flow_inf C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:345 .bss.flow_inf:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:351 .text.Flow_recieved_hookfuction:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:357 .text.Flow_recieved_hookfuction:00000000 Flow_recieved_hookfuction C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:513 .text.Flow_recieved_hookfuction:000000e4 $d C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:520 .text.Flow_recieved_hookfuction:00000100 $t C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:758 .text.Flow_recieved_hookfuction:0000023c $d C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:768 .text.distributor_recieved_hookfuction:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:774 .text.distributor_recieved_hookfuction:00000000 distributor_recieved_hookfuction C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:824 .text.distributor_recieved_hookfuction:00000030 $d C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:834 .data.distributor:00000000 distributor C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:843 .bss.Distributor_Link:00000000 Distributor_Link C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:831 .data.distributor:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:840 .bss.Distributor_Link:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:846 .text.Can_sendmsg_to_distributor:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:852 .text.Can_sendmsg_to_distributor:00000000 Can_sendmsg_to_distributor C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:931 .text.Can_sendmsg_to_distributor:00000054 $d C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:938 .text.can_sendmsg_flow:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:944 .text.can_sendmsg_flow:00000000 can_sendmsg_flow C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:1145 .text.can_sendmsg_flow:00000118 $d C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:1155 .bss.set_HWesc_ESCid:00000000 set_HWesc_ESCid C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:1156 .bss.set_HWesc_ESCid:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:1162 .bss.SetEscidTail:00000000 SetEscidTail C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:1159 .bss.SetEscidTail:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:1169 .data.curNodeID:00000000 curNodeID C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:1166 .data.curNodeID:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:1176 .data.setESCidInfo:00000000 setESCidInfo C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:1173 .data.setESCidInfo:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:1180 .text.HW_CanSetESCInfomation:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:1186 .text.HW_CanSetESCInfomation:00000000 HW_CanSetESCInfomation C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:1611 .text.HW_CanSetESCInfomation:00000298 $d C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:2335 .bss.EscMsg:00000000 EscMsg C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:1621 .text.HW_CanSetESCInfomation:000002b8 $t C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:1905 .text.HW_CanSetESCInfomation:00000480 $d C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:1915 .text.canardConvertFloat16ToNativeFloat:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:1921 .text.canardConvertFloat16ToNativeFloat:00000000 canardConvertFloat16ToNativeFloat C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:2002 .text.canardConvertFloat16ToNativeFloat:0000006c $d C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:2011 .bss.power_BatteryInfo:00000000 power_BatteryInfo C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:2008 .bss.power_BatteryInfo:00000000 $d ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 96 C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:2018 .bss.batteryInfoBuf:00000000 batteryInfoBuf C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:2015 .bss.batteryInfoBuf:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:2021 .rodata:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:2025 .text.uavcan_equipment_power_BatteryInfo_decode:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:2031 .text.uavcan_equipment_power_BatteryInfo_decode:00000000 uavcan_equipment_power_BatteryInfo_decode C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:2303 .text.uavcan_equipment_power_BatteryInfo_decode:00000198 $d C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:3923 .bss.BufIndex.2:00000000 BufIndex.2 C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:3928 .bss.BufGetS.1:00000000 BufGetS.1 C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:2321 .bss.rawcmdTail:00000000 rawcmdTail C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:2318 .bss.rawcmdTail:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:2328 .bss.setIDTail:00000000 setIDTail C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:2325 .bss.setIDTail:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:2332 .bss.EscMsg:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:2338 .text.HobbywingCanRecvHookFunction:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:2344 .text.HobbywingCanRecvHookFunction:00000000 HobbywingCanRecvHookFunction C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:2631 .text.HobbywingCanRecvHookFunction:000001cc $d C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:2674 .text.HobbywingCanRecvHookFunction:00000278 $t C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:2683 .text.HobbywingCanRecvHookFunction:00000288 $d C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:2720 .text.HobbywingCanRecvHookFunction:0000030c $d C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:2732 .text.HobbywingCanRecvHookFunction:00000338 $t C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:3408 .text.HobbywingCanRecvHookFunction:00000778 $d C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:3418 .bss.GetEscInfoTail:00000000 GetEscInfoTail C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:3415 .bss.GetEscInfoTail:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:3425 .bss.GetMInfoTail:00000000 GetMInfoTail C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:3422 .bss.GetMInfoTail:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:3432 .bss.GetMajorConfTail:00000000 GetMajorConfTail C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:3429 .bss.GetMajorConfTail:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:3439 .bss.GetESCidTail:00000000 GetESCidTail C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:3436 .bss.GetESCidTail:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:3442 .text.HW_CanGetESCInfomation:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:3448 .text.HW_CanGetESCInfomation:00000000 HW_CanGetESCInfomation C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:3481 .bss.send_thr_buf:00000000 send_thr_buf C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:3478 .bss.send_thr_buf:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:3484 .text.esc_throttle_switch:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:3490 .text.esc_throttle_switch:00000000 esc_throttle_switch C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:3716 .text.esc_throttle_switch:00000160 $d C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:3723 .text.can_sendmsg_esc:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:3729 .text.can_sendmsg_esc:00000000 can_sendmsg_esc C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:3829 .text.can_sendmsg_esc:0000008c $d C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:3837 .text.Hobbywing_esc_func:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:3843 .text.Hobbywing_esc_func:00000000 Hobbywing_esc_func C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:3913 .text.Hobbywing_esc_func:0000005c $d C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:3934 .bss.time_1hz.0:00000000 time_1hz.0 C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:3920 .bss.BufIndex.2:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:3929 .bss.BufGetS.1:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s:3931 .bss.time_1hz.0:00000000 $d UNDEFINED SYMBOLS HAL_GetTick memcpy Dev planep Check_dev_link pmu_set_ack can_send_msg_normal crcAddSignature crcAdd ARM GAS C:\Users\zl835\AppData\Local\Temp\ccjO29tT.s page 97 regist_dev_info dev_current math_cons_i16 pmu_pin Check_Timer_Ready