ARM GAS C:\Users\zl835\AppData\Local\Temp\ccp7lM0j.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, 2 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 .section .text.crc_ccitt,"ax",%progbits 20 .align 1 21 .p2align 2,,3 22 .global crc_ccitt 23 .syntax unified 24 .thumb 25 .thumb_func 27 crc_ccitt: 28 .LVL0: 29 .LFB130: 30 .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 int 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, ARM GAS C:\Users\zl835\AppData\Local\Temp\ccp7lM0j.s page 2 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 short crc_ccitt(unsigned char *q, int len) 33:user_src/soft_crc.c **** { 31 .loc 1 33 1 view -0 32 .cfi_startproc 33 @ args = 0, pretend = 0, frame = 0 34 @ frame_needed = 0, uses_anonymous_args = 0 35 @ link register save eliminated. 34:user_src/soft_crc.c **** unsigned int crc = 0; 36 .loc 1 34 2 view .LVU1 35:user_src/soft_crc.c **** while (len-- > 0) 37 .loc 1 35 2 view .LVU2 38 .loc 1 35 8 view .LVU3 39 .loc 1 35 8 is_stmt 0 view .LVU4 40 0000 0029 cmp r1, #0 41 .loc 1 35 8 view .LVU5 42 0002 12DD ble .L4 33:user_src/soft_crc.c **** unsigned int crc = 0; 43 .loc 1 33 1 view .LVU6 44 0004 10B4 push {r4} 45 .LCFI0: 46 .cfi_def_cfa_offset 4 47 .cfi_offset 4, -4 48 0006 0A4C ldr r4, .L11 49 0008 0144 add r1, r1, r0 50 .LVL1: 34:user_src/soft_crc.c **** unsigned int crc = 0; 51 .loc 1 34 15 view .LVU7 52 000a 0022 movs r2, #0 53 .LVL2: 54 .L3: 36:user_src/soft_crc.c **** crc = ccitt_table[(crc >> 8 ^ *q++) & 0xff] ^ (crc << 8); 55 .loc 1 36 3 is_stmt 1 view .LVU8 56 .loc 1 36 33 is_stmt 0 view .LVU9 57 000c 10F8013B ldrb r3, [r0], #1 @ zero_extendqisi2 58 .LVL3: 59 .loc 1 36 31 view .LVU10 60 0010 83EA1223 eor r3, r3, r2, lsr #8 61 .loc 1 36 39 view .LVU11 62 0014 DBB2 uxtb r3, r3 35:user_src/soft_crc.c **** while (len-- > 0) 63 .loc 1 35 8 view .LVU12 64 0016 8842 cmp r0, r1 65 .loc 1 36 20 view .LVU13 66 0018 54F82330 ldr r3, [r4, r3, lsl #2] 67 .loc 1 36 7 view .LVU14 68 001c 83EA0222 eor r2, r3, r2, lsl #8 69 .LVL4: 35:user_src/soft_crc.c **** while (len-- > 0) 70 .loc 1 35 8 is_stmt 1 view .LVU15 35:user_src/soft_crc.c **** while (len-- > 0) 71 .loc 1 35 8 is_stmt 0 view .LVU16 72 0020 F4D1 bne .L3 37:user_src/soft_crc.c **** return crc; 73 .loc 1 37 9 view .LVU17 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccp7lM0j.s page 3 74 0022 90B2 uxth r0, r2 75 .LVL5: 76 .loc 1 37 2 is_stmt 1 view .LVU18 38:user_src/soft_crc.c **** } 77 .loc 1 38 1 is_stmt 0 view .LVU19 78 0024 5DF8044B ldr r4, [sp], #4 79 .LCFI1: 80 .cfi_restore 4 81 .cfi_def_cfa_offset 0 82 0028 7047 bx lr 83 .LVL6: 84 .L4: 35:user_src/soft_crc.c **** crc = ccitt_table[(crc >> 8 ^ *q++) & 0xff] ^ (crc << 8); 85 .loc 1 35 8 view .LVU20 86 002a 0020 movs r0, #0 87 .LVL7: 37:user_src/soft_crc.c **** return crc; 88 .loc 1 37 2 is_stmt 1 view .LVU21 89 .loc 1 38 1 is_stmt 0 view .LVU22 90 002c 7047 bx lr 91 .L12: 92 002e 00BF .align 2 93 .L11: 94 0030 00000000 .word .LANCHOR0 95 .cfi_endproc 96 .LFE130: 98 .section .text.Get_Crc16,"ax",%progbits 99 .align 1 100 .p2align 2,,3 101 .global Get_Crc16 102 .syntax unified 103 .thumb 104 .thumb_func 106 Get_Crc16: 107 .LVL8: 108 .LFB131: 39:user_src/soft_crc.c **** 40:user_src/soft_crc.c **** //16λ����� 41:user_src/soft_crc.c **** //��λ 42:user_src/soft_crc.c **** const uint8_t auchCRCHi[] = { 43:user_src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 44:user_src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 45:user_src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 46:user_src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 47:user_src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 48:user_src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 49:user_src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 50:user_src/soft_crc.c **** 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 51:user_src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 52:user_src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 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, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 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 **** 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 58:user_src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 59: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\ccp7lM0j.s page 4 60:user_src/soft_crc.c **** 0x00, 0xC1, 0x81, 0x40, 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, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 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}; 65:user_src/soft_crc.c **** //��λ 66:user_src/soft_crc.c **** const uint8_t auchCRCLo[] = { 67:user_src/soft_crc.c **** 0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7, 68:user_src/soft_crc.c **** 0x05, 0xC5, 0xC4, 0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E, 69:user_src/soft_crc.c **** 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09, 0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 70:user_src/soft_crc.c **** 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD, 0x1D, 0x1C, 0xDC, 71:user_src/soft_crc.c **** 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3, 72:user_src/soft_crc.c **** 0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32, 73:user_src/soft_crc.c **** 0x36, 0xF6, 0xF7, 0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, 0xFC, 0xFD, 0x3D, 74:user_src/soft_crc.c **** 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A, 0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 75:user_src/soft_crc.c **** 0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A, 0xEA, 0xEE, 0x2E, 0x2F, 0xEF, 76:user_src/soft_crc.c **** 0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26, 77:user_src/soft_crc.c **** 0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, 0x61, 0xA1, 78:user_src/soft_crc.c **** 0x63, 0xA3, 0xA2, 0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4, 79:user_src/soft_crc.c **** 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F, 0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 80:user_src/soft_crc.c **** 0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9, 0x79, 0xBB, 0x7B, 0x7A, 0xBA, 81:user_src/soft_crc.c **** 0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5, 82:user_src/soft_crc.c **** 0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0, 83:user_src/soft_crc.c **** 0x50, 0x90, 0x91, 0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97, 84:user_src/soft_crc.c **** 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C, 0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 85:user_src/soft_crc.c **** 0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98, 0x88, 0x48, 0x49, 0x89, 86:user_src/soft_crc.c **** 0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C, 87:user_src/soft_crc.c **** 0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83, 88:user_src/soft_crc.c **** 0x41, 0x81, 0x80, 0x40}; 89:user_src/soft_crc.c **** 90:user_src/soft_crc.c **** //��ȡУ��ֵ 91:user_src/soft_crc.c **** uint16_t Get_Crc16(uint8_t *puchMsg, uint16_t usDataLen) 92:user_src/soft_crc.c **** { 109 .loc 1 92 1 is_stmt 1 view -0 110 .cfi_startproc 111 @ args = 0, pretend = 0, frame = 0 112 @ frame_needed = 0, uses_anonymous_args = 0 113 @ link register save eliminated. 93:user_src/soft_crc.c **** uint8_t uchCRCHi = 0xFF; //��CRC 114 .loc 1 93 5 view .LVU24 94:user_src/soft_crc.c **** uint8_t uchCRCLo = 0xFF; //��CRC 115 .loc 1 94 5 view .LVU25 95:user_src/soft_crc.c **** uint32_t uIndex; // ѭ������ 116 .loc 1 95 5 view .LVU26 96:user_src/soft_crc.c **** while (usDataLen--) //��Ϣ������ 117 .loc 1 96 5 view .LVU27 118 .loc 1 96 11 view .LVU28 119 .loc 1 96 11 is_stmt 0 view .LVU29 120 0000 99B1 cbz r1, .L16 92:user_src/soft_crc.c **** uint8_t uchCRCHi = 0xFF; //��CRC 121 .loc 1 92 1 view .LVU30 122 0002 30B4 push {r4, r5} 123 .LCFI2: 124 .cfi_def_cfa_offset 8 125 .cfi_offset 4, -8 126 .cfi_offset 5, -4 94:user_src/soft_crc.c **** uint32_t uIndex; // ѭ������ ARM GAS C:\Users\zl835\AppData\Local\Temp\ccp7lM0j.s page 5 127 .loc 1 94 13 view .LVU31 128 0004 FF22 movs r2, #255 129 0006 0A4D ldr r5, .L22 130 0008 0A4C ldr r4, .L22+4 131 000a 00EB010C add ip, r0, r1 93:user_src/soft_crc.c **** uint8_t uchCRCLo = 0xFF; //��CRC 132 .loc 1 93 13 view .LVU32 133 000e 1146 mov r1, r2 134 .LVL9: 135 .L15: 97:user_src/soft_crc.c **** { 98:user_src/soft_crc.c **** uIndex = uchCRCLo ^ *puchMsg++; //����CRC 136 .loc 1 98 9 is_stmt 1 view .LVU33 137 .loc 1 98 27 is_stmt 0 view .LVU34 138 0010 10F8013B ldrb r3, [r0], #1 @ zero_extendqisi2 139 .LVL10: 140 .loc 1 98 16 view .LVU35 141 0014 5340 eors r3, r3, r2 142 .LVL11: 99:user_src/soft_crc.c **** uchCRCLo = uchCRCHi ^ auchCRCHi[uIndex]; 143 .loc 1 99 9 is_stmt 1 view .LVU36 96:user_src/soft_crc.c **** { 144 .loc 1 96 11 is_stmt 0 view .LVU37 145 0016 6045 cmp r0, ip 146 .loc 1 99 18 view .LVU38 147 0018 EA5C ldrb r2, [r5, r3] @ zero_extendqisi2 148 .LVL12: 149 .loc 1 99 18 view .LVU39 150 001a 82EA0102 eor r2, r2, r1 151 .LVL13: 100:user_src/soft_crc.c **** uchCRCHi = auchCRCLo[uIndex]; 152 .loc 1 100 9 is_stmt 1 view .LVU40 153 .loc 1 100 18 is_stmt 0 view .LVU41 154 001e E15C ldrb r1, [r4, r3] @ zero_extendqisi2 155 .LVL14: 96:user_src/soft_crc.c **** { 156 .loc 1 96 11 is_stmt 1 view .LVU42 96:user_src/soft_crc.c **** { 157 .loc 1 96 11 is_stmt 0 view .LVU43 158 0020 F6D1 bne .L15 101:user_src/soft_crc.c **** } 102:user_src/soft_crc.c **** return (uchCRCHi << 8 | uchCRCLo); 159 .loc 1 102 27 view .LVU44 160 0022 42EA0120 orr r0, r2, r1, lsl #8 161 .LVL15: 162 .loc 1 102 5 is_stmt 1 view .LVU45 103:user_src/soft_crc.c **** } 163 .loc 1 103 1 is_stmt 0 view .LVU46 164 0026 30BC pop {r4, r5} 165 .LCFI3: 166 .cfi_restore 5 167 .cfi_restore 4 168 .cfi_def_cfa_offset 0 169 0028 7047 bx lr 170 .LVL16: 171 .L16: 96:user_src/soft_crc.c **** { ARM GAS C:\Users\zl835\AppData\Local\Temp\ccp7lM0j.s page 6 172 .loc 1 96 11 view .LVU47 173 002a 4FF6FF70 movw r0, #65535 174 .LVL17: 102:user_src/soft_crc.c **** } 175 .loc 1 102 5 is_stmt 1 view .LVU48 176 .loc 1 103 1 is_stmt 0 view .LVU49 177 002e 7047 bx lr 178 .L23: 179 .align 2 180 .L22: 181 0030 00000000 .word .LANCHOR1 182 0034 00000000 .word .LANCHOR2 183 .cfi_endproc 184 .LFE131: 186 .section .text.Int2String,"ax",%progbits 187 .align 1 188 .p2align 2,,3 189 .global Int2String 190 .syntax unified 191 .thumb 192 .thumb_func 194 Int2String: 195 .LVL18: 196 .LFB132: 104:user_src/soft_crc.c **** char* Int2String(int num,char *str,uint8_t size)//10进制 105:user_src/soft_crc.c **** { 197 .loc 1 105 1 is_stmt 1 view -0 198 .cfi_startproc 199 @ args = 0, pretend = 0, frame = 0 200 @ frame_needed = 0, uses_anonymous_args = 0 106:user_src/soft_crc.c **** int i = 0;//指示填充str 201 .loc 1 106 5 view .LVU51 107:user_src/soft_crc.c **** if(num<0)//如果num为负数,将num变正 202 .loc 1 107 5 view .LVU52 203 .loc 1 107 7 is_stmt 0 view .LVU53 204 0000 B0F1000C subs ip, r0, #0 105:user_src/soft_crc.c **** int i = 0;//指示填充str 205 .loc 1 105 1 view .LVU54 206 0004 70B5 push {r4, r5, r6, lr} 207 .LCFI4: 208 .cfi_def_cfa_offset 16 209 .cfi_offset 4, -16 210 .cfi_offset 5, -12 211 .cfi_offset 6, -8 212 .cfi_offset 14, -4 213 .loc 1 107 7 view .LVU55 214 0006 41DB blt .L40 106:user_src/soft_crc.c **** int i = 0;//指示填充str 215 .loc 1 106 9 view .LVU56 216 0008 0025 movs r5, #0 217 .LVL19: 218 .L25: 108:user_src/soft_crc.c **** { 109:user_src/soft_crc.c **** num = -num; 110:user_src/soft_crc.c **** str[i++] = '-'; 111:user_src/soft_crc.c **** } 112:user_src/soft_crc.c **** //转换 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccp7lM0j.s page 7 113:user_src/soft_crc.c **** do 114:user_src/soft_crc.c **** { 115:user_src/soft_crc.c **** if(size>0) 116:user_src/soft_crc.c **** { 117:user_src/soft_crc.c **** str[i++] = num%10+48; 219 .loc 1 117 27 view .LVU57 220 000a 234C ldr r4, .L41 221 .L27: 113:user_src/soft_crc.c **** { 222 .loc 1 113 5 is_stmt 1 view .LVU58 115:user_src/soft_crc.c **** { 223 .loc 1 115 9 view .LVU59 224 .loc 1 117 13 view .LVU60 118:user_src/soft_crc.c **** } 119:user_src/soft_crc.c **** size--; 225 .loc 1 119 9 view .LVU61 117:user_src/soft_crc.c **** } 226 .loc 1 117 27 is_stmt 0 view .LVU62 227 000c A4FB0C03 umull r0, r3, r4, ip 120:user_src/soft_crc.c **** num /= 10; 228 .loc 1 120 13 view .LVU63 229 0010 1846 mov r0, r3 117:user_src/soft_crc.c **** } 230 .loc 1 117 27 view .LVU64 231 0012 DB08 lsrs r3, r3, #3 119:user_src/soft_crc.c **** num /= 10; 232 .loc 1 119 13 view .LVU65 233 0014 02F1FF3E add lr, r2, #-1 117:user_src/soft_crc.c **** } 234 .loc 1 117 27 view .LVU66 235 0018 03EB8303 add r3, r3, r3, lsl #2 115:user_src/soft_crc.c **** { 236 .loc 1 115 11 view .LVU67 237 001c 22B1 cbz r2, .L26 117:user_src/soft_crc.c **** } 238 .loc 1 117 27 view .LVU68 239 001e ACEB4303 sub r3, ip, r3, lsl #1 117:user_src/soft_crc.c **** } 240 .loc 1 117 30 view .LVU69 241 0022 3033 adds r3, r3, #48 117:user_src/soft_crc.c **** } 242 .loc 1 117 22 view .LVU70 243 0024 4B55 strb r3, [r1, r5] 244 .LVL20: 117:user_src/soft_crc.c **** } 245 .loc 1 117 18 view .LVU71 246 0026 0135 adds r5, r5, #1 247 .LVL21: 248 .L26: 121:user_src/soft_crc.c **** }while(num); 249 .loc 1 121 5 view .LVU72 250 0028 5FEAD00C lsrs ip, r0, #3 251 .LVL22: 119:user_src/soft_crc.c **** num /= 10; 252 .loc 1 119 13 view .LVU73 253 002c 5FFA8EF2 uxtb r2, lr 254 .LVL23: ARM GAS C:\Users\zl835\AppData\Local\Temp\ccp7lM0j.s page 8 120:user_src/soft_crc.c **** }while(num); 255 .loc 1 120 9 is_stmt 1 view .LVU74 256 .loc 1 121 11 view .LVU75 257 .loc 1 121 5 is_stmt 0 view .LVU76 258 0030 ECD1 bne .L27 122:user_src/soft_crc.c **** 123:user_src/soft_crc.c **** str[i] = '\0'; 259 .loc 1 123 5 is_stmt 1 view .LVU77 260 .loc 1 123 12 is_stmt 0 view .LVU78 261 0032 01F805C0 strb ip, [r1, r5] 124:user_src/soft_crc.c **** 125:user_src/soft_crc.c **** //确定开始调整的位置 126:user_src/soft_crc.c **** int j = 0; 262 .loc 1 126 5 is_stmt 1 view .LVU79 263 .LVL24: 127:user_src/soft_crc.c **** if(str[0]=='-')//如果有负号,负号不用调整 264 .loc 1 127 5 view .LVU80 265 .loc 1 127 7 is_stmt 0 view .LVU81 266 0036 0B78 ldrb r3, [r1] @ zero_extendqisi2 267 0038 2D2B cmp r3, #45 268 003a 02D1 bne .L28 128:user_src/soft_crc.c **** { 129:user_src/soft_crc.c **** j = 1;//从第二位开始调整 269 .loc 1 129 9 is_stmt 1 view .LVU82 270 .LVL25: 130:user_src/soft_crc.c **** ++i;//由于有负号,所以交换的对称轴也要后移1位 271 .loc 1 130 9 view .LVU83 272 .loc 1 130 9 is_stmt 0 view .LVU84 273 003c 0135 adds r5, r5, #1 274 .LVL26: 129:user_src/soft_crc.c **** ++i;//由于有负号,所以交换的对称轴也要后移1位 275 .loc 1 129 11 view .LVU85 276 003e 4FF0010C mov ip, #1 277 .LVL27: 278 .L28: 131:user_src/soft_crc.c **** } 132:user_src/soft_crc.c **** //对称交换 133:user_src/soft_crc.c **** for(;j\376\372:;\3739\371\3708(\350\351)\353+*\352\356./" 388 3BFB39F9 388 F83828E8 388 E929EB2B 388 2AEAEE2E 389 006b EF2DEDEC .ascii "\357-\355\354,\344$%\345'\347\346&\"\342\343#\341! " 389 2CE42425 389 E527E7E6 389 2622E2E3 389 23E12120 390 007f E0A06061 .ascii "\340\240`a\241c\243\242bf\246\247g\245ed\244l\254\255" 390 A163A3A2 390 6266A6A7 390 67A56564 390 A46CACAD 391 0093 6DAF6F6E .ascii "m\257on\256\252jk\253i\251\250hx\270\271y\273{z\272" 391 AEAA6A6B 391 AB69A9A8 391 6878B8B9 391 79BB7B7A 392 00a8 BE7E7FBF .ascii "\276~\177\277}\275\274|\264tu\265w\267\266vr\262\263" 392 7DBDBC7C 392 B47475B5 392 77B7B676 392 72B2B3 393 00bb 73B17170 .ascii "s\261qp\260P\220\221Q\223SR\222\226VW\227U\225\224T" 393 B0509091 393 51935352 393 92965657 393 97559594 394 00d0 9C5C5D9D .ascii "\234\\]\235_\237\236^Z\232\233[\231YX\230\210HI\211" 394 5F9F9E5E 394 5A9A9B5B 394 99595898 394 88484989 395 00e4 4B8B8A4A .ascii "K\213\212JN\216\217O\215ML\214D\204\205E\207GF\206\202" 395 4E8E8F4F 395 8D4D4C8C 395 44848545 395 87474686 396 00f9 42438341 .ascii "BC\203A\201\200@" 396 818040 397 .section .rodata.ccitt_table,"a" 398 .align 2 399 .set .LANCHOR0,. + 0 402 ccitt_table: 403 0000 00000000 .word 0 404 0004 21100000 .word 4129 405 0008 42200000 .word 8258 406 000c 63300000 .word 12387 407 0010 84400000 .word 16516 408 0014 A5500000 .word 20645 409 0018 C6600000 .word 24774 410 001c E7700000 .word 28903 411 0020 08810000 .word 33032 412 0024 29910000 .word 37161 413 0028 4AA10000 .word 41290 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccp7lM0j.s page 13 414 002c 6BB10000 .word 45419 415 0030 8CC10000 .word 49548 416 0034 ADD10000 .word 53677 417 0038 CEE10000 .word 57806 418 003c EFF10000 .word 61935 419 0040 31120000 .word 4657 420 0044 10020000 .word 528 421 0048 73320000 .word 12915 422 004c 52220000 .word 8786 423 0050 B5520000 .word 21173 424 0054 94420000 .word 17044 425 0058 F7720000 .word 29431 426 005c D6620000 .word 25302 427 0060 39930000 .word 37689 428 0064 18830000 .word 33560 429 0068 7BB30000 .word 45947 430 006c 5AA30000 .word 41818 431 0070 BDD30000 .word 54205 432 0074 9CC30000 .word 50076 433 0078 FFF30000 .word 62463 434 007c DEE30000 .word 58334 435 0080 62240000 .word 9314 436 0084 43340000 .word 13379 437 0088 20040000 .word 1056 438 008c 01140000 .word 5121 439 0090 E6640000 .word 25830 440 0094 C7740000 .word 29895 441 0098 A4440000 .word 17572 442 009c 85540000 .word 21637 443 00a0 6AA50000 .word 42346 444 00a4 4BB50000 .word 46411 445 00a8 28850000 .word 34088 446 00ac 09950000 .word 38153 447 00b0 EEE50000 .word 58862 448 00b4 CFF50000 .word 62927 449 00b8 ACC50000 .word 50604 450 00bc 8DD50000 .word 54669 451 00c0 53360000 .word 13907 452 00c4 72260000 .word 9842 453 00c8 11160000 .word 5649 454 00cc 30060000 .word 1584 455 00d0 D7760000 .word 30423 456 00d4 F6660000 .word 26358 457 00d8 95560000 .word 22165 458 00dc B4460000 .word 18100 459 00e0 5BB70000 .word 46939 460 00e4 7AA70000 .word 42874 461 00e8 19970000 .word 38681 462 00ec 38870000 .word 34616 463 00f0 DFF70000 .word 63455 464 00f4 FEE70000 .word 59390 465 00f8 9DD70000 .word 55197 466 00fc BCC70000 .word 51132 467 0100 C4480000 .word 18628 468 0104 E5580000 .word 22757 469 0108 86680000 .word 26758 470 010c A7780000 .word 30887 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccp7lM0j.s page 14 471 0110 40080000 .word 2112 472 0114 61180000 .word 6241 473 0118 02280000 .word 10242 474 011c 23380000 .word 14371 475 0120 CCC90000 .word 51660 476 0124 EDD90000 .word 55789 477 0128 8EE90000 .word 59790 478 012c AFF90000 .word 63919 479 0130 48890000 .word 35144 480 0134 69990000 .word 39273 481 0138 0AA90000 .word 43274 482 013c 2BB90000 .word 47403 483 0140 F55A0000 .word 23285 484 0144 D44A0000 .word 19156 485 0148 B77A0000 .word 31415 486 014c 966A0000 .word 27286 487 0150 711A0000 .word 6769 488 0154 500A0000 .word 2640 489 0158 333A0000 .word 14899 490 015c 122A0000 .word 10770 491 0160 FDDB0000 .word 56317 492 0164 DCCB0000 .word 52188 493 0168 BFFB0000 .word 64447 494 016c 9EEB0000 .word 60318 495 0170 799B0000 .word 39801 496 0174 588B0000 .word 35672 497 0178 3BBB0000 .word 47931 498 017c 1AAB0000 .word 43802 499 0180 A66C0000 .word 27814 500 0184 877C0000 .word 31879 501 0188 E44C0000 .word 19684 502 018c C55C0000 .word 23749 503 0190 222C0000 .word 11298 504 0194 033C0000 .word 15363 505 0198 600C0000 .word 3168 506 019c 411C0000 .word 7233 507 01a0 AEED0000 .word 60846 508 01a4 8FFD0000 .word 64911 509 01a8 ECCD0000 .word 52716 510 01ac CDDD0000 .word 56781 511 01b0 2AAD0000 .word 44330 512 01b4 0BBD0000 .word 48395 513 01b8 688D0000 .word 36200 514 01bc 499D0000 .word 40265 515 01c0 977E0000 .word 32407 516 01c4 B66E0000 .word 28342 517 01c8 D55E0000 .word 24277 518 01cc F44E0000 .word 20212 519 01d0 133E0000 .word 15891 520 01d4 322E0000 .word 11826 521 01d8 511E0000 .word 7761 522 01dc 700E0000 .word 3696 523 01e0 9FFF0000 .word 65439 524 01e4 BEEF0000 .word 61374 525 01e8 DDDF0000 .word 57309 526 01ec FCCF0000 .word 53244 527 01f0 1BBF0000 .word 48923 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccp7lM0j.s page 15 528 01f4 3AAF0000 .word 44858 529 01f8 599F0000 .word 40793 530 01fc 788F0000 .word 36728 531 0200 88910000 .word 37256 532 0204 A9810000 .word 33193 533 0208 CAB10000 .word 45514 534 020c EBA10000 .word 41451 535 0210 0CD10000 .word 53516 536 0214 2DC10000 .word 49453 537 0218 4EF10000 .word 61774 538 021c 6FE10000 .word 57711 539 0220 80100000 .word 4224 540 0224 A1000000 .word 161 541 0228 C2300000 .word 12482 542 022c E3200000 .word 8419 543 0230 04500000 .word 20484 544 0234 25400000 .word 16421 545 0238 46700000 .word 28742 546 023c 67600000 .word 24679 547 0240 B9830000 .word 33721 548 0244 98930000 .word 37784 549 0248 FBA30000 .word 41979 550 024c DAB30000 .word 46042 551 0250 3DC30000 .word 49981 552 0254 1CD30000 .word 54044 553 0258 7FE30000 .word 58239 554 025c 5EF30000 .word 62302 555 0260 B1020000 .word 689 556 0264 90120000 .word 4752 557 0268 F3220000 .word 8947 558 026c D2320000 .word 13010 559 0270 35420000 .word 16949 560 0274 14520000 .word 21012 561 0278 77620000 .word 25207 562 027c 56720000 .word 29270 563 0280 EAB50000 .word 46570 564 0284 CBA50000 .word 42443 565 0288 A8950000 .word 38312 566 028c 89850000 .word 34185 567 0290 6EF50000 .word 62830 568 0294 4FE50000 .word 58703 569 0298 2CD50000 .word 54572 570 029c 0DC50000 .word 50445 571 02a0 E2340000 .word 13538 572 02a4 C3240000 .word 9411 573 02a8 A0140000 .word 5280 574 02ac 81040000 .word 1153 575 02b0 66740000 .word 29798 576 02b4 47640000 .word 25671 577 02b8 24540000 .word 21540 578 02bc 05440000 .word 17413 579 02c0 DBA70000 .word 42971 580 02c4 FAB70000 .word 47098 581 02c8 99870000 .word 34713 582 02cc B8970000 .word 38840 583 02d0 5FE70000 .word 59231 584 02d4 7EF70000 .word 63358 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccp7lM0j.s page 16 585 02d8 1DC70000 .word 50973 586 02dc 3CD70000 .word 55100 587 02e0 D3260000 .word 9939 588 02e4 F2360000 .word 14066 589 02e8 91060000 .word 1681 590 02ec B0160000 .word 5808 591 02f0 57660000 .word 26199 592 02f4 76760000 .word 30326 593 02f8 15460000 .word 17941 594 02fc 34560000 .word 22068 595 0300 4CD90000 .word 55628 596 0304 6DC90000 .word 51565 597 0308 0EF90000 .word 63758 598 030c 2FE90000 .word 59695 599 0310 C8990000 .word 39368 600 0314 E9890000 .word 35305 601 0318 8AB90000 .word 47498 602 031c ABA90000 .word 43435 603 0320 44580000 .word 22596 604 0324 65480000 .word 18533 605 0328 06780000 .word 30726 606 032c 27680000 .word 26663 607 0330 C0180000 .word 6336 608 0334 E1080000 .word 2273 609 0338 82380000 .word 14466 610 033c A3280000 .word 10403 611 0340 7DCB0000 .word 52093 612 0344 5CDB0000 .word 56156 613 0348 3FEB0000 .word 60223 614 034c 1EFB0000 .word 64286 615 0350 F98B0000 .word 35833 616 0354 D89B0000 .word 39896 617 0358 BBAB0000 .word 43963 618 035c 9ABB0000 .word 48026 619 0360 754A0000 .word 19061 620 0364 545A0000 .word 23124 621 0368 376A0000 .word 27191 622 036c 167A0000 .word 31254 623 0370 F10A0000 .word 2801 624 0374 D01A0000 .word 6864 625 0378 B32A0000 .word 10931 626 037c 923A0000 .word 14994 627 0380 2EFD0000 .word 64814 628 0384 0FED0000 .word 60687 629 0388 6CDD0000 .word 56684 630 038c 4DCD0000 .word 52557 631 0390 AABD0000 .word 48554 632 0394 8BAD0000 .word 44427 633 0398 E89D0000 .word 40424 634 039c C98D0000 .word 36297 635 03a0 267C0000 .word 31782 636 03a4 076C0000 .word 27655 637 03a8 645C0000 .word 23652 638 03ac 454C0000 .word 19525 639 03b0 A23C0000 .word 15522 640 03b4 832C0000 .word 11395 641 03b8 E01C0000 .word 7392 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccp7lM0j.s page 17 642 03bc C10C0000 .word 3265 643 03c0 1FEF0000 .word 61215 644 03c4 3EFF0000 .word 65342 645 03c8 5DCF0000 .word 53085 646 03cc 7CDF0000 .word 57212 647 03d0 9BAF0000 .word 44955 648 03d4 BABF0000 .word 49082 649 03d8 D98F0000 .word 36825 650 03dc F89F0000 .word 40952 651 03e0 176E0000 .word 28183 652 03e4 367E0000 .word 32310 653 03e8 554E0000 .word 20053 654 03ec 745E0000 .word 24180 655 03f0 932E0000 .word 11923 656 03f4 B23E0000 .word 16050 657 03f8 D10E0000 .word 3793 658 03fc F01E0000 .word 7920 659 .text 660 .Letext0: 661 .file 2 "d:\\arm-gcc\\arm-none-eabi\\include\\machine\\_default_types.h" 662 .file 3 "d:\\arm-gcc\\arm-none-eabi\\include\\sys\\_stdint.h" ARM GAS C:\Users\zl835\AppData\Local\Temp\ccp7lM0j.s page 18 DEFINED SYMBOLS *ABS*:00000000 soft_crc.c C:\Users\zl835\AppData\Local\Temp\ccp7lM0j.s:20 .text.crc_ccitt:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccp7lM0j.s:27 .text.crc_ccitt:00000000 crc_ccitt C:\Users\zl835\AppData\Local\Temp\ccp7lM0j.s:94 .text.crc_ccitt:00000030 $d C:\Users\zl835\AppData\Local\Temp\ccp7lM0j.s:99 .text.Get_Crc16:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccp7lM0j.s:106 .text.Get_Crc16:00000000 Get_Crc16 C:\Users\zl835\AppData\Local\Temp\ccp7lM0j.s:181 .text.Get_Crc16:00000030 $d C:\Users\zl835\AppData\Local\Temp\ccp7lM0j.s:187 .text.Int2String:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccp7lM0j.s:194 .text.Int2String:00000000 Int2String C:\Users\zl835\AppData\Local\Temp\ccp7lM0j.s:346 .text.Int2String:00000098 $d C:\Users\zl835\AppData\Local\Temp\ccp7lM0j.s:381 .rodata.auchCRCLo:00000000 auchCRCLo C:\Users\zl835\AppData\Local\Temp\ccp7lM0j.s:358 .rodata.auchCRCHi:00000000 auchCRCHi C:\Users\zl835\AppData\Local\Temp\ccp7lM0j.s:402 .rodata.ccitt_table:00000000 ccitt_table C:\Users\zl835\AppData\Local\Temp\ccp7lM0j.s:354 .rodata.auchCRCHi:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccp7lM0j.s:377 .rodata.auchCRCLo:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccp7lM0j.s:398 .rodata.ccitt_table:00000000 $d NO UNDEFINED SYMBOLS