ARM GAS C:\Users\10728\AppData\Local\Temp\ccPTv0Ry.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 00000000 .word 0 26 0004 21100000 .word 4129 27 0008 42200000 .word 8258 28 000c 63300000 .word 12387 29 0010 84400000 .word 16516 30 0014 A5500000 .word 20645 31 0018 C6600000 .word 24774 32 001c E7700000 .word 28903 33 0020 08810000 .word 33032 34 0024 29910000 .word 37161 35 0028 4AA10000 .word 41290 36 002c 6BB10000 .word 45419 37 0030 8CC10000 .word 49548 38 0034 ADD10000 .word 53677 39 0038 CEE10000 .word 57806 40 003c EFF10000 .word 61935 41 0040 31120000 .word 4657 42 0044 10020000 .word 528 43 0048 73320000 .word 12915 44 004c 52220000 .word 8786 45 0050 B5520000 .word 21173 46 0054 94420000 .word 17044 47 0058 F7720000 .word 29431 48 005c D6620000 .word 25302 49 0060 39930000 .word 37689 50 0064 18830000 .word 33560 51 0068 7BB30000 .word 45947 52 006c 5AA30000 .word 41818 53 0070 BDD30000 .word 54205 54 0074 9CC30000 .word 50076 55 0078 FFF30000 .word 62463 56 007c DEE30000 .word 58334 57 0080 62240000 .word 9314 58 0084 43340000 .word 13379 59 0088 20040000 .word 1056 ARM GAS C:\Users\10728\AppData\Local\Temp\ccPTv0Ry.s page 2 60 008c 01140000 .word 5121 61 0090 E6640000 .word 25830 62 0094 C7740000 .word 29895 63 0098 A4440000 .word 17572 64 009c 85540000 .word 21637 65 00a0 6AA50000 .word 42346 66 00a4 4BB50000 .word 46411 67 00a8 28850000 .word 34088 68 00ac 09950000 .word 38153 69 00b0 EEE50000 .word 58862 70 00b4 CFF50000 .word 62927 71 00b8 ACC50000 .word 50604 72 00bc 8DD50000 .word 54669 73 00c0 53360000 .word 13907 74 00c4 72260000 .word 9842 75 00c8 11160000 .word 5649 76 00cc 30060000 .word 1584 77 00d0 D7760000 .word 30423 78 00d4 F6660000 .word 26358 79 00d8 95560000 .word 22165 80 00dc B4460000 .word 18100 81 00e0 5BB70000 .word 46939 82 00e4 7AA70000 .word 42874 83 00e8 19970000 .word 38681 84 00ec 38870000 .word 34616 85 00f0 DFF70000 .word 63455 86 00f4 FEE70000 .word 59390 87 00f8 9DD70000 .word 55197 88 00fc BCC70000 .word 51132 89 0100 C4480000 .word 18628 90 0104 E5580000 .word 22757 91 0108 86680000 .word 26758 92 010c A7780000 .word 30887 93 0110 40080000 .word 2112 94 0114 61180000 .word 6241 95 0118 02280000 .word 10242 96 011c 23380000 .word 14371 97 0120 CCC90000 .word 51660 98 0124 EDD90000 .word 55789 99 0128 8EE90000 .word 59790 100 012c AFF90000 .word 63919 101 0130 48890000 .word 35144 102 0134 69990000 .word 39273 103 0138 0AA90000 .word 43274 104 013c 2BB90000 .word 47403 105 0140 F55A0000 .word 23285 106 0144 D44A0000 .word 19156 107 0148 B77A0000 .word 31415 108 014c 966A0000 .word 27286 109 0150 711A0000 .word 6769 110 0154 500A0000 .word 2640 111 0158 333A0000 .word 14899 112 015c 122A0000 .word 10770 113 0160 FDDB0000 .word 56317 114 0164 DCCB0000 .word 52188 115 0168 BFFB0000 .word 64447 116 016c 9EEB0000 .word 60318 ARM GAS C:\Users\10728\AppData\Local\Temp\ccPTv0Ry.s page 3 117 0170 799B0000 .word 39801 118 0174 588B0000 .word 35672 119 0178 3BBB0000 .word 47931 120 017c 1AAB0000 .word 43802 121 0180 A66C0000 .word 27814 122 0184 877C0000 .word 31879 123 0188 E44C0000 .word 19684 124 018c C55C0000 .word 23749 125 0190 222C0000 .word 11298 126 0194 033C0000 .word 15363 127 0198 600C0000 .word 3168 128 019c 411C0000 .word 7233 129 01a0 AEED0000 .word 60846 130 01a4 8FFD0000 .word 64911 131 01a8 ECCD0000 .word 52716 132 01ac CDDD0000 .word 56781 133 01b0 2AAD0000 .word 44330 134 01b4 0BBD0000 .word 48395 135 01b8 688D0000 .word 36200 136 01bc 499D0000 .word 40265 137 01c0 977E0000 .word 32407 138 01c4 B66E0000 .word 28342 139 01c8 D55E0000 .word 24277 140 01cc F44E0000 .word 20212 141 01d0 133E0000 .word 15891 142 01d4 322E0000 .word 11826 143 01d8 511E0000 .word 7761 144 01dc 700E0000 .word 3696 145 01e0 9FFF0000 .word 65439 146 01e4 BEEF0000 .word 61374 147 01e8 DDDF0000 .word 57309 148 01ec FCCF0000 .word 53244 149 01f0 1BBF0000 .word 48923 150 01f4 3AAF0000 .word 44858 151 01f8 599F0000 .word 40793 152 01fc 788F0000 .word 36728 153 0200 88910000 .word 37256 154 0204 A9810000 .word 33193 155 0208 CAB10000 .word 45514 156 020c EBA10000 .word 41451 157 0210 0CD10000 .word 53516 158 0214 2DC10000 .word 49453 159 0218 4EF10000 .word 61774 160 021c 6FE10000 .word 57711 161 0220 80100000 .word 4224 162 0224 A1000000 .word 161 163 0228 C2300000 .word 12482 164 022c E3200000 .word 8419 165 0230 04500000 .word 20484 166 0234 25400000 .word 16421 167 0238 46700000 .word 28742 168 023c 67600000 .word 24679 169 0240 B9830000 .word 33721 170 0244 98930000 .word 37784 171 0248 FBA30000 .word 41979 172 024c DAB30000 .word 46042 173 0250 3DC30000 .word 49981 ARM GAS C:\Users\10728\AppData\Local\Temp\ccPTv0Ry.s page 4 174 0254 1CD30000 .word 54044 175 0258 7FE30000 .word 58239 176 025c 5EF30000 .word 62302 177 0260 B1020000 .word 689 178 0264 90120000 .word 4752 179 0268 F3220000 .word 8947 180 026c D2320000 .word 13010 181 0270 35420000 .word 16949 182 0274 14520000 .word 21012 183 0278 77620000 .word 25207 184 027c 56720000 .word 29270 185 0280 EAB50000 .word 46570 186 0284 CBA50000 .word 42443 187 0288 A8950000 .word 38312 188 028c 89850000 .word 34185 189 0290 6EF50000 .word 62830 190 0294 4FE50000 .word 58703 191 0298 2CD50000 .word 54572 192 029c 0DC50000 .word 50445 193 02a0 E2340000 .word 13538 194 02a4 C3240000 .word 9411 195 02a8 A0140000 .word 5280 196 02ac 81040000 .word 1153 197 02b0 66740000 .word 29798 198 02b4 47640000 .word 25671 199 02b8 24540000 .word 21540 200 02bc 05440000 .word 17413 201 02c0 DBA70000 .word 42971 202 02c4 FAB70000 .word 47098 203 02c8 99870000 .word 34713 204 02cc B8970000 .word 38840 205 02d0 5FE70000 .word 59231 206 02d4 7EF70000 .word 63358 207 02d8 1DC70000 .word 50973 208 02dc 3CD70000 .word 55100 209 02e0 D3260000 .word 9939 210 02e4 F2360000 .word 14066 211 02e8 91060000 .word 1681 212 02ec B0160000 .word 5808 213 02f0 57660000 .word 26199 214 02f4 76760000 .word 30326 215 02f8 15460000 .word 17941 216 02fc 34560000 .word 22068 217 0300 4CD90000 .word 55628 218 0304 6DC90000 .word 51565 219 0308 0EF90000 .word 63758 220 030c 2FE90000 .word 59695 221 0310 C8990000 .word 39368 222 0314 E9890000 .word 35305 223 0318 8AB90000 .word 47498 224 031c ABA90000 .word 43435 225 0320 44580000 .word 22596 226 0324 65480000 .word 18533 227 0328 06780000 .word 30726 228 032c 27680000 .word 26663 229 0330 C0180000 .word 6336 230 0334 E1080000 .word 2273 ARM GAS C:\Users\10728\AppData\Local\Temp\ccPTv0Ry.s page 5 231 0338 82380000 .word 14466 232 033c A3280000 .word 10403 233 0340 7DCB0000 .word 52093 234 0344 5CDB0000 .word 56156 235 0348 3FEB0000 .word 60223 236 034c 1EFB0000 .word 64286 237 0350 F98B0000 .word 35833 238 0354 D89B0000 .word 39896 239 0358 BBAB0000 .word 43963 240 035c 9ABB0000 .word 48026 241 0360 754A0000 .word 19061 242 0364 545A0000 .word 23124 243 0368 376A0000 .word 27191 244 036c 167A0000 .word 31254 245 0370 F10A0000 .word 2801 246 0374 D01A0000 .word 6864 247 0378 B32A0000 .word 10931 248 037c 923A0000 .word 14994 249 0380 2EFD0000 .word 64814 250 0384 0FED0000 .word 60687 251 0388 6CDD0000 .word 56684 252 038c 4DCD0000 .word 52557 253 0390 AABD0000 .word 48554 254 0394 8BAD0000 .word 44427 255 0398 E89D0000 .word 40424 256 039c C98D0000 .word 36297 257 03a0 267C0000 .word 31782 258 03a4 076C0000 .word 27655 259 03a8 645C0000 .word 23652 260 03ac 454C0000 .word 19525 261 03b0 A23C0000 .word 15522 262 03b4 832C0000 .word 11395 263 03b8 E01C0000 .word 7392 264 03bc C10C0000 .word 3265 265 03c0 1FEF0000 .word 61215 266 03c4 3EFF0000 .word 65342 267 03c8 5DCF0000 .word 53085 268 03cc 7CDF0000 .word 57212 269 03d0 9BAF0000 .word 44955 270 03d4 BABF0000 .word 49082 271 03d8 D98F0000 .word 36825 272 03dc F89F0000 .word 40952 273 03e0 176E0000 .word 28183 274 03e4 367E0000 .word 32310 275 03e8 554E0000 .word 20053 276 03ec 745E0000 .word 24180 277 03f0 932E0000 .word 11923 278 03f4 B23E0000 .word 16050 279 03f8 D10E0000 .word 3793 280 03fc F01E0000 .word 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\10728\AppData\Local\Temp\ccPTv0Ry.s page 6 289 .LFB235: 290 .file 1 "Core/Src/soft_crc.c" 1:Core/Src/soft_crc.c **** #include "soft_crc.h" 2:Core/Src/soft_crc.c **** #include "stm32f4xx_hal.h" 3:Core/Src/soft_crc.c **** //32位编码表 4:Core/Src/soft_crc.c **** const unsigned int ccitt_table[256] = {0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 5:Core/Src/soft_crc.c **** 0x50A5, 0x60C6, 0x70E7, 0x8108, 0x9129, 0xA14A, 0xB16B, 0xC18C, 0xD1AD, 0xE1CE, 6:Core/Src/soft_crc.c **** 0xF1EF, 0x1231, 0x0210, 0x3273, 0x2252, 0x52B5, 0x4294, 0x72F7, 0x62D6, 0x9339, 7:Core/Src/soft_crc.c **** 0x8318, 0xB37B, 0xA35A, 0xD3BD, 0xC39C, 0xF3FF, 0xE3DE, 0x2462, 0x3443, 0x0420, 8:Core/Src/soft_crc.c **** 0x1401, 0x64E6, 0x74C7, 0x44A4, 0x5485, 0xA56A, 0xB54B, 0x8528, 0x9509, 0xE5EE, 9:Core/Src/soft_crc.c **** 0xF5CF, 0xC5AC, 0xD58D, 0x3653, 0x2672, 0x1611, 0x0630, 0x76D7, 0x66F6, 0x5695, 10:Core/Src/soft_crc.c **** 0x46B4, 0xB75B, 0xA77A, 0x9719, 0x8738, 0xF7DF, 0xE7FE, 0xD79D, 0xC7BC, 0x48C4, 11:Core/Src/soft_crc.c **** 0x58E5, 0x6886, 0x78A7, 0x0840, 0x1861, 0x2802, 0x3823, 0xC9CC, 0xD9ED, 0xE98E, 12:Core/Src/soft_crc.c **** 0xF9AF, 0x8948, 0x9969, 0xA90A, 0xB92B, 0x5AF5, 0x4AD4, 0x7AB7, 0x6A96, 0x1A71, 13:Core/Src/soft_crc.c **** 0x0A50, 0x3A33, 0x2A12, 0xDBFD, 0xCBDC, 0xFBBF, 0xEB9E, 0x9B79, 0x8B58, 0xBB3B, 14:Core/Src/soft_crc.c **** 0xAB1A, 0x6CA6, 0x7C87, 0x4CE4, 0x5CC5, 0x2C22, 0x3C03, 0x0C60, 0x1C41, 0xEDAE, 15:Core/Src/soft_crc.c **** 0xFD8F, 0xCDEC, 0xDDCD, 0xAD2A, 0xBD0B, 0x8D68, 0x9D49, 0x7E97, 0x6EB6, 0x5ED5, 16:Core/Src/soft_crc.c **** 0x4EF4, 0x3E13, 0x2E32, 0x1E51, 0x0E70, 0xFF9F, 0xEFBE, 0xDFDD, 0xCFFC, 0xBF1B, 17:Core/Src/soft_crc.c **** 0xAF3A, 0x9F59, 0x8F78, 0x9188, 0x81A9, 0xB1CA, 0xA1EB, 0xD10C, 0xC12D, 0xF14E, 18:Core/Src/soft_crc.c **** 0xE16F, 0x1080, 0x00A1, 0x30C2, 0x20E3, 0x5004, 0x4025, 0x7046, 0x6067, 0x83B9, 19:Core/Src/soft_crc.c **** 0x9398, 0xA3FB, 0xB3DA, 0xC33D, 0xD31C, 0xE37F, 0xF35E, 0x02B1, 0x1290, 0x22F3, 20:Core/Src/soft_crc.c **** 0x32D2, 0x4235, 0x5214, 0x6277, 0x7256, 0xB5EA, 0xA5CB, 0x95A8, 0x8589, 0xF56E, 21:Core/Src/soft_crc.c **** 0xE54F, 0xD52C, 0xC50D, 0x34E2, 0x24C3, 0x14A0, 0x0481, 0x7466, 0x6447, 0x5424, 22:Core/Src/soft_crc.c **** 0x4405, 0xA7DB, 0xB7FA, 0x8799, 0x97B8, 0xE75F, 0xF77E, 0xC71D, 0xD73C, 0x26D3, 23:Core/Src/soft_crc.c **** 0x36F2, 0x0691, 0x16B0, 0x6657, 0x7676, 0x4615, 0x5634, 0xD94C, 0xC96D, 0xF90E, 24:Core/Src/soft_crc.c **** 0xE92F, 0x99C8, 0x89E9, 0xB98A, 0xA9AB, 0x5844, 0x4865, 0x7806, 0x6827, 0x18C0, 25:Core/Src/soft_crc.c **** 0x08E1, 0x3882, 0x28A3, 0xCB7D, 0xDB5C, 0xEB3F, 0xFB1E, 0x8BF9, 0x9BD8, 0xABBB, 26:Core/Src/soft_crc.c **** 0xBB9A, 0x4A75, 0x5A54, 0x6A37, 0x7A16, 0x0AF1, 0x1AD0, 0x2AB3, 0x3A92, 0xFD2E, 27:Core/Src/soft_crc.c **** 0xED0F, 0xDD6C, 0xCD4D, 0xBDAA, 0xAD8B, 0x9DE8, 0x8DC9, 0x7C26, 0x6C07, 0x5C64, 28:Core/Src/soft_crc.c **** 0x4C45, 0x3CA2, 0x2C83, 0x1CE0, 0x0CC1, 0xEF1F, 0xFF3E, 0xCF5D, 0xDF7C, 0xAF9B, 29:Core/Src/soft_crc.c **** 0xBFBA, 0x8FD9, 0x9FF8, 0x6E17, 0x7E36, 0x4E55, 0x5E74, 0x2E93, 0x3EB2, 0x0ED1, 30:Core/Src/soft_crc.c **** 0x1EF0}; 31:Core/Src/soft_crc.c **** 32:Core/Src/soft_crc.c **** unsigned short crc_ccitt(unsigned char *q, int len) 33:Core/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:Core/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:Core/Src/soft_crc.c **** while (len-- > 0) ARM GAS C:\Users\10728\AppData\Local\Temp\ccPTv0Ry.s page 7 311 .loc 1 35 8 312 000e 0EE0 b .L2 313 .L3: 36:Core/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 094A ldr r2, .L5 329 0022 52F82320 ldr r2, [r2, r3, lsl #2] 330 .loc 1 36 54 331 0026 FB68 ldr r3, [r7, #12] 332 0028 1B02 lsls r3, r3, #8 333 .loc 1 36 7 334 002a 5340 eors r3, r3, r2 335 002c FB60 str r3, [r7, #12] 336 .L2: 35:Core/Src/soft_crc.c **** while (len-- > 0) 337 .loc 1 35 12 338 002e 3B68 ldr r3, [r7] 339 0030 5A1E subs r2, r3, #1 340 0032 3A60 str r2, [r7] 35:Core/Src/soft_crc.c **** while (len-- > 0) 341 .loc 1 35 8 342 0034 002B cmp r3, #0 343 0036 EBDC bgt .L3 37:Core/Src/soft_crc.c **** return crc; 344 .loc 1 37 9 345 0038 FB68 ldr r3, [r7, #12] 346 003a 9BB2 uxth r3, r3 38:Core/Src/soft_crc.c **** } 347 .loc 1 38 1 348 003c 1846 mov r0, r3 349 003e 1437 adds r7, r7, #20 350 .LCFI3: 351 .cfi_def_cfa_offset 4 352 0040 BD46 mov sp, r7 353 .LCFI4: 354 .cfi_def_cfa_register 13 355 @ sp needed 356 0042 5DF8047B ldr r7, [sp], #4 357 .LCFI5: 358 .cfi_restore 7 359 .cfi_def_cfa_offset 0 360 0046 7047 bx lr 361 .L6: 362 .align 2 ARM GAS C:\Users\10728\AppData\Local\Temp\ccPTv0Ry.s page 8 363 .L5: 364 0048 00000000 .word ccitt_table 365 .cfi_endproc 366 .LFE235: 368 .global auchCRCHi 369 .section .rodata.auchCRCHi,"a" 370 .align 2 373 auchCRCHi: 374 0000 00C18140 .ascii "\000\301\201@\001\300\200A\001\300\200A\000\301\201" 374 01C08041 374 01C08041 374 00C181 375 000f 4001C080 .ascii "@\001\300\200A\000\301\201@\000\301\201@\001\300\200" 375 4100C181 375 4000C181 375 4001C080 376 001f 4101C080 .ascii "A\001\300\200A\000\301\201@\000\301\201@\001\300\200" 376 4100C181 376 4000C181 376 4001C080 377 002f 4100C181 .ascii "A\000\301\201@\001\300\200A\001\300\200A\000\301\201" 377 4001C080 377 4101C080 377 4100C181 378 003f 4001C080 .ascii "@\001\300\200A\000\301\201@\000\301\201@\001\300\200" 378 4100C181 378 4000C181 378 4001C080 379 004f 4100C181 .ascii "A\000\301\201@\001\300\200A\001\300\200A\000\301\201" 379 4001C080 379 4101C080 379 4100C181 380 005f 4000C181 .ascii "@\000\301\201@\001\300\200A\001\300\200A\000\301\201" 380 4001C080 380 4101C080 380 4100C181 381 006f 4001C080 .ascii "@\001\300\200A\000\301\201@\000\301\201@\001\300\200" 381 4100C181 381 4000C181 381 4001C080 382 007f 4101C080 .ascii "A\001\300\200A\000\301\201@\000\301\201@\001\300\200" 382 4100C181 382 4000C181 382 4001C080 383 008f 4100C181 .ascii "A\000\301\201@\001\300\200A\001\300\200A\000\301\201" 383 4001C080 383 4101C080 383 4100C181 384 009f 4000C181 .ascii "@\000\301\201@\001\300\200A\001\300\200A\000\301\201" 384 4001C080 384 4101C080 384 4100C181 385 00af 4001C080 .ascii "@\001\300\200A\000\301\201@\000\301\201@\001\300\200" 385 4100C181 385 4000C181 385 4001C080 386 00bf 4100C181 .ascii "A\000\301\201@\001\300\200A\001\300\200A\000\301\201" ARM GAS C:\Users\10728\AppData\Local\Temp\ccPTv0Ry.s page 9 386 4001C080 386 4101C080 386 4100C181 387 00cf 4001C080 .ascii "@\001\300\200A\000\301\201@\000\301\201@\001\300\200" 387 4100C181 387 4000C181 387 4001C080 388 00df 4101C080 .ascii "A\001\300\200A\000\301\201@\000\301\201@\001\300\200" 388 4100C181 388 4000C181 388 4001C080 389 00ef 4100C181 .ascii "A\000\301\201@\001\300\200A\001\300\200A\000\301\201" 389 4001C080 389 4101C080 389 4100C181 390 00ff 40 .ascii "@" 391 .global auchCRCLo 392 .section .rodata.auchCRCLo,"a" 393 .align 2 396 auchCRCLo: 397 0000 00C0C101 .ascii "\000\300\301\001\303\003\002\302\306\006\007\307\005" 397 C30302C2 397 C60607C7 397 05 398 000d C5C404CC .ascii "\305\304\004\314\014\015\315\017\317\316\016\012\312" 398 0C0DCD0F 398 CFCE0E0A 398 CA 399 001a CB0BC909 .ascii "\313\013\311\011\010\310\330\030\031\331\033\333\332" 399 08C8D818 399 19D91BDB 399 DA 400 0027 1A1EDEDF .ascii "\032\036\336\337\037\335\035\034\334\024\324\325\025" 400 1FDD1D1C 400 DC14D4D5 400 15 401 0034 D71716D6 .ascii "\327\027\026\326\322\022\023\323\021\321\320\020\360" 401 D21213D3 401 11D1D010 401 F0 402 0041 3031F133 .ascii "01\3613\363\36226\366\3677\36554\364<\374\375=\377?" 402 F3F23236 402 F6F737F5 402 3534F43C 402 FCFD3DFF 403 0056 3EFEFA3A .ascii ">\376\372:;\3739\371\3708(\350\351)\353+*\352\356./" 403 3BFB39F9 403 F83828E8 403 E929EB2B 403 2AEAEE2E 404 006b EF2DEDEC .ascii "\357-\355\354,\344$%\345'\347\346&\"\342\343#\341! " 404 2CE42425 404 E527E7E6 404 2622E2E3 404 23E12120 405 007f E0A06061 .ascii "\340\240`a\241c\243\242bf\246\247g\245ed\244l\254\255" 405 A163A3A2 ARM GAS C:\Users\10728\AppData\Local\Temp\ccPTv0Ry.s page 10 405 6266A6A7 405 67A56564 405 A46CACAD 406 0093 6DAF6F6E .ascii "m\257on\256\252jk\253i\251\250hx\270\271y\273{z\272" 406 AEAA6A6B 406 AB69A9A8 406 6878B8B9 406 79BB7B7A 407 00a8 BE7E7FBF .ascii "\276~\177\277}\275\274|\264tu\265w\267\266vr\262\263" 407 7DBDBC7C 407 B47475B5 407 77B7B676 407 72B2B3 408 00bb 73B17170 .ascii "s\261qp\260P\220\221Q\223SR\222\226VW\227U\225\224T" 408 B0509091 408 51935352 408 92965657 408 97559594 409 00d0 9C5C5D9D .ascii "\234\\]\235_\237\236^Z\232\233[\231YX\230\210HI\211" 409 5F9F9E5E 409 5A9A9B5B 409 99595898 409 88484989 410 00e4 4B8B8A4A .ascii "K\213\212JN\216\217O\215ML\214D\204\205E\207GF\206\202" 410 4E8E8F4F 410 8D4D4C8C 410 44848545 410 87474686 411 00f9 42438341 .ascii "BC\203A\201\200@" 411 818040 412 .section .text.Get_Crc16,"ax",%progbits 413 .align 1 414 .global Get_Crc16 415 .syntax unified 416 .thumb 417 .thumb_func 419 Get_Crc16: 420 .LFB236: 39:Core/Src/soft_crc.c **** 40:Core/Src/soft_crc.c **** //16位编码表 41:Core/Src/soft_crc.c **** //高位 42:Core/Src/soft_crc.c **** const uint8_t auchCRCHi[] = { 43:Core/Src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 44:Core/Src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 45:Core/Src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 46:Core/Src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 47:Core/Src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 48:Core/Src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 49:Core/Src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 50:Core/Src/soft_crc.c **** 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 51:Core/Src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 52:Core/Src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 53:Core/Src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 54:Core/Src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 55:Core/Src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 56:Core/Src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 57:Core/Src/soft_crc.c **** 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, ARM GAS C:\Users\10728\AppData\Local\Temp\ccPTv0Ry.s page 11 58:Core/Src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 59:Core/Src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 60:Core/Src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 61:Core/Src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 62:Core/Src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 63:Core/Src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 64:Core/Src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40}; 65:Core/Src/soft_crc.c **** //低位 66:Core/Src/soft_crc.c **** const uint8_t auchCRCLo[] = { 67:Core/Src/soft_crc.c **** 0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7, 68:Core/Src/soft_crc.c **** 0x05, 0xC5, 0xC4, 0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E, 69:Core/Src/soft_crc.c **** 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09, 0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 70:Core/Src/soft_crc.c **** 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD, 0x1D, 0x1C, 0xDC, 71:Core/Src/soft_crc.c **** 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3, 72:Core/Src/soft_crc.c **** 0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32, 73:Core/Src/soft_crc.c **** 0x36, 0xF6, 0xF7, 0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, 0xFC, 0xFD, 0x3D, 74:Core/Src/soft_crc.c **** 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A, 0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 75:Core/Src/soft_crc.c **** 0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A, 0xEA, 0xEE, 0x2E, 0x2F, 0xEF, 76:Core/Src/soft_crc.c **** 0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26, 77:Core/Src/soft_crc.c **** 0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, 0x61, 0xA1, 78:Core/Src/soft_crc.c **** 0x63, 0xA3, 0xA2, 0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4, 79:Core/Src/soft_crc.c **** 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F, 0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 80:Core/Src/soft_crc.c **** 0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9, 0x79, 0xBB, 0x7B, 0x7A, 0xBA, 81:Core/Src/soft_crc.c **** 0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5, 82:Core/Src/soft_crc.c **** 0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0, 83:Core/Src/soft_crc.c **** 0x50, 0x90, 0x91, 0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97, 84:Core/Src/soft_crc.c **** 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C, 0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 85:Core/Src/soft_crc.c **** 0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98, 0x88, 0x48, 0x49, 0x89, 86:Core/Src/soft_crc.c **** 0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C, 87:Core/Src/soft_crc.c **** 0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83, 88:Core/Src/soft_crc.c **** 0x41, 0x81, 0x80, 0x40}; 89:Core/Src/soft_crc.c **** 90:Core/Src/soft_crc.c **** //获取校验值 91:Core/Src/soft_crc.c **** uint16_t Get_Crc16(uint8_t *puchMsg, uint16_t usDataLen) 92:Core/Src/soft_crc.c **** { 421 .loc 1 92 1 422 .cfi_startproc 423 @ args = 0, pretend = 0, frame = 16 424 @ frame_needed = 1, uses_anonymous_args = 0 425 @ link register save eliminated. 426 0000 80B4 push {r7} 427 .LCFI6: 428 .cfi_def_cfa_offset 4 429 .cfi_offset 7, -4 430 0002 85B0 sub sp, sp, #20 431 .LCFI7: 432 .cfi_def_cfa_offset 24 433 0004 00AF add r7, sp, #0 434 .LCFI8: 435 .cfi_def_cfa_register 7 436 0006 7860 str r0, [r7, #4] 437 0008 0B46 mov r3, r1 438 000a 7B80 strh r3, [r7, #2] @ movhi 93:Core/Src/soft_crc.c **** uint8_t uchCRCHi = 0xFF; //高CRC 439 .loc 1 93 13 440 000c FF23 movs r3, #255 441 000e FB73 strb r3, [r7, #15] ARM GAS C:\Users\10728\AppData\Local\Temp\ccPTv0Ry.s page 12 94:Core/Src/soft_crc.c **** uint8_t uchCRCLo = 0xFF; //低CRC 442 .loc 1 94 13 443 0010 FF23 movs r3, #255 444 0012 BB73 strb r3, [r7, #14] 95:Core/Src/soft_crc.c **** uint32_t uIndex; // 循环索引 96:Core/Src/soft_crc.c **** while (usDataLen--) //消息缓冲区 445 .loc 1 96 11 446 0014 13E0 b .L8 447 .L9: 97:Core/Src/soft_crc.c **** { 98:Core/Src/soft_crc.c **** uIndex = uchCRCLo ^ *puchMsg++; //计算CRC 448 .loc 1 98 37 449 0016 7B68 ldr r3, [r7, #4] 450 0018 5A1C adds r2, r3, #1 451 001a 7A60 str r2, [r7, #4] 452 .loc 1 98 29 453 001c 1A78 ldrb r2, [r3] @ zero_extendqisi2 454 .loc 1 98 27 455 001e BB7B ldrb r3, [r7, #14] 456 0020 5340 eors r3, r3, r2 457 0022 DBB2 uxtb r3, r3 458 .loc 1 98 16 459 0024 BB60 str r3, [r7, #8] 99:Core/Src/soft_crc.c **** uchCRCLo = uchCRCHi ^ auchCRCHi[uIndex]; 460 .loc 1 99 40 461 0026 0F4A ldr r2, .L11 462 0028 BB68 ldr r3, [r7, #8] 463 002a 1344 add r3, r3, r2 464 002c 1A78 ldrb r2, [r3] @ zero_extendqisi2 465 .loc 1 99 18 466 002e FB7B ldrb r3, [r7, #15] 467 0030 5340 eors r3, r3, r2 468 0032 BB73 strb r3, [r7, #14] 100:Core/Src/soft_crc.c **** uchCRCHi = auchCRCLo[uIndex]; 469 .loc 1 100 18 470 0034 0C4A ldr r2, .L11+4 471 0036 BB68 ldr r3, [r7, #8] 472 0038 1344 add r3, r3, r2 473 003a 1B78 ldrb r3, [r3] 474 003c FB73 strb r3, [r7, #15] 475 .L8: 96:Core/Src/soft_crc.c **** { 476 .loc 1 96 21 477 003e 7B88 ldrh r3, [r7, #2] 478 0040 5A1E subs r2, r3, #1 479 0042 7A80 strh r2, [r7, #2] @ movhi 96:Core/Src/soft_crc.c **** { 480 .loc 1 96 11 481 0044 002B cmp r3, #0 482 0046 E6D1 bne .L9 101:Core/Src/soft_crc.c **** } 102:Core/Src/soft_crc.c **** return (uchCRCHi << 8 | uchCRCLo); 483 .loc 1 102 22 484 0048 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2 485 004a 1B02 lsls r3, r3, #8 486 .loc 1 102 27 487 004c 1AB2 sxth r2, r3 ARM GAS C:\Users\10728\AppData\Local\Temp\ccPTv0Ry.s page 13 488 004e BB7B ldrb r3, [r7, #14] @ zero_extendqisi2 489 0050 1BB2 sxth r3, r3 490 0052 1343 orrs r3, r3, r2 491 0054 1BB2 sxth r3, r3 492 0056 9BB2 uxth r3, r3 103:Core/Src/soft_crc.c **** }... 493 .loc 1 103 1 494 0058 1846 mov r0, r3 495 005a 1437 adds r7, r7, #20 496 .LCFI9: 497 .cfi_def_cfa_offset 4 498 005c BD46 mov sp, r7 499 .LCFI10: 500 .cfi_def_cfa_register 13 501 @ sp needed 502 005e 5DF8047B ldr r7, [sp], #4 503 .LCFI11: 504 .cfi_restore 7 505 .cfi_def_cfa_offset 0 506 0062 7047 bx lr 507 .L12: 508 .align 2 509 .L11: 510 0064 00000000 .word auchCRCHi 511 0068 00000000 .word auchCRCLo 512 .cfi_endproc 513 .LFE236: 515 .text 516 .Letext0: 517 .file 2 "d:\\arm-gcc\\arm-none-eabi\\include\\machine\\_default_types.h" 518 .file 3 "d:\\arm-gcc\\arm-none-eabi\\include\\sys\\_stdint.h" ARM GAS C:\Users\10728\AppData\Local\Temp\ccPTv0Ry.s page 14 DEFINED SYMBOLS *ABS*:00000000 soft_crc.c C:\Users\10728\AppData\Local\Temp\ccPTv0Ry.s:24 .rodata.ccitt_table:00000000 ccitt_table C:\Users\10728\AppData\Local\Temp\ccPTv0Ry.s:21 .rodata.ccitt_table:00000000 $d C:\Users\10728\AppData\Local\Temp\ccPTv0Ry.s:282 .text.crc_ccitt:00000000 $t C:\Users\10728\AppData\Local\Temp\ccPTv0Ry.s:288 .text.crc_ccitt:00000000 crc_ccitt C:\Users\10728\AppData\Local\Temp\ccPTv0Ry.s:364 .text.crc_ccitt:00000048 $d C:\Users\10728\AppData\Local\Temp\ccPTv0Ry.s:373 .rodata.auchCRCHi:00000000 auchCRCHi C:\Users\10728\AppData\Local\Temp\ccPTv0Ry.s:370 .rodata.auchCRCHi:00000000 $d C:\Users\10728\AppData\Local\Temp\ccPTv0Ry.s:396 .rodata.auchCRCLo:00000000 auchCRCLo C:\Users\10728\AppData\Local\Temp\ccPTv0Ry.s:393 .rodata.auchCRCLo:00000000 $d C:\Users\10728\AppData\Local\Temp\ccPTv0Ry.s:413 .text.Get_Crc16:00000000 $t C:\Users\10728\AppData\Local\Temp\ccPTv0Ry.s:419 .text.Get_Crc16:00000000 Get_Crc16 C:\Users\10728\AppData\Local\Temp\ccPTv0Ry.s:510 .text.Get_Crc16:00000064 $d NO UNDEFINED SYMBOLS