ARM GAS C:\Users\zl835\AppData\Local\Temp\ccnoXfLM.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 "qingxie_bms.c" 16 .text 17 .Ltext0: 18 .cfi_sections .debug_frame 19 .global _qx_bms 20 .section .bss._qx_bms,"aw",%nobits 21 .align 2 24 _qx_bms: 25 0000 00000000 .space 88 25 00000000 25 00000000 25 00000000 25 00000000 26 .section .text.send_info_to_Qx,"ax",%progbits 27 .align 1 28 .global send_info_to_Qx 29 .syntax unified 30 .thumb 31 .thumb_func 33 send_info_to_Qx: 34 .LFB133: 35 .file 1 "user_src/qingxie_bms.c" 1:user_src/qingxie_bms.c **** #include "qingxie_bms.h" 2:user_src/qingxie_bms.c **** #include "common.h" 3:user_src/qingxie_bms.c **** #include "soft_p_2_c.h" 4:user_src/qingxie_bms.c **** #include "soft_can.h" 5:user_src/qingxie_bms.c **** qingxie_bms_status_t _qx_bms[4] = {0}; 6:user_src/qingxie_bms.c **** 7:user_src/qingxie_bms.c **** 8:user_src/qingxie_bms.c **** void send_info_to_Qx(void) 9:user_src/qingxie_bms.c **** { 36 .loc 1 9 1 37 .cfi_startproc 38 @ args = 0, pretend = 0, frame = 8 39 @ frame_needed = 1, uses_anonymous_args = 0 40 0000 80B5 push {r7, lr} 41 .LCFI0: 42 .cfi_def_cfa_offset 8 43 .cfi_offset 7, -8 44 .cfi_offset 14, -4 45 0002 82B0 sub sp, sp, #8 46 .LCFI1: 47 .cfi_def_cfa_offset 16 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccnoXfLM.s page 2 48 0004 00AF add r7, sp, #0 49 .LCFI2: 50 .cfi_def_cfa_register 7 10:user_src/qingxie_bms.c **** if(_Aqx_bms_link.connect_status != COMP_NORMAL) 51 .loc 1 10 19 52 0006 1E4B ldr r3, .L8 53 0008 1B7A ldrb r3, [r3, #8] @ zero_extendqisi2 54 .loc 1 10 5 55 000a 012B cmp r3, #1 56 000c 33D1 bne .L7 11:user_src/qingxie_bms.c **** return; 12:user_src/qingxie_bms.c **** 13:user_src/qingxie_bms.c **** uint8_t can_buf[8] = {0}; 57 .loc 1 13 11 58 000e 0023 movs r3, #0 59 0010 3B60 str r3, [r7] 60 0012 0023 movs r3, #0 61 0014 7B60 str r3, [r7, #4] 14:user_src/qingxie_bms.c **** 15:user_src/qingxie_bms.c **** if(planep.lock_status == 0) 62 .loc 1 15 12 63 0016 1B4B ldr r3, .L8+4 64 0018 B3F90E30 ldrsh r3, [r3, #14] @ unaligned 65 001c 1BB2 sxth r3, r3 66 .loc 1 15 5 67 001e 002B cmp r3, #0 68 0020 02D1 bne .L4 16:user_src/qingxie_bms.c **** can_buf[0] = 0; 69 .loc 1 16 16 70 0022 0023 movs r3, #0 71 0024 3B70 strb r3, [r7] 72 0026 10E0 b .L5 73 .L4: 17:user_src/qingxie_bms.c **** else if(planep.lock_status == 1) 74 .loc 1 17 17 75 0028 164B ldr r3, .L8+4 76 002a B3F90E30 ldrsh r3, [r3, #14] @ unaligned 77 002e 1BB2 sxth r3, r3 78 .loc 1 17 10 79 0030 012B cmp r3, #1 80 0032 02D1 bne .L6 18:user_src/qingxie_bms.c **** can_buf[0] = 1; 81 .loc 1 18 16 82 0034 0123 movs r3, #1 83 0036 3B70 strb r3, [r7] 84 0038 07E0 b .L5 85 .L6: 19:user_src/qingxie_bms.c **** else if(planep.lock_status == 4) 86 .loc 1 19 17 87 003a 124B ldr r3, .L8+4 88 003c B3F90E30 ldrsh r3, [r3, #14] @ unaligned 89 0040 1BB2 sxth r3, r3 90 .loc 1 19 10 91 0042 042B cmp r3, #4 92 0044 01D1 bne .L5 20:user_src/qingxie_bms.c **** can_buf[0] = 2; 93 .loc 1 20 16 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccnoXfLM.s page 3 94 0046 0223 movs r3, #2 95 0048 3B70 strb r3, [r7] 96 .L5: 21:user_src/qingxie_bms.c **** 22:user_src/qingxie_bms.c **** can_buf[1] = (planep.thr_pwm - 1000) / 10; 97 .loc 1 22 23 98 004a 0E4B ldr r3, .L8+4 99 004c B3F91230 ldrsh r3, [r3, #18] @ unaligned 100 0050 1BB2 sxth r3, r3 101 .loc 1 22 32 102 0052 A3F57A73 sub r3, r3, #1000 103 .loc 1 22 40 104 0056 0C4A ldr r2, .L8+8 105 0058 82FB0312 smull r1, r2, r2, r3 106 005c 9210 asrs r2, r2, #2 107 005e DB17 asrs r3, r3, #31 108 0060 D31A subs r3, r2, r3 109 .loc 1 22 14 110 0062 DBB2 uxtb r3, r3 111 0064 7B70 strb r3, [r7, #1] 23:user_src/qingxie_bms.c **** 24:user_src/qingxie_bms.c **** can_send_msg_normal(&can_buf[0], 8, 0x66B); 112 .loc 1 24 3 113 0066 3B46 mov r3, r7 114 0068 40F26B62 movw r2, #1643 115 006c 0821 movs r1, #8 116 006e 1846 mov r0, r3 117 0070 FFF7FEFF bl can_send_msg_normal 118 0074 00E0 b .L1 119 .L7: 11:user_src/qingxie_bms.c **** 120 .loc 1 11 5 121 0076 00BF nop 122 .L1: 25:user_src/qingxie_bms.c **** } 123 .loc 1 25 1 124 0078 0837 adds r7, r7, #8 125 .LCFI3: 126 .cfi_def_cfa_offset 8 127 007a BD46 mov sp, r7 128 .LCFI4: 129 .cfi_def_cfa_register 13 130 @ sp needed 131 007c 80BD pop {r7, pc} 132 .L9: 133 007e 00BF .align 2 134 .L8: 135 0080 00000000 .word _Aqx_bms_link 136 0084 00000000 .word planep 137 0088 67666666 .word 1717986919 138 .cfi_endproc 139 .LFE133: 141 .global _qx_bms_link 142 .section .bss._qx_bms_link,"aw",%nobits 143 .align 2 146 _qx_bms_link: 147 0000 00000000 .space 48 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccnoXfLM.s page 4 147 00000000 147 00000000 147 00000000 147 00000000 148 .global _Aqx_bms_link 149 .section .bss._Aqx_bms_link,"aw",%nobits 150 .align 2 153 _Aqx_bms_link: 154 0000 00000000 .space 12 154 00000000 154 00000000 155 .section .text.QxBmsCanRecvHookFunction,"ax",%progbits 156 .align 1 157 .global QxBmsCanRecvHookFunction 158 .syntax unified 159 .thumb 160 .thumb_func 162 QxBmsCanRecvHookFunction: 163 .LFB134: 26:user_src/qingxie_bms.c **** 27:user_src/qingxie_bms.c **** Connect_check _qx_bms_link[4] = {0}; 28:user_src/qingxie_bms.c **** Connect_check _Aqx_bms_link; 29:user_src/qingxie_bms.c **** void QxBmsCanRecvHookFunction(uint32_t id, uint8_t data[], uint8_t len) 30:user_src/qingxie_bms.c **** { 164 .loc 1 30 1 165 .cfi_startproc 166 @ args = 0, pretend = 0, frame = 24 167 @ frame_needed = 1, uses_anonymous_args = 0 168 0000 80B5 push {r7, lr} 169 .LCFI5: 170 .cfi_def_cfa_offset 8 171 .cfi_offset 7, -8 172 .cfi_offset 14, -4 173 0002 86B0 sub sp, sp, #24 174 .LCFI6: 175 .cfi_def_cfa_offset 32 176 0004 00AF add r7, sp, #0 177 .LCFI7: 178 .cfi_def_cfa_register 7 179 0006 F860 str r0, [r7, #12] 180 0008 B960 str r1, [r7, #8] 181 000a 1346 mov r3, r2 182 000c FB71 strb r3, [r7, #7] 31:user_src/qingxie_bms.c **** int bms_id = 0; 183 .loc 1 31 7 184 000e 0023 movs r3, #0 185 0010 7B61 str r3, [r7, #20] 32:user_src/qingxie_bms.c **** 33:user_src/qingxie_bms.c **** _Aqx_bms_link.connect_status = COMP_NORMAL; 186 .loc 1 33 32 187 0012 9D4B ldr r3, .L27 188 0014 0122 movs r2, #1 189 0016 1A72 strb r2, [r3, #8] 34:user_src/qingxie_bms.c **** 35:user_src/qingxie_bms.c **** if (id == QINGXIE_BMS0_CAN_ID1 || id == QINGXIE_BMS1_CAN_ID1 || 190 .loc 1 35 6 191 0018 FB68 ldr r3, [r7, #12] ARM GAS C:\Users\zl835\AppData\Local\Temp\ccnoXfLM.s page 5 192 001a 41F26C62 movw r2, #5740 193 001e 9342 cmp r3, r2 194 0020 0ED0 beq .L11 195 .loc 1 35 34 discriminator 1 196 0022 FB68 ldr r3, [r7, #12] 197 0024 42F26C62 movw r2, #9836 198 0028 9342 cmp r3, r2 199 002a 09D0 beq .L11 200 .loc 1 35 64 discriminator 2 201 002c FB68 ldr r3, [r7, #12] 202 002e 43F26C62 movw r2, #13932 203 0032 9342 cmp r3, r2 204 0034 04D0 beq .L11 36:user_src/qingxie_bms.c **** id == QINGXIE_BMS2_CAN_ID1 || id == QINGXIE_BMS3_CAN_ID1) 205 .loc 1 36 34 206 0036 FB68 ldr r3, [r7, #12] 207 0038 44F26C62 movw r2, #18028 208 003c 9342 cmp r3, r2 209 003e 7ED1 bne .L12 210 .L11: 37:user_src/qingxie_bms.c **** { 38:user_src/qingxie_bms.c **** if (id == QINGXIE_BMS1_CAN_ID1) { 211 .loc 1 38 8 212 0040 FB68 ldr r3, [r7, #12] 213 0042 42F26C62 movw r2, #9836 214 0046 9342 cmp r3, r2 215 0048 02D1 bne .L13 39:user_src/qingxie_bms.c **** bms_id = 1; 216 .loc 1 39 14 217 004a 0123 movs r3, #1 218 004c 7B61 str r3, [r7, #20] 219 004e 0EE0 b .L14 220 .L13: 40:user_src/qingxie_bms.c **** } else if (id == QINGXIE_BMS2_CAN_ID1) { 221 .loc 1 40 15 222 0050 FB68 ldr r3, [r7, #12] 223 0052 43F26C62 movw r2, #13932 224 0056 9342 cmp r3, r2 225 0058 02D1 bne .L15 41:user_src/qingxie_bms.c **** bms_id = 2; 226 .loc 1 41 14 227 005a 0223 movs r3, #2 228 005c 7B61 str r3, [r7, #20] 229 005e 06E0 b .L14 230 .L15: 42:user_src/qingxie_bms.c **** } else if (id == QINGXIE_BMS3_CAN_ID1) { 231 .loc 1 42 15 232 0060 FB68 ldr r3, [r7, #12] 233 0062 44F26C62 movw r2, #18028 234 0066 9342 cmp r3, r2 235 0068 01D1 bne .L14 43:user_src/qingxie_bms.c **** bms_id = 3; 236 .loc 1 43 14 237 006a 0323 movs r3, #3 238 006c 7B61 str r3, [r7, #20] 239 .L14: 44:user_src/qingxie_bms.c **** } ARM GAS C:\Users\zl835\AppData\Local\Temp\ccnoXfLM.s page 6 45:user_src/qingxie_bms.c **** _qx_bms_link[bms_id].connect_status = COMP_NORMAL; 240 .loc 1 45 41 241 006e 8749 ldr r1, .L27+4 242 0070 7A69 ldr r2, [r7, #20] 243 0072 1346 mov r3, r2 244 0074 5B00 lsls r3, r3, #1 245 0076 1344 add r3, r3, r2 246 0078 9B00 lsls r3, r3, #2 247 007a 0B44 add r3, r3, r1 248 007c 0833 adds r3, r3, #8 249 007e 0122 movs r2, #1 250 0080 1A70 strb r2, [r3] 46:user_src/qingxie_bms.c **** _qx_bms_link[bms_id].recv_time = HAL_GetTick(); 251 .loc 1 46 38 252 0082 FFF7FEFF bl HAL_GetTick 253 0086 0146 mov r1, r0 254 .loc 1 46 36 255 0088 8048 ldr r0, .L27+4 256 008a 7A69 ldr r2, [r7, #20] 257 008c 1346 mov r3, r2 258 008e 5B00 lsls r3, r3, #1 259 0090 1344 add r3, r3, r2 260 0092 9B00 lsls r3, r3, #2 261 0094 0344 add r3, r3, r0 262 0096 1960 str r1, [r3] 47:user_src/qingxie_bms.c **** 48:user_src/qingxie_bms.c **** _qx_bms[bms_id].bat_voltage = data[1] + (data[0] << 8); 263 .loc 1 48 39 264 0098 BB68 ldr r3, [r7, #8] 265 009a 0133 adds r3, r3, #1 266 009c 1B78 ldrb r3, [r3] @ zero_extendqisi2 267 009e 9AB2 uxth r2, r3 268 .loc 1 48 50 269 00a0 BB68 ldr r3, [r7, #8] 270 00a2 1B78 ldrb r3, [r3] @ zero_extendqisi2 271 00a4 9BB2 uxth r3, r3 272 .loc 1 48 54 273 00a6 1B02 lsls r3, r3, #8 274 00a8 9BB2 uxth r3, r3 275 .loc 1 48 43 276 00aa 1344 add r3, r3, r2 277 00ac 98B2 uxth r0, r3 278 .loc 1 48 33 279 00ae 784A ldr r2, .L27+8 280 00b0 7B69 ldr r3, [r7, #20] 281 00b2 1621 movs r1, #22 282 00b4 01FB03F3 mul r3, r1, r3 283 00b8 1344 add r3, r3, r2 284 00ba 0246 mov r2, r0 @ movhi 285 00bc 1A80 strh r2, [r3] @ movhi 49:user_src/qingxie_bms.c **** _qx_bms[bms_id].servo_current = data[3] + (data[2] << 8); 286 .loc 1 49 41 287 00be BB68 ldr r3, [r7, #8] 288 00c0 0333 adds r3, r3, #3 289 00c2 1B78 ldrb r3, [r3] @ zero_extendqisi2 290 00c4 9AB2 uxth r2, r3 291 .loc 1 49 52 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccnoXfLM.s page 7 292 00c6 BB68 ldr r3, [r7, #8] 293 00c8 0233 adds r3, r3, #2 294 00ca 1B78 ldrb r3, [r3] @ zero_extendqisi2 295 00cc 9BB2 uxth r3, r3 296 .loc 1 49 56 297 00ce 1B02 lsls r3, r3, #8 298 00d0 9BB2 uxth r3, r3 299 .loc 1 49 45 300 00d2 1344 add r3, r3, r2 301 00d4 98B2 uxth r0, r3 302 .loc 1 49 35 303 00d6 6E4A ldr r2, .L27+8 304 00d8 7B69 ldr r3, [r7, #20] 305 00da 1621 movs r1, #22 306 00dc 01FB03F3 mul r3, r1, r3 307 00e0 1344 add r3, r3, r2 308 00e2 0233 adds r3, r3, #2 309 00e4 0246 mov r2, r0 @ movhi 310 00e6 1A80 strh r2, [r3] @ movhi 50:user_src/qingxie_bms.c **** _qx_bms[bms_id].stack_voltage = data[5] + (data[4] << 8); 311 .loc 1 50 41 312 00e8 BB68 ldr r3, [r7, #8] 313 00ea 0533 adds r3, r3, #5 314 00ec 1B78 ldrb r3, [r3] @ zero_extendqisi2 315 00ee 9AB2 uxth r2, r3 316 .loc 1 50 52 317 00f0 BB68 ldr r3, [r7, #8] 318 00f2 0433 adds r3, r3, #4 319 00f4 1B78 ldrb r3, [r3] @ zero_extendqisi2 320 00f6 9BB2 uxth r3, r3 321 .loc 1 50 56 322 00f8 1B02 lsls r3, r3, #8 323 00fa 9BB2 uxth r3, r3 324 .loc 1 50 45 325 00fc 1344 add r3, r3, r2 326 00fe 98B2 uxth r0, r3 327 .loc 1 50 35 328 0100 634A ldr r2, .L27+8 329 0102 7B69 ldr r3, [r7, #20] 330 0104 1621 movs r1, #22 331 0106 01FB03F3 mul r3, r1, r3 332 010a 1344 add r3, r3, r2 333 010c 0433 adds r3, r3, #4 334 010e 0246 mov r2, r0 @ movhi 335 0110 1A80 strh r2, [r3] @ movhi 51:user_src/qingxie_bms.c **** _qx_bms[bms_id].servo_voltage = data[7] + (data[6] << 8); 336 .loc 1 51 41 337 0112 BB68 ldr r3, [r7, #8] 338 0114 0733 adds r3, r3, #7 339 0116 1B78 ldrb r3, [r3] @ zero_extendqisi2 340 0118 9AB2 uxth r2, r3 341 .loc 1 51 52 342 011a BB68 ldr r3, [r7, #8] 343 011c 0633 adds r3, r3, #6 344 011e 1B78 ldrb r3, [r3] @ zero_extendqisi2 345 0120 9BB2 uxth r3, r3 346 .loc 1 51 56 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccnoXfLM.s page 8 347 0122 1B02 lsls r3, r3, #8 348 0124 9BB2 uxth r3, r3 349 .loc 1 51 45 350 0126 1344 add r3, r3, r2 351 0128 98B2 uxth r0, r3 352 .loc 1 51 35 353 012a 594A ldr r2, .L27+8 354 012c 7B69 ldr r3, [r7, #20] 355 012e 1621 movs r1, #22 356 0130 01FB03F3 mul r3, r1, r3 357 0134 1344 add r3, r3, r2 358 0136 0633 adds r3, r3, #6 359 0138 0246 mov r2, r0 @ movhi 360 013a 1A80 strh r2, [r3] @ movhi 361 013c F3E0 b .L16 362 .L12: 52:user_src/qingxie_bms.c **** 53:user_src/qingxie_bms.c **** } 54:user_src/qingxie_bms.c **** else if (id == QINGXIE_BMS0_CAN_ID2 || id== QINGXIE_BMS1_CAN_ID2 || 363 .loc 1 54 11 364 013e FB68 ldr r3, [r7, #12] 365 0140 41F26D62 movw r2, #5741 366 0144 9342 cmp r3, r2 367 0146 0ED0 beq .L17 368 .loc 1 54 39 discriminator 1 369 0148 FB68 ldr r3, [r7, #12] 370 014a 42F26D62 movw r2, #9837 371 014e 9342 cmp r3, r2 372 0150 09D0 beq .L17 373 .loc 1 54 68 discriminator 2 374 0152 FB68 ldr r3, [r7, #12] 375 0154 43F26D62 movw r2, #13933 376 0158 9342 cmp r3, r2 377 015a 04D0 beq .L17 55:user_src/qingxie_bms.c **** id== QINGXIE_BMS2_CAN_ID2 || id== QINGXIE_BMS3_CAN_ID2) 378 .loc 1 55 41 379 015c FB68 ldr r3, [r7, #12] 380 015e 44F26D62 movw r2, #18029 381 0162 9342 cmp r3, r2 382 0164 6CD1 bne .L18 383 .L17: 56:user_src/qingxie_bms.c **** { 57:user_src/qingxie_bms.c **** if (id == QINGXIE_BMS1_CAN_ID2) { 384 .loc 1 57 8 385 0166 FB68 ldr r3, [r7, #12] 386 0168 42F26D62 movw r2, #9837 387 016c 9342 cmp r3, r2 388 016e 02D1 bne .L19 58:user_src/qingxie_bms.c **** bms_id = 1; 389 .loc 1 58 14 390 0170 0123 movs r3, #1 391 0172 7B61 str r3, [r7, #20] 392 0174 0EE0 b .L20 393 .L19: 59:user_src/qingxie_bms.c **** } else if (id == QINGXIE_BMS2_CAN_ID2) { 394 .loc 1 59 15 395 0176 FB68 ldr r3, [r7, #12] ARM GAS C:\Users\zl835\AppData\Local\Temp\ccnoXfLM.s page 9 396 0178 43F26D62 movw r2, #13933 397 017c 9342 cmp r3, r2 398 017e 02D1 bne .L21 60:user_src/qingxie_bms.c **** bms_id = 2; 399 .loc 1 60 14 400 0180 0223 movs r3, #2 401 0182 7B61 str r3, [r7, #20] 402 0184 06E0 b .L20 403 .L21: 61:user_src/qingxie_bms.c **** } else if (id == QINGXIE_BMS3_CAN_ID2) { 404 .loc 1 61 15 405 0186 FB68 ldr r3, [r7, #12] 406 0188 44F26D62 movw r2, #18029 407 018c 9342 cmp r3, r2 408 018e 01D1 bne .L20 62:user_src/qingxie_bms.c **** bms_id = 3; 409 .loc 1 62 14 410 0190 0323 movs r3, #3 411 0192 7B61 str r3, [r7, #20] 412 .L20: 63:user_src/qingxie_bms.c **** } 64:user_src/qingxie_bms.c **** _qx_bms[bms_id].gas_tank_pressure = data[1] + (data[0] << 8); 413 .loc 1 64 45 414 0194 BB68 ldr r3, [r7, #8] 415 0196 0133 adds r3, r3, #1 416 0198 1B78 ldrb r3, [r3] @ zero_extendqisi2 417 019a 9AB2 uxth r2, r3 418 .loc 1 64 56 419 019c BB68 ldr r3, [r7, #8] 420 019e 1B78 ldrb r3, [r3] @ zero_extendqisi2 421 01a0 9BB2 uxth r3, r3 422 .loc 1 64 60 423 01a2 1B02 lsls r3, r3, #8 424 01a4 9BB2 uxth r3, r3 425 .loc 1 64 49 426 01a6 1344 add r3, r3, r2 427 01a8 98B2 uxth r0, r3 428 .loc 1 64 39 429 01aa 394A ldr r2, .L27+8 430 01ac 7B69 ldr r3, [r7, #20] 431 01ae 1621 movs r1, #22 432 01b0 01FB03F3 mul r3, r1, r3 433 01b4 1344 add r3, r3, r2 434 01b6 0A33 adds r3, r3, #10 435 01b8 0246 mov r2, r0 @ movhi 436 01ba 1A80 strh r2, [r3] @ movhi 65:user_src/qingxie_bms.c **** _qx_bms[bms_id].pipe_pressure = data[3] + (data[2] << 8); 437 .loc 1 65 41 438 01bc BB68 ldr r3, [r7, #8] 439 01be 0333 adds r3, r3, #3 440 01c0 1B78 ldrb r3, [r3] @ zero_extendqisi2 441 01c2 9AB2 uxth r2, r3 442 .loc 1 65 52 443 01c4 BB68 ldr r3, [r7, #8] 444 01c6 0233 adds r3, r3, #2 445 01c8 1B78 ldrb r3, [r3] @ zero_extendqisi2 446 01ca 9BB2 uxth r3, r3 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccnoXfLM.s page 10 447 .loc 1 65 56 448 01cc 1B02 lsls r3, r3, #8 449 01ce 9BB2 uxth r3, r3 450 .loc 1 65 45 451 01d0 1344 add r3, r3, r2 452 01d2 98B2 uxth r0, r3 453 .loc 1 65 35 454 01d4 2E4A ldr r2, .L27+8 455 01d6 7B69 ldr r3, [r7, #20] 456 01d8 1621 movs r1, #22 457 01da 01FB03F3 mul r3, r1, r3 458 01de 1344 add r3, r3, r2 459 01e0 0C33 adds r3, r3, #12 460 01e2 0246 mov r2, r0 @ movhi 461 01e4 1A80 strh r2, [r3] @ movhi 66:user_src/qingxie_bms.c **** _qx_bms[bms_id].pcb_temp = data[5] + (data[4] << 8); 462 .loc 1 66 36 463 01e6 BB68 ldr r3, [r7, #8] 464 01e8 0533 adds r3, r3, #5 465 01ea 1B78 ldrb r3, [r3] @ zero_extendqisi2 466 01ec 9AB2 uxth r2, r3 467 .loc 1 66 47 468 01ee BB68 ldr r3, [r7, #8] 469 01f0 0433 adds r3, r3, #4 470 01f2 1B78 ldrb r3, [r3] @ zero_extendqisi2 471 01f4 9BB2 uxth r3, r3 472 .loc 1 66 51 473 01f6 1B02 lsls r3, r3, #8 474 01f8 9BB2 uxth r3, r3 475 .loc 1 66 40 476 01fa 1344 add r3, r3, r2 477 01fc 9BB2 uxth r3, r3 478 01fe 18B2 sxth r0, r3 479 .loc 1 66 30 480 0200 234A ldr r2, .L27+8 481 0202 7B69 ldr r3, [r7, #20] 482 0204 1621 movs r1, #22 483 0206 01FB03F3 mul r3, r1, r3 484 020a 1344 add r3, r3, r2 485 020c 0E33 adds r3, r3, #14 486 020e 0246 mov r2, r0 @ movhi 487 0210 1A80 strh r2, [r3] @ movhi 67:user_src/qingxie_bms.c **** _qx_bms[bms_id].stack_temp = data[7] + (data[6] << 8); 488 .loc 1 67 38 489 0212 BB68 ldr r3, [r7, #8] 490 0214 0733 adds r3, r3, #7 491 0216 1B78 ldrb r3, [r3] @ zero_extendqisi2 492 0218 9AB2 uxth r2, r3 493 .loc 1 67 49 494 021a BB68 ldr r3, [r7, #8] 495 021c 0633 adds r3, r3, #6 496 021e 1B78 ldrb r3, [r3] @ zero_extendqisi2 497 0220 9BB2 uxth r3, r3 498 .loc 1 67 53 499 0222 1B02 lsls r3, r3, #8 500 0224 9BB2 uxth r3, r3 501 .loc 1 67 42 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccnoXfLM.s page 11 502 0226 1344 add r3, r3, r2 503 0228 9BB2 uxth r3, r3 504 022a 18B2 sxth r0, r3 505 .loc 1 67 32 506 022c 184A ldr r2, .L27+8 507 022e 7B69 ldr r3, [r7, #20] 508 0230 1621 movs r1, #22 509 0232 01FB03F3 mul r3, r1, r3 510 0236 1344 add r3, r3, r2 511 0238 1033 adds r3, r3, #16 512 023a 0246 mov r2, r0 @ movhi 513 023c 1A80 strh r2, [r3] @ movhi 514 023e 72E0 b .L16 515 .L18: 68:user_src/qingxie_bms.c **** } else if (id == QINGXIE_BMS0_CAN_ID3 || id == QINGXIE_BMS1_CAN_ID3 || 516 .loc 1 68 13 517 0240 FB68 ldr r3, [r7, #12] 518 0242 41F26E62 movw r2, #5742 519 0246 9342 cmp r3, r2 520 0248 0ED0 beq .L22 521 .loc 1 68 41 discriminator 1 522 024a FB68 ldr r3, [r7, #12] 523 024c 42F26E62 movw r2, #9838 524 0250 9342 cmp r3, r2 525 0252 09D0 beq .L22 526 .loc 1 68 71 discriminator 2 527 0254 FB68 ldr r3, [r7, #12] 528 0256 43F26E62 movw r2, #13934 529 025a 9342 cmp r3, r2 530 025c 04D0 beq .L22 69:user_src/qingxie_bms.c **** id == QINGXIE_BMS2_CAN_ID3 || id == QINGXIE_BMS3_CAN_ID3) { 531 .loc 1 69 42 532 025e FB68 ldr r3, [r7, #12] 533 0260 44F26E62 movw r2, #18030 534 0264 9342 cmp r3, r2 535 0266 5ED1 bne .L26 536 .L22: 70:user_src/qingxie_bms.c **** if (id == QINGXIE_BMS1_CAN_ID3) { 537 .loc 1 70 8 538 0268 FB68 ldr r3, [r7, #12] 539 026a 42F26E62 movw r2, #9838 540 026e 9342 cmp r3, r2 541 0270 02D1 bne .L23 71:user_src/qingxie_bms.c **** bms_id = 1; 542 .loc 1 71 14 543 0272 0123 movs r3, #1 544 0274 7B61 str r3, [r7, #20] 545 0276 14E0 b .L24 546 .L23: 72:user_src/qingxie_bms.c **** } else if (id == QINGXIE_BMS2_CAN_ID3) { 547 .loc 1 72 15 548 0278 FB68 ldr r3, [r7, #12] 549 027a 43F26E62 movw r2, #13934 550 027e 9342 cmp r3, r2 551 0280 08D1 bne .L25 73:user_src/qingxie_bms.c **** bms_id = 2; 552 .loc 1 73 14 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccnoXfLM.s page 12 553 0282 0223 movs r3, #2 554 0284 7B61 str r3, [r7, #20] 555 0286 0CE0 b .L24 556 .L28: 557 .align 2 558 .L27: 559 0288 00000000 .word _Aqx_bms_link 560 028c 00000000 .word _qx_bms_link 561 0290 00000000 .word _qx_bms 562 .L25: 74:user_src/qingxie_bms.c **** } else if (id == QINGXIE_BMS3_CAN_ID3) { 563 .loc 1 74 15 564 0294 FB68 ldr r3, [r7, #12] 565 0296 44F26E62 movw r2, #18030 566 029a 9342 cmp r3, r2 567 029c 01D1 bne .L24 75:user_src/qingxie_bms.c **** bms_id = 3; 568 .loc 1 75 14 569 029e 0323 movs r3, #3 570 02a0 7B61 str r3, [r7, #20] 571 .L24: 76:user_src/qingxie_bms.c **** } 77:user_src/qingxie_bms.c **** _qx_bms[bms_id].work_status = data[0]; 572 .loc 1 77 39 573 02a2 BB68 ldr r3, [r7, #8] 574 02a4 1878 ldrb r0, [r3] @ zero_extendqisi2 575 .loc 1 77 33 576 02a6 224A ldr r2, .L29 577 02a8 7B69 ldr r3, [r7, #20] 578 02aa 1621 movs r1, #22 579 02ac 01FB03F3 mul r3, r1, r3 580 02b0 1344 add r3, r3, r2 581 02b2 1233 adds r3, r3, #18 582 02b4 0246 mov r2, r0 583 02b6 1A70 strb r2, [r3] 78:user_src/qingxie_bms.c **** _qx_bms[bms_id].self_chek = data[1]; 584 .loc 1 78 31 585 02b8 BB68 ldr r3, [r7, #8] 586 02ba 5878 ldrb r0, [r3, #1] @ zero_extendqisi2 587 02bc 1C4A ldr r2, .L29 588 02be 7B69 ldr r3, [r7, #20] 589 02c0 1621 movs r1, #22 590 02c2 01FB03F3 mul r3, r1, r3 591 02c6 1344 add r3, r3, r2 592 02c8 1533 adds r3, r3, #21 593 02ca 0246 mov r2, r0 594 02cc 1A70 strb r2, [r3] 79:user_src/qingxie_bms.c **** _qx_bms[bms_id].falt_status = data[3] + (data[2] << 8); 595 .loc 1 79 39 596 02ce BB68 ldr r3, [r7, #8] 597 02d0 0333 adds r3, r3, #3 598 02d2 1B78 ldrb r3, [r3] @ zero_extendqisi2 599 02d4 9AB2 uxth r2, r3 600 .loc 1 79 50 601 02d6 BB68 ldr r3, [r7, #8] 602 02d8 0233 adds r3, r3, #2 603 02da 1B78 ldrb r3, [r3] @ zero_extendqisi2 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccnoXfLM.s page 13 604 02dc 9BB2 uxth r3, r3 605 .loc 1 79 54 606 02de 1B02 lsls r3, r3, #8 607 02e0 9BB2 uxth r3, r3 608 .loc 1 79 43 609 02e2 1344 add r3, r3, r2 610 02e4 98B2 uxth r0, r3 611 .loc 1 79 33 612 02e6 124A ldr r2, .L29 613 02e8 7B69 ldr r3, [r7, #20] 614 02ea 1621 movs r1, #22 615 02ec 01FB03F3 mul r3, r1, r3 616 02f0 1344 add r3, r3, r2 617 02f2 1033 adds r3, r3, #16 618 02f4 0246 mov r2, r0 @ movhi 619 02f6 A3F80320 strh r2, [r3, #3] @ unaligned 80:user_src/qingxie_bms.c **** _qx_bms[bms_id].bat_refuel_current = data[5] + (data[4] << 8); 620 .loc 1 80 46 621 02fa BB68 ldr r3, [r7, #8] 622 02fc 0533 adds r3, r3, #5 623 02fe 1B78 ldrb r3, [r3] @ zero_extendqisi2 624 0300 9AB2 uxth r2, r3 625 .loc 1 80 57 626 0302 BB68 ldr r3, [r7, #8] 627 0304 0433 adds r3, r3, #4 628 0306 1B78 ldrb r3, [r3] @ zero_extendqisi2 629 0308 9BB2 uxth r3, r3 630 .loc 1 80 61 631 030a 1B02 lsls r3, r3, #8 632 030c 9BB2 uxth r3, r3 633 .loc 1 80 50 634 030e 1344 add r3, r3, r2 635 0310 98B2 uxth r0, r3 636 .loc 1 80 40 637 0312 074A ldr r2, .L29 638 0314 7B69 ldr r3, [r7, #20] 639 0316 1621 movs r1, #22 640 0318 01FB03F3 mul r3, r1, r3 641 031c 1344 add r3, r3, r2 642 031e 0833 adds r3, r3, #8 643 0320 0246 mov r2, r0 @ movhi 644 0322 1A80 strh r2, [r3] @ movhi 81:user_src/qingxie_bms.c **** } 82:user_src/qingxie_bms.c **** } 645 .loc 1 82 1 646 0324 FFE7 b .L26 647 .L16: 648 .L26: 649 0326 00BF nop 650 0328 1837 adds r7, r7, #24 651 .LCFI8: 652 .cfi_def_cfa_offset 8 653 032a BD46 mov sp, r7 654 .LCFI9: 655 .cfi_def_cfa_register 13 656 @ sp needed 657 032c 80BD pop {r7, pc} ARM GAS C:\Users\zl835\AppData\Local\Temp\ccnoXfLM.s page 14 658 .L30: 659 032e 00BF .align 2 660 .L29: 661 0330 00000000 .word _qx_bms 662 .cfi_endproc 663 .LFE134: 665 .text 666 .Letext0: 667 .file 2 "d:\\arm-gcc\\arm-none-eabi\\include\\machine\\_default_types.h" 668 .file 3 "d:\\arm-gcc\\arm-none-eabi\\include\\sys\\_stdint.h" 669 .file 4 "user_inc/common.h" 670 .file 5 "user_inc/qingxie_bms.h" 671 .file 6 "user_inc/soft_p_2_c.h" ARM GAS C:\Users\zl835\AppData\Local\Temp\ccnoXfLM.s page 15 DEFINED SYMBOLS *ABS*:00000000 qingxie_bms.c C:\Users\zl835\AppData\Local\Temp\ccnoXfLM.s:24 .bss._qx_bms:00000000 _qx_bms C:\Users\zl835\AppData\Local\Temp\ccnoXfLM.s:21 .bss._qx_bms:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccnoXfLM.s:27 .text.send_info_to_Qx:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccnoXfLM.s:33 .text.send_info_to_Qx:00000000 send_info_to_Qx C:\Users\zl835\AppData\Local\Temp\ccnoXfLM.s:135 .text.send_info_to_Qx:00000080 $d C:\Users\zl835\AppData\Local\Temp\ccnoXfLM.s:153 .bss._Aqx_bms_link:00000000 _Aqx_bms_link C:\Users\zl835\AppData\Local\Temp\ccnoXfLM.s:146 .bss._qx_bms_link:00000000 _qx_bms_link C:\Users\zl835\AppData\Local\Temp\ccnoXfLM.s:143 .bss._qx_bms_link:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccnoXfLM.s:150 .bss._Aqx_bms_link:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccnoXfLM.s:156 .text.QxBmsCanRecvHookFunction:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccnoXfLM.s:162 .text.QxBmsCanRecvHookFunction:00000000 QxBmsCanRecvHookFunction C:\Users\zl835\AppData\Local\Temp\ccnoXfLM.s:559 .text.QxBmsCanRecvHookFunction:00000288 $d C:\Users\zl835\AppData\Local\Temp\ccnoXfLM.s:564 .text.QxBmsCanRecvHookFunction:00000294 $t C:\Users\zl835\AppData\Local\Temp\ccnoXfLM.s:661 .text.QxBmsCanRecvHookFunction:00000330 $d UNDEFINED SYMBOLS can_send_msg_normal planep HAL_GetTick