ARM GAS C:\Users\zl835\AppData\Local\Temp\cco7lAgg.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_crc.c" 16 .text 17 .Ltext0: 18 .cfi_sections .debug_frame 19 .global ccitt_table 20 .section .rodata.ccitt_table,"a" 21 .align 2 24 ccitt_table: 25 0000 0000 .short 0 26 0002 2110 .short 4129 27 0004 4220 .short 8258 28 0006 6330 .short 12387 29 0008 8440 .short 16516 30 000a A550 .short 20645 31 000c C660 .short 24774 32 000e E770 .short 28903 33 0010 0881 .short -32504 34 0012 2991 .short -28375 35 0014 4AA1 .short -24246 36 0016 6BB1 .short -20117 37 0018 8CC1 .short -15988 38 001a ADD1 .short -11859 39 001c CEE1 .short -7730 40 001e EFF1 .short -3601 41 0020 3112 .short 4657 42 0022 1002 .short 528 43 0024 7332 .short 12915 44 0026 5222 .short 8786 45 0028 B552 .short 21173 46 002a 9442 .short 17044 47 002c F772 .short 29431 48 002e D662 .short 25302 49 0030 3993 .short -27847 50 0032 1883 .short -31976 51 0034 7BB3 .short -19589 52 0036 5AA3 .short -23718 53 0038 BDD3 .short -11331 54 003a 9CC3 .short -15460 55 003c FFF3 .short -3073 56 003e DEE3 .short -7202 57 0040 6224 .short 9314 58 0042 4334 .short 13379 59 0044 2004 .short 1056 ARM GAS C:\Users\zl835\AppData\Local\Temp\cco7lAgg.s page 2 60 0046 0114 .short 5121 61 0048 E664 .short 25830 62 004a C774 .short 29895 63 004c A444 .short 17572 64 004e 8554 .short 21637 65 0050 6AA5 .short -23190 66 0052 4BB5 .short -19125 67 0054 2885 .short -31448 68 0056 0995 .short -27383 69 0058 EEE5 .short -6674 70 005a CFF5 .short -2609 71 005c ACC5 .short -14932 72 005e 8DD5 .short -10867 73 0060 5336 .short 13907 74 0062 7226 .short 9842 75 0064 1116 .short 5649 76 0066 3006 .short 1584 77 0068 D776 .short 30423 78 006a F666 .short 26358 79 006c 9556 .short 22165 80 006e B446 .short 18100 81 0070 5BB7 .short -18597 82 0072 7AA7 .short -22662 83 0074 1997 .short -26855 84 0076 3887 .short -30920 85 0078 DFF7 .short -2081 86 007a FEE7 .short -6146 87 007c 9DD7 .short -10339 88 007e BCC7 .short -14404 89 0080 C448 .short 18628 90 0082 E558 .short 22757 91 0084 8668 .short 26758 92 0086 A778 .short 30887 93 0088 4008 .short 2112 94 008a 6118 .short 6241 95 008c 0228 .short 10242 96 008e 2338 .short 14371 97 0090 CCC9 .short -13876 98 0092 EDD9 .short -9747 99 0094 8EE9 .short -5746 100 0096 AFF9 .short -1617 101 0098 4889 .short -30392 102 009a 6999 .short -26263 103 009c 0AA9 .short -22262 104 009e 2BB9 .short -18133 105 00a0 F55A .short 23285 106 00a2 D44A .short 19156 107 00a4 B77A .short 31415 108 00a6 966A .short 27286 109 00a8 711A .short 6769 110 00aa 500A .short 2640 111 00ac 333A .short 14899 112 00ae 122A .short 10770 113 00b0 FDDB .short -9219 114 00b2 DCCB .short -13348 115 00b4 BFFB .short -1089 116 00b6 9EEB .short -5218 ARM GAS C:\Users\zl835\AppData\Local\Temp\cco7lAgg.s page 3 117 00b8 799B .short -25735 118 00ba 588B .short -29864 119 00bc 3BBB .short -17605 120 00be 1AAB .short -21734 121 00c0 A66C .short 27814 122 00c2 877C .short 31879 123 00c4 E44C .short 19684 124 00c6 C55C .short 23749 125 00c8 222C .short 11298 126 00ca 033C .short 15363 127 00cc 600C .short 3168 128 00ce 411C .short 7233 129 00d0 AEED .short -4690 130 00d2 8FFD .short -625 131 00d4 ECCD .short -12820 132 00d6 CDDD .short -8755 133 00d8 2AAD .short -21206 134 00da 0BBD .short -17141 135 00dc 688D .short -29336 136 00de 499D .short -25271 137 00e0 977E .short 32407 138 00e2 B66E .short 28342 139 00e4 D55E .short 24277 140 00e6 F44E .short 20212 141 00e8 133E .short 15891 142 00ea 322E .short 11826 143 00ec 511E .short 7761 144 00ee 700E .short 3696 145 00f0 9FFF .short -97 146 00f2 BEEF .short -4162 147 00f4 DDDF .short -8227 148 00f6 FCCF .short -12292 149 00f8 1BBF .short -16613 150 00fa 3AAF .short -20678 151 00fc 599F .short -24743 152 00fe 788F .short -28808 153 0100 8891 .short -28280 154 0102 A981 .short -32343 155 0104 CAB1 .short -20022 156 0106 EBA1 .short -24085 157 0108 0CD1 .short -12020 158 010a 2DC1 .short -16083 159 010c 4EF1 .short -3762 160 010e 6FE1 .short -7825 161 0110 8010 .short 4224 162 0112 A100 .short 161 163 0114 C230 .short 12482 164 0116 E320 .short 8419 165 0118 0450 .short 20484 166 011a 2540 .short 16421 167 011c 4670 .short 28742 168 011e 6760 .short 24679 169 0120 B983 .short -31815 170 0122 9893 .short -27752 171 0124 FBA3 .short -23557 172 0126 DAB3 .short -19494 173 0128 3DC3 .short -15555 ARM GAS C:\Users\zl835\AppData\Local\Temp\cco7lAgg.s page 4 174 012a 1CD3 .short -11492 175 012c 7FE3 .short -7297 176 012e 5EF3 .short -3234 177 0130 B102 .short 689 178 0132 9012 .short 4752 179 0134 F322 .short 8947 180 0136 D232 .short 13010 181 0138 3542 .short 16949 182 013a 1452 .short 21012 183 013c 7762 .short 25207 184 013e 5672 .short 29270 185 0140 EAB5 .short -18966 186 0142 CBA5 .short -23093 187 0144 A895 .short -27224 188 0146 8985 .short -31351 189 0148 6EF5 .short -2706 190 014a 4FE5 .short -6833 191 014c 2CD5 .short -10964 192 014e 0DC5 .short -15091 193 0150 E234 .short 13538 194 0152 C324 .short 9411 195 0154 A014 .short 5280 196 0156 8104 .short 1153 197 0158 6674 .short 29798 198 015a 4764 .short 25671 199 015c 2454 .short 21540 200 015e 0544 .short 17413 201 0160 DBA7 .short -22565 202 0162 FAB7 .short -18438 203 0164 9987 .short -30823 204 0166 B897 .short -26696 205 0168 5FE7 .short -6305 206 016a 7EF7 .short -2178 207 016c 1DC7 .short -14563 208 016e 3CD7 .short -10436 209 0170 D326 .short 9939 210 0172 F236 .short 14066 211 0174 9106 .short 1681 212 0176 B016 .short 5808 213 0178 5766 .short 26199 214 017a 7676 .short 30326 215 017c 1546 .short 17941 216 017e 3456 .short 22068 217 0180 4CD9 .short -9908 218 0182 6DC9 .short -13971 219 0184 0EF9 .short -1778 220 0186 2FE9 .short -5841 221 0188 C899 .short -26168 222 018a E989 .short -30231 223 018c 8AB9 .short -18038 224 018e ABA9 .short -22101 225 0190 4458 .short 22596 226 0192 6548 .short 18533 227 0194 0678 .short 30726 228 0196 2768 .short 26663 229 0198 C018 .short 6336 230 019a E108 .short 2273 ARM GAS C:\Users\zl835\AppData\Local\Temp\cco7lAgg.s page 5 231 019c 8238 .short 14466 232 019e A328 .short 10403 233 01a0 7DCB .short -13443 234 01a2 5CDB .short -9380 235 01a4 3FEB .short -5313 236 01a6 1EFB .short -1250 237 01a8 F98B .short -29703 238 01aa D89B .short -25640 239 01ac BBAB .short -21573 240 01ae 9ABB .short -17510 241 01b0 754A .short 19061 242 01b2 545A .short 23124 243 01b4 376A .short 27191 244 01b6 167A .short 31254 245 01b8 F10A .short 2801 246 01ba D01A .short 6864 247 01bc B32A .short 10931 248 01be 923A .short 14994 249 01c0 2EFD .short -722 250 01c2 0FED .short -4849 251 01c4 6CDD .short -8852 252 01c6 4DCD .short -12979 253 01c8 AABD .short -16982 254 01ca 8BAD .short -21109 255 01cc E89D .short -25112 256 01ce C98D .short -29239 257 01d0 267C .short 31782 258 01d2 076C .short 27655 259 01d4 645C .short 23652 260 01d6 454C .short 19525 261 01d8 A23C .short 15522 262 01da 832C .short 11395 263 01dc E01C .short 7392 264 01de C10C .short 3265 265 01e0 1FEF .short -4321 266 01e2 3EFF .short -194 267 01e4 5DCF .short -12451 268 01e6 7CDF .short -8324 269 01e8 9BAF .short -20581 270 01ea BABF .short -16454 271 01ec D98F .short -28711 272 01ee F89F .short -24584 273 01f0 176E .short 28183 274 01f2 367E .short 32310 275 01f4 554E .short 20053 276 01f6 745E .short 24180 277 01f8 932E .short 11923 278 01fa B23E .short 16050 279 01fc D10E .short 3793 280 01fe F01E .short 7920 281 .section .text.crc_ccitt,"ax",%progbits 282 .align 1 283 .global crc_ccitt 284 .syntax unified 285 .thumb 286 .thumb_func 288 crc_ccitt: ARM GAS C:\Users\zl835\AppData\Local\Temp\cco7lAgg.s page 6 289 .LFB130: 290 .file 1 "user_src/soft_crc.c" 1:user_src/soft_crc.c **** #include "soft_crc.h" 2:user_src/soft_crc.c **** #include "stm32f3xx_hal.h" 3:user_src/soft_crc.c **** //32λ����� 4:user_src/soft_crc.c **** const unsigned short ccitt_table[256] = {0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 5:user_src/soft_crc.c **** 0x50A5, 0x60C6, 0x70E7, 0x8108, 0x9129, 0xA14A, 0xB16B, 0xC18C, 0xD1AD, 0xE1CE, 6:user_src/soft_crc.c **** 0xF1EF, 0x1231, 0x0210, 0x3273, 0x2252, 0x52B5, 0x4294, 0x72F7, 0x62D6, 0x9339, 7:user_src/soft_crc.c **** 0x8318, 0xB37B, 0xA35A, 0xD3BD, 0xC39C, 0xF3FF, 0xE3DE, 0x2462, 0x3443, 0x0420, 8:user_src/soft_crc.c **** 0x1401, 0x64E6, 0x74C7, 0x44A4, 0x5485, 0xA56A, 0xB54B, 0x8528, 0x9509, 0xE5EE, 9:user_src/soft_crc.c **** 0xF5CF, 0xC5AC, 0xD58D, 0x3653, 0x2672, 0x1611, 0x0630, 0x76D7, 0x66F6, 0x5695, 10:user_src/soft_crc.c **** 0x46B4, 0xB75B, 0xA77A, 0x9719, 0x8738, 0xF7DF, 0xE7FE, 0xD79D, 0xC7BC, 0x48C4, 11:user_src/soft_crc.c **** 0x58E5, 0x6886, 0x78A7, 0x0840, 0x1861, 0x2802, 0x3823, 0xC9CC, 0xD9ED, 0xE98E, 12:user_src/soft_crc.c **** 0xF9AF, 0x8948, 0x9969, 0xA90A, 0xB92B, 0x5AF5, 0x4AD4, 0x7AB7, 0x6A96, 0x1A71, 13:user_src/soft_crc.c **** 0x0A50, 0x3A33, 0x2A12, 0xDBFD, 0xCBDC, 0xFBBF, 0xEB9E, 0x9B79, 0x8B58, 0xBB3B, 14:user_src/soft_crc.c **** 0xAB1A, 0x6CA6, 0x7C87, 0x4CE4, 0x5CC5, 0x2C22, 0x3C03, 0x0C60, 0x1C41, 0xEDAE, 15:user_src/soft_crc.c **** 0xFD8F, 0xCDEC, 0xDDCD, 0xAD2A, 0xBD0B, 0x8D68, 0x9D49, 0x7E97, 0x6EB6, 0x5ED5, 16:user_src/soft_crc.c **** 0x4EF4, 0x3E13, 0x2E32, 0x1E51, 0x0E70, 0xFF9F, 0xEFBE, 0xDFDD, 0xCFFC, 0xBF1B, 17:user_src/soft_crc.c **** 0xAF3A, 0x9F59, 0x8F78, 0x9188, 0x81A9, 0xB1CA, 0xA1EB, 0xD10C, 0xC12D, 0xF14E, 18:user_src/soft_crc.c **** 0xE16F, 0x1080, 0x00A1, 0x30C2, 0x20E3, 0x5004, 0x4025, 0x7046, 0x6067, 0x83B9, 19:user_src/soft_crc.c **** 0x9398, 0xA3FB, 0xB3DA, 0xC33D, 0xD31C, 0xE37F, 0xF35E, 0x02B1, 0x1290, 0x22F3, 20:user_src/soft_crc.c **** 0x32D2, 0x4235, 0x5214, 0x6277, 0x7256, 0xB5EA, 0xA5CB, 0x95A8, 0x8589, 0xF56E, 21:user_src/soft_crc.c **** 0xE54F, 0xD52C, 0xC50D, 0x34E2, 0x24C3, 0x14A0, 0x0481, 0x7466, 0x6447, 0x5424, 22:user_src/soft_crc.c **** 0x4405, 0xA7DB, 0xB7FA, 0x8799, 0x97B8, 0xE75F, 0xF77E, 0xC71D, 0xD73C, 0x26D3, 23:user_src/soft_crc.c **** 0x36F2, 0x0691, 0x16B0, 0x6657, 0x7676, 0x4615, 0x5634, 0xD94C, 0xC96D, 0xF90E, 24:user_src/soft_crc.c **** 0xE92F, 0x99C8, 0x89E9, 0xB98A, 0xA9AB, 0x5844, 0x4865, 0x7806, 0x6827, 0x18C0, 25:user_src/soft_crc.c **** 0x08E1, 0x3882, 0x28A3, 0xCB7D, 0xDB5C, 0xEB3F, 0xFB1E, 0x8BF9, 0x9BD8, 0xABBB, 26:user_src/soft_crc.c **** 0xBB9A, 0x4A75, 0x5A54, 0x6A37, 0x7A16, 0x0AF1, 0x1AD0, 0x2AB3, 0x3A92, 0xFD2E, 27:user_src/soft_crc.c **** 0xED0F, 0xDD6C, 0xCD4D, 0xBDAA, 0xAD8B, 0x9DE8, 0x8DC9, 0x7C26, 0x6C07, 0x5C64, 28:user_src/soft_crc.c **** 0x4C45, 0x3CA2, 0x2C83, 0x1CE0, 0x0CC1, 0xEF1F, 0xFF3E, 0xCF5D, 0xDF7C, 0xAF9B, 29:user_src/soft_crc.c **** 0xBFBA, 0x8FD9, 0x9FF8, 0x6E17, 0x7E36, 0x4E55, 0x5E74, 0x2E93, 0x3EB2, 0x0ED1, 30:user_src/soft_crc.c **** 0x1EF0}; 31:user_src/soft_crc.c **** 32:user_src/soft_crc.c **** unsigned int crc_ccitt(unsigned char *q, int len) 33:user_src/soft_crc.c **** { 291 .loc 1 33 1 292 .cfi_startproc 293 @ args = 0, pretend = 0, frame = 16 294 @ frame_needed = 1, uses_anonymous_args = 0 295 @ link register save eliminated. 296 0000 80B4 push {r7} 297 .LCFI0: 298 .cfi_def_cfa_offset 4 299 .cfi_offset 7, -4 300 0002 85B0 sub sp, sp, #20 301 .LCFI1: 302 .cfi_def_cfa_offset 24 303 0004 00AF add r7, sp, #0 304 .LCFI2: 305 .cfi_def_cfa_register 7 306 0006 7860 str r0, [r7, #4] 307 0008 3960 str r1, [r7] 34:user_src/soft_crc.c **** unsigned int crc = 0; 308 .loc 1 34 15 309 000a 0023 movs r3, #0 310 000c FB60 str r3, [r7, #12] 35:user_src/soft_crc.c **** while (len-- > 0) ARM GAS C:\Users\zl835\AppData\Local\Temp\cco7lAgg.s page 7 311 .loc 1 35 8 312 000e 0FE0 b .L2 313 .L3: 36:user_src/soft_crc.c **** crc = ccitt_table[(crc >> 8 ^ *q++) & 0xff] ^ (crc << 8); 314 .loc 1 36 26 315 0010 FB68 ldr r3, [r7, #12] 316 0012 1A0A lsrs r2, r3, #8 317 .loc 1 36 35 318 0014 7B68 ldr r3, [r7, #4] 319 0016 591C adds r1, r3, #1 320 0018 7960 str r1, [r7, #4] 321 .loc 1 36 33 322 001a 1B78 ldrb r3, [r3] @ zero_extendqisi2 323 .loc 1 36 31 324 001c 5340 eors r3, r3, r2 325 .loc 1 36 39 326 001e DBB2 uxtb r3, r3 327 .loc 1 36 20 328 0020 0A4A ldr r2, .L5 329 0022 32F81330 ldrh r3, [r2, r3, lsl #1] 330 0026 1A46 mov r2, r3 331 .loc 1 36 54 332 0028 FB68 ldr r3, [r7, #12] 333 002a 1B02 lsls r3, r3, #8 334 .loc 1 36 7 335 002c 5340 eors r3, r3, r2 336 002e FB60 str r3, [r7, #12] 337 .L2: 35:user_src/soft_crc.c **** while (len-- > 0) 338 .loc 1 35 12 339 0030 3B68 ldr r3, [r7] 340 0032 5A1E subs r2, r3, #1 341 0034 3A60 str r2, [r7] 35:user_src/soft_crc.c **** while (len-- > 0) 342 .loc 1 35 8 343 0036 002B cmp r3, #0 344 0038 EADC bgt .L3 37:user_src/soft_crc.c **** return ~crc; 345 .loc 1 37 9 346 003a FB68 ldr r3, [r7, #12] 347 003c DB43 mvns r3, r3 38:user_src/soft_crc.c **** } 348 .loc 1 38 1 349 003e 1846 mov r0, r3 350 0040 1437 adds r7, r7, #20 351 .LCFI3: 352 .cfi_def_cfa_offset 4 353 0042 BD46 mov sp, r7 354 .LCFI4: 355 .cfi_def_cfa_register 13 356 @ sp needed 357 0044 5DF8047B ldr r7, [sp], #4 358 .LCFI5: 359 .cfi_restore 7 360 .cfi_def_cfa_offset 0 361 0048 7047 bx lr 362 .L6: ARM GAS C:\Users\zl835\AppData\Local\Temp\cco7lAgg.s page 8 363 004a 00BF .align 2 364 .L5: 365 004c 00000000 .word ccitt_table 366 .cfi_endproc 367 .LFE130: 369 .section .text.crc16_ccitt,"ax",%progbits 370 .align 1 371 .global crc16_ccitt 372 .syntax unified 373 .thumb 374 .thumb_func 376 crc16_ccitt: 377 .LFB131: 39:user_src/soft_crc.c **** 40:user_src/soft_crc.c **** unsigned short crc16_ccitt(unsigned char *buf, unsigned int len) 41:user_src/soft_crc.c **** { 378 .loc 1 41 1 379 .cfi_startproc 380 @ args = 0, pretend = 0, frame = 16 381 @ frame_needed = 1, uses_anonymous_args = 0 382 @ link register save eliminated. 383 0000 80B4 push {r7} 384 .LCFI6: 385 .cfi_def_cfa_offset 4 386 .cfi_offset 7, -4 387 0002 85B0 sub sp, sp, #20 388 .LCFI7: 389 .cfi_def_cfa_offset 24 390 0004 00AF add r7, sp, #0 391 .LCFI8: 392 .cfi_def_cfa_register 7 393 0006 7860 str r0, [r7, #4] 394 0008 3960 str r1, [r7] 42:user_src/soft_crc.c **** unsigned int counter; 43:user_src/soft_crc.c **** unsigned short crc = 0; 395 .loc 1 43 20 396 000a 0023 movs r3, #0 397 000c 7B81 strh r3, [r7, #10] @ movhi 44:user_src/soft_crc.c **** for( counter = 0; counter < len; counter++) 398 .loc 1 44 18 399 000e 0023 movs r3, #0 400 0010 FB60 str r3, [r7, #12] 401 .loc 1 44 5 402 0012 16E0 b .L8 403 .L9: 45:user_src/soft_crc.c **** crc = (crc<<8) ^ ccitt_table[((crc>>8) ^ *(unsigned char*)buf++)&0x00FF]; 404 .loc 1 45 19 discriminator 3 405 0014 7B89 ldrh r3, [r7, #10] 406 0016 1B02 lsls r3, r3, #8 407 .loc 1 45 24 discriminator 3 408 0018 1AB2 sxth r2, r3 409 .loc 1 45 43 discriminator 3 410 001a 7B89 ldrh r3, [r7, #10] 411 001c 1B0A lsrs r3, r3, #8 412 001e 9BB2 uxth r3, r3 413 0020 1846 mov r0, r3 414 .loc 1 45 51 discriminator 3 ARM GAS C:\Users\zl835\AppData\Local\Temp\cco7lAgg.s page 9 415 0022 7B68 ldr r3, [r7, #4] 416 0024 591C adds r1, r3, #1 417 0026 7960 str r1, [r7, #4] 418 .loc 1 45 50 discriminator 3 419 0028 1B78 ldrb r3, [r3] @ zero_extendqisi2 420 .loc 1 45 48 discriminator 3 421 002a 4340 eors r3, r3, r0 422 .loc 1 45 73 discriminator 3 423 002c DBB2 uxtb r3, r3 424 .loc 1 45 37 discriminator 3 425 002e 0A49 ldr r1, .L11 426 0030 31F81330 ldrh r3, [r1, r3, lsl #1] 427 0034 1BB2 sxth r3, r3 428 .loc 1 45 24 discriminator 3 429 0036 5340 eors r3, r3, r2 430 0038 1BB2 sxth r3, r3 431 .loc 1 45 13 discriminator 3 432 003a 7B81 strh r3, [r7, #10] @ movhi 44:user_src/soft_crc.c **** for( counter = 0; counter < len; counter++) 433 .loc 1 44 45 discriminator 3 434 003c FB68 ldr r3, [r7, #12] 435 003e 0133 adds r3, r3, #1 436 0040 FB60 str r3, [r7, #12] 437 .L8: 44:user_src/soft_crc.c **** for( counter = 0; counter < len; counter++) 438 .loc 1 44 5 discriminator 1 439 0042 FA68 ldr r2, [r7, #12] 440 0044 3B68 ldr r3, [r7] 441 0046 9A42 cmp r2, r3 442 0048 E4D3 bcc .L9 46:user_src/soft_crc.c **** 47:user_src/soft_crc.c **** return crc; 443 .loc 1 47 12 444 004a 7B89 ldrh r3, [r7, #10] 48:user_src/soft_crc.c **** } 445 .loc 1 48 1 446 004c 1846 mov r0, r3 447 004e 1437 adds r7, r7, #20 448 .LCFI9: 449 .cfi_def_cfa_offset 4 450 0050 BD46 mov sp, r7 451 .LCFI10: 452 .cfi_def_cfa_register 13 453 @ sp needed 454 0052 5DF8047B ldr r7, [sp], #4 455 .LCFI11: 456 .cfi_restore 7 457 .cfi_def_cfa_offset 0 458 0056 7047 bx lr 459 .L12: 460 .align 2 461 .L11: 462 0058 00000000 .word ccitt_table 463 .cfi_endproc 464 .LFE131: 466 .global auchCRCHi 467 .section .rodata.auchCRCHi,"a" ARM GAS C:\Users\zl835\AppData\Local\Temp\cco7lAgg.s page 10 468 .align 2 471 auchCRCHi: 472 0000 00C18140 .ascii "\000\301\201@\001\300\200A\001\300\200A\000\301\201" 472 01C08041 472 01C08041 472 00C181 473 000f 4001C080 .ascii "@\001\300\200A\000\301\201@\000\301\201@\001\300\200" 473 4100C181 473 4000C181 473 4001C080 474 001f 4101C080 .ascii "A\001\300\200A\000\301\201@\000\301\201@\001\300\200" 474 4100C181 474 4000C181 474 4001C080 475 002f 4100C181 .ascii "A\000\301\201@\001\300\200A\001\300\200A\000\301\201" 475 4001C080 475 4101C080 475 4100C181 476 003f 4001C080 .ascii "@\001\300\200A\000\301\201@\000\301\201@\001\300\200" 476 4100C181 476 4000C181 476 4001C080 477 004f 4100C181 .ascii "A\000\301\201@\001\300\200A\001\300\200A\000\301\201" 477 4001C080 477 4101C080 477 4100C181 478 005f 4000C181 .ascii "@\000\301\201@\001\300\200A\001\300\200A\000\301\201" 478 4001C080 478 4101C080 478 4100C181 479 006f 4001C080 .ascii "@\001\300\200A\000\301\201@\000\301\201@\001\300\200" 479 4100C181 479 4000C181 479 4001C080 480 007f 4101C080 .ascii "A\001\300\200A\000\301\201@\000\301\201@\001\300\200" 480 4100C181 480 4000C181 480 4001C080 481 008f 4100C181 .ascii "A\000\301\201@\001\300\200A\001\300\200A\000\301\201" 481 4001C080 481 4101C080 481 4100C181 482 009f 4000C181 .ascii "@\000\301\201@\001\300\200A\001\300\200A\000\301\201" 482 4001C080 482 4101C080 482 4100C181 483 00af 4001C080 .ascii "@\001\300\200A\000\301\201@\000\301\201@\001\300\200" 483 4100C181 483 4000C181 483 4001C080 484 00bf 4100C181 .ascii "A\000\301\201@\001\300\200A\001\300\200A\000\301\201" 484 4001C080 484 4101C080 484 4100C181 485 00cf 4001C080 .ascii "@\001\300\200A\000\301\201@\000\301\201@\001\300\200" 485 4100C181 485 4000C181 ARM GAS C:\Users\zl835\AppData\Local\Temp\cco7lAgg.s page 11 485 4001C080 486 00df 4101C080 .ascii "A\001\300\200A\000\301\201@\000\301\201@\001\300\200" 486 4100C181 486 4000C181 486 4001C080 487 00ef 4100C181 .ascii "A\000\301\201@\001\300\200A\001\300\200A\000\301\201" 487 4001C080 487 4101C080 487 4100C181 488 00ff 40 .ascii "@" 489 .global auchCRCLo 490 .section .rodata.auchCRCLo,"a" 491 .align 2 494 auchCRCLo: 495 0000 00C0C101 .ascii "\000\300\301\001\303\003\002\302\306\006\007\307\005" 495 C30302C2 495 C60607C7 495 05 496 000d C5C404CC .ascii "\305\304\004\314\014\015\315\017\317\316\016\012\312" 496 0C0DCD0F 496 CFCE0E0A 496 CA 497 001a CB0BC909 .ascii "\313\013\311\011\010\310\330\030\031\331\033\333\332" 497 08C8D818 497 19D91BDB 497 DA 498 0027 1A1EDEDF .ascii "\032\036\336\337\037\335\035\034\334\024\324\325\025" 498 1FDD1D1C 498 DC14D4D5 498 15 499 0034 D71716D6 .ascii "\327\027\026\326\322\022\023\323\021\321\320\020\360" 499 D21213D3 499 11D1D010 499 F0 500 0041 3031F133 .ascii "01\3613\363\36226\366\3677\36554\364<\374\375=\377?" 500 F3F23236 500 F6F737F5 500 3534F43C 500 FCFD3DFF 501 0056 3EFEFA3A .ascii ">\376\372:;\3739\371\3708(\350\351)\353+*\352\356./" 501 3BFB39F9 501 F83828E8 501 E929EB2B 501 2AEAEE2E 502 006b EF2DEDEC .ascii "\357-\355\354,\344$%\345'\347\346&\"\342\343#\341! " 502 2CE42425 502 E527E7E6 502 2622E2E3 502 23E12120 503 007f E0A06061 .ascii "\340\240`a\241c\243\242bf\246\247g\245ed\244l\254\255" 503 A163A3A2 503 6266A6A7 503 67A56564 503 A46CACAD 504 0093 6DAF6F6E .ascii "m\257on\256\252jk\253i\251\250hx\270\271y\273{z\272" 504 AEAA6A6B 504 AB69A9A8 ARM GAS C:\Users\zl835\AppData\Local\Temp\cco7lAgg.s page 12 504 6878B8B9 504 79BB7B7A 505 00a8 BE7E7FBF .ascii "\276~\177\277}\275\274|\264tu\265w\267\266vr\262\263" 505 7DBDBC7C 505 B47475B5 505 77B7B676 505 72B2B3 506 00bb 73B17170 .ascii "s\261qp\260P\220\221Q\223SR\222\226VW\227U\225\224T" 506 B0509091 506 51935352 506 92965657 506 97559594 507 00d0 9C5C5D9D .ascii "\234\\]\235_\237\236^Z\232\233[\231YX\230\210HI\211" 507 5F9F9E5E 507 5A9A9B5B 507 99595898 507 88484989 508 00e4 4B8B8A4A .ascii "K\213\212JN\216\217O\215ML\214D\204\205E\207GF\206\202" 508 4E8E8F4F 508 8D4D4C8C 508 44848545 508 87474686 509 00f9 42438341 .ascii "BC\203A\201\200@" 509 818040 510 .section .text.Get_Crc16,"ax",%progbits 511 .align 1 512 .global Get_Crc16 513 .syntax unified 514 .thumb 515 .thumb_func 517 Get_Crc16: 518 .LFB132: 49:user_src/soft_crc.c **** 50:user_src/soft_crc.c **** //16λ����� 51:user_src/soft_crc.c **** //��λ 52:user_src/soft_crc.c **** const uint8_t auchCRCHi[] = { 53:user_src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 54:user_src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 55:user_src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 56:user_src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 57:user_src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 58:user_src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 59:user_src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 60:user_src/soft_crc.c **** 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 61:user_src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 62:user_src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 63:user_src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 64:user_src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 65:user_src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 66:user_src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 67:user_src/soft_crc.c **** 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 68:user_src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 69:user_src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 70:user_src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 71:user_src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 72:user_src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 73:user_src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, ARM GAS C:\Users\zl835\AppData\Local\Temp\cco7lAgg.s page 13 74:user_src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40}; 75:user_src/soft_crc.c **** //��λ 76:user_src/soft_crc.c **** const uint8_t auchCRCLo[] = { 77:user_src/soft_crc.c **** 0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7, 78:user_src/soft_crc.c **** 0x05, 0xC5, 0xC4, 0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E, 79:user_src/soft_crc.c **** 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09, 0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 80:user_src/soft_crc.c **** 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD, 0x1D, 0x1C, 0xDC, 81:user_src/soft_crc.c **** 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3, 82:user_src/soft_crc.c **** 0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32, 83:user_src/soft_crc.c **** 0x36, 0xF6, 0xF7, 0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, 0xFC, 0xFD, 0x3D, 84:user_src/soft_crc.c **** 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A, 0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 85:user_src/soft_crc.c **** 0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A, 0xEA, 0xEE, 0x2E, 0x2F, 0xEF, 86:user_src/soft_crc.c **** 0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26, 87:user_src/soft_crc.c **** 0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, 0x61, 0xA1, 88:user_src/soft_crc.c **** 0x63, 0xA3, 0xA2, 0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4, 89:user_src/soft_crc.c **** 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F, 0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 90:user_src/soft_crc.c **** 0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9, 0x79, 0xBB, 0x7B, 0x7A, 0xBA, 91:user_src/soft_crc.c **** 0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5, 92:user_src/soft_crc.c **** 0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0, 93:user_src/soft_crc.c **** 0x50, 0x90, 0x91, 0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97, 94:user_src/soft_crc.c **** 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C, 0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 95:user_src/soft_crc.c **** 0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98, 0x88, 0x48, 0x49, 0x89, 96:user_src/soft_crc.c **** 0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C, 97:user_src/soft_crc.c **** 0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83, 98:user_src/soft_crc.c **** 0x41, 0x81, 0x80, 0x40}; 99:user_src/soft_crc.c **** 100:user_src/soft_crc.c **** //��ȡУ��ֵ 101:user_src/soft_crc.c **** uint16_t Get_Crc16(uint8_t *puchMsg, uint16_t usDataLen) 102:user_src/soft_crc.c **** { 519 .loc 1 102 1 520 .cfi_startproc 521 @ args = 0, pretend = 0, frame = 16 522 @ frame_needed = 1, uses_anonymous_args = 0 523 @ link register save eliminated. 524 0000 80B4 push {r7} 525 .LCFI12: 526 .cfi_def_cfa_offset 4 527 .cfi_offset 7, -4 528 0002 85B0 sub sp, sp, #20 529 .LCFI13: 530 .cfi_def_cfa_offset 24 531 0004 00AF add r7, sp, #0 532 .LCFI14: 533 .cfi_def_cfa_register 7 534 0006 7860 str r0, [r7, #4] 535 0008 0B46 mov r3, r1 536 000a 7B80 strh r3, [r7, #2] @ movhi 103:user_src/soft_crc.c **** uint8_t uchCRCHi = 0xFF; //��CRC 537 .loc 1 103 13 538 000c FF23 movs r3, #255 539 000e FB73 strb r3, [r7, #15] 104:user_src/soft_crc.c **** uint8_t uchCRCLo = 0xFF; //��CRC 540 .loc 1 104 13 541 0010 FF23 movs r3, #255 542 0012 BB73 strb r3, [r7, #14] 105:user_src/soft_crc.c **** uint32_t uIndex; // ѭ������ 106:user_src/soft_crc.c **** while (usDataLen--) //��Ϣ������ ARM GAS C:\Users\zl835\AppData\Local\Temp\cco7lAgg.s page 14 543 .loc 1 106 11 544 0014 13E0 b .L14 545 .L15: 107:user_src/soft_crc.c **** { 108:user_src/soft_crc.c **** uIndex = uchCRCLo ^ *puchMsg++; //����CRC 546 .loc 1 108 37 547 0016 7B68 ldr r3, [r7, #4] 548 0018 5A1C adds r2, r3, #1 549 001a 7A60 str r2, [r7, #4] 550 .loc 1 108 29 551 001c 1A78 ldrb r2, [r3] @ zero_extendqisi2 552 .loc 1 108 27 553 001e BB7B ldrb r3, [r7, #14] 554 0020 5340 eors r3, r3, r2 555 0022 DBB2 uxtb r3, r3 556 .loc 1 108 16 557 0024 BB60 str r3, [r7, #8] 109:user_src/soft_crc.c **** uchCRCLo = uchCRCHi ^ auchCRCHi[uIndex]; 558 .loc 1 109 40 559 0026 0F4A ldr r2, .L17 560 0028 BB68 ldr r3, [r7, #8] 561 002a 1344 add r3, r3, r2 562 002c 1A78 ldrb r2, [r3] @ zero_extendqisi2 563 .loc 1 109 18 564 002e FB7B ldrb r3, [r7, #15] 565 0030 5340 eors r3, r3, r2 566 0032 BB73 strb r3, [r7, #14] 110:user_src/soft_crc.c **** uchCRCHi = auchCRCLo[uIndex]; 567 .loc 1 110 18 568 0034 0C4A ldr r2, .L17+4 569 0036 BB68 ldr r3, [r7, #8] 570 0038 1344 add r3, r3, r2 571 003a 1B78 ldrb r3, [r3] 572 003c FB73 strb r3, [r7, #15] 573 .L14: 106:user_src/soft_crc.c **** { 574 .loc 1 106 21 575 003e 7B88 ldrh r3, [r7, #2] 576 0040 5A1E subs r2, r3, #1 577 0042 7A80 strh r2, [r7, #2] @ movhi 106:user_src/soft_crc.c **** { 578 .loc 1 106 11 579 0044 002B cmp r3, #0 580 0046 E6D1 bne .L15 111:user_src/soft_crc.c **** } 112:user_src/soft_crc.c **** return (uchCRCHi << 8 | uchCRCLo); 581 .loc 1 112 22 582 0048 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2 583 004a 1B02 lsls r3, r3, #8 584 .loc 1 112 27 585 004c 1AB2 sxth r2, r3 586 004e BB7B ldrb r3, [r7, #14] @ zero_extendqisi2 587 0050 1BB2 sxth r3, r3 588 0052 1343 orrs r3, r3, r2 589 0054 1BB2 sxth r3, r3 590 0056 9BB2 uxth r3, r3 113:user_src/soft_crc.c **** } ARM GAS C:\Users\zl835\AppData\Local\Temp\cco7lAgg.s page 15 591 .loc 1 113 1 592 0058 1846 mov r0, r3 593 005a 1437 adds r7, r7, #20 594 .LCFI15: 595 .cfi_def_cfa_offset 4 596 005c BD46 mov sp, r7 597 .LCFI16: 598 .cfi_def_cfa_register 13 599 @ sp needed 600 005e 5DF8047B ldr r7, [sp], #4 601 .LCFI17: 602 .cfi_restore 7 603 .cfi_def_cfa_offset 0 604 0062 7047 bx lr 605 .L18: 606 .align 2 607 .L17: 608 0064 00000000 .word auchCRCHi 609 0068 00000000 .word auchCRCLo 610 .cfi_endproc 611 .LFE132: 613 .section .text.crcAddByte,"ax",%progbits 614 .align 1 615 .global crcAddByte 616 .syntax unified 617 .thumb 618 .thumb_func 620 crcAddByte: 621 .LFB133: 114:user_src/soft_crc.c **** 115:user_src/soft_crc.c **** 116:user_src/soft_crc.c **** uint16_t crcAddByte( uint16_t crc_val, uint8_t byte ) 117:user_src/soft_crc.c **** { 622 .loc 1 117 1 623 .cfi_startproc 624 @ args = 0, pretend = 0, frame = 16 625 @ frame_needed = 1, uses_anonymous_args = 0 626 @ link register save eliminated. 627 0000 80B4 push {r7} 628 .LCFI18: 629 .cfi_def_cfa_offset 4 630 .cfi_offset 7, -4 631 0002 85B0 sub sp, sp, #20 632 .LCFI19: 633 .cfi_def_cfa_offset 24 634 0004 00AF add r7, sp, #0 635 .LCFI20: 636 .cfi_def_cfa_register 7 637 0006 0346 mov r3, r0 638 0008 0A46 mov r2, r1 639 000a FB80 strh r3, [r7, #6] @ movhi 640 000c 1346 mov r3, r2 641 000e 7B71 strb r3, [r7, #5] 118:user_src/soft_crc.c **** crc_val ^= ( uint16_t )( ( uint16_t )( byte ) << 8 ); 642 .loc 1 118 16 643 0010 7B79 ldrb r3, [r7, #5] @ zero_extendqisi2 644 0012 9BB2 uxth r3, r3 ARM GAS C:\Users\zl835\AppData\Local\Temp\cco7lAgg.s page 16 645 0014 1B02 lsls r3, r3, #8 646 0016 9AB2 uxth r2, r3 647 .loc 1 118 13 648 0018 FB88 ldrh r3, [r7, #6] @ movhi 649 001a 5340 eors r3, r3, r2 650 001c FB80 strh r3, [r7, #6] @ movhi 651 .LBB2: 119:user_src/soft_crc.c **** for ( int j = 0; j < 8; j++ ) 652 .loc 1 119 15 653 001e 0023 movs r3, #0 654 0020 FB60 str r3, [r7, #12] 655 .loc 1 119 5 656 0022 12E0 b .L20 657 .L23: 120:user_src/soft_crc.c **** { 121:user_src/soft_crc.c **** if ( crc_val & 0x8000U ) 658 .loc 1 121 14 659 0024 B7F90630 ldrsh r3, [r7, #6] 660 .loc 1 121 12 661 0028 002B cmp r3, #0 662 002a 08DA bge .L21 122:user_src/soft_crc.c **** { 123:user_src/soft_crc.c **** crc_val = ( uint16_t )( ( uint16_t )( crc_val << 1 ) ^ 0x1021U ); 663 .loc 1 123 37 664 002c FB88 ldrh r3, [r7, #6] @ movhi 665 002e 5B00 lsls r3, r3, #1 666 0030 9BB2 uxth r3, r3 667 .loc 1 123 21 668 0032 83F48153 eor r3, r3, #4128 669 0036 83F00103 eor r3, r3, #1 670 003a FB80 strh r3, [r7, #6] @ movhi 671 003c 02E0 b .L22 672 .L21: 124:user_src/soft_crc.c **** } 125:user_src/soft_crc.c **** else 126:user_src/soft_crc.c **** { 127:user_src/soft_crc.c **** crc_val = ( uint16_t )( crc_val << 1 ); 673 .loc 1 127 21 674 003e FB88 ldrh r3, [r7, #6] @ movhi 675 0040 5B00 lsls r3, r3, #1 676 0042 FB80 strh r3, [r7, #6] @ movhi 677 .L22: 119:user_src/soft_crc.c **** { 678 .loc 1 119 30 discriminator 2 679 0044 FB68 ldr r3, [r7, #12] 680 0046 0133 adds r3, r3, #1 681 0048 FB60 str r3, [r7, #12] 682 .L20: 119:user_src/soft_crc.c **** { 683 .loc 1 119 5 discriminator 1 684 004a FB68 ldr r3, [r7, #12] 685 004c 072B cmp r3, #7 686 004e E9DD ble .L23 687 .LBE2: 128:user_src/soft_crc.c **** } 129:user_src/soft_crc.c **** } 130:user_src/soft_crc.c **** return crc_val; ARM GAS C:\Users\zl835\AppData\Local\Temp\cco7lAgg.s page 17 688 .loc 1 130 12 689 0050 FB88 ldrh r3, [r7, #6] 131:user_src/soft_crc.c **** } 690 .loc 1 131 1 691 0052 1846 mov r0, r3 692 0054 1437 adds r7, r7, #20 693 .LCFI21: 694 .cfi_def_cfa_offset 4 695 0056 BD46 mov sp, r7 696 .LCFI22: 697 .cfi_def_cfa_register 13 698 @ sp needed 699 0058 5DF8047B ldr r7, [sp], #4 700 .LCFI23: 701 .cfi_restore 7 702 .cfi_def_cfa_offset 0 703 005c 7047 bx lr 704 .cfi_endproc 705 .LFE133: 707 .section .text.crcAddSignature,"ax",%progbits 708 .align 1 709 .global crcAddSignature 710 .syntax unified 711 .thumb 712 .thumb_func 714 crcAddSignature: 715 .LFB134: 132:user_src/soft_crc.c **** /* 133:user_src/soft_crc.c **** ���� 64Bit ����ǩ�� 134:user_src/soft_crc.c **** */ 135:user_src/soft_crc.c **** uint16_t crcAddSignature( uint16_t crc_val, uint64_t data_type_signature ) 136:user_src/soft_crc.c **** { 716 .loc 1 136 1 717 .cfi_startproc 718 @ args = 0, pretend = 0, frame = 24 719 @ frame_needed = 1, uses_anonymous_args = 0 720 0000 F0B5 push {r4, r5, r6, r7, lr} 721 .LCFI24: 722 .cfi_def_cfa_offset 20 723 .cfi_offset 4, -20 724 .cfi_offset 5, -16 725 .cfi_offset 6, -12 726 .cfi_offset 7, -8 727 .cfi_offset 14, -4 728 0002 87B0 sub sp, sp, #28 729 .LCFI25: 730 .cfi_def_cfa_offset 48 731 0004 00AF add r7, sp, #0 732 .LCFI26: 733 .cfi_def_cfa_register 7 734 0006 0146 mov r1, r0 735 0008 C7E90023 strd r2, [r7] 736 000c 0B46 mov r3, r1 @ movhi 737 000e FB81 strh r3, [r7, #14] @ movhi 738 .LBB3: 137:user_src/soft_crc.c **** for ( int shift_val = 0; shift_val < 64; shift_val += 8 ) 739 .loc 1 137 15 ARM GAS C:\Users\zl835\AppData\Local\Temp\cco7lAgg.s page 18 740 0010 0023 movs r3, #0 741 0012 7B61 str r3, [r7, #20] 742 .loc 1 137 5 743 0014 1BE0 b .L26 744 .L27: 138:user_src/soft_crc.c **** { 139:user_src/soft_crc.c **** crc_val = crcAddByte( crc_val, ( uint8_t )( data_type_signature >> shift_val ) ); 745 .loc 1 139 73 discriminator 3 746 0016 D7E90023 ldrd r2, [r7] 747 001a 7969 ldr r1, [r7, #20] 748 001c C1F12006 rsb r6, r1, #32 749 0020 A1F12000 sub r0, r1, #32 750 0024 22FA01F4 lsr r4, r2, r1 751 0028 03FA06F6 lsl r6, r3, r6 752 002c 3443 orrs r4, r4, r6 753 002e 23FA00F0 lsr r0, r3, r0 754 0032 0443 orrs r4, r4, r0 755 0034 23FA01F5 lsr r5, r3, r1 756 .loc 1 139 19 discriminator 3 757 0038 E2B2 uxtb r2, r4 758 003a FB89 ldrh r3, [r7, #14] 759 003c 1146 mov r1, r2 760 003e 1846 mov r0, r3 761 0040 FFF7FEFF bl crcAddByte 762 0044 0346 mov r3, r0 763 0046 FB81 strh r3, [r7, #14] @ movhi 137:user_src/soft_crc.c **** for ( int shift_val = 0; shift_val < 64; shift_val += 8 ) 764 .loc 1 137 56 discriminator 3 765 0048 7B69 ldr r3, [r7, #20] 766 004a 0833 adds r3, r3, #8 767 004c 7B61 str r3, [r7, #20] 768 .L26: 137:user_src/soft_crc.c **** for ( int shift_val = 0; shift_val < 64; shift_val += 8 ) 769 .loc 1 137 5 discriminator 1 770 004e 7B69 ldr r3, [r7, #20] 771 0050 3F2B cmp r3, #63 772 0052 E0DD ble .L27 773 .LBE3: 140:user_src/soft_crc.c **** } 141:user_src/soft_crc.c **** return crc_val; 774 .loc 1 141 12 775 0054 FB89 ldrh r3, [r7, #14] 142:user_src/soft_crc.c **** } 776 .loc 1 142 1 777 0056 1846 mov r0, r3 778 0058 1C37 adds r7, r7, #28 779 .LCFI27: 780 .cfi_def_cfa_offset 20 781 005a BD46 mov sp, r7 782 .LCFI28: 783 .cfi_def_cfa_register 13 784 @ sp needed 785 005c F0BD pop {r4, r5, r6, r7, pc} 786 .cfi_endproc 787 .LFE134: 789 .section .text.crcAdd,"ax",%progbits 790 .align 1 ARM GAS C:\Users\zl835\AppData\Local\Temp\cco7lAgg.s page 19 791 .global crcAdd 792 .syntax unified 793 .thumb 794 .thumb_func 796 crcAdd: 797 .LFB135: 143:user_src/soft_crc.c **** 144:user_src/soft_crc.c **** /* 145:user_src/soft_crc.c **** ���� Payload ������ 146:user_src/soft_crc.c **** */ 147:user_src/soft_crc.c **** uint16_t crcAdd( uint16_t crc_val, const uint8_t *bytes, size_t len ) 148:user_src/soft_crc.c **** { 798 .loc 1 148 1 799 .cfi_startproc 800 @ args = 0, pretend = 0, frame = 16 801 @ frame_needed = 1, uses_anonymous_args = 0 802 0000 80B5 push {r7, lr} 803 .LCFI29: 804 .cfi_def_cfa_offset 8 805 .cfi_offset 7, -8 806 .cfi_offset 14, -4 807 0002 84B0 sub sp, sp, #16 808 .LCFI30: 809 .cfi_def_cfa_offset 24 810 0004 00AF add r7, sp, #0 811 .LCFI31: 812 .cfi_def_cfa_register 7 813 0006 0346 mov r3, r0 814 0008 B960 str r1, [r7, #8] 815 000a 7A60 str r2, [r7, #4] 816 000c FB81 strh r3, [r7, #14] @ movhi 149:user_src/soft_crc.c **** while ( len-- ) 817 .loc 1 149 11 818 000e 0AE0 b .L30 819 .L31: 150:user_src/soft_crc.c **** { 151:user_src/soft_crc.c **** crc_val = crcAddByte( crc_val, *bytes++ ); 820 .loc 1 151 46 821 0010 BB68 ldr r3, [r7, #8] 822 0012 5A1C adds r2, r3, #1 823 0014 BA60 str r2, [r7, #8] 824 .loc 1 151 19 825 0016 1A78 ldrb r2, [r3] @ zero_extendqisi2 826 0018 FB89 ldrh r3, [r7, #14] 827 001a 1146 mov r1, r2 828 001c 1846 mov r0, r3 829 001e FFF7FEFF bl crcAddByte 830 0022 0346 mov r3, r0 831 0024 FB81 strh r3, [r7, #14] @ movhi 832 .L30: 149:user_src/soft_crc.c **** while ( len-- ) 833 .loc 1 149 16 834 0026 7B68 ldr r3, [r7, #4] 835 0028 5A1E subs r2, r3, #1 836 002a 7A60 str r2, [r7, #4] 149:user_src/soft_crc.c **** while ( len-- ) 837 .loc 1 149 11 ARM GAS C:\Users\zl835\AppData\Local\Temp\cco7lAgg.s page 20 838 002c 002B cmp r3, #0 839 002e EFD1 bne .L31 152:user_src/soft_crc.c **** } 153:user_src/soft_crc.c **** return crc_val; 840 .loc 1 153 12 841 0030 FB89 ldrh r3, [r7, #14] 154:user_src/soft_crc.c **** } 842 .loc 1 154 1 843 0032 1846 mov r0, r3 844 0034 1037 adds r7, r7, #16 845 .LCFI32: 846 .cfi_def_cfa_offset 8 847 0036 BD46 mov sp, r7 848 .LCFI33: 849 .cfi_def_cfa_register 13 850 @ sp needed 851 0038 80BD pop {r7, pc} 852 .cfi_endproc 853 .LFE135: 855 .text 856 .Letext0: 857 .file 2 "d:\\arm-gcc\\arm-none-eabi\\include\\machine\\_default_types.h" 858 .file 3 "d:\\arm-gcc\\arm-none-eabi\\include\\sys\\_stdint.h" 859 .file 4 "d:\\arm-gcc\\lib\\gcc\\arm-none-eabi\\10.3.1\\include\\stddef.h" ARM GAS C:\Users\zl835\AppData\Local\Temp\cco7lAgg.s page 21 DEFINED SYMBOLS *ABS*:00000000 soft_crc.c C:\Users\zl835\AppData\Local\Temp\cco7lAgg.s:24 .rodata.ccitt_table:00000000 ccitt_table C:\Users\zl835\AppData\Local\Temp\cco7lAgg.s:21 .rodata.ccitt_table:00000000 $d C:\Users\zl835\AppData\Local\Temp\cco7lAgg.s:282 .text.crc_ccitt:00000000 $t C:\Users\zl835\AppData\Local\Temp\cco7lAgg.s:288 .text.crc_ccitt:00000000 crc_ccitt C:\Users\zl835\AppData\Local\Temp\cco7lAgg.s:365 .text.crc_ccitt:0000004c $d C:\Users\zl835\AppData\Local\Temp\cco7lAgg.s:370 .text.crc16_ccitt:00000000 $t C:\Users\zl835\AppData\Local\Temp\cco7lAgg.s:376 .text.crc16_ccitt:00000000 crc16_ccitt C:\Users\zl835\AppData\Local\Temp\cco7lAgg.s:462 .text.crc16_ccitt:00000058 $d C:\Users\zl835\AppData\Local\Temp\cco7lAgg.s:471 .rodata.auchCRCHi:00000000 auchCRCHi C:\Users\zl835\AppData\Local\Temp\cco7lAgg.s:468 .rodata.auchCRCHi:00000000 $d C:\Users\zl835\AppData\Local\Temp\cco7lAgg.s:494 .rodata.auchCRCLo:00000000 auchCRCLo C:\Users\zl835\AppData\Local\Temp\cco7lAgg.s:491 .rodata.auchCRCLo:00000000 $d C:\Users\zl835\AppData\Local\Temp\cco7lAgg.s:511 .text.Get_Crc16:00000000 $t C:\Users\zl835\AppData\Local\Temp\cco7lAgg.s:517 .text.Get_Crc16:00000000 Get_Crc16 C:\Users\zl835\AppData\Local\Temp\cco7lAgg.s:608 .text.Get_Crc16:00000064 $d C:\Users\zl835\AppData\Local\Temp\cco7lAgg.s:614 .text.crcAddByte:00000000 $t C:\Users\zl835\AppData\Local\Temp\cco7lAgg.s:620 .text.crcAddByte:00000000 crcAddByte C:\Users\zl835\AppData\Local\Temp\cco7lAgg.s:708 .text.crcAddSignature:00000000 $t C:\Users\zl835\AppData\Local\Temp\cco7lAgg.s:714 .text.crcAddSignature:00000000 crcAddSignature C:\Users\zl835\AppData\Local\Temp\cco7lAgg.s:790 .text.crcAdd:00000000 $t C:\Users\zl835\AppData\Local\Temp\cco7lAgg.s:796 .text.crcAdd:00000000 crcAdd NO UNDEFINED SYMBOLS