| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694 |
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.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_uart.c"
- 16 .text
- 17 .Ltext0:
- 18 .cfi_sections .debug_frame
- 19 .section .text.uart2_send_msg,"ax",%progbits
- 20 .align 1
- 21 .p2align 2,,3
- 22 .global uart2_send_msg
- 23 .syntax unified
- 24 .thumb
- 25 .thumb_func
- 27 uart2_send_msg:
- 28 .LVL0:
- 29 .LFB133:
- 30 .file 1 "user_src/soft_uart.c"
- 1:user_src/soft_uart.c **** #include "soft_uart.h"
- 2:user_src/soft_uart.c **** #include "string.h"
- 3:user_src/soft_uart.c **** #include "soft_flash.h"
- 4:user_src/soft_uart.c **** #include "soft_crc.h"
- 5:user_src/soft_uart.c **** #include "usart.h"
- 6:user_src/soft_uart.c ****
- 7:user_src/soft_uart.c **** extern UART_HandleTypeDef huart2;
- 8:user_src/soft_uart.c **** bool fmu_version_ack = false;
- 9:user_src/soft_uart.c **** void uart2_send_msg(uint8_t *data, uint8_t size)
- 10:user_src/soft_uart.c **** {
- 31 .loc 1 10 1 view -0
- 32 .cfi_startproc
- 33 @ args = 0, pretend = 0, frame = 0
- 34 @ frame_needed = 0, uses_anonymous_args = 0
- 11:user_src/soft_uart.c **** static uint32_t send_time = 0;
- 35 .loc 1 11 5 view .LVU1
- 12:user_src/soft_uart.c ****
- 13:user_src/soft_uart.c **** send_time = HAL_GetTick();
- 36 .loc 1 13 5 view .LVU2
- 10:user_src/soft_uart.c **** static uint32_t send_time = 0;
- 37 .loc 1 10 1 is_stmt 0 view .LVU3
- 38 0000 70B5 push {r4, r5, r6, lr}
- 39 .LCFI0:
- 40 .cfi_def_cfa_offset 16
- 41 .cfi_offset 4, -16
- 42 .cfi_offset 5, -12
- 43 .cfi_offset 6, -8
- 44 .cfi_offset 14, -4
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 2
- 10:user_src/soft_uart.c **** static uint32_t send_time = 0;
- 45 .loc 1 10 1 view .LVU4
- 46 0002 0546 mov r5, r0
- 47 0004 0E46 mov r6, r1
- 48 .loc 1 13 17 view .LVU5
- 49 0006 FFF7FEFF bl HAL_GetTick
- 50 .LVL1:
- 51 .loc 1 13 15 view .LVU6
- 52 000a 074C ldr r4, .L6
- 53 000c 2060 str r0, [r4]
- 14:user_src/soft_uart.c **** while (HAL_GetTick() - send_time < 1)
- 54 .loc 1 14 5 is_stmt 1 view .LVU7
- 55 .L2:
- 15:user_src/soft_uart.c **** ;
- 56 .loc 1 15 9 discriminator 1 view .LVU8
- 14:user_src/soft_uart.c **** while (HAL_GetTick() - send_time < 1)
- 57 .loc 1 14 11 discriminator 1 view .LVU9
- 14:user_src/soft_uart.c **** while (HAL_GetTick() - send_time < 1)
- 58 .loc 1 14 12 is_stmt 0 discriminator 1 view .LVU10
- 59 000e FFF7FEFF bl HAL_GetTick
- 60 .LVL2:
- 14:user_src/soft_uart.c **** while (HAL_GetTick() - send_time < 1)
- 61 .loc 1 14 11 discriminator 1 view .LVU11
- 62 0012 2368 ldr r3, [r4]
- 63 0014 9842 cmp r0, r3
- 64 0016 FAD0 beq .L2
- 16:user_src/soft_uart.c **** HAL_UART_Transmit_DMA(&huart2, data, size);
- 65 .loc 1 16 5 is_stmt 1 view .LVU12
- 66 0018 3246 mov r2, r6
- 67 001a 2946 mov r1, r5
- 68 001c 0348 ldr r0, .L6+4
- 17:user_src/soft_uart.c **** }
- 69 .loc 1 17 1 is_stmt 0 view .LVU13
- 70 001e BDE87040 pop {r4, r5, r6, lr}
- 71 .LCFI1:
- 72 .cfi_restore 14
- 73 .cfi_restore 6
- 74 .cfi_restore 5
- 75 .cfi_restore 4
- 76 .cfi_def_cfa_offset 0
- 77 .LVL3:
- 16:user_src/soft_uart.c **** HAL_UART_Transmit_DMA(&huart2, data, size);
- 78 .loc 1 16 5 view .LVU14
- 79 0022 FFF7FEBF b HAL_UART_Transmit_DMA
- 80 .LVL4:
- 81 .L7:
- 16:user_src/soft_uart.c **** HAL_UART_Transmit_DMA(&huart2, data, size);
- 82 .loc 1 16 5 view .LVU15
- 83 0026 00BF .align 2
- 84 .L6:
- 85 0028 00000000 .word .LANCHOR0
- 86 002c 00000000 .word huart2
- 87 .cfi_endproc
- 88 .LFE133:
- 90 .section .text.USER_UART_IRQHandler,"ax",%progbits
- 91 .align 1
- 92 .p2align 2,,3
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 3
- 93 .global USER_UART_IRQHandler
- 94 .syntax unified
- 95 .thumb
- 96 .thumb_func
- 98 USER_UART_IRQHandler:
- 99 .LVL5:
- 100 .LFB134:
- 18:user_src/soft_uart.c ****
- 19:user_src/soft_uart.c **** uint8_t FMU_uart_buf[MAX_UART_BUF] = {0};
- 20:user_src/soft_uart.c **** Update update;
- 21:user_src/soft_uart.c **** void USER_UART_IRQHandler(UART_HandleTypeDef *huart)
- 22:user_src/soft_uart.c **** {
- 101 .loc 1 22 1 is_stmt 1 view -0
- 102 .cfi_startproc
- 103 @ args = 0, pretend = 0, frame = 0
- 104 @ frame_needed = 0, uses_anonymous_args = 0
- 23:user_src/soft_uart.c **** uint32_t recv_count = 0;
- 105 .loc 1 23 5 view .LVU17
- 24:user_src/soft_uart.c **** if (huart == &huart2)
- 106 .loc 1 24 5 view .LVU18
- 107 .loc 1 24 8 is_stmt 0 view .LVU19
- 108 0000 204B ldr r3, .L23
- 109 0002 9842 cmp r0, r3
- 110 0004 00D0 beq .L19
- 111 0006 7047 bx lr
- 112 .L19:
- 25:user_src/soft_uart.c **** {
- 26:user_src/soft_uart.c **** if (RESET != __HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE))
- 113 .loc 1 26 9 is_stmt 1 view .LVU20
- 114 .loc 1 26 22 is_stmt 0 view .LVU21
- 115 0008 0368 ldr r3, [r0]
- 116 000a DA69 ldr r2, [r3, #28]
- 117 .loc 1 26 12 view .LVU22
- 118 000c D206 lsls r2, r2, #27
- 22:user_src/soft_uart.c **** uint32_t recv_count = 0;
- 119 .loc 1 22 1 view .LVU23
- 120 000e 10B5 push {r4, lr}
- 121 .LCFI2:
- 122 .cfi_def_cfa_offset 8
- 123 .cfi_offset 4, -8
- 124 .cfi_offset 14, -4
- 125 0010 0446 mov r4, r0
- 126 .loc 1 26 12 view .LVU24
- 127 0012 00D4 bmi .L20
- 27:user_src/soft_uart.c **** {
- 28:user_src/soft_uart.c **** __HAL_UART_CLEAR_IDLEFLAG(huart);
- 29:user_src/soft_uart.c **** HAL_UART_AbortReceive(huart);
- 30:user_src/soft_uart.c **** recv_count = MAX_UART_BUF - __HAL_DMA_GET_COUNTER(huart->hdmarx);
- 31:user_src/soft_uart.c ****
- 32:user_src/soft_uart.c **** // 检测是否是新的一包数据
- 33:user_src/soft_uart.c **** if (FMU_uart_buf[0] == 0xFE && FMU_uart_buf[4] == 204 && update.usebuf_flag == false)
- 34:user_src/soft_uart.c **** {
- 35:user_src/soft_uart.c **** memcpy(update.data, FMU_uart_buf, recv_count);
- 36:user_src/soft_uart.c **** update.usebuf_flag = true;
- 37:user_src/soft_uart.c **** }
- 38:user_src/soft_uart.c **** else if(FMU_uart_buf[5] == 21 && FMU_uart_buf[6] == 26 && FMU_uart_buf[7] == 3)
- 39:user_src/soft_uart.c **** {
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 4
- 40:user_src/soft_uart.c **** fmu_version_ack = true;
- 41:user_src/soft_uart.c **** }
- 42:user_src/soft_uart.c ****
- 43:user_src/soft_uart.c **** memset(FMU_uart_buf, 0, MAX_UART_BUF);
- 44:user_src/soft_uart.c **** HAL_UART_Receive_DMA(huart, FMU_uart_buf, MAX_UART_BUF);
- 45:user_src/soft_uart.c **** }
- 46:user_src/soft_uart.c **** }
- 47:user_src/soft_uart.c **** }
- 128 .loc 1 47 1 view .LVU25
- 129 0014 10BD pop {r4, pc}
- 130 .L20:
- 28:user_src/soft_uart.c **** HAL_UART_AbortReceive(huart);
- 131 .loc 1 28 13 is_stmt 1 view .LVU26
- 132 0016 1022 movs r2, #16
- 133 0018 1A62 str r2, [r3, #32]
- 29:user_src/soft_uart.c **** recv_count = MAX_UART_BUF - __HAL_DMA_GET_COUNTER(huart->hdmarx);
- 134 .loc 1 29 13 view .LVU27
- 135 001a FFF7FEFF bl HAL_UART_AbortReceive
- 136 .LVL6:
- 30:user_src/soft_uart.c ****
- 137 .loc 1 30 13 view .LVU28
- 30:user_src/soft_uart.c ****
- 138 .loc 1 30 41 is_stmt 0 view .LVU29
- 139 001e 636F ldr r3, [r4, #116]
- 33:user_src/soft_uart.c **** {
- 140 .loc 1 33 29 view .LVU30
- 141 0020 1949 ldr r1, .L23+4
- 30:user_src/soft_uart.c ****
- 142 .loc 1 30 41 view .LVU31
- 143 0022 1A68 ldr r2, [r3]
- 33:user_src/soft_uart.c **** {
- 144 .loc 1 33 16 view .LVU32
- 145 0024 0B78 ldrb r3, [r1] @ zero_extendqisi2
- 30:user_src/soft_uart.c ****
- 146 .loc 1 30 41 view .LVU33
- 147 0026 5268 ldr r2, [r2, #4]
- 148 .LVL7:
- 33:user_src/soft_uart.c **** {
- 149 .loc 1 33 13 is_stmt 1 view .LVU34
- 33:user_src/soft_uart.c **** {
- 150 .loc 1 33 16 is_stmt 0 view .LVU35
- 151 0028 FE2B cmp r3, #254
- 152 002a 10D0 beq .L21
- 153 .L10:
- 38:user_src/soft_uart.c **** {
- 154 .loc 1 38 18 is_stmt 1 view .LVU36
- 38:user_src/soft_uart.c **** {
- 155 .loc 1 38 20 is_stmt 0 view .LVU37
- 156 002c 4B79 ldrb r3, [r1, #5] @ zero_extendqisi2
- 157 002e 152B cmp r3, #21
- 158 0030 1ED0 beq .L22
- 159 .LVL8:
- 160 .L11:
- 43:user_src/soft_uart.c **** HAL_UART_Receive_DMA(huart, FMU_uart_buf, MAX_UART_BUF);
- 161 .loc 1 43 13 is_stmt 1 view .LVU38
- 162 0032 4FF48072 mov r2, #256
- 163 0036 0021 movs r1, #0
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 5
- 164 0038 1348 ldr r0, .L23+4
- 165 003a FFF7FEFF bl memset
- 166 .LVL9:
- 44:user_src/soft_uart.c **** }
- 167 .loc 1 44 13 view .LVU39
- 168 .loc 1 47 1 is_stmt 0 view .LVU40
- 169 003e BDE81040 pop {r4, lr}
- 170 .LCFI3:
- 171 .cfi_remember_state
- 172 .cfi_restore 14
- 173 .cfi_restore 4
- 174 .cfi_def_cfa_offset 0
- 175 .LVL10:
- 44:user_src/soft_uart.c **** }
- 176 .loc 1 44 13 view .LVU41
- 177 0042 1149 ldr r1, .L23+4
- 178 0044 0F48 ldr r0, .L23
- 179 0046 4FF48072 mov r2, #256
- 180 004a FFF7FEBF b HAL_UART_Receive_DMA
- 181 .LVL11:
- 182 .L21:
- 183 .LCFI4:
- 184 .cfi_restore_state
- 33:user_src/soft_uart.c **** {
- 185 .loc 1 33 41 discriminator 1 view .LVU42
- 186 004e 0B79 ldrb r3, [r1, #4] @ zero_extendqisi2
- 187 0050 CC2B cmp r3, #204
- 188 0052 EBD1 bne .L10
- 33:user_src/soft_uart.c **** {
- 189 .loc 1 33 76 discriminator 2 view .LVU43
- 190 0054 0D4B ldr r3, .L23+8
- 33:user_src/soft_uart.c **** {
- 191 .loc 1 33 67 discriminator 2 view .LVU44
- 192 0056 93F80001 ldrb r0, [r3, #256] @ zero_extendqisi2
- 193 005a 0028 cmp r0, #0
- 194 005c E6D1 bne .L10
- 35:user_src/soft_uart.c **** update.usebuf_flag = true;
- 195 .loc 1 35 17 is_stmt 1 view .LVU45
- 196 005e C2F58072 rsb r2, r2, #256
- 197 .LVL12:
- 35:user_src/soft_uart.c **** update.usebuf_flag = true;
- 198 .loc 1 35 17 is_stmt 0 view .LVU46
- 199 0062 1846 mov r0, r3
- 200 0064 FFF7FEFF bl memcpy
- 201 .LVL13:
- 36:user_src/soft_uart.c **** }
- 202 .loc 1 36 17 is_stmt 1 view .LVU47
- 36:user_src/soft_uart.c **** }
- 203 .loc 1 36 36 is_stmt 0 view .LVU48
- 204 0068 0122 movs r2, #1
- 205 006a 80F80021 strb r2, [r0, #256]
- 206 006e E0E7 b .L11
- 207 .LVL14:
- 208 .L22:
- 38:user_src/soft_uart.c **** {
- 209 .loc 1 38 43 discriminator 1 view .LVU49
- 210 0070 8B79 ldrb r3, [r1, #6] @ zero_extendqisi2
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 6
- 211 0072 1A2B cmp r3, #26
- 212 0074 DDD1 bne .L11
- 38:user_src/soft_uart.c **** {
- 213 .loc 1 38 68 discriminator 2 view .LVU50
- 214 0076 CB79 ldrb r3, [r1, #7] @ zero_extendqisi2
- 215 0078 032B cmp r3, #3
- 216 007a DAD1 bne .L11
- 40:user_src/soft_uart.c **** }
- 217 .loc 1 40 17 is_stmt 1 view .LVU51
- 40:user_src/soft_uart.c **** }
- 218 .loc 1 40 33 is_stmt 0 view .LVU52
- 219 007c 044B ldr r3, .L23+12
- 220 007e 0122 movs r2, #1
- 221 .LVL15:
- 40:user_src/soft_uart.c **** }
- 222 .loc 1 40 33 view .LVU53
- 223 0080 1A70 strb r2, [r3]
- 224 0082 D6E7 b .L11
- 225 .L24:
- 226 .align 2
- 227 .L23:
- 228 0084 00000000 .word huart2
- 229 0088 00000000 .word .LANCHOR1
- 230 008c 00000000 .word .LANCHOR2
- 231 0090 00000000 .word .LANCHOR3
- 232 .cfi_endproc
- 233 .LFE134:
- 235 .section .text.send_pmu_version,"ax",%progbits
- 236 .align 1
- 237 .p2align 2,,3
- 238 .global send_pmu_version
- 239 .syntax unified
- 240 .thumb
- 241 .thumb_func
- 243 send_pmu_version:
- 244 .LFB135:
- 48:user_src/soft_uart.c ****
- 49:user_src/soft_uart.c **** uint8_t msg_buf[128] = {0};
- 50:user_src/soft_uart.c ****
- 51:user_src/soft_uart.c **** uint32_t cur_pack_num = 0;
- 52:user_src/soft_uart.c **** void send_pmu_version(void)
- 53:user_src/soft_uart.c **** {
- 245 .loc 1 53 1 is_stmt 1 view -0
- 246 .cfi_startproc
- 247 @ args = 0, pretend = 0, frame = 24
- 248 @ frame_needed = 0, uses_anonymous_args = 0
- 54:user_src/soft_uart.c **** static int time2_hz = 0;
- 249 .loc 1 54 5 view .LVU55
- 55:user_src/soft_uart.c ****
- 56:user_src/soft_uart.c **** if (check_usart_is_ok() != true)
- 250 .loc 1 56 5 view .LVU56
- 251 .LBB6:
- 252 .LBI6:
- 57:user_src/soft_uart.c **** return;
- 58:user_src/soft_uart.c **** if(fmu_version_ack == true)
- 59:user_src/soft_uart.c **** return;
- 60:user_src/soft_uart.c **** if(cur_pack_num > 1)
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 7
- 61:user_src/soft_uart.c **** return;
- 62:user_src/soft_uart.c **** if(HAL_GetTick() - time2_hz > 500 && HAL_GetTick() > 2000)
- 63:user_src/soft_uart.c **** time2_hz = HAL_GetTick();
- 64:user_src/soft_uart.c **** else
- 65:user_src/soft_uart.c **** return;
- 66:user_src/soft_uart.c ****
- 67:user_src/soft_uart.c **** uint8_t index = 0;
- 68:user_src/soft_uart.c **** uint16_t s16 = 0;
- 69:user_src/soft_uart.c **** char sn_buf[12] = {0};
- 70:user_src/soft_uart.c **** char hardverison_buf[12] = {0};
- 71:user_src/soft_uart.c ****
- 72:user_src/soft_uart.c **** memset(msg_buf,0,128);
- 73:user_src/soft_uart.c ****
- 74:user_src/soft_uart.c **** msg_buf[index++] = 0xFE;
- 75:user_src/soft_uart.c **** msg_buf[index++] = 0;
- 76:user_src/soft_uart.c **** msg_buf[index++] = 0;
- 77:user_src/soft_uart.c **** msg_buf[index++] = 0x00;
- 78:user_src/soft_uart.c **** msg_buf[index++] = 0x00;
- 79:user_src/soft_uart.c **** msg_buf[index++] = 26;
- 80:user_src/soft_uart.c ****
- 81:user_src/soft_uart.c **** s16 = 3;
- 82:user_src/soft_uart.c **** memcpy(&msg_buf[index],&s16,2); //PMU设备号
- 83:user_src/soft_uart.c **** index += 2;
- 84:user_src/soft_uart.c ****
- 85:user_src/soft_uart.c **** msg_buf[index++] = 1;
- 86:user_src/soft_uart.c ****
- 87:user_src/soft_uart.c **** Int2String(pmu_sn,&sn_buf[0],12);
- 88:user_src/soft_uart.c **** Int2String(pmu_hardversion,&hardverison_buf[0],12);
- 89:user_src/soft_uart.c ****
- 90:user_src/soft_uart.c **** memcpy(&msg_buf[index],&sn_buf[0],10);//sn
- 91:user_src/soft_uart.c **** index += 32;
- 92:user_src/soft_uart.c **** index += 16;
- 93:user_src/soft_uart.c **** memcpy(&msg_buf[index],&hardverison_buf[0],10);//sn
- 94:user_src/soft_uart.c **** index += 16;//硬件
- 95:user_src/soft_uart.c **** index += 16;//厂商
- 96:user_src/soft_uart.c ****
- 97:user_src/soft_uart.c **** msg_buf[1] = index - 6;
- 98:user_src/soft_uart.c **** uint16_t uart_crc = Get_Crc16(msg_buf, index);
- 99:user_src/soft_uart.c **** memcpy(&msg_buf[index], &uart_crc, 2);
- 100:user_src/soft_uart.c **** index += 2;
- 101:user_src/soft_uart.c ****
- 102:user_src/soft_uart.c **** uart2_send_msg(msg_buf, index);
- 103:user_src/soft_uart.c ****
- 104:user_src/soft_uart.c **** }
- 105:user_src/soft_uart.c ****
- 106:user_src/soft_uart.c ****
- 107:user_src/soft_uart.c ****
- 108:user_src/soft_uart.c **** void Update_ack_fmu(uint8_t msg_id, uint8_t *ackbuf)
- 109:user_src/soft_uart.c **** {
- 110:user_src/soft_uart.c ****
- 111:user_src/soft_uart.c **** int index = 0;
- 112:user_src/soft_uart.c **** msg_buf[index++] = 0xFE;
- 113:user_src/soft_uart.c **** msg_buf[index++] = 0;
- 114:user_src/soft_uart.c **** msg_buf[index++] = 0;
- 115:user_src/soft_uart.c **** msg_buf[index++] = 0x00;
- 116:user_src/soft_uart.c **** msg_buf[index++] = 204;
- 117:user_src/soft_uart.c **** msg_buf[index++] = 21;
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 8
- 118:user_src/soft_uart.c ****
- 119:user_src/soft_uart.c **** msg_buf[index++] = msg_id;
- 120:user_src/soft_uart.c **** msg_buf[index++] = *ackbuf;
- 121:user_src/soft_uart.c **** msg_buf[index++] = *(ackbuf + 1);
- 122:user_src/soft_uart.c **** msg_buf[index++] = 1;
- 123:user_src/soft_uart.c ****
- 124:user_src/soft_uart.c **** msg_buf[1] = index - 6;
- 125:user_src/soft_uart.c **** uint16_t uart_crc = Get_Crc16(msg_buf, index);
- 126:user_src/soft_uart.c **** memcpy(&msg_buf[index], &uart_crc, 2);
- 127:user_src/soft_uart.c **** index += 2;
- 128:user_src/soft_uart.c ****
- 129:user_src/soft_uart.c **** uart2_send_msg(msg_buf, index);
- 130:user_src/soft_uart.c **** }
- 131:user_src/soft_uart.c ****
- 132:user_src/soft_uart.c **** bool check_usart_is_ok(void)
- 253 .loc 1 132 6 view .LVU57
- 254 .LBB7:
- 133:user_src/soft_uart.c **** {
- 134:user_src/soft_uart.c **** if (huart2.gState == HAL_UART_STATE_READY && (__HAL_UART_GET_FLAG(&huart2, UART_FLAG_TC) != RES
- 255 .loc 1 134 5 view .LVU58
- 256 .loc 1 134 15 is_stmt 0 view .LVU59
- 257 0000 384B ldr r3, .L42
- 258 0002 DA6F ldr r2, [r3, #124]
- 259 .loc 1 134 8 view .LVU60
- 260 0004 202A cmp r2, #32
- 261 0006 00D0 beq .L40
- 262 .L37:
- 263 0008 7047 bx lr
- 264 .L40:
- 265 .loc 1 134 51 view .LVU61
- 266 000a 1B68 ldr r3, [r3]
- 267 000c DA69 ldr r2, [r3, #28]
- 268 .loc 1 134 47 view .LVU62
- 269 000e 5206 lsls r2, r2, #25
- 270 0010 FAD5 bpl .L37
- 271 .loc 1 134 106 view .LVU63
- 272 0012 DB69 ldr r3, [r3, #28]
- 273 .loc 1 134 103 view .LVU64
- 274 0014 1B06 lsls r3, r3, #24
- 275 0016 F7D5 bpl .L37
- 276 .LBE7:
- 277 .LBE6:
- 58:user_src/soft_uart.c **** return;
- 278 .loc 1 58 5 is_stmt 1 view .LVU65
- 53:user_src/soft_uart.c **** static int time2_hz = 0;
- 279 .loc 1 53 1 is_stmt 0 view .LVU66
- 280 0018 70B5 push {r4, r5, r6, lr}
- 281 .LCFI5:
- 282 .cfi_def_cfa_offset 16
- 283 .cfi_offset 4, -16
- 284 .cfi_offset 5, -12
- 285 .cfi_offset 6, -8
- 286 .cfi_offset 14, -4
- 58:user_src/soft_uart.c **** return;
- 287 .loc 1 58 24 view .LVU67
- 288 001a 334B ldr r3, .L42+4
- 58:user_src/soft_uart.c **** return;
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 9
- 289 .loc 1 58 7 view .LVU68
- 290 001c 1C78 ldrb r4, [r3] @ zero_extendqisi2
- 53:user_src/soft_uart.c **** static int time2_hz = 0;
- 291 .loc 1 53 1 view .LVU69
- 292 001e 86B0 sub sp, sp, #24
- 293 .LCFI6:
- 294 .cfi_def_cfa_offset 40
- 58:user_src/soft_uart.c **** return;
- 295 .loc 1 58 7 view .LVU70
- 296 0020 1CB9 cbnz r4, .L25
- 60:user_src/soft_uart.c **** return;
- 297 .loc 1 60 5 is_stmt 1 view .LVU71
- 60:user_src/soft_uart.c **** return;
- 298 .loc 1 60 21 is_stmt 0 view .LVU72
- 299 0022 324B ldr r3, .L42+8
- 60:user_src/soft_uart.c **** return;
- 300 .loc 1 60 7 view .LVU73
- 301 0024 1B68 ldr r3, [r3]
- 302 0026 012B cmp r3, #1
- 303 0028 01D9 bls .L41
- 304 .L25:
- 104:user_src/soft_uart.c ****
- 305 .loc 1 104 1 view .LVU74
- 306 002a 06B0 add sp, sp, #24
- 307 .LCFI7:
- 308 .cfi_remember_state
- 309 .cfi_def_cfa_offset 16
- 310 @ sp needed
- 311 002c 70BD pop {r4, r5, r6, pc}
- 312 .L41:
- 313 .LCFI8:
- 314 .cfi_restore_state
- 62:user_src/soft_uart.c **** time2_hz = HAL_GetTick();
- 315 .loc 1 62 5 is_stmt 1 view .LVU75
- 62:user_src/soft_uart.c **** time2_hz = HAL_GetTick();
- 316 .loc 1 62 22 is_stmt 0 view .LVU76
- 317 002e 304E ldr r6, .L42+12
- 62:user_src/soft_uart.c **** time2_hz = HAL_GetTick();
- 318 .loc 1 62 8 view .LVU77
- 319 0030 FFF7FEFF bl HAL_GetTick
- 320 .LVL16:
- 62:user_src/soft_uart.c **** time2_hz = HAL_GetTick();
- 321 .loc 1 62 22 view .LVU78
- 322 0034 3368 ldr r3, [r6]
- 323 0036 C01A subs r0, r0, r3
- 62:user_src/soft_uart.c **** time2_hz = HAL_GetTick();
- 324 .loc 1 62 7 view .LVU79
- 325 0038 B0F5FA7F cmp r0, #500
- 326 003c F5D9 bls .L25
- 62:user_src/soft_uart.c **** time2_hz = HAL_GetTick();
- 327 .loc 1 62 42 discriminator 1 view .LVU80
- 328 003e FFF7FEFF bl HAL_GetTick
- 329 .LVL17:
- 62:user_src/soft_uart.c **** time2_hz = HAL_GetTick();
- 330 .loc 1 62 39 discriminator 1 view .LVU81
- 331 0042 B0F5FA6F cmp r0, #2000
- 332 0046 F0D9 bls .L25
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 10
- 63:user_src/soft_uart.c **** else
- 333 .loc 1 63 9 is_stmt 1 view .LVU82
- 63:user_src/soft_uart.c **** else
- 334 .loc 1 63 20 is_stmt 0 view .LVU83
- 335 0048 FFF7FEFF bl HAL_GetTick
- 336 .LVL18:
- 72:user_src/soft_uart.c ****
- 337 .loc 1 72 5 view .LVU84
- 338 004c 294D ldr r5, .L42+16
- 63:user_src/soft_uart.c **** else
- 339 .loc 1 63 18 view .LVU85
- 340 004e 3060 str r0, [r6]
- 67:user_src/soft_uart.c **** uint16_t s16 = 0;
- 341 .loc 1 67 5 is_stmt 1 view .LVU86
- 342 .LVL19:
- 68:user_src/soft_uart.c **** char sn_buf[12] = {0};
- 343 .loc 1 68 5 view .LVU87
- 69:user_src/soft_uart.c **** char hardverison_buf[12] = {0};
- 344 .loc 1 69 5 view .LVU88
- 72:user_src/soft_uart.c ****
- 345 .loc 1 72 5 is_stmt 0 view .LVU89
- 346 0050 2146 mov r1, r4
- 347 0052 8022 movs r2, #128
- 348 0054 2846 mov r0, r5
- 69:user_src/soft_uart.c **** char hardverison_buf[12] = {0};
- 349 .loc 1 69 10 view .LVU90
- 350 0056 CDE90044 strd r4, r4, [sp]
- 70:user_src/soft_uart.c ****
- 351 .loc 1 70 10 view .LVU91
- 352 005a CDE90244 strd r4, r4, [sp, #8]
- 353 005e CDE90444 strd r4, r4, [sp, #16]
- 72:user_src/soft_uart.c ****
- 354 .loc 1 72 5 is_stmt 1 view .LVU92
- 355 0062 FFF7FEFF bl memset
- 356 .LVL20:
- 74:user_src/soft_uart.c **** msg_buf[index++] = 0;
- 357 .loc 1 74 5 view .LVU93
- 87:user_src/soft_uart.c **** Int2String(pmu_hardversion,&hardverison_buf[0],12);
- 358 .loc 1 87 5 is_stmt 0 view .LVU94
- 359 0066 244B ldr r3, .L42+20
- 360 .LBB8:
- 361 .LBB9:
- 13:user_src/soft_uart.c **** while (HAL_GetTick() - send_time < 1)
- 362 .loc 1 13 15 view .LVU95
- 363 0068 244C ldr r4, .L42+24
- 364 .LBE9:
- 365 .LBE8:
- 87:user_src/soft_uart.c **** Int2String(pmu_hardversion,&hardverison_buf[0],12);
- 366 .loc 1 87 5 view .LVU96
- 367 006a 1868 ldr r0, [r3]
- 74:user_src/soft_uart.c **** msg_buf[index++] = 0;
- 368 .loc 1 74 22 view .LVU97
- 369 006c FE23 movs r3, #254
- 370 006e 2B70 strb r3, [r5]
- 75:user_src/soft_uart.c **** msg_buf[index++] = 0;
- 371 .loc 1 75 5 is_stmt 1 view .LVU98
- 372 .LVL21:
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 11
- 76:user_src/soft_uart.c **** msg_buf[index++] = 0x00;
- 373 .loc 1 76 5 view .LVU99
- 77:user_src/soft_uart.c **** msg_buf[index++] = 0x00;
- 374 .loc 1 77 5 view .LVU100
- 78:user_src/soft_uart.c **** msg_buf[index++] = 26;
- 375 .loc 1 78 5 view .LVU101
- 79:user_src/soft_uart.c ****
- 376 .loc 1 79 5 view .LVU102
- 79:user_src/soft_uart.c ****
- 377 .loc 1 79 22 is_stmt 0 view .LVU103
- 378 0070 1A23 movs r3, #26
- 379 0072 6B71 strb r3, [r5, #5]
- 81:user_src/soft_uart.c **** memcpy(&msg_buf[index],&s16,2); //PMU设备号
- 380 .loc 1 81 5 is_stmt 1 view .LVU104
- 381 .LVL22:
- 82:user_src/soft_uart.c **** index += 2;
- 382 .loc 1 82 5 view .LVU105
- 383 0074 0323 movs r3, #3
- 87:user_src/soft_uart.c **** Int2String(pmu_hardversion,&hardverison_buf[0],12);
- 384 .loc 1 87 5 is_stmt 0 view .LVU106
- 385 0076 0C22 movs r2, #12
- 386 0078 6946 mov r1, sp
- 82:user_src/soft_uart.c **** index += 2;
- 387 .loc 1 82 5 view .LVU107
- 388 007a EB80 strh r3, [r5, #6] @ movhi
- 83:user_src/soft_uart.c ****
- 389 .loc 1 83 5 is_stmt 1 view .LVU108
- 390 .LVL23:
- 85:user_src/soft_uart.c ****
- 391 .loc 1 85 5 view .LVU109
- 85:user_src/soft_uart.c ****
- 392 .loc 1 85 22 is_stmt 0 view .LVU110
- 393 007c 0123 movs r3, #1
- 394 007e 2B72 strb r3, [r5, #8]
- 87:user_src/soft_uart.c **** Int2String(pmu_hardversion,&hardverison_buf[0],12);
- 395 .loc 1 87 5 is_stmt 1 view .LVU111
- 396 0080 FFF7FEFF bl Int2String
- 397 .LVL24:
- 88:user_src/soft_uart.c ****
- 398 .loc 1 88 5 view .LVU112
- 399 0084 1E4B ldr r3, .L42+28
- 400 0086 0C22 movs r2, #12
- 401 0088 0DEB0201 add r1, sp, r2
- 402 008c 1868 ldr r0, [r3]
- 403 008e FFF7FEFF bl Int2String
- 404 .LVL25:
- 90:user_src/soft_uart.c **** index += 32;
- 405 .loc 1 90 5 view .LVU113
- 406 0092 6A46 mov r2, sp
- 407 0094 03CA ldmia r2!, {r0, r1}
- 93:user_src/soft_uart.c **** index += 16;//硬件
- 408 .loc 1 93 5 is_stmt 0 view .LVU114
- 409 0096 03AB add r3, sp, #12
- 90:user_src/soft_uart.c **** index += 32;
- 410 .loc 1 90 5 view .LVU115
- 411 0098 C5F80900 str r0, [r5, #9] @ unaligned
- 412 009c C5F80D10 str r1, [r5, #13] @ unaligned
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 12
- 93:user_src/soft_uart.c **** index += 16;//硬件
- 413 .loc 1 93 5 view .LVU116
- 414 00a0 03CB ldmia r3!, {r0, r1}
- 90:user_src/soft_uart.c **** index += 32;
- 415 .loc 1 90 5 view .LVU117
- 416 00a2 1288 ldrh r2, [r2] @ unaligned
- 417 00a4 A5F81120 strh r2, [r5, #17] @ unaligned
- 91:user_src/soft_uart.c **** index += 16;
- 418 .loc 1 91 5 is_stmt 1 view .LVU118
- 419 .LVL26:
- 92:user_src/soft_uart.c **** memcpy(&msg_buf[index],&hardverison_buf[0],10);//sn
- 420 .loc 1 92 5 view .LVU119
- 93:user_src/soft_uart.c **** index += 16;//硬件
- 421 .loc 1 93 5 view .LVU120
- 422 00a8 C5F83900 str r0, [r5, #57] @ unaligned
- 423 00ac 1A88 ldrh r2, [r3] @ unaligned
- 424 00ae C5F83D10 str r1, [r5, #61] @ unaligned
- 97:user_src/soft_uart.c **** uint16_t uart_crc = Get_Crc16(msg_buf, index);
- 425 .loc 1 97 16 is_stmt 0 view .LVU121
- 426 00b2 5323 movs r3, #83
- 98:user_src/soft_uart.c **** memcpy(&msg_buf[index], &uart_crc, 2);
- 427 .loc 1 98 25 view .LVU122
- 428 00b4 5921 movs r1, #89
- 429 00b6 2846 mov r0, r5
- 93:user_src/soft_uart.c **** index += 16;//硬件
- 430 .loc 1 93 5 view .LVU123
- 431 00b8 A5F84120 strh r2, [r5, #65] @ unaligned
- 94:user_src/soft_uart.c **** index += 16;//厂商
- 432 .loc 1 94 5 is_stmt 1 view .LVU124
- 433 .LVL27:
- 95:user_src/soft_uart.c ****
- 434 .loc 1 95 5 view .LVU125
- 97:user_src/soft_uart.c **** uint16_t uart_crc = Get_Crc16(msg_buf, index);
- 435 .loc 1 97 5 view .LVU126
- 97:user_src/soft_uart.c **** uint16_t uart_crc = Get_Crc16(msg_buf, index);
- 436 .loc 1 97 16 is_stmt 0 view .LVU127
- 437 00bc 6B70 strb r3, [r5, #1]
- 98:user_src/soft_uart.c **** memcpy(&msg_buf[index], &uart_crc, 2);
- 438 .loc 1 98 5 is_stmt 1 view .LVU128
- 98:user_src/soft_uart.c **** memcpy(&msg_buf[index], &uart_crc, 2);
- 439 .loc 1 98 25 is_stmt 0 view .LVU129
- 440 00be FFF7FEFF bl Get_Crc16
- 441 .LVL28:
- 99:user_src/soft_uart.c **** index += 2;
- 442 .loc 1 99 5 is_stmt 1 view .LVU130
- 443 00c2 A5F85900 strh r0, [r5, #89] @ unaligned
- 100:user_src/soft_uart.c ****
- 444 .loc 1 100 5 view .LVU131
- 445 .LVL29:
- 102:user_src/soft_uart.c ****
- 446 .loc 1 102 5 view .LVU132
- 447 .LBB11:
- 448 .LBI8:
- 9:user_src/soft_uart.c **** {
- 449 .loc 1 9 6 view .LVU133
- 450 .LBB10:
- 11:user_src/soft_uart.c ****
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 13
- 451 .loc 1 11 5 view .LVU134
- 13:user_src/soft_uart.c **** while (HAL_GetTick() - send_time < 1)
- 452 .loc 1 13 5 view .LVU135
- 13:user_src/soft_uart.c **** while (HAL_GetTick() - send_time < 1)
- 453 .loc 1 13 17 is_stmt 0 view .LVU136
- 454 00c6 FFF7FEFF bl HAL_GetTick
- 455 .LVL30:
- 13:user_src/soft_uart.c **** while (HAL_GetTick() - send_time < 1)
- 456 .loc 1 13 15 view .LVU137
- 457 00ca 2060 str r0, [r4]
- 14:user_src/soft_uart.c **** ;
- 458 .loc 1 14 5 is_stmt 1 view .LVU138
- 459 .L27:
- 15:user_src/soft_uart.c **** HAL_UART_Transmit_DMA(&huart2, data, size);
- 460 .loc 1 15 9 view .LVU139
- 14:user_src/soft_uart.c **** ;
- 461 .loc 1 14 11 view .LVU140
- 14:user_src/soft_uart.c **** ;
- 462 .loc 1 14 12 is_stmt 0 view .LVU141
- 463 00cc FFF7FEFF bl HAL_GetTick
- 464 .LVL31:
- 14:user_src/soft_uart.c **** ;
- 465 .loc 1 14 11 view .LVU142
- 466 00d0 2368 ldr r3, [r4]
- 467 00d2 9842 cmp r0, r3
- 468 00d4 FAD0 beq .L27
- 16:user_src/soft_uart.c **** }
- 469 .loc 1 16 5 is_stmt 1 view .LVU143
- 470 00d6 0749 ldr r1, .L42+16
- 471 00d8 0248 ldr r0, .L42
- 472 00da 5B22 movs r2, #91
- 473 00dc FFF7FEFF bl HAL_UART_Transmit_DMA
- 474 .LVL32:
- 16:user_src/soft_uart.c **** }
- 475 .loc 1 16 5 is_stmt 0 view .LVU144
- 476 .LBE10:
- 477 .LBE11:
- 478 00e0 A3E7 b .L25
- 479 .L43:
- 480 00e2 00BF .align 2
- 481 .L42:
- 482 00e4 00000000 .word huart2
- 483 00e8 00000000 .word .LANCHOR3
- 484 00ec 00000000 .word .LANCHOR4
- 485 00f0 00000000 .word .LANCHOR5
- 486 00f4 00000000 .word .LANCHOR6
- 487 00f8 00000000 .word pmu_sn
- 488 00fc 00000000 .word .LANCHOR0
- 489 0100 00000000 .word pmu_hardversion
- 490 .cfi_endproc
- 491 .LFE135:
- 493 .section .text.Update_ack_fmu,"ax",%progbits
- 494 .align 1
- 495 .p2align 2,,3
- 496 .global Update_ack_fmu
- 497 .syntax unified
- 498 .thumb
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 14
- 499 .thumb_func
- 501 Update_ack_fmu:
- 502 .LVL33:
- 503 .LFB136:
- 109:user_src/soft_uart.c ****
- 504 .loc 1 109 1 is_stmt 1 view -0
- 505 .cfi_startproc
- 506 @ args = 0, pretend = 0, frame = 0
- 507 @ frame_needed = 0, uses_anonymous_args = 0
- 111:user_src/soft_uart.c **** msg_buf[index++] = 0xFE;
- 508 .loc 1 111 5 view .LVU146
- 112:user_src/soft_uart.c **** msg_buf[index++] = 0;
- 509 .loc 1 112 5 view .LVU147
- 113:user_src/soft_uart.c **** msg_buf[index++] = 0;
- 510 .loc 1 113 5 view .LVU148
- 114:user_src/soft_uart.c **** msg_buf[index++] = 0x00;
- 511 .loc 1 114 5 view .LVU149
- 115:user_src/soft_uart.c **** msg_buf[index++] = 204;
- 512 .loc 1 115 5 view .LVU150
- 116:user_src/soft_uart.c **** msg_buf[index++] = 21;
- 513 .loc 1 116 5 view .LVU151
- 117:user_src/soft_uart.c ****
- 514 .loc 1 117 5 view .LVU152
- 109:user_src/soft_uart.c ****
- 515 .loc 1 109 1 is_stmt 0 view .LVU153
- 516 0000 38B5 push {r3, r4, r5, lr}
- 517 .LCFI9:
- 518 .cfi_def_cfa_offset 16
- 519 .cfi_offset 3, -16
- 520 .cfi_offset 4, -12
- 521 .cfi_offset 5, -8
- 522 .cfi_offset 14, -4
- 112:user_src/soft_uart.c **** msg_buf[index++] = 0;
- 523 .loc 1 112 22 view .LVU154
- 524 0002 124D ldr r5, .L48
- 525 .LBB14:
- 526 .LBB15:
- 13:user_src/soft_uart.c **** while (HAL_GetTick() - send_time < 1)
- 527 .loc 1 13 15 view .LVU155
- 528 0004 124C ldr r4, .L48+4
- 529 .LBE15:
- 530 .LBE14:
- 119:user_src/soft_uart.c **** msg_buf[index++] = *ackbuf;
- 531 .loc 1 119 22 view .LVU156
- 532 0006 A871 strb r0, [r5, #6]
- 112:user_src/soft_uart.c **** msg_buf[index++] = 0;
- 533 .loc 1 112 22 view .LVU157
- 534 0008 FE22 movs r2, #254
- 116:user_src/soft_uart.c **** msg_buf[index++] = 21;
- 535 .loc 1 116 22 view .LVU158
- 536 000a 41F2CC53 movw r3, #5580
- 112:user_src/soft_uart.c **** msg_buf[index++] = 0;
- 537 .loc 1 112 22 view .LVU159
- 538 000e 2A60 str r2, [r5]
- 116:user_src/soft_uart.c **** msg_buf[index++] = 21;
- 539 .loc 1 116 22 view .LVU160
- 540 0010 AB80 strh r3, [r5, #4] @ movhi
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 15
- 119:user_src/soft_uart.c **** msg_buf[index++] = *ackbuf;
- 541 .loc 1 119 5 is_stmt 1 view .LVU161
- 542 .LVL34:
- 120:user_src/soft_uart.c **** msg_buf[index++] = *(ackbuf + 1);
- 543 .loc 1 120 5 view .LVU162
- 120:user_src/soft_uart.c **** msg_buf[index++] = *(ackbuf + 1);
- 544 .loc 1 120 24 is_stmt 0 view .LVU163
- 545 0012 0B78 ldrb r3, [r1] @ zero_extendqisi2
- 120:user_src/soft_uart.c **** msg_buf[index++] = *(ackbuf + 1);
- 546 .loc 1 120 22 view .LVU164
- 547 0014 EB71 strb r3, [r5, #7]
- 121:user_src/soft_uart.c **** msg_buf[index++] = 1;
- 548 .loc 1 121 5 is_stmt 1 view .LVU165
- 549 .LVL35:
- 121:user_src/soft_uart.c **** msg_buf[index++] = 1;
- 550 .loc 1 121 22 is_stmt 0 view .LVU166
- 551 0016 4878 ldrb r0, [r1, #1] @ zero_extendqisi2
- 552 .LVL36:
- 121:user_src/soft_uart.c **** msg_buf[index++] = 1;
- 553 .loc 1 121 22 view .LVU167
- 554 0018 2872 strb r0, [r5, #8]
- 122:user_src/soft_uart.c ****
- 555 .loc 1 122 5 is_stmt 1 view .LVU168
- 556 .LVL37:
- 122:user_src/soft_uart.c ****
- 557 .loc 1 122 22 is_stmt 0 view .LVU169
- 558 001a 0122 movs r2, #1
- 124:user_src/soft_uart.c **** uint16_t uart_crc = Get_Crc16(msg_buf, index);
- 559 .loc 1 124 16 view .LVU170
- 560 001c 0423 movs r3, #4
- 125:user_src/soft_uart.c **** memcpy(&msg_buf[index], &uart_crc, 2);
- 561 .loc 1 125 25 view .LVU171
- 562 001e 0A21 movs r1, #10
- 563 .LVL38:
- 125:user_src/soft_uart.c **** memcpy(&msg_buf[index], &uart_crc, 2);
- 564 .loc 1 125 25 view .LVU172
- 565 0020 2846 mov r0, r5
- 122:user_src/soft_uart.c ****
- 566 .loc 1 122 22 view .LVU173
- 567 0022 6A72 strb r2, [r5, #9]
- 124:user_src/soft_uart.c **** uint16_t uart_crc = Get_Crc16(msg_buf, index);
- 568 .loc 1 124 5 is_stmt 1 view .LVU174
- 124:user_src/soft_uart.c **** uint16_t uart_crc = Get_Crc16(msg_buf, index);
- 569 .loc 1 124 16 is_stmt 0 view .LVU175
- 570 0024 6B70 strb r3, [r5, #1]
- 125:user_src/soft_uart.c **** memcpy(&msg_buf[index], &uart_crc, 2);
- 571 .loc 1 125 5 is_stmt 1 view .LVU176
- 125:user_src/soft_uart.c **** memcpy(&msg_buf[index], &uart_crc, 2);
- 572 .loc 1 125 25 is_stmt 0 view .LVU177
- 573 0026 FFF7FEFF bl Get_Crc16
- 574 .LVL39:
- 126:user_src/soft_uart.c **** index += 2;
- 575 .loc 1 126 5 is_stmt 1 view .LVU178
- 576 002a 6881 strh r0, [r5, #10] @ movhi
- 127:user_src/soft_uart.c ****
- 577 .loc 1 127 5 view .LVU179
- 578 .LVL40:
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 16
- 129:user_src/soft_uart.c **** }
- 579 .loc 1 129 5 view .LVU180
- 580 .LBB18:
- 581 .LBI14:
- 9:user_src/soft_uart.c **** {
- 582 .loc 1 9 6 view .LVU181
- 583 .LBB16:
- 11:user_src/soft_uart.c ****
- 584 .loc 1 11 5 view .LVU182
- 13:user_src/soft_uart.c **** while (HAL_GetTick() - send_time < 1)
- 585 .loc 1 13 5 view .LVU183
- 13:user_src/soft_uart.c **** while (HAL_GetTick() - send_time < 1)
- 586 .loc 1 13 17 is_stmt 0 view .LVU184
- 587 002c FFF7FEFF bl HAL_GetTick
- 588 .LVL41:
- 13:user_src/soft_uart.c **** while (HAL_GetTick() - send_time < 1)
- 589 .loc 1 13 15 view .LVU185
- 590 0030 2060 str r0, [r4]
- 14:user_src/soft_uart.c **** ;
- 591 .loc 1 14 5 is_stmt 1 view .LVU186
- 592 .L45:
- 15:user_src/soft_uart.c **** HAL_UART_Transmit_DMA(&huart2, data, size);
- 593 .loc 1 15 9 view .LVU187
- 14:user_src/soft_uart.c **** ;
- 594 .loc 1 14 11 view .LVU188
- 14:user_src/soft_uart.c **** ;
- 595 .loc 1 14 12 is_stmt 0 view .LVU189
- 596 0032 FFF7FEFF bl HAL_GetTick
- 597 .LVL42:
- 14:user_src/soft_uart.c **** ;
- 598 .loc 1 14 11 view .LVU190
- 599 0036 2368 ldr r3, [r4]
- 600 0038 9842 cmp r0, r3
- 601 003a FAD0 beq .L45
- 16:user_src/soft_uart.c **** }
- 602 .loc 1 16 5 is_stmt 1 view .LVU191
- 603 .LBE16:
- 604 .LBE18:
- 130:user_src/soft_uart.c ****
- 605 .loc 1 130 1 is_stmt 0 view .LVU192
- 606 003c BDE83840 pop {r3, r4, r5, lr}
- 607 .LCFI10:
- 608 .cfi_restore 14
- 609 .cfi_restore 5
- 610 .cfi_restore 4
- 611 .cfi_restore 3
- 612 .cfi_def_cfa_offset 0
- 613 .LBB19:
- 614 .LBB17:
- 16:user_src/soft_uart.c **** }
- 615 .loc 1 16 5 view .LVU193
- 616 0040 0249 ldr r1, .L48
- 617 0042 0448 ldr r0, .L48+8
- 618 0044 0C22 movs r2, #12
- 619 0046 FFF7FEBF b HAL_UART_Transmit_DMA
- 620 .LVL43:
- 621 .L49:
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 17
- 622 004a 00BF .align 2
- 623 .L48:
- 624 004c 00000000 .word .LANCHOR6
- 625 0050 00000000 .word .LANCHOR0
- 626 0054 00000000 .word huart2
- 627 .LBE17:
- 628 .LBE19:
- 629 .cfi_endproc
- 630 .LFE136:
- 632 .section .text.check_usart_is_ok,"ax",%progbits
- 633 .align 1
- 634 .p2align 2,,3
- 635 .global check_usart_is_ok
- 636 .syntax unified
- 637 .thumb
- 638 .thumb_func
- 640 check_usart_is_ok:
- 641 .LFB137:
- 133:user_src/soft_uart.c **** if (huart2.gState == HAL_UART_STATE_READY && (__HAL_UART_GET_FLAG(&huart2, UART_FLAG_TC) != RES
- 642 .loc 1 133 1 is_stmt 1 view -0
- 643 .cfi_startproc
- 644 @ args = 0, pretend = 0, frame = 0
- 645 @ frame_needed = 0, uses_anonymous_args = 0
- 646 @ link register save eliminated.
- 647 .loc 1 134 5 view .LVU195
- 648 .loc 1 134 15 is_stmt 0 view .LVU196
- 649 0000 074B ldr r3, .L54
- 650 0002 DA6F ldr r2, [r3, #124]
- 651 .loc 1 134 8 view .LVU197
- 652 0004 202A cmp r2, #32
- 653 0006 08D1 bne .L52
- 654 .loc 1 134 51 discriminator 1 view .LVU198
- 655 0008 1B68 ldr r3, [r3]
- 656 000a D869 ldr r0, [r3, #28]
- 657 .loc 1 134 47 discriminator 1 view .LVU199
- 658 000c 10F04000 ands r0, r0, #64
- 659 0010 04D0 beq .L51
- 660 .loc 1 134 106 discriminator 2 view .LVU200
- 661 0012 D869 ldr r0, [r3, #28]
- 662 .loc 1 134 103 discriminator 2 view .LVU201
- 663 0014 C0F3C010 ubfx r0, r0, #7, #1
- 664 0018 7047 bx lr
- 665 .L52:
- 135:user_src/soft_uart.c **** {
- 136:user_src/soft_uart.c **** }
- 137:user_src/soft_uart.c **** else
- 138:user_src/soft_uart.c **** {
- 139:user_src/soft_uart.c **** return false;
- 666 .loc 1 139 16 view .LVU202
- 667 001a 0020 movs r0, #0
- 668 .L51:
- 140:user_src/soft_uart.c **** }
- 141:user_src/soft_uart.c **** return true;
- 142:user_src/soft_uart.c **** }
- 669 .loc 1 142 1 view .LVU203
- 670 001c 7047 bx lr
- 671 .L55:
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 18
- 672 001e 00BF .align 2
- 673 .L54:
- 674 0020 00000000 .word huart2
- 675 .cfi_endproc
- 676 .LFE137:
- 678 .section .text.update_function,"ax",%progbits
- 679 .align 1
- 680 .p2align 2,,3
- 681 .global update_function
- 682 .syntax unified
- 683 .thumb
- 684 .thumb_func
- 686 update_function:
- 687 .LFB138:
- 143:user_src/soft_uart.c ****
- 144:user_src/soft_uart.c **** uint32_t addr_offset = 0;
- 145:user_src/soft_uart.c **** bool update_complete = false;
- 146:user_src/soft_uart.c **** void update_function(void)
- 147:user_src/soft_uart.c **** {
- 688 .loc 1 147 1 is_stmt 1 view -0
- 689 .cfi_startproc
- 690 @ args = 0, pretend = 0, frame = 8
- 691 @ frame_needed = 0, uses_anonymous_args = 0
- 148:user_src/soft_uart.c **** uint16_t crc = Get_Crc16(update.data, (uint16_t)update.data[LEN] + 2 + 6);
- 692 .loc 1 148 5 view .LVU205
- 147:user_src/soft_uart.c **** uint16_t crc = Get_Crc16(update.data, (uint16_t)update.data[LEN] + 2 + 6);
- 693 .loc 1 147 1 is_stmt 0 view .LVU206
- 694 0000 F0B5 push {r4, r5, r6, r7, lr}
- 695 .LCFI11:
- 696 .cfi_def_cfa_offset 20
- 697 .cfi_offset 4, -20
- 698 .cfi_offset 5, -16
- 699 .cfi_offset 6, -12
- 700 .cfi_offset 7, -8
- 701 .cfi_offset 14, -4
- 702 .loc 1 148 64 view .LVU207
- 703 0002 434C ldr r4, .L83
- 704 0004 6178 ldrb r1, [r4, #1] @ zero_extendqisi2
- 147:user_src/soft_uart.c **** uint16_t crc = Get_Crc16(update.data, (uint16_t)update.data[LEN] + 2 + 6);
- 705 .loc 1 147 1 view .LVU208
- 706 0006 83B0 sub sp, sp, #12
- 707 .LCFI12:
- 708 .cfi_def_cfa_offset 32
- 709 .loc 1 148 20 view .LVU209
- 710 0008 2046 mov r0, r4
- 711 000a 0831 adds r1, r1, #8
- 712 000c FFF7FEFF bl Get_Crc16
- 713 .LVL44:
- 149:user_src/soft_uart.c **** int temp_32t = 0;
- 714 .loc 1 149 5 is_stmt 1 view .LVU210
- 715 .loc 1 149 9 is_stmt 0 view .LVU211
- 716 0010 0023 movs r3, #0
- 717 0012 0193 str r3, [sp, #4]
- 150:user_src/soft_uart.c ****
- 151:user_src/soft_uart.c **** if (crc != 0 || check_usart_is_ok() != true)
- 718 .loc 1 151 5 is_stmt 1 view .LVU212
- 719 .loc 1 151 8 is_stmt 0 view .LVU213
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 19
- 720 0014 20B1 cbz r0, .L79
- 721 .L57:
- 152:user_src/soft_uart.c **** {
- 153:user_src/soft_uart.c **** update.usebuf_flag = false;
- 722 .loc 1 153 9 is_stmt 1 view .LVU214
- 723 .loc 1 153 28 is_stmt 0 view .LVU215
- 724 0016 0023 movs r3, #0
- 725 0018 84F80031 strb r3, [r4, #256]
- 154:user_src/soft_uart.c **** return;
- 726 .loc 1 154 9 is_stmt 1 view .LVU216
- 155:user_src/soft_uart.c **** }
- 156:user_src/soft_uart.c ****
- 157:user_src/soft_uart.c **** switch (update.data[MSGID_ID])
- 158:user_src/soft_uart.c **** {
- 159:user_src/soft_uart.c **** case UPDATE_START:
- 160:user_src/soft_uart.c **** memcpy(&temp_32t, &update.data[PAYLOAD], 4);
- 161:user_src/soft_uart.c **** if (temp_32t < 231424 && temp_32t > 112640) //新固件大小在110kb-226kb之间
- 162:user_src/soft_uart.c **** {
- 163:user_src/soft_uart.c **** if(cur_pack_num > 1) //中途重新升级
- 164:user_src/soft_uart.c **** HAL_NVIC_SystemReset();
- 165:user_src/soft_uart.c ****
- 166:user_src/soft_uart.c **** temp_32t = 0;
- 167:user_src/soft_uart.c **** Update_ack_fmu(UPDATE_START, (uint8_t *)&temp_32t);
- 168:user_src/soft_uart.c **** addr_offset = 0;
- 169:user_src/soft_uart.c **** cur_pack_num = 1;
- 170:user_src/soft_uart.c **** }
- 171:user_src/soft_uart.c **** break;
- 172:user_src/soft_uart.c **** case UPDATE_ING:
- 173:user_src/soft_uart.c **** if (cur_pack_num == update.data[PAYLOAD] + update.data[PAYLOAD + 1] * 256)
- 174:user_src/soft_uart.c **** {
- 175:user_src/soft_uart.c **** temp_32t = Flash_WriteData(FLASH_APP_ADDR + addr_offset, (uint16_t *)&update.data[PAYLO
- 176:user_src/soft_uart.c **** if (temp_32t == WRITE_SUCCESS)
- 177:user_src/soft_uart.c **** {
- 178:user_src/soft_uart.c **** cur_pack_num++;
- 179:user_src/soft_uart.c **** addr_offset += update.data[LEN] - 2;
- 180:user_src/soft_uart.c **** Update_ack_fmu(UPDATE_ING, &update.data[PAYLOAD]);
- 181:user_src/soft_uart.c **** }
- 182:user_src/soft_uart.c **** }
- 183:user_src/soft_uart.c **** else if(cur_pack_num > update.data[PAYLOAD] + update.data[PAYLOAD + 1] * 256)
- 184:user_src/soft_uart.c **** {
- 185:user_src/soft_uart.c **** Update_ack_fmu(UPDATE_ING, &update.data[PAYLOAD]);
- 186:user_src/soft_uart.c **** }
- 187:user_src/soft_uart.c **** break;
- 188:user_src/soft_uart.c **** case UPDATE_END:
- 189:user_src/soft_uart.c **** temp_32t = 0;
- 190:user_src/soft_uart.c **** if(update_complete != true)
- 191:user_src/soft_uart.c **** {
- 192:user_src/soft_uart.c **** update_complete = wirte_update_flag();
- 193:user_src/soft_uart.c **** if(update_complete == true)
- 194:user_src/soft_uart.c **** Update_ack_fmu(UPDATE_END, (uint8_t *)&temp_32t);
- 195:user_src/soft_uart.c **** HAL_Delay(50);
- 196:user_src/soft_uart.c **** }
- 197:user_src/soft_uart.c **** break;
- 198:user_src/soft_uart.c ****
- 199:user_src/soft_uart.c **** default:
- 200:user_src/soft_uart.c **** break;
- 201:user_src/soft_uart.c **** }
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 20
- 202:user_src/soft_uart.c **** update.usebuf_flag = false;
- 203:user_src/soft_uart.c **** memset(update.data, 0, MAX_UART_BUF);
- 204:user_src/soft_uart.c **** }
- 727 .loc 1 204 1 is_stmt 0 view .LVU217
- 728 001c 03B0 add sp, sp, #12
- 729 .LCFI13:
- 730 .cfi_remember_state
- 731 .cfi_def_cfa_offset 20
- 732 @ sp needed
- 733 001e F0BD pop {r4, r5, r6, r7, pc}
- 734 .L79:
- 735 .LCFI14:
- 736 .cfi_restore_state
- 737 .LBB22:
- 738 .LBI22:
- 132:user_src/soft_uart.c **** {
- 739 .loc 1 132 6 is_stmt 1 view .LVU218
- 740 .LBB23:
- 134:user_src/soft_uart.c **** {
- 741 .loc 1 134 5 view .LVU219
- 134:user_src/soft_uart.c **** {
- 742 .loc 1 134 15 is_stmt 0 view .LVU220
- 743 0020 3C4B ldr r3, .L83+4
- 744 0022 DA6F ldr r2, [r3, #124]
- 134:user_src/soft_uart.c **** {
- 745 .loc 1 134 8 view .LVU221
- 746 0024 202A cmp r2, #32
- 747 0026 F6D1 bne .L57
- 134:user_src/soft_uart.c **** {
- 748 .loc 1 134 51 view .LVU222
- 749 0028 1B68 ldr r3, [r3]
- 750 002a DA69 ldr r2, [r3, #28]
- 134:user_src/soft_uart.c **** {
- 751 .loc 1 134 47 view .LVU223
- 752 002c 5206 lsls r2, r2, #25
- 753 002e F2D5 bpl .L57
- 134:user_src/soft_uart.c **** {
- 754 .loc 1 134 106 view .LVU224
- 755 0030 DB69 ldr r3, [r3, #28]
- 134:user_src/soft_uart.c **** {
- 756 .loc 1 134 103 view .LVU225
- 757 0032 1B06 lsls r3, r3, #24
- 758 0034 EFD5 bpl .L57
- 759 .LBE23:
- 760 .LBE22:
- 157:user_src/soft_uart.c **** {
- 761 .loc 1 157 5 is_stmt 1 view .LVU226
- 157:user_src/soft_uart.c **** {
- 762 .loc 1 157 24 is_stmt 0 view .LVU227
- 763 0036 6579 ldrb r5, [r4, #5] @ zero_extendqisi2
- 157:user_src/soft_uart.c **** {
- 764 .loc 1 157 5 view .LVU228
- 765 0038 C92D cmp r5, #201
- 766 003a 0ED0 beq .L58
- 767 003c CA2D cmp r5, #202
- 768 003e 36D0 beq .L59
- 769 0040 C82D cmp r5, #200
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 21
- 770 0042 19D0 beq .L80
- 771 .LVL45:
- 772 .L61:
- 202:user_src/soft_uart.c **** memset(update.data, 0, MAX_UART_BUF);
- 773 .loc 1 202 5 is_stmt 1 discriminator 3 view .LVU229
- 203:user_src/soft_uart.c **** }
- 774 .loc 1 203 5 is_stmt 0 discriminator 3 view .LVU230
- 775 0044 3248 ldr r0, .L83
- 202:user_src/soft_uart.c **** memset(update.data, 0, MAX_UART_BUF);
- 776 .loc 1 202 24 discriminator 3 view .LVU231
- 777 0046 0021 movs r1, #0
- 203:user_src/soft_uart.c **** }
- 778 .loc 1 203 5 discriminator 3 view .LVU232
- 779 0048 4FF48072 mov r2, #256
- 202:user_src/soft_uart.c **** memset(update.data, 0, MAX_UART_BUF);
- 780 .loc 1 202 24 discriminator 3 view .LVU233
- 781 004c 84F80011 strb r1, [r4, #256]
- 203:user_src/soft_uart.c **** }
- 782 .loc 1 203 5 is_stmt 1 discriminator 3 view .LVU234
- 783 .loc 1 204 1 is_stmt 0 discriminator 3 view .LVU235
- 784 0050 03B0 add sp, sp, #12
- 785 .LCFI15:
- 786 .cfi_remember_state
- 787 .cfi_def_cfa_offset 20
- 788 @ sp needed
- 789 0052 BDE8F040 pop {r4, r5, r6, r7, lr}
- 790 .LCFI16:
- 791 .cfi_restore 14
- 792 .cfi_restore 7
- 793 .cfi_restore 6
- 794 .cfi_restore 5
- 795 .cfi_restore 4
- 796 .cfi_def_cfa_offset 0
- 203:user_src/soft_uart.c **** }
- 797 .loc 1 203 5 discriminator 3 view .LVU236
- 798 0056 FFF7FEBF b memset
- 799 .LVL46:
- 800 .L58:
- 801 .LCFI17:
- 802 .cfi_restore_state
- 173:user_src/soft_uart.c **** {
- 803 .loc 1 173 9 is_stmt 1 view .LVU237
- 173:user_src/soft_uart.c **** {
- 804 .loc 1 173 63 is_stmt 0 view .LVU238
- 805 005a E279 ldrb r2, [r4, #7] @ zero_extendqisi2
- 173:user_src/soft_uart.c **** {
- 806 .loc 1 173 26 view .LVU239
- 807 005c 2E4E ldr r6, .L83+8
- 173:user_src/soft_uart.c **** {
- 808 .loc 1 173 40 view .LVU240
- 809 005e A379 ldrb r3, [r4, #6] @ zero_extendqisi2
- 173:user_src/soft_uart.c **** {
- 810 .loc 1 173 50 view .LVU241
- 811 0060 03EB0223 add r3, r3, r2, lsl #8
- 173:user_src/soft_uart.c **** {
- 812 .loc 1 173 26 view .LVU242
- 813 0064 3268 ldr r2, [r6]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 22
- 173:user_src/soft_uart.c **** {
- 814 .loc 1 173 12 view .LVU243
- 815 0066 9342 cmp r3, r2
- 816 0068 2DD0 beq .L81
- 183:user_src/soft_uart.c **** {
- 817 .loc 1 183 14 is_stmt 1 view .LVU244
- 183:user_src/soft_uart.c **** {
- 818 .loc 1 183 16 is_stmt 0 view .LVU245
- 819 006a 9A42 cmp r2, r3
- 820 006c EAD9 bls .L61
- 185:user_src/soft_uart.c **** }
- 821 .loc 1 185 13 is_stmt 1 view .LVU246
- 822 006e A11D adds r1, r4, #6
- 823 0070 2846 mov r0, r5
- 824 .LVL47:
- 185:user_src/soft_uart.c **** }
- 825 .loc 1 185 13 is_stmt 0 view .LVU247
- 826 0072 FFF7FEFF bl Update_ack_fmu
- 827 .LVL48:
- 828 0076 E5E7 b .L61
- 829 .LVL49:
- 830 .L80:
- 160:user_src/soft_uart.c **** if (temp_32t < 231424 && temp_32t > 112640) //新固件大小在110kb-226kb之间
- 831 .loc 1 160 9 is_stmt 1 view .LVU248
- 832 0078 D4F80620 ldr r2, [r4, #6] @ unaligned
- 161:user_src/soft_uart.c **** {
- 833 .loc 1 161 12 is_stmt 0 view .LVU249
- 834 007c 2749 ldr r1, .L83+12
- 160:user_src/soft_uart.c **** if (temp_32t < 231424 && temp_32t > 112640) //新固件大小在110kb-226kb之间
- 835 .loc 1 160 9 view .LVU250
- 836 007e 0192 str r2, [sp, #4]
- 161:user_src/soft_uart.c **** {
- 837 .loc 1 161 9 is_stmt 1 view .LVU251
- 161:user_src/soft_uart.c **** {
- 838 .loc 1 161 31 is_stmt 0 view .LVU252
- 839 0080 A2F10113 sub r3, r2, #65537
- 840 0084 A3F53843 sub r3, r3, #47104
- 161:user_src/soft_uart.c **** {
- 841 .loc 1 161 12 view .LVU253
- 842 0088 8B42 cmp r3, r1
- 843 008a DBD8 bhi .L61
- 163:user_src/soft_uart.c **** HAL_NVIC_SystemReset();
- 844 .loc 1 163 13 is_stmt 1 view .LVU254
- 163:user_src/soft_uart.c **** HAL_NVIC_SystemReset();
- 845 .loc 1 163 29 is_stmt 0 view .LVU255
- 846 008c 224D ldr r5, .L83+8
- 163:user_src/soft_uart.c **** HAL_NVIC_SystemReset();
- 847 .loc 1 163 15 view .LVU256
- 848 008e 2B68 ldr r3, [r5]
- 849 0090 012B cmp r3, #1
- 850 0092 01D9 bls .L64
- 164:user_src/soft_uart.c ****
- 851 .loc 1 164 17 is_stmt 1 view .LVU257
- 852 0094 FFF7FEFF bl HAL_NVIC_SystemReset
- 853 .LVL50:
- 854 .L64:
- 166:user_src/soft_uart.c **** Update_ack_fmu(UPDATE_START, (uint8_t *)&temp_32t);
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 23
- 855 .loc 1 166 13 view .LVU258
- 166:user_src/soft_uart.c **** Update_ack_fmu(UPDATE_START, (uint8_t *)&temp_32t);
- 856 .loc 1 166 22 is_stmt 0 view .LVU259
- 857 0098 0026 movs r6, #0
- 167:user_src/soft_uart.c **** addr_offset = 0;
- 858 .loc 1 167 13 view .LVU260
- 859 009a 01A9 add r1, sp, #4
- 860 009c C820 movs r0, #200
- 166:user_src/soft_uart.c **** Update_ack_fmu(UPDATE_START, (uint8_t *)&temp_32t);
- 861 .loc 1 166 22 view .LVU261
- 862 009e 0196 str r6, [sp, #4]
- 167:user_src/soft_uart.c **** addr_offset = 0;
- 863 .loc 1 167 13 is_stmt 1 view .LVU262
- 864 00a0 FFF7FEFF bl Update_ack_fmu
- 865 .LVL51:
- 168:user_src/soft_uart.c **** cur_pack_num = 1;
- 866 .loc 1 168 13 view .LVU263
- 168:user_src/soft_uart.c **** cur_pack_num = 1;
- 867 .loc 1 168 25 is_stmt 0 view .LVU264
- 868 00a4 1E4A ldr r2, .L83+16
- 169:user_src/soft_uart.c **** }
- 869 .loc 1 169 26 view .LVU265
- 870 00a6 0123 movs r3, #1
- 168:user_src/soft_uart.c **** cur_pack_num = 1;
- 871 .loc 1 168 25 view .LVU266
- 872 00a8 1660 str r6, [r2]
- 169:user_src/soft_uart.c **** }
- 873 .loc 1 169 13 is_stmt 1 view .LVU267
- 169:user_src/soft_uart.c **** }
- 874 .loc 1 169 26 is_stmt 0 view .LVU268
- 875 00aa 2B60 str r3, [r5]
- 876 00ac CAE7 b .L61
- 877 .LVL52:
- 878 .L59:
- 189:user_src/soft_uart.c **** if(update_complete != true)
- 879 .loc 1 189 9 is_stmt 1 view .LVU269
- 190:user_src/soft_uart.c **** {
- 880 .loc 1 190 9 view .LVU270
- 190:user_src/soft_uart.c **** {
- 881 .loc 1 190 28 is_stmt 0 view .LVU271
- 882 00ae 1D4E ldr r6, .L83+20
- 190:user_src/soft_uart.c **** {
- 883 .loc 1 190 11 view .LVU272
- 884 00b0 3378 ldrb r3, [r6] @ zero_extendqisi2
- 885 00b2 002B cmp r3, #0
- 886 00b4 C6D1 bne .L61
- 192:user_src/soft_uart.c **** if(update_complete == true)
- 887 .loc 1 192 13 is_stmt 1 view .LVU273
- 192:user_src/soft_uart.c **** if(update_complete == true)
- 888 .loc 1 192 31 is_stmt 0 view .LVU274
- 889 00b6 FFF7FEFF bl wirte_update_flag
- 890 .LVL53:
- 192:user_src/soft_uart.c **** if(update_complete == true)
- 891 .loc 1 192 29 view .LVU275
- 892 00ba 3070 strb r0, [r6]
- 193:user_src/soft_uart.c **** Update_ack_fmu(UPDATE_END, (uint8_t *)&temp_32t);
- 893 .loc 1 193 13 is_stmt 1 view .LVU276
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 24
- 193:user_src/soft_uart.c **** Update_ack_fmu(UPDATE_END, (uint8_t *)&temp_32t);
- 894 .loc 1 193 15 is_stmt 0 view .LVU277
- 895 00bc 18BB cbnz r0, .L82
- 896 .L67:
- 195:user_src/soft_uart.c **** }
- 897 .loc 1 195 13 is_stmt 1 view .LVU278
- 898 00be 3220 movs r0, #50
- 899 00c0 FFF7FEFF bl HAL_Delay
- 900 .LVL54:
- 901 00c4 BEE7 b .L61
- 902 .LVL55:
- 903 .L81:
- 175:user_src/soft_uart.c **** if (temp_32t == WRITE_SUCCESS)
- 904 .loc 1 175 13 view .LVU279
- 175:user_src/soft_uart.c **** if (temp_32t == WRITE_SUCCESS)
- 905 .loc 1 175 24 is_stmt 0 view .LVU280
- 906 00c6 164F ldr r7, .L83+16
- 175:user_src/soft_uart.c **** if (temp_32t == WRITE_SUCCESS)
- 907 .loc 1 175 121 view .LVU281
- 908 00c8 6278 ldrb r2, [r4, #1] @ zero_extendqisi2
- 175:user_src/soft_uart.c **** if (temp_32t == WRITE_SUCCESS)
- 909 .loc 1 175 24 view .LVU282
- 910 00ca 3868 ldr r0, [r7]
- 911 .LVL56:
- 175:user_src/soft_uart.c **** if (temp_32t == WRITE_SUCCESS)
- 912 .loc 1 175 127 view .LVU283
- 913 00cc 023A subs r2, r2, #2
- 175:user_src/soft_uart.c **** if (temp_32t == WRITE_SUCCESS)
- 914 .loc 1 175 132 view .LVU284
- 915 00ce 02EBD272 add r2, r2, r2, lsr #31
- 175:user_src/soft_uart.c **** if (temp_32t == WRITE_SUCCESS)
- 916 .loc 1 175 24 view .LVU285
- 917 00d2 00F10060 add r0, r0, #134217728
- 918 00d6 C2F34F02 ubfx r2, r2, #1, #16
- 919 00da 00F5F040 add r0, r0, #30720
- 920 00de 04F10801 add r1, r4, #8
- 921 00e2 FFF7FEFF bl Flash_WriteData
- 922 .LVL57:
- 176:user_src/soft_uart.c **** {
- 923 .loc 1 176 16 view .LVU286
- 924 00e6 0328 cmp r0, #3
- 175:user_src/soft_uart.c **** if (temp_32t == WRITE_SUCCESS)
- 925 .loc 1 175 22 view .LVU287
- 926 00e8 0190 str r0, [sp, #4]
- 176:user_src/soft_uart.c **** {
- 927 .loc 1 176 13 is_stmt 1 view .LVU288
- 176:user_src/soft_uart.c **** {
- 928 .loc 1 176 16 is_stmt 0 view .LVU289
- 929 00ea ABD1 bne .L61
- 178:user_src/soft_uart.c **** addr_offset += update.data[LEN] - 2;
- 930 .loc 1 178 17 is_stmt 1 view .LVU290
- 178:user_src/soft_uart.c **** addr_offset += update.data[LEN] - 2;
- 931 .loc 1 178 29 is_stmt 0 view .LVU291
- 932 00ec 3368 ldr r3, [r6]
- 179:user_src/soft_uart.c **** Update_ack_fmu(UPDATE_ING, &update.data[PAYLOAD]);
- 933 .loc 1 179 29 view .LVU292
- 934 00ee 6278 ldrb r2, [r4, #1] @ zero_extendqisi2
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 25
- 178:user_src/soft_uart.c **** addr_offset += update.data[LEN] - 2;
- 935 .loc 1 178 29 view .LVU293
- 936 00f0 0133 adds r3, r3, #1
- 937 00f2 3360 str r3, [r6]
- 179:user_src/soft_uart.c **** Update_ack_fmu(UPDATE_ING, &update.data[PAYLOAD]);
- 938 .loc 1 179 17 is_stmt 1 view .LVU294
- 179:user_src/soft_uart.c **** Update_ack_fmu(UPDATE_ING, &update.data[PAYLOAD]);
- 939 .loc 1 179 29 is_stmt 0 view .LVU295
- 940 00f4 3B68 ldr r3, [r7]
- 941 00f6 023B subs r3, r3, #2
- 942 00f8 1344 add r3, r3, r2
- 180:user_src/soft_uart.c **** }
- 943 .loc 1 180 17 view .LVU296
- 944 00fa 2846 mov r0, r5
- 945 00fc A11D adds r1, r4, #6
- 179:user_src/soft_uart.c **** Update_ack_fmu(UPDATE_ING, &update.data[PAYLOAD]);
- 946 .loc 1 179 29 view .LVU297
- 947 00fe 3B60 str r3, [r7]
- 180:user_src/soft_uart.c **** }
- 948 .loc 1 180 17 is_stmt 1 view .LVU298
- 949 0100 FFF7FEFF bl Update_ack_fmu
- 950 .LVL58:
- 951 0104 9EE7 b .L61
- 952 .L82:
- 194:user_src/soft_uart.c **** HAL_Delay(50);
- 953 .loc 1 194 17 view .LVU299
- 954 0106 01A9 add r1, sp, #4
- 955 0108 2846 mov r0, r5
- 956 010a FFF7FEFF bl Update_ack_fmu
- 957 .LVL59:
- 958 010e D6E7 b .L67
- 959 .L84:
- 960 .align 2
- 961 .L83:
- 962 0110 00000000 .word .LANCHOR2
- 963 0114 00000000 .word huart2
- 964 0118 00000000 .word .LANCHOR4
- 965 011c FECF0100 .word 118782
- 966 0120 00000000 .word .LANCHOR7
- 967 0124 00000000 .word .LANCHOR8
- 968 .cfi_endproc
- 969 .LFE138:
- 971 .section .text.init_usart,"ax",%progbits
- 972 .align 1
- 973 .p2align 2,,3
- 974 .global init_usart
- 975 .syntax unified
- 976 .thumb
- 977 .thumb_func
- 979 init_usart:
- 980 .LFB139:
- 205:user_src/soft_uart.c ****
- 206:user_src/soft_uart.c **** void init_usart(void)
- 207:user_src/soft_uart.c **** {
- 981 .loc 1 207 1 view -0
- 982 .cfi_startproc
- 983 @ args = 0, pretend = 0, frame = 0
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 26
- 984 @ frame_needed = 0, uses_anonymous_args = 0
- 208:user_src/soft_uart.c **** __HAL_UART_ENABLE_IT(&huart2, UART_IT_IDLE); //uart2 空闲中断
- 985 .loc 1 208 5 view .LVU301
- 207:user_src/soft_uart.c **** __HAL_UART_ENABLE_IT(&huart2, UART_IT_IDLE); //uart2 空闲中断
- 986 .loc 1 207 1 is_stmt 0 view .LVU302
- 987 0000 10B5 push {r4, lr}
- 988 .LCFI18:
- 989 .cfi_def_cfa_offset 8
- 990 .cfi_offset 4, -8
- 991 .cfi_offset 14, -4
- 992 .loc 1 208 5 view .LVU303
- 993 0002 094C ldr r4, .L87
- 209:user_src/soft_uart.c **** HAL_UART_Receive_DMA(&huart2, (uint8_t *)FMU_uart_buf, MAX_UART_BUF);
- 994 .loc 1 209 2 view .LVU304
- 995 0004 0949 ldr r1, .L87+4
- 208:user_src/soft_uart.c **** __HAL_UART_ENABLE_IT(&huart2, UART_IT_IDLE); //uart2 空闲中断
- 996 .loc 1 208 5 view .LVU305
- 997 0006 2068 ldr r0, [r4]
- 998 0008 0368 ldr r3, [r0]
- 999 000a 43F01003 orr r3, r3, #16
- 1000 000e 0360 str r3, [r0]
- 1001 .loc 1 209 2 is_stmt 1 view .LVU306
- 1002 0010 4FF48072 mov r2, #256
- 1003 0014 2046 mov r0, r4
- 1004 0016 FFF7FEFF bl HAL_UART_Receive_DMA
- 1005 .LVL60:
- 210:user_src/soft_uart.c **** //开启错误处理机制
- 211:user_src/soft_uart.c **** __HAL_UART_ENABLE_IT(&huart2, UART_IT_ERR);
- 1006 .loc 1 211 2 view .LVU307
- 1007 001a 2268 ldr r2, [r4]
- 1008 001c 9368 ldr r3, [r2, #8]
- 1009 001e 43F00103 orr r3, r3, #1
- 1010 0022 9360 str r3, [r2, #8]
- 212:user_src/soft_uart.c **** }...
- 1011 .loc 1 212 1 is_stmt 0 view .LVU308
- 1012 0024 10BD pop {r4, pc}
- 1013 .L88:
- 1014 0026 00BF .align 2
- 1015 .L87:
- 1016 0028 00000000 .word huart2
- 1017 002c 00000000 .word .LANCHOR1
- 1018 .cfi_endproc
- 1019 .LFE139:
- 1021 .global update_complete
- 1022 .global addr_offset
- 1023 .global cur_pack_num
- 1024 .global msg_buf
- 1025 .global update
- 1026 .global FMU_uart_buf
- 1027 .global fmu_version_ack
- 1028 .section .bss.FMU_uart_buf,"aw",%nobits
- 1029 .align 2
- 1030 .set .LANCHOR1,. + 0
- 1033 FMU_uart_buf:
- 1034 0000 00000000 .space 256
- 1034 00000000
- 1034 00000000
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 27
- 1034 00000000
- 1034 00000000
- 1035 .section .bss.addr_offset,"aw",%nobits
- 1036 .align 2
- 1037 .set .LANCHOR7,. + 0
- 1040 addr_offset:
- 1041 0000 00000000 .space 4
- 1042 .section .bss.cur_pack_num,"aw",%nobits
- 1043 .align 2
- 1044 .set .LANCHOR4,. + 0
- 1047 cur_pack_num:
- 1048 0000 00000000 .space 4
- 1049 .section .bss.fmu_version_ack,"aw",%nobits
- 1050 .set .LANCHOR3,. + 0
- 1053 fmu_version_ack:
- 1054 0000 00 .space 1
- 1055 .section .bss.msg_buf,"aw",%nobits
- 1056 .align 2
- 1057 .set .LANCHOR6,. + 0
- 1060 msg_buf:
- 1061 0000 00000000 .space 128
- 1061 00000000
- 1061 00000000
- 1061 00000000
- 1061 00000000
- 1062 .section .bss.send_time.1,"aw",%nobits
- 1063 .align 2
- 1064 .set .LANCHOR0,. + 0
- 1067 send_time.1:
- 1068 0000 00000000 .space 4
- 1069 .section .bss.time2_hz.0,"aw",%nobits
- 1070 .align 2
- 1071 .set .LANCHOR5,. + 0
- 1074 time2_hz.0:
- 1075 0000 00000000 .space 4
- 1076 .section .bss.update,"aw",%nobits
- 1077 .align 2
- 1078 .set .LANCHOR2,. + 0
- 1081 update:
- 1082 0000 00000000 .space 257
- 1082 00000000
- 1082 00000000
- 1082 00000000
- 1082 00000000
- 1083 .section .bss.update_complete,"aw",%nobits
- 1084 .set .LANCHOR8,. + 0
- 1087 update_complete:
- 1088 0000 00 .space 1
- 1089 .text
- 1090 .Letext0:
- 1091 .file 2 "d:\\arm-gcc\\arm-none-eabi\\include\\machine\\_default_types.h"
- 1092 .file 3 "d:\\arm-gcc\\arm-none-eabi\\include\\sys\\_stdint.h"
- 1093 .file 4 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302xc.h"
- 1094 .file 5 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h"
- 1095 .file 6 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h"
- 1096 .file 7 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h"
- 1097 .file 8 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_uart.h"
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 28
- 1098 .file 9 "user_inc/soft_uart.h"
- 1099 .file 10 "user_inc/soft_flash.h"
- 1100 .file 11 "Core/Inc/usart.h"
- 1101 .file 12 "user_inc/soft_crc.h"
- 1102 .file 13 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_cortex.h"
- 1103 .file 14 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h"
- 1104 .file 15 "<built-in>"
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 29
- DEFINED SYMBOLS
- *ABS*:00000000 soft_uart.c
- C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:20 .text.uart2_send_msg:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:27 .text.uart2_send_msg:00000000 uart2_send_msg
- C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:85 .text.uart2_send_msg:00000028 $d
- C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:91 .text.USER_UART_IRQHandler:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:98 .text.USER_UART_IRQHandler:00000000 USER_UART_IRQHandler
- C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:228 .text.USER_UART_IRQHandler:00000084 $d
- C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:236 .text.send_pmu_version:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:243 .text.send_pmu_version:00000000 send_pmu_version
- C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:482 .text.send_pmu_version:000000e4 $d
- C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:494 .text.Update_ack_fmu:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:501 .text.Update_ack_fmu:00000000 Update_ack_fmu
- C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:624 .text.Update_ack_fmu:0000004c $d
- C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:633 .text.check_usart_is_ok:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:640 .text.check_usart_is_ok:00000000 check_usart_is_ok
- C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:674 .text.check_usart_is_ok:00000020 $d
- C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:679 .text.update_function:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:686 .text.update_function:00000000 update_function
- C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:962 .text.update_function:00000110 $d
- C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:972 .text.init_usart:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:979 .text.init_usart:00000000 init_usart
- C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:1016 .text.init_usart:00000028 $d
- C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:1087 .bss.update_complete:00000000 update_complete
- C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:1040 .bss.addr_offset:00000000 addr_offset
- C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:1047 .bss.cur_pack_num:00000000 cur_pack_num
- C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:1060 .bss.msg_buf:00000000 msg_buf
- C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:1081 .bss.update:00000000 update
- C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:1033 .bss.FMU_uart_buf:00000000 FMU_uart_buf
- C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:1053 .bss.fmu_version_ack:00000000 fmu_version_ack
- C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:1029 .bss.FMU_uart_buf:00000000 $d
- C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:1036 .bss.addr_offset:00000000 $d
- C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:1043 .bss.cur_pack_num:00000000 $d
- C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:1054 .bss.fmu_version_ack:00000000 $d
- C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:1056 .bss.msg_buf:00000000 $d
- C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:1063 .bss.send_time.1:00000000 $d
- C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:1067 .bss.send_time.1:00000000 send_time.1
- C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:1070 .bss.time2_hz.0:00000000 $d
- C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:1074 .bss.time2_hz.0:00000000 time2_hz.0
- C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:1077 .bss.update:00000000 $d
- C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:1088 .bss.update_complete:00000000 $d
- UNDEFINED SYMBOLS
- HAL_GetTick
- HAL_UART_Transmit_DMA
- huart2
- HAL_UART_AbortReceive
- memset
- HAL_UART_Receive_DMA
- memcpy
- Int2String
- Get_Crc16
- pmu_sn
- pmu_hardversion
- HAL_NVIC_SystemReset
- wirte_update_flag
- HAL_Delay
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 30
- Flash_WriteData
|