ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.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 "common.c" 16 .text 17 .Ltext0: 18 .cfi_sections .debug_frame 19 .section .text.findStrInArray,"ax",%progbits 20 .align 1 21 .global findStrInArray 22 .syntax unified 23 .thumb 24 .thumb_func 26 findStrInArray: 27 .LFB130: 28 .file 1 "user_src/common.c" 1:user_src/common.c **** #include "tim.h" 2:user_src/common.c **** #include "common.h" 3:user_src/common.c **** #include "string.h" 4:user_src/common.c **** #include "soft_obstacle.h" 5:user_src/common.c **** 6:user_src/common.c **** 7:user_src/common.c **** int findStrInArray( uint8_t *array, int aLen, const char *str ) 8:user_src/common.c **** { 29 .loc 1 8 1 30 .cfi_startproc 31 @ args = 0, pretend = 0, frame = 32 32 @ frame_needed = 1, uses_anonymous_args = 0 33 0000 80B5 push {r7, lr} 34 .LCFI0: 35 .cfi_def_cfa_offset 8 36 .cfi_offset 7, -8 37 .cfi_offset 14, -4 38 0002 88B0 sub sp, sp, #32 39 .LCFI1: 40 .cfi_def_cfa_offset 40 41 0004 00AF add r7, sp, #0 42 .LCFI2: 43 .cfi_def_cfa_register 7 44 0006 F860 str r0, [r7, #12] 45 0008 B960 str r1, [r7, #8] 46 000a 7A60 str r2, [r7, #4] 9:user_src/common.c **** int strLen = strlen( str ); 47 .loc 1 9 18 48 000c 7868 ldr r0, [r7, #4] 49 000e FFF7FEFF bl strlen ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 2 50 0012 0346 mov r3, r0 51 .loc 1 9 9 52 0014 BB61 str r3, [r7, #24] 10:user_src/common.c **** uint8_t s1 = str[0]; 53 .loc 1 10 13 54 0016 7B68 ldr r3, [r7, #4] 55 0018 1B78 ldrb r3, [r3] 56 001a FB75 strb r3, [r7, #23] 11:user_src/common.c **** 12:user_src/common.c **** if ( aLen < strLen ) 57 .loc 1 12 8 58 001c BA68 ldr r2, [r7, #8] 59 001e BB69 ldr r3, [r7, #24] 60 0020 9A42 cmp r2, r3 61 0022 01DA bge .L2 13:user_src/common.c **** return 0; 62 .loc 1 13 16 63 0024 0023 movs r3, #0 64 0026 1EE0 b .L3 65 .L2: 66 .LBB2: 14:user_src/common.c **** 15:user_src/common.c **** for ( int i = 0; i < aLen; i++ ) 67 .loc 1 15 15 68 0028 0023 movs r3, #0 69 002a FB61 str r3, [r7, #28] 70 .loc 1 15 5 71 002c 16E0 b .L4 72 .L6: 16:user_src/common.c **** { 17:user_src/common.c **** if ( array[i] == s1 ) 73 .loc 1 17 19 74 002e FB69 ldr r3, [r7, #28] 75 0030 FA68 ldr r2, [r7, #12] 76 0032 1344 add r3, r3, r2 77 0034 1B78 ldrb r3, [r3] @ zero_extendqisi2 78 .loc 1 17 12 79 0036 FA7D ldrb r2, [r7, #23] @ zero_extendqisi2 80 0038 9A42 cmp r2, r3 81 003a 0CD1 bne .L5 18:user_src/common.c **** { 19:user_src/common.c **** if ( memcmp( &array[i], str, strLen ) == 0 ) 82 .loc 1 19 18 83 003c FB69 ldr r3, [r7, #28] 84 .loc 1 19 26 85 003e FA68 ldr r2, [r7, #12] 86 0040 1344 add r3, r3, r2 87 .loc 1 19 18 88 0042 BA69 ldr r2, [r7, #24] 89 0044 7968 ldr r1, [r7, #4] 90 0046 1846 mov r0, r3 91 0048 FFF7FEFF bl memcmp 92 004c 0346 mov r3, r0 93 .loc 1 19 16 94 004e 002B cmp r3, #0 95 0050 01D1 bne .L5 20:user_src/common.c **** return 1; ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 3 96 .loc 1 20 24 97 0052 0123 movs r3, #1 98 0054 07E0 b .L3 99 .L5: 15:user_src/common.c **** { 100 .loc 1 15 33 discriminator 2 101 0056 FB69 ldr r3, [r7, #28] 102 0058 0133 adds r3, r3, #1 103 005a FB61 str r3, [r7, #28] 104 .L4: 15:user_src/common.c **** { 105 .loc 1 15 5 discriminator 1 106 005c FA69 ldr r2, [r7, #28] 107 005e BB68 ldr r3, [r7, #8] 108 0060 9A42 cmp r2, r3 109 0062 E4DB blt .L6 110 .LBE2: 21:user_src/common.c **** } 22:user_src/common.c **** } 23:user_src/common.c **** return 0; 111 .loc 1 23 12 112 0064 0023 movs r3, #0 113 .L3: 24:user_src/common.c **** } 114 .loc 1 24 1 115 0066 1846 mov r0, r3 116 0068 2037 adds r7, r7, #32 117 .LCFI3: 118 .cfi_def_cfa_offset 8 119 006a BD46 mov sp, r7 120 .LCFI4: 121 .cfi_def_cfa_register 13 122 @ sp needed 123 006c 80BD pop {r7, pc} 124 .cfi_endproc 125 .LFE130: 127 .section .text.buf2int,"ax",%progbits 128 .align 1 129 .global buf2int 130 .syntax unified 131 .thumb 132 .thumb_func 134 buf2int: 135 .LFB131: 25:user_src/common.c **** 26:user_src/common.c **** void buf2int( int *tint, unsigned char *buf ) 27:user_src/common.c **** { 136 .loc 1 27 1 137 .cfi_startproc 138 @ args = 0, pretend = 0, frame = 24 139 @ frame_needed = 1, uses_anonymous_args = 0 140 @ link register save eliminated. 141 0000 80B4 push {r7} 142 .LCFI5: 143 .cfi_def_cfa_offset 4 144 .cfi_offset 7, -4 145 0002 87B0 sub sp, sp, #28 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 4 146 .LCFI6: 147 .cfi_def_cfa_offset 32 148 0004 00AF add r7, sp, #0 149 .LCFI7: 150 .cfi_def_cfa_register 7 151 0006 7860 str r0, [r7, #4] 152 0008 3960 str r1, [r7] 28:user_src/common.c **** int i; 29:user_src/common.c **** unsigned char *p1 = ( unsigned char * )tint; 153 .loc 1 29 20 154 000a 7B68 ldr r3, [r7, #4] 155 000c 3B61 str r3, [r7, #16] 30:user_src/common.c **** unsigned char *p3 = buf; 156 .loc 1 30 20 157 000e 3B68 ldr r3, [r7] 158 0010 FB60 str r3, [r7, #12] 31:user_src/common.c **** for ( i = 0; i < 4; i++ ) 159 .loc 1 31 13 160 0012 0023 movs r3, #0 161 0014 7B61 str r3, [r7, #20] 162 .loc 1 31 5 163 0016 0CE0 b .L8 164 .L9: 32:user_src/common.c **** { 33:user_src/common.c **** *p1 = *p3; 165 .loc 1 33 15 discriminator 3 166 0018 FB68 ldr r3, [r7, #12] 167 001a 1A78 ldrb r2, [r3] @ zero_extendqisi2 168 .loc 1 33 13 discriminator 3 169 001c 3B69 ldr r3, [r7, #16] 170 001e 1A70 strb r2, [r3] 34:user_src/common.c **** p1++; 171 .loc 1 34 11 discriminator 3 172 0020 3B69 ldr r3, [r7, #16] 173 0022 0133 adds r3, r3, #1 174 0024 3B61 str r3, [r7, #16] 35:user_src/common.c **** p3++; 175 .loc 1 35 11 discriminator 3 176 0026 FB68 ldr r3, [r7, #12] 177 0028 0133 adds r3, r3, #1 178 002a FB60 str r3, [r7, #12] 31:user_src/common.c **** { 179 .loc 1 31 26 discriminator 3 180 002c 7B69 ldr r3, [r7, #20] 181 002e 0133 adds r3, r3, #1 182 0030 7B61 str r3, [r7, #20] 183 .L8: 31:user_src/common.c **** { 184 .loc 1 31 5 discriminator 1 185 0032 7B69 ldr r3, [r7, #20] 186 0034 032B cmp r3, #3 187 0036 EFDD ble .L9 36:user_src/common.c **** } 37:user_src/common.c **** } 188 .loc 1 37 1 189 0038 00BF nop 190 003a 00BF nop ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 5 191 003c 1C37 adds r7, r7, #28 192 .LCFI8: 193 .cfi_def_cfa_offset 4 194 003e BD46 mov sp, r7 195 .LCFI9: 196 .cfi_def_cfa_register 13 197 @ sp needed 198 0040 5DF8047B ldr r7, [sp], #4 199 .LCFI10: 200 .cfi_restore 7 201 .cfi_def_cfa_offset 0 202 0044 7047 bx lr 203 .cfi_endproc 204 .LFE131: 206 .section .text.u16t_buf_sort,"ax",%progbits 207 .align 1 208 .global u16t_buf_sort 209 .syntax unified 210 .thumb 211 .thumb_func 213 u16t_buf_sort: 214 .LFB132: 38:user_src/common.c **** 39:user_src/common.c **** 40:user_src/common.c **** /*****************************uint16从大到小排列*************************/ 41:user_src/common.c **** void u16t_buf_sort( uint16_t *arr, uint16_t length ) 42:user_src/common.c **** { 215 .loc 1 42 1 216 .cfi_startproc 217 @ args = 0, pretend = 0, frame = 16 218 @ frame_needed = 1, uses_anonymous_args = 0 219 @ link register save eliminated. 220 0000 80B4 push {r7} 221 .LCFI11: 222 .cfi_def_cfa_offset 4 223 .cfi_offset 7, -4 224 0002 85B0 sub sp, sp, #20 225 .LCFI12: 226 .cfi_def_cfa_offset 24 227 0004 00AF add r7, sp, #0 228 .LCFI13: 229 .cfi_def_cfa_register 7 230 0006 7860 str r0, [r7, #4] 231 0008 0B46 mov r3, r1 232 000a 7B80 strh r3, [r7, #2] @ movhi 43:user_src/common.c **** if ( length < 2 ) 233 .loc 1 43 8 234 000c 7B88 ldrh r3, [r7, #2] 235 000e 012B cmp r3, #1 236 0010 3FD9 bls .L18 44:user_src/common.c **** { 45:user_src/common.c **** return; 46:user_src/common.c **** } 47:user_src/common.c **** uint16_t num = 0, num1 = 0; 237 .loc 1 47 14 238 0012 0023 movs r3, #0 239 0014 FB81 strh r3, [r7, #14] @ movhi ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 6 240 .loc 1 47 23 241 0016 0023 movs r3, #0 242 0018 BB81 strh r3, [r7, #12] @ movhi 48:user_src/common.c **** uint16_t tmp = 0; 243 .loc 1 48 14 244 001a 0023 movs r3, #0 245 001c 7B81 strh r3, [r7, #10] @ movhi 49:user_src/common.c **** for ( num = length - 1; num >= 1; num-- ) 246 .loc 1 49 15 247 001e 7B88 ldrh r3, [r7, #2] @ movhi 248 0020 013B subs r3, r3, #1 249 0022 FB81 strh r3, [r7, #14] @ movhi 250 .loc 1 49 5 251 0024 31E0 b .L13 252 .L17: 50:user_src/common.c **** { 51:user_src/common.c **** for ( num1 = 0; num1 <= num - 1; num1++ ) 253 .loc 1 51 20 254 0026 0023 movs r3, #0 255 0028 BB81 strh r3, [r7, #12] @ movhi 256 .loc 1 51 9 257 002a 27E0 b .L14 258 .L16: 52:user_src/common.c **** { 53:user_src/common.c **** if ( *( arr + num1 ) > *( arr + num1 + 1 ) ) 259 .loc 1 53 25 260 002c BB89 ldrh r3, [r7, #12] 261 002e 5B00 lsls r3, r3, #1 262 0030 7A68 ldr r2, [r7, #4] 263 0032 1344 add r3, r3, r2 264 .loc 1 53 18 265 0034 1A88 ldrh r2, [r3] 266 .loc 1 53 50 267 0036 BB89 ldrh r3, [r7, #12] 268 0038 0133 adds r3, r3, #1 269 003a 5B00 lsls r3, r3, #1 270 003c 7968 ldr r1, [r7, #4] 271 003e 0B44 add r3, r3, r1 272 .loc 1 53 36 273 0040 1B88 ldrh r3, [r3] 274 .loc 1 53 16 275 0042 9A42 cmp r2, r3 276 0044 17D9 bls .L15 54:user_src/common.c **** { 55:user_src/common.c **** tmp = *( arr + num1 ); 277 .loc 1 55 30 278 0046 BB89 ldrh r3, [r7, #12] 279 0048 5B00 lsls r3, r3, #1 280 004a 7A68 ldr r2, [r7, #4] 281 004c 1344 add r3, r3, r2 282 .loc 1 55 21 283 004e 1B88 ldrh r3, [r3] @ movhi 284 0050 7B81 strh r3, [r7, #10] @ movhi 56:user_src/common.c **** *( arr + num1 ) = *( arr + num1 + 1 ); 285 .loc 1 56 49 286 0052 BB89 ldrh r3, [r7, #12] 287 0054 0133 adds r3, r3, #1 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 7 288 0056 5B00 lsls r3, r3, #1 289 0058 7A68 ldr r2, [r7, #4] 290 005a 1A44 add r2, r2, r3 291 .loc 1 56 24 292 005c BB89 ldrh r3, [r7, #12] 293 005e 5B00 lsls r3, r3, #1 294 0060 7968 ldr r1, [r7, #4] 295 0062 0B44 add r3, r3, r1 296 .loc 1 56 35 297 0064 1288 ldrh r2, [r2] 298 .loc 1 56 33 299 0066 1A80 strh r2, [r3] @ movhi 57:user_src/common.c **** *( arr + num1 + 1 ) = tmp; 300 .loc 1 57 31 301 0068 BB89 ldrh r3, [r7, #12] 302 006a 0133 adds r3, r3, #1 303 006c 5B00 lsls r3, r3, #1 304 006e 7A68 ldr r2, [r7, #4] 305 0070 1344 add r3, r3, r2 306 .loc 1 57 37 307 0072 7A89 ldrh r2, [r7, #10] @ movhi 308 0074 1A80 strh r2, [r3] @ movhi 309 .L15: 51:user_src/common.c **** { 310 .loc 1 51 46 discriminator 2 311 0076 BB89 ldrh r3, [r7, #12] 312 0078 0133 adds r3, r3, #1 313 007a BB81 strh r3, [r7, #12] @ movhi 314 .L14: 51:user_src/common.c **** { 315 .loc 1 51 9 discriminator 1 316 007c FA89 ldrh r2, [r7, #14] 317 007e BB89 ldrh r3, [r7, #12] 318 0080 9A42 cmp r2, r3 319 0082 D3D8 bhi .L16 49:user_src/common.c **** { 320 .loc 1 49 42 discriminator 2 321 0084 FB89 ldrh r3, [r7, #14] 322 0086 013B subs r3, r3, #1 323 0088 FB81 strh r3, [r7, #14] @ movhi 324 .L13: 49:user_src/common.c **** { 325 .loc 1 49 5 discriminator 1 326 008a FB89 ldrh r3, [r7, #14] 327 008c 002B cmp r3, #0 328 008e CAD1 bne .L17 329 0090 00E0 b .L10 330 .L18: 45:user_src/common.c **** } 331 .loc 1 45 9 332 0092 00BF nop 333 .L10: 58:user_src/common.c **** } 59:user_src/common.c **** } 60:user_src/common.c **** } 61:user_src/common.c **** } 334 .loc 1 61 1 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 8 335 0094 1437 adds r7, r7, #20 336 .LCFI14: 337 .cfi_def_cfa_offset 4 338 0096 BD46 mov sp, r7 339 .LCFI15: 340 .cfi_def_cfa_register 13 341 @ sp needed 342 0098 5DF8047B ldr r7, [sp], #4 343 .LCFI16: 344 .cfi_restore 7 345 .cfi_def_cfa_offset 0 346 009c 7047 bx lr 347 .cfi_endproc 348 .LFE132: 350 .section .text.mimomocib_buf_sort,"ax",%progbits 351 .align 1 352 .global mimomocib_buf_sort 353 .syntax unified 354 .thumb 355 .thumb_func 357 mimomocib_buf_sort: 358 .LFB133: 62:user_src/common.c **** 63:user_src/common.c **** /*****************************恩曌&莫之比雷达排序************************/ 64:user_src/common.c **** void mimomocib_buf_sort( mimo_part_radar *arr, uint16_t length ) 65:user_src/common.c **** { 359 .loc 1 65 1 360 .cfi_startproc 361 @ args = 0, pretend = 0, frame = 24 362 @ frame_needed = 1, uses_anonymous_args = 0 363 @ link register save eliminated. 364 0000 80B4 push {r7} 365 .LCFI17: 366 .cfi_def_cfa_offset 4 367 .cfi_offset 7, -4 368 0002 87B0 sub sp, sp, #28 369 .LCFI18: 370 .cfi_def_cfa_offset 32 371 0004 00AF add r7, sp, #0 372 .LCFI19: 373 .cfi_def_cfa_register 7 374 0006 7860 str r0, [r7, #4] 375 0008 0B46 mov r3, r1 376 000a 7B80 strh r3, [r7, #2] @ movhi 66:user_src/common.c **** if ( length < 2 ) 377 .loc 1 66 8 378 000c 7B88 ldrh r3, [r7, #2] 379 000e 012B cmp r3, #1 380 0010 57D9 bls .L27 67:user_src/common.c **** { 68:user_src/common.c **** return; 69:user_src/common.c **** } 70:user_src/common.c **** uint16_t num = 0, num1 = 0; 381 .loc 1 70 14 382 0012 0023 movs r3, #0 383 0014 FB82 strh r3, [r7, #22] @ movhi 384 .loc 1 70 23 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 9 385 0016 0023 movs r3, #0 386 0018 BB82 strh r3, [r7, #20] @ movhi 71:user_src/common.c **** mimo_part_radar tmp; 72:user_src/common.c **** for ( num = length - 1; num >= 1; num-- ) 387 .loc 1 72 15 388 001a 7B88 ldrh r3, [r7, #2] @ movhi 389 001c 013B subs r3, r3, #1 390 001e FB82 strh r3, [r7, #22] @ movhi 391 .loc 1 72 5 392 0020 4BE0 b .L22 393 .L26: 73:user_src/common.c **** { 74:user_src/common.c **** for ( num1 = 0; num1 <= num - 1; num1++ ) 394 .loc 1 74 20 395 0022 0023 movs r3, #0 396 0024 BB82 strh r3, [r7, #20] @ movhi 397 .loc 1 74 9 398 0026 41E0 b .L23 399 .L25: 75:user_src/common.c **** { 76:user_src/common.c **** if ( ( ( arr + num1 )->Distance ) > ( ( arr + num1 + 1 )->Distance ) ) 400 .loc 1 76 26 401 0028 BB8A ldrh r3, [r7, #20] 402 002a DB00 lsls r3, r3, #3 403 002c 7A68 ldr r2, [r7, #4] 404 002e 1344 add r3, r3, r2 405 .loc 1 76 34 406 0030 DA78 ldrb r2, [r3, #3] @ zero_extendqisi2 407 0032 1209 lsrs r2, r2, #4 408 0034 D2B2 uxtb r2, r2 409 0036 1B79 ldrb r3, [r3, #4] @ zero_extendqisi2 410 0038 1B01 lsls r3, r3, #4 411 003a 1343 orrs r3, r3, r2 412 003c 1B05 lsls r3, r3, #20 413 003e 1B15 asrs r3, r3, #20 414 0040 1AB2 sxth r2, r3 415 .loc 1 76 64 416 0042 BB8A ldrh r3, [r7, #20] 417 0044 0133 adds r3, r3, #1 418 0046 DB00 lsls r3, r3, #3 419 0048 7968 ldr r1, [r7, #4] 420 004a 0B44 add r3, r3, r1 421 .loc 1 76 69 422 004c D978 ldrb r1, [r3, #3] @ zero_extendqisi2 423 004e 0909 lsrs r1, r1, #4 424 0050 C9B2 uxtb r1, r1 425 0052 1B79 ldrb r3, [r3, #4] @ zero_extendqisi2 426 0054 1B01 lsls r3, r3, #4 427 0056 0B43 orrs r3, r3, r1 428 0058 1B05 lsls r3, r3, #20 429 005a 1B15 asrs r3, r3, #20 430 005c 1BB2 sxth r3, r3 431 .loc 1 76 16 432 005e 9A42 cmp r2, r3 433 0060 21DD ble .L24 77:user_src/common.c **** { 78:user_src/common.c **** tmp = *( arr + num1 ); ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 10 434 .loc 1 78 30 435 0062 BB8A ldrh r3, [r7, #20] 436 0064 DB00 lsls r3, r3, #3 437 0066 7A68 ldr r2, [r7, #4] 438 0068 1A44 add r2, r2, r3 439 .loc 1 78 21 440 006a 07F10C03 add r3, r7, #12 441 006e 1068 ldr r0, [r2] @ unaligned 442 0070 5168 ldr r1, [r2, #4] @ unaligned 443 0072 03C3 stmia r3!, {r0, r1} 79:user_src/common.c **** *( arr + num1 ) = *( arr + num1 + 1 ); 444 .loc 1 79 49 445 0074 BB8A ldrh r3, [r7, #20] 446 0076 0133 adds r3, r3, #1 447 0078 DB00 lsls r3, r3, #3 448 007a 7A68 ldr r2, [r7, #4] 449 007c D118 adds r1, r2, r3 450 .loc 1 79 24 451 007e BB8A ldrh r3, [r7, #20] 452 0080 DB00 lsls r3, r3, #3 453 0082 7A68 ldr r2, [r7, #4] 454 0084 1344 add r3, r3, r2 455 .loc 1 79 33 456 0086 0A46 mov r2, r1 457 0088 1168 ldr r1, [r2] @ unaligned 458 008a 5268 ldr r2, [r2, #4] @ unaligned 459 008c 1960 str r1, [r3] @ unaligned 460 008e 5A60 str r2, [r3, #4] @ unaligned 80:user_src/common.c **** *( arr + num1 + 1 ) = tmp; 461 .loc 1 80 31 462 0090 BB8A ldrh r3, [r7, #20] 463 0092 0133 adds r3, r3, #1 464 0094 DB00 lsls r3, r3, #3 465 0096 7A68 ldr r2, [r7, #4] 466 0098 1344 add r3, r3, r2 467 .loc 1 80 37 468 009a 1A46 mov r2, r3 469 009c 07F10C03 add r3, r7, #12 470 00a0 03CB ldmia r3!, {r0, r1} 471 00a2 1060 str r0, [r2] @ unaligned 472 00a4 5160 str r1, [r2, #4] @ unaligned 473 .L24: 74:user_src/common.c **** { 474 .loc 1 74 46 discriminator 2 475 00a6 BB8A ldrh r3, [r7, #20] 476 00a8 0133 adds r3, r3, #1 477 00aa BB82 strh r3, [r7, #20] @ movhi 478 .L23: 74:user_src/common.c **** { 479 .loc 1 74 9 discriminator 1 480 00ac FA8A ldrh r2, [r7, #22] 481 00ae BB8A ldrh r3, [r7, #20] 482 00b0 9A42 cmp r2, r3 483 00b2 B9D8 bhi .L25 72:user_src/common.c **** { 484 .loc 1 72 42 discriminator 2 485 00b4 FB8A ldrh r3, [r7, #22] ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 11 486 00b6 013B subs r3, r3, #1 487 00b8 FB82 strh r3, [r7, #22] @ movhi 488 .L22: 72:user_src/common.c **** { 489 .loc 1 72 5 discriminator 1 490 00ba FB8A ldrh r3, [r7, #22] 491 00bc 002B cmp r3, #0 492 00be B0D1 bne .L26 493 00c0 00E0 b .L19 494 .L27: 68:user_src/common.c **** } 495 .loc 1 68 9 496 00c2 00BF nop 497 .L19: 81:user_src/common.c **** } 82:user_src/common.c **** } 83:user_src/common.c **** } 84:user_src/common.c **** } 498 .loc 1 84 1 499 00c4 1C37 adds r7, r7, #28 500 .LCFI20: 501 .cfi_def_cfa_offset 4 502 00c6 BD46 mov sp, r7 503 .LCFI21: 504 .cfi_def_cfa_register 13 505 @ sp needed 506 00c8 5DF8047B ldr r7, [sp], #4 507 .LCFI22: 508 .cfi_restore 7 509 .cfi_def_cfa_offset 0 510 00cc 7047 bx lr 511 .cfi_endproc 512 .LFE133: 514 .section .text.short2buf,"ax",%progbits 515 .align 1 516 .global short2buf 517 .syntax unified 518 .thumb 519 .thumb_func 521 short2buf: 522 .LFB134: 85:user_src/common.c **** 86:user_src/common.c **** /****************************short 类型放到buf中***************/ 87:user_src/common.c **** void short2buf( unsigned char *buf, short *tshort ) 88:user_src/common.c **** { 523 .loc 1 88 1 524 .cfi_startproc 525 @ args = 0, pretend = 0, frame = 24 526 @ frame_needed = 1, uses_anonymous_args = 0 527 @ link register save eliminated. 528 0000 80B4 push {r7} 529 .LCFI23: 530 .cfi_def_cfa_offset 4 531 .cfi_offset 7, -4 532 0002 87B0 sub sp, sp, #28 533 .LCFI24: 534 .cfi_def_cfa_offset 32 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 12 535 0004 00AF add r7, sp, #0 536 .LCFI25: 537 .cfi_def_cfa_register 7 538 0006 7860 str r0, [r7, #4] 539 0008 3960 str r1, [r7] 89:user_src/common.c **** int i; 90:user_src/common.c **** unsigned char *p1 = ( unsigned char * )tshort; 540 .loc 1 90 20 541 000a 3B68 ldr r3, [r7] 542 000c 3B61 str r3, [r7, #16] 91:user_src/common.c **** unsigned char *p3 = buf; 543 .loc 1 91 20 544 000e 7B68 ldr r3, [r7, #4] 545 0010 FB60 str r3, [r7, #12] 92:user_src/common.c **** for ( i = 0; i < 2; i++ ) 546 .loc 1 92 13 547 0012 0023 movs r3, #0 548 0014 7B61 str r3, [r7, #20] 549 .loc 1 92 5 550 0016 0CE0 b .L29 551 .L30: 93:user_src/common.c **** { 94:user_src/common.c **** *p3 = *p1; 552 .loc 1 94 15 discriminator 3 553 0018 3B69 ldr r3, [r7, #16] 554 001a 1A78 ldrb r2, [r3] @ zero_extendqisi2 555 .loc 1 94 13 discriminator 3 556 001c FB68 ldr r3, [r7, #12] 557 001e 1A70 strb r2, [r3] 95:user_src/common.c **** p1++; 558 .loc 1 95 11 discriminator 3 559 0020 3B69 ldr r3, [r7, #16] 560 0022 0133 adds r3, r3, #1 561 0024 3B61 str r3, [r7, #16] 96:user_src/common.c **** p3++; 562 .loc 1 96 11 discriminator 3 563 0026 FB68 ldr r3, [r7, #12] 564 0028 0133 adds r3, r3, #1 565 002a FB60 str r3, [r7, #12] 92:user_src/common.c **** { 566 .loc 1 92 26 discriminator 3 567 002c 7B69 ldr r3, [r7, #20] 568 002e 0133 adds r3, r3, #1 569 0030 7B61 str r3, [r7, #20] 570 .L29: 92:user_src/common.c **** { 571 .loc 1 92 5 discriminator 1 572 0032 7B69 ldr r3, [r7, #20] 573 0034 012B cmp r3, #1 574 0036 EFDD ble .L30 97:user_src/common.c **** } 98:user_src/common.c **** } 575 .loc 1 98 1 576 0038 00BF nop 577 003a 00BF nop 578 003c 1C37 adds r7, r7, #28 579 .LCFI26: ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 13 580 .cfi_def_cfa_offset 4 581 003e BD46 mov sp, r7 582 .LCFI27: 583 .cfi_def_cfa_register 13 584 @ sp needed 585 0040 5DF8047B ldr r7, [sp], #4 586 .LCFI28: 587 .cfi_restore 7 588 .cfi_def_cfa_offset 0 589 0044 7047 bx lr 590 .cfi_endproc 591 .LFE134: 593 .section .text.char_to_hex_string,"ax",%progbits 594 .align 1 595 .global char_to_hex_string 596 .syntax unified 597 .thumb 598 .thumb_func 600 char_to_hex_string: 601 .LFB135: 99:user_src/common.c **** 100:user_src/common.c **** /* 101:user_src/common.c **** int转hex转string 102:user_src/common.c **** */ 103:user_src/common.c **** void char_to_hex_string( unsigned char *cdata, short lenc, char *sbuf, short lens, char *ES ) 104:user_src/common.c **** { 602 .loc 1 104 1 603 .cfi_startproc 604 @ args = 4, pretend = 0, frame = 32 605 @ frame_needed = 1, uses_anonymous_args = 0 606 @ link register save eliminated. 607 0000 80B4 push {r7} 608 .LCFI29: 609 .cfi_def_cfa_offset 4 610 .cfi_offset 7, -4 611 0002 89B0 sub sp, sp, #36 612 .LCFI30: 613 .cfi_def_cfa_offset 40 614 0004 00AF add r7, sp, #0 615 .LCFI31: 616 .cfi_def_cfa_register 7 617 0006 F860 str r0, [r7, #12] 618 0008 7A60 str r2, [r7, #4] 619 000a 1A46 mov r2, r3 620 000c 0B46 mov r3, r1 @ movhi 621 000e 7B81 strh r3, [r7, #10] @ movhi 622 0010 1346 mov r3, r2 @ movhi 623 0012 3B81 strh r3, [r7, #8] @ movhi 105:user_src/common.c **** short tmp_lens = lens; 624 .loc 1 105 11 625 0014 3B89 ldrh r3, [r7, #8] @ movhi 626 0016 FB83 strh r3, [r7, #30] @ movhi 627 .LBB3: 106:user_src/common.c **** 107:user_src/common.c **** for ( int i = 0 ; i < lenc && tmp_lens >= 2 ; i++ ) 628 .loc 1 107 15 629 0018 0023 movs r3, #0 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 14 630 001a BB61 str r3, [r7, #24] 631 .loc 1 107 5 632 001c 53E0 b .L32 633 .L38: 634 .LBB4: 108:user_src/common.c **** { 109:user_src/common.c **** char hight = ( cdata[i] >> 4 ) & 0x0f; 635 .loc 1 109 29 636 001e BB69 ldr r3, [r7, #24] 637 0020 FA68 ldr r2, [r7, #12] 638 0022 1344 add r3, r3, r2 639 0024 1B78 ldrb r3, [r3] @ zero_extendqisi2 640 .loc 1 109 14 641 0026 1B09 lsrs r3, r3, #4 642 0028 FB74 strb r3, [r7, #19] 110:user_src/common.c **** char low = cdata[i] & 0x0f; 643 .loc 1 110 25 644 002a BB69 ldr r3, [r7, #24] 645 002c FA68 ldr r2, [r7, #12] 646 002e 1344 add r3, r3, r2 647 .loc 1 110 29 648 0030 1B78 ldrb r3, [r3] @ zero_extendqisi2 649 .loc 1 110 14 650 0032 03F00F03 and r3, r3, #15 651 0036 BB74 strb r3, [r7, #18] 111:user_src/common.c **** 112:user_src/common.c **** if ( hight > 9 ) 652 .loc 1 112 12 653 0038 FB7C ldrb r3, [r7, #19] @ zero_extendqisi2 654 003a 092B cmp r3, #9 655 003c 0CD9 bls .L33 113:user_src/common.c **** sbuf[lens - tmp_lens] = 'A' + hight - 10; 656 .loc 1 113 23 657 003e B7F90820 ldrsh r2, [r7, #8] 658 0042 B7F91E30 ldrsh r3, [r7, #30] 659 0046 D31A subs r3, r2, r3 660 0048 1A46 mov r2, r3 661 .loc 1 113 17 662 004a 7B68 ldr r3, [r7, #4] 663 004c 1344 add r3, r3, r2 664 .loc 1 113 49 665 004e FA7C ldrb r2, [r7, #19] 666 0050 3732 adds r2, r2, #55 667 0052 D2B2 uxtb r2, r2 668 .loc 1 113 35 669 0054 1A70 strb r2, [r3] 670 0056 0BE0 b .L34 671 .L33: 114:user_src/common.c **** else 115:user_src/common.c **** sbuf[lens - tmp_lens] = '0' + hight; 672 .loc 1 115 23 673 0058 B7F90820 ldrsh r2, [r7, #8] 674 005c B7F91E30 ldrsh r3, [r7, #30] 675 0060 D31A subs r3, r2, r3 676 0062 1A46 mov r2, r3 677 .loc 1 115 17 678 0064 7B68 ldr r3, [r7, #4] ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 15 679 0066 1344 add r3, r3, r2 680 .loc 1 115 41 681 0068 FA7C ldrb r2, [r7, #19] 682 006a 3032 adds r2, r2, #48 683 006c D2B2 uxtb r2, r2 684 .loc 1 115 35 685 006e 1A70 strb r2, [r3] 686 .L34: 116:user_src/common.c **** tmp_lens--; 687 .loc 1 116 17 688 0070 B7F91E30 ldrsh r3, [r7, #30] 689 0074 9BB2 uxth r3, r3 690 0076 013B subs r3, r3, #1 691 0078 9BB2 uxth r3, r3 692 007a FB83 strh r3, [r7, #30] @ movhi 117:user_src/common.c **** 118:user_src/common.c **** if ( low > 9 ) 693 .loc 1 118 12 694 007c BB7C ldrb r3, [r7, #18] @ zero_extendqisi2 695 007e 092B cmp r3, #9 696 0080 0CD9 bls .L35 119:user_src/common.c **** sbuf[lens - tmp_lens] = 'A' + low - 10; 697 .loc 1 119 23 698 0082 B7F90820 ldrsh r2, [r7, #8] 699 0086 B7F91E30 ldrsh r3, [r7, #30] 700 008a D31A subs r3, r2, r3 701 008c 1A46 mov r2, r3 702 .loc 1 119 17 703 008e 7B68 ldr r3, [r7, #4] 704 0090 1344 add r3, r3, r2 705 .loc 1 119 47 706 0092 BA7C ldrb r2, [r7, #18] 707 0094 3732 adds r2, r2, #55 708 0096 D2B2 uxtb r2, r2 709 .loc 1 119 35 710 0098 1A70 strb r2, [r3] 711 009a 0BE0 b .L36 712 .L35: 120:user_src/common.c **** else 121:user_src/common.c **** sbuf[lens - tmp_lens] = '0' + low; 713 .loc 1 121 23 714 009c B7F90820 ldrsh r2, [r7, #8] 715 00a0 B7F91E30 ldrsh r3, [r7, #30] 716 00a4 D31A subs r3, r2, r3 717 00a6 1A46 mov r2, r3 718 .loc 1 121 17 719 00a8 7B68 ldr r3, [r7, #4] 720 00aa 1344 add r3, r3, r2 721 .loc 1 121 41 722 00ac BA7C ldrb r2, [r7, #18] 723 00ae 3032 adds r2, r2, #48 724 00b0 D2B2 uxtb r2, r2 725 .loc 1 121 35 726 00b2 1A70 strb r2, [r3] 727 .L36: 122:user_src/common.c **** tmp_lens--; 728 .loc 1 122 17 discriminator 2 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 16 729 00b4 B7F91E30 ldrsh r3, [r7, #30] 730 00b8 9BB2 uxth r3, r3 731 00ba 013B subs r3, r3, #1 732 00bc 9BB2 uxth r3, r3 733 00be FB83 strh r3, [r7, #30] @ movhi 734 .LBE4: 107:user_src/common.c **** { 735 .loc 1 107 53 discriminator 2 736 00c0 BB69 ldr r3, [r7, #24] 737 00c2 0133 adds r3, r3, #1 738 00c4 BB61 str r3, [r7, #24] 739 .L32: 107:user_src/common.c **** { 740 .loc 1 107 25 discriminator 1 741 00c6 B7F90A30 ldrsh r3, [r7, #10] 107:user_src/common.c **** { 742 .loc 1 107 5 discriminator 1 743 00ca BA69 ldr r2, [r7, #24] 744 00cc 9A42 cmp r2, r3 745 00ce 03DA bge .L37 107:user_src/common.c **** { 746 .loc 1 107 33 discriminator 3 747 00d0 B7F91E30 ldrsh r3, [r7, #30] 748 00d4 012B cmp r3, #1 749 00d6 A2DC bgt .L38 750 .L37: 751 .LBE3: 123:user_src/common.c **** } 124:user_src/common.c **** 125:user_src/common.c **** int i = 0; 752 .loc 1 125 9 753 00d8 0023 movs r3, #0 754 00da 7B61 str r3, [r7, #20] 126:user_src/common.c **** //尾缀 127:user_src/common.c **** for ( ; tmp_lens > 0 ; tmp_lens-- ) 755 .loc 1 127 5 756 00dc 1BE0 b .L39 757 .L43: 128:user_src/common.c **** { 129:user_src/common.c **** if ( *( ES + i ) != '\0' ) 758 .loc 1 129 20 759 00de 7B69 ldr r3, [r7, #20] 760 00e0 BA6A ldr r2, [r7, #40] 761 00e2 1344 add r3, r3, r2 762 .loc 1 129 14 763 00e4 1B78 ldrb r3, [r3] @ zero_extendqisi2 764 .loc 1 129 12 765 00e6 002B cmp r3, #0 766 00e8 1AD0 beq .L44 130:user_src/common.c **** { 131:user_src/common.c **** sbuf[lens - tmp_lens] = *( ES + i ); 767 .loc 1 131 43 768 00ea 7B69 ldr r3, [r7, #20] 769 00ec BA6A ldr r2, [r7, #40] 770 00ee 1A44 add r2, r2, r3 771 .loc 1 131 23 772 00f0 B7F90810 ldrsh r1, [r7, #8] ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 17 773 00f4 B7F91E30 ldrsh r3, [r7, #30] 774 00f8 CB1A subs r3, r1, r3 775 00fa 1946 mov r1, r3 776 .loc 1 131 17 777 00fc 7B68 ldr r3, [r7, #4] 778 00fe 0B44 add r3, r3, r1 779 .loc 1 131 37 780 0100 1278 ldrb r2, [r2] @ zero_extendqisi2 781 .loc 1 131 35 782 0102 1A70 strb r2, [r3] 132:user_src/common.c **** } 133:user_src/common.c **** else 134:user_src/common.c **** { 135:user_src/common.c **** break; 136:user_src/common.c **** } 137:user_src/common.c **** i++; 783 .loc 1 137 10 784 0104 7B69 ldr r3, [r7, #20] 785 0106 0133 adds r3, r3, #1 786 0108 7B61 str r3, [r7, #20] 127:user_src/common.c **** { 787 .loc 1 127 36 788 010a B7F91E30 ldrsh r3, [r7, #30] 789 010e 9BB2 uxth r3, r3 790 0110 013B subs r3, r3, #1 791 0112 9BB2 uxth r3, r3 792 0114 FB83 strh r3, [r7, #30] @ movhi 793 .L39: 127:user_src/common.c **** { 794 .loc 1 127 5 discriminator 1 795 0116 B7F91E30 ldrsh r3, [r7, #30] 796 011a 002B cmp r3, #0 797 011c DFDC bgt .L43 138:user_src/common.c **** } 139:user_src/common.c **** } 798 .loc 1 139 1 799 011e 00E0 b .L45 800 .L44: 135:user_src/common.c **** } 801 .loc 1 135 13 802 0120 00BF nop 803 .L45: 804 .loc 1 139 1 805 0122 00BF nop 806 0124 2437 adds r7, r7, #36 807 .LCFI32: 808 .cfi_def_cfa_offset 4 809 0126 BD46 mov sp, r7 810 .LCFI33: 811 .cfi_def_cfa_register 13 812 @ sp needed 813 0128 5DF8047B ldr r7, [sp], #4 814 .LCFI34: 815 .cfi_restore 7 816 .cfi_def_cfa_offset 0 817 012c 7047 bx lr 818 .cfi_endproc ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 18 819 .LFE135: 821 .section .rodata 822 .align 2 823 .LC0: 824 0000 30313233 .ascii "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\000" 824 34353637 824 38394142 824 43444546 824 4748494A 825 .section .text.itoa,"ax",%progbits 826 .align 1 827 .global itoa 828 .syntax unified 829 .thumb 830 .thumb_func 832 itoa: 833 .LFB136: 140:user_src/common.c **** 141:user_src/common.c **** 142:user_src/common.c **** 143:user_src/common.c **** /* 144:user_src/common.c **** @brief: 145:user_src/common.c **** num: 整型数值 146:user_src/common.c **** str: 字符串地址 147:user_src/common.c **** radix:进制 148:user_src/common.c **** */ 149:user_src/common.c **** char* itoa( int num, char* str, int radix ) 150:user_src/common.c **** { 834 .loc 1 150 1 835 .cfi_startproc 836 @ args = 0, pretend = 0, frame = 72 837 @ frame_needed = 1, uses_anonymous_args = 0 838 @ link register save eliminated. 839 0000 B0B4 push {r4, r5, r7} 840 .LCFI35: 841 .cfi_def_cfa_offset 12 842 .cfi_offset 4, -12 843 .cfi_offset 5, -8 844 .cfi_offset 7, -4 845 0002 93B0 sub sp, sp, #76 846 .LCFI36: 847 .cfi_def_cfa_offset 88 848 0004 00AF add r7, sp, #0 849 .LCFI37: 850 .cfi_def_cfa_register 7 851 0006 F860 str r0, [r7, #12] 852 0008 B960 str r1, [r7, #8] 853 000a 7A60 str r2, [r7, #4] 151:user_src/common.c **** char index[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; //索引表 854 .loc 1 151 10 855 000c 3F4B ldr r3, .L55 856 000e 07F11004 add r4, r7, #16 857 0012 1D46 mov r5, r3 858 0014 0FCD ldmia r5!, {r0, r1, r2, r3} 859 0016 0FC4 stmia r4!, {r0, r1, r2, r3} 860 0018 0FCD ldmia r5!, {r0, r1, r2, r3} 861 001a 0FC4 stmia r4!, {r0, r1, r2, r3} ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 19 862 001c 95E80300 ldm r5, {r0, r1} 863 0020 2060 str r0, [r4] 864 0022 0434 adds r4, r4, #4 865 0024 2170 strb r1, [r4] 152:user_src/common.c **** unsigned unum;//存放要转换的整数的绝对值,转换的整数可能是负数 153:user_src/common.c **** int i = 0, j, k; //i用来指示设置字符串相应位,转换之后i其实就是字符串 866 .loc 1 153 9 867 0026 0023 movs r3, #0 868 0028 3B64 str r3, [r7, #64] 154:user_src/common.c **** 155:user_src/common.c **** //获取要转换的整数的绝对值 156:user_src/common.c **** if ( radix == 10 && num < 0 ) //要转换成十进制数并且是负数 869 .loc 1 156 8 870 002a 7B68 ldr r3, [r7, #4] 871 002c 0A2B cmp r3, #10 872 002e 0ED1 bne .L47 873 .loc 1 156 22 discriminator 1 874 0030 FB68 ldr r3, [r7, #12] 875 0032 002B cmp r3, #0 876 0034 0BDA bge .L47 157:user_src/common.c **** { 158:user_src/common.c **** unum = ( unsigned ) - num; //将num的绝对值赋给unum 877 .loc 1 158 29 878 0036 FB68 ldr r3, [r7, #12] 879 0038 5B42 rsbs r3, r3, #0 880 .loc 1 158 14 881 003a 7B64 str r3, [r7, #68] 159:user_src/common.c **** str[i++] = '-'; //在字符串最前面设置为'-'号,并且索引加1 882 .loc 1 159 14 883 003c 3B6C ldr r3, [r7, #64] 884 003e 5A1C adds r2, r3, #1 885 0040 3A64 str r2, [r7, #64] 886 0042 1A46 mov r2, r3 887 .loc 1 159 12 888 0044 BB68 ldr r3, [r7, #8] 889 0046 1344 add r3, r3, r2 890 .loc 1 159 18 891 0048 2D22 movs r2, #45 892 004a 1A70 strb r2, [r3] 893 004c 01E0 b .L49 894 .L47: 160:user_src/common.c **** } 161:user_src/common.c **** else unum = ( unsigned )num; //若是num为正,直接赋值给unum 895 .loc 1 161 15 896 004e FB68 ldr r3, [r7, #12] 897 0050 7B64 str r3, [r7, #68] 898 .L49: 162:user_src/common.c **** 163:user_src/common.c **** //转换部分,注意转换后是逆序的 164:user_src/common.c **** do 165:user_src/common.c **** { 166:user_src/common.c **** str[i++] = index[unum % ( unsigned )radix]; //取unum的最后一位,并设置为str对 899 .loc 1 166 33 discriminator 1 900 0052 7A68 ldr r2, [r7, #4] 901 .loc 1 166 31 discriminator 1 902 0054 7B6C ldr r3, [r7, #68] 903 0056 B3FBF2F1 udiv r1, r3, r2 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 20 904 005a 01FB02F2 mul r2, r1, r2 905 005e 9A1A subs r2, r3, r2 906 .loc 1 166 14 discriminator 1 907 0060 3B6C ldr r3, [r7, #64] 908 0062 591C adds r1, r3, #1 909 0064 3964 str r1, [r7, #64] 910 0066 1946 mov r1, r3 911 .loc 1 166 12 discriminator 1 912 0068 BB68 ldr r3, [r7, #8] 913 006a 0B44 add r3, r3, r1 914 .loc 1 166 25 discriminator 1 915 006c 4832 adds r2, r2, #72 916 006e 3A44 add r2, r2, r7 917 0070 12F8382C ldrb r2, [r2, #-56] @ zero_extendqisi2 918 .loc 1 166 18 discriminator 1 919 0074 1A70 strb r2, [r3] 167:user_src/common.c **** unum /= radix; //unum去掉最后一位 920 .loc 1 167 14 discriminator 1 921 0076 7B68 ldr r3, [r7, #4] 922 0078 7A6C ldr r2, [r7, #68] 923 007a B2FBF3F3 udiv r3, r2, r3 924 007e 7B64 str r3, [r7, #68] 168:user_src/common.c **** 169:user_src/common.c **** } 170:user_src/common.c **** while ( unum ); //直至unum为0退出循环 925 .loc 1 170 5 discriminator 1 926 0080 7B6C ldr r3, [r7, #68] 927 0082 002B cmp r3, #0 928 0084 E5D1 bne .L49 171:user_src/common.c **** 172:user_src/common.c **** str[i] = '\0'; //在字符串最后添加'\0'字符,c语言字符串以'\0'结束。 929 .loc 1 172 8 930 0086 3B6C ldr r3, [r7, #64] 931 0088 BA68 ldr r2, [r7, #8] 932 008a 1344 add r3, r3, r2 933 .loc 1 172 12 934 008c 0022 movs r2, #0 935 008e 1A70 strb r2, [r3] 173:user_src/common.c **** 174:user_src/common.c **** //将顺序调整过来 175:user_src/common.c **** if ( str[0] == '-' ) k = 1; //如果是负数,符号不用调整,从符号后面开始调 936 .loc 1 175 13 937 0090 BB68 ldr r3, [r7, #8] 938 0092 1B78 ldrb r3, [r3] @ zero_extendqisi2 939 .loc 1 175 8 940 0094 2D2B cmp r3, #45 941 0096 02D1 bne .L50 942 .loc 1 175 28 discriminator 1 943 0098 0123 movs r3, #1 944 009a BB63 str r3, [r7, #56] 945 009c 01E0 b .L51 946 .L50: 176:user_src/common.c **** else k = 0; //不是负数,全部都要调整 947 .loc 1 176 12 948 009e 0023 movs r3, #0 949 00a0 BB63 str r3, [r7, #56] 950 .L51: ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 21 177:user_src/common.c **** 178:user_src/common.c **** char temp;//临时变量,交换两个值时用到 179:user_src/common.c **** for ( j = k; j <= ( i - 1 ) / 2; j++ ) //头尾一一对称交换,i其实就是字符串的 951 .loc 1 179 13 952 00a2 BB6B ldr r3, [r7, #56] 953 00a4 FB63 str r3, [r7, #60] 954 .loc 1 179 5 955 00a6 22E0 b .L52 956 .L53: 180:user_src/common.c **** { 181:user_src/common.c **** temp = str[j]; //头部赋值给临时变量 957 .loc 1 181 19 discriminator 3 958 00a8 FB6B ldr r3, [r7, #60] 959 00aa BA68 ldr r2, [r7, #8] 960 00ac 1344 add r3, r3, r2 961 .loc 1 181 14 discriminator 3 962 00ae 1B78 ldrb r3, [r3] 963 00b0 87F83730 strb r3, [r7, #55] 182:user_src/common.c **** str[j] = str[i - 1 + k - j]; //尾部赋值给头部 964 .loc 1 182 24 discriminator 3 965 00b4 3B6C ldr r3, [r7, #64] 966 00b6 5A1E subs r2, r3, #1 967 .loc 1 182 28 discriminator 3 968 00b8 BB6B ldr r3, [r7, #56] 969 00ba 1A44 add r2, r2, r3 970 .loc 1 182 32 discriminator 3 971 00bc FB6B ldr r3, [r7, #60] 972 00be D31A subs r3, r2, r3 973 00c0 1A46 mov r2, r3 974 .loc 1 182 21 discriminator 3 975 00c2 BB68 ldr r3, [r7, #8] 976 00c4 1A44 add r2, r2, r3 977 .loc 1 182 12 discriminator 3 978 00c6 FB6B ldr r3, [r7, #60] 979 00c8 B968 ldr r1, [r7, #8] 980 00ca 0B44 add r3, r3, r1 981 .loc 1 182 21 discriminator 3 982 00cc 1278 ldrb r2, [r2] @ zero_extendqisi2 983 .loc 1 182 16 discriminator 3 984 00ce 1A70 strb r2, [r3] 183:user_src/common.c **** str[i - 1 + k - j] = temp; //将临时变量的值(其实就是之前的头部值)赋给尾 985 .loc 1 183 15 discriminator 3 986 00d0 3B6C ldr r3, [r7, #64] 987 00d2 5A1E subs r2, r3, #1 988 .loc 1 183 19 discriminator 3 989 00d4 BB6B ldr r3, [r7, #56] 990 00d6 1A44 add r2, r2, r3 991 .loc 1 183 23 discriminator 3 992 00d8 FB6B ldr r3, [r7, #60] 993 00da D31A subs r3, r2, r3 994 00dc 1A46 mov r2, r3 995 .loc 1 183 12 discriminator 3 996 00de BB68 ldr r3, [r7, #8] 997 00e0 1344 add r3, r3, r2 998 .loc 1 183 28 discriminator 3 999 00e2 97F83720 ldrb r2, [r7, #55] 1000 00e6 1A70 strb r2, [r3] ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 22 179:user_src/common.c **** { 1001 .loc 1 179 39 discriminator 3 1002 00e8 FB6B ldr r3, [r7, #60] 1003 00ea 0133 adds r3, r3, #1 1004 00ec FB63 str r3, [r7, #60] 1005 .L52: 179:user_src/common.c **** { 1006 .loc 1 179 27 discriminator 1 1007 00ee 3B6C ldr r3, [r7, #64] 1008 00f0 013B subs r3, r3, #1 179:user_src/common.c **** { 1009 .loc 1 179 33 discriminator 1 1010 00f2 DA0F lsrs r2, r3, #31 1011 00f4 1344 add r3, r3, r2 1012 00f6 5B10 asrs r3, r3, #1 1013 00f8 1A46 mov r2, r3 179:user_src/common.c **** { 1014 .loc 1 179 5 discriminator 1 1015 00fa FB6B ldr r3, [r7, #60] 1016 00fc 9342 cmp r3, r2 1017 00fe D3DD ble .L53 184:user_src/common.c **** } 185:user_src/common.c **** 186:user_src/common.c **** return str;//返回转换后的字符串 1018 .loc 1 186 12 1019 0100 BB68 ldr r3, [r7, #8] 187:user_src/common.c **** } 1020 .loc 1 187 1 1021 0102 1846 mov r0, r3 1022 0104 4C37 adds r7, r7, #76 1023 .LCFI38: 1024 .cfi_def_cfa_offset 12 1025 0106 BD46 mov sp, r7 1026 .LCFI39: 1027 .cfi_def_cfa_register 13 1028 @ sp needed 1029 0108 B0BC pop {r4, r5, r7} 1030 .LCFI40: 1031 .cfi_restore 7 1032 .cfi_restore 5 1033 .cfi_restore 4 1034 .cfi_def_cfa_offset 0 1035 010a 7047 bx lr 1036 .L56: 1037 .align 2 1038 .L55: 1039 010c 00000000 .word .LC0 1040 .cfi_endproc 1041 .LFE136: 1043 .section .text.Int2String,"ax",%progbits 1044 .align 1 1045 .global Int2String 1046 .syntax unified 1047 .thumb 1048 .thumb_func 1050 Int2String: 1051 .LFB137: ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 23 188:user_src/common.c **** 189:user_src/common.c **** 190:user_src/common.c **** char* Int2String(int num,char *str,uint8_t size)//10进制 191:user_src/common.c **** { 1052 .loc 1 191 1 1053 .cfi_startproc 1054 @ args = 0, pretend = 0, frame = 24 1055 @ frame_needed = 1, uses_anonymous_args = 0 1056 @ link register save eliminated. 1057 0000 80B4 push {r7} 1058 .LCFI41: 1059 .cfi_def_cfa_offset 4 1060 .cfi_offset 7, -4 1061 0002 87B0 sub sp, sp, #28 1062 .LCFI42: 1063 .cfi_def_cfa_offset 32 1064 0004 00AF add r7, sp, #0 1065 .LCFI43: 1066 .cfi_def_cfa_register 7 1067 0006 F860 str r0, [r7, #12] 1068 0008 B960 str r1, [r7, #8] 1069 000a 1346 mov r3, r2 1070 000c FB71 strb r3, [r7, #7] 192:user_src/common.c **** int i = 0;//指示填充str 1071 .loc 1 192 9 1072 000e 0023 movs r3, #0 1073 0010 7B61 str r3, [r7, #20] 193:user_src/common.c **** if(num<0)//如果num为负数,将num变正 1074 .loc 1 193 7 1075 0012 FB68 ldr r3, [r7, #12] 1076 0014 002B cmp r3, #0 1077 0016 0ADA bge .L60 194:user_src/common.c **** { 195:user_src/common.c **** num = -num; 1078 .loc 1 195 13 1079 0018 FB68 ldr r3, [r7, #12] 1080 001a 5B42 rsbs r3, r3, #0 1081 001c FB60 str r3, [r7, #12] 196:user_src/common.c **** str[i++] = '-'; 1082 .loc 1 196 14 1083 001e 7B69 ldr r3, [r7, #20] 1084 0020 5A1C adds r2, r3, #1 1085 0022 7A61 str r2, [r7, #20] 1086 0024 1A46 mov r2, r3 1087 .loc 1 196 12 1088 0026 BB68 ldr r3, [r7, #8] 1089 0028 1344 add r3, r3, r2 1090 .loc 1 196 18 1091 002a 2D22 movs r2, #45 1092 002c 1A70 strb r2, [r3] 1093 .L60: 197:user_src/common.c **** } 198:user_src/common.c **** //转换 199:user_src/common.c **** do 200:user_src/common.c **** { 201:user_src/common.c **** if(size>0) 1094 .loc 1 201 11 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 24 1095 002e FB79 ldrb r3, [r7, #7] @ zero_extendqisi2 1096 0030 002B cmp r3, #0 1097 0032 15D0 beq .L59 202:user_src/common.c **** { 203:user_src/common.c **** str[i++] = num%10+48; 1098 .loc 1 203 27 1099 0034 FA68 ldr r2, [r7, #12] 1100 0036 404B ldr r3, .L65 1101 0038 83FB0213 smull r1, r3, r3, r2 1102 003c 9910 asrs r1, r3, #2 1103 003e D317 asrs r3, r2, #31 1104 0040 C91A subs r1, r1, r3 1105 0042 0B46 mov r3, r1 1106 0044 9B00 lsls r3, r3, #2 1107 0046 0B44 add r3, r3, r1 1108 0048 5B00 lsls r3, r3, #1 1109 004a D11A subs r1, r2, r3 1110 .loc 1 203 30 1111 004c CAB2 uxtb r2, r1 1112 .loc 1 203 18 1113 004e 7B69 ldr r3, [r7, #20] 1114 0050 591C adds r1, r3, #1 1115 0052 7961 str r1, [r7, #20] 1116 0054 1946 mov r1, r3 1117 .loc 1 203 16 1118 0056 BB68 ldr r3, [r7, #8] 1119 0058 0B44 add r3, r3, r1 1120 .loc 1 203 30 1121 005a 3032 adds r2, r2, #48 1122 005c D2B2 uxtb r2, r2 1123 .loc 1 203 22 1124 005e 1A70 strb r2, [r3] 1125 .L59: 204:user_src/common.c **** } 205:user_src/common.c **** size--; 1126 .loc 1 205 13 1127 0060 FB79 ldrb r3, [r7, #7] @ zero_extendqisi2 1128 0062 013B subs r3, r3, #1 1129 0064 FB71 strb r3, [r7, #7] 206:user_src/common.c **** num /= 10; 1130 .loc 1 206 13 1131 0066 FB68 ldr r3, [r7, #12] 1132 0068 334A ldr r2, .L65 1133 006a 82FB0312 smull r1, r2, r2, r3 1134 006e 9210 asrs r2, r2, #2 1135 0070 DB17 asrs r3, r3, #31 1136 0072 D31A subs r3, r2, r3 1137 0074 FB60 str r3, [r7, #12] 207:user_src/common.c **** }while(num); 1138 .loc 1 207 5 1139 0076 FB68 ldr r3, [r7, #12] 1140 0078 002B cmp r3, #0 1141 007a D8D1 bne .L60 208:user_src/common.c **** 209:user_src/common.c **** str[i] = '\0'; 1142 .loc 1 209 8 1143 007c 7B69 ldr r3, [r7, #20] ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 25 1144 007e BA68 ldr r2, [r7, #8] 1145 0080 1344 add r3, r3, r2 1146 .loc 1 209 12 1147 0082 0022 movs r2, #0 1148 0084 1A70 strb r2, [r3] 210:user_src/common.c **** 211:user_src/common.c **** //确定开始调整的位置 212:user_src/common.c **** int j = 0; 1149 .loc 1 212 9 1150 0086 0023 movs r3, #0 1151 0088 3B61 str r3, [r7, #16] 213:user_src/common.c **** if(str[0]=='-')//如果有负号,负号不用调整 1152 .loc 1 213 11 1153 008a BB68 ldr r3, [r7, #8] 1154 008c 1B78 ldrb r3, [r3] @ zero_extendqisi2 1155 .loc 1 213 7 1156 008e 2D2B cmp r3, #45 1157 0090 42D1 bne .L62 214:user_src/common.c **** { 215:user_src/common.c **** j = 1;//从第二位开始调整 1158 .loc 1 215 11 1159 0092 0123 movs r3, #1 1160 0094 3B61 str r3, [r7, #16] 216:user_src/common.c **** ++i;//由于有负号,所以交换的对称轴也要后移1位 1161 .loc 1 216 9 1162 0096 7B69 ldr r3, [r7, #20] 1163 0098 0133 adds r3, r3, #1 1164 009a 7B61 str r3, [r7, #20] 217:user_src/common.c **** } 218:user_src/common.c **** //对称交换 219:user_src/common.c **** for(;jconnect_status == COMP_NOEXIST) 1318 .loc 1 240 11 1319 0014 FB68 ldr r3, [r7, #12] 1320 0016 1B7A ldrb r3, [r3, #8] @ zero_extendqisi2 1321 .loc 1 240 7 1322 0018 002B cmp r3, #0 1323 001a 1ED0 beq .L71 241:user_src/common.c **** return; 242:user_src/common.c **** 243:user_src/common.c **** dev->error_time = HAL_GetTick() - dev->recv_time; 1324 .loc 1 243 23 1325 001c FFF7FEFF bl HAL_GetTick 1326 0020 0246 mov r2, r0 1327 .loc 1 243 42 1328 0022 FB68 ldr r3, [r7, #12] 1329 0024 1B68 ldr r3, [r3] 1330 .loc 1 243 37 1331 0026 D31A subs r3, r2, r3 1332 0028 1A46 mov r2, r3 1333 .loc 1 243 21 1334 002a FB68 ldr r3, [r7, #12] 1335 002c 5A60 str r2, [r3, #4] 244:user_src/common.c **** ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 29 245:user_src/common.c **** if (dev->connect_status == COMP_NORMAL && (dev->error_time > ms)) 1336 .loc 1 245 12 1337 002e FB68 ldr r3, [r7, #12] 1338 0030 1B7A ldrb r3, [r3, #8] @ zero_extendqisi2 1339 .loc 1 245 8 1340 0032 012B cmp r3, #1 1341 0034 12D1 bne .L67 1342 .loc 1 245 51 discriminator 1 1343 0036 FB68 ldr r3, [r7, #12] 1344 0038 5A68 ldr r2, [r3, #4] 1345 .loc 1 245 64 discriminator 1 1346 003a 7B89 ldrh r3, [r7, #10] 1347 .loc 1 245 44 discriminator 1 1348 003c 9A42 cmp r2, r3 1349 003e 0DDD ble .L67 246:user_src/common.c **** { 247:user_src/common.c **** if(p != NULL) 1350 .loc 1 247 11 1351 0040 7B68 ldr r3, [r7, #4] 1352 0042 002B cmp r3, #0 1353 0044 05D0 beq .L70 248:user_src/common.c **** memset(p, 0, size); 1354 .loc 1 248 13 1355 0046 3B89 ldrh r3, [r7, #8] 1356 0048 1A46 mov r2, r3 1357 004a 0021 movs r1, #0 1358 004c 7868 ldr r0, [r7, #4] 1359 004e FFF7FEFF bl memset 1360 .L70: 249:user_src/common.c **** 250:user_src/common.c **** dev->connect_status = COMP_LOST; 1361 .loc 1 250 29 1362 0052 FB68 ldr r3, [r7, #12] 1363 0054 0222 movs r2, #2 1364 0056 1A72 strb r2, [r3, #8] 1365 0058 00E0 b .L67 1366 .L71: 241:user_src/common.c **** 1367 .loc 1 241 9 1368 005a 00BF nop 1369 .L67: 251:user_src/common.c **** } 252:user_src/common.c **** } 1370 .loc 1 252 1 1371 005c 1037 adds r7, r7, #16 1372 .LCFI50: 1373 .cfi_def_cfa_offset 8 1374 005e BD46 mov sp, r7 1375 .LCFI51: 1376 .cfi_def_cfa_register 13 1377 @ sp needed 1378 0060 80BD pop {r7, pc} 1379 .cfi_endproc 1380 .LFE138: 1382 .section .text.Check_Timer_Ready,"ax",%progbits 1383 .align 1 1384 .global Check_Timer_Ready ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 30 1385 .syntax unified 1386 .thumb 1387 .thumb_func 1389 Check_Timer_Ready: 1390 .LFB139: 253:user_src/common.c **** 254:user_src/common.c **** /** 255:user_src/common.c **** * @file Check_Timer_Ready 256:user_src/common.c **** * @brief 定时器循环检测 257:user_src/common.c **** * @param 258:user_src/common.c **** * @details 259:user_src/common.c **** * @author Zhang Sir 260:user_src/common.c **** **/ 261:user_src/common.c **** bool Check_Timer_Ready(uint32_t *time,uint16_t HZ) 262:user_src/common.c **** { 1391 .loc 1 262 1 1392 .cfi_startproc 1393 @ args = 0, pretend = 0, frame = 8 1394 @ frame_needed = 1, uses_anonymous_args = 0 1395 0000 80B5 push {r7, lr} 1396 .LCFI52: 1397 .cfi_def_cfa_offset 8 1398 .cfi_offset 7, -8 1399 .cfi_offset 14, -4 1400 0002 82B0 sub sp, sp, #8 1401 .LCFI53: 1402 .cfi_def_cfa_offset 16 1403 0004 00AF add r7, sp, #0 1404 .LCFI54: 1405 .cfi_def_cfa_register 7 1406 0006 7860 str r0, [r7, #4] 1407 0008 0B46 mov r3, r1 1408 000a 7B80 strh r3, [r7, #2] @ movhi 263:user_src/common.c **** if(HAL_GetTick() - *time >= HZ) 1409 .loc 1 263 8 1410 000c FFF7FEFF bl HAL_GetTick 1411 0010 0246 mov r2, r0 1412 .loc 1 263 24 1413 0012 7B68 ldr r3, [r7, #4] 1414 0014 1B68 ldr r3, [r3] 1415 .loc 1 263 22 1416 0016 D21A subs r2, r2, r3 1417 .loc 1 263 30 1418 0018 7B88 ldrh r3, [r7, #2] 1419 .loc 1 263 7 1420 001a 9A42 cmp r2, r3 1421 001c 06D3 bcc .L73 264:user_src/common.c **** { 265:user_src/common.c **** *time = HAL_GetTick(); 1422 .loc 1 265 17 1423 001e FFF7FEFF bl HAL_GetTick 1424 0022 0246 mov r2, r0 1425 .loc 1 265 15 1426 0024 7B68 ldr r3, [r7, #4] 1427 0026 1A60 str r2, [r3] 266:user_src/common.c **** return true; 1428 .loc 1 266 16 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 31 1429 0028 0123 movs r3, #1 1430 002a 00E0 b .L74 1431 .L73: 267:user_src/common.c **** } 268:user_src/common.c **** return false; 1432 .loc 1 268 12 1433 002c 0023 movs r3, #0 1434 .L74: 269:user_src/common.c **** } 1435 .loc 1 269 1 1436 002e 1846 mov r0, r3 1437 0030 0837 adds r7, r7, #8 1438 .LCFI55: 1439 .cfi_def_cfa_offset 8 1440 0032 BD46 mov sp, r7 1441 .LCFI56: 1442 .cfi_def_cfa_register 13 1443 @ sp needed 1444 0034 80BD pop {r7, pc} 1445 .cfi_endproc 1446 .LFE139: 1448 .section .text.math_cons_i16,"ax",%progbits 1449 .align 1 1450 .global math_cons_i16 1451 .syntax unified 1452 .thumb 1453 .thumb_func 1455 math_cons_i16: 1456 .LFB140: 270:user_src/common.c **** 271:user_src/common.c **** int16_t math_cons_i16( int16_t value, int16_t min, int16_t max ) 272:user_src/common.c **** { 1457 .loc 1 272 1 1458 .cfi_startproc 1459 @ args = 0, pretend = 0, frame = 8 1460 @ frame_needed = 1, uses_anonymous_args = 0 1461 @ link register save eliminated. 1462 0000 80B4 push {r7} 1463 .LCFI57: 1464 .cfi_def_cfa_offset 4 1465 .cfi_offset 7, -4 1466 0002 83B0 sub sp, sp, #12 1467 .LCFI58: 1468 .cfi_def_cfa_offset 16 1469 0004 00AF add r7, sp, #0 1470 .LCFI59: 1471 .cfi_def_cfa_register 7 1472 0006 0346 mov r3, r0 1473 0008 FB80 strh r3, [r7, #6] @ movhi 1474 000a 0B46 mov r3, r1 @ movhi 1475 000c BB80 strh r3, [r7, #4] @ movhi 1476 000e 1346 mov r3, r2 @ movhi 1477 0010 7B80 strh r3, [r7, #2] @ movhi 273:user_src/common.c **** return ( ( value ) < ( min ) ? ( min ) : ( ( value ) > ( max ) ? ( max ) : ( value ) ) ); 1478 .loc 1 273 44 1479 0012 B7F90620 ldrsh r2, [r7, #6] 1480 0016 B7F90430 ldrsh r3, [r7, #4] ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 32 1481 001a 9A42 cmp r2, r3 1482 001c 08DB blt .L76 1483 .loc 1 273 44 is_stmt 0 discriminator 1 1484 001e B7F90620 ldrsh r2, [r7, #6] 1485 0022 B7F90230 ldrsh r3, [r7, #2] 1486 0026 9342 cmp r3, r2 1487 0028 A8BF it ge 1488 002a 1346 movge r3, r2 1489 002c 1BB2 sxth r3, r3 1490 002e 01E0 b .L77 1491 .L76: 1492 .loc 1 273 44 discriminator 2 1493 0030 B7F90430 ldrsh r3, [r7, #4] 1494 .L77: 274:user_src/common.c **** } 1495 .loc 1 274 1 is_stmt 1 discriminator 4 1496 0034 1846 mov r0, r3 1497 0036 0C37 adds r7, r7, #12 1498 .LCFI60: 1499 .cfi_def_cfa_offset 4 1500 0038 BD46 mov sp, r7 1501 .LCFI61: 1502 .cfi_def_cfa_register 13 1503 @ sp needed 1504 003a 5DF8047B ldr r7, [sp], #4 1505 .LCFI62: 1506 .cfi_restore 7 1507 .cfi_def_cfa_offset 0 1508 003e 7047 bx lr 1509 .cfi_endproc 1510 .LFE140: 1512 .section .text.StrArrayNull,"ax",%progbits 1513 .align 1 1514 .global StrArrayNull 1515 .syntax unified 1516 .thumb 1517 .thumb_func 1519 StrArrayNull: 1520 .LFB141: 275:user_src/common.c **** 276:user_src/common.c **** //数组array是否为空,只有'\0'以及'0' 277:user_src/common.c **** bool StrArrayNull( uint8_t *array, int aLen ) 278:user_src/common.c **** { 1521 .loc 1 278 1 1522 .cfi_startproc 1523 @ args = 0, pretend = 0, frame = 16 1524 @ frame_needed = 1, uses_anonymous_args = 0 1525 @ link register save eliminated. 1526 0000 80B4 push {r7} 1527 .LCFI63: 1528 .cfi_def_cfa_offset 4 1529 .cfi_offset 7, -4 1530 0002 85B0 sub sp, sp, #20 1531 .LCFI64: 1532 .cfi_def_cfa_offset 24 1533 0004 00AF add r7, sp, #0 1534 .LCFI65: ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 33 1535 .cfi_def_cfa_register 7 1536 0006 7860 str r0, [r7, #4] 1537 0008 3960 str r1, [r7] 1538 .LBB5: 279:user_src/common.c **** for ( int i = 0; i < aLen; i++ ) 1539 .loc 1 279 15 1540 000a 0023 movs r3, #0 1541 000c FB60 str r3, [r7, #12] 1542 .loc 1 279 5 1543 000e 10E0 b .L80 1544 .L83: 280:user_src/common.c **** { 281:user_src/common.c **** if(array[i] != 0 && array[i] != '0') 1545 .loc 1 281 17 1546 0010 FB68 ldr r3, [r7, #12] 1547 0012 7A68 ldr r2, [r7, #4] 1548 0014 1344 add r3, r3, r2 1549 0016 1B78 ldrb r3, [r3] @ zero_extendqisi2 1550 .loc 1 281 11 1551 0018 002B cmp r3, #0 1552 001a 07D0 beq .L81 1553 .loc 1 281 34 discriminator 1 1554 001c FB68 ldr r3, [r7, #12] 1555 001e 7A68 ldr r2, [r7, #4] 1556 0020 1344 add r3, r3, r2 1557 0022 1B78 ldrb r3, [r3] @ zero_extendqisi2 1558 .loc 1 281 26 discriminator 1 1559 0024 302B cmp r3, #48 1560 0026 01D0 beq .L81 282:user_src/common.c **** return false; 1561 .loc 1 282 20 1562 0028 0023 movs r3, #0 1563 002a 07E0 b .L82 1564 .L81: 279:user_src/common.c **** for ( int i = 0; i < aLen; i++ ) 1565 .loc 1 279 33 discriminator 2 1566 002c FB68 ldr r3, [r7, #12] 1567 002e 0133 adds r3, r3, #1 1568 0030 FB60 str r3, [r7, #12] 1569 .L80: 279:user_src/common.c **** for ( int i = 0; i < aLen; i++ ) 1570 .loc 1 279 5 discriminator 1 1571 0032 FA68 ldr r2, [r7, #12] 1572 0034 3B68 ldr r3, [r7] 1573 0036 9A42 cmp r2, r3 1574 0038 EADB blt .L83 1575 .LBE5: 283:user_src/common.c **** } 284:user_src/common.c **** 285:user_src/common.c **** return true; 1576 .loc 1 285 12 1577 003a 0123 movs r3, #1 1578 .L82: 286:user_src/common.c **** } 1579 .loc 1 286 1 1580 003c 1846 mov r0, r3 1581 003e 1437 adds r7, r7, #20 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 34 1582 .LCFI66: 1583 .cfi_def_cfa_offset 4 1584 0040 BD46 mov sp, r7 1585 .LCFI67: 1586 .cfi_def_cfa_register 13 1587 @ sp needed 1588 0042 5DF8047B ldr r7, [sp], #4 1589 .LCFI68: 1590 .cfi_restore 7 1591 .cfi_def_cfa_offset 0 1592 0046 7047 bx lr 1593 .cfi_endproc 1594 .LFE141: 1596 .text 1597 .Letext0: 1598 .file 2 "d:\\arm-gcc\\arm-none-eabi\\include\\machine\\_default_types.h" 1599 .file 3 "d:\\arm-gcc\\arm-none-eabi\\include\\sys\\_stdint.h" 1600 .file 4 "user_inc/common.h" 1601 .file 5 "user_inc/soft_obstacle.h" 1602 .file 6 "d:\\arm-gcc\\arm-none-eabi\\include\\stdlib.h" ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 35 DEFINED SYMBOLS *ABS*:00000000 common.c C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:20 .text.findStrInArray:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:26 .text.findStrInArray:00000000 findStrInArray C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:128 .text.buf2int:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:134 .text.buf2int:00000000 buf2int C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:207 .text.u16t_buf_sort:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:213 .text.u16t_buf_sort:00000000 u16t_buf_sort C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:351 .text.mimomocib_buf_sort:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:357 .text.mimomocib_buf_sort:00000000 mimomocib_buf_sort C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:515 .text.short2buf:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:521 .text.short2buf:00000000 short2buf C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:594 .text.char_to_hex_string:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:600 .text.char_to_hex_string:00000000 char_to_hex_string C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:822 .rodata:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:826 .text.itoa:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:832 .text.itoa:00000000 itoa C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:1039 .text.itoa:0000010c $d C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:1044 .text.Int2String:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:1050 .text.Int2String:00000000 Int2String C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:1283 .text.Int2String:00000138 $d C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:1288 .text.Check_dev_link:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:1294 .text.Check_dev_link:00000000 Check_dev_link C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:1383 .text.Check_Timer_Ready:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:1389 .text.Check_Timer_Ready:00000000 Check_Timer_Ready C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:1449 .text.math_cons_i16:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:1455 .text.math_cons_i16:00000000 math_cons_i16 C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:1513 .text.StrArrayNull:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:1519 .text.StrArrayNull:00000000 StrArrayNull UNDEFINED SYMBOLS strlen memcmp HAL_GetTick memset