ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.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_engine.c" 16 .text 17 .Ltext0: 18 .cfi_sections .debug_frame 19 .global engine_data 20 .section .bss.engine_data,"aw",%nobits 21 .align 2 24 engine_data: 25 0000 00000000 .space 41 25 00000000 25 00000000 25 00000000 25 00000000 26 .global aoan_data 27 .section .data.aoan_data,"aw" 28 .align 2 31 aoan_data: 32 0000 00 .byte 0 33 0001 00000000 .space 17 33 00000000 33 00000000 33 00000000 33 00 34 0012 FFFF .short -1 35 0014 00000000 .space 6 35 0000 36 .global aoan_engine_Link 37 .section .bss.aoan_engine_Link,"aw",%nobits 38 .align 2 41 aoan_engine_Link: 42 0000 00000000 .space 12 42 00000000 42 00000000 43 .section .text.decode_aoan_engine,"ax",%progbits 44 .align 1 45 .global decode_aoan_engine 46 .syntax unified 47 .thumb 48 .thumb_func 50 decode_aoan_engine: 51 .LFB133: 52 .file 1 "user_src/soft_engine.c" 1:user_src/soft_engine.c **** #include "soft_engine.h" ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 2 2:user_src/soft_engine.c **** #include "soft_crc.h" 3:user_src/soft_engine.c **** #include "crc.h" 4:user_src/soft_engine.c **** #include "string.h" 5:user_src/soft_engine.c **** #include "soft_p_2_c.h" 6:user_src/soft_engine.c **** #include "soft_test.h" 7:user_src/soft_engine.c **** #include "soft_uart.h" 8:user_src/soft_engine.c **** #include "math.h" 9:user_src/soft_engine.c **** 10:user_src/soft_engine.c **** struct ENGINE_DATA engine_data; 11:user_src/soft_engine.c **** 12:user_src/soft_engine.c **** 13:user_src/soft_engine.c **** //串口接收奥安发动机数据 14:user_src/soft_engine.c **** AOAN_TYPE aoan_data = {0, .engin_warn = 0xffff}; 15:user_src/soft_engine.c **** Connect_check aoan_engine_Link; 16:user_src/soft_engine.c **** //解析奥安油电混传感器数据 17:user_src/soft_engine.c **** short decode_aoan_engine(uint8_t *pdata, uint16_t length) 18:user_src/soft_engine.c **** { 53 .loc 1 18 1 54 .cfi_startproc 55 @ args = 0, pretend = 0, frame = 16 56 @ frame_needed = 1, uses_anonymous_args = 0 57 0000 80B5 push {r7, lr} 58 .LCFI0: 59 .cfi_def_cfa_offset 8 60 .cfi_offset 7, -8 61 .cfi_offset 14, -4 62 0002 84B0 sub sp, sp, #16 63 .LCFI1: 64 .cfi_def_cfa_offset 24 65 0004 00AF add r7, sp, #0 66 .LCFI2: 67 .cfi_def_cfa_register 7 68 0006 7860 str r0, [r7, #4] 69 0008 0B46 mov r3, r1 70 000a 7B80 strh r3, [r7, #2] @ movhi 19:user_src/soft_engine.c **** 20:user_src/soft_engine.c **** short rst = 0; 71 .loc 1 20 11 72 000c 0023 movs r3, #0 73 000e FB81 strh r3, [r7, #14] @ movhi 21:user_src/soft_engine.c **** 22:user_src/soft_engine.c **** if (pdata[0] == 0x5A && pdata[1] == 0xA5 && pdata[2] == 0x1A && pdata[3] == 0x02) 74 .loc 1 22 14 75 0010 7B68 ldr r3, [r7, #4] 76 0012 1B78 ldrb r3, [r3] @ zero_extendqisi2 77 .loc 1 22 8 78 0014 5A2B cmp r3, #90 79 0016 2DD1 bne .L2 80 .loc 1 22 34 discriminator 1 81 0018 7B68 ldr r3, [r7, #4] 82 001a 0133 adds r3, r3, #1 83 001c 1B78 ldrb r3, [r3] @ zero_extendqisi2 84 .loc 1 22 26 discriminator 1 85 001e A52B cmp r3, #165 86 0020 28D1 bne .L2 87 .loc 1 22 54 discriminator 2 88 0022 7B68 ldr r3, [r7, #4] ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 3 89 0024 0233 adds r3, r3, #2 90 0026 1B78 ldrb r3, [r3] @ zero_extendqisi2 91 .loc 1 22 46 discriminator 2 92 0028 1A2B cmp r3, #26 93 002a 23D1 bne .L2 94 .loc 1 22 74 discriminator 3 95 002c 7B68 ldr r3, [r7, #4] 96 002e 0333 adds r3, r3, #3 97 0030 1B78 ldrb r3, [r3] @ zero_extendqisi2 98 .loc 1 22 66 discriminator 3 99 0032 022B cmp r3, #2 100 0034 1ED1 bne .L2 101 .LBB2: 23:user_src/soft_engine.c **** { 24:user_src/soft_engine.c **** unsigned char dNum = pdata[2]; 102 .loc 1 24 23 103 0036 7B68 ldr r3, [r7, #4] 104 0038 9B78 ldrb r3, [r3, #2] 105 003a 7B73 strb r3, [r7, #13] 25:user_src/soft_engine.c **** 26:user_src/soft_engine.c **** //校验通过。 27:user_src/soft_engine.c **** if (Get_Crc16(pdata, dNum + 5) == 0) 106 .loc 1 27 13 107 003c 7B7B ldrb r3, [r7, #13] @ zero_extendqisi2 108 003e 9BB2 uxth r3, r3 109 0040 0533 adds r3, r3, #5 110 0042 9BB2 uxth r3, r3 111 0044 1946 mov r1, r3 112 0046 7868 ldr r0, [r7, #4] 113 0048 FFF7FEFF bl Get_Crc16 114 004c 0346 mov r3, r0 115 .loc 1 27 12 116 004e 002B cmp r3, #0 117 0050 10D1 bne .L2 28:user_src/soft_engine.c **** { 29:user_src/soft_engine.c **** rst = 1; 118 .loc 1 29 17 119 0052 0123 movs r3, #1 120 0054 FB81 strh r3, [r7, #14] @ movhi 30:user_src/soft_engine.c **** 31:user_src/soft_engine.c **** aoan_engine_Link.connect_status = COMP_NORMAL; 121 .loc 1 31 45 122 0056 0A4B ldr r3, .L4 123 0058 0122 movs r2, #1 124 005a 1A72 strb r2, [r3, #8] 32:user_src/soft_engine.c **** 33:user_src/soft_engine.c **** //赋值数据 34:user_src/soft_engine.c **** memcpy(&aoan_data, &pdata[3], dNum); 125 .loc 1 34 32 126 005c 7B68 ldr r3, [r7, #4] 127 005e 0333 adds r3, r3, #3 128 .loc 1 34 13 129 0060 7A7B ldrb r2, [r7, #13] @ zero_extendqisi2 130 0062 1946 mov r1, r3 131 0064 0748 ldr r0, .L4+4 132 0066 FFF7FEFF bl memcpy 35:user_src/soft_engine.c **** ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 4 36:user_src/soft_engine.c **** aoan_engine_Link.recv_time = HAL_GetTick(); 133 .loc 1 36 42 134 006a FFF7FEFF bl HAL_GetTick 135 006e 0346 mov r3, r0 136 .loc 1 36 40 137 0070 034A ldr r2, .L4 138 0072 1360 str r3, [r2] 139 .L2: 140 .LBE2: 37:user_src/soft_engine.c **** 38:user_src/soft_engine.c **** } 39:user_src/soft_engine.c **** } 40:user_src/soft_engine.c **** 41:user_src/soft_engine.c **** return rst; 141 .loc 1 41 12 142 0074 B7F90E30 ldrsh r3, [r7, #14] 42:user_src/soft_engine.c **** } 143 .loc 1 42 1 144 0078 1846 mov r0, r3 145 007a 1037 adds r7, r7, #16 146 .LCFI3: 147 .cfi_def_cfa_offset 8 148 007c BD46 mov sp, r7 149 .LCFI4: 150 .cfi_def_cfa_register 13 151 @ sp needed 152 007e 80BD pop {r7, pc} 153 .L5: 154 .align 2 155 .L4: 156 0080 00000000 .word aoan_engine_Link 157 0084 00000000 .word aoan_data 158 .cfi_endproc 159 .LFE133: 161 .global vkv3_data 162 .section .data.vkv3_data,"aw" 163 .align 2 166 vkv3_data: 167 0000 00 .byte 0 168 0001 00000000 .space 29 168 00000000 168 00000000 168 00000000 168 00000000 169 001e FFFF .short -1 170 0020 00000000 .space 7 170 000000 171 .global vkv3_engine_link 172 .section .bss.vkv3_engine_link,"aw",%nobits 173 .align 2 176 vkv3_engine_link: 177 0000 00000000 .space 12 177 00000000 177 00000000 178 .section .text.decode_vkv3_engine,"ax",%progbits 179 .align 1 180 .global decode_vkv3_engine ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 5 181 .syntax unified 182 .thumb 183 .thumb_func 185 decode_vkv3_engine: 186 .LFB134: 43:user_src/soft_engine.c **** 44:user_src/soft_engine.c **** // //串口接收VKV3发动机数据 45:user_src/soft_engine.c **** VKV3_TYPE vkv3_data = {0, .engin_warn = 0xffff}; 46:user_src/soft_engine.c **** // VKV3_TYPE vkv3_data2 = {0, .engin_warn = 0xffff}; 47:user_src/soft_engine.c **** Connect_check vkv3_engine_link; 48:user_src/soft_engine.c **** // Connect_check vkv3_engine2_link; 49:user_src/soft_engine.c **** 50:user_src/soft_engine.c **** //解析V3协议油电混传感器数据 51:user_src/soft_engine.c **** short decode_vkv3_engine(uint8_t *pdata, uint16_t length) 52:user_src/soft_engine.c **** { 187 .loc 1 52 1 188 .cfi_startproc 189 @ args = 0, pretend = 0, frame = 24 190 @ frame_needed = 1, uses_anonymous_args = 0 191 0000 80B5 push {r7, lr} 192 .LCFI5: 193 .cfi_def_cfa_offset 8 194 .cfi_offset 7, -8 195 .cfi_offset 14, -4 196 0002 86B0 sub sp, sp, #24 197 .LCFI6: 198 .cfi_def_cfa_offset 32 199 0004 00AF add r7, sp, #0 200 .LCFI7: 201 .cfi_def_cfa_register 7 202 0006 7860 str r0, [r7, #4] 203 0008 0B46 mov r3, r1 204 000a 7B80 strh r3, [r7, #2] @ movhi 53:user_src/soft_engine.c **** short rst = 0; 205 .loc 1 53 11 206 000c 0023 movs r3, #0 207 000e FB82 strh r3, [r7, #22] @ movhi 54:user_src/soft_engine.c **** uint32_t engine_sn_temp = 0; 208 .loc 1 54 14 209 0010 0023 movs r3, #0 210 0012 BB60 str r3, [r7, #8] 55:user_src/soft_engine.c **** static uint32_t engine_sn1 = 0; 56:user_src/soft_engine.c **** VKV3_TYPE *ptr = NULL; 211 .loc 1 56 16 212 0014 0023 movs r3, #0 213 0016 3B61 str r3, [r7, #16] 57:user_src/soft_engine.c **** 58:user_src/soft_engine.c **** 59:user_src/soft_engine.c **** if (pdata[0] == 0x5A && pdata[1] == 0xA5 && pdata[2] == 0X27 && pdata[4] == 0X03) 214 .loc 1 59 14 215 0018 7B68 ldr r3, [r7, #4] 216 001a 1B78 ldrb r3, [r3] @ zero_extendqisi2 217 .loc 1 59 8 218 001c 5A2B cmp r3, #90 219 001e 4AD1 bne .L12 220 .loc 1 59 34 discriminator 1 221 0020 7B68 ldr r3, [r7, #4] ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 6 222 0022 0133 adds r3, r3, #1 223 0024 1B78 ldrb r3, [r3] @ zero_extendqisi2 224 .loc 1 59 26 discriminator 1 225 0026 A52B cmp r3, #165 226 0028 45D1 bne .L12 227 .loc 1 59 54 discriminator 2 228 002a 7B68 ldr r3, [r7, #4] 229 002c 0233 adds r3, r3, #2 230 002e 1B78 ldrb r3, [r3] @ zero_extendqisi2 231 .loc 1 59 46 discriminator 2 232 0030 272B cmp r3, #39 233 0032 40D1 bne .L12 234 .loc 1 59 74 discriminator 3 235 0034 7B68 ldr r3, [r7, #4] 236 0036 0433 adds r3, r3, #4 237 0038 1B78 ldrb r3, [r3] @ zero_extendqisi2 238 .loc 1 59 66 discriminator 3 239 003a 032B cmp r3, #3 240 003c 3BD1 bne .L12 241 .LBB3: 60:user_src/soft_engine.c **** { 61:user_src/soft_engine.c **** unsigned char dLEN = pdata[2]; 242 .loc 1 61 23 243 003e 7B68 ldr r3, [r7, #4] 244 0040 9B78 ldrb r3, [r3, #2] 245 0042 FB73 strb r3, [r7, #15] 62:user_src/soft_engine.c **** unsigned char comID = pdata[3]; 246 .loc 1 62 23 247 0044 7B68 ldr r3, [r7, #4] 248 0046 DB78 ldrb r3, [r3, #3] 249 0048 BB73 strb r3, [r7, #14] 63:user_src/soft_engine.c **** 64:user_src/soft_engine.c **** //校验通过。 65:user_src/soft_engine.c **** if (Get_Crc16(pdata, dLEN + 6) == 0) 250 .loc 1 65 13 251 004a FB7B ldrb r3, [r7, #15] @ zero_extendqisi2 252 004c 9BB2 uxth r3, r3 253 004e 0633 adds r3, r3, #6 254 0050 9BB2 uxth r3, r3 255 0052 1946 mov r1, r3 256 0054 7868 ldr r0, [r7, #4] 257 0056 FFF7FEFF bl Get_Crc16 258 005a 0346 mov r3, r0 259 .loc 1 65 12 260 005c 002B cmp r3, #0 261 005e 2AD1 bne .L12 66:user_src/soft_engine.c **** { 67:user_src/soft_engine.c **** memcpy(&engine_sn_temp, &pdata[12], 4); 262 .loc 1 67 37 263 0060 7B68 ldr r3, [r7, #4] 264 0062 0C33 adds r3, r3, #12 265 0064 1B68 ldr r3, [r3] @ unaligned 266 .loc 1 67 13 267 0066 BB60 str r3, [r7, #8] 68:user_src/soft_engine.c **** rst = 1; 268 .loc 1 68 17 269 0068 0123 movs r3, #1 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 7 270 006a FB82 strh r3, [r7, #22] @ movhi 69:user_src/soft_engine.c **** 70:user_src/soft_engine.c **** if(engine_sn1 == 0 || engine_sn_temp == engine_sn1) 271 .loc 1 70 27 272 006c 164B ldr r3, .L14 273 006e 1B68 ldr r3, [r3] 274 .loc 1 70 15 275 0070 002B cmp r3, #0 276 0072 04D0 beq .L8 277 .loc 1 70 50 discriminator 1 278 0074 BA68 ldr r2, [r7, #8] 279 0076 144B ldr r3, .L14 280 0078 1B68 ldr r3, [r3] 281 .loc 1 70 32 discriminator 1 282 007a 9A42 cmp r2, r3 283 007c 10D1 bne .L9 284 .L8: 71:user_src/soft_engine.c **** { 72:user_src/soft_engine.c **** ptr = &vkv3_data; 285 .loc 1 72 21 286 007e 134B ldr r3, .L14+4 287 0080 3B61 str r3, [r7, #16] 73:user_src/soft_engine.c **** vkv3_engine_link.connect_status = COMP_NORMAL; 288 .loc 1 73 49 289 0082 134B ldr r3, .L14+8 290 0084 0122 movs r2, #1 291 0086 1A72 strb r2, [r3, #8] 74:user_src/soft_engine.c **** vkv3_engine_link.recv_time = HAL_GetTick(); 292 .loc 1 74 46 293 0088 FFF7FEFF bl HAL_GetTick 294 008c 0346 mov r3, r0 295 .loc 1 74 44 296 008e 104A ldr r2, .L14+8 297 0090 1360 str r3, [r2] 75:user_src/soft_engine.c **** 76:user_src/soft_engine.c **** if(engine_sn1 == 0) 298 .loc 1 76 31 299 0092 0D4B ldr r3, .L14 300 0094 1B68 ldr r3, [r3] 301 .loc 1 76 19 302 0096 002B cmp r3, #0 303 0098 02D1 bne .L9 77:user_src/soft_engine.c **** engine_sn1 = engine_sn_temp; 304 .loc 1 77 32 305 009a BB68 ldr r3, [r7, #8] 306 009c 0A4A ldr r2, .L14 307 009e 1360 str r3, [r2] 308 .L9: 78:user_src/soft_engine.c **** } 79:user_src/soft_engine.c **** else 80:user_src/soft_engine.c **** { 81:user_src/soft_engine.c **** // ptr = &vkv3_data2; 82:user_src/soft_engine.c **** // vkv3_engine2_link.connect_status = COMP_NORMAL; 83:user_src/soft_engine.c **** // vkv3_engine2_link.recv_time = HAL_GetTick(); 84:user_src/soft_engine.c **** } 85:user_src/soft_engine.c **** 86:user_src/soft_engine.c **** switch (comID) ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 8 309 .loc 1 86 13 310 00a0 BB7B ldrb r3, [r7, #14] @ zero_extendqisi2 311 00a2 012B cmp r3, #1 312 00a4 09D1 bne .L13 87:user_src/soft_engine.c **** { 88:user_src/soft_engine.c **** case 0X01: 89:user_src/soft_engine.c **** //赋值数据 90:user_src/soft_engine.c **** memcpy(&ptr->engin_ver, &pdata[4], dLEN); 313 .loc 1 90 24 314 00a6 3869 ldr r0, [r7, #16] 315 .loc 1 90 41 316 00a8 7B68 ldr r3, [r7, #4] 317 00aa 0433 adds r3, r3, #4 318 .loc 1 90 17 319 00ac FA7B ldrb r2, [r7, #15] @ zero_extendqisi2 320 00ae 1946 mov r1, r3 321 00b0 FFF7FEFF bl memcpy 91:user_src/soft_engine.c **** break; 322 .loc 1 91 17 323 00b4 02E0 b .L7 324 .L12: 92:user_src/soft_engine.c **** default: 93:user_src/soft_engine.c **** break; 94:user_src/soft_engine.c **** } 95:user_src/soft_engine.c **** 96:user_src/soft_engine.c **** } 325 .loc 1 96 9 326 00b6 00BF nop 327 00b8 00E0 b .L7 328 .L13: 93:user_src/soft_engine.c **** } 329 .loc 1 93 17 330 00ba 00BF nop 331 .L7: 332 .LBE3: 97:user_src/soft_engine.c **** } 98:user_src/soft_engine.c **** 99:user_src/soft_engine.c **** return rst; 333 .loc 1 99 12 334 00bc B7F91630 ldrsh r3, [r7, #22] 100:user_src/soft_engine.c **** } 335 .loc 1 100 1 336 00c0 1846 mov r0, r3 337 00c2 1837 adds r7, r7, #24 338 .LCFI8: 339 .cfi_def_cfa_offset 8 340 00c4 BD46 mov sp, r7 341 .LCFI9: 342 .cfi_def_cfa_register 13 343 @ sp needed 344 00c6 80BD pop {r7, pc} 345 .L15: 346 .align 2 347 .L14: 348 00c8 00000000 .word engine_sn1.4 349 00cc 00000000 .word vkv3_data 350 00d0 00000000 .word vkv3_engine_link ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 9 351 .cfi_endproc 352 .LFE134: 354 .global geely_set_tcd 355 .section .bss.geely_set_tcd,"aw",%nobits 358 geely_set_tcd: 359 0000 00 .space 1 360 .global geely_set_tcd_re 361 .section .bss.geely_set_tcd_re,"aw",%nobits 364 geely_set_tcd_re: 365 0000 00 .space 1 366 .global geely_set_tlock 367 .section .bss.geely_set_tlock,"aw",%nobits 370 geely_set_tlock: 371 0000 00 .space 1 372 .global geely_set_tlock_re 373 .section .bss.geely_set_tlock_re,"aw",%nobits 376 geely_set_tlock_re: 377 0000 00 .space 1 378 .global geely_set_protect 379 .section .bss.geely_set_protect,"aw",%nobits 382 geely_set_protect: 383 0000 00 .space 1 384 .global geely_send_BJtime 385 .section .bss.geely_send_BJtime,"aw",%nobits 388 geely_send_BJtime: 389 0000 00 .space 1 390 .global geely_get_version 391 .section .bss.geely_get_version,"aw",%nobits 394 geely_get_version: 395 0000 00 .space 1 396 .global geely_get_time 397 .section .bss.geely_get_time,"aw",%nobits 400 geely_get_time: 401 0000 00 .space 1 402 .global geely_data2 403 .section .bss.geely_data2,"aw",%nobits 404 .align 2 407 geely_data2: 408 0000 00000000 .space 80 408 00000000 408 00000000 408 00000000 408 00000000 409 .global geely_data 410 .section .bss.geely_data,"aw",%nobits 411 .align 2 414 geely_data: 415 0000 00000000 .space 40 415 00000000 415 00000000 415 00000000 415 00000000 416 .global geely_moni 417 .section .bss.geely_moni,"aw",%nobits 418 .align 2 421 geely_moni: 422 0000 00000000 .space 20 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 10 422 00000000 422 00000000 422 00000000 422 00000000 423 .global geely_engin_link 424 .section .bss.geely_engin_link,"aw",%nobits 425 .align 2 428 geely_engin_link: 429 0000 00000000 .space 12 429 00000000 429 00000000 430 .global geely_version2_count 431 .section .bss.geely_version2_count,"aw",%nobits 432 .align 2 435 geely_version2_count: 436 0000 00000000 .space 4 437 .section .text.EngGeelyCanRecvHookFunction,"ax",%progbits 438 .align 1 439 .global EngGeelyCanRecvHookFunction 440 .syntax unified 441 .thumb 442 .thumb_func 444 EngGeelyCanRecvHookFunction: 445 .LFB135: 101:user_src/soft_engine.c **** 102:user_src/soft_engine.c **** 103:user_src/soft_engine.c **** 104:user_src/soft_engine.c **** 105:user_src/soft_engine.c **** 106:user_src/soft_engine.c **** 107:user_src/soft_engine.c **** 108:user_src/soft_engine.c **** bool geely_set_tcd = false,geely_set_tcd_re = false, 109:user_src/soft_engine.c **** geely_set_tlock = false, geely_set_tlock_re = false, geely_set_protect = false, 110:user_src/soft_engine.c **** geely_send_BJtime = false,geely_get_version = false,geely_get_time = false; 111:user_src/soft_engine.c **** GEELY2 geely_data2; 112:user_src/soft_engine.c **** //解析吉利发动机 113:user_src/soft_engine.c **** GEELY geely_data = {0}; 114:user_src/soft_engine.c **** GEELY_MONI geely_moni = {0}; 115:user_src/soft_engine.c **** 116:user_src/soft_engine.c **** 117:user_src/soft_engine.c **** Connect_check geely_engin_link; 118:user_src/soft_engine.c **** int geely_version2_count = 0; 119:user_src/soft_engine.c **** void EngGeelyCanRecvHookFunction(uint32_t cellCanID, uint8_t data[], uint8_t len) 120:user_src/soft_engine.c **** { 446 .loc 1 120 1 447 .cfi_startproc 448 @ args = 0, pretend = 0, frame = 24 449 @ frame_needed = 1, uses_anonymous_args = 0 450 0000 80B5 push {r7, lr} 451 .LCFI10: 452 .cfi_def_cfa_offset 8 453 .cfi_offset 7, -8 454 .cfi_offset 14, -4 455 0002 86B0 sub sp, sp, #24 456 .LCFI11: 457 .cfi_def_cfa_offset 32 458 0004 00AF add r7, sp, #0 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 11 459 .LCFI12: 460 .cfi_def_cfa_register 7 461 0006 F860 str r0, [r7, #12] 462 0008 B960 str r1, [r7, #8] 463 000a 1346 mov r3, r2 464 000c FB71 strb r3, [r7, #7] 121:user_src/soft_engine.c **** if(cellCanID == 0x100) //第二版协议识别 465 .loc 1 121 7 466 000e FB68 ldr r3, [r7, #12] 467 0010 B3F5807F cmp r3, #256 468 0014 08D1 bne .L17 122:user_src/soft_engine.c **** { 123:user_src/soft_engine.c **** geely_engin_link.connect_status = COMP_NORMAL; 469 .loc 1 123 41 470 0016 A74B ldr r3, .L48 471 0018 0122 movs r2, #1 472 001a 1A72 strb r2, [r3, #8] 124:user_src/soft_engine.c **** geely_engin_link.recv_time = HAL_GetTick(); 473 .loc 1 124 38 474 001c FFF7FEFF bl HAL_GetTick 475 0020 0346 mov r3, r0 476 .loc 1 124 36 477 0022 A44A ldr r2, .L48 478 0024 1360 str r3, [r2] 479 0026 91E1 b .L18 480 .L17: 125:user_src/soft_engine.c **** } 126:user_src/soft_engine.c **** else if (cellCanID == 0x1c0) 481 .loc 1 126 13 482 0028 FB68 ldr r3, [r7, #12] 483 002a B3F5E07F cmp r3, #448 484 002e 06D1 bne .L19 127:user_src/soft_engine.c **** { 128:user_src/soft_engine.c **** memcpy(&geely_data.engine_ver, &data[0], len); 485 .loc 1 128 9 486 0030 FB79 ldrb r3, [r7, #7] @ zero_extendqisi2 487 0032 1A46 mov r2, r3 488 0034 B968 ldr r1, [r7, #8] 489 0036 A048 ldr r0, .L48+4 490 0038 FFF7FEFF bl memcpy 491 003c 86E1 b .L18 492 .L19: 129:user_src/soft_engine.c **** } 130:user_src/soft_engine.c **** else if (cellCanID == 0x1c1) 493 .loc 1 130 13 494 003e FB68 ldr r3, [r7, #12] 495 0040 40F2C112 movw r2, #449 496 0044 9342 cmp r3, r2 497 0046 09D1 bne .L20 131:user_src/soft_engine.c **** { 132:user_src/soft_engine.c **** //木牛防地雷达会异常进入发动机识别 133:user_src/soft_engine.c **** geely_engin_link.connect_status = COMP_NORMAL; 498 .loc 1 133 41 499 0048 9A4B ldr r3, .L48 500 004a 0122 movs r2, #1 501 004c 1A72 strb r2, [r3, #8] 134:user_src/soft_engine.c **** ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 12 135:user_src/soft_engine.c **** memcpy(&geely_data.engine_rev, &data[0], len); 502 .loc 1 135 9 503 004e FB79 ldrb r3, [r7, #7] @ zero_extendqisi2 504 0050 1A46 mov r2, r3 505 0052 B968 ldr r1, [r7, #8] 506 0054 9948 ldr r0, .L48+8 507 0056 FFF7FEFF bl memcpy 508 005a 77E1 b .L18 509 .L20: 136:user_src/soft_engine.c **** } 137:user_src/soft_engine.c **** else if (cellCanID == 0x1c2) 510 .loc 1 137 13 511 005c FB68 ldr r3, [r7, #12] 512 005e B3F5E17F cmp r3, #450 513 0062 06D1 bne .L21 138:user_src/soft_engine.c **** { 139:user_src/soft_engine.c **** memcpy(&geely_data.engine_vol, &data[0], len); 514 .loc 1 139 9 515 0064 FB79 ldrb r3, [r7, #7] @ zero_extendqisi2 516 0066 1A46 mov r2, r3 517 0068 B968 ldr r1, [r7, #8] 518 006a 9548 ldr r0, .L48+12 519 006c FFF7FEFF bl memcpy 520 0070 6CE1 b .L18 521 .L21: 140:user_src/soft_engine.c **** } 141:user_src/soft_engine.c **** else if (cellCanID == 0x1c3) 522 .loc 1 141 13 523 0072 FB68 ldr r3, [r7, #12] 524 0074 40F2C312 movw r2, #451 525 0078 9342 cmp r3, r2 526 007a 40F08380 bne .L22 527 .LBB4: 142:user_src/soft_engine.c **** { 143:user_src/soft_engine.c **** uint8_t checkSum = 0; 528 .loc 1 143 17 529 007e 0023 movs r3, #0 530 0080 FB75 strb r3, [r7, #23] 531 .LBB5: 144:user_src/soft_engine.c **** for (uint8_t i = 0; i < 8; i++) 532 .loc 1 144 22 533 0082 0023 movs r3, #0 534 0084 BB75 strb r3, [r7, #22] 535 .loc 1 144 9 536 0086 09E0 b .L23 537 .L24: 145:user_src/soft_engine.c **** { 146:user_src/soft_engine.c **** checkSum += data[i]; 538 .loc 1 146 29 discriminator 3 539 0088 BB7D ldrb r3, [r7, #22] @ zero_extendqisi2 540 008a BA68 ldr r2, [r7, #8] 541 008c 1344 add r3, r3, r2 542 008e 1A78 ldrb r2, [r3] @ zero_extendqisi2 543 .loc 1 146 22 discriminator 3 544 0090 FB7D ldrb r3, [r7, #23] 545 0092 1344 add r3, r3, r2 546 0094 FB75 strb r3, [r7, #23] ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 13 144:user_src/soft_engine.c **** for (uint8_t i = 0; i < 8; i++) 547 .loc 1 144 37 discriminator 3 548 0096 BB7D ldrb r3, [r7, #22] @ zero_extendqisi2 549 0098 0133 adds r3, r3, #1 550 009a BB75 strb r3, [r7, #22] 551 .L23: 144:user_src/soft_engine.c **** for (uint8_t i = 0; i < 8; i++) 552 .loc 1 144 9 discriminator 1 553 009c BB7D ldrb r3, [r7, #22] @ zero_extendqisi2 554 009e 072B cmp r3, #7 555 00a0 F2D9 bls .L24 556 .LBE5: 147:user_src/soft_engine.c **** } 148:user_src/soft_engine.c **** 149:user_src/soft_engine.c **** geely_moni.recv_1c3++; 557 .loc 1 149 19 558 00a2 884B ldr r3, .L48+16 559 00a4 9B68 ldr r3, [r3, #8] 560 .loc 1 149 28 561 00a6 0133 adds r3, r3, #1 562 00a8 864A ldr r2, .L48+16 563 00aa 9360 str r3, [r2, #8] 150:user_src/soft_engine.c **** 151:user_src/soft_engine.c **** if (checkSum == 0) 564 .loc 1 151 12 565 00ac FB7D ldrb r3, [r7, #23] @ zero_extendqisi2 566 00ae 002B cmp r3, #0 567 00b0 62D1 bne .L25 152:user_src/soft_engine.c **** { 153:user_src/soft_engine.c **** memcpy(&geely_data.engine_control, &data[0], len); 568 .loc 1 153 13 569 00b2 FB79 ldrb r3, [r7, #7] @ zero_extendqisi2 570 00b4 1A46 mov r2, r3 571 00b6 B968 ldr r1, [r7, #8] 572 00b8 8348 ldr r0, .L48+20 573 00ba FFF7FEFF bl memcpy 154:user_src/soft_engine.c **** 155:user_src/soft_engine.c **** if (geely_moni.msg1c3_last + 1 != geely_data.engine_counts) 574 .loc 1 155 27 575 00be 814B ldr r3, .L48+16 576 00c0 1B78 ldrb r3, [r3] 577 00c2 C3F30303 ubfx r3, r3, #0, #4 578 00c6 DBB2 uxtb r3, r3 579 .loc 1 155 40 580 00c8 0133 adds r3, r3, #1 581 .loc 1 155 57 582 00ca 7B4A ldr r2, .L48+4 583 00cc 927F ldrb r2, [r2, #30] 584 00ce C2F30312 ubfx r2, r2, #4, #4 585 00d2 D2B2 uxtb r2, r2 586 .loc 1 155 16 587 00d4 9342 cmp r3, r2 588 00d6 04D0 beq .L26 156:user_src/soft_engine.c **** { 157:user_src/soft_engine.c **** geely_moni.msg1c3_indexerr++; 589 .loc 1 157 27 590 00d8 7A4B ldr r3, .L48+16 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 14 591 00da 1B69 ldr r3, [r3, #16] 592 .loc 1 157 43 593 00dc 0133 adds r3, r3, #1 594 00de 794A ldr r2, .L48+16 595 00e0 1361 str r3, [r2, #16] 596 .L26: 158:user_src/soft_engine.c **** } 159:user_src/soft_engine.c **** geely_moni.msg1c3_last = geely_data.engine_counts; 597 .loc 1 159 48 598 00e2 754B ldr r3, .L48+4 599 00e4 9B7F ldrb r3, [r3, #30] 600 00e6 C3F30313 ubfx r3, r3, #4, #4 601 00ea D9B2 uxtb r1, r3 602 .loc 1 159 36 603 00ec 754A ldr r2, .L48+16 604 00ee 1378 ldrb r3, [r2] 605 00f0 61F30303 bfi r3, r1, #0, #4 606 00f4 1370 strb r3, [r2] 160:user_src/soft_engine.c **** 161:user_src/soft_engine.c **** 162:user_src/soft_engine.c **** if(geely_data.engine_set == 0x11) 607 .loc 1 162 26 608 00f6 704B ldr r3, .L48+4 609 00f8 5B7E ldrb r3, [r3, #25] @ zero_extendqisi2 610 .loc 1 162 15 611 00fa 112B cmp r3, #17 612 00fc 0CD1 bne .L27 163:user_src/soft_engine.c **** { 164:user_src/soft_engine.c **** //接收保养时间反馈 165:user_src/soft_engine.c **** if(geely_set_tcd == true) 613 .loc 1 165 34 614 00fe 734B ldr r3, .L48+24 615 0100 1B78 ldrb r3, [r3] @ zero_extendqisi2 616 .loc 1 165 19 617 0102 002B cmp r3, #0 618 0104 08D0 beq .L27 166:user_src/soft_engine.c **** { 167:user_src/soft_engine.c **** geely_set_tcd = false; 619 .loc 1 167 35 620 0106 714B ldr r3, .L48+24 621 0108 0022 movs r2, #0 622 010a 1A70 strb r2, [r3] 168:user_src/soft_engine.c **** geely_set_counts = 0; 623 .loc 1 168 38 624 010c 704B ldr r3, .L48+28 625 010e 0022 movs r2, #0 626 0110 1A80 strh r2, [r3] @ movhi 169:user_src/soft_engine.c **** 170:user_src/soft_engine.c **** geely_set_tcd_re = true; 627 .loc 1 170 38 628 0112 704B ldr r3, .L48+32 629 0114 0122 movs r2, #1 630 0116 1A70 strb r2, [r3] 631 .L27: 171:user_src/soft_engine.c **** } 172:user_src/soft_engine.c **** } 173:user_src/soft_engine.c **** if(geely_data.engine_set == 0x12) ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 15 632 .loc 1 173 26 633 0118 674B ldr r3, .L48+4 634 011a 5B7E ldrb r3, [r3, #25] @ zero_extendqisi2 635 .loc 1 173 15 636 011c 122B cmp r3, #18 637 011e 09D1 bne .L28 174:user_src/soft_engine.c **** { 175:user_src/soft_engine.c **** //接收保养时间复位反馈 176:user_src/soft_engine.c **** if(geely_set_tcd_re == true) 638 .loc 1 176 37 639 0120 6C4B ldr r3, .L48+32 640 0122 1B78 ldrb r3, [r3] @ zero_extendqisi2 641 .loc 1 176 19 642 0124 002B cmp r3, #0 643 0126 05D0 beq .L28 177:user_src/soft_engine.c **** { 178:user_src/soft_engine.c **** geely_set_tcd_re = false; 644 .loc 1 178 38 645 0128 6A4B ldr r3, .L48+32 646 012a 0022 movs r2, #0 647 012c 1A70 strb r2, [r3] 179:user_src/soft_engine.c **** geely_set_counts = 0; 648 .loc 1 179 38 649 012e 684B ldr r3, .L48+28 650 0130 0022 movs r2, #0 651 0132 1A80 strh r2, [r3] @ movhi 652 .L28: 180:user_src/soft_engine.c **** } 181:user_src/soft_engine.c **** } 182:user_src/soft_engine.c **** if(geely_data.engine_set == 0x14) 653 .loc 1 182 26 654 0134 604B ldr r3, .L48+4 655 0136 5B7E ldrb r3, [r3, #25] @ zero_extendqisi2 656 .loc 1 182 15 657 0138 142B cmp r3, #20 658 013a 0CD1 bne .L29 183:user_src/soft_engine.c **** { 184:user_src/soft_engine.c **** //接收锁机时间反馈 185:user_src/soft_engine.c **** if(geely_set_tlock == true) 659 .loc 1 185 36 660 013c 664B ldr r3, .L48+36 661 013e 1B78 ldrb r3, [r3] @ zero_extendqisi2 662 .loc 1 185 19 663 0140 002B cmp r3, #0 664 0142 08D0 beq .L29 186:user_src/soft_engine.c **** { 187:user_src/soft_engine.c **** geely_set_tlock = false; 665 .loc 1 187 37 666 0144 644B ldr r3, .L48+36 667 0146 0022 movs r2, #0 668 0148 1A70 strb r2, [r3] 188:user_src/soft_engine.c **** geely_set_counts = 0; 669 .loc 1 188 38 670 014a 614B ldr r3, .L48+28 671 014c 0022 movs r2, #0 672 014e 1A80 strh r2, [r3] @ movhi 189:user_src/soft_engine.c **** ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 16 190:user_src/soft_engine.c **** geely_set_tlock_re = true; 673 .loc 1 190 40 674 0150 624B ldr r3, .L48+40 675 0152 0122 movs r2, #1 676 0154 1A70 strb r2, [r3] 677 .L29: 191:user_src/soft_engine.c **** } 192:user_src/soft_engine.c **** } 193:user_src/soft_engine.c **** if(geely_data.engine_set == 0x15) 678 .loc 1 193 26 679 0156 584B ldr r3, .L48+4 680 0158 5B7E ldrb r3, [r3, #25] @ zero_extendqisi2 681 .loc 1 193 15 682 015a 152B cmp r3, #21 683 015c 40F0F680 bne .L18 194:user_src/soft_engine.c **** { 195:user_src/soft_engine.c **** //接收锁机时间复位反馈 196:user_src/soft_engine.c **** if(geely_set_tlock_re == true) 684 .loc 1 196 39 685 0160 5E4B ldr r3, .L48+40 686 0162 1B78 ldrb r3, [r3] @ zero_extendqisi2 687 .loc 1 196 19 688 0164 002B cmp r3, #0 689 0166 00F0F180 beq .L18 197:user_src/soft_engine.c **** { 198:user_src/soft_engine.c **** geely_set_tlock_re = false; 690 .loc 1 198 40 691 016a 5C4B ldr r3, .L48+40 692 016c 0022 movs r2, #0 693 016e 1A70 strb r2, [r3] 199:user_src/soft_engine.c **** geely_set_counts = 0; 694 .loc 1 199 38 695 0170 574B ldr r3, .L48+28 696 0172 0022 movs r2, #0 697 0174 1A80 strh r2, [r3] @ movhi 698 0176 E9E0 b .L18 699 .L25: 200:user_src/soft_engine.c **** } 201:user_src/soft_engine.c **** } 202:user_src/soft_engine.c **** if(geely_data.engine_set == 0x17) 203:user_src/soft_engine.c **** { 204:user_src/soft_engine.c **** 205:user_src/soft_engine.c **** } 206:user_src/soft_engine.c **** } 207:user_src/soft_engine.c **** else 208:user_src/soft_engine.c **** { 209:user_src/soft_engine.c **** geely_moni.msg1c3_sumerr++; 700 .loc 1 209 23 701 0178 524B ldr r3, .L48+16 702 017a DB68 ldr r3, [r3, #12] 703 .loc 1 209 37 704 017c 0133 adds r3, r3, #1 705 017e 514A ldr r2, .L48+16 706 0180 D360 str r3, [r2, #12] 707 0182 E3E0 b .L18 708 .L22: 709 .LBE4: ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 17 210:user_src/soft_engine.c **** } 211:user_src/soft_engine.c **** } 212:user_src/soft_engine.c **** else if (cellCanID == 0x1c4) 710 .loc 1 212 13 711 0184 FB68 ldr r3, [r7, #12] 712 0186 B3F5E27F cmp r3, #452 713 018a 06D1 bne .L31 213:user_src/soft_engine.c **** { 214:user_src/soft_engine.c **** memcpy(&geely_data.engine_runtime, &data[0], len); 714 .loc 1 214 9 715 018c FB79 ldrb r3, [r7, #7] @ zero_extendqisi2 716 018e 1A46 mov r2, r3 717 0190 B968 ldr r1, [r7, #8] 718 0192 5348 ldr r0, .L48+44 719 0194 FFF7FEFF bl memcpy 720 0198 D8E0 b .L18 721 .L31: 215:user_src/soft_engine.c **** } 216:user_src/soft_engine.c **** else 217:user_src/soft_engine.c **** { 218:user_src/soft_engine.c **** if(cellCanID >= 0x1E1 && cellCanID <= 0x1EF) 722 .loc 1 218 11 723 019a FB68 ldr r3, [r7, #12] 724 019c B3F5F07F cmp r3, #480 725 01a0 19D9 bls .L32 726 .loc 1 218 31 discriminator 1 727 01a2 FB68 ldr r3, [r7, #12] 728 01a4 B3F5F87F cmp r3, #496 729 01a8 15D2 bcs .L32 219:user_src/soft_engine.c **** { 220:user_src/soft_engine.c **** geely_engin_link.connect_status = COMP_NORMAL; 730 .loc 1 220 45 731 01aa 424B ldr r3, .L48 732 01ac 0122 movs r2, #1 733 01ae 1A72 strb r2, [r3, #8] 221:user_src/soft_engine.c **** geely_version2_count++; 734 .loc 1 221 33 735 01b0 4C4B ldr r3, .L48+48 736 01b2 1B68 ldr r3, [r3] 737 01b4 0133 adds r3, r3, #1 738 01b6 4B4A ldr r2, .L48+48 739 01b8 1360 str r3, [r2] 222:user_src/soft_engine.c **** if(geely_data2.version2_flag != true && (geely_version2_count > 10)) 740 .loc 1 222 27 741 01ba 4B4B ldr r3, .L48+52 742 01bc 1B78 ldrb r3, [r3] @ zero_extendqisi2 743 .loc 1 222 42 744 01be 83F00103 eor r3, r3, #1 745 01c2 DBB2 uxtb r3, r3 746 .loc 1 222 15 747 01c4 002B cmp r3, #0 748 01c6 06D0 beq .L32 749 .loc 1 222 75 discriminator 1 750 01c8 464B ldr r3, .L48+48 751 01ca 1B68 ldr r3, [r3] 752 .loc 1 222 50 discriminator 1 753 01cc 0A2B cmp r3, #10 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 18 754 01ce 02DD ble .L32 223:user_src/soft_engine.c **** { 224:user_src/soft_engine.c **** geely_data2.version2_flag = true; 755 .loc 1 224 40 756 01d0 454B ldr r3, .L48+52 757 01d2 0122 movs r2, #1 758 01d4 1A70 strb r2, [r3] 759 .L32: 225:user_src/soft_engine.c **** } //作为第二版协议标志 226:user_src/soft_engine.c **** } 227:user_src/soft_engine.c **** //第二版协议 228:user_src/soft_engine.c **** switch (cellCanID) 760 .loc 1 228 9 761 01d6 FB68 ldr r3, [r7, #12] 762 01d8 312B cmp r3, #49 763 01da 33D0 beq .L33 764 01dc FB68 ldr r3, [r7, #12] 765 01de 312B cmp r3, #49 766 01e0 C0F0B380 bcc .L47 767 01e4 FB68 ldr r3, [r7, #12] 768 01e6 B3F5F77F cmp r3, #494 769 01ea 00F2AE80 bhi .L47 770 01ee FB68 ldr r3, [r7, #12] 771 01f0 B3F5F07F cmp r3, #480 772 01f4 40F2A980 bls .L47 773 01f8 FB68 ldr r3, [r7, #12] 774 01fa A3F2E113 subw r3, r3, #481 775 01fe 0D2B cmp r3, #13 776 0200 00F2A380 bhi .L47 777 0204 01A2 adr r2, .L36 778 0206 52F823F0 ldr pc, [r2, r3, lsl #2] 779 020a 00BF .p2align 2 780 .L36: 781 020c 4B030000 .word .L47+1 782 0210 4D020000 .word .L45+1 783 0214 65020000 .word .L44+1 784 0218 77020000 .word .L43+1 785 021c 4B030000 .word .L47+1 786 0220 4B030000 .word .L47+1 787 0224 4B030000 .word .L47+1 788 0228 87020000 .word .L42+1 789 022c A7020000 .word .L41+1 790 0230 0D030000 .word .L40+1 791 0234 19030000 .word .L39+1 792 0238 25030000 .word .L38+1 793 023c 33030000 .word .L37+1 794 0240 3F030000 .word .L35+1 795 .p2align 1 796 .L33: 229:user_src/soft_engine.c **** { 230:user_src/soft_engine.c **** case 0x031: 231:user_src/soft_engine.c **** geely_send_BJtime = true; 797 .loc 1 231 31 798 0244 294B ldr r3, .L48+56 799 0246 0122 movs r2, #1 800 0248 1A70 strb r2, [r3] 232:user_src/soft_engine.c **** break; ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 19 801 .loc 1 232 13 802 024a 7FE0 b .L18 803 .L45: 233:user_src/soft_engine.c **** case 0x1E1: 234:user_src/soft_engine.c **** 235:user_src/soft_engine.c **** break; 236:user_src/soft_engine.c **** case 0x1E2: 237:user_src/soft_engine.c **** geely_get_version = true; 804 .loc 1 237 31 805 024c 284B ldr r3, .L48+60 806 024e 0122 movs r2, #1 807 0250 1A70 strb r2, [r3] 238:user_src/soft_engine.c **** geely_count = 10; 808 .loc 1 238 25 809 0252 284B ldr r3, .L48+64 810 0254 0A22 movs r2, #10 811 0256 1A70 strb r2, [r3] 239:user_src/soft_engine.c **** memcpy(&geely_data2.engine_ver,&data[0],8); 812 .loc 1 239 13 813 0258 0822 movs r2, #8 814 025a B968 ldr r1, [r7, #8] 815 025c 2648 ldr r0, .L48+68 816 025e FFF7FEFF bl memcpy 240:user_src/soft_engine.c **** 241:user_src/soft_engine.c **** break; 817 .loc 1 241 13 818 0262 73E0 b .L18 819 .L44: 242:user_src/soft_engine.c **** case 0x1E3: 243:user_src/soft_engine.c **** geely_get_time = true; 820 .loc 1 243 28 821 0264 254B ldr r3, .L48+72 822 0266 0122 movs r2, #1 823 0268 1A70 strb r2, [r3] 244:user_src/soft_engine.c **** //geely_count = 10; 245:user_src/soft_engine.c **** memcpy(&geely_data2.engine_runtime,&data[0],8); 824 .loc 1 245 13 825 026a 0822 movs r2, #8 826 026c B968 ldr r1, [r7, #8] 827 026e 2448 ldr r0, .L48+76 828 0270 FFF7FEFF bl memcpy 246:user_src/soft_engine.c **** break; 829 .loc 1 246 13 830 0274 6AE0 b .L18 831 .L43: 247:user_src/soft_engine.c **** case 0x1E4: 248:user_src/soft_engine.c **** memcpy(&geely_data2.Bit1E4,&data[0],6); 832 .loc 1 248 13 833 0276 1C4B ldr r3, .L48+52 834 0278 BA68 ldr r2, [r7, #8] 835 027a 1133 adds r3, r3, #17 836 027c 1168 ldr r1, [r2] @ unaligned 837 027e 1960 str r1, [r3] @ unaligned 838 0280 9288 ldrh r2, [r2, #4] @ unaligned 839 0282 9A80 strh r2, [r3, #4] @ unaligned 249:user_src/soft_engine.c **** break; 840 .loc 1 249 13 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 20 841 0284 62E0 b .L18 842 .L42: 250:user_src/soft_engine.c **** case 0x1E8: 251:user_src/soft_engine.c **** memcpy(&geely_data2.engine_time,&data[0],8); 843 .loc 1 251 13 844 0286 0822 movs r2, #8 845 0288 B968 ldr r1, [r7, #8] 846 028a 1E48 ldr r0, .L48+80 847 028c FFF7FEFF bl memcpy 252:user_src/soft_engine.c **** geely_data2.engine_time = ((data[4] >> 6) & 0x3); 848 .loc 1 252 45 849 0290 BB68 ldr r3, [r7, #8] 850 0292 0433 adds r3, r3, #4 851 0294 1B78 ldrb r3, [r3] @ zero_extendqisi2 852 .loc 1 252 55 853 0296 9B09 lsrs r3, r3, #6 854 0298 DBB2 uxtb r3, r3 855 029a 03F00303 and r3, r3, #3 856 .loc 1 252 37 857 029e 124A ldr r2, .L48+52 858 02a0 C2F81730 str r3, [r2, #23] @ unaligned 253:user_src/soft_engine.c **** break; 859 .loc 1 253 13 860 02a4 52E0 b .L18 861 .L41: 254:user_src/soft_engine.c **** case 0x1E9: 255:user_src/soft_engine.c **** memcpy(&geely_data2.engine_rev,&data[0],8); 862 .loc 1 255 13 863 02a6 0822 movs r2, #8 864 02a8 B968 ldr r1, [r7, #8] 865 02aa 1748 ldr r0, .L48+84 866 02ac FFF7FEFF bl memcpy 256:user_src/soft_engine.c **** break; 867 .loc 1 256 13 868 02b0 4CE0 b .L18 869 .L49: 870 02b2 00BF .align 2 871 .L48: 872 02b4 00000000 .word geely_engin_link 873 02b8 00000000 .word geely_data 874 02bc 08000000 .word geely_data+8 875 02c0 10000000 .word geely_data+16 876 02c4 00000000 .word geely_moni 877 02c8 18000000 .word geely_data+24 878 02cc 00000000 .word geely_set_tcd 879 02d0 00000000 .word geely_set_counts 880 02d4 00000000 .word geely_set_tcd_re 881 02d8 00000000 .word geely_set_tlock 882 02dc 00000000 .word geely_set_tlock_re 883 02e0 20000000 .word geely_data+32 884 02e4 00000000 .word geely_version2_count 885 02e8 00000000 .word geely_data2 886 02ec 00000000 .word geely_send_BJtime 887 02f0 00000000 .word geely_get_version 888 02f4 00000000 .word geely_count 889 02f8 01000000 .word geely_data2+1 890 02fc 00000000 .word geely_get_time ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 21 891 0300 09000000 .word geely_data2+9 892 0304 17000000 .word geely_data2+23 893 0308 1F000000 .word geely_data2+31 894 .L40: 257:user_src/soft_engine.c **** case 0x1EA: 258:user_src/soft_engine.c **** memcpy(&geely_data2.Bit1EA,&data[0],8); 895 .loc 1 258 13 896 030c 0822 movs r2, #8 897 030e B968 ldr r1, [r7, #8] 898 0310 1348 ldr r0, .L50 899 0312 FFF7FEFF bl memcpy 259:user_src/soft_engine.c **** break; 900 .loc 1 259 13 901 0316 19E0 b .L18 902 .L39: 260:user_src/soft_engine.c **** case 0x1EB: 261:user_src/soft_engine.c **** memcpy(&geely_data2.FuelConsumption,&data[0],8); 903 .loc 1 261 13 904 0318 0822 movs r2, #8 905 031a B968 ldr r1, [r7, #8] 906 031c 1148 ldr r0, .L50+4 907 031e FFF7FEFF bl memcpy 262:user_src/soft_engine.c **** break; 908 .loc 1 262 13 909 0322 13E0 b .L18 910 .L38: 911 0324 BB68 ldr r3, [r7, #8] 912 0326 1B88 ldrh r3, [r3] @ unaligned 913 0328 9BB2 uxth r3, r3 263:user_src/soft_engine.c **** case 0x1EC: 264:user_src/soft_engine.c **** memcpy(&geely_data2.EmgST0,&data[0],2); 914 .loc 1 264 13 915 032a 0F4A ldr r2, .L50+8 916 032c A2F83930 strh r3, [r2, #57] @ unaligned 265:user_src/soft_engine.c **** break; 917 .loc 1 265 13 918 0330 0CE0 b .L18 919 .L37: 266:user_src/soft_engine.c **** case 0x1ED: 267:user_src/soft_engine.c **** memcpy(&geely_data2.AlmST0,&data[0],8); 920 .loc 1 267 13 921 0332 0822 movs r2, #8 922 0334 B968 ldr r1, [r7, #8] 923 0336 0D48 ldr r0, .L50+12 924 0338 FFF7FEFF bl memcpy 268:user_src/soft_engine.c **** break; 925 .loc 1 268 13 926 033c 06E0 b .L18 927 .L35: 269:user_src/soft_engine.c **** case 0x1EE: 270:user_src/soft_engine.c **** memcpy(&geely_data2.Gear1Position,&data[0],7); 928 .loc 1 270 13 929 033e 0722 movs r2, #7 930 0340 B968 ldr r1, [r7, #8] 931 0342 0B48 ldr r0, .L50+16 932 0344 FFF7FEFF bl memcpy 271:user_src/soft_engine.c **** break; ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 22 933 .loc 1 271 13 934 0348 00E0 b .L18 935 .L47: 272:user_src/soft_engine.c **** 273:user_src/soft_engine.c **** default: 274:user_src/soft_engine.c **** break; 936 .loc 1 274 13 937 034a 00BF nop 938 .L18: 275:user_src/soft_engine.c **** } 276:user_src/soft_engine.c **** } 277:user_src/soft_engine.c **** 278:user_src/soft_engine.c **** geely_engin_link.recv_time = HAL_GetTick(); 939 .loc 1 278 34 940 034c FFF7FEFF bl HAL_GetTick 941 0350 0346 mov r3, r0 942 .loc 1 278 32 943 0352 084A ldr r2, .L50+20 944 0354 1360 str r3, [r2] 279:user_src/soft_engine.c **** } 945 .loc 1 279 1 946 0356 00BF nop 947 0358 1837 adds r7, r7, #24 948 .LCFI13: 949 .cfi_def_cfa_offset 8 950 035a BD46 mov sp, r7 951 .LCFI14: 952 .cfi_def_cfa_register 13 953 @ sp needed 954 035c 80BD pop {r7, pc} 955 .L51: 956 035e 00BF .align 2 957 .L50: 958 0360 27000000 .word geely_data2+39 959 0364 31000000 .word geely_data2+49 960 0368 00000000 .word geely_data2 961 036c 41000000 .word geely_data2+65 962 0370 49000000 .word geely_data2+73 963 0374 00000000 .word geely_engin_link 964 .cfi_endproc 965 .LFE135: 967 .global geely_set_counts 968 .section .bss.geely_set_counts,"aw",%nobits 969 .align 1 972 geely_set_counts: 973 0000 0000 .space 2 974 .global geely_sendinfo2 975 .section .bss.geely_sendinfo2,"aw",%nobits 976 .align 2 979 geely_sendinfo2: 980 0000 00000000 .space 14 980 00000000 980 00000000 980 0000 981 .global geely_count 982 .section .data.geely_count,"aw" 985 geely_count: ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 23 986 0000 0F .byte 15 987 .global start_engine 988 .section .bss.start_engine,"aw",%nobits 991 start_engine: 992 0000 00 .space 1 993 .section .text.Geely_version2_init,"ax",%progbits 994 .align 1 995 .global Geely_version2_init 996 .syntax unified 997 .thumb 998 .thumb_func 1000 Geely_version2_init: 1001 .LFB136: 280:user_src/soft_engine.c **** 281:user_src/soft_engine.c **** short geely_set_counts = 0; 282:user_src/soft_engine.c **** #pragma pack(1) 283:user_src/soft_engine.c **** typedef struct 284:user_src/soft_engine.c **** { 285:user_src/soft_engine.c **** uint32_t time; 286:user_src/soft_engine.c **** uint8_t nodecode:4; 287:user_src/soft_engine.c **** uint8_t message_conut0:4; 288:user_src/soft_engine.c **** int8_t check_sum0; 289:user_src/soft_engine.c **** 290:user_src/soft_engine.c **** uint8_t client_cmd; 291:user_src/soft_engine.c **** uint8_t syscontrol; 292:user_src/soft_engine.c **** uint8_t reserve0; 293:user_src/soft_engine.c **** uint8_t reserve1; 294:user_src/soft_engine.c **** uint32_t reserve2:20; 295:user_src/soft_engine.c **** uint8_t message_conut1:4; 296:user_src/soft_engine.c **** int8_t check_sum1; 297:user_src/soft_engine.c **** }geely_info2; 298:user_src/soft_engine.c **** geely_info2 geely_sendinfo2; 299:user_src/soft_engine.c **** #pragma pack() 300:user_src/soft_engine.c **** 301:user_src/soft_engine.c **** uint8_t geely_count = 15; 302:user_src/soft_engine.c **** uint8_t start_engine = 0; // 0x80启动 0停止 303:user_src/soft_engine.c **** void Geely_version2_init(void) 304:user_src/soft_engine.c **** { 1002 .loc 1 304 1 1003 .cfi_startproc 1004 @ args = 0, pretend = 0, frame = 8 1005 @ frame_needed = 1, uses_anonymous_args = 0 1006 0000 80B5 push {r7, lr} 1007 .LCFI15: 1008 .cfi_def_cfa_offset 8 1009 .cfi_offset 7, -8 1010 .cfi_offset 14, -4 1011 0002 82B0 sub sp, sp, #8 1012 .LCFI16: 1013 .cfi_def_cfa_offset 16 1014 0004 00AF add r7, sp, #0 1015 .LCFI17: 1016 .cfi_def_cfa_register 7 305:user_src/soft_engine.c **** uint8_t can_buf[8] = {0}; 1017 .loc 1 305 13 1018 0006 0023 movs r3, #0 1019 0008 3B60 str r3, [r7] ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 24 1020 000a 0023 movs r3, #0 1021 000c 7B60 str r3, [r7, #4] 306:user_src/soft_engine.c **** static uint8_t geely_init_count = 15; 307:user_src/soft_engine.c **** if(geely_data2.version2_flag != true && geely_init_count > 1) 1022 .loc 1 307 19 1023 000e 284B ldr r3, .L55 1024 0010 1B78 ldrb r3, [r3] @ zero_extendqisi2 1025 .loc 1 307 34 1026 0012 83F00103 eor r3, r3, #1 1027 0016 DBB2 uxtb r3, r3 1028 .loc 1 307 7 1029 0018 002B cmp r3, #0 1030 001a 45D0 beq .L54 1031 .loc 1 307 62 discriminator 1 1032 001c 254B ldr r3, .L55+4 1033 001e 1B78 ldrb r3, [r3] @ zero_extendqisi2 1034 .loc 1 307 42 discriminator 1 1035 0020 012B cmp r3, #1 1036 0022 41D9 bls .L54 308:user_src/soft_engine.c **** { 309:user_src/soft_engine.c **** geely_sendinfo2.client_cmd = 0x12; 1037 .loc 1 309 36 1038 0024 244B ldr r3, .L55+8 1039 0026 1222 movs r2, #18 1040 0028 9A71 strb r2, [r3, #6] 310:user_src/soft_engine.c **** geely_sendinfo2.syscontrol = 0; 1041 .loc 1 310 36 1042 002a 234B ldr r3, .L55+8 1043 002c 0022 movs r2, #0 1044 002e DA71 strb r2, [r3, #7] 311:user_src/soft_engine.c **** geely_sendinfo2.check_sum1 = geely_sendinfo2.client_cmd + geely_sendinfo2.syscontrol + (gee 1045 .loc 1 311 53 1046 0030 214B ldr r3, .L55+8 1047 0032 9A79 ldrb r2, [r3, #6] @ zero_extendqisi2 1048 .loc 1 311 82 1049 0034 204B ldr r3, .L55+8 1050 0036 DB79 ldrb r3, [r3, #7] @ zero_extendqisi2 1051 .loc 1 311 65 1052 0038 1344 add r3, r3, r2 1053 003a DAB2 uxtb r2, r3 1054 .loc 1 311 112 1055 003c 1E4B ldr r3, .L55+8 1056 003e 1B7B ldrb r3, [r3, #12] 1057 0040 C3F30313 ubfx r3, r3, #4, #4 1058 0044 DBB2 uxtb r3, r3 1059 .loc 1 311 128 1060 0046 1B01 lsls r3, r3, #4 1061 0048 DBB2 uxtb r3, r3 1062 .loc 1 311 94 1063 004a 1344 add r3, r3, r2 1064 004c DBB2 uxtb r3, r3 1065 004e 5AB2 sxtb r2, r3 1066 .loc 1 311 36 1067 0050 194B ldr r3, .L55+8 1068 0052 5A73 strb r2, [r3, #13] 312:user_src/soft_engine.c **** geely_sendinfo2.check_sum1 = 0 - geely_sendinfo2.check_sum1; 1069 .loc 1 312 57 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 25 1070 0054 184B ldr r3, .L55+8 1071 0056 93F90D30 ldrsb r3, [r3, #13] 1072 005a DBB2 uxtb r3, r3 1073 .loc 1 312 36 1074 005c 5B42 rsbs r3, r3, #0 1075 005e DBB2 uxtb r3, r3 1076 0060 5AB2 sxtb r2, r3 1077 0062 154B ldr r3, .L55+8 1078 0064 5A73 strb r2, [r3, #13] 313:user_src/soft_engine.c **** memcpy(&can_buf[0],&geely_sendinfo2.client_cmd,8); 1079 .loc 1 313 9 1080 0066 3B46 mov r3, r7 1081 0068 0822 movs r2, #8 1082 006a 1449 ldr r1, .L55+12 1083 006c 1846 mov r0, r3 1084 006e FFF7FEFF bl memcpy 314:user_src/soft_engine.c **** geely_sendinfo2.message_conut1++; 1085 .loc 1 314 24 1086 0072 114B ldr r3, .L55+8 1087 0074 1B7B ldrb r3, [r3, #12] 1088 0076 C3F30313 ubfx r3, r3, #4, #4 1089 007a DBB2 uxtb r3, r3 1090 .loc 1 314 39 1091 007c 0133 adds r3, r3, #1 1092 007e 03F00F03 and r3, r3, #15 1093 0082 D9B2 uxtb r1, r3 1094 0084 0C4A ldr r2, .L55+8 1095 0086 137B ldrb r3, [r2, #12] 1096 0088 61F30713 bfi r3, r1, #4, #4 1097 008c 1373 strb r3, [r2, #12] 315:user_src/soft_engine.c **** 316:user_src/soft_engine.c **** can_send_msg_normalstd(&can_buf[0],8,0x1E0); 1098 .loc 1 316 9 1099 008e 3B46 mov r3, r7 1100 0090 4FF4F072 mov r2, #480 1101 0094 0821 movs r1, #8 1102 0096 1846 mov r0, r3 1103 0098 FFF7FEFF bl can_send_msg_normalstd 317:user_src/soft_engine.c **** 318:user_src/soft_engine.c **** geely_init_count--; 1104 .loc 1 318 25 1105 009c 054B ldr r3, .L55+4 1106 009e 1B78 ldrb r3, [r3] @ zero_extendqisi2 1107 00a0 013B subs r3, r3, #1 1108 00a2 DAB2 uxtb r2, r3 1109 00a4 034B ldr r3, .L55+4 1110 00a6 1A70 strb r2, [r3] 1111 .L54: 319:user_src/soft_engine.c **** 320:user_src/soft_engine.c **** 321:user_src/soft_engine.c **** } 322:user_src/soft_engine.c **** } 1112 .loc 1 322 1 1113 00a8 00BF nop 1114 00aa 0837 adds r7, r7, #8 1115 .LCFI18: 1116 .cfi_def_cfa_offset 8 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 26 1117 00ac BD46 mov sp, r7 1118 .LCFI19: 1119 .cfi_def_cfa_register 13 1120 @ sp needed 1121 00ae 80BD pop {r7, pc} 1122 .L56: 1123 .align 2 1124 .L55: 1125 00b0 00000000 .word geely_data2 1126 00b4 00000000 .word geely_init_count.3 1127 00b8 00000000 .word geely_sendinfo2 1128 00bc 06000000 .word geely_sendinfo2+6 1129 .cfi_endproc 1130 .LFE136: 1132 .section .text.Geely_version2_send_info,"ax",%progbits 1133 .align 1 1134 .global Geely_version2_send_info 1135 .syntax unified 1136 .thumb 1137 .thumb_func 1139 Geely_version2_send_info: 1140 .LFB137: 323:user_src/soft_engine.c **** 324:user_src/soft_engine.c **** void Geely_version2_send_info( void ) 325:user_src/soft_engine.c **** { 1141 .loc 1 325 1 1142 .cfi_startproc 1143 @ args = 0, pretend = 0, frame = 8 1144 @ frame_needed = 1, uses_anonymous_args = 0 1145 0000 80B5 push {r7, lr} 1146 .LCFI20: 1147 .cfi_def_cfa_offset 8 1148 .cfi_offset 7, -8 1149 .cfi_offset 14, -4 1150 0002 82B0 sub sp, sp, #8 1151 .LCFI21: 1152 .cfi_def_cfa_offset 16 1153 0004 00AF add r7, sp, #0 1154 .LCFI22: 1155 .cfi_def_cfa_register 7 326:user_src/soft_engine.c **** uint8_t can_buf[8] = {0}; 1156 .loc 1 326 13 1157 0006 0023 movs r3, #0 1158 0008 3B60 str r3, [r7] 1159 000a 0023 movs r3, #0 1160 000c 7B60 str r3, [r7, #4] 327:user_src/soft_engine.c **** //发送北京时间 328:user_src/soft_engine.c **** // if(geely_send_BJtime == false && (beijing_time.ui8Year != 0)) //上点发送,CANID不在 329:user_src/soft_engine.c **** // { 330:user_src/soft_engine.c **** // geely_sendinfo2.time += beijing_time.ui8Second / 2; 331:user_src/soft_engine.c **** // geely_sendinfo2.time += beijing_time.ui8Minute *( 0x1 << 4); 332:user_src/soft_engine.c **** // geely_sendinfo2.time += beijing_time.ui8Hour *( 0x1 << 10); 333:user_src/soft_engine.c **** // geely_sendinfo2.time += beijing_time.ui8DayOfMonth *( 0x1 << 15); 334:user_src/soft_engine.c **** // geely_sendinfo2.time += beijing_time.ui8Month *( 0x1 << 20); 335:user_src/soft_engine.c **** // geely_sendinfo2.time += beijing_time.ui8Year *( 0x1 << 24); 336:user_src/soft_engine.c **** 337:user_src/soft_engine.c **** // geely_sendinfo2.nodecode = 0; ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 27 338:user_src/soft_engine.c **** // geely_sendinfo2.check_sum0 = geely_sendinfo2.time + geely_sendinfo2.nodecode + (geely_se 339:user_src/soft_engine.c **** // geely_sendinfo2.check_sum0 = 0 - geely_sendinfo2.check_sum0; 340:user_src/soft_engine.c **** // memcpy(&can_buf[0],&geely_sendinfo2,6); 341:user_src/soft_engine.c **** // geely_sendinfo2.message_conut0++; 342:user_src/soft_engine.c **** 343:user_src/soft_engine.c **** // can_send_msg_normalstd(&can_buf[0],6,0x030); 344:user_src/soft_engine.c **** // } 345:user_src/soft_engine.c **** //上电读取信息 346:user_src/soft_engine.c **** if(geely_get_version == false || geely_get_time == false) 1161 .loc 1 346 26 1162 000e 614B ldr r3, .L67 1163 0010 1B78 ldrb r3, [r3] @ zero_extendqisi2 1164 0012 83F00103 eor r3, r3, #1 1165 0016 DBB2 uxtb r3, r3 1166 .loc 1 346 7 1167 0018 002B cmp r3, #0 1168 001a 06D1 bne .L58 1169 .loc 1 346 53 discriminator 1 1170 001c 5E4B ldr r3, .L67+4 1171 001e 1B78 ldrb r3, [r3] @ zero_extendqisi2 1172 0020 83F00103 eor r3, r3, #1 1173 0024 DBB2 uxtb r3, r3 1174 .loc 1 346 35 discriminator 1 1175 0026 002B cmp r3, #0 1176 0028 70D0 beq .L59 1177 .L58: 347:user_src/soft_engine.c **** { 348:user_src/soft_engine.c **** if(geely_get_version == false) 1178 .loc 1 348 30 1179 002a 5A4B ldr r3, .L67 1180 002c 1B78 ldrb r3, [r3] @ zero_extendqisi2 1181 002e 83F00103 eor r3, r3, #1 1182 0032 DBB2 uxtb r3, r3 1183 .loc 1 348 11 1184 0034 002B cmp r3, #0 1185 0036 03D0 beq .L60 349:user_src/soft_engine.c **** { 350:user_src/soft_engine.c **** geely_sendinfo2.client_cmd = 0x16; 1186 .loc 1 350 40 1187 0038 584B ldr r3, .L67+8 1188 003a 1622 movs r2, #22 1189 003c 9A71 strb r2, [r3, #6] 1190 003e 09E0 b .L61 1191 .L60: 351:user_src/soft_engine.c **** } 352:user_src/soft_engine.c **** else if(geely_get_time == false) 1192 .loc 1 352 32 1193 0040 554B ldr r3, .L67+4 1194 0042 1B78 ldrb r3, [r3] @ zero_extendqisi2 1195 0044 83F00103 eor r3, r3, #1 1196 0048 DBB2 uxtb r3, r3 1197 .loc 1 352 16 1198 004a 002B cmp r3, #0 1199 004c 02D0 beq .L61 353:user_src/soft_engine.c **** { 354:user_src/soft_engine.c **** geely_sendinfo2.client_cmd = 0x17; 1200 .loc 1 354 40 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 28 1201 004e 534B ldr r3, .L67+8 1202 0050 1722 movs r2, #23 1203 0052 9A71 strb r2, [r3, #6] 1204 .L61: 355:user_src/soft_engine.c **** } 356:user_src/soft_engine.c **** 357:user_src/soft_engine.c **** geely_sendinfo2.syscontrol = 0; 1205 .loc 1 357 36 1206 0054 514B ldr r3, .L67+8 1207 0056 0022 movs r2, #0 1208 0058 DA71 strb r2, [r3, #7] 358:user_src/soft_engine.c **** geely_sendinfo2.check_sum1 = geely_sendinfo2.client_cmd + geely_sendinfo2.syscontrol + (gee 1209 .loc 1 358 53 1210 005a 504B ldr r3, .L67+8 1211 005c 9A79 ldrb r2, [r3, #6] @ zero_extendqisi2 1212 .loc 1 358 82 1213 005e 4F4B ldr r3, .L67+8 1214 0060 DB79 ldrb r3, [r3, #7] @ zero_extendqisi2 1215 .loc 1 358 65 1216 0062 1344 add r3, r3, r2 1217 0064 DAB2 uxtb r2, r3 1218 .loc 1 358 112 1219 0066 4D4B ldr r3, .L67+8 1220 0068 1B7B ldrb r3, [r3, #12] 1221 006a C3F30313 ubfx r3, r3, #4, #4 1222 006e DBB2 uxtb r3, r3 1223 .loc 1 358 128 1224 0070 1B01 lsls r3, r3, #4 1225 0072 DBB2 uxtb r3, r3 1226 .loc 1 358 94 1227 0074 1344 add r3, r3, r2 1228 0076 DBB2 uxtb r3, r3 1229 0078 5AB2 sxtb r2, r3 1230 .loc 1 358 36 1231 007a 484B ldr r3, .L67+8 1232 007c 5A73 strb r2, [r3, #13] 359:user_src/soft_engine.c **** geely_sendinfo2.check_sum1 = 0 - geely_sendinfo2.check_sum1; 1233 .loc 1 359 57 1234 007e 474B ldr r3, .L67+8 1235 0080 93F90D30 ldrsb r3, [r3, #13] 1236 0084 DBB2 uxtb r3, r3 1237 .loc 1 359 36 1238 0086 5B42 rsbs r3, r3, #0 1239 0088 DBB2 uxtb r3, r3 1240 008a 5AB2 sxtb r2, r3 1241 008c 434B ldr r3, .L67+8 1242 008e 5A73 strb r2, [r3, #13] 360:user_src/soft_engine.c **** memcpy(&can_buf[0],&geely_sendinfo2.client_cmd,8); 1243 .loc 1 360 9 1244 0090 3B46 mov r3, r7 1245 0092 0822 movs r2, #8 1246 0094 4249 ldr r1, .L67+12 1247 0096 1846 mov r0, r3 1248 0098 FFF7FEFF bl memcpy 361:user_src/soft_engine.c **** geely_sendinfo2.message_conut1++; 1249 .loc 1 361 24 1250 009c 3F4B ldr r3, .L67+8 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 29 1251 009e 1B7B ldrb r3, [r3, #12] 1252 00a0 C3F30313 ubfx r3, r3, #4, #4 1253 00a4 DBB2 uxtb r3, r3 1254 .loc 1 361 39 1255 00a6 0133 adds r3, r3, #1 1256 00a8 03F00F03 and r3, r3, #15 1257 00ac D9B2 uxtb r1, r3 1258 00ae 3B4A ldr r2, .L67+8 1259 00b0 137B ldrb r3, [r2, #12] 1260 00b2 61F30713 bfi r3, r1, #4, #4 1261 00b6 1373 strb r3, [r2, #12] 362:user_src/soft_engine.c **** 363:user_src/soft_engine.c **** can_send_msg_normalstd(&can_buf[0],8,0x1E0); 1262 .loc 1 363 9 1263 00b8 3B46 mov r3, r7 1264 00ba 4FF4F072 mov r2, #480 1265 00be 0821 movs r1, #8 1266 00c0 1846 mov r0, r3 1267 00c2 FFF7FEFF bl can_send_msg_normalstd 364:user_src/soft_engine.c **** 365:user_src/soft_engine.c **** geely_count--; 1268 .loc 1 365 20 1269 00c6 374B ldr r3, .L67+16 1270 00c8 1B78 ldrb r3, [r3] @ zero_extendqisi2 1271 00ca 013B subs r3, r3, #1 1272 00cc DAB2 uxtb r2, r3 1273 00ce 354B ldr r3, .L67+16 1274 00d0 1A70 strb r2, [r3] 366:user_src/soft_engine.c **** 367:user_src/soft_engine.c **** if(geely_count == 0) 1275 .loc 1 367 24 1276 00d2 344B ldr r3, .L67+16 1277 00d4 1B78 ldrb r3, [r3] @ zero_extendqisi2 1278 .loc 1 367 11 1279 00d6 002B cmp r3, #0 1280 00d8 56D1 bne .L65 368:user_src/soft_engine.c **** { 369:user_src/soft_engine.c **** geely_count = 10; 1281 .loc 1 369 25 1282 00da 324B ldr r3, .L67+16 1283 00dc 0A22 movs r2, #10 1284 00de 1A70 strb r2, [r3] 370:user_src/soft_engine.c **** if(geely_get_version == false) 1285 .loc 1 370 34 1286 00e0 2C4B ldr r3, .L67 1287 00e2 1B78 ldrb r3, [r3] @ zero_extendqisi2 1288 00e4 83F00103 eor r3, r3, #1 1289 00e8 DBB2 uxtb r3, r3 1290 .loc 1 370 15 1291 00ea 002B cmp r3, #0 1292 00ec 03D0 beq .L63 371:user_src/soft_engine.c **** { 372:user_src/soft_engine.c **** geely_get_version = true; 1293 .loc 1 372 35 1294 00ee 294B ldr r3, .L67 1295 00f0 0122 movs r2, #1 1296 00f2 1A70 strb r2, [r3] ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 30 367:user_src/soft_engine.c **** { 1297 .loc 1 367 11 1298 00f4 48E0 b .L65 1299 .L63: 373:user_src/soft_engine.c **** } 374:user_src/soft_engine.c **** else if(geely_get_time == false) 1300 .loc 1 374 36 1301 00f6 284B ldr r3, .L67+4 1302 00f8 1B78 ldrb r3, [r3] @ zero_extendqisi2 1303 00fa 83F00103 eor r3, r3, #1 1304 00fe DBB2 uxtb r3, r3 1305 .loc 1 374 20 1306 0100 002B cmp r3, #0 1307 0102 41D0 beq .L65 375:user_src/soft_engine.c **** { 376:user_src/soft_engine.c **** geely_get_time = true; 1308 .loc 1 376 32 1309 0104 244B ldr r3, .L67+4 1310 0106 0122 movs r2, #1 1311 0108 1A70 strb r2, [r3] 367:user_src/soft_engine.c **** { 1312 .loc 1 367 11 1313 010a 3DE0 b .L65 1314 .L59: 377:user_src/soft_engine.c **** } 378:user_src/soft_engine.c **** } 379:user_src/soft_engine.c **** } 380:user_src/soft_engine.c **** //控制发动机启停 381:user_src/soft_engine.c **** else 382:user_src/soft_engine.c **** { 383:user_src/soft_engine.c **** geely_sendinfo2.client_cmd = 0x12; 1315 .loc 1 383 36 1316 010c 234B ldr r3, .L67+8 1317 010e 1222 movs r2, #18 1318 0110 9A71 strb r2, [r3, #6] 384:user_src/soft_engine.c **** geely_sendinfo2.syscontrol = start_engine; 1319 .loc 1 384 36 1320 0112 254B ldr r3, .L67+20 1321 0114 1A78 ldrb r2, [r3] @ zero_extendqisi2 1322 0116 214B ldr r3, .L67+8 1323 0118 DA71 strb r2, [r3, #7] 385:user_src/soft_engine.c **** geely_sendinfo2.check_sum1 = geely_sendinfo2.client_cmd + geely_sendinfo2.syscontrol + (gee 1324 .loc 1 385 53 1325 011a 204B ldr r3, .L67+8 1326 011c 9A79 ldrb r2, [r3, #6] @ zero_extendqisi2 1327 .loc 1 385 82 1328 011e 1F4B ldr r3, .L67+8 1329 0120 DB79 ldrb r3, [r3, #7] @ zero_extendqisi2 1330 .loc 1 385 65 1331 0122 1344 add r3, r3, r2 1332 0124 DAB2 uxtb r2, r3 1333 .loc 1 385 112 1334 0126 1D4B ldr r3, .L67+8 1335 0128 1B7B ldrb r3, [r3, #12] 1336 012a C3F30313 ubfx r3, r3, #4, #4 1337 012e DBB2 uxtb r3, r3 1338 .loc 1 385 128 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 31 1339 0130 1B01 lsls r3, r3, #4 1340 0132 DBB2 uxtb r3, r3 1341 .loc 1 385 94 1342 0134 1344 add r3, r3, r2 1343 0136 DBB2 uxtb r3, r3 1344 0138 5AB2 sxtb r2, r3 1345 .loc 1 385 36 1346 013a 184B ldr r3, .L67+8 1347 013c 5A73 strb r2, [r3, #13] 386:user_src/soft_engine.c **** geely_sendinfo2.check_sum1 = 0 - geely_sendinfo2.check_sum1; 1348 .loc 1 386 57 1349 013e 174B ldr r3, .L67+8 1350 0140 93F90D30 ldrsb r3, [r3, #13] 1351 0144 DBB2 uxtb r3, r3 1352 .loc 1 386 36 1353 0146 5B42 rsbs r3, r3, #0 1354 0148 DBB2 uxtb r3, r3 1355 014a 5AB2 sxtb r2, r3 1356 014c 134B ldr r3, .L67+8 1357 014e 5A73 strb r2, [r3, #13] 387:user_src/soft_engine.c **** memcpy(&can_buf[0],&geely_sendinfo2.client_cmd,8); 1358 .loc 1 387 9 1359 0150 3B46 mov r3, r7 1360 0152 0822 movs r2, #8 1361 0154 1249 ldr r1, .L67+12 1362 0156 1846 mov r0, r3 1363 0158 FFF7FEFF bl memcpy 388:user_src/soft_engine.c **** geely_sendinfo2.message_conut1++; 1364 .loc 1 388 24 1365 015c 0F4B ldr r3, .L67+8 1366 015e 1B7B ldrb r3, [r3, #12] 1367 0160 C3F30313 ubfx r3, r3, #4, #4 1368 0164 DBB2 uxtb r3, r3 1369 .loc 1 388 39 1370 0166 0133 adds r3, r3, #1 1371 0168 03F00F03 and r3, r3, #15 1372 016c D9B2 uxtb r1, r3 1373 016e 0B4A ldr r2, .L67+8 1374 0170 137B ldrb r3, [r2, #12] 1375 0172 61F30713 bfi r3, r1, #4, #4 1376 0176 1373 strb r3, [r2, #12] 389:user_src/soft_engine.c **** 390:user_src/soft_engine.c **** can_send_msg_normalstd(&can_buf[0],8,0x1E0); 1377 .loc 1 390 9 1378 0178 3B46 mov r3, r7 1379 017a 4FF4F072 mov r2, #480 1380 017e 0821 movs r1, #8 1381 0180 1846 mov r0, r3 1382 0182 FFF7FEFF bl can_send_msg_normalstd 391:user_src/soft_engine.c **** } 392:user_src/soft_engine.c **** // else 393:user_src/soft_engine.c **** // { 394:user_src/soft_engine.c **** // geely_sendinfo2.client_cmd = 0x11; 395:user_src/soft_engine.c **** // geely_sendinfo2.syscontrol = 0; 396:user_src/soft_engine.c **** // geely_sendinfo2.check_sum1 = geely_sendinfo2.client_cmd + geely_sendinfo2.syscontrol + ( 397:user_src/soft_engine.c **** // geely_sendinfo2.check_sum1 = 0 - geely_sendinfo2.check_sum1; 398:user_src/soft_engine.c **** // memcpy(&can_buf[0],&geely_sendinfo2.client_cmd,8); ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 32 399:user_src/soft_engine.c **** // geely_sendinfo2.message_conut1++; 400:user_src/soft_engine.c **** // can_send_msg_normalstd(&can_buf[0],8,0x1E0); 401:user_src/soft_engine.c **** // } 402:user_src/soft_engine.c **** } 1383 .loc 1 402 1 1384 0186 00E0 b .L66 1385 .L65: 367:user_src/soft_engine.c **** { 1386 .loc 1 367 11 1387 0188 00BF nop 1388 .L66: 1389 .loc 1 402 1 1390 018a 00BF nop 1391 018c 0837 adds r7, r7, #8 1392 .LCFI23: 1393 .cfi_def_cfa_offset 8 1394 018e BD46 mov sp, r7 1395 .LCFI24: 1396 .cfi_def_cfa_register 13 1397 @ sp needed 1398 0190 80BD pop {r7, pc} 1399 .L68: 1400 0192 00BF .align 2 1401 .L67: 1402 0194 00000000 .word geely_get_version 1403 0198 00000000 .word geely_get_time 1404 019c 00000000 .word geely_sendinfo2 1405 01a0 06000000 .word geely_sendinfo2+6 1406 01a4 00000000 .word geely_count 1407 01a8 00000000 .word start_engine 1408 .cfi_endproc 1409 .LFE137: 1411 .global sendto_geely 1412 .section .data.sendto_geely,"aw" 1413 .align 2 1416 sendto_geely: 1417 0000 00 .byte 0 1418 0001 10 .byte 16 1419 0002 0000 .short 0 1420 0004 0000 .short 0 1421 0006 00 .byte 0 1422 0007 00 .space 1 1423 .global vkv3_buf 1424 .section .bss.vkv3_buf,"aw",%nobits 1425 .align 2 1428 vkv3_buf: 1429 0000 00000000 .space 20 1429 00000000 1429 00000000 1429 00000000 1429 00000000 1430 .section .text.send_msg_to_vk3,"ax",%progbits 1431 .align 1 1432 .global send_msg_to_vk3 1433 .syntax unified 1434 .thumb 1435 .thumb_func ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 33 1437 send_msg_to_vk3: 1438 .LFB138: 403:user_src/soft_engine.c **** 404:user_src/soft_engine.c **** #define SENDTO_GEELY_STATUS_ID (0X1A0) 405:user_src/soft_engine.c **** 406:user_src/soft_engine.c **** STO_GEELY sendto_geely = {.ExtenderControl = 0, 407:user_src/soft_engine.c **** .ExtenderSetting = 0x10, 408:user_src/soft_engine.c **** .SettingParameter = 0, 409:user_src/soft_engine.c **** .ExtenderBak = 0, 410:user_src/soft_engine.c **** .MessageCount = 0 411:user_src/soft_engine.c **** }; 412:user_src/soft_engine.c **** 413:user_src/soft_engine.c **** 414:user_src/soft_engine.c **** 415:user_src/soft_engine.c **** uint8_t vkv3_buf[20] = {0}; 416:user_src/soft_engine.c **** void send_msg_to_vk3(void) 417:user_src/soft_engine.c **** { 1439 .loc 1 417 1 1440 .cfi_startproc 1441 @ args = 0, pretend = 0, frame = 8 1442 @ frame_needed = 1, uses_anonymous_args = 0 1443 0000 80B5 push {r7, lr} 1444 .LCFI25: 1445 .cfi_def_cfa_offset 8 1446 .cfi_offset 7, -8 1447 .cfi_offset 14, -4 1448 0002 82B0 sub sp, sp, #8 1449 .LCFI26: 1450 .cfi_def_cfa_offset 16 1451 0004 00AF add r7, sp, #0 1452 .LCFI27: 1453 .cfi_def_cfa_register 7 418:user_src/soft_engine.c **** 419:user_src/soft_engine.c **** if(vkv3_engine_link.connect_status == COMP_NORMAL && 1454 .loc 1 419 24 1455 0006 3C4B ldr r3, .L74 1456 0008 1B7A ldrb r3, [r3, #8] @ zero_extendqisi2 1457 .loc 1 419 7 1458 000a 012B cmp r3, #1 1459 000c 70D1 bne .L73 420:user_src/soft_engine.c **** uart_send_is_ok(USART_3) == true) 1460 .loc 1 420 9 discriminator 1 1461 000e 0320 movs r0, #3 1462 0010 FFF7FEFF bl uart_send_is_ok 1463 0014 0346 mov r3, r0 419:user_src/soft_engine.c **** uart_send_is_ok(USART_3) == true) 1464 .loc 1 419 55 discriminator 1 1465 0016 002B cmp r3, #0 1466 0018 6AD0 beq .L73 1467 .LBB6: 421:user_src/soft_engine.c **** { 422:user_src/soft_engine.c **** 423:user_src/soft_engine.c **** uint16_t crc = 0; 1468 .loc 1 423 18 1469 001a 0023 movs r3, #0 1470 001c BB80 strh r3, [r7, #4] @ movhi 424:user_src/soft_engine.c **** uint8_t index = 0; ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 34 1471 .loc 1 424 17 1472 001e 0023 movs r3, #0 1473 0020 FB71 strb r3, [r7, #7] 425:user_src/soft_engine.c **** 426:user_src/soft_engine.c **** vkv3_buf[index++] = 0x5A; 1474 .loc 1 426 23 1475 0022 FB79 ldrb r3, [r7, #7] @ zero_extendqisi2 1476 0024 5A1C adds r2, r3, #1 1477 0026 FA71 strb r2, [r7, #7] 1478 0028 1A46 mov r2, r3 1479 .loc 1 426 27 1480 002a 344B ldr r3, .L74+4 1481 002c 5A21 movs r1, #90 1482 002e 9954 strb r1, [r3, r2] 427:user_src/soft_engine.c **** vkv3_buf[index++] = 0xA5; 1483 .loc 1 427 23 1484 0030 FB79 ldrb r3, [r7, #7] @ zero_extendqisi2 1485 0032 5A1C adds r2, r3, #1 1486 0034 FA71 strb r2, [r7, #7] 1487 0036 1A46 mov r2, r3 1488 .loc 1 427 27 1489 0038 304B ldr r3, .L74+4 1490 003a A521 movs r1, #165 1491 003c 9954 strb r1, [r3, r2] 428:user_src/soft_engine.c **** vkv3_buf[index++] = 4; 1492 .loc 1 428 23 1493 003e FB79 ldrb r3, [r7, #7] @ zero_extendqisi2 1494 0040 5A1C adds r2, r3, #1 1495 0042 FA71 strb r2, [r7, #7] 1496 0044 1A46 mov r2, r3 1497 .loc 1 428 27 1498 0046 2D4B ldr r3, .L74+4 1499 0048 0421 movs r1, #4 1500 004a 9954 strb r1, [r3, r2] 429:user_src/soft_engine.c **** vkv3_buf[index++] = 0x0A; 1501 .loc 1 429 23 1502 004c FB79 ldrb r3, [r7, #7] @ zero_extendqisi2 1503 004e 5A1C adds r2, r3, #1 1504 0050 FA71 strb r2, [r7, #7] 1505 0052 1A46 mov r2, r3 1506 .loc 1 429 27 1507 0054 294B ldr r3, .L74+4 1508 0056 0A21 movs r1, #10 1509 0058 9954 strb r1, [r3, r2] 430:user_src/soft_engine.c **** 431:user_src/soft_engine.c **** if(start_engine == 0x80) 1510 .loc 1 431 25 1511 005a 294B ldr r3, .L74+8 1512 005c 1B78 ldrb r3, [r3] @ zero_extendqisi2 1513 .loc 1 431 11 1514 005e 802B cmp r3, #128 1515 0060 07D1 bne .L71 432:user_src/soft_engine.c **** { 433:user_src/soft_engine.c **** vkv3_buf[index++] = 1; 1516 .loc 1 433 27 1517 0062 FB79 ldrb r3, [r7, #7] @ zero_extendqisi2 1518 0064 5A1C adds r2, r3, #1 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 35 1519 0066 FA71 strb r2, [r7, #7] 1520 0068 1A46 mov r2, r3 1521 .loc 1 433 31 1522 006a 244B ldr r3, .L74+4 1523 006c 0121 movs r1, #1 1524 006e 9954 strb r1, [r3, r2] 1525 0070 06E0 b .L72 1526 .L71: 434:user_src/soft_engine.c **** } 435:user_src/soft_engine.c **** else 436:user_src/soft_engine.c **** { 437:user_src/soft_engine.c **** vkv3_buf[index++] = 0; 1527 .loc 1 437 27 1528 0072 FB79 ldrb r3, [r7, #7] @ zero_extendqisi2 1529 0074 5A1C adds r2, r3, #1 1530 0076 FA71 strb r2, [r7, #7] 1531 0078 1A46 mov r2, r3 1532 .loc 1 437 31 1533 007a 204B ldr r3, .L74+4 1534 007c 0021 movs r1, #0 1535 007e 9954 strb r1, [r3, r2] 1536 .L72: 438:user_src/soft_engine.c **** } 439:user_src/soft_engine.c **** vkv3_buf[index++] = planep.lock_status; 1537 .loc 1 439 35 1538 0080 204B ldr r3, .L74+12 1539 0082 B3F90E30 ldrsh r3, [r3, #14] @ unaligned 1540 0086 19B2 sxth r1, r3 1541 .loc 1 439 23 1542 0088 FB79 ldrb r3, [r7, #7] @ zero_extendqisi2 1543 008a 5A1C adds r2, r3, #1 1544 008c FA71 strb r2, [r7, #7] 1545 008e 1A46 mov r2, r3 1546 .loc 1 439 27 1547 0090 C9B2 uxtb r1, r1 1548 0092 1A4B ldr r3, .L74+4 1549 0094 9954 strb r1, [r3, r2] 440:user_src/soft_engine.c **** vkv3_buf[index++] = planep.thr_pwm; 1550 .loc 1 440 35 1551 0096 1B4B ldr r3, .L74+12 1552 0098 B3F91230 ldrsh r3, [r3, #18] @ unaligned 1553 009c 19B2 sxth r1, r3 1554 .loc 1 440 23 1555 009e FB79 ldrb r3, [r7, #7] @ zero_extendqisi2 1556 00a0 5A1C adds r2, r3, #1 1557 00a2 FA71 strb r2, [r7, #7] 1558 00a4 1A46 mov r2, r3 1559 .loc 1 440 27 1560 00a6 C9B2 uxtb r1, r1 1561 00a8 144B ldr r3, .L74+4 1562 00aa 9954 strb r1, [r3, r2] 441:user_src/soft_engine.c **** vkv3_buf[index++] = planep.thr_pwm >> 8; 1563 .loc 1 441 35 1564 00ac 154B ldr r3, .L74+12 1565 00ae B3F91230 ldrsh r3, [r3, #18] @ unaligned 1566 00b2 1BB2 sxth r3, r3 1567 .loc 1 441 27 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 36 1568 00b4 1B12 asrs r3, r3, #8 1569 00b6 19B2 sxth r1, r3 1570 .loc 1 441 23 1571 00b8 FB79 ldrb r3, [r7, #7] @ zero_extendqisi2 1572 00ba 5A1C adds r2, r3, #1 1573 00bc FA71 strb r2, [r7, #7] 1574 00be 1A46 mov r2, r3 1575 .loc 1 441 27 1576 00c0 C9B2 uxtb r1, r1 1577 00c2 0E4B ldr r3, .L74+4 1578 00c4 9954 strb r1, [r3, r2] 442:user_src/soft_engine.c **** 443:user_src/soft_engine.c **** crc = Get_Crc16(vkv3_buf, index); 1579 .loc 1 443 15 1580 00c6 FB79 ldrb r3, [r7, #7] @ zero_extendqisi2 1581 00c8 9BB2 uxth r3, r3 1582 00ca 1946 mov r1, r3 1583 00cc 0B48 ldr r0, .L74+4 1584 00ce FFF7FEFF bl Get_Crc16 1585 00d2 0346 mov r3, r0 1586 .loc 1 443 13 1587 00d4 BB80 strh r3, [r7, #4] @ movhi 444:user_src/soft_engine.c **** memcpy(&vkv3_buf[index], &crc, 2); 1588 .loc 1 444 25 1589 00d6 FB79 ldrb r3, [r7, #7] @ zero_extendqisi2 1590 .loc 1 444 16 1591 00d8 084A ldr r2, .L74+4 1592 00da 1344 add r3, r3, r2 1593 00dc BA88 ldrh r2, [r7, #4] 1594 .loc 1 444 9 1595 00de 1A80 strh r2, [r3] @ unaligned 445:user_src/soft_engine.c **** index +=2; 1596 .loc 1 445 15 1597 00e0 FB79 ldrb r3, [r7, #7] 1598 00e2 0233 adds r3, r3, #2 1599 00e4 FB71 strb r3, [r7, #7] 446:user_src/soft_engine.c **** 447:user_src/soft_engine.c **** uart3_send_msg(vkv3_buf,index); 1600 .loc 1 447 9 1601 00e6 FB79 ldrb r3, [r7, #7] @ zero_extendqisi2 1602 00e8 1946 mov r1, r3 1603 00ea 0448 ldr r0, .L74+4 1604 00ec FFF7FEFF bl uart3_send_msg 1605 .L73: 1606 .LBE6: 448:user_src/soft_engine.c **** } 449:user_src/soft_engine.c **** 450:user_src/soft_engine.c **** } 1607 .loc 1 450 1 1608 00f0 00BF nop 1609 00f2 0837 adds r7, r7, #8 1610 .LCFI28: 1611 .cfi_def_cfa_offset 8 1612 00f4 BD46 mov sp, r7 1613 .LCFI29: 1614 .cfi_def_cfa_register 13 1615 @ sp needed ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 37 1616 00f6 80BD pop {r7, pc} 1617 .L75: 1618 .align 2 1619 .L74: 1620 00f8 00000000 .word vkv3_engine_link 1621 00fc 00000000 .word vkv3_buf 1622 0100 00000000 .word start_engine 1623 0104 00000000 .word planep 1624 .cfi_endproc 1625 .LFE138: 1627 .section .text.send_msg_to_geely,"ax",%progbits 1628 .align 1 1629 .global send_msg_to_geely 1630 .syntax unified 1631 .thumb 1632 .thumb_func 1634 send_msg_to_geely: 1635 .LFB139: 451:user_src/soft_engine.c **** 452:user_src/soft_engine.c **** void send_msg_to_geely(void) 453:user_src/soft_engine.c **** { 1636 .loc 1 453 1 1637 .cfi_startproc 1638 @ args = 0, pretend = 0, frame = 24 1639 @ frame_needed = 1, uses_anonymous_args = 0 1640 0000 80B5 push {r7, lr} 1641 .LCFI30: 1642 .cfi_def_cfa_offset 8 1643 .cfi_offset 7, -8 1644 .cfi_offset 14, -4 1645 0002 86B0 sub sp, sp, #24 1646 .LCFI31: 1647 .cfi_def_cfa_offset 32 1648 0004 00AF add r7, sp, #0 1649 .LCFI32: 1650 .cfi_def_cfa_register 7 454:user_src/soft_engine.c **** static uint32_t sendto_geely_lasttime = 0; 455:user_src/soft_engine.c **** static uint32_t sendto_bro_lasttime = 0; 456:user_src/soft_engine.c **** 457:user_src/soft_engine.c **** if (geely_engin_link.connect_status == COMP_NORMAL && engine_data.engine_type == ENGINE_BRO && 1651 .loc 1 457 25 1652 0006 A14B ldr r3, .L95 1653 0008 1B7A ldrb r3, [r3, #8] @ zero_extendqisi2 1654 .loc 1 457 8 1655 000a 012B cmp r3, #1 1656 000c 63D1 bne .L77 1657 .loc 1 457 70 discriminator 1 1658 000e A04B ldr r3, .L95+4 1659 0010 1B78 ldrb r3, [r3] @ zero_extendqisi2 1660 .loc 1 457 56 discriminator 1 1661 0012 052B cmp r3, #5 1662 0014 5FD1 bne .L77 1663 .loc 1 457 100 discriminator 2 1664 0016 FFF7FEFF bl HAL_GetTick 1665 001a 0246 mov r2, r0 1666 .loc 1 457 114 discriminator 2 1667 001c 9D4B ldr r3, .L95+8 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 38 1668 001e 1B68 ldr r3, [r3] 1669 0020 D31A subs r3, r2, r3 1670 .loc 1 457 97 discriminator 2 1671 0022 DE2B cmp r3, #222 1672 0024 57D9 bls .L77 1673 .LBB7: 458:user_src/soft_engine.c **** { 459:user_src/soft_engine.c **** uint8_t can_buf[8] = {0}; 1674 .loc 1 459 17 1675 0026 0023 movs r3, #0 1676 0028 FB60 str r3, [r7, #12] 1677 002a 0023 movs r3, #0 1678 002c 3B61 str r3, [r7, #16] 460:user_src/soft_engine.c **** short temp = 0; 1679 .loc 1 460 15 1680 002e 0023 movs r3, #0 1681 0030 7B81 strh r3, [r7, #10] @ movhi 461:user_src/soft_engine.c **** 462:user_src/soft_engine.c **** sendto_bro_lasttime = HAL_GetTick(); 1682 .loc 1 462 31 1683 0032 FFF7FEFF bl HAL_GetTick 1684 0036 0346 mov r3, r0 1685 .loc 1 462 29 1686 0038 964A ldr r2, .L95+8 1687 003a 1360 str r3, [r2] 1688 003c 964B ldr r3, .L95+12 1689 003e DB88 ldrh r3, [r3, #6] @ unaligned 1690 0040 9BB2 uxth r3, r3 463:user_src/soft_engine.c **** 464:user_src/soft_engine.c **** memcpy(&can_buf[0],&planep.alt,2); 1691 .loc 1 464 9 1692 0042 BB81 strh r3, [r7, #12] @ movhi 465:user_src/soft_engine.c **** 466:user_src/soft_engine.c **** temp = sqrtf(planep.E_vel * planep.E_vel + planep.N_vel * planep.N_vel); 1693 .loc 1 466 28 1694 0044 944B ldr r3, .L95+12 1695 0046 B3F90830 ldrsh r3, [r3, #8] @ unaligned 1696 004a 1BB2 sxth r3, r3 1697 004c 1A46 mov r2, r3 1698 .loc 1 466 43 1699 004e 924B ldr r3, .L95+12 1700 0050 B3F90830 ldrsh r3, [r3, #8] @ unaligned 1701 0054 1BB2 sxth r3, r3 1702 .loc 1 466 35 1703 0056 03FB02F2 mul r2, r3, r2 1704 .loc 1 466 58 1705 005a 8F4B ldr r3, .L95+12 1706 005c B3F90A30 ldrsh r3, [r3, #10] @ unaligned 1707 0060 1BB2 sxth r3, r3 1708 0062 1946 mov r1, r3 1709 .loc 1 466 73 1710 0064 8C4B ldr r3, .L95+12 1711 0066 B3F90A30 ldrsh r3, [r3, #10] @ unaligned 1712 006a 1BB2 sxth r3, r3 1713 .loc 1 466 65 1714 006c 01FB03F3 mul r3, r1, r3 1715 .loc 1 466 50 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 39 1716 0070 1344 add r3, r3, r2 1717 .loc 1 466 16 1718 0072 07EE903A vmov s15, r3 @ int 1719 0076 F8EEE77A vcvt.f32.s32 s15, s15 1720 007a B0EE670A vmov.f32 s0, s15 1721 007e FFF7FEFF bl sqrtf 1722 0082 F0EE407A vmov.f32 s15, s0 1723 .loc 1 466 14 1724 0086 FDEEE77A vcvt.s32.f32 s15, s15 1725 008a 17EE903A vmov r3, s15 @ int 1726 008e 1BB2 sxth r3, r3 1727 0090 7B81 strh r3, [r7, #10] @ movhi 1728 0092 7B89 ldrh r3, [r7, #10] 467:user_src/soft_engine.c **** memcpy(&can_buf[2],&temp,2); 1729 .loc 1 467 9 1730 0094 FB81 strh r3, [r7, #14] @ movhi 1731 0096 804B ldr r3, .L95+12 1732 0098 1B88 ldrh r3, [r3] @ unaligned 1733 009a 9BB2 uxth r3, r3 468:user_src/soft_engine.c **** 469:user_src/soft_engine.c **** memcpy(&can_buf[4],&planep.yaw,2); 1734 .loc 1 469 9 1735 009c 3B82 strh r3, [r7, #16] @ movhi 1736 009e 7E4B ldr r3, .L95+12 1737 00a0 DB89 ldrh r3, [r3, #14] @ unaligned 1738 00a2 9BB2 uxth r3, r3 470:user_src/soft_engine.c **** memcpy(&can_buf[6],&planep.lock_status,2); 1739 .loc 1 470 9 1740 00a4 7B82 strh r3, [r7, #18] @ movhi 471:user_src/soft_engine.c **** 472:user_src/soft_engine.c **** can_send_msg_normalstd(&can_buf[0],8,0x1F0); 1741 .loc 1 472 9 1742 00a6 07F10C03 add r3, r7, #12 1743 00aa 4FF4F872 mov r2, #496 1744 00ae 0821 movs r1, #8 1745 00b0 1846 mov r0, r3 1746 00b2 FFF7FEFF bl can_send_msg_normalstd 1747 00b6 784B ldr r3, .L95+12 1748 00b8 D3F81630 ldr r3, [r3, #22] @ unaligned 473:user_src/soft_engine.c **** 474:user_src/soft_engine.c **** memcpy(&can_buf[0],&planep.pos_x1,4); 1749 .loc 1 474 9 1750 00bc FB60 str r3, [r7, #12] 1751 00be 764B ldr r3, .L95+12 1752 00c0 D3F81A30 ldr r3, [r3, #26] @ unaligned 475:user_src/soft_engine.c **** memcpy(&can_buf[4],&planep.pos_y1,4); 1753 .loc 1 475 9 1754 00c4 3B61 str r3, [r7, #16] 476:user_src/soft_engine.c **** can_send_msg_normalstd(&can_buf[0],8,0x1F1); 1755 .loc 1 476 9 1756 00c6 07F10C03 add r3, r7, #12 1757 00ca 40F2F112 movw r2, #497 1758 00ce 0821 movs r1, #8 1759 00d0 1846 mov r0, r3 1760 00d2 FFF7FEFF bl can_send_msg_normalstd 1761 .L77: 1762 .LBE7: ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 40 477:user_src/soft_engine.c **** 478:user_src/soft_engine.c **** } 479:user_src/soft_engine.c **** if (geely_engin_link.connect_status == COMP_NORMAL && HAL_GetTick() - sendto_geely_lasttime > 1 1763 .loc 1 479 25 1764 00d6 6D4B ldr r3, .L95 1765 00d8 1B7A ldrb r3, [r3, #8] @ zero_extendqisi2 1766 .loc 1 479 8 1767 00da 012B cmp r3, #1 1768 00dc 40F02781 bne .L94 1769 .loc 1 479 59 discriminator 1 1770 00e0 FFF7FEFF bl HAL_GetTick 1771 00e4 0246 mov r2, r0 1772 .loc 1 479 73 discriminator 1 1773 00e6 6D4B ldr r3, .L95+16 1774 00e8 1B68 ldr r3, [r3] 1775 00ea D31A subs r3, r2, r3 1776 .loc 1 479 56 discriminator 1 1777 00ec 642B cmp r3, #100 1778 00ee 40F21E81 bls .L94 1779 .LBB8: 480:user_src/soft_engine.c **** { 481:user_src/soft_engine.c **** uint8_t geely[8] = {0}; 1780 .loc 1 481 17 1781 00f2 0023 movs r3, #0 1782 00f4 3B60 str r3, [r7] 1783 00f6 0023 movs r3, #0 1784 00f8 7B60 str r3, [r7, #4] 482:user_src/soft_engine.c **** 483:user_src/soft_engine.c **** sendto_geely_lasttime = HAL_GetTick(); 1785 .loc 1 483 33 1786 00fa FFF7FEFF bl HAL_GetTick 1787 00fe 0346 mov r3, r0 1788 .loc 1 483 31 1789 0100 664A ldr r2, .L95+16 1790 0102 1360 str r3, [r2] 484:user_src/soft_engine.c **** 485:user_src/soft_engine.c **** Geely_version2_init(); 1791 .loc 1 485 9 1792 0104 FFF7FEFF bl Geely_version2_init 486:user_src/soft_engine.c **** if(geely_data2.version2_flag == true) 1793 .loc 1 486 23 1794 0108 654B ldr r3, .L95+20 1795 010a 1B78 ldrb r3, [r3] @ zero_extendqisi2 1796 .loc 1 486 11 1797 010c 002B cmp r3, #0 1798 010e 02D0 beq .L79 487:user_src/soft_engine.c **** { 488:user_src/soft_engine.c **** Geely_version2_send_info(); 1799 .loc 1 488 13 1800 0110 FFF7FEFF bl Geely_version2_send_info 1801 .LBE8: 489:user_src/soft_engine.c **** } 490:user_src/soft_engine.c **** else 491:user_src/soft_engine.c **** { 492:user_src/soft_engine.c **** sendto_geely.ExtenderBak = planep.thr_pwm; 493:user_src/soft_engine.c **** sendto_geely.DroneStatus = (planep.lock_status == 4? 1: 0); //(thr_lock_status == LOCKE 494:user_src/soft_engine.c **** sendto_geely.MessageCount++; ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 41 495:user_src/soft_engine.c **** 496:user_src/soft_engine.c **** if(geely_set_tcd == true) 497:user_src/soft_engine.c **** { 498:user_src/soft_engine.c **** geely_set_counts++; 499:user_src/soft_engine.c **** if(geely_set_counts > 5){ 500:user_src/soft_engine.c **** geely_set_tcd = false; 501:user_src/soft_engine.c **** geely_set_counts = 0; 502:user_src/soft_engine.c **** } 503:user_src/soft_engine.c **** 504:user_src/soft_engine.c **** sendto_geely.ExtenderSetting = 0x11; 505:user_src/soft_engine.c **** //sendto_geely.SettingParameter = 0; 506:user_src/soft_engine.c **** } 507:user_src/soft_engine.c **** else if(geely_set_tcd_re == true) 508:user_src/soft_engine.c **** { 509:user_src/soft_engine.c **** geely_set_counts++; 510:user_src/soft_engine.c **** if(geely_set_counts > 5){ 511:user_src/soft_engine.c **** geely_set_tcd_re = false; 512:user_src/soft_engine.c **** geely_set_counts = 0; 513:user_src/soft_engine.c **** } 514:user_src/soft_engine.c **** 515:user_src/soft_engine.c **** sendto_geely.ExtenderSetting = 0x12; 516:user_src/soft_engine.c **** sendto_geely.SettingParameter = 0; 517:user_src/soft_engine.c **** } 518:user_src/soft_engine.c **** else if(geely_set_tlock == true) 519:user_src/soft_engine.c **** { 520:user_src/soft_engine.c **** geely_set_counts++; 521:user_src/soft_engine.c **** if(geely_set_counts > 5){ 522:user_src/soft_engine.c **** geely_set_tlock = false; 523:user_src/soft_engine.c **** geely_set_counts = 0; 524:user_src/soft_engine.c **** } 525:user_src/soft_engine.c **** 526:user_src/soft_engine.c **** sendto_geely.ExtenderSetting = 0x14; 527:user_src/soft_engine.c **** //sendto_geely.SettingParameter = 0; 528:user_src/soft_engine.c **** } 529:user_src/soft_engine.c **** else if(geely_set_tlock_re == true) 530:user_src/soft_engine.c **** { 531:user_src/soft_engine.c **** geely_set_counts++; 532:user_src/soft_engine.c **** if(geely_set_counts > 5){ 533:user_src/soft_engine.c **** geely_set_tlock_re = false; 534:user_src/soft_engine.c **** geely_set_counts = 0; 535:user_src/soft_engine.c **** } 536:user_src/soft_engine.c **** 537:user_src/soft_engine.c **** sendto_geely.ExtenderSetting = 0x15; 538:user_src/soft_engine.c **** sendto_geely.SettingParameter = 0; 539:user_src/soft_engine.c **** } 540:user_src/soft_engine.c **** else if(geely_set_protect == true) 541:user_src/soft_engine.c **** { 542:user_src/soft_engine.c **** geely_set_counts++; 543:user_src/soft_engine.c **** if(geely_set_counts > 5){ 544:user_src/soft_engine.c **** geely_set_protect = false; 545:user_src/soft_engine.c **** geely_set_counts = 0; 546:user_src/soft_engine.c **** } 547:user_src/soft_engine.c **** sendto_geely.ExtenderSetting = 0x17; 548:user_src/soft_engine.c **** sendto_geely.SettingParameter = 0; 549:user_src/soft_engine.c **** } 550:user_src/soft_engine.c **** else 551:user_src/soft_engine.c **** { ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 42 552:user_src/soft_engine.c **** sendto_geely.ExtenderSetting = 0x10; 553:user_src/soft_engine.c **** sendto_geely.SettingParameter = 0; 554:user_src/soft_engine.c **** 555:user_src/soft_engine.c **** geely_set_counts = 0; 556:user_src/soft_engine.c **** } 557:user_src/soft_engine.c **** 558:user_src/soft_engine.c **** memcpy(geely, (uint8_t *)&sendto_geely.ExtenderControl, 7); 559:user_src/soft_engine.c **** 560:user_src/soft_engine.c **** sendto_geely.CheckSum = 0; 561:user_src/soft_engine.c **** for (uint8_t i = 0; i < 7; i++) 562:user_src/soft_engine.c **** { 563:user_src/soft_engine.c **** sendto_geely.CheckSum += geely[i]; 564:user_src/soft_engine.c **** } 565:user_src/soft_engine.c **** sendto_geely.CheckSum = -sendto_geely.CheckSum; 566:user_src/soft_engine.c **** 567:user_src/soft_engine.c **** can_send_msg_normalstd(&sendto_geely.ExtenderControl, sizeof(sendto_geely), SENDTO_GEEL 568:user_src/soft_engine.c **** 569:user_src/soft_engine.c **** geely_moni.send_1a0++; 570:user_src/soft_engine.c **** } 571:user_src/soft_engine.c **** } 572:user_src/soft_engine.c **** } 1802 .loc 1 572 1 1803 0114 0BE1 b .L94 1804 .L79: 1805 .LBB10: 492:user_src/soft_engine.c **** sendto_geely.DroneStatus = (planep.lock_status == 4? 1: 0); //(thr_lock_status == LOCKE 1806 .loc 1 492 46 1807 0116 604B ldr r3, .L95+12 1808 0118 B3F91230 ldrsh r3, [r3, #18] @ unaligned 1809 011c 1BB2 sxth r3, r3 1810 011e 9AB2 uxth r2, r3 492:user_src/soft_engine.c **** sendto_geely.DroneStatus = (planep.lock_status == 4? 1: 0); //(thr_lock_status == LOCKE 1811 .loc 1 492 38 1812 0120 604B ldr r3, .L95+24 1813 0122 9A80 strh r2, [r3, #4] @ movhi 493:user_src/soft_engine.c **** sendto_geely.MessageCount++; 1814 .loc 1 493 47 1815 0124 5C4B ldr r3, .L95+12 1816 0126 B3F90E30 ldrsh r3, [r3, #14] @ unaligned 1817 012a 1BB2 sxth r3, r3 493:user_src/soft_engine.c **** sendto_geely.MessageCount++; 1818 .loc 1 493 67 1819 012c 042B cmp r3, #4 1820 012e 0CBF ite eq 1821 0130 0123 moveq r3, #1 1822 0132 0023 movne r3, #0 1823 0134 DBB2 uxtb r3, r3 1824 0136 03F00F03 and r3, r3, #15 1825 013a D9B2 uxtb r1, r3 493:user_src/soft_engine.c **** sendto_geely.MessageCount++; 1826 .loc 1 493 38 1827 013c 594A ldr r2, .L95+24 1828 013e 9379 ldrb r3, [r2, #6] 1829 0140 61F30303 bfi r3, r1, #0, #4 1830 0144 9371 strb r3, [r2, #6] 494:user_src/soft_engine.c **** 1831 .loc 1 494 25 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 43 1832 0146 574B ldr r3, .L95+24 1833 0148 9B79 ldrb r3, [r3, #6] 1834 014a C3F30313 ubfx r3, r3, #4, #4 1835 014e DBB2 uxtb r3, r3 494:user_src/soft_engine.c **** 1836 .loc 1 494 38 1837 0150 0133 adds r3, r3, #1 1838 0152 03F00F03 and r3, r3, #15 1839 0156 D9B2 uxtb r1, r3 1840 0158 524A ldr r2, .L95+24 1841 015a 9379 ldrb r3, [r2, #6] 1842 015c 61F30713 bfi r3, r1, #4, #4 1843 0160 9371 strb r3, [r2, #6] 496:user_src/soft_engine.c **** { 1844 .loc 1 496 30 1845 0162 514B ldr r3, .L95+28 1846 0164 1B78 ldrb r3, [r3] @ zero_extendqisi2 496:user_src/soft_engine.c **** { 1847 .loc 1 496 15 1848 0166 002B cmp r3, #0 1849 0168 17D0 beq .L81 498:user_src/soft_engine.c **** if(geely_set_counts > 5){ 1850 .loc 1 498 33 1851 016a 504B ldr r3, .L95+32 1852 016c B3F90030 ldrsh r3, [r3] 1853 0170 9BB2 uxth r3, r3 1854 0172 0133 adds r3, r3, #1 1855 0174 9BB2 uxth r3, r3 1856 0176 1AB2 sxth r2, r3 1857 0178 4C4B ldr r3, .L95+32 1858 017a 1A80 strh r2, [r3] @ movhi 499:user_src/soft_engine.c **** geely_set_tcd = false; 1859 .loc 1 499 37 1860 017c 4B4B ldr r3, .L95+32 1861 017e B3F90030 ldrsh r3, [r3] 499:user_src/soft_engine.c **** geely_set_tcd = false; 1862 .loc 1 499 19 1863 0182 052B cmp r3, #5 1864 0184 05DD ble .L82 500:user_src/soft_engine.c **** geely_set_counts = 0; 1865 .loc 1 500 35 1866 0186 484B ldr r3, .L95+28 1867 0188 0022 movs r2, #0 1868 018a 1A70 strb r2, [r3] 501:user_src/soft_engine.c **** } 1869 .loc 1 501 38 1870 018c 474B ldr r3, .L95+32 1871 018e 0022 movs r2, #0 1872 0190 1A80 strh r2, [r3] @ movhi 1873 .L82: 504:user_src/soft_engine.c **** //sendto_geely.SettingParameter = 0; 1874 .loc 1 504 46 1875 0192 444B ldr r3, .L95+24 1876 0194 1122 movs r2, #17 1877 0196 5A70 strb r2, [r3, #1] 1878 0198 9BE0 b .L83 1879 .L81: ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 44 507:user_src/soft_engine.c **** { 1880 .loc 1 507 38 1881 019a 454B ldr r3, .L95+36 1882 019c 1B78 ldrb r3, [r3] @ zero_extendqisi2 507:user_src/soft_engine.c **** { 1883 .loc 1 507 20 1884 019e 002B cmp r3, #0 1885 01a0 1AD0 beq .L84 509:user_src/soft_engine.c **** if(geely_set_counts > 5){ 1886 .loc 1 509 33 1887 01a2 424B ldr r3, .L95+32 1888 01a4 B3F90030 ldrsh r3, [r3] 1889 01a8 9BB2 uxth r3, r3 1890 01aa 0133 adds r3, r3, #1 1891 01ac 9BB2 uxth r3, r3 1892 01ae 1AB2 sxth r2, r3 1893 01b0 3E4B ldr r3, .L95+32 1894 01b2 1A80 strh r2, [r3] @ movhi 510:user_src/soft_engine.c **** geely_set_tcd_re = false; 1895 .loc 1 510 37 1896 01b4 3D4B ldr r3, .L95+32 1897 01b6 B3F90030 ldrsh r3, [r3] 510:user_src/soft_engine.c **** geely_set_tcd_re = false; 1898 .loc 1 510 19 1899 01ba 052B cmp r3, #5 1900 01bc 05DD ble .L85 511:user_src/soft_engine.c **** geely_set_counts = 0; 1901 .loc 1 511 38 1902 01be 3C4B ldr r3, .L95+36 1903 01c0 0022 movs r2, #0 1904 01c2 1A70 strb r2, [r3] 512:user_src/soft_engine.c **** } 1905 .loc 1 512 38 1906 01c4 394B ldr r3, .L95+32 1907 01c6 0022 movs r2, #0 1908 01c8 1A80 strh r2, [r3] @ movhi 1909 .L85: 515:user_src/soft_engine.c **** sendto_geely.SettingParameter = 0; 1910 .loc 1 515 46 1911 01ca 364B ldr r3, .L95+24 1912 01cc 1222 movs r2, #18 1913 01ce 5A70 strb r2, [r3, #1] 516:user_src/soft_engine.c **** } 1914 .loc 1 516 47 1915 01d0 344B ldr r3, .L95+24 1916 01d2 0022 movs r2, #0 1917 01d4 5A80 strh r2, [r3, #2] @ movhi 1918 01d6 7CE0 b .L83 1919 .L84: 518:user_src/soft_engine.c **** { 1920 .loc 1 518 37 1921 01d8 364B ldr r3, .L95+40 1922 01da 1B78 ldrb r3, [r3] @ zero_extendqisi2 518:user_src/soft_engine.c **** { 1923 .loc 1 518 20 1924 01dc 002B cmp r3, #0 1925 01de 17D0 beq .L86 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 45 520:user_src/soft_engine.c **** if(geely_set_counts > 5){ 1926 .loc 1 520 33 1927 01e0 324B ldr r3, .L95+32 1928 01e2 B3F90030 ldrsh r3, [r3] 1929 01e6 9BB2 uxth r3, r3 1930 01e8 0133 adds r3, r3, #1 1931 01ea 9BB2 uxth r3, r3 1932 01ec 1AB2 sxth r2, r3 1933 01ee 2F4B ldr r3, .L95+32 1934 01f0 1A80 strh r2, [r3] @ movhi 521:user_src/soft_engine.c **** geely_set_tlock = false; 1935 .loc 1 521 37 1936 01f2 2E4B ldr r3, .L95+32 1937 01f4 B3F90030 ldrsh r3, [r3] 521:user_src/soft_engine.c **** geely_set_tlock = false; 1938 .loc 1 521 19 1939 01f8 052B cmp r3, #5 1940 01fa 05DD ble .L87 522:user_src/soft_engine.c **** geely_set_counts = 0; 1941 .loc 1 522 37 1942 01fc 2D4B ldr r3, .L95+40 1943 01fe 0022 movs r2, #0 1944 0200 1A70 strb r2, [r3] 523:user_src/soft_engine.c **** } 1945 .loc 1 523 38 1946 0202 2A4B ldr r3, .L95+32 1947 0204 0022 movs r2, #0 1948 0206 1A80 strh r2, [r3] @ movhi 1949 .L87: 526:user_src/soft_engine.c **** //sendto_geely.SettingParameter = 0; 1950 .loc 1 526 46 1951 0208 264B ldr r3, .L95+24 1952 020a 1422 movs r2, #20 1953 020c 5A70 strb r2, [r3, #1] 1954 020e 60E0 b .L83 1955 .L86: 529:user_src/soft_engine.c **** { 1956 .loc 1 529 40 1957 0210 294B ldr r3, .L95+44 1958 0212 1B78 ldrb r3, [r3] @ zero_extendqisi2 529:user_src/soft_engine.c **** { 1959 .loc 1 529 20 1960 0214 002B cmp r3, #0 1961 0216 1AD0 beq .L88 531:user_src/soft_engine.c **** if(geely_set_counts > 5){ 1962 .loc 1 531 33 1963 0218 244B ldr r3, .L95+32 1964 021a B3F90030 ldrsh r3, [r3] 1965 021e 9BB2 uxth r3, r3 1966 0220 0133 adds r3, r3, #1 1967 0222 9BB2 uxth r3, r3 1968 0224 1AB2 sxth r2, r3 1969 0226 214B ldr r3, .L95+32 1970 0228 1A80 strh r2, [r3] @ movhi 532:user_src/soft_engine.c **** geely_set_tlock_re = false; 1971 .loc 1 532 37 1972 022a 204B ldr r3, .L95+32 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 46 1973 022c B3F90030 ldrsh r3, [r3] 532:user_src/soft_engine.c **** geely_set_tlock_re = false; 1974 .loc 1 532 19 1975 0230 052B cmp r3, #5 1976 0232 05DD ble .L89 533:user_src/soft_engine.c **** geely_set_counts = 0; 1977 .loc 1 533 40 1978 0234 204B ldr r3, .L95+44 1979 0236 0022 movs r2, #0 1980 0238 1A70 strb r2, [r3] 534:user_src/soft_engine.c **** } 1981 .loc 1 534 38 1982 023a 1C4B ldr r3, .L95+32 1983 023c 0022 movs r2, #0 1984 023e 1A80 strh r2, [r3] @ movhi 1985 .L89: 537:user_src/soft_engine.c **** sendto_geely.SettingParameter = 0; 1986 .loc 1 537 46 1987 0240 184B ldr r3, .L95+24 1988 0242 1522 movs r2, #21 1989 0244 5A70 strb r2, [r3, #1] 538:user_src/soft_engine.c **** } 1990 .loc 1 538 47 1991 0246 174B ldr r3, .L95+24 1992 0248 0022 movs r2, #0 1993 024a 5A80 strh r2, [r3, #2] @ movhi 1994 024c 41E0 b .L83 1995 .L88: 540:user_src/soft_engine.c **** { 1996 .loc 1 540 39 1997 024e 1B4B ldr r3, .L95+48 1998 0250 1B78 ldrb r3, [r3] @ zero_extendqisi2 540:user_src/soft_engine.c **** { 1999 .loc 1 540 20 2000 0252 002B cmp r3, #0 2001 0254 34D0 beq .L90 542:user_src/soft_engine.c **** if(geely_set_counts > 5){ 2002 .loc 1 542 33 2003 0256 154B ldr r3, .L95+32 2004 0258 B3F90030 ldrsh r3, [r3] 2005 025c 9BB2 uxth r3, r3 2006 025e 0133 adds r3, r3, #1 2007 0260 9BB2 uxth r3, r3 2008 0262 1AB2 sxth r2, r3 2009 0264 114B ldr r3, .L95+32 2010 0266 1A80 strh r2, [r3] @ movhi 543:user_src/soft_engine.c **** geely_set_protect = false; 2011 .loc 1 543 37 2012 0268 104B ldr r3, .L95+32 2013 026a B3F90030 ldrsh r3, [r3] 543:user_src/soft_engine.c **** geely_set_protect = false; 2014 .loc 1 543 19 2015 026e 052B cmp r3, #5 2016 0270 05DD ble .L91 544:user_src/soft_engine.c **** geely_set_counts = 0; 2017 .loc 1 544 39 2018 0272 124B ldr r3, .L95+48 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 47 2019 0274 0022 movs r2, #0 2020 0276 1A70 strb r2, [r3] 545:user_src/soft_engine.c **** } 2021 .loc 1 545 38 2022 0278 0C4B ldr r3, .L95+32 2023 027a 0022 movs r2, #0 2024 027c 1A80 strh r2, [r3] @ movhi 2025 .L91: 547:user_src/soft_engine.c **** sendto_geely.SettingParameter = 0; 2026 .loc 1 547 46 2027 027e 094B ldr r3, .L95+24 2028 0280 1722 movs r2, #23 2029 0282 5A70 strb r2, [r3, #1] 548:user_src/soft_engine.c **** } 2030 .loc 1 548 47 2031 0284 074B ldr r3, .L95+24 2032 0286 0022 movs r2, #0 2033 0288 5A80 strh r2, [r3, #2] @ movhi 2034 028a 22E0 b .L83 2035 .L96: 2036 .align 2 2037 .L95: 2038 028c 00000000 .word geely_engin_link 2039 0290 00000000 .word engine_data 2040 0294 00000000 .word sendto_bro_lasttime.2 2041 0298 00000000 .word planep 2042 029c 00000000 .word sendto_geely_lasttime.1 2043 02a0 00000000 .word geely_data2 2044 02a4 00000000 .word sendto_geely 2045 02a8 00000000 .word geely_set_tcd 2046 02ac 00000000 .word geely_set_counts 2047 02b0 00000000 .word geely_set_tcd_re 2048 02b4 00000000 .word geely_set_tlock 2049 02b8 00000000 .word geely_set_tlock_re 2050 02bc 00000000 .word geely_set_protect 2051 .L90: 552:user_src/soft_engine.c **** sendto_geely.SettingParameter = 0; 2052 .loc 1 552 46 2053 02c0 1D4B ldr r3, .L97 2054 02c2 1022 movs r2, #16 2055 02c4 5A70 strb r2, [r3, #1] 553:user_src/soft_engine.c **** 2056 .loc 1 553 47 2057 02c6 1C4B ldr r3, .L97 2058 02c8 0022 movs r2, #0 2059 02ca 5A80 strh r2, [r3, #2] @ movhi 555:user_src/soft_engine.c **** } 2060 .loc 1 555 34 2061 02cc 1B4B ldr r3, .L97+4 2062 02ce 0022 movs r2, #0 2063 02d0 1A80 strh r2, [r3] @ movhi 2064 .L83: 558:user_src/soft_engine.c **** 2065 .loc 1 558 13 2066 02d2 3B46 mov r3, r7 2067 02d4 0722 movs r2, #7 2068 02d6 1849 ldr r1, .L97 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 48 2069 02d8 1846 mov r0, r3 2070 02da FFF7FEFF bl memcpy 560:user_src/soft_engine.c **** for (uint8_t i = 0; i < 7; i++) 2071 .loc 1 560 35 2072 02de 164B ldr r3, .L97 2073 02e0 0022 movs r2, #0 2074 02e2 DA71 strb r2, [r3, #7] 2075 .LBB9: 561:user_src/soft_engine.c **** { 2076 .loc 1 561 26 2077 02e4 0023 movs r3, #0 2078 02e6 FB75 strb r3, [r7, #23] 561:user_src/soft_engine.c **** { 2079 .loc 1 561 13 2080 02e8 0DE0 b .L92 2081 .L93: 563:user_src/soft_engine.c **** } 2082 .loc 1 563 39 discriminator 3 2083 02ea 134B ldr r3, .L97 2084 02ec DA79 ldrb r2, [r3, #7] @ zero_extendqisi2 563:user_src/soft_engine.c **** } 2085 .loc 1 563 47 discriminator 3 2086 02ee FB7D ldrb r3, [r7, #23] @ zero_extendqisi2 2087 02f0 1833 adds r3, r3, #24 2088 02f2 3B44 add r3, r3, r7 2089 02f4 13F8183C ldrb r3, [r3, #-24] @ zero_extendqisi2 563:user_src/soft_engine.c **** } 2090 .loc 1 563 39 discriminator 3 2091 02f8 1344 add r3, r3, r2 2092 02fa DAB2 uxtb r2, r3 2093 02fc 0E4B ldr r3, .L97 2094 02fe DA71 strb r2, [r3, #7] 561:user_src/soft_engine.c **** { 2095 .loc 1 561 41 discriminator 3 2096 0300 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2 2097 0302 0133 adds r3, r3, #1 2098 0304 FB75 strb r3, [r7, #23] 2099 .L92: 561:user_src/soft_engine.c **** { 2100 .loc 1 561 13 discriminator 1 2101 0306 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2 2102 0308 062B cmp r3, #6 2103 030a EED9 bls .L93 2104 .LBE9: 565:user_src/soft_engine.c **** 2105 .loc 1 565 50 2106 030c 0A4B ldr r3, .L97 2107 030e DB79 ldrb r3, [r3, #7] @ zero_extendqisi2 565:user_src/soft_engine.c **** 2108 .loc 1 565 35 2109 0310 5B42 rsbs r3, r3, #0 2110 0312 DAB2 uxtb r2, r3 2111 0314 084B ldr r3, .L97 2112 0316 DA71 strb r2, [r3, #7] 567:user_src/soft_engine.c **** 2113 .loc 1 567 13 2114 0318 4FF4D072 mov r2, #416 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 49 2115 031c 0821 movs r1, #8 2116 031e 0648 ldr r0, .L97 2117 0320 FFF7FEFF bl can_send_msg_normalstd 569:user_src/soft_engine.c **** } 2118 .loc 1 569 23 2119 0324 064B ldr r3, .L97+8 2120 0326 5B68 ldr r3, [r3, #4] 569:user_src/soft_engine.c **** } 2121 .loc 1 569 32 2122 0328 0133 adds r3, r3, #1 2123 032a 054A ldr r2, .L97+8 2124 032c 5360 str r3, [r2, #4] 2125 .L94: 2126 .LBE10: 2127 .loc 1 572 1 2128 032e 00BF nop 2129 0330 1837 adds r7, r7, #24 2130 .LCFI33: 2131 .cfi_def_cfa_offset 8 2132 0332 BD46 mov sp, r7 2133 .LCFI34: 2134 .cfi_def_cfa_register 13 2135 @ sp needed 2136 0334 80BD pop {r7, pc} 2137 .L98: 2138 0336 00BF .align 2 2139 .L97: 2140 0338 00000000 .word sendto_geely 2141 033c 00000000 .word geely_set_counts 2142 0340 00000000 .word geely_moni 2143 .cfi_endproc 2144 .LFE139: 2146 .global engine_link_status 2147 .section .bss.engine_link_status,"aw",%nobits 2150 engine_link_status: 2151 0000 00 .space 1 2152 .section .rodata 2153 .align 2 2154 .LC0: 2155 0000 414F414E .ascii "AOAN\000" 2155 00 2156 0005 000000 .align 2 2157 .LC1: 2158 0008 256400 .ascii "%d\000" 2159 .section .text.update_engine_data,"ax",%progbits 2160 .align 1 2161 .global update_engine_data 2162 .syntax unified 2163 .thumb 2164 .thumb_func 2166 update_engine_data: 2167 .LFB140: 573:user_src/soft_engine.c **** 574:user_src/soft_engine.c **** 575:user_src/soft_engine.c **** 576:user_src/soft_engine.c **** 577:user_src/soft_engine.c **** comp_status engine_link_status = COMP_NOEXIST; ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 50 578:user_src/soft_engine.c **** 579:user_src/soft_engine.c **** /* 580:user_src/soft_engine.c **** 发动机类型 uint8 1-瑞深 2-中飞 581:user_src/soft_engine.c **** 发动机转速 uint16_t RPM 582:user_src/soft_engine.c **** 发动机油门 uint16_t 583:user_src/soft_engine.c **** 发动机电压 uint16_t 0.1v 584:user_src/soft_engine.c **** 充电电流 uint16_t 0.1A 585:user_src/soft_engine.c **** 发动机运行时间 uint32_t Min 总运行时间不清零 586:user_src/soft_engine.c **** 剩余保养时间 uint16_t Min 保养后清零 587:user_src/soft_engine.c **** 剩余锁机时间 uint16_t Min 锁机倒计时 588:user_src/soft_engine.c **** 运行状态 uint8_t 0:停止,1:等待,2:运行, 3:锁机 589:user_src/soft_engine.c **** 报警信息 uint16_t 按位来表示可同时容纳16种警报 590:user_src/soft_engine.c **** 剩余油量 uint8_t % 0%-100% 591:user_src/soft_engine.c **** 气缸1温度 uint16_t ℃ 0℃~300℃ 592:user_src/soft_engine.c **** 气缸2温度 uint16_t ℃ 0℃~300℃ 593:user_src/soft_engine.c **** PCB温度 uint8_t ℃ 0℃~255℃ 594:user_src/soft_engine.c **** */ 595:user_src/soft_engine.c **** 596:user_src/soft_engine.c **** 597:user_src/soft_engine.c **** /* 598:user_src/soft_engine.c **** 检查智能电池的连接及数据获取,主要解决兼容多厂家设备接入时的选用优 599:user_src/soft_engine.c **** 600:user_src/soft_engine.c **** 更新速度至少要 5hz 601:user_src/soft_engine.c **** 602:user_src/soft_engine.c **** 缺少放电电流数据 603:user_src/soft_engine.c **** */ 604:user_src/soft_engine.c **** void update_engine_data(void) 605:user_src/soft_engine.c **** { 2168 .loc 1 605 1 2169 .cfi_startproc 2170 @ args = 0, pretend = 0, frame = 8 2171 @ frame_needed = 1, uses_anonymous_args = 0 2172 0000 80B5 push {r7, lr} 2173 .LCFI35: 2174 .cfi_def_cfa_offset 8 2175 .cfi_offset 7, -8 2176 .cfi_offset 14, -4 2177 0002 82B0 sub sp, sp, #8 2178 .LCFI36: 2179 .cfi_def_cfa_offset 16 2180 0004 00AF add r7, sp, #0 2181 .LCFI37: 2182 .cfi_def_cfa_register 7 606:user_src/soft_engine.c **** 607:user_src/soft_engine.c **** //监测中飞发动机 608:user_src/soft_engine.c **** Check_dev_link(&aoan_engine_Link,5000,(char *)&aoan_data,sizeof(AOAN_TYPE)); 2183 .loc 1 608 5 2184 0006 1A23 movs r3, #26 2185 0008 704A ldr r2, .L107 2186 000a 41F28831 movw r1, #5000 2187 000e 7048 ldr r0, .L107+4 2188 0010 FFF7FEFF bl Check_dev_link 609:user_src/soft_engine.c **** //监测VKV3的发动机 610:user_src/soft_engine.c **** Check_dev_link(&vkv3_engine_link,5000,(char *)&vkv3_data,sizeof(VKV3_TYPE)); 2189 .loc 1 610 5 2190 0014 2723 movs r3, #39 2191 0016 6F4A ldr r2, .L107+8 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 51 2192 0018 41F28831 movw r1, #5000 2193 001c 6E48 ldr r0, .L107+12 2194 001e FFF7FEFF bl Check_dev_link 611:user_src/soft_engine.c **** //监测VKV3 2的发动机 612:user_src/soft_engine.c **** //Check_dev_link(&vkv3_engine2_link,5000,(char *)&vkv3_data,sizeof(VKV3_TYPE)); 613:user_src/soft_engine.c **** //检测GEELY发动机 614:user_src/soft_engine.c **** Check_dev_link(&geely_engin_link,5000,(char *)&geely_data,sizeof(GEELY)); 2195 .loc 1 614 5 2196 0022 2823 movs r3, #40 2197 0024 6D4A ldr r2, .L107+16 2198 0026 41F28831 movw r1, #5000 2199 002a 6D48 ldr r0, .L107+20 2200 002c FFF7FEFF bl Check_dev_link 615:user_src/soft_engine.c **** 616:user_src/soft_engine.c **** if (aoan_engine_Link.connect_status == COMP_NORMAL) 2201 .loc 1 616 25 2202 0030 674B ldr r3, .L107+4 2203 0032 1B7A ldrb r3, [r3, #8] @ zero_extendqisi2 2204 .loc 1 616 8 2205 0034 012B cmp r3, #1 2206 0036 5CD1 bne .L100 617:user_src/soft_engine.c **** { 618:user_src/soft_engine.c **** engine_link_status = COMP_NORMAL; 2207 .loc 1 618 28 2208 0038 6A4B ldr r3, .L107+24 2209 003a 0122 movs r2, #1 2210 003c 1A70 strb r2, [r3] 619:user_src/soft_engine.c **** 620:user_src/soft_engine.c **** //数字显示,显示9位数 621:user_src/soft_engine.c **** engine_data.engine_type = ENGINE_AOAN; 2211 .loc 1 621 33 2212 003e 6A4B ldr r3, .L107+28 2213 0040 0222 movs r2, #2 2214 0042 1A70 strb r2, [r3] 622:user_src/soft_engine.c **** engine_data.engine_rev = aoan_data.engin_rev; 2215 .loc 1 622 43 2216 0044 614B ldr r3, .L107 2217 0046 B3F80130 ldrh r3, [r3, #1] @ unaligned 2218 004a 9AB2 uxth r2, r3 2219 .loc 1 622 32 2220 004c 664B ldr r3, .L107+28 2221 004e A3F80120 strh r2, [r3, #1] @ unaligned 623:user_src/soft_engine.c **** engine_data.engine_thr = aoan_data.engin_thr; 2222 .loc 1 623 43 2223 0052 5E4B ldr r3, .L107 2224 0054 B3F80330 ldrh r3, [r3, #3] @ unaligned 2225 0058 9AB2 uxth r2, r3 2226 .loc 1 623 32 2227 005a 634B ldr r3, .L107+28 2228 005c A3F80320 strh r2, [r3, #3] @ unaligned 624:user_src/soft_engine.c **** engine_data.engine_vol = aoan_data.engin_vol; 2229 .loc 1 624 43 2230 0060 5A4B ldr r3, .L107 2231 0062 B3F80530 ldrh r3, [r3, #5] @ unaligned 2232 0066 9AB2 uxth r2, r3 2233 .loc 1 624 32 2234 0068 5F4B ldr r3, .L107+28 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 52 2235 006a A3F80520 strh r2, [r3, #5] @ unaligned 625:user_src/soft_engine.c **** engine_data.engine_elect = aoan_data.engin_elect; 2236 .loc 1 625 45 2237 006e 574B ldr r3, .L107 2238 0070 B3F80730 ldrh r3, [r3, #7] @ unaligned 2239 0074 9BB2 uxth r3, r3 2240 0076 1AB2 sxth r2, r3 2241 .loc 1 625 34 2242 0078 5B4B ldr r3, .L107+28 2243 007a A3F80720 strh r2, [r3, #7] @ unaligned 626:user_src/soft_engine.c **** engine_data.engine_rtime = aoan_data.engin_rtime; 2244 .loc 1 626 45 2245 007e 534B ldr r3, .L107 2246 0080 D3F80930 ldr r3, [r3, #9] @ unaligned 2247 .loc 1 626 34 2248 0084 584A ldr r2, .L107+28 2249 0086 C2F80930 str r3, [r2, #9] @ unaligned 627:user_src/soft_engine.c **** engine_data.engine_tcd = aoan_data.engin_tcd; 2250 .loc 1 627 43 2251 008a 504B ldr r3, .L107 2252 008c B3F80D30 ldrh r3, [r3, #13] @ unaligned 2253 0090 9AB2 uxth r2, r3 2254 .loc 1 627 32 2255 0092 554B ldr r3, .L107+28 2256 0094 A3F80D20 strh r2, [r3, #13] @ unaligned 628:user_src/soft_engine.c **** engine_data.engine_lcd = aoan_data.engin_lcd; 2257 .loc 1 628 43 2258 0098 4C4B ldr r3, .L107 2259 009a B3F80F30 ldrh r3, [r3, #15] @ unaligned 2260 009e 9AB2 uxth r2, r3 2261 .loc 1 628 32 2262 00a0 514B ldr r3, .L107+28 2263 00a2 A3F80F20 strh r2, [r3, #15] @ unaligned 629:user_src/soft_engine.c **** engine_data.engine_rsta = aoan_data.engin_rsta; 2264 .loc 1 629 44 2265 00a6 494B ldr r3, .L107 2266 00a8 5A7C ldrb r2, [r3, #17] @ zero_extendqisi2 2267 .loc 1 629 33 2268 00aa 4F4B ldr r3, .L107+28 2269 00ac 5A74 strb r2, [r3, #17] 630:user_src/soft_engine.c **** engine_data.engine_warn = aoan_data.engin_warn; 2270 .loc 1 630 44 2271 00ae 474B ldr r3, .L107 2272 00b0 5A8A ldrh r2, [r3, #18] 2273 .loc 1 630 33 2274 00b2 4D4B ldr r3, .L107+28 2275 00b4 5A82 strh r2, [r3, #18] @ movhi 631:user_src/soft_engine.c **** engine_data.engine_roil = aoan_data.engin_roil; 2276 .loc 1 631 44 2277 00b6 454B ldr r3, .L107 2278 00b8 1A7D ldrb r2, [r3, #20] @ zero_extendqisi2 2279 .loc 1 631 33 2280 00ba 4B4B ldr r3, .L107+28 2281 00bc 1A75 strb r2, [r3, #20] 632:user_src/soft_engine.c **** engine_data.engine_cyl1temp = aoan_data.engin_cyl1temp; 2282 .loc 1 632 48 2283 00be 434B ldr r3, .L107 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 53 2284 00c0 B3F81530 ldrh r3, [r3, #21] @ unaligned 2285 00c4 9AB2 uxth r2, r3 2286 .loc 1 632 37 2287 00c6 484B ldr r3, .L107+28 2288 00c8 A3F81520 strh r2, [r3, #21] @ unaligned 633:user_src/soft_engine.c **** engine_data.engine_cyl2temp = aoan_data.engin_cyl2temp; 2289 .loc 1 633 48 2290 00cc 3F4B ldr r3, .L107 2291 00ce B3F81730 ldrh r3, [r3, #23] @ unaligned 2292 00d2 9AB2 uxth r2, r3 2293 .loc 1 633 37 2294 00d4 444B ldr r3, .L107+28 2295 00d6 A3F81720 strh r2, [r3, #23] @ unaligned 634:user_src/soft_engine.c **** engine_data.engine_pcbtemp = aoan_data.engin_pcbtemp; 2296 .loc 1 634 47 2297 00da 3C4B ldr r3, .L107 2298 00dc 5B7E ldrb r3, [r3, #25] @ zero_extendqisi2 2299 00de 9AB2 uxth r2, r3 2300 .loc 1 634 36 2301 00e0 414B ldr r3, .L107+28 2302 00e2 A3F81920 strh r2, [r3, #25] @ unaligned 635:user_src/soft_engine.c **** memcpy(engine_data.engine_brand, "AOAN", 4); 2303 .loc 1 635 9 2304 00e6 0422 movs r2, #4 2305 00e8 4049 ldr r1, .L107+32 2306 00ea 4148 ldr r0, .L107+36 2307 00ec FFF7FEFF bl memcpy 636:user_src/soft_engine.c **** } 637:user_src/soft_engine.c **** else if (vkv3_engine_link.connect_status == COMP_NORMAL) 638:user_src/soft_engine.c **** { 639:user_src/soft_engine.c **** engine_link_status = COMP_NORMAL; 640:user_src/soft_engine.c **** 641:user_src/soft_engine.c **** //数字显示,显示9位数 642:user_src/soft_engine.c **** engine_data.engine_type = ENGINE_VK; 643:user_src/soft_engine.c **** engine_data.engine_rev = vkv3_data.engin_rev; 644:user_src/soft_engine.c **** engine_data.engine_thr = vkv3_data.engin_thr; 645:user_src/soft_engine.c **** engine_data.engine_vol = vkv3_data.engin_vol; 646:user_src/soft_engine.c **** engine_data.engine_elect = vkv3_data.engin_elect; 647:user_src/soft_engine.c **** engine_data.engine_rtime = vkv3_data.engin_rtime; 648:user_src/soft_engine.c **** engine_data.engine_tcd = vkv3_data.engin_tcd; 649:user_src/soft_engine.c **** engine_data.engine_lcd = vkv3_data.engin_lcd; 650:user_src/soft_engine.c **** engine_data.engine_rsta = vkv3_data.engin_rsta; 651:user_src/soft_engine.c **** engine_data.engine_warn = vkv3_data.engin_warn; 652:user_src/soft_engine.c **** engine_data.engine_roil = vkv3_data.engin_roil; 653:user_src/soft_engine.c **** engine_data.engine_cyl1temp = vkv3_data.engin_cyl1temp; 654:user_src/soft_engine.c **** engine_data.engine_cyl2temp = vkv3_data.engin_cyl2temp; 655:user_src/soft_engine.c **** engine_data.engine_pcbtemp = vkv3_data.engin_pcbtemp; 656:user_src/soft_engine.c **** engine_data.engine_sn = vkv3_data.engin_sn; 657:user_src/soft_engine.c **** memcpy(engine_data.engine_brand, vkv3_data.engin_brand, 8); 658:user_src/soft_engine.c **** 659:user_src/soft_engine.c **** // if(vkv3_engine2_link.connect_status == COMP_NORMAL) 660:user_src/soft_engine.c **** // { 661:user_src/soft_engine.c **** 662:user_src/soft_engine.c **** // } 663:user_src/soft_engine.c **** } 664:user_src/soft_engine.c **** else if (geely_engin_link.connect_status == COMP_NORMAL) 665:user_src/soft_engine.c **** { ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 54 666:user_src/soft_engine.c **** engine_link_status = COMP_NORMAL; 667:user_src/soft_engine.c **** 668:user_src/soft_engine.c **** engine_data.engine_type = ENGINE_GEELY; 669:user_src/soft_engine.c **** 670:user_src/soft_engine.c **** //数字显示,显示9位数 671:user_src/soft_engine.c **** if(geely_data2.version2_flag != true) 672:user_src/soft_engine.c **** { 673:user_src/soft_engine.c **** engine_data.engine_rev = geely_data.engine_rev; 674:user_src/soft_engine.c **** engine_data.engine_thr = geely_data.engine_thrposition * 0.1f; 675:user_src/soft_engine.c **** engine_data.engine_vol = geely_data.engine_vol * 2; 676:user_src/soft_engine.c **** engine_data.engine_elect = (short)(geely_data.engine_elect - 1000) * 2; 677:user_src/soft_engine.c **** engine_data.engine_rtime = geely_data.engine_runtime; 678:user_src/soft_engine.c **** engine_data.engine_tcd = geely_data.engine_tcd; 679:user_src/soft_engine.c **** engine_data.engine_lcd = geely_data.engine_tlock; 680:user_src/soft_engine.c **** engine_data.engine_rsta = geely_data.engine_status; 681:user_src/soft_engine.c **** engine_data.engine_warn = geely_data.engine_warn & 0xffef;//屏蔽总线系统异常 682:user_src/soft_engine.c **** engine_data.engine_roil = geely_data.engine_fuelposition * 0.5f; 683:user_src/soft_engine.c **** engine_data.engine_cyl1temp = geely_data.engine_cyltemp - 40; 684:user_src/soft_engine.c **** engine_data.engine_cyl2temp = 0; 685:user_src/soft_engine.c **** engine_data.engine_pcbtemp = geely_data.engine_cooltemp - 40; 686:user_src/soft_engine.c **** memcpy(engine_data.engine_brand, geely_data.engine_brand, 3); 687:user_src/soft_engine.c **** memcpy(&engine_data.engine_brand[3],"-", 1); 688:user_src/soft_engine.c **** snprintf((char *)&engine_data.engine_brand[4],4,"%d",(int)geely_data.engine_ver); 689:user_src/soft_engine.c **** engine_data.engine_sn = geely_data.engine_sn[0] * 10000000 + geely_data.engine_sn[1] * 690:user_src/soft_engine.c **** geely_data.engine_sn[2] * 1000 + geely_data.engine_sn[3]; 691:user_src/soft_engine.c **** engine_data.engine_lockstatus = geely_data.engine_control; 692:user_src/soft_engine.c **** engine_data.engine_fault = geely_data.engine_fault; 693:user_src/soft_engine.c **** } 694:user_src/soft_engine.c **** else 695:user_src/soft_engine.c **** { 696:user_src/soft_engine.c **** if(geely_data2.engine_brand[0] == 'B' && geely_data2.engine_brand[1] =='R' && geely_dat 697:user_src/soft_engine.c **** { 698:user_src/soft_engine.c **** engine_data.engine_type = ENGINE_BRO; 699:user_src/soft_engine.c **** } 700:user_src/soft_engine.c **** engine_data.engine_rev = geely_data2.engine_rev; 701:user_src/soft_engine.c **** engine_data.engine_thr = geely_data2.Bit1EA.engine_ATP1 * 0.05f; 702:user_src/soft_engine.c **** engine_data.engine_vol = geely_data2.engine_vol * 0.1f; 703:user_src/soft_engine.c **** engine_data.engine_elect = (short)(geely_data2.engine_elect * 0.05f - 400) * 10; 704:user_src/soft_engine.c **** engine_data.engine_rtime = geely_data2.engine_runtime; 705:user_src/soft_engine.c **** engine_data.engine_tcd = geely_data2.engine_tcd; 706:user_src/soft_engine.c **** engine_data.engine_lcd = geely_data2.engine_tlock; 707:user_src/soft_engine.c **** engine_data.engine_rsta = geely_data2.engine_state; 708:user_src/soft_engine.c **** engine_data.engine_warn = geely_data2.EmgST0; 709:user_src/soft_engine.c **** engine_data.engine_roil = geely_data2.GPS * 0.5f; 710:user_src/soft_engine.c **** engine_data.engine_cyl1temp = geely_data2.engine_cooltemp - 40; 711:user_src/soft_engine.c **** engine_data.engine_cyl2temp = geely_data2. engine_cooltemp1 - 40; 712:user_src/soft_engine.c **** engine_data.engine_pcbtemp = geely_data2.engine_GWT - 40; 713:user_src/soft_engine.c **** memcpy(engine_data.engine_brand, geely_data2.engine_brand, 3); 714:user_src/soft_engine.c **** memcpy(&engine_data.engine_brand[3],"-", 1); 715:user_src/soft_engine.c **** snprintf((char *)&engine_data.engine_brand[4],4,"%d",(int)geely_data2.engine_ver); 716:user_src/soft_engine.c **** engine_data.engine_sn = geely_data2.engine_sn[0] * 10000000 + geely_data2.engine_sn[1] 717:user_src/soft_engine.c **** geely_data2.engine_sn[2] * 1000 + geely_data2.engine_sn[3]; 718:user_src/soft_engine.c **** //engine_data.engine_lockstatus = geely_data2.engine_state == 0? 0 : 1; 719:user_src/soft_engine.c **** engine_data.engine_lockstatus = geely_data2.engine_controlcmd; 720:user_src/soft_engine.c **** //engine_data.engine_fault = geely_data2.engine_fault; 721:user_src/soft_engine.c **** } 722:user_src/soft_engine.c **** } ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 55 723:user_src/soft_engine.c **** else 724:user_src/soft_engine.c **** { 725:user_src/soft_engine.c **** if (engine_link_status == COMP_NORMAL) 726:user_src/soft_engine.c **** { 727:user_src/soft_engine.c **** engine_link_status = COMP_LOST; 728:user_src/soft_engine.c **** 729:user_src/soft_engine.c **** memset(&engine_data, 0, sizeof(engine_data)); 730:user_src/soft_engine.c **** //状态未置异常 731:user_src/soft_engine.c **** engine_data.engine_type = 0xFF; 732:user_src/soft_engine.c **** } 733:user_src/soft_engine.c **** } 734:user_src/soft_engine.c **** } 2308 .loc 1 734 1 2309 00f0 3CE2 b .L106 2310 .L100: 637:user_src/soft_engine.c **** { 2311 .loc 1 637 30 2312 00f2 394B ldr r3, .L107+12 2313 00f4 1B7A ldrb r3, [r3, #8] @ zero_extendqisi2 637:user_src/soft_engine.c **** { 2314 .loc 1 637 13 2315 00f6 012B cmp r3, #1 2316 00f8 7CD1 bne .L102 639:user_src/soft_engine.c **** 2317 .loc 1 639 28 2318 00fa 3A4B ldr r3, .L107+24 2319 00fc 0122 movs r2, #1 2320 00fe 1A70 strb r2, [r3] 642:user_src/soft_engine.c **** engine_data.engine_rev = vkv3_data.engin_rev; 2321 .loc 1 642 33 2322 0100 394B ldr r3, .L107+28 2323 0102 0322 movs r2, #3 2324 0104 1A70 strb r2, [r3] 643:user_src/soft_engine.c **** engine_data.engine_thr = vkv3_data.engin_thr; 2325 .loc 1 643 43 2326 0106 334B ldr r3, .L107+8 2327 0108 B3F80D30 ldrh r3, [r3, #13] @ unaligned 2328 010c 9AB2 uxth r2, r3 643:user_src/soft_engine.c **** engine_data.engine_thr = vkv3_data.engin_thr; 2329 .loc 1 643 32 2330 010e 364B ldr r3, .L107+28 2331 0110 A3F80120 strh r2, [r3, #1] @ unaligned 644:user_src/soft_engine.c **** engine_data.engine_vol = vkv3_data.engin_vol; 2332 .loc 1 644 43 2333 0114 2F4B ldr r3, .L107+8 2334 0116 B3F80F30 ldrh r3, [r3, #15] @ unaligned 2335 011a 9AB2 uxth r2, r3 644:user_src/soft_engine.c **** engine_data.engine_vol = vkv3_data.engin_vol; 2336 .loc 1 644 32 2337 011c 324B ldr r3, .L107+28 2338 011e A3F80320 strh r2, [r3, #3] @ unaligned 645:user_src/soft_engine.c **** engine_data.engine_elect = vkv3_data.engin_elect; 2339 .loc 1 645 43 2340 0122 2C4B ldr r3, .L107+8 2341 0124 B3F81130 ldrh r3, [r3, #17] @ unaligned 2342 0128 9AB2 uxth r2, r3 645:user_src/soft_engine.c **** engine_data.engine_elect = vkv3_data.engin_elect; ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 56 2343 .loc 1 645 32 2344 012a 2F4B ldr r3, .L107+28 2345 012c A3F80520 strh r2, [r3, #5] @ unaligned 646:user_src/soft_engine.c **** engine_data.engine_rtime = vkv3_data.engin_rtime; 2346 .loc 1 646 45 2347 0130 284B ldr r3, .L107+8 2348 0132 B3F81330 ldrh r3, [r3, #19] @ unaligned 2349 0136 9BB2 uxth r3, r3 2350 0138 1AB2 sxth r2, r3 646:user_src/soft_engine.c **** engine_data.engine_rtime = vkv3_data.engin_rtime; 2351 .loc 1 646 34 2352 013a 2B4B ldr r3, .L107+28 2353 013c A3F80720 strh r2, [r3, #7] @ unaligned 647:user_src/soft_engine.c **** engine_data.engine_tcd = vkv3_data.engin_tcd; 2354 .loc 1 647 45 2355 0140 244B ldr r3, .L107+8 2356 0142 D3F81530 ldr r3, [r3, #21] @ unaligned 647:user_src/soft_engine.c **** engine_data.engine_tcd = vkv3_data.engin_tcd; 2357 .loc 1 647 34 2358 0146 284A ldr r2, .L107+28 2359 0148 C2F80930 str r3, [r2, #9] @ unaligned 648:user_src/soft_engine.c **** engine_data.engine_lcd = vkv3_data.engin_lcd; 2360 .loc 1 648 43 2361 014c 214B ldr r3, .L107+8 2362 014e B3F81930 ldrh r3, [r3, #25] @ unaligned 2363 0152 9AB2 uxth r2, r3 648:user_src/soft_engine.c **** engine_data.engine_lcd = vkv3_data.engin_lcd; 2364 .loc 1 648 32 2365 0154 244B ldr r3, .L107+28 2366 0156 A3F80D20 strh r2, [r3, #13] @ unaligned 649:user_src/soft_engine.c **** engine_data.engine_rsta = vkv3_data.engin_rsta; 2367 .loc 1 649 43 2368 015a 1E4B ldr r3, .L107+8 2369 015c B3F81B30 ldrh r3, [r3, #27] @ unaligned 2370 0160 9AB2 uxth r2, r3 649:user_src/soft_engine.c **** engine_data.engine_rsta = vkv3_data.engin_rsta; 2371 .loc 1 649 32 2372 0162 214B ldr r3, .L107+28 2373 0164 A3F80F20 strh r2, [r3, #15] @ unaligned 650:user_src/soft_engine.c **** engine_data.engine_warn = vkv3_data.engin_warn; 2374 .loc 1 650 44 2375 0168 1A4B ldr r3, .L107+8 2376 016a 5A7F ldrb r2, [r3, #29] @ zero_extendqisi2 650:user_src/soft_engine.c **** engine_data.engine_warn = vkv3_data.engin_warn; 2377 .loc 1 650 33 2378 016c 1E4B ldr r3, .L107+28 2379 016e 5A74 strb r2, [r3, #17] 651:user_src/soft_engine.c **** engine_data.engine_roil = vkv3_data.engin_roil; 2380 .loc 1 651 44 2381 0170 184B ldr r3, .L107+8 2382 0172 DA8B ldrh r2, [r3, #30] 651:user_src/soft_engine.c **** engine_data.engine_roil = vkv3_data.engin_roil; 2383 .loc 1 651 33 2384 0174 1C4B ldr r3, .L107+28 2385 0176 5A82 strh r2, [r3, #18] @ movhi 652:user_src/soft_engine.c **** engine_data.engine_cyl1temp = vkv3_data.engin_cyl1temp; 2386 .loc 1 652 44 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 57 2387 0178 164B ldr r3, .L107+8 2388 017a 93F82020 ldrb r2, [r3, #32] @ zero_extendqisi2 652:user_src/soft_engine.c **** engine_data.engine_cyl1temp = vkv3_data.engin_cyl1temp; 2389 .loc 1 652 33 2390 017e 1A4B ldr r3, .L107+28 2391 0180 1A75 strb r2, [r3, #20] 653:user_src/soft_engine.c **** engine_data.engine_cyl2temp = vkv3_data.engin_cyl2temp; 2392 .loc 1 653 48 2393 0182 144B ldr r3, .L107+8 2394 0184 B3F82130 ldrh r3, [r3, #33] @ unaligned 2395 0188 9AB2 uxth r2, r3 653:user_src/soft_engine.c **** engine_data.engine_cyl2temp = vkv3_data.engin_cyl2temp; 2396 .loc 1 653 37 2397 018a 174B ldr r3, .L107+28 2398 018c A3F81520 strh r2, [r3, #21] @ unaligned 654:user_src/soft_engine.c **** engine_data.engine_pcbtemp = vkv3_data.engin_pcbtemp; 2399 .loc 1 654 48 2400 0190 104B ldr r3, .L107+8 2401 0192 B3F82330 ldrh r3, [r3, #35] @ unaligned 2402 0196 9AB2 uxth r2, r3 654:user_src/soft_engine.c **** engine_data.engine_pcbtemp = vkv3_data.engin_pcbtemp; 2403 .loc 1 654 37 2404 0198 134B ldr r3, .L107+28 2405 019a A3F81720 strh r2, [r3, #23] @ unaligned 655:user_src/soft_engine.c **** engine_data.engine_sn = vkv3_data.engin_sn; 2406 .loc 1 655 47 2407 019e 0D4B ldr r3, .L107+8 2408 01a0 B3F82530 ldrh r3, [r3, #37] @ unaligned 2409 01a4 9AB2 uxth r2, r3 655:user_src/soft_engine.c **** engine_data.engine_sn = vkv3_data.engin_sn; 2410 .loc 1 655 36 2411 01a6 104B ldr r3, .L107+28 2412 01a8 A3F81920 strh r2, [r3, #25] @ unaligned 656:user_src/soft_engine.c **** memcpy(engine_data.engine_brand, vkv3_data.engin_brand, 8); 2413 .loc 1 656 42 2414 01ac 094B ldr r3, .L107+8 2415 01ae D3F80930 ldr r3, [r3, #9] @ unaligned 656:user_src/soft_engine.c **** memcpy(engine_data.engine_brand, vkv3_data.engin_brand, 8); 2416 .loc 1 656 31 2417 01b2 0D4A ldr r2, .L107+28 2418 01b4 C2F82330 str r3, [r2, #35] @ unaligned 657:user_src/soft_engine.c **** 2419 .loc 1 657 9 2420 01b8 0B4B ldr r3, .L107+28 2421 01ba 064A ldr r2, .L107+8 2422 01bc 1B33 adds r3, r3, #27 2423 01be 0132 adds r2, r2, #1 2424 01c0 1168 ldr r1, [r2] @ unaligned 2425 01c2 5268 ldr r2, [r2, #4] @ unaligned 2426 01c4 1960 str r1, [r3] @ unaligned 2427 01c6 5A60 str r2, [r3, #4] @ unaligned 2428 .loc 1 734 1 2429 01c8 D0E1 b .L106 2430 .L108: 2431 01ca 00BF .align 2 2432 .L107: 2433 01cc 00000000 .word aoan_data ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 58 2434 01d0 00000000 .word aoan_engine_Link 2435 01d4 00000000 .word vkv3_data 2436 01d8 00000000 .word vkv3_engine_link 2437 01dc 00000000 .word geely_data 2438 01e0 00000000 .word geely_engin_link 2439 01e4 00000000 .word engine_link_status 2440 01e8 00000000 .word engine_data 2441 01ec 00000000 .word .LC0 2442 01f0 1B000000 .word engine_data+27 2443 .L102: 664:user_src/soft_engine.c **** { 2444 .loc 1 664 30 2445 01f4 5A4B ldr r3, .L109 2446 01f6 1B7A ldrb r3, [r3, #8] @ zero_extendqisi2 664:user_src/soft_engine.c **** { 2447 .loc 1 664 13 2448 01f8 012B cmp r3, #1 2449 01fa 40F0A881 bne .L103 666:user_src/soft_engine.c **** 2450 .loc 1 666 28 2451 01fe 594B ldr r3, .L109+4 2452 0200 0122 movs r2, #1 2453 0202 1A70 strb r2, [r3] 668:user_src/soft_engine.c **** 2454 .loc 1 668 33 2455 0204 584B ldr r3, .L109+8 2456 0206 0422 movs r2, #4 2457 0208 1A70 strb r2, [r3] 671:user_src/soft_engine.c **** { 2458 .loc 1 671 23 2459 020a 584B ldr r3, .L109+12 2460 020c 1B78 ldrb r3, [r3] @ zero_extendqisi2 671:user_src/soft_engine.c **** { 2461 .loc 1 671 38 2462 020e 83F00103 eor r3, r3, #1 2463 0212 DBB2 uxtb r3, r3 671:user_src/soft_engine.c **** { 2464 .loc 1 671 11 2465 0214 002B cmp r3, #0 2466 0216 00F0B780 beq .L104 673:user_src/soft_engine.c **** engine_data.engine_thr = geely_data.engine_thrposition * 0.1f; 2467 .loc 1 673 48 2468 021a 554B ldr r3, .L109+16 2469 021c 1A89 ldrh r2, [r3, #8] 673:user_src/soft_engine.c **** engine_data.engine_thr = geely_data.engine_thrposition * 0.1f; 2470 .loc 1 673 36 2471 021e 524B ldr r3, .L109+8 2472 0220 A3F80120 strh r2, [r3, #1] @ unaligned 674:user_src/soft_engine.c **** engine_data.engine_vol = geely_data.engine_vol * 2; 2473 .loc 1 674 48 2474 0224 524B ldr r3, .L109+16 2475 0226 5B89 ldrh r3, [r3, #10] 2476 0228 07EE903A vmov s15, r3 @ int 674:user_src/soft_engine.c **** engine_data.engine_vol = geely_data.engine_vol * 2; 2477 .loc 1 674 68 2478 022c F8EEE77A vcvt.f32.s32 s15, s15 2479 0230 9FED507A vldr.32 s14, .L109+20 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 59 2480 0234 67EE877A vmul.f32 s15, s15, s14 674:user_src/soft_engine.c **** engine_data.engine_vol = geely_data.engine_vol * 2; 2481 .loc 1 674 36 2482 0238 FCEEE77A vcvt.u32.f32 s15, s15 2483 023c 17EE903A vmov r3, s15 @ int 2484 0240 9AB2 uxth r2, r3 2485 0242 494B ldr r3, .L109+8 2486 0244 A3F80320 strh r2, [r3, #3] @ unaligned 675:user_src/soft_engine.c **** engine_data.engine_elect = (short)(geely_data.engine_elect - 1000) * 2; 2487 .loc 1 675 48 2488 0248 494B ldr r3, .L109+16 2489 024a 1B8A ldrh r3, [r3, #16] 675:user_src/soft_engine.c **** engine_data.engine_elect = (short)(geely_data.engine_elect - 1000) * 2; 2490 .loc 1 675 36 2491 024c 5B00 lsls r3, r3, #1 2492 024e 9AB2 uxth r2, r3 2493 0250 454B ldr r3, .L109+8 2494 0252 A3F80520 strh r2, [r3, #5] @ unaligned 676:user_src/soft_engine.c **** engine_data.engine_rtime = geely_data.engine_runtime; 2495 .loc 1 676 58 2496 0256 464B ldr r3, .L109+16 2497 0258 5B8A ldrh r3, [r3, #18] 676:user_src/soft_engine.c **** engine_data.engine_rtime = geely_data.engine_runtime; 2498 .loc 1 676 72 2499 025a A3F57A73 sub r3, r3, #1000 2500 025e 9BB2 uxth r3, r3 676:user_src/soft_engine.c **** engine_data.engine_rtime = geely_data.engine_runtime; 2501 .loc 1 676 80 2502 0260 5B00 lsls r3, r3, #1 2503 0262 9BB2 uxth r3, r3 2504 0264 1AB2 sxth r2, r3 676:user_src/soft_engine.c **** engine_data.engine_rtime = geely_data.engine_runtime; 2505 .loc 1 676 38 2506 0266 404B ldr r3, .L109+8 2507 0268 A3F80720 strh r2, [r3, #7] @ unaligned 677:user_src/soft_engine.c **** engine_data.engine_tcd = geely_data.engine_tcd; 2508 .loc 1 677 50 2509 026c 404B ldr r3, .L109+16 2510 026e 1B6A ldr r3, [r3, #32] 677:user_src/soft_engine.c **** engine_data.engine_tcd = geely_data.engine_tcd; 2511 .loc 1 677 38 2512 0270 3D4A ldr r2, .L109+8 2513 0272 C2F80930 str r3, [r2, #9] @ unaligned 678:user_src/soft_engine.c **** engine_data.engine_lcd = geely_data.engine_tlock; 2514 .loc 1 678 48 2515 0276 3E4B ldr r3, .L109+16 2516 0278 9A8C ldrh r2, [r3, #36] 678:user_src/soft_engine.c **** engine_data.engine_lcd = geely_data.engine_tlock; 2517 .loc 1 678 36 2518 027a 3B4B ldr r3, .L109+8 2519 027c A3F80D20 strh r2, [r3, #13] @ unaligned 679:user_src/soft_engine.c **** engine_data.engine_rsta = geely_data.engine_status; 2520 .loc 1 679 48 2521 0280 3B4B ldr r3, .L109+16 2522 0282 DA8C ldrh r2, [r3, #38] 679:user_src/soft_engine.c **** engine_data.engine_rsta = geely_data.engine_status; 2523 .loc 1 679 36 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 60 2524 0284 384B ldr r3, .L109+8 2525 0286 A3F80F20 strh r2, [r3, #15] @ unaligned 680:user_src/soft_engine.c **** engine_data.engine_warn = geely_data.engine_warn & 0xffef;//屏蔽总线系统异常 2526 .loc 1 680 49 2527 028a 394B ldr r3, .L109+16 2528 028c DA7B ldrb r2, [r3, #15] @ zero_extendqisi2 680:user_src/soft_engine.c **** engine_data.engine_warn = geely_data.engine_warn & 0xffef;//屏蔽总线系统异常 2529 .loc 1 680 37 2530 028e 364B ldr r3, .L109+8 2531 0290 5A74 strb r2, [r3, #17] 681:user_src/soft_engine.c **** engine_data.engine_roil = geely_data.engine_fuelposition * 0.5f; 2532 .loc 1 681 49 2533 0292 374B ldr r3, .L109+16 2534 0294 9B8A ldrh r3, [r3, #20] 681:user_src/soft_engine.c **** engine_data.engine_roil = geely_data.engine_fuelposition * 0.5f; 2535 .loc 1 681 62 2536 0296 23F01003 bic r3, r3, #16 2537 029a 9AB2 uxth r2, r3 681:user_src/soft_engine.c **** engine_data.engine_roil = geely_data.engine_fuelposition * 0.5f; 2538 .loc 1 681 37 2539 029c 324B ldr r3, .L109+8 2540 029e 5A82 strh r2, [r3, #18] @ movhi 682:user_src/soft_engine.c **** engine_data.engine_cyl1temp = geely_data.engine_cyltemp - 40; 2541 .loc 1 682 49 2542 02a0 334B ldr r3, .L109+16 2543 02a2 1B7B ldrb r3, [r3, #12] @ zero_extendqisi2 2544 02a4 07EE903A vmov s15, r3 @ int 682:user_src/soft_engine.c **** engine_data.engine_cyl1temp = geely_data.engine_cyltemp - 40; 2545 .loc 1 682 70 2546 02a8 F8EEE77A vcvt.f32.s32 s15, s15 2547 02ac B6EE007A vmov.f32 s14, #5.0e-1 2548 02b0 67EE877A vmul.f32 s15, s15, s14 682:user_src/soft_engine.c **** engine_data.engine_cyl1temp = geely_data.engine_cyltemp - 40; 2549 .loc 1 682 37 2550 02b4 FCEEE77A vcvt.u32.f32 s15, s15 2551 02b8 C7ED017A vstr.32 s15, [r7, #4] @ int 2552 02bc 3B79 ldrb r3, [r7, #4] 2553 02be DAB2 uxtb r2, r3 2554 02c0 294B ldr r3, .L109+8 2555 02c2 1A75 strb r2, [r3, #20] 683:user_src/soft_engine.c **** engine_data.engine_cyl2temp = 0; 2556 .loc 1 683 53 2557 02c4 2A4B ldr r3, .L109+16 2558 02c6 5B7B ldrb r3, [r3, #13] @ zero_extendqisi2 2559 02c8 9BB2 uxth r3, r3 683:user_src/soft_engine.c **** engine_data.engine_cyl2temp = 0; 2560 .loc 1 683 69 2561 02ca 283B subs r3, r3, #40 2562 02cc 9AB2 uxth r2, r3 683:user_src/soft_engine.c **** engine_data.engine_cyl2temp = 0; 2563 .loc 1 683 41 2564 02ce 264B ldr r3, .L109+8 2565 02d0 A3F81520 strh r2, [r3, #21] @ unaligned 684:user_src/soft_engine.c **** engine_data.engine_pcbtemp = geely_data.engine_cooltemp - 40; 2566 .loc 1 684 41 2567 02d4 244B ldr r3, .L109+8 2568 02d6 0022 movs r2, #0 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 61 2569 02d8 DA75 strb r2, [r3, #23] 2570 02da 0022 movs r2, #0 2571 02dc 1A76 strb r2, [r3, #24] 685:user_src/soft_engine.c **** memcpy(engine_data.engine_brand, geely_data.engine_brand, 3); 2572 .loc 1 685 52 2573 02de 244B ldr r3, .L109+16 2574 02e0 9B7B ldrb r3, [r3, #14] @ zero_extendqisi2 2575 02e2 9BB2 uxth r3, r3 685:user_src/soft_engine.c **** memcpy(engine_data.engine_brand, geely_data.engine_brand, 3); 2576 .loc 1 685 69 2577 02e4 283B subs r3, r3, #40 2578 02e6 9AB2 uxth r2, r3 685:user_src/soft_engine.c **** memcpy(engine_data.engine_brand, geely_data.engine_brand, 3); 2579 .loc 1 685 40 2580 02e8 1F4B ldr r3, .L109+8 2581 02ea A3F81920 strh r2, [r3, #25] @ unaligned 686:user_src/soft_engine.c **** memcpy(&engine_data.engine_brand[3],"-", 1); 2582 .loc 1 686 13 2583 02ee 1E4B ldr r3, .L109+8 2584 02f0 1F4A ldr r2, .L109+16 2585 02f2 1B33 adds r3, r3, #27 2586 02f4 0132 adds r2, r2, #1 2587 02f6 1188 ldrh r1, [r2] @ unaligned 2588 02f8 9278 ldrb r2, [r2, #2] 2589 02fa 1980 strh r1, [r3] @ unaligned 2590 02fc 9A70 strb r2, [r3, #2] 687:user_src/soft_engine.c **** snprintf((char *)&engine_data.engine_brand[4],4,"%d",(int)geely_data.engine_ver); 2591 .loc 1 687 13 2592 02fe 1A4B ldr r3, .L109+8 2593 0300 2D22 movs r2, #45 2594 0302 9A77 strb r2, [r3, #30] 688:user_src/soft_engine.c **** engine_data.engine_sn = geely_data.engine_sn[0] * 10000000 + geely_data.engine_sn[1] * 2595 .loc 1 688 81 2596 0304 1A4B ldr r3, .L109+16 2597 0306 1B78 ldrb r3, [r3] @ zero_extendqisi2 688:user_src/soft_engine.c **** engine_data.engine_sn = geely_data.engine_sn[0] * 10000000 + geely_data.engine_sn[1] * 2598 .loc 1 688 13 2599 0308 1B4A ldr r2, .L109+24 2600 030a 0421 movs r1, #4 2601 030c 1B48 ldr r0, .L109+28 2602 030e FFF7FEFF bl snprintf 689:user_src/soft_engine.c **** geely_data.engine_sn[2] * 1000 + geely_data.engine_sn[3]; 2603 .loc 1 689 57 2604 0312 174B ldr r3, .L109+16 2605 0314 1B79 ldrb r3, [r3, #4] @ zero_extendqisi2 2606 0316 1A46 mov r2, r3 689:user_src/soft_engine.c **** geely_data.engine_sn[2] * 1000 + geely_data.engine_sn[3]; 2607 .loc 1 689 61 2608 0318 194B ldr r3, .L109+32 2609 031a 03FB02F2 mul r2, r3, r2 689:user_src/soft_engine.c **** geely_data.engine_sn[2] * 1000 + geely_data.engine_sn[3]; 2610 .loc 1 689 94 2611 031e 144B ldr r3, .L109+16 2612 0320 5B79 ldrb r3, [r3, #5] @ zero_extendqisi2 2613 0322 1946 mov r1, r3 689:user_src/soft_engine.c **** geely_data.engine_sn[2] * 1000 + geely_data.engine_sn[3]; 2614 .loc 1 689 98 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 62 2615 0324 174B ldr r3, .L109+36 2616 0326 01FB03F3 mul r3, r1, r3 689:user_src/soft_engine.c **** geely_data.engine_sn[2] * 1000 + geely_data.engine_sn[3]; 2617 .loc 1 689 72 2618 032a 1A44 add r2, r2, r3 690:user_src/soft_engine.c **** engine_data.engine_lockstatus = geely_data.engine_control; 2619 .loc 1 690 57 2620 032c 104B ldr r3, .L109+16 2621 032e 9B79 ldrb r3, [r3, #6] @ zero_extendqisi2 2622 0330 1946 mov r1, r3 690:user_src/soft_engine.c **** engine_data.engine_lockstatus = geely_data.engine_control; 2623 .loc 1 690 61 2624 0332 4FF47A73 mov r3, #1000 2625 0336 01FB03F3 mul r3, r1, r3 689:user_src/soft_engine.c **** geely_data.engine_sn[2] * 1000 + geely_data.engine_sn[3]; 2626 .loc 1 689 107 2627 033a 1344 add r3, r3, r2 690:user_src/soft_engine.c **** engine_data.engine_lockstatus = geely_data.engine_control; 2628 .loc 1 690 90 2629 033c 0C4A ldr r2, .L109+16 2630 033e D279 ldrb r2, [r2, #7] @ zero_extendqisi2 690:user_src/soft_engine.c **** engine_data.engine_lockstatus = geely_data.engine_control; 2631 .loc 1 690 68 2632 0340 1344 add r3, r3, r2 2633 0342 1A46 mov r2, r3 689:user_src/soft_engine.c **** geely_data.engine_sn[2] * 1000 + geely_data.engine_sn[3]; 2634 .loc 1 689 35 2635 0344 084B ldr r3, .L109+8 2636 0346 C3F82320 str r2, [r3, #35] @ unaligned 691:user_src/soft_engine.c **** engine_data.engine_fault = geely_data.engine_fault; 2637 .loc 1 691 55 2638 034a 094B ldr r3, .L109+16 2639 034c 1A7E ldrb r2, [r3, #24] @ zero_extendqisi2 691:user_src/soft_engine.c **** engine_data.engine_fault = geely_data.engine_fault; 2640 .loc 1 691 43 2641 034e 064B ldr r3, .L109+8 2642 0350 83F82720 strb r2, [r3, #39] 692:user_src/soft_engine.c **** } 2643 .loc 1 692 50 2644 0354 064B ldr r3, .L109+16 2645 0356 DA7D ldrb r2, [r3, #23] @ zero_extendqisi2 692:user_src/soft_engine.c **** } 2646 .loc 1 692 38 2647 0358 034B ldr r3, .L109+8 2648 035a 83F82820 strb r2, [r3, #40] 2649 .loc 1 734 1 2650 035e 05E1 b .L106 2651 .L110: 2652 .align 2 2653 .L109: 2654 0360 00000000 .word geely_engin_link 2655 0364 00000000 .word engine_link_status 2656 0368 00000000 .word engine_data 2657 036c 00000000 .word geely_data2 2658 0370 00000000 .word geely_data 2659 0374 CDCCCC3D .word 1036831949 2660 0378 08000000 .word .LC1 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 63 2661 037c 1F000000 .word engine_data+31 2662 0380 80969800 .word 10000000 2663 0384 A0860100 .word 100000 2664 .L104: 696:user_src/soft_engine.c **** { 2665 .loc 1 696 40 2666 0388 7A4B ldr r3, .L111 2667 038a 9B78 ldrb r3, [r3, #2] @ zero_extendqisi2 696:user_src/soft_engine.c **** { 2668 .loc 1 696 15 2669 038c 422B cmp r3, #66 2670 038e 0AD1 bne .L105 696:user_src/soft_engine.c **** { 2671 .loc 1 696 78 discriminator 1 2672 0390 784B ldr r3, .L111 2673 0392 DB78 ldrb r3, [r3, #3] @ zero_extendqisi2 696:user_src/soft_engine.c **** { 2674 .loc 1 696 51 discriminator 1 2675 0394 522B cmp r3, #82 2676 0396 06D1 bne .L105 696:user_src/soft_engine.c **** { 2677 .loc 1 696 115 discriminator 2 2678 0398 764B ldr r3, .L111 2679 039a 1B79 ldrb r3, [r3, #4] @ zero_extendqisi2 696:user_src/soft_engine.c **** { 2680 .loc 1 696 88 discriminator 2 2681 039c 4F2B cmp r3, #79 2682 039e 02D1 bne .L105 698:user_src/soft_engine.c **** } 2683 .loc 1 698 41 2684 03a0 754B ldr r3, .L111+4 2685 03a2 0522 movs r2, #5 2686 03a4 1A70 strb r2, [r3] 2687 .L105: 700:user_src/soft_engine.c **** engine_data.engine_thr = geely_data2.Bit1EA.engine_ATP1 * 0.05f; 2688 .loc 1 700 49 2689 03a6 734B ldr r3, .L111 2690 03a8 B3F81F30 ldrh r3, [r3, #31] @ unaligned 2691 03ac 9AB2 uxth r2, r3 700:user_src/soft_engine.c **** engine_data.engine_thr = geely_data2.Bit1EA.engine_ATP1 * 0.05f; 2692 .loc 1 700 36 2693 03ae 724B ldr r3, .L111+4 2694 03b0 A3F80120 strh r2, [r3, #1] @ unaligned 701:user_src/soft_engine.c **** engine_data.engine_vol = geely_data2.engine_vol * 0.1f; 2695 .loc 1 701 56 2696 03b4 6F4B ldr r3, .L111 2697 03b6 1B8D ldrh r3, [r3, #40] @ movhi 2698 03b8 C3F30B13 ubfx r3, r3, #4, #12 2699 03bc 9BB2 uxth r3, r3 2700 03be 07EE903A vmov s15, r3 @ int 701:user_src/soft_engine.c **** engine_data.engine_vol = geely_data2.engine_vol * 0.1f; 2701 .loc 1 701 69 2702 03c2 F8EEE77A vcvt.f32.s32 s15, s15 2703 03c6 9FED6D7A vldr.32 s14, .L111+8 2704 03ca 67EE877A vmul.f32 s15, s15, s14 701:user_src/soft_engine.c **** engine_data.engine_vol = geely_data2.engine_vol * 0.1f; 2705 .loc 1 701 36 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 64 2706 03ce FCEEE77A vcvt.u32.f32 s15, s15 2707 03d2 17EE903A vmov r3, s15 @ int 2708 03d6 9AB2 uxth r2, r3 2709 03d8 674B ldr r3, .L111+4 2710 03da A3F80320 strh r2, [r3, #3] @ unaligned 702:user_src/soft_engine.c **** engine_data.engine_elect = (short)(geely_data2.engine_elect * 0.05f - 400) * 10; 2711 .loc 1 702 49 2712 03de 654B ldr r3, .L111 2713 03e0 B3F82130 ldrh r3, [r3, #33] @ unaligned 2714 03e4 9BB2 uxth r3, r3 2715 03e6 07EE903A vmov s15, r3 @ int 702:user_src/soft_engine.c **** engine_data.engine_elect = (short)(geely_data2.engine_elect * 0.05f - 400) * 10; 2716 .loc 1 702 61 2717 03ea F8EEE77A vcvt.f32.s32 s15, s15 2718 03ee 9FED647A vldr.32 s14, .L111+12 2719 03f2 67EE877A vmul.f32 s15, s15, s14 702:user_src/soft_engine.c **** engine_data.engine_elect = (short)(geely_data2.engine_elect * 0.05f - 400) * 10; 2720 .loc 1 702 36 2721 03f6 FCEEE77A vcvt.u32.f32 s15, s15 2722 03fa 17EE903A vmov r3, s15 @ int 2723 03fe 9AB2 uxth r2, r3 2724 0400 5D4B ldr r3, .L111+4 2725 0402 A3F80520 strh r2, [r3, #5] @ unaligned 703:user_src/soft_engine.c **** engine_data.engine_rtime = geely_data2.engine_runtime; 2726 .loc 1 703 59 2727 0406 5B4B ldr r3, .L111 2728 0408 B3F92330 ldrsh r3, [r3, #35] @ unaligned 2729 040c 1BB2 sxth r3, r3 703:user_src/soft_engine.c **** engine_data.engine_rtime = geely_data2.engine_runtime; 2730 .loc 1 703 73 2731 040e 07EE903A vmov s15, r3 @ int 2732 0412 F8EEE77A vcvt.f32.s32 s15, s15 2733 0416 9FED597A vldr.32 s14, .L111+8 2734 041a 67EE877A vmul.f32 s15, s15, s14 703:user_src/soft_engine.c **** engine_data.engine_rtime = geely_data2.engine_runtime; 2735 .loc 1 703 81 2736 041e 9FED597A vldr.32 s14, .L111+16 2737 0422 77EEC77A vsub.f32 s15, s15, s14 703:user_src/soft_engine.c **** engine_data.engine_rtime = geely_data2.engine_runtime; 2738 .loc 1 703 40 2739 0426 FDEEE77A vcvt.s32.f32 s15, s15 2740 042a 17EE903A vmov r3, s15 @ int 2741 042e 1BB2 sxth r3, r3 2742 0430 9BB2 uxth r3, r3 703:user_src/soft_engine.c **** engine_data.engine_rtime = geely_data2.engine_runtime; 2743 .loc 1 703 88 2744 0432 1A46 mov r2, r3 @ movhi 2745 0434 9200 lsls r2, r2, #2 2746 0436 1344 add r3, r3, r2 2747 0438 5B00 lsls r3, r3, #1 2748 043a 9BB2 uxth r3, r3 2749 043c 1AB2 sxth r2, r3 703:user_src/soft_engine.c **** engine_data.engine_rtime = geely_data2.engine_runtime; 2750 .loc 1 703 38 2751 043e 4E4B ldr r3, .L111+4 2752 0440 A3F80720 strh r2, [r3, #7] @ unaligned 704:user_src/soft_engine.c **** engine_data.engine_tcd = geely_data2.engine_tcd; ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 65 2753 .loc 1 704 51 2754 0444 4B4B ldr r3, .L111 2755 0446 D3F80930 ldr r3, [r3, #9] @ unaligned 704:user_src/soft_engine.c **** engine_data.engine_tcd = geely_data2.engine_tcd; 2756 .loc 1 704 38 2757 044a 4B4A ldr r2, .L111+4 2758 044c C2F80930 str r3, [r2, #9] @ unaligned 705:user_src/soft_engine.c **** engine_data.engine_lcd = geely_data2.engine_tlock; 2759 .loc 1 705 49 2760 0450 484B ldr r3, .L111 2761 0452 B3F80D30 ldrh r3, [r3, #13] @ unaligned 2762 0456 9AB2 uxth r2, r3 705:user_src/soft_engine.c **** engine_data.engine_lcd = geely_data2.engine_tlock; 2763 .loc 1 705 36 2764 0458 474B ldr r3, .L111+4 2765 045a A3F80D20 strh r2, [r3, #13] @ unaligned 706:user_src/soft_engine.c **** engine_data.engine_rsta = geely_data2.engine_state; 2766 .loc 1 706 49 2767 045e 454B ldr r3, .L111 2768 0460 B3F80F30 ldrh r3, [r3, #15] @ unaligned 2769 0464 9AB2 uxth r2, r3 706:user_src/soft_engine.c **** engine_data.engine_rsta = geely_data2.engine_state; 2770 .loc 1 706 36 2771 0466 444B ldr r3, .L111+4 2772 0468 A3F80F20 strh r2, [r3, #15] @ unaligned 707:user_src/soft_engine.c **** engine_data.engine_warn = geely_data2.EmgST0; 2773 .loc 1 707 50 2774 046c 414B ldr r3, .L111 2775 046e DB7E ldrb r3, [r3, #27] 2776 0470 C3F38113 ubfx r3, r3, #6, #2 2777 0474 DBB2 uxtb r3, r3 2778 0476 1A46 mov r2, r3 707:user_src/soft_engine.c **** engine_data.engine_warn = geely_data2.EmgST0; 2779 .loc 1 707 37 2780 0478 3F4B ldr r3, .L111+4 2781 047a 5A74 strb r2, [r3, #17] 708:user_src/soft_engine.c **** engine_data.engine_roil = geely_data2.GPS * 0.5f; 2782 .loc 1 708 50 2783 047c 3D4B ldr r3, .L111 2784 047e B3F83930 ldrh r3, [r3, #57] @ unaligned 2785 0482 9AB2 uxth r2, r3 708:user_src/soft_engine.c **** engine_data.engine_roil = geely_data2.GPS * 0.5f; 2786 .loc 1 708 37 2787 0484 3C4B ldr r3, .L111+4 2788 0486 5A82 strh r2, [r3, #18] @ movhi 709:user_src/soft_engine.c **** engine_data.engine_cyl1temp = geely_data2.engine_cooltemp - 40; 2789 .loc 1 709 50 2790 0488 3A4B ldr r3, .L111 2791 048a 93F83330 ldrb r3, [r3, #51] @ zero_extendqisi2 2792 048e 07EE903A vmov s15, r3 @ int 709:user_src/soft_engine.c **** engine_data.engine_cyl1temp = geely_data2.engine_cooltemp - 40; 2793 .loc 1 709 55 2794 0492 F8EEE77A vcvt.f32.s32 s15, s15 2795 0496 B6EE007A vmov.f32 s14, #5.0e-1 2796 049a 67EE877A vmul.f32 s15, s15, s14 709:user_src/soft_engine.c **** engine_data.engine_cyl1temp = geely_data2.engine_cooltemp - 40; 2797 .loc 1 709 37 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 66 2798 049e FCEEE77A vcvt.u32.f32 s15, s15 2799 04a2 C7ED017A vstr.32 s15, [r7, #4] @ int 2800 04a6 3B79 ldrb r3, [r7, #4] 2801 04a8 DAB2 uxtb r2, r3 2802 04aa 334B ldr r3, .L111+4 2803 04ac 1A75 strb r2, [r3, #20] 710:user_src/soft_engine.c **** engine_data.engine_cyl2temp = geely_data2. engine_cooltemp1 - 40; 2804 .loc 1 710 54 2805 04ae 314B ldr r3, .L111 2806 04b0 1B7F ldrb r3, [r3, #28] @ zero_extendqisi2 2807 04b2 9BB2 uxth r3, r3 710:user_src/soft_engine.c **** engine_data.engine_cyl2temp = geely_data2. engine_cooltemp1 - 40; 2808 .loc 1 710 71 2809 04b4 283B subs r3, r3, #40 2810 04b6 9AB2 uxth r2, r3 710:user_src/soft_engine.c **** engine_data.engine_cyl2temp = geely_data2. engine_cooltemp1 - 40; 2811 .loc 1 710 41 2812 04b8 2F4B ldr r3, .L111+4 2813 04ba A3F81520 strh r2, [r3, #21] @ unaligned 711:user_src/soft_engine.c **** engine_data.engine_pcbtemp = geely_data2.engine_GWT - 40; 2814 .loc 1 711 54 2815 04be 2D4B ldr r3, .L111 2816 04c0 5B7F ldrb r3, [r3, #29] @ zero_extendqisi2 2817 04c2 9BB2 uxth r3, r3 711:user_src/soft_engine.c **** engine_data.engine_pcbtemp = geely_data2.engine_GWT - 40; 2818 .loc 1 711 73 2819 04c4 283B subs r3, r3, #40 2820 04c6 9AB2 uxth r2, r3 711:user_src/soft_engine.c **** engine_data.engine_pcbtemp = geely_data2.engine_GWT - 40; 2821 .loc 1 711 41 2822 04c8 2B4B ldr r3, .L111+4 2823 04ca A3F81720 strh r2, [r3, #23] @ unaligned 712:user_src/soft_engine.c **** memcpy(engine_data.engine_brand, geely_data2.engine_brand, 3); 2824 .loc 1 712 53 2825 04ce 294B ldr r3, .L111 2826 04d0 9B7F ldrb r3, [r3, #30] @ zero_extendqisi2 2827 04d2 9BB2 uxth r3, r3 712:user_src/soft_engine.c **** memcpy(engine_data.engine_brand, geely_data2.engine_brand, 3); 2828 .loc 1 712 65 2829 04d4 283B subs r3, r3, #40 2830 04d6 9AB2 uxth r2, r3 712:user_src/soft_engine.c **** memcpy(engine_data.engine_brand, geely_data2.engine_brand, 3); 2831 .loc 1 712 40 2832 04d8 274B ldr r3, .L111+4 2833 04da A3F81920 strh r2, [r3, #25] @ unaligned 713:user_src/soft_engine.c **** memcpy(&engine_data.engine_brand[3],"-", 1); 2834 .loc 1 713 13 2835 04de 264B ldr r3, .L111+4 2836 04e0 244A ldr r2, .L111 2837 04e2 1B33 adds r3, r3, #27 2838 04e4 0232 adds r2, r2, #2 2839 04e6 1188 ldrh r1, [r2] @ unaligned 2840 04e8 9278 ldrb r2, [r2, #2] 2841 04ea 1980 strh r1, [r3] @ unaligned 2842 04ec 9A70 strb r2, [r3, #2] 714:user_src/soft_engine.c **** snprintf((char *)&engine_data.engine_brand[4],4,"%d",(int)geely_data2.engine_ver); 2843 .loc 1 714 13 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 67 2844 04ee 224B ldr r3, .L111+4 2845 04f0 2D22 movs r2, #45 2846 04f2 9A77 strb r2, [r3, #30] 715:user_src/soft_engine.c **** engine_data.engine_sn = geely_data2.engine_sn[0] * 10000000 + geely_data2.engine_sn[1] 2847 .loc 1 715 82 2848 04f4 1F4B ldr r3, .L111 2849 04f6 5B78 ldrb r3, [r3, #1] @ zero_extendqisi2 715:user_src/soft_engine.c **** engine_data.engine_sn = geely_data2.engine_sn[0] * 10000000 + geely_data2.engine_sn[1] 2850 .loc 1 715 13 2851 04f8 234A ldr r2, .L111+20 2852 04fa 0421 movs r1, #4 2853 04fc 2348 ldr r0, .L111+24 2854 04fe FFF7FEFF bl snprintf 716:user_src/soft_engine.c **** geely_data2.engine_sn[2] * 1000 + geely_data2.engine_sn[3]; 2855 .loc 1 716 58 2856 0502 1C4B ldr r3, .L111 2857 0504 5B79 ldrb r3, [r3, #5] @ zero_extendqisi2 2858 0506 1A46 mov r2, r3 716:user_src/soft_engine.c **** geely_data2.engine_sn[2] * 1000 + geely_data2.engine_sn[3]; 2859 .loc 1 716 62 2860 0508 214B ldr r3, .L111+28 2861 050a 03FB02F2 mul r2, r3, r2 716:user_src/soft_engine.c **** geely_data2.engine_sn[2] * 1000 + geely_data2.engine_sn[3]; 2862 .loc 1 716 96 2863 050e 194B ldr r3, .L111 2864 0510 9B79 ldrb r3, [r3, #6] @ zero_extendqisi2 2865 0512 1946 mov r1, r3 716:user_src/soft_engine.c **** geely_data2.engine_sn[2] * 1000 + geely_data2.engine_sn[3]; 2866 .loc 1 716 100 2867 0514 1F4B ldr r3, .L111+32 2868 0516 01FB03F3 mul r3, r1, r3 716:user_src/soft_engine.c **** geely_data2.engine_sn[2] * 1000 + geely_data2.engine_sn[3]; 2869 .loc 1 716 73 2870 051a 1A44 add r2, r2, r3 717:user_src/soft_engine.c **** //engine_data.engine_lockstatus = geely_data2.engine_state == 0? 0 : 1; 2871 .loc 1 717 58 2872 051c 154B ldr r3, .L111 2873 051e DB79 ldrb r3, [r3, #7] @ zero_extendqisi2 2874 0520 1946 mov r1, r3 717:user_src/soft_engine.c **** //engine_data.engine_lockstatus = geely_data2.engine_state == 0? 0 : 1; 2875 .loc 1 717 62 2876 0522 4FF47A73 mov r3, #1000 2877 0526 01FB03F3 mul r3, r1, r3 716:user_src/soft_engine.c **** geely_data2.engine_sn[2] * 1000 + geely_data2.engine_sn[3]; 2878 .loc 1 716 109 2879 052a 1344 add r3, r3, r2 717:user_src/soft_engine.c **** //engine_data.engine_lockstatus = geely_data2.engine_state == 0? 0 : 1; 2880 .loc 1 717 92 2881 052c 114A ldr r2, .L111 2882 052e 127A ldrb r2, [r2, #8] @ zero_extendqisi2 717:user_src/soft_engine.c **** //engine_data.engine_lockstatus = geely_data2.engine_state == 0? 0 : 1; 2883 .loc 1 717 69 2884 0530 1344 add r3, r3, r2 2885 0532 1A46 mov r2, r3 716:user_src/soft_engine.c **** geely_data2.engine_sn[2] * 1000 + geely_data2.engine_sn[3]; 2886 .loc 1 716 35 2887 0534 104B ldr r3, .L111+4 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 68 2888 0536 C3F82320 str r2, [r3, #35] @ unaligned 719:user_src/soft_engine.c **** //engine_data.engine_fault = geely_data2.engine_fault; 2889 .loc 1 719 56 2890 053a 0E4B ldr r3, .L111 2891 053c DB7E ldrb r3, [r3, #27] 2892 053e C3F30113 ubfx r3, r3, #4, #2 2893 0542 DBB2 uxtb r3, r3 2894 0544 1A46 mov r2, r3 719:user_src/soft_engine.c **** //engine_data.engine_fault = geely_data2.engine_fault; 2895 .loc 1 719 43 2896 0546 0C4B ldr r3, .L111+4 2897 0548 83F82720 strb r2, [r3, #39] 2898 .loc 1 734 1 2899 054c 0EE0 b .L106 2900 .L103: 725:user_src/soft_engine.c **** { 2901 .loc 1 725 32 2902 054e 124B ldr r3, .L111+36 2903 0550 1B78 ldrb r3, [r3] @ zero_extendqisi2 725:user_src/soft_engine.c **** { 2904 .loc 1 725 12 2905 0552 012B cmp r3, #1 2906 0554 0AD1 bne .L106 727:user_src/soft_engine.c **** 2907 .loc 1 727 32 2908 0556 104B ldr r3, .L111+36 2909 0558 0222 movs r2, #2 2910 055a 1A70 strb r2, [r3] 729:user_src/soft_engine.c **** //状态未置异常 2911 .loc 1 729 13 2912 055c 2922 movs r2, #41 2913 055e 0021 movs r1, #0 2914 0560 0548 ldr r0, .L111+4 2915 0562 FFF7FEFF bl memset 731:user_src/soft_engine.c **** } 2916 .loc 1 731 37 2917 0566 044B ldr r3, .L111+4 2918 0568 FF22 movs r2, #255 2919 056a 1A70 strb r2, [r3] 2920 .L106: 2921 .loc 1 734 1 2922 056c 00BF nop 2923 056e 0837 adds r7, r7, #8 2924 .LCFI38: 2925 .cfi_def_cfa_offset 8 2926 0570 BD46 mov sp, r7 2927 .LCFI39: 2928 .cfi_def_cfa_register 13 2929 @ sp needed 2930 0572 80BD pop {r7, pc} 2931 .L112: 2932 .align 2 2933 .L111: 2934 0574 00000000 .word geely_data2 2935 0578 00000000 .word engine_data 2936 057c CDCC4C3D .word 1028443341 2937 0580 CDCCCC3D .word 1036831949 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 69 2938 0584 0000C843 .word 1137180672 2939 0588 08000000 .word .LC1 2940 058c 1F000000 .word engine_data+31 2941 0590 80969800 .word 10000000 2942 0594 A0860100 .word 100000 2943 0598 00000000 .word engine_link_status 2944 .cfi_endproc 2945 .LFE140: 2947 .section .text.engine_function,"ax",%progbits 2948 .align 1 2949 .global engine_function 2950 .syntax unified 2951 .thumb 2952 .thumb_func 2954 engine_function: 2955 .LFB141: 735:user_src/soft_engine.c **** 736:user_src/soft_engine.c **** 737:user_src/soft_engine.c **** /******************void engine_function(void)******************** 738:user_src/soft_engine.c **** * ****************发动机检测函数********************************* 739:user_src/soft_engine.c **** * **************************************************************/ 740:user_src/soft_engine.c **** void engine_function(void) 741:user_src/soft_engine.c **** { 2956 .loc 1 741 1 2957 .cfi_startproc 2958 @ args = 0, pretend = 0, frame = 0 2959 @ frame_needed = 1, uses_anonymous_args = 0 2960 0000 80B5 push {r7, lr} 2961 .LCFI40: 2962 .cfi_def_cfa_offset 8 2963 .cfi_offset 7, -8 2964 .cfi_offset 14, -4 2965 0002 00AF add r7, sp, #0 2966 .LCFI41: 2967 .cfi_def_cfa_register 7 742:user_src/soft_engine.c **** static uint32_t engine_time = 0; 743:user_src/soft_engine.c **** 744:user_src/soft_engine.c **** if(Check_Timer_Ready(&engine_time,_10_HZ_)) 2968 .loc 1 744 8 2969 0004 6421 movs r1, #100 2970 0006 0748 ldr r0, .L115 2971 0008 FFF7FEFF bl Check_Timer_Ready 2972 000c 0346 mov r3, r0 2973 .loc 1 744 7 2974 000e 002B cmp r3, #0 2975 0010 03D0 beq .L114 745:user_src/soft_engine.c **** { 746:user_src/soft_engine.c **** update_engine_data(); 2976 .loc 1 746 3 2977 0012 FFF7FEFF bl update_engine_data 747:user_src/soft_engine.c **** 748:user_src/soft_engine.c **** //发送飞控状态给发动机 749:user_src/soft_engine.c **** send_msg_to_vk3(); 2978 .loc 1 749 9 2979 0016 FFF7FEFF bl send_msg_to_vk3 2980 .L114: 750:user_src/soft_engine.c **** } ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 70 751:user_src/soft_engine.c **** 752:user_src/soft_engine.c **** //给吉利发动机发送信息 753:user_src/soft_engine.c **** send_msg_to_geely(); 2981 .loc 1 753 5 2982 001a FFF7FEFF bl send_msg_to_geely 754:user_src/soft_engine.c **** } 2983 .loc 1 754 1 2984 001e 00BF nop 2985 0020 80BD pop {r7, pc} 2986 .L116: 2987 0022 00BF .align 2 2988 .L115: 2989 0024 00000000 .word engine_time.0 2990 .cfi_endproc 2991 .LFE141: 2993 .section .bss.engine_sn1.4,"aw",%nobits 2994 .align 2 2997 engine_sn1.4: 2998 0000 00000000 .space 4 2999 .section .data.geely_init_count.3,"aw" 3002 geely_init_count.3: 3003 0000 0F .byte 15 3004 .section .bss.sendto_bro_lasttime.2,"aw",%nobits 3005 .align 2 3008 sendto_bro_lasttime.2: 3009 0000 00000000 .space 4 3010 .section .bss.sendto_geely_lasttime.1,"aw",%nobits 3011 .align 2 3014 sendto_geely_lasttime.1: 3015 0000 00000000 .space 4 3016 .section .bss.engine_time.0,"aw",%nobits 3017 .align 2 3020 engine_time.0: 3021 0000 00000000 .space 4 3022 .text 3023 .Letext0: 3024 .file 2 "d:\\arm-gcc\\arm-none-eabi\\include\\machine\\_default_types.h" 3025 .file 3 "d:\\arm-gcc\\arm-none-eabi\\include\\sys\\_stdint.h" 3026 .file 4 "user_inc/common.h" 3027 .file 5 "user_inc/soft_engine.h" 3028 .file 6 "user_inc/soft_p_2_c.h" ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 71 DEFINED SYMBOLS *ABS*:00000000 soft_engine.c C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:24 .bss.engine_data:00000000 engine_data C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:21 .bss.engine_data:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:31 .data.aoan_data:00000000 aoan_data C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:28 .data.aoan_data:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:41 .bss.aoan_engine_Link:00000000 aoan_engine_Link C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:38 .bss.aoan_engine_Link:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:44 .text.decode_aoan_engine:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:50 .text.decode_aoan_engine:00000000 decode_aoan_engine C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:156 .text.decode_aoan_engine:00000080 $d C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:166 .data.vkv3_data:00000000 vkv3_data C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:163 .data.vkv3_data:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:176 .bss.vkv3_engine_link:00000000 vkv3_engine_link C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:173 .bss.vkv3_engine_link:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:179 .text.decode_vkv3_engine:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:185 .text.decode_vkv3_engine:00000000 decode_vkv3_engine C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:348 .text.decode_vkv3_engine:000000c8 $d C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:2997 .bss.engine_sn1.4:00000000 engine_sn1.4 C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:358 .bss.geely_set_tcd:00000000 geely_set_tcd C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:359 .bss.geely_set_tcd:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:364 .bss.geely_set_tcd_re:00000000 geely_set_tcd_re C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:365 .bss.geely_set_tcd_re:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:370 .bss.geely_set_tlock:00000000 geely_set_tlock C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:371 .bss.geely_set_tlock:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:376 .bss.geely_set_tlock_re:00000000 geely_set_tlock_re C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:377 .bss.geely_set_tlock_re:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:382 .bss.geely_set_protect:00000000 geely_set_protect C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:383 .bss.geely_set_protect:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:388 .bss.geely_send_BJtime:00000000 geely_send_BJtime C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:389 .bss.geely_send_BJtime:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:394 .bss.geely_get_version:00000000 geely_get_version C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:395 .bss.geely_get_version:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:400 .bss.geely_get_time:00000000 geely_get_time C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:401 .bss.geely_get_time:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:407 .bss.geely_data2:00000000 geely_data2 C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:404 .bss.geely_data2:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:414 .bss.geely_data:00000000 geely_data C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:411 .bss.geely_data:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:421 .bss.geely_moni:00000000 geely_moni C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:418 .bss.geely_moni:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:428 .bss.geely_engin_link:00000000 geely_engin_link C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:425 .bss.geely_engin_link:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:435 .bss.geely_version2_count:00000000 geely_version2_count C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:432 .bss.geely_version2_count:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:438 .text.EngGeelyCanRecvHookFunction:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:444 .text.EngGeelyCanRecvHookFunction:00000000 EngGeelyCanRecvHookFunction C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:781 .text.EngGeelyCanRecvHookFunction:0000020c $d C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:795 .text.EngGeelyCanRecvHookFunction:00000244 $t C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:872 .text.EngGeelyCanRecvHookFunction:000002b4 $d C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:972 .bss.geely_set_counts:00000000 geely_set_counts C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:985 .data.geely_count:00000000 geely_count C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:896 .text.EngGeelyCanRecvHookFunction:0000030c $t C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:958 .text.EngGeelyCanRecvHookFunction:00000360 $d C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:969 .bss.geely_set_counts:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:979 .bss.geely_sendinfo2:00000000 geely_sendinfo2 C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:976 .bss.geely_sendinfo2:00000000 $d ARM GAS C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s page 72 C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:991 .bss.start_engine:00000000 start_engine C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:992 .bss.start_engine:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:994 .text.Geely_version2_init:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:1000 .text.Geely_version2_init:00000000 Geely_version2_init C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:1125 .text.Geely_version2_init:000000b0 $d C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:3002 .data.geely_init_count.3:00000000 geely_init_count.3 C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:1133 .text.Geely_version2_send_info:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:1139 .text.Geely_version2_send_info:00000000 Geely_version2_send_info C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:1402 .text.Geely_version2_send_info:00000194 $d C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:1416 .data.sendto_geely:00000000 sendto_geely C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:1413 .data.sendto_geely:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:1428 .bss.vkv3_buf:00000000 vkv3_buf C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:1425 .bss.vkv3_buf:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:1431 .text.send_msg_to_vk3:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:1437 .text.send_msg_to_vk3:00000000 send_msg_to_vk3 C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:1620 .text.send_msg_to_vk3:000000f8 $d C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:1628 .text.send_msg_to_geely:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:1634 .text.send_msg_to_geely:00000000 send_msg_to_geely C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:2038 .text.send_msg_to_geely:0000028c $d C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:3008 .bss.sendto_bro_lasttime.2:00000000 sendto_bro_lasttime.2 C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:3014 .bss.sendto_geely_lasttime.1:00000000 sendto_geely_lasttime.1 C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:2053 .text.send_msg_to_geely:000002c0 $t C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:2140 .text.send_msg_to_geely:00000338 $d C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:2150 .bss.engine_link_status:00000000 engine_link_status C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:2151 .bss.engine_link_status:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:2153 .rodata:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:2160 .text.update_engine_data:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:2166 .text.update_engine_data:00000000 update_engine_data C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:2433 .text.update_engine_data:000001cc $d C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:2445 .text.update_engine_data:000001f4 $t C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:2654 .text.update_engine_data:00000360 $d C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:2666 .text.update_engine_data:00000388 $t C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:2934 .text.update_engine_data:00000574 $d C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:2948 .text.engine_function:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:2954 .text.engine_function:00000000 engine_function C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:2989 .text.engine_function:00000024 $d C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:3020 .bss.engine_time.0:00000000 engine_time.0 C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:2994 .bss.engine_sn1.4:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:3005 .bss.sendto_bro_lasttime.2:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:3011 .bss.sendto_geely_lasttime.1:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccCK1X9j.s:3017 .bss.engine_time.0:00000000 $d UNDEFINED SYMBOLS Get_Crc16 memcpy HAL_GetTick can_send_msg_normalstd uart_send_is_ok uart3_send_msg planep sqrtf Check_dev_link snprintf memset Check_Timer_Ready