| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057 |
- ARM GAS C:\Users\10728\AppData\Local\Temp\cc82yckV.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_uart.c"
- 16 .text
- 17 .Ltext0:
- 18 .cfi_sections .debug_frame
- 19 .section .text.uart1_send_msg,"ax",%progbits
- 20 .align 1
- 21 .global uart1_send_msg
- 22 .syntax unified
- 23 .thumb
- 24 .thumb_func
- 26 uart1_send_msg:
- 27 .LFB238:
- 28 .file 1 "Core/Src/soft_uart.c"
- 1:Core/Src/soft_uart.c **** #include "soft_uart.h"
- 2:Core/Src/soft_uart.c **** #include "stm32f4xx_hal_uart.h"
- 3:Core/Src/soft_uart.c **** #include "string.h"
- 4:Core/Src/soft_uart.c **** #include "soft_flash.h"
- 5:Core/Src/soft_uart.c **** #include "soft_crc.h"
- 6:Core/Src/soft_uart.c ****
- 7:Core/Src/soft_uart.c **** extern UART_HandleTypeDef huart1;
- 8:Core/Src/soft_uart.c **** void uart1_send_msg(uint8_t *data, uint8_t size)
- 9:Core/Src/soft_uart.c **** {
- 29 .loc 1 9 1
- 30 .cfi_startproc
- 31 @ args = 0, pretend = 0, frame = 8
- 32 @ frame_needed = 1, uses_anonymous_args = 0
- 33 0000 80B5 push {r7, lr}
- 34 .LCFI0:
- 35 .cfi_def_cfa_offset 8
- 36 .cfi_offset 7, -8
- 37 .cfi_offset 14, -4
- 38 0002 82B0 sub sp, sp, #8
- 39 .LCFI1:
- 40 .cfi_def_cfa_offset 16
- 41 0004 00AF add r7, sp, #0
- 42 .LCFI2:
- 43 .cfi_def_cfa_register 7
- 44 0006 7860 str r0, [r7, #4]
- 45 0008 0B46 mov r3, r1
- 46 000a FB70 strb r3, [r7, #3]
- 10:Core/Src/soft_uart.c **** static uint32_t send_time = 0;
- 11:Core/Src/soft_uart.c ****
- 12:Core/Src/soft_uart.c **** send_time = HAL_GetTick();
- ARM GAS C:\Users\10728\AppData\Local\Temp\cc82yckV.s page 2
- 47 .loc 1 12 17
- 48 000c FFF7FEFF bl HAL_GetTick
- 49 0010 0346 mov r3, r0
- 50 .loc 1 12 15
- 51 0012 0A4A ldr r2, .L3
- 52 0014 1360 str r3, [r2]
- 13:Core/Src/soft_uart.c **** while (HAL_GetTick() - send_time < 1)
- 53 .loc 1 13 11
- 54 0016 00BF nop
- 55 .L2:
- 56 .loc 1 13 12 discriminator 1
- 57 0018 FFF7FEFF bl HAL_GetTick
- 58 001c 0246 mov r2, r0
- 59 .loc 1 13 38 discriminator 1
- 60 001e 074B ldr r3, .L3
- 61 0020 1B68 ldr r3, [r3]
- 62 .loc 1 13 11 discriminator 1
- 63 0022 9A42 cmp r2, r3
- 64 0024 F8D0 beq .L2
- 14:Core/Src/soft_uart.c **** ;
- 15:Core/Src/soft_uart.c **** HAL_UART_Transmit_DMA(&huart1, data, size);
- 65 .loc 1 15 5
- 66 0026 FB78 ldrb r3, [r7, #3] @ zero_extendqisi2
- 67 0028 9BB2 uxth r3, r3
- 68 002a 1A46 mov r2, r3
- 69 002c 7968 ldr r1, [r7, #4]
- 70 002e 0448 ldr r0, .L3+4
- 71 0030 FFF7FEFF bl HAL_UART_Transmit_DMA
- 16:Core/Src/soft_uart.c **** }
- 72 .loc 1 16 1
- 73 0034 00BF nop
- 74 0036 0837 adds r7, r7, #8
- 75 .LCFI3:
- 76 .cfi_def_cfa_offset 8
- 77 0038 BD46 mov sp, r7
- 78 .LCFI4:
- 79 .cfi_def_cfa_register 13
- 80 @ sp needed
- 81 003a 80BD pop {r7, pc}
- 82 .L4:
- 83 .align 2
- 84 .L3:
- 85 003c 00000000 .word send_time.0
- 86 0040 00000000 .word huart1
- 87 .cfi_endproc
- 88 .LFE238:
- 90 .global FMU_uart_buf
- 91 .section .bss.FMU_uart_buf,"aw",%nobits
- 92 .align 2
- 95 FMU_uart_buf:
- 96 0000 00000000 .space 256
- 96 00000000
- 96 00000000
- 96 00000000
- 96 00000000
- 97 .global update
- 98 .section .bss.update,"aw",%nobits
- ARM GAS C:\Users\10728\AppData\Local\Temp\cc82yckV.s page 3
- 99 .align 2
- 102 update:
- 103 0000 00000000 .space 257
- 103 00000000
- 103 00000000
- 103 00000000
- 103 00000000
- 104 .section .text.USER_UART_IRQHandler,"ax",%progbits
- 105 .align 1
- 106 .global USER_UART_IRQHandler
- 107 .syntax unified
- 108 .thumb
- 109 .thumb_func
- 111 USER_UART_IRQHandler:
- 112 .LFB239:
- 17:Core/Src/soft_uart.c ****
- 18:Core/Src/soft_uart.c **** uint8_t FMU_uart_buf[MAX_UART_BUF] = {0};
- 19:Core/Src/soft_uart.c **** Update update;
- 20:Core/Src/soft_uart.c **** void USER_UART_IRQHandler(UART_HandleTypeDef *huart)
- 21:Core/Src/soft_uart.c **** {
- 113 .loc 1 21 1
- 114 .cfi_startproc
- 115 @ args = 0, pretend = 0, frame = 16
- 116 @ frame_needed = 1, uses_anonymous_args = 0
- 117 0000 80B5 push {r7, lr}
- 118 .LCFI5:
- 119 .cfi_def_cfa_offset 8
- 120 .cfi_offset 7, -8
- 121 .cfi_offset 14, -4
- 122 0002 84B0 sub sp, sp, #16
- 123 .LCFI6:
- 124 .cfi_def_cfa_offset 24
- 125 0004 00AF add r7, sp, #0
- 126 .LCFI7:
- 127 .cfi_def_cfa_register 7
- 128 0006 7860 str r0, [r7, #4]
- 22:Core/Src/soft_uart.c **** uint32_t recv_count = 0;
- 129 .loc 1 22 14
- 130 0008 0023 movs r3, #0
- 131 000a FB60 str r3, [r7, #12]
- 23:Core/Src/soft_uart.c **** if (huart == &huart1)
- 132 .loc 1 23 8
- 133 000c 7B68 ldr r3, [r7, #4]
- 134 000e 244A ldr r2, .L9
- 135 0010 9342 cmp r3, r2
- 136 0012 40D1 bne .L8
- 24:Core/Src/soft_uart.c **** {
- 25:Core/Src/soft_uart.c **** if (RESET != __HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE))
- 137 .loc 1 25 22
- 138 0014 7B68 ldr r3, [r7, #4]
- 139 0016 1B68 ldr r3, [r3]
- 140 0018 1B68 ldr r3, [r3]
- 141 001a 03F01003 and r3, r3, #16
- 142 .loc 1 25 12
- 143 001e 102B cmp r3, #16
- 144 0020 39D1 bne .L8
- 145 .LBB2:
- ARM GAS C:\Users\10728\AppData\Local\Temp\cc82yckV.s page 4
- 26:Core/Src/soft_uart.c **** {
- 27:Core/Src/soft_uart.c **** __HAL_UART_CLEAR_IDLEFLAG(huart);
- 146 .loc 1 27 13
- 147 0022 0023 movs r3, #0
- 148 0024 BB60 str r3, [r7, #8]
- 149 0026 7B68 ldr r3, [r7, #4]
- 150 0028 1B68 ldr r3, [r3]
- 151 002a 1B68 ldr r3, [r3]
- 152 002c BB60 str r3, [r7, #8]
- 153 002e 7B68 ldr r3, [r7, #4]
- 154 0030 1B68 ldr r3, [r3]
- 155 0032 5B68 ldr r3, [r3, #4]
- 156 0034 BB60 str r3, [r7, #8]
- 157 0036 BB68 ldr r3, [r7, #8]
- 158 .LBE2:
- 28:Core/Src/soft_uart.c **** HAL_UART_AbortReceive(huart);
- 159 .loc 1 28 13
- 160 0038 7868 ldr r0, [r7, #4]
- 161 003a FFF7FEFF bl HAL_UART_AbortReceive
- 29:Core/Src/soft_uart.c **** recv_count = MAX_UART_BUF - __HAL_DMA_GET_COUNTER(huart->hdmarx);
- 162 .loc 1 29 41
- 163 003e 7B68 ldr r3, [r7, #4]
- 164 0040 9B6B ldr r3, [r3, #56]
- 165 0042 1B68 ldr r3, [r3]
- 166 0044 5B68 ldr r3, [r3, #4]
- 167 .loc 1 29 24
- 168 0046 C3F58073 rsb r3, r3, #256
- 169 004a FB60 str r3, [r7, #12]
- 30:Core/Src/soft_uart.c ****
- 31:Core/Src/soft_uart.c **** // 检测是否是新的一包数据
- 32:Core/Src/soft_uart.c **** if (FMU_uart_buf[0] == 0xFE && FMU_uart_buf[4] == 204 && update.usebuf_flag == false)
- 170 .loc 1 32 29
- 171 004c 154B ldr r3, .L9+4
- 172 004e 1B78 ldrb r3, [r3] @ zero_extendqisi2
- 173 .loc 1 32 16
- 174 0050 FE2B cmp r3, #254
- 175 0052 14D1 bne .L7
- 176 .loc 1 32 56 discriminator 1
- 177 0054 134B ldr r3, .L9+4
- 178 0056 1B79 ldrb r3, [r3, #4] @ zero_extendqisi2
- 179 .loc 1 32 41 discriminator 1
- 180 0058 CC2B cmp r3, #204
- 181 005a 10D1 bne .L7
- 182 .loc 1 32 76 discriminator 2
- 183 005c 124B ldr r3, .L9+8
- 184 005e 93F80031 ldrb r3, [r3, #256] @ zero_extendqisi2
- 185 .loc 1 32 89 discriminator 2
- 186 0062 83F00103 eor r3, r3, #1
- 187 0066 DBB2 uxtb r3, r3
- 188 .loc 1 32 67 discriminator 2
- 189 0068 002B cmp r3, #0
- 190 006a 08D0 beq .L7
- 33:Core/Src/soft_uart.c **** {
- 34:Core/Src/soft_uart.c **** memcpy(update.data, FMU_uart_buf, recv_count);
- 191 .loc 1 34 17
- 192 006c FA68 ldr r2, [r7, #12]
- 193 006e 0D49 ldr r1, .L9+4
- ARM GAS C:\Users\10728\AppData\Local\Temp\cc82yckV.s page 5
- 194 0070 0D48 ldr r0, .L9+8
- 195 0072 FFF7FEFF bl memcpy
- 35:Core/Src/soft_uart.c **** update.usebuf_flag = true;
- 196 .loc 1 35 36
- 197 0076 0C4B ldr r3, .L9+8
- 198 0078 0122 movs r2, #1
- 199 007a 83F80021 strb r2, [r3, #256]
- 200 .L7:
- 36:Core/Src/soft_uart.c **** }
- 37:Core/Src/soft_uart.c ****
- 38:Core/Src/soft_uart.c **** memset(FMU_uart_buf, 0, MAX_UART_BUF);
- 201 .loc 1 38 13
- 202 007e 4FF48072 mov r2, #256
- 203 0082 0021 movs r1, #0
- 204 0084 0748 ldr r0, .L9+4
- 205 0086 FFF7FEFF bl memset
- 39:Core/Src/soft_uart.c **** HAL_UART_Receive_DMA(huart, FMU_uart_buf, MAX_UART_BUF);
- 206 .loc 1 39 13
- 207 008a 4FF48072 mov r2, #256
- 208 008e 0549 ldr r1, .L9+4
- 209 0090 7868 ldr r0, [r7, #4]
- 210 0092 FFF7FEFF bl HAL_UART_Receive_DMA
- 211 .L8:
- 40:Core/Src/soft_uart.c **** }
- 41:Core/Src/soft_uart.c **** }
- 42:Core/Src/soft_uart.c **** }
- 212 .loc 1 42 1
- 213 0096 00BF nop
- 214 0098 1037 adds r7, r7, #16
- 215 .LCFI8:
- 216 .cfi_def_cfa_offset 8
- 217 009a BD46 mov sp, r7
- 218 .LCFI9:
- 219 .cfi_def_cfa_register 13
- 220 @ sp needed
- 221 009c 80BD pop {r7, pc}
- 222 .L10:
- 223 009e 00BF .align 2
- 224 .L9:
- 225 00a0 00000000 .word huart1
- 226 00a4 00000000 .word FMU_uart_buf
- 227 00a8 00000000 .word update
- 228 .cfi_endproc
- 229 .LFE239:
- 231 .global msg_buf
- 232 .section .bss.msg_buf,"aw",%nobits
- 233 .align 2
- 236 msg_buf:
- 237 0000 00000000 .space 64
- 237 00000000
- 237 00000000
- 237 00000000
- 237 00000000
- 238 .section .text.Update_ack_fmu,"ax",%progbits
- 239 .align 1
- 240 .global Update_ack_fmu
- 241 .syntax unified
- ARM GAS C:\Users\10728\AppData\Local\Temp\cc82yckV.s page 6
- 242 .thumb
- 243 .thumb_func
- 245 Update_ack_fmu:
- 246 .LFB240:
- 43:Core/Src/soft_uart.c ****
- 44:Core/Src/soft_uart.c **** uint8_t msg_buf[64] = {0};
- 45:Core/Src/soft_uart.c **** void Update_ack_fmu(uint8_t msg_id, uint8_t *ackbuf)
- 46:Core/Src/soft_uart.c **** {
- 247 .loc 1 46 1
- 248 .cfi_startproc
- 249 @ args = 0, pretend = 0, frame = 16
- 250 @ frame_needed = 1, uses_anonymous_args = 0
- 251 0000 80B5 push {r7, lr}
- 252 .LCFI10:
- 253 .cfi_def_cfa_offset 8
- 254 .cfi_offset 7, -8
- 255 .cfi_offset 14, -4
- 256 0002 84B0 sub sp, sp, #16
- 257 .LCFI11:
- 258 .cfi_def_cfa_offset 24
- 259 0004 00AF add r7, sp, #0
- 260 .LCFI12:
- 261 .cfi_def_cfa_register 7
- 262 0006 0346 mov r3, r0
- 263 0008 3960 str r1, [r7]
- 264 000a FB71 strb r3, [r7, #7]
- 47:Core/Src/soft_uart.c ****
- 48:Core/Src/soft_uart.c **** int index = 0;
- 265 .loc 1 48 9
- 266 000c 0023 movs r3, #0
- 267 000e FB60 str r3, [r7, #12]
- 49:Core/Src/soft_uart.c **** msg_buf[index++] = 0xFE;
- 268 .loc 1 49 18
- 269 0010 FB68 ldr r3, [r7, #12]
- 270 0012 5A1C adds r2, r3, #1
- 271 0014 FA60 str r2, [r7, #12]
- 272 .loc 1 49 22
- 273 0016 2D4A ldr r2, .L12
- 274 0018 FE21 movs r1, #254
- 275 001a D154 strb r1, [r2, r3]
- 50:Core/Src/soft_uart.c **** msg_buf[index++] = 0;
- 276 .loc 1 50 18
- 277 001c FB68 ldr r3, [r7, #12]
- 278 001e 5A1C adds r2, r3, #1
- 279 0020 FA60 str r2, [r7, #12]
- 280 .loc 1 50 22
- 281 0022 2A4A ldr r2, .L12
- 282 0024 0021 movs r1, #0
- 283 0026 D154 strb r1, [r2, r3]
- 51:Core/Src/soft_uart.c **** msg_buf[index++] = 0;
- 284 .loc 1 51 18
- 285 0028 FB68 ldr r3, [r7, #12]
- 286 002a 5A1C adds r2, r3, #1
- 287 002c FA60 str r2, [r7, #12]
- 288 .loc 1 51 22
- 289 002e 274A ldr r2, .L12
- 290 0030 0021 movs r1, #0
- ARM GAS C:\Users\10728\AppData\Local\Temp\cc82yckV.s page 7
- 291 0032 D154 strb r1, [r2, r3]
- 52:Core/Src/soft_uart.c **** msg_buf[index++] = 0x00;
- 292 .loc 1 52 18
- 293 0034 FB68 ldr r3, [r7, #12]
- 294 0036 5A1C adds r2, r3, #1
- 295 0038 FA60 str r2, [r7, #12]
- 296 .loc 1 52 22
- 297 003a 244A ldr r2, .L12
- 298 003c 0021 movs r1, #0
- 299 003e D154 strb r1, [r2, r3]
- 53:Core/Src/soft_uart.c **** msg_buf[index++] = 204;
- 300 .loc 1 53 18
- 301 0040 FB68 ldr r3, [r7, #12]
- 302 0042 5A1C adds r2, r3, #1
- 303 0044 FA60 str r2, [r7, #12]
- 304 .loc 1 53 22
- 305 0046 214A ldr r2, .L12
- 306 0048 CC21 movs r1, #204
- 307 004a D154 strb r1, [r2, r3]
- 54:Core/Src/soft_uart.c **** msg_buf[index++] = 21;
- 308 .loc 1 54 18
- 309 004c FB68 ldr r3, [r7, #12]
- 310 004e 5A1C adds r2, r3, #1
- 311 0050 FA60 str r2, [r7, #12]
- 312 .loc 1 54 22
- 313 0052 1E4A ldr r2, .L12
- 314 0054 1521 movs r1, #21
- 315 0056 D154 strb r1, [r2, r3]
- 55:Core/Src/soft_uart.c ****
- 56:Core/Src/soft_uart.c **** msg_buf[index++] = msg_id;
- 316 .loc 1 56 18
- 317 0058 FB68 ldr r3, [r7, #12]
- 318 005a 5A1C adds r2, r3, #1
- 319 005c FA60 str r2, [r7, #12]
- 320 .loc 1 56 22
- 321 005e 1B49 ldr r1, .L12
- 322 0060 FA79 ldrb r2, [r7, #7]
- 323 0062 CA54 strb r2, [r1, r3]
- 57:Core/Src/soft_uart.c **** msg_buf[index++] = *ackbuf;
- 324 .loc 1 57 18
- 325 0064 FB68 ldr r3, [r7, #12]
- 326 0066 5A1C adds r2, r3, #1
- 327 0068 FA60 str r2, [r7, #12]
- 328 .loc 1 57 24
- 329 006a 3A68 ldr r2, [r7]
- 330 006c 1178 ldrb r1, [r2] @ zero_extendqisi2
- 331 .loc 1 57 22
- 332 006e 174A ldr r2, .L12
- 333 0070 D154 strb r1, [r2, r3]
- 58:Core/Src/soft_uart.c **** msg_buf[index++] = *(ackbuf + 1);
- 334 .loc 1 58 18
- 335 0072 FB68 ldr r3, [r7, #12]
- 336 0074 5A1C adds r2, r3, #1
- 337 0076 FA60 str r2, [r7, #12]
- 338 .loc 1 58 22
- 339 0078 3A68 ldr r2, [r7]
- 340 007a 5178 ldrb r1, [r2, #1] @ zero_extendqisi2
- ARM GAS C:\Users\10728\AppData\Local\Temp\cc82yckV.s page 8
- 341 007c 134A ldr r2, .L12
- 342 007e D154 strb r1, [r2, r3]
- 59:Core/Src/soft_uart.c **** msg_buf[index++] = 1;
- 343 .loc 1 59 18
- 344 0080 FB68 ldr r3, [r7, #12]
- 345 0082 5A1C adds r2, r3, #1
- 346 0084 FA60 str r2, [r7, #12]
- 347 .loc 1 59 22
- 348 0086 114A ldr r2, .L12
- 349 0088 0121 movs r1, #1
- 350 008a D154 strb r1, [r2, r3]
- 60:Core/Src/soft_uart.c ****
- 61:Core/Src/soft_uart.c **** msg_buf[1] = index - 6;
- 351 .loc 1 61 24
- 352 008c FB68 ldr r3, [r7, #12]
- 353 008e DBB2 uxtb r3, r3
- 354 0090 063B subs r3, r3, #6
- 355 0092 DAB2 uxtb r2, r3
- 356 .loc 1 61 16
- 357 0094 0D4B ldr r3, .L12
- 358 0096 5A70 strb r2, [r3, #1]
- 62:Core/Src/soft_uart.c **** uint16_t uart_crc = Get_Crc16(msg_buf, index);
- 359 .loc 1 62 25
- 360 0098 FB68 ldr r3, [r7, #12]
- 361 009a 9BB2 uxth r3, r3
- 362 009c 1946 mov r1, r3
- 363 009e 0B48 ldr r0, .L12
- 364 00a0 FFF7FEFF bl Get_Crc16
- 365 00a4 0346 mov r3, r0
- 366 .loc 1 62 14
- 367 00a6 7B81 strh r3, [r7, #10] @ movhi
- 63:Core/Src/soft_uart.c **** memcpy(&msg_buf[index], &uart_crc, 2);
- 368 .loc 1 63 12
- 369 00a8 FB68 ldr r3, [r7, #12]
- 370 00aa 084A ldr r2, .L12
- 371 00ac 1344 add r3, r3, r2
- 372 00ae 7A89 ldrh r2, [r7, #10]
- 373 .loc 1 63 5
- 374 00b0 1A80 strh r2, [r3] @ unaligned
- 64:Core/Src/soft_uart.c **** index += 2;
- 375 .loc 1 64 11
- 376 00b2 FB68 ldr r3, [r7, #12]
- 377 00b4 0233 adds r3, r3, #2
- 378 00b6 FB60 str r3, [r7, #12]
- 65:Core/Src/soft_uart.c ****
- 66:Core/Src/soft_uart.c **** uart1_send_msg(msg_buf, index);
- 379 .loc 1 66 5
- 380 00b8 FB68 ldr r3, [r7, #12]
- 381 00ba DBB2 uxtb r3, r3
- 382 00bc 1946 mov r1, r3
- 383 00be 0348 ldr r0, .L12
- 384 00c0 FFF7FEFF bl uart1_send_msg
- 67:Core/Src/soft_uart.c **** }
- 385 .loc 1 67 1
- 386 00c4 00BF nop
- 387 00c6 1037 adds r7, r7, #16
- 388 .LCFI13:
- ARM GAS C:\Users\10728\AppData\Local\Temp\cc82yckV.s page 9
- 389 .cfi_def_cfa_offset 8
- 390 00c8 BD46 mov sp, r7
- 391 .LCFI14:
- 392 .cfi_def_cfa_register 13
- 393 @ sp needed
- 394 00ca 80BD pop {r7, pc}
- 395 .L13:
- 396 .align 2
- 397 .L12:
- 398 00cc 00000000 .word msg_buf
- 399 .cfi_endproc
- 400 .LFE240:
- 402 .section .text.check_usart_is_ok,"ax",%progbits
- 403 .align 1
- 404 .global check_usart_is_ok
- 405 .syntax unified
- 406 .thumb
- 407 .thumb_func
- 409 check_usart_is_ok:
- 410 .LFB241:
- 68:Core/Src/soft_uart.c ****
- 69:Core/Src/soft_uart.c **** bool check_usart_is_ok(void)
- 70:Core/Src/soft_uart.c **** {
- 411 .loc 1 70 1
- 412 .cfi_startproc
- 413 @ args = 0, pretend = 0, frame = 0
- 414 @ frame_needed = 1, uses_anonymous_args = 0
- 415 @ link register save eliminated.
- 416 0000 80B4 push {r7}
- 417 .LCFI15:
- 418 .cfi_def_cfa_offset 4
- 419 .cfi_offset 7, -4
- 420 0002 00AF add r7, sp, #0
- 421 .LCFI16:
- 422 .cfi_def_cfa_register 7
- 71:Core/Src/soft_uart.c **** if (huart1.gState == HAL_UART_STATE_READY && (__HAL_UART_GET_FLAG(&huart1, UART_FLAG_TC) != RES
- 423 .loc 1 71 15
- 424 0004 0D4B ldr r3, .L19
- 425 0006 93F83D30 ldrb r3, [r3, #61]
- 426 000a DBB2 uxtb r3, r3
- 427 .loc 1 71 8
- 428 000c 202B cmp r3, #32
- 429 000e 0DD1 bne .L15
- 430 .loc 1 71 51 discriminator 1
- 431 0010 0A4B ldr r3, .L19
- 432 0012 1B68 ldr r3, [r3]
- 433 0014 1B68 ldr r3, [r3]
- 434 0016 03F04003 and r3, r3, #64
- 435 .loc 1 71 47 discriminator 1
- 436 001a 402B cmp r3, #64
- 437 001c 06D1 bne .L15
- 438 .loc 1 71 106 discriminator 2
- 439 001e 074B ldr r3, .L19
- 440 0020 1B68 ldr r3, [r3]
- 441 0022 1B68 ldr r3, [r3]
- 442 0024 03F08003 and r3, r3, #128
- 443 .loc 1 71 103 discriminator 2
- ARM GAS C:\Users\10728\AppData\Local\Temp\cc82yckV.s page 10
- 444 0028 802B cmp r3, #128
- 445 002a 01D0 beq .L18
- 446 .L15:
- 72:Core/Src/soft_uart.c **** {
- 73:Core/Src/soft_uart.c **** }
- 74:Core/Src/soft_uart.c **** else
- 75:Core/Src/soft_uart.c **** {
- 76:Core/Src/soft_uart.c **** return false;
- 447 .loc 1 76 16
- 448 002c 0023 movs r3, #0
- 449 002e 00E0 b .L17
- 450 .L18:
- 77:Core/Src/soft_uart.c **** }
- 78:Core/Src/soft_uart.c **** return true;
- 451 .loc 1 78 12
- 452 0030 0123 movs r3, #1
- 453 .L17:
- 79:Core/Src/soft_uart.c **** }
- 454 .loc 1 79 1
- 455 0032 1846 mov r0, r3
- 456 0034 BD46 mov sp, r7
- 457 .LCFI17:
- 458 .cfi_def_cfa_register 13
- 459 @ sp needed
- 460 0036 5DF8047B ldr r7, [sp], #4
- 461 .LCFI18:
- 462 .cfi_restore 7
- 463 .cfi_def_cfa_offset 0
- 464 003a 7047 bx lr
- 465 .L20:
- 466 .align 2
- 467 .L19:
- 468 003c 00000000 .word huart1
- 469 .cfi_endproc
- 470 .LFE241:
- 472 .global addr_offset
- 473 .section .bss.addr_offset,"aw",%nobits
- 474 .align 2
- 477 addr_offset:
- 478 0000 00000000 .space 4
- 479 .global cur_pack_num
- 480 .section .bss.cur_pack_num,"aw",%nobits
- 481 .align 2
- 484 cur_pack_num:
- 485 0000 00000000 .space 4
- 486 .global update_complete
- 487 .section .bss.update_complete,"aw",%nobits
- 490 update_complete:
- 491 0000 00 .space 1
- 492 .section .text.update_function,"ax",%progbits
- 493 .align 1
- 494 .global update_function
- 495 .syntax unified
- 496 .thumb
- 497 .thumb_func
- 499 update_function:
- 500 .LFB242:
- ARM GAS C:\Users\10728\AppData\Local\Temp\cc82yckV.s page 11
- 80:Core/Src/soft_uart.c ****
- 81:Core/Src/soft_uart.c **** uint32_t addr_offset = 0;
- 82:Core/Src/soft_uart.c **** uint32_t cur_pack_num = 0;
- 83:Core/Src/soft_uart.c **** bool update_complete = false;
- 84:Core/Src/soft_uart.c **** void update_function(void)
- 85:Core/Src/soft_uart.c **** {
- 501 .loc 1 85 1
- 502 .cfi_startproc
- 503 @ args = 0, pretend = 0, frame = 8
- 504 @ frame_needed = 1, uses_anonymous_args = 0
- 505 0000 80B5 push {r7, lr}
- 506 .LCFI19:
- 507 .cfi_def_cfa_offset 8
- 508 .cfi_offset 7, -8
- 509 .cfi_offset 14, -4
- 510 0002 82B0 sub sp, sp, #8
- 511 .LCFI20:
- 512 .cfi_def_cfa_offset 16
- 513 0004 00AF add r7, sp, #0
- 514 .LCFI21:
- 515 .cfi_def_cfa_register 7
- 86:Core/Src/soft_uart.c **** uint16_t crc = Get_Crc16(update.data, (uint16_t)update.data[LEN] + 2 + 6);
- 516 .loc 1 86 64
- 517 0006 594B ldr r3, .L39
- 518 0008 5B78 ldrb r3, [r3, #1] @ zero_extendqisi2
- 519 000a 9BB2 uxth r3, r3
- 520 .loc 1 86 20
- 521 000c 0833 adds r3, r3, #8
- 522 000e 9BB2 uxth r3, r3
- 523 0010 1946 mov r1, r3
- 524 0012 5648 ldr r0, .L39
- 525 0014 FFF7FEFF bl Get_Crc16
- 526 0018 0346 mov r3, r0
- 527 001a FB80 strh r3, [r7, #6] @ movhi
- 87:Core/Src/soft_uart.c **** int temp_32t = 0;
- 528 .loc 1 87 9
- 529 001c 0023 movs r3, #0
- 530 001e 3B60 str r3, [r7]
- 88:Core/Src/soft_uart.c ****
- 89:Core/Src/soft_uart.c **** if (crc != 0 || check_usart_is_ok() != true)
- 531 .loc 1 89 8
- 532 0020 FB88 ldrh r3, [r7, #6]
- 533 0022 002B cmp r3, #0
- 534 0024 07D1 bne .L22
- 535 .loc 1 89 21 discriminator 1
- 536 0026 FFF7FEFF bl check_usart_is_ok
- 537 002a 0346 mov r3, r0
- 538 .loc 1 89 41 discriminator 1
- 539 002c 83F00103 eor r3, r3, #1
- 540 0030 DBB2 uxtb r3, r3
- 541 .loc 1 89 18 discriminator 1
- 542 0032 002B cmp r3, #0
- 543 0034 04D0 beq .L23
- 544 .L22:
- 90:Core/Src/soft_uart.c **** {
- 91:Core/Src/soft_uart.c **** update.usebuf_flag = false;
- 545 .loc 1 91 28
- ARM GAS C:\Users\10728\AppData\Local\Temp\cc82yckV.s page 12
- 546 0036 4D4B ldr r3, .L39
- 547 0038 0022 movs r2, #0
- 548 003a 83F80021 strb r2, [r3, #256]
- 549 003e 92E0 b .L21
- 550 .L23:
- 92:Core/Src/soft_uart.c **** return;
- 93:Core/Src/soft_uart.c **** }
- 94:Core/Src/soft_uart.c ****
- 95:Core/Src/soft_uart.c **** switch (update.data[MSGID_ID])
- 551 .loc 1 95 24
- 552 0040 4A4B ldr r3, .L39
- 553 0042 5B79 ldrb r3, [r3, #5] @ zero_extendqisi2
- 554 .loc 1 95 5
- 555 0044 CA2B cmp r3, #202
- 556 0046 61D0 beq .L25
- 557 0048 CA2B cmp r3, #202
- 558 004a 7BDC bgt .L35
- 559 004c C82B cmp r3, #200
- 560 004e 02D0 beq .L27
- 561 0050 C92B cmp r3, #201
- 562 0052 16D0 beq .L28
- 96:Core/Src/soft_uart.c **** {
- 97:Core/Src/soft_uart.c **** case UPDATE_START:
- 98:Core/Src/soft_uart.c **** memcpy(&temp_32t, &update.data[PAYLOAD], 4);
- 99:Core/Src/soft_uart.c **** if (temp_32t < 512000) // 500kb 避免把FMU固件刷到pmu
- 100:Core/Src/soft_uart.c **** {
- 101:Core/Src/soft_uart.c **** temp_32t = 0;
- 102:Core/Src/soft_uart.c **** Update_ack_fmu(UPDATE_START, (uint8_t *)&temp_32t);
- 103:Core/Src/soft_uart.c **** addr_offset = 0;
- 104:Core/Src/soft_uart.c **** cur_pack_num = 1;
- 105:Core/Src/soft_uart.c **** }
- 106:Core/Src/soft_uart.c **** break;
- 107:Core/Src/soft_uart.c **** case UPDATE_ING:
- 108:Core/Src/soft_uart.c **** if (cur_pack_num == update.data[PAYLOAD] + update.data[PAYLOAD + 1] * 256)
- 109:Core/Src/soft_uart.c **** {
- 110:Core/Src/soft_uart.c **** temp_32t = Flash_WriteData(FLASH_APP_ADDR + addr_offset, (uint16_t *)&update.data[PAYLO
- 111:Core/Src/soft_uart.c **** if (temp_32t == WRITE_SUCCESS)
- 112:Core/Src/soft_uart.c **** {
- 113:Core/Src/soft_uart.c **** cur_pack_num++;
- 114:Core/Src/soft_uart.c **** addr_offset += update.data[LEN] - 2;
- 115:Core/Src/soft_uart.c **** Update_ack_fmu(UPDATE_ING, &update.data[PAYLOAD]);
- 116:Core/Src/soft_uart.c **** }
- 117:Core/Src/soft_uart.c **** }
- 118:Core/Src/soft_uart.c **** else if(cur_pack_num > update.data[PAYLOAD] + update.data[PAYLOAD + 1] * 256)
- 119:Core/Src/soft_uart.c **** {
- 120:Core/Src/soft_uart.c **** Update_ack_fmu(UPDATE_ING, &update.data[PAYLOAD]);
- 121:Core/Src/soft_uart.c **** }
- 122:Core/Src/soft_uart.c **** break;
- 123:Core/Src/soft_uart.c **** case UPDATE_END:
- 124:Core/Src/soft_uart.c **** temp_32t = 0;
- 125:Core/Src/soft_uart.c **** if(update_complete != true)
- 126:Core/Src/soft_uart.c **** {
- 127:Core/Src/soft_uart.c **** update_complete = wirte_update_flag();
- 128:Core/Src/soft_uart.c **** if(update_complete == true)
- 129:Core/Src/soft_uart.c **** Update_ack_fmu(UPDATE_END, (uint8_t *)&temp_32t);
- 130:Core/Src/soft_uart.c **** HAL_Delay(50);
- 131:Core/Src/soft_uart.c **** }
- ARM GAS C:\Users\10728\AppData\Local\Temp\cc82yckV.s page 13
- 132:Core/Src/soft_uart.c **** break;
- 133:Core/Src/soft_uart.c ****
- 134:Core/Src/soft_uart.c **** default:
- 135:Core/Src/soft_uart.c **** break;
- 563 .loc 1 135 9
- 564 0054 76E0 b .L35
- 565 .L27:
- 566 0056 454B ldr r3, .L39
- 567 0058 D3F80630 ldr r3, [r3, #6] @ unaligned
- 98:Core/Src/soft_uart.c **** if (temp_32t < 512000) // 500kb 避免把FMU固件刷到pmu
- 568 .loc 1 98 9
- 569 005c 3B60 str r3, [r7]
- 99:Core/Src/soft_uart.c **** {
- 570 .loc 1 99 22
- 571 005e 3B68 ldr r3, [r7]
- 99:Core/Src/soft_uart.c **** {
- 572 .loc 1 99 12
- 573 0060 B3F5FA2F cmp r3, #512000
- 574 0064 70DA bge .L36
- 101:Core/Src/soft_uart.c **** Update_ack_fmu(UPDATE_START, (uint8_t *)&temp_32t);
- 575 .loc 1 101 22
- 576 0066 0023 movs r3, #0
- 577 0068 3B60 str r3, [r7]
- 102:Core/Src/soft_uart.c **** addr_offset = 0;
- 578 .loc 1 102 13
- 579 006a 3B46 mov r3, r7
- 580 006c 1946 mov r1, r3
- 581 006e C820 movs r0, #200
- 582 0070 FFF7FEFF bl Update_ack_fmu
- 103:Core/Src/soft_uart.c **** cur_pack_num = 1;
- 583 .loc 1 103 25
- 584 0074 3E4B ldr r3, .L39+4
- 585 0076 0022 movs r2, #0
- 586 0078 1A60 str r2, [r3]
- 104:Core/Src/soft_uart.c **** }
- 587 .loc 1 104 26
- 588 007a 3E4B ldr r3, .L39+8
- 589 007c 0122 movs r2, #1
- 590 007e 1A60 str r2, [r3]
- 106:Core/Src/soft_uart.c **** case UPDATE_ING:
- 591 .loc 1 106 9
- 592 0080 62E0 b .L36
- 593 .L28:
- 108:Core/Src/soft_uart.c **** {
- 594 .loc 1 108 40
- 595 0082 3A4B ldr r3, .L39
- 596 0084 9B79 ldrb r3, [r3, #6] @ zero_extendqisi2
- 597 0086 1A46 mov r2, r3
- 108:Core/Src/soft_uart.c **** {
- 598 .loc 1 108 63
- 599 0088 384B ldr r3, .L39
- 600 008a DB79 ldrb r3, [r3, #7] @ zero_extendqisi2
- 108:Core/Src/soft_uart.c **** {
- 601 .loc 1 108 77
- 602 008c 1B02 lsls r3, r3, #8
- 108:Core/Src/soft_uart.c **** {
- 603 .loc 1 108 50
- ARM GAS C:\Users\10728\AppData\Local\Temp\cc82yckV.s page 14
- 604 008e 1344 add r3, r3, r2
- 108:Core/Src/soft_uart.c **** {
- 605 .loc 1 108 26
- 606 0090 384A ldr r2, .L39+8
- 607 0092 1268 ldr r2, [r2]
- 108:Core/Src/soft_uart.c **** {
- 608 .loc 1 108 12
- 609 0094 9342 cmp r3, r2
- 610 0096 28D1 bne .L31
- 110:Core/Src/soft_uart.c **** if (temp_32t == WRITE_SUCCESS)
- 611 .loc 1 110 24
- 612 0098 354B ldr r3, .L39+4
- 613 009a 1B68 ldr r3, [r3]
- 614 009c 03F10063 add r3, r3, #134217728
- 615 00a0 03F50033 add r3, r3, #131072
- 110:Core/Src/soft_uart.c **** if (temp_32t == WRITE_SUCCESS)
- 616 .loc 1 110 121
- 617 00a4 314A ldr r2, .L39
- 618 00a6 5278 ldrb r2, [r2, #1] @ zero_extendqisi2
- 110:Core/Src/soft_uart.c **** if (temp_32t == WRITE_SUCCESS)
- 619 .loc 1 110 127
- 620 00a8 023A subs r2, r2, #2
- 110:Core/Src/soft_uart.c **** if (temp_32t == WRITE_SUCCESS)
- 621 .loc 1 110 132
- 622 00aa D10F lsrs r1, r2, #31
- 623 00ac 0A44 add r2, r2, r1
- 624 00ae 5210 asrs r2, r2, #1
- 110:Core/Src/soft_uart.c **** if (temp_32t == WRITE_SUCCESS)
- 625 .loc 1 110 24
- 626 00b0 92B2 uxth r2, r2
- 627 00b2 3149 ldr r1, .L39+12
- 628 00b4 1846 mov r0, r3
- 629 00b6 FFF7FEFF bl Flash_WriteData
- 630 00ba 0346 mov r3, r0
- 110:Core/Src/soft_uart.c **** if (temp_32t == WRITE_SUCCESS)
- 631 .loc 1 110 22
- 632 00bc 3B60 str r3, [r7]
- 111:Core/Src/soft_uart.c **** {
- 633 .loc 1 111 26
- 634 00be 3B68 ldr r3, [r7]
- 111:Core/Src/soft_uart.c **** {
- 635 .loc 1 111 16
- 636 00c0 032B cmp r3, #3
- 637 00c2 43D1 bne .L37
- 113:Core/Src/soft_uart.c **** addr_offset += update.data[LEN] - 2;
- 638 .loc 1 113 29
- 639 00c4 2B4B ldr r3, .L39+8
- 640 00c6 1B68 ldr r3, [r3]
- 641 00c8 0133 adds r3, r3, #1
- 642 00ca 2A4A ldr r2, .L39+8
- 643 00cc 1360 str r3, [r2]
- 114:Core/Src/soft_uart.c **** Update_ack_fmu(UPDATE_ING, &update.data[PAYLOAD]);
- 644 .loc 1 114 43
- 645 00ce 274B ldr r3, .L39
- 646 00d0 5B78 ldrb r3, [r3, #1] @ zero_extendqisi2
- 114:Core/Src/soft_uart.c **** Update_ack_fmu(UPDATE_ING, &update.data[PAYLOAD]);
- 647 .loc 1 114 29
- ARM GAS C:\Users\10728\AppData\Local\Temp\cc82yckV.s page 15
- 648 00d2 1A46 mov r2, r3
- 649 00d4 264B ldr r3, .L39+4
- 650 00d6 1B68 ldr r3, [r3]
- 651 00d8 1344 add r3, r3, r2
- 652 00da 023B subs r3, r3, #2
- 653 00dc 244A ldr r2, .L39+4
- 654 00de 1360 str r3, [r2]
- 115:Core/Src/soft_uart.c **** }
- 655 .loc 1 115 17
- 656 00e0 2649 ldr r1, .L39+16
- 657 00e2 C920 movs r0, #201
- 658 00e4 FFF7FEFF bl Update_ack_fmu
- 122:Core/Src/soft_uart.c **** case UPDATE_END:
- 659 .loc 1 122 9
- 660 00e8 30E0 b .L37
- 661 .L31:
- 118:Core/Src/soft_uart.c **** {
- 662 .loc 1 118 43
- 663 00ea 204B ldr r3, .L39
- 664 00ec 9B79 ldrb r3, [r3, #6] @ zero_extendqisi2
- 665 00ee 1A46 mov r2, r3
- 118:Core/Src/soft_uart.c **** {
- 666 .loc 1 118 66
- 667 00f0 1E4B ldr r3, .L39
- 668 00f2 DB79 ldrb r3, [r3, #7] @ zero_extendqisi2
- 118:Core/Src/soft_uart.c **** {
- 669 .loc 1 118 80
- 670 00f4 1B02 lsls r3, r3, #8
- 118:Core/Src/soft_uart.c **** {
- 671 .loc 1 118 53
- 672 00f6 1344 add r3, r3, r2
- 673 00f8 1A46 mov r2, r3
- 118:Core/Src/soft_uart.c **** {
- 674 .loc 1 118 30
- 675 00fa 1E4B ldr r3, .L39+8
- 676 00fc 1B68 ldr r3, [r3]
- 118:Core/Src/soft_uart.c **** {
- 677 .loc 1 118 16
- 678 00fe 9A42 cmp r2, r3
- 679 0100 24D2 bcs .L37
- 120:Core/Src/soft_uart.c **** }
- 680 .loc 1 120 13
- 681 0102 1E49 ldr r1, .L39+16
- 682 0104 C920 movs r0, #201
- 683 0106 FFF7FEFF bl Update_ack_fmu
- 122:Core/Src/soft_uart.c **** case UPDATE_END:
- 684 .loc 1 122 9
- 685 010a 1FE0 b .L37
- 686 .L25:
- 124:Core/Src/soft_uart.c **** if(update_complete != true)
- 687 .loc 1 124 18
- 688 010c 0023 movs r3, #0
- 689 010e 3B60 str r3, [r7]
- 125:Core/Src/soft_uart.c **** {
- 690 .loc 1 125 28
- 691 0110 1B4B ldr r3, .L39+20
- 692 0112 1B78 ldrb r3, [r3] @ zero_extendqisi2
- ARM GAS C:\Users\10728\AppData\Local\Temp\cc82yckV.s page 16
- 693 0114 83F00103 eor r3, r3, #1
- 694 0118 DBB2 uxtb r3, r3
- 125:Core/Src/soft_uart.c **** {
- 695 .loc 1 125 11
- 696 011a 002B cmp r3, #0
- 697 011c 18D0 beq .L38
- 127:Core/Src/soft_uart.c **** if(update_complete == true)
- 698 .loc 1 127 31
- 699 011e FFF7FEFF bl wirte_update_flag
- 700 0122 0346 mov r3, r0
- 701 0124 1A46 mov r2, r3
- 127:Core/Src/soft_uart.c **** if(update_complete == true)
- 702 .loc 1 127 29
- 703 0126 164B ldr r3, .L39+20
- 704 0128 1A70 strb r2, [r3]
- 128:Core/Src/soft_uart.c **** Update_ack_fmu(UPDATE_END, (uint8_t *)&temp_32t);
- 705 .loc 1 128 32
- 706 012a 154B ldr r3, .L39+20
- 707 012c 1B78 ldrb r3, [r3] @ zero_extendqisi2
- 128:Core/Src/soft_uart.c **** Update_ack_fmu(UPDATE_END, (uint8_t *)&temp_32t);
- 708 .loc 1 128 15
- 709 012e 002B cmp r3, #0
- 710 0130 04D0 beq .L34
- 129:Core/Src/soft_uart.c **** HAL_Delay(50);
- 711 .loc 1 129 17
- 712 0132 3B46 mov r3, r7
- 713 0134 1946 mov r1, r3
- 714 0136 CA20 movs r0, #202
- 715 0138 FFF7FEFF bl Update_ack_fmu
- 716 .L34:
- 130:Core/Src/soft_uart.c **** }
- 717 .loc 1 130 13
- 718 013c 3220 movs r0, #50
- 719 013e FFF7FEFF bl HAL_Delay
- 132:Core/Src/soft_uart.c ****
- 720 .loc 1 132 9
- 721 0142 05E0 b .L38
- 722 .L35:
- 723 .loc 1 135 9
- 724 0144 00BF nop
- 725 0146 04E0 b .L30
- 726 .L36:
- 106:Core/Src/soft_uart.c **** case UPDATE_ING:
- 727 .loc 1 106 9
- 728 0148 00BF nop
- 729 014a 02E0 b .L30
- 730 .L37:
- 122:Core/Src/soft_uart.c **** case UPDATE_END:
- 731 .loc 1 122 9
- 732 014c 00BF nop
- 733 014e 00E0 b .L30
- 734 .L38:
- 132:Core/Src/soft_uart.c ****
- 735 .loc 1 132 9
- 736 0150 00BF nop
- 737 .L30:
- 136:Core/Src/soft_uart.c **** }
- ARM GAS C:\Users\10728\AppData\Local\Temp\cc82yckV.s page 17
- 137:Core/Src/soft_uart.c **** update.usebuf_flag = false;
- 738 .loc 1 137 24 discriminator 3
- 739 0152 064B ldr r3, .L39
- 740 0154 0022 movs r2, #0
- 741 0156 83F80021 strb r2, [r3, #256]
- 138:Core/Src/soft_uart.c **** memset(update.data, 0, MAX_UART_BUF);
- 742 .loc 1 138 5 discriminator 3
- 743 015a 4FF48072 mov r2, #256
- 744 015e 0021 movs r1, #0
- 745 0160 0248 ldr r0, .L39
- 746 0162 FFF7FEFF bl memset
- 747 .L21:
- 139:Core/Src/soft_uart.c **** }...
- 748 .loc 1 139 1
- 749 0166 0837 adds r7, r7, #8
- 750 .LCFI22:
- 751 .cfi_def_cfa_offset 8
- 752 0168 BD46 mov sp, r7
- 753 .LCFI23:
- 754 .cfi_def_cfa_register 13
- 755 @ sp needed
- 756 016a 80BD pop {r7, pc}
- 757 .L40:
- 758 .align 2
- 759 .L39:
- 760 016c 00000000 .word update
- 761 0170 00000000 .word addr_offset
- 762 0174 00000000 .word cur_pack_num
- 763 0178 08000000 .word update+8
- 764 017c 06000000 .word update+6
- 765 0180 00000000 .word update_complete
- 766 .cfi_endproc
- 767 .LFE242:
- 769 .section .bss.send_time.0,"aw",%nobits
- 770 .align 2
- 773 send_time.0:
- 774 0000 00000000 .space 4
- 775 .text
- 776 .Letext0:
- 777 .file 2 "d:\\arm-gcc\\arm-none-eabi\\include\\machine\\_default_types.h"
- 778 .file 3 "d:\\arm-gcc\\arm-none-eabi\\include\\sys\\_stdint.h"
- 779 .file 4 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f405xx.h"
- 780 .file 5 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h"
- 781 .file 6 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h"
- 782 .file 7 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h"
- 783 .file 8 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h"
- 784 .file 9 "Core/Inc/soft_uart.h"
- ARM GAS C:\Users\10728\AppData\Local\Temp\cc82yckV.s page 18
- DEFINED SYMBOLS
- *ABS*:00000000 soft_uart.c
- C:\Users\10728\AppData\Local\Temp\cc82yckV.s:20 .text.uart1_send_msg:00000000 $t
- C:\Users\10728\AppData\Local\Temp\cc82yckV.s:26 .text.uart1_send_msg:00000000 uart1_send_msg
- C:\Users\10728\AppData\Local\Temp\cc82yckV.s:85 .text.uart1_send_msg:0000003c $d
- C:\Users\10728\AppData\Local\Temp\cc82yckV.s:773 .bss.send_time.0:00000000 send_time.0
- C:\Users\10728\AppData\Local\Temp\cc82yckV.s:95 .bss.FMU_uart_buf:00000000 FMU_uart_buf
- C:\Users\10728\AppData\Local\Temp\cc82yckV.s:92 .bss.FMU_uart_buf:00000000 $d
- C:\Users\10728\AppData\Local\Temp\cc82yckV.s:102 .bss.update:00000000 update
- C:\Users\10728\AppData\Local\Temp\cc82yckV.s:99 .bss.update:00000000 $d
- C:\Users\10728\AppData\Local\Temp\cc82yckV.s:105 .text.USER_UART_IRQHandler:00000000 $t
- C:\Users\10728\AppData\Local\Temp\cc82yckV.s:111 .text.USER_UART_IRQHandler:00000000 USER_UART_IRQHandler
- C:\Users\10728\AppData\Local\Temp\cc82yckV.s:225 .text.USER_UART_IRQHandler:000000a0 $d
- C:\Users\10728\AppData\Local\Temp\cc82yckV.s:236 .bss.msg_buf:00000000 msg_buf
- C:\Users\10728\AppData\Local\Temp\cc82yckV.s:233 .bss.msg_buf:00000000 $d
- C:\Users\10728\AppData\Local\Temp\cc82yckV.s:239 .text.Update_ack_fmu:00000000 $t
- C:\Users\10728\AppData\Local\Temp\cc82yckV.s:245 .text.Update_ack_fmu:00000000 Update_ack_fmu
- C:\Users\10728\AppData\Local\Temp\cc82yckV.s:398 .text.Update_ack_fmu:000000cc $d
- C:\Users\10728\AppData\Local\Temp\cc82yckV.s:403 .text.check_usart_is_ok:00000000 $t
- C:\Users\10728\AppData\Local\Temp\cc82yckV.s:409 .text.check_usart_is_ok:00000000 check_usart_is_ok
- C:\Users\10728\AppData\Local\Temp\cc82yckV.s:468 .text.check_usart_is_ok:0000003c $d
- C:\Users\10728\AppData\Local\Temp\cc82yckV.s:477 .bss.addr_offset:00000000 addr_offset
- C:\Users\10728\AppData\Local\Temp\cc82yckV.s:474 .bss.addr_offset:00000000 $d
- C:\Users\10728\AppData\Local\Temp\cc82yckV.s:484 .bss.cur_pack_num:00000000 cur_pack_num
- C:\Users\10728\AppData\Local\Temp\cc82yckV.s:481 .bss.cur_pack_num:00000000 $d
- C:\Users\10728\AppData\Local\Temp\cc82yckV.s:490 .bss.update_complete:00000000 update_complete
- C:\Users\10728\AppData\Local\Temp\cc82yckV.s:491 .bss.update_complete:00000000 $d
- C:\Users\10728\AppData\Local\Temp\cc82yckV.s:493 .text.update_function:00000000 $t
- C:\Users\10728\AppData\Local\Temp\cc82yckV.s:499 .text.update_function:00000000 update_function
- C:\Users\10728\AppData\Local\Temp\cc82yckV.s:760 .text.update_function:0000016c $d
- C:\Users\10728\AppData\Local\Temp\cc82yckV.s:770 .bss.send_time.0:00000000 $d
- UNDEFINED SYMBOLS
- HAL_GetTick
- HAL_UART_Transmit_DMA
- huart1
- HAL_UART_AbortReceive
- memcpy
- memset
- HAL_UART_Receive_DMA
- Get_Crc16
- Flash_WriteData
- wirte_update_flag
- HAL_Delay
|