soft_uart.lst 74 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694
  1. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 1
  2. 1 .cpu cortex-m4
  3. 2 .arch armv7e-m
  4. 3 .fpu fpv4-sp-d16
  5. 4 .eabi_attribute 27, 1
  6. 5 .eabi_attribute 28, 1
  7. 6 .eabi_attribute 20, 1
  8. 7 .eabi_attribute 21, 1
  9. 8 .eabi_attribute 23, 3
  10. 9 .eabi_attribute 24, 1
  11. 10 .eabi_attribute 25, 1
  12. 11 .eabi_attribute 26, 1
  13. 12 .eabi_attribute 30, 2
  14. 13 .eabi_attribute 34, 1
  15. 14 .eabi_attribute 18, 4
  16. 15 .file "soft_uart.c"
  17. 16 .text
  18. 17 .Ltext0:
  19. 18 .cfi_sections .debug_frame
  20. 19 .section .text.uart2_send_msg,"ax",%progbits
  21. 20 .align 1
  22. 21 .p2align 2,,3
  23. 22 .global uart2_send_msg
  24. 23 .syntax unified
  25. 24 .thumb
  26. 25 .thumb_func
  27. 27 uart2_send_msg:
  28. 28 .LVL0:
  29. 29 .LFB133:
  30. 30 .file 1 "user_src/soft_uart.c"
  31. 1:user_src/soft_uart.c **** #include "soft_uart.h"
  32. 2:user_src/soft_uart.c **** #include "string.h"
  33. 3:user_src/soft_uart.c **** #include "soft_flash.h"
  34. 4:user_src/soft_uart.c **** #include "soft_crc.h"
  35. 5:user_src/soft_uart.c **** #include "usart.h"
  36. 6:user_src/soft_uart.c ****
  37. 7:user_src/soft_uart.c **** extern UART_HandleTypeDef huart2;
  38. 8:user_src/soft_uart.c **** bool fmu_version_ack = false;
  39. 9:user_src/soft_uart.c **** void uart2_send_msg(uint8_t *data, uint8_t size)
  40. 10:user_src/soft_uart.c **** {
  41. 31 .loc 1 10 1 view -0
  42. 32 .cfi_startproc
  43. 33 @ args = 0, pretend = 0, frame = 0
  44. 34 @ frame_needed = 0, uses_anonymous_args = 0
  45. 11:user_src/soft_uart.c **** static uint32_t send_time = 0;
  46. 35 .loc 1 11 5 view .LVU1
  47. 12:user_src/soft_uart.c ****
  48. 13:user_src/soft_uart.c **** send_time = HAL_GetTick();
  49. 36 .loc 1 13 5 view .LVU2
  50. 10:user_src/soft_uart.c **** static uint32_t send_time = 0;
  51. 37 .loc 1 10 1 is_stmt 0 view .LVU3
  52. 38 0000 70B5 push {r4, r5, r6, lr}
  53. 39 .LCFI0:
  54. 40 .cfi_def_cfa_offset 16
  55. 41 .cfi_offset 4, -16
  56. 42 .cfi_offset 5, -12
  57. 43 .cfi_offset 6, -8
  58. 44 .cfi_offset 14, -4
  59. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 2
  60. 10:user_src/soft_uart.c **** static uint32_t send_time = 0;
  61. 45 .loc 1 10 1 view .LVU4
  62. 46 0002 0546 mov r5, r0
  63. 47 0004 0E46 mov r6, r1
  64. 48 .loc 1 13 17 view .LVU5
  65. 49 0006 FFF7FEFF bl HAL_GetTick
  66. 50 .LVL1:
  67. 51 .loc 1 13 15 view .LVU6
  68. 52 000a 074C ldr r4, .L6
  69. 53 000c 2060 str r0, [r4]
  70. 14:user_src/soft_uart.c **** while (HAL_GetTick() - send_time < 1)
  71. 54 .loc 1 14 5 is_stmt 1 view .LVU7
  72. 55 .L2:
  73. 15:user_src/soft_uart.c **** ;
  74. 56 .loc 1 15 9 discriminator 1 view .LVU8
  75. 14:user_src/soft_uart.c **** while (HAL_GetTick() - send_time < 1)
  76. 57 .loc 1 14 11 discriminator 1 view .LVU9
  77. 14:user_src/soft_uart.c **** while (HAL_GetTick() - send_time < 1)
  78. 58 .loc 1 14 12 is_stmt 0 discriminator 1 view .LVU10
  79. 59 000e FFF7FEFF bl HAL_GetTick
  80. 60 .LVL2:
  81. 14:user_src/soft_uart.c **** while (HAL_GetTick() - send_time < 1)
  82. 61 .loc 1 14 11 discriminator 1 view .LVU11
  83. 62 0012 2368 ldr r3, [r4]
  84. 63 0014 9842 cmp r0, r3
  85. 64 0016 FAD0 beq .L2
  86. 16:user_src/soft_uart.c **** HAL_UART_Transmit_DMA(&huart2, data, size);
  87. 65 .loc 1 16 5 is_stmt 1 view .LVU12
  88. 66 0018 3246 mov r2, r6
  89. 67 001a 2946 mov r1, r5
  90. 68 001c 0348 ldr r0, .L6+4
  91. 17:user_src/soft_uart.c **** }
  92. 69 .loc 1 17 1 is_stmt 0 view .LVU13
  93. 70 001e BDE87040 pop {r4, r5, r6, lr}
  94. 71 .LCFI1:
  95. 72 .cfi_restore 14
  96. 73 .cfi_restore 6
  97. 74 .cfi_restore 5
  98. 75 .cfi_restore 4
  99. 76 .cfi_def_cfa_offset 0
  100. 77 .LVL3:
  101. 16:user_src/soft_uart.c **** HAL_UART_Transmit_DMA(&huart2, data, size);
  102. 78 .loc 1 16 5 view .LVU14
  103. 79 0022 FFF7FEBF b HAL_UART_Transmit_DMA
  104. 80 .LVL4:
  105. 81 .L7:
  106. 16:user_src/soft_uart.c **** HAL_UART_Transmit_DMA(&huart2, data, size);
  107. 82 .loc 1 16 5 view .LVU15
  108. 83 0026 00BF .align 2
  109. 84 .L6:
  110. 85 0028 00000000 .word .LANCHOR0
  111. 86 002c 00000000 .word huart2
  112. 87 .cfi_endproc
  113. 88 .LFE133:
  114. 90 .section .text.USER_UART_IRQHandler,"ax",%progbits
  115. 91 .align 1
  116. 92 .p2align 2,,3
  117. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 3
  118. 93 .global USER_UART_IRQHandler
  119. 94 .syntax unified
  120. 95 .thumb
  121. 96 .thumb_func
  122. 98 USER_UART_IRQHandler:
  123. 99 .LVL5:
  124. 100 .LFB134:
  125. 18:user_src/soft_uart.c ****
  126. 19:user_src/soft_uart.c **** uint8_t FMU_uart_buf[MAX_UART_BUF] = {0};
  127. 20:user_src/soft_uart.c **** Update update;
  128. 21:user_src/soft_uart.c **** void USER_UART_IRQHandler(UART_HandleTypeDef *huart)
  129. 22:user_src/soft_uart.c **** {
  130. 101 .loc 1 22 1 is_stmt 1 view -0
  131. 102 .cfi_startproc
  132. 103 @ args = 0, pretend = 0, frame = 0
  133. 104 @ frame_needed = 0, uses_anonymous_args = 0
  134. 23:user_src/soft_uart.c **** uint32_t recv_count = 0;
  135. 105 .loc 1 23 5 view .LVU17
  136. 24:user_src/soft_uart.c **** if (huart == &huart2)
  137. 106 .loc 1 24 5 view .LVU18
  138. 107 .loc 1 24 8 is_stmt 0 view .LVU19
  139. 108 0000 204B ldr r3, .L23
  140. 109 0002 9842 cmp r0, r3
  141. 110 0004 00D0 beq .L19
  142. 111 0006 7047 bx lr
  143. 112 .L19:
  144. 25:user_src/soft_uart.c **** {
  145. 26:user_src/soft_uart.c **** if (RESET != __HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE))
  146. 113 .loc 1 26 9 is_stmt 1 view .LVU20
  147. 114 .loc 1 26 22 is_stmt 0 view .LVU21
  148. 115 0008 0368 ldr r3, [r0]
  149. 116 000a DA69 ldr r2, [r3, #28]
  150. 117 .loc 1 26 12 view .LVU22
  151. 118 000c D206 lsls r2, r2, #27
  152. 22:user_src/soft_uart.c **** uint32_t recv_count = 0;
  153. 119 .loc 1 22 1 view .LVU23
  154. 120 000e 10B5 push {r4, lr}
  155. 121 .LCFI2:
  156. 122 .cfi_def_cfa_offset 8
  157. 123 .cfi_offset 4, -8
  158. 124 .cfi_offset 14, -4
  159. 125 0010 0446 mov r4, r0
  160. 126 .loc 1 26 12 view .LVU24
  161. 127 0012 00D4 bmi .L20
  162. 27:user_src/soft_uart.c **** {
  163. 28:user_src/soft_uart.c **** __HAL_UART_CLEAR_IDLEFLAG(huart);
  164. 29:user_src/soft_uart.c **** HAL_UART_AbortReceive(huart);
  165. 30:user_src/soft_uart.c **** recv_count = MAX_UART_BUF - __HAL_DMA_GET_COUNTER(huart->hdmarx);
  166. 31:user_src/soft_uart.c ****
  167. 32:user_src/soft_uart.c **** // 检测是否是新的一包数据
  168. 33:user_src/soft_uart.c **** if (FMU_uart_buf[0] == 0xFE && FMU_uart_buf[4] == 204 && update.usebuf_flag == false)
  169. 34:user_src/soft_uart.c **** {
  170. 35:user_src/soft_uart.c **** memcpy(update.data, FMU_uart_buf, recv_count);
  171. 36:user_src/soft_uart.c **** update.usebuf_flag = true;
  172. 37:user_src/soft_uart.c **** }
  173. 38:user_src/soft_uart.c **** else if(FMU_uart_buf[5] == 21 && FMU_uart_buf[6] == 26 && FMU_uart_buf[7] == 3)
  174. 39:user_src/soft_uart.c **** {
  175. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 4
  176. 40:user_src/soft_uart.c **** fmu_version_ack = true;
  177. 41:user_src/soft_uart.c **** }
  178. 42:user_src/soft_uart.c ****
  179. 43:user_src/soft_uart.c **** memset(FMU_uart_buf, 0, MAX_UART_BUF);
  180. 44:user_src/soft_uart.c **** HAL_UART_Receive_DMA(huart, FMU_uart_buf, MAX_UART_BUF);
  181. 45:user_src/soft_uart.c **** }
  182. 46:user_src/soft_uart.c **** }
  183. 47:user_src/soft_uart.c **** }
  184. 128 .loc 1 47 1 view .LVU25
  185. 129 0014 10BD pop {r4, pc}
  186. 130 .L20:
  187. 28:user_src/soft_uart.c **** HAL_UART_AbortReceive(huart);
  188. 131 .loc 1 28 13 is_stmt 1 view .LVU26
  189. 132 0016 1022 movs r2, #16
  190. 133 0018 1A62 str r2, [r3, #32]
  191. 29:user_src/soft_uart.c **** recv_count = MAX_UART_BUF - __HAL_DMA_GET_COUNTER(huart->hdmarx);
  192. 134 .loc 1 29 13 view .LVU27
  193. 135 001a FFF7FEFF bl HAL_UART_AbortReceive
  194. 136 .LVL6:
  195. 30:user_src/soft_uart.c ****
  196. 137 .loc 1 30 13 view .LVU28
  197. 30:user_src/soft_uart.c ****
  198. 138 .loc 1 30 41 is_stmt 0 view .LVU29
  199. 139 001e 636F ldr r3, [r4, #116]
  200. 33:user_src/soft_uart.c **** {
  201. 140 .loc 1 33 29 view .LVU30
  202. 141 0020 1949 ldr r1, .L23+4
  203. 30:user_src/soft_uart.c ****
  204. 142 .loc 1 30 41 view .LVU31
  205. 143 0022 1A68 ldr r2, [r3]
  206. 33:user_src/soft_uart.c **** {
  207. 144 .loc 1 33 16 view .LVU32
  208. 145 0024 0B78 ldrb r3, [r1] @ zero_extendqisi2
  209. 30:user_src/soft_uart.c ****
  210. 146 .loc 1 30 41 view .LVU33
  211. 147 0026 5268 ldr r2, [r2, #4]
  212. 148 .LVL7:
  213. 33:user_src/soft_uart.c **** {
  214. 149 .loc 1 33 13 is_stmt 1 view .LVU34
  215. 33:user_src/soft_uart.c **** {
  216. 150 .loc 1 33 16 is_stmt 0 view .LVU35
  217. 151 0028 FE2B cmp r3, #254
  218. 152 002a 10D0 beq .L21
  219. 153 .L10:
  220. 38:user_src/soft_uart.c **** {
  221. 154 .loc 1 38 18 is_stmt 1 view .LVU36
  222. 38:user_src/soft_uart.c **** {
  223. 155 .loc 1 38 20 is_stmt 0 view .LVU37
  224. 156 002c 4B79 ldrb r3, [r1, #5] @ zero_extendqisi2
  225. 157 002e 152B cmp r3, #21
  226. 158 0030 1ED0 beq .L22
  227. 159 .LVL8:
  228. 160 .L11:
  229. 43:user_src/soft_uart.c **** HAL_UART_Receive_DMA(huart, FMU_uart_buf, MAX_UART_BUF);
  230. 161 .loc 1 43 13 is_stmt 1 view .LVU38
  231. 162 0032 4FF48072 mov r2, #256
  232. 163 0036 0021 movs r1, #0
  233. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 5
  234. 164 0038 1348 ldr r0, .L23+4
  235. 165 003a FFF7FEFF bl memset
  236. 166 .LVL9:
  237. 44:user_src/soft_uart.c **** }
  238. 167 .loc 1 44 13 view .LVU39
  239. 168 .loc 1 47 1 is_stmt 0 view .LVU40
  240. 169 003e BDE81040 pop {r4, lr}
  241. 170 .LCFI3:
  242. 171 .cfi_remember_state
  243. 172 .cfi_restore 14
  244. 173 .cfi_restore 4
  245. 174 .cfi_def_cfa_offset 0
  246. 175 .LVL10:
  247. 44:user_src/soft_uart.c **** }
  248. 176 .loc 1 44 13 view .LVU41
  249. 177 0042 1149 ldr r1, .L23+4
  250. 178 0044 0F48 ldr r0, .L23
  251. 179 0046 4FF48072 mov r2, #256
  252. 180 004a FFF7FEBF b HAL_UART_Receive_DMA
  253. 181 .LVL11:
  254. 182 .L21:
  255. 183 .LCFI4:
  256. 184 .cfi_restore_state
  257. 33:user_src/soft_uart.c **** {
  258. 185 .loc 1 33 41 discriminator 1 view .LVU42
  259. 186 004e 0B79 ldrb r3, [r1, #4] @ zero_extendqisi2
  260. 187 0050 CC2B cmp r3, #204
  261. 188 0052 EBD1 bne .L10
  262. 33:user_src/soft_uart.c **** {
  263. 189 .loc 1 33 76 discriminator 2 view .LVU43
  264. 190 0054 0D4B ldr r3, .L23+8
  265. 33:user_src/soft_uart.c **** {
  266. 191 .loc 1 33 67 discriminator 2 view .LVU44
  267. 192 0056 93F80001 ldrb r0, [r3, #256] @ zero_extendqisi2
  268. 193 005a 0028 cmp r0, #0
  269. 194 005c E6D1 bne .L10
  270. 35:user_src/soft_uart.c **** update.usebuf_flag = true;
  271. 195 .loc 1 35 17 is_stmt 1 view .LVU45
  272. 196 005e C2F58072 rsb r2, r2, #256
  273. 197 .LVL12:
  274. 35:user_src/soft_uart.c **** update.usebuf_flag = true;
  275. 198 .loc 1 35 17 is_stmt 0 view .LVU46
  276. 199 0062 1846 mov r0, r3
  277. 200 0064 FFF7FEFF bl memcpy
  278. 201 .LVL13:
  279. 36:user_src/soft_uart.c **** }
  280. 202 .loc 1 36 17 is_stmt 1 view .LVU47
  281. 36:user_src/soft_uart.c **** }
  282. 203 .loc 1 36 36 is_stmt 0 view .LVU48
  283. 204 0068 0122 movs r2, #1
  284. 205 006a 80F80021 strb r2, [r0, #256]
  285. 206 006e E0E7 b .L11
  286. 207 .LVL14:
  287. 208 .L22:
  288. 38:user_src/soft_uart.c **** {
  289. 209 .loc 1 38 43 discriminator 1 view .LVU49
  290. 210 0070 8B79 ldrb r3, [r1, #6] @ zero_extendqisi2
  291. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 6
  292. 211 0072 1A2B cmp r3, #26
  293. 212 0074 DDD1 bne .L11
  294. 38:user_src/soft_uart.c **** {
  295. 213 .loc 1 38 68 discriminator 2 view .LVU50
  296. 214 0076 CB79 ldrb r3, [r1, #7] @ zero_extendqisi2
  297. 215 0078 032B cmp r3, #3
  298. 216 007a DAD1 bne .L11
  299. 40:user_src/soft_uart.c **** }
  300. 217 .loc 1 40 17 is_stmt 1 view .LVU51
  301. 40:user_src/soft_uart.c **** }
  302. 218 .loc 1 40 33 is_stmt 0 view .LVU52
  303. 219 007c 044B ldr r3, .L23+12
  304. 220 007e 0122 movs r2, #1
  305. 221 .LVL15:
  306. 40:user_src/soft_uart.c **** }
  307. 222 .loc 1 40 33 view .LVU53
  308. 223 0080 1A70 strb r2, [r3]
  309. 224 0082 D6E7 b .L11
  310. 225 .L24:
  311. 226 .align 2
  312. 227 .L23:
  313. 228 0084 00000000 .word huart2
  314. 229 0088 00000000 .word .LANCHOR1
  315. 230 008c 00000000 .word .LANCHOR2
  316. 231 0090 00000000 .word .LANCHOR3
  317. 232 .cfi_endproc
  318. 233 .LFE134:
  319. 235 .section .text.send_pmu_version,"ax",%progbits
  320. 236 .align 1
  321. 237 .p2align 2,,3
  322. 238 .global send_pmu_version
  323. 239 .syntax unified
  324. 240 .thumb
  325. 241 .thumb_func
  326. 243 send_pmu_version:
  327. 244 .LFB135:
  328. 48:user_src/soft_uart.c ****
  329. 49:user_src/soft_uart.c **** uint8_t msg_buf[128] = {0};
  330. 50:user_src/soft_uart.c ****
  331. 51:user_src/soft_uart.c **** uint32_t cur_pack_num = 0;
  332. 52:user_src/soft_uart.c **** void send_pmu_version(void)
  333. 53:user_src/soft_uart.c **** {
  334. 245 .loc 1 53 1 is_stmt 1 view -0
  335. 246 .cfi_startproc
  336. 247 @ args = 0, pretend = 0, frame = 24
  337. 248 @ frame_needed = 0, uses_anonymous_args = 0
  338. 54:user_src/soft_uart.c **** static int time2_hz = 0;
  339. 249 .loc 1 54 5 view .LVU55
  340. 55:user_src/soft_uart.c ****
  341. 56:user_src/soft_uart.c **** if (check_usart_is_ok() != true)
  342. 250 .loc 1 56 5 view .LVU56
  343. 251 .LBB6:
  344. 252 .LBI6:
  345. 57:user_src/soft_uart.c **** return;
  346. 58:user_src/soft_uart.c **** if(fmu_version_ack == true)
  347. 59:user_src/soft_uart.c **** return;
  348. 60:user_src/soft_uart.c **** if(cur_pack_num > 1)
  349. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 7
  350. 61:user_src/soft_uart.c **** return;
  351. 62:user_src/soft_uart.c **** if(HAL_GetTick() - time2_hz > 500 && HAL_GetTick() > 2000)
  352. 63:user_src/soft_uart.c **** time2_hz = HAL_GetTick();
  353. 64:user_src/soft_uart.c **** else
  354. 65:user_src/soft_uart.c **** return;
  355. 66:user_src/soft_uart.c ****
  356. 67:user_src/soft_uart.c **** uint8_t index = 0;
  357. 68:user_src/soft_uart.c **** uint16_t s16 = 0;
  358. 69:user_src/soft_uart.c **** char sn_buf[12] = {0};
  359. 70:user_src/soft_uart.c **** char hardverison_buf[12] = {0};
  360. 71:user_src/soft_uart.c ****
  361. 72:user_src/soft_uart.c **** memset(msg_buf,0,128);
  362. 73:user_src/soft_uart.c ****
  363. 74:user_src/soft_uart.c **** msg_buf[index++] = 0xFE;
  364. 75:user_src/soft_uart.c **** msg_buf[index++] = 0;
  365. 76:user_src/soft_uart.c **** msg_buf[index++] = 0;
  366. 77:user_src/soft_uart.c **** msg_buf[index++] = 0x00;
  367. 78:user_src/soft_uart.c **** msg_buf[index++] = 0x00;
  368. 79:user_src/soft_uart.c **** msg_buf[index++] = 26;
  369. 80:user_src/soft_uart.c ****
  370. 81:user_src/soft_uart.c **** s16 = 3;
  371. 82:user_src/soft_uart.c **** memcpy(&msg_buf[index],&s16,2); //PMU设备号
  372. 83:user_src/soft_uart.c **** index += 2;
  373. 84:user_src/soft_uart.c ****
  374. 85:user_src/soft_uart.c **** msg_buf[index++] = 1;
  375. 86:user_src/soft_uart.c ****
  376. 87:user_src/soft_uart.c **** Int2String(pmu_sn,&sn_buf[0],12);
  377. 88:user_src/soft_uart.c **** Int2String(pmu_hardversion,&hardverison_buf[0],12);
  378. 89:user_src/soft_uart.c ****
  379. 90:user_src/soft_uart.c **** memcpy(&msg_buf[index],&sn_buf[0],10);//sn
  380. 91:user_src/soft_uart.c **** index += 32;
  381. 92:user_src/soft_uart.c **** index += 16;
  382. 93:user_src/soft_uart.c **** memcpy(&msg_buf[index],&hardverison_buf[0],10);//sn
  383. 94:user_src/soft_uart.c **** index += 16;//硬件
  384. 95:user_src/soft_uart.c **** index += 16;//厂商
  385. 96:user_src/soft_uart.c ****
  386. 97:user_src/soft_uart.c **** msg_buf[1] = index - 6;
  387. 98:user_src/soft_uart.c **** uint16_t uart_crc = Get_Crc16(msg_buf, index);
  388. 99:user_src/soft_uart.c **** memcpy(&msg_buf[index], &uart_crc, 2);
  389. 100:user_src/soft_uart.c **** index += 2;
  390. 101:user_src/soft_uart.c ****
  391. 102:user_src/soft_uart.c **** uart2_send_msg(msg_buf, index);
  392. 103:user_src/soft_uart.c ****
  393. 104:user_src/soft_uart.c **** }
  394. 105:user_src/soft_uart.c ****
  395. 106:user_src/soft_uart.c ****
  396. 107:user_src/soft_uart.c ****
  397. 108:user_src/soft_uart.c **** void Update_ack_fmu(uint8_t msg_id, uint8_t *ackbuf)
  398. 109:user_src/soft_uart.c **** {
  399. 110:user_src/soft_uart.c ****
  400. 111:user_src/soft_uart.c **** int index = 0;
  401. 112:user_src/soft_uart.c **** msg_buf[index++] = 0xFE;
  402. 113:user_src/soft_uart.c **** msg_buf[index++] = 0;
  403. 114:user_src/soft_uart.c **** msg_buf[index++] = 0;
  404. 115:user_src/soft_uart.c **** msg_buf[index++] = 0x00;
  405. 116:user_src/soft_uart.c **** msg_buf[index++] = 204;
  406. 117:user_src/soft_uart.c **** msg_buf[index++] = 21;
  407. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 8
  408. 118:user_src/soft_uart.c ****
  409. 119:user_src/soft_uart.c **** msg_buf[index++] = msg_id;
  410. 120:user_src/soft_uart.c **** msg_buf[index++] = *ackbuf;
  411. 121:user_src/soft_uart.c **** msg_buf[index++] = *(ackbuf + 1);
  412. 122:user_src/soft_uart.c **** msg_buf[index++] = 1;
  413. 123:user_src/soft_uart.c ****
  414. 124:user_src/soft_uart.c **** msg_buf[1] = index - 6;
  415. 125:user_src/soft_uart.c **** uint16_t uart_crc = Get_Crc16(msg_buf, index);
  416. 126:user_src/soft_uart.c **** memcpy(&msg_buf[index], &uart_crc, 2);
  417. 127:user_src/soft_uart.c **** index += 2;
  418. 128:user_src/soft_uart.c ****
  419. 129:user_src/soft_uart.c **** uart2_send_msg(msg_buf, index);
  420. 130:user_src/soft_uart.c **** }
  421. 131:user_src/soft_uart.c ****
  422. 132:user_src/soft_uart.c **** bool check_usart_is_ok(void)
  423. 253 .loc 1 132 6 view .LVU57
  424. 254 .LBB7:
  425. 133:user_src/soft_uart.c **** {
  426. 134:user_src/soft_uart.c **** if (huart2.gState == HAL_UART_STATE_READY && (__HAL_UART_GET_FLAG(&huart2, UART_FLAG_TC) != RES
  427. 255 .loc 1 134 5 view .LVU58
  428. 256 .loc 1 134 15 is_stmt 0 view .LVU59
  429. 257 0000 384B ldr r3, .L42
  430. 258 0002 DA6F ldr r2, [r3, #124]
  431. 259 .loc 1 134 8 view .LVU60
  432. 260 0004 202A cmp r2, #32
  433. 261 0006 00D0 beq .L40
  434. 262 .L37:
  435. 263 0008 7047 bx lr
  436. 264 .L40:
  437. 265 .loc 1 134 51 view .LVU61
  438. 266 000a 1B68 ldr r3, [r3]
  439. 267 000c DA69 ldr r2, [r3, #28]
  440. 268 .loc 1 134 47 view .LVU62
  441. 269 000e 5206 lsls r2, r2, #25
  442. 270 0010 FAD5 bpl .L37
  443. 271 .loc 1 134 106 view .LVU63
  444. 272 0012 DB69 ldr r3, [r3, #28]
  445. 273 .loc 1 134 103 view .LVU64
  446. 274 0014 1B06 lsls r3, r3, #24
  447. 275 0016 F7D5 bpl .L37
  448. 276 .LBE7:
  449. 277 .LBE6:
  450. 58:user_src/soft_uart.c **** return;
  451. 278 .loc 1 58 5 is_stmt 1 view .LVU65
  452. 53:user_src/soft_uart.c **** static int time2_hz = 0;
  453. 279 .loc 1 53 1 is_stmt 0 view .LVU66
  454. 280 0018 70B5 push {r4, r5, r6, lr}
  455. 281 .LCFI5:
  456. 282 .cfi_def_cfa_offset 16
  457. 283 .cfi_offset 4, -16
  458. 284 .cfi_offset 5, -12
  459. 285 .cfi_offset 6, -8
  460. 286 .cfi_offset 14, -4
  461. 58:user_src/soft_uart.c **** return;
  462. 287 .loc 1 58 24 view .LVU67
  463. 288 001a 334B ldr r3, .L42+4
  464. 58:user_src/soft_uart.c **** return;
  465. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 9
  466. 289 .loc 1 58 7 view .LVU68
  467. 290 001c 1C78 ldrb r4, [r3] @ zero_extendqisi2
  468. 53:user_src/soft_uart.c **** static int time2_hz = 0;
  469. 291 .loc 1 53 1 view .LVU69
  470. 292 001e 86B0 sub sp, sp, #24
  471. 293 .LCFI6:
  472. 294 .cfi_def_cfa_offset 40
  473. 58:user_src/soft_uart.c **** return;
  474. 295 .loc 1 58 7 view .LVU70
  475. 296 0020 1CB9 cbnz r4, .L25
  476. 60:user_src/soft_uart.c **** return;
  477. 297 .loc 1 60 5 is_stmt 1 view .LVU71
  478. 60:user_src/soft_uart.c **** return;
  479. 298 .loc 1 60 21 is_stmt 0 view .LVU72
  480. 299 0022 324B ldr r3, .L42+8
  481. 60:user_src/soft_uart.c **** return;
  482. 300 .loc 1 60 7 view .LVU73
  483. 301 0024 1B68 ldr r3, [r3]
  484. 302 0026 012B cmp r3, #1
  485. 303 0028 01D9 bls .L41
  486. 304 .L25:
  487. 104:user_src/soft_uart.c ****
  488. 305 .loc 1 104 1 view .LVU74
  489. 306 002a 06B0 add sp, sp, #24
  490. 307 .LCFI7:
  491. 308 .cfi_remember_state
  492. 309 .cfi_def_cfa_offset 16
  493. 310 @ sp needed
  494. 311 002c 70BD pop {r4, r5, r6, pc}
  495. 312 .L41:
  496. 313 .LCFI8:
  497. 314 .cfi_restore_state
  498. 62:user_src/soft_uart.c **** time2_hz = HAL_GetTick();
  499. 315 .loc 1 62 5 is_stmt 1 view .LVU75
  500. 62:user_src/soft_uart.c **** time2_hz = HAL_GetTick();
  501. 316 .loc 1 62 22 is_stmt 0 view .LVU76
  502. 317 002e 304E ldr r6, .L42+12
  503. 62:user_src/soft_uart.c **** time2_hz = HAL_GetTick();
  504. 318 .loc 1 62 8 view .LVU77
  505. 319 0030 FFF7FEFF bl HAL_GetTick
  506. 320 .LVL16:
  507. 62:user_src/soft_uart.c **** time2_hz = HAL_GetTick();
  508. 321 .loc 1 62 22 view .LVU78
  509. 322 0034 3368 ldr r3, [r6]
  510. 323 0036 C01A subs r0, r0, r3
  511. 62:user_src/soft_uart.c **** time2_hz = HAL_GetTick();
  512. 324 .loc 1 62 7 view .LVU79
  513. 325 0038 B0F5FA7F cmp r0, #500
  514. 326 003c F5D9 bls .L25
  515. 62:user_src/soft_uart.c **** time2_hz = HAL_GetTick();
  516. 327 .loc 1 62 42 discriminator 1 view .LVU80
  517. 328 003e FFF7FEFF bl HAL_GetTick
  518. 329 .LVL17:
  519. 62:user_src/soft_uart.c **** time2_hz = HAL_GetTick();
  520. 330 .loc 1 62 39 discriminator 1 view .LVU81
  521. 331 0042 B0F5FA6F cmp r0, #2000
  522. 332 0046 F0D9 bls .L25
  523. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 10
  524. 63:user_src/soft_uart.c **** else
  525. 333 .loc 1 63 9 is_stmt 1 view .LVU82
  526. 63:user_src/soft_uart.c **** else
  527. 334 .loc 1 63 20 is_stmt 0 view .LVU83
  528. 335 0048 FFF7FEFF bl HAL_GetTick
  529. 336 .LVL18:
  530. 72:user_src/soft_uart.c ****
  531. 337 .loc 1 72 5 view .LVU84
  532. 338 004c 294D ldr r5, .L42+16
  533. 63:user_src/soft_uart.c **** else
  534. 339 .loc 1 63 18 view .LVU85
  535. 340 004e 3060 str r0, [r6]
  536. 67:user_src/soft_uart.c **** uint16_t s16 = 0;
  537. 341 .loc 1 67 5 is_stmt 1 view .LVU86
  538. 342 .LVL19:
  539. 68:user_src/soft_uart.c **** char sn_buf[12] = {0};
  540. 343 .loc 1 68 5 view .LVU87
  541. 69:user_src/soft_uart.c **** char hardverison_buf[12] = {0};
  542. 344 .loc 1 69 5 view .LVU88
  543. 72:user_src/soft_uart.c ****
  544. 345 .loc 1 72 5 is_stmt 0 view .LVU89
  545. 346 0050 2146 mov r1, r4
  546. 347 0052 8022 movs r2, #128
  547. 348 0054 2846 mov r0, r5
  548. 69:user_src/soft_uart.c **** char hardverison_buf[12] = {0};
  549. 349 .loc 1 69 10 view .LVU90
  550. 350 0056 CDE90044 strd r4, r4, [sp]
  551. 70:user_src/soft_uart.c ****
  552. 351 .loc 1 70 10 view .LVU91
  553. 352 005a CDE90244 strd r4, r4, [sp, #8]
  554. 353 005e CDE90444 strd r4, r4, [sp, #16]
  555. 72:user_src/soft_uart.c ****
  556. 354 .loc 1 72 5 is_stmt 1 view .LVU92
  557. 355 0062 FFF7FEFF bl memset
  558. 356 .LVL20:
  559. 74:user_src/soft_uart.c **** msg_buf[index++] = 0;
  560. 357 .loc 1 74 5 view .LVU93
  561. 87:user_src/soft_uart.c **** Int2String(pmu_hardversion,&hardverison_buf[0],12);
  562. 358 .loc 1 87 5 is_stmt 0 view .LVU94
  563. 359 0066 244B ldr r3, .L42+20
  564. 360 .LBB8:
  565. 361 .LBB9:
  566. 13:user_src/soft_uart.c **** while (HAL_GetTick() - send_time < 1)
  567. 362 .loc 1 13 15 view .LVU95
  568. 363 0068 244C ldr r4, .L42+24
  569. 364 .LBE9:
  570. 365 .LBE8:
  571. 87:user_src/soft_uart.c **** Int2String(pmu_hardversion,&hardverison_buf[0],12);
  572. 366 .loc 1 87 5 view .LVU96
  573. 367 006a 1868 ldr r0, [r3]
  574. 74:user_src/soft_uart.c **** msg_buf[index++] = 0;
  575. 368 .loc 1 74 22 view .LVU97
  576. 369 006c FE23 movs r3, #254
  577. 370 006e 2B70 strb r3, [r5]
  578. 75:user_src/soft_uart.c **** msg_buf[index++] = 0;
  579. 371 .loc 1 75 5 is_stmt 1 view .LVU98
  580. 372 .LVL21:
  581. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 11
  582. 76:user_src/soft_uart.c **** msg_buf[index++] = 0x00;
  583. 373 .loc 1 76 5 view .LVU99
  584. 77:user_src/soft_uart.c **** msg_buf[index++] = 0x00;
  585. 374 .loc 1 77 5 view .LVU100
  586. 78:user_src/soft_uart.c **** msg_buf[index++] = 26;
  587. 375 .loc 1 78 5 view .LVU101
  588. 79:user_src/soft_uart.c ****
  589. 376 .loc 1 79 5 view .LVU102
  590. 79:user_src/soft_uart.c ****
  591. 377 .loc 1 79 22 is_stmt 0 view .LVU103
  592. 378 0070 1A23 movs r3, #26
  593. 379 0072 6B71 strb r3, [r5, #5]
  594. 81:user_src/soft_uart.c **** memcpy(&msg_buf[index],&s16,2); //PMU设备号
  595. 380 .loc 1 81 5 is_stmt 1 view .LVU104
  596. 381 .LVL22:
  597. 82:user_src/soft_uart.c **** index += 2;
  598. 382 .loc 1 82 5 view .LVU105
  599. 383 0074 0323 movs r3, #3
  600. 87:user_src/soft_uart.c **** Int2String(pmu_hardversion,&hardverison_buf[0],12);
  601. 384 .loc 1 87 5 is_stmt 0 view .LVU106
  602. 385 0076 0C22 movs r2, #12
  603. 386 0078 6946 mov r1, sp
  604. 82:user_src/soft_uart.c **** index += 2;
  605. 387 .loc 1 82 5 view .LVU107
  606. 388 007a EB80 strh r3, [r5, #6] @ movhi
  607. 83:user_src/soft_uart.c ****
  608. 389 .loc 1 83 5 is_stmt 1 view .LVU108
  609. 390 .LVL23:
  610. 85:user_src/soft_uart.c ****
  611. 391 .loc 1 85 5 view .LVU109
  612. 85:user_src/soft_uart.c ****
  613. 392 .loc 1 85 22 is_stmt 0 view .LVU110
  614. 393 007c 0123 movs r3, #1
  615. 394 007e 2B72 strb r3, [r5, #8]
  616. 87:user_src/soft_uart.c **** Int2String(pmu_hardversion,&hardverison_buf[0],12);
  617. 395 .loc 1 87 5 is_stmt 1 view .LVU111
  618. 396 0080 FFF7FEFF bl Int2String
  619. 397 .LVL24:
  620. 88:user_src/soft_uart.c ****
  621. 398 .loc 1 88 5 view .LVU112
  622. 399 0084 1E4B ldr r3, .L42+28
  623. 400 0086 0C22 movs r2, #12
  624. 401 0088 0DEB0201 add r1, sp, r2
  625. 402 008c 1868 ldr r0, [r3]
  626. 403 008e FFF7FEFF bl Int2String
  627. 404 .LVL25:
  628. 90:user_src/soft_uart.c **** index += 32;
  629. 405 .loc 1 90 5 view .LVU113
  630. 406 0092 6A46 mov r2, sp
  631. 407 0094 03CA ldmia r2!, {r0, r1}
  632. 93:user_src/soft_uart.c **** index += 16;//硬件
  633. 408 .loc 1 93 5 is_stmt 0 view .LVU114
  634. 409 0096 03AB add r3, sp, #12
  635. 90:user_src/soft_uart.c **** index += 32;
  636. 410 .loc 1 90 5 view .LVU115
  637. 411 0098 C5F80900 str r0, [r5, #9] @ unaligned
  638. 412 009c C5F80D10 str r1, [r5, #13] @ unaligned
  639. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 12
  640. 93:user_src/soft_uart.c **** index += 16;//硬件
  641. 413 .loc 1 93 5 view .LVU116
  642. 414 00a0 03CB ldmia r3!, {r0, r1}
  643. 90:user_src/soft_uart.c **** index += 32;
  644. 415 .loc 1 90 5 view .LVU117
  645. 416 00a2 1288 ldrh r2, [r2] @ unaligned
  646. 417 00a4 A5F81120 strh r2, [r5, #17] @ unaligned
  647. 91:user_src/soft_uart.c **** index += 16;
  648. 418 .loc 1 91 5 is_stmt 1 view .LVU118
  649. 419 .LVL26:
  650. 92:user_src/soft_uart.c **** memcpy(&msg_buf[index],&hardverison_buf[0],10);//sn
  651. 420 .loc 1 92 5 view .LVU119
  652. 93:user_src/soft_uart.c **** index += 16;//硬件
  653. 421 .loc 1 93 5 view .LVU120
  654. 422 00a8 C5F83900 str r0, [r5, #57] @ unaligned
  655. 423 00ac 1A88 ldrh r2, [r3] @ unaligned
  656. 424 00ae C5F83D10 str r1, [r5, #61] @ unaligned
  657. 97:user_src/soft_uart.c **** uint16_t uart_crc = Get_Crc16(msg_buf, index);
  658. 425 .loc 1 97 16 is_stmt 0 view .LVU121
  659. 426 00b2 5323 movs r3, #83
  660. 98:user_src/soft_uart.c **** memcpy(&msg_buf[index], &uart_crc, 2);
  661. 427 .loc 1 98 25 view .LVU122
  662. 428 00b4 5921 movs r1, #89
  663. 429 00b6 2846 mov r0, r5
  664. 93:user_src/soft_uart.c **** index += 16;//硬件
  665. 430 .loc 1 93 5 view .LVU123
  666. 431 00b8 A5F84120 strh r2, [r5, #65] @ unaligned
  667. 94:user_src/soft_uart.c **** index += 16;//厂商
  668. 432 .loc 1 94 5 is_stmt 1 view .LVU124
  669. 433 .LVL27:
  670. 95:user_src/soft_uart.c ****
  671. 434 .loc 1 95 5 view .LVU125
  672. 97:user_src/soft_uart.c **** uint16_t uart_crc = Get_Crc16(msg_buf, index);
  673. 435 .loc 1 97 5 view .LVU126
  674. 97:user_src/soft_uart.c **** uint16_t uart_crc = Get_Crc16(msg_buf, index);
  675. 436 .loc 1 97 16 is_stmt 0 view .LVU127
  676. 437 00bc 6B70 strb r3, [r5, #1]
  677. 98:user_src/soft_uart.c **** memcpy(&msg_buf[index], &uart_crc, 2);
  678. 438 .loc 1 98 5 is_stmt 1 view .LVU128
  679. 98:user_src/soft_uart.c **** memcpy(&msg_buf[index], &uart_crc, 2);
  680. 439 .loc 1 98 25 is_stmt 0 view .LVU129
  681. 440 00be FFF7FEFF bl Get_Crc16
  682. 441 .LVL28:
  683. 99:user_src/soft_uart.c **** index += 2;
  684. 442 .loc 1 99 5 is_stmt 1 view .LVU130
  685. 443 00c2 A5F85900 strh r0, [r5, #89] @ unaligned
  686. 100:user_src/soft_uart.c ****
  687. 444 .loc 1 100 5 view .LVU131
  688. 445 .LVL29:
  689. 102:user_src/soft_uart.c ****
  690. 446 .loc 1 102 5 view .LVU132
  691. 447 .LBB11:
  692. 448 .LBI8:
  693. 9:user_src/soft_uart.c **** {
  694. 449 .loc 1 9 6 view .LVU133
  695. 450 .LBB10:
  696. 11:user_src/soft_uart.c ****
  697. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 13
  698. 451 .loc 1 11 5 view .LVU134
  699. 13:user_src/soft_uart.c **** while (HAL_GetTick() - send_time < 1)
  700. 452 .loc 1 13 5 view .LVU135
  701. 13:user_src/soft_uart.c **** while (HAL_GetTick() - send_time < 1)
  702. 453 .loc 1 13 17 is_stmt 0 view .LVU136
  703. 454 00c6 FFF7FEFF bl HAL_GetTick
  704. 455 .LVL30:
  705. 13:user_src/soft_uart.c **** while (HAL_GetTick() - send_time < 1)
  706. 456 .loc 1 13 15 view .LVU137
  707. 457 00ca 2060 str r0, [r4]
  708. 14:user_src/soft_uart.c **** ;
  709. 458 .loc 1 14 5 is_stmt 1 view .LVU138
  710. 459 .L27:
  711. 15:user_src/soft_uart.c **** HAL_UART_Transmit_DMA(&huart2, data, size);
  712. 460 .loc 1 15 9 view .LVU139
  713. 14:user_src/soft_uart.c **** ;
  714. 461 .loc 1 14 11 view .LVU140
  715. 14:user_src/soft_uart.c **** ;
  716. 462 .loc 1 14 12 is_stmt 0 view .LVU141
  717. 463 00cc FFF7FEFF bl HAL_GetTick
  718. 464 .LVL31:
  719. 14:user_src/soft_uart.c **** ;
  720. 465 .loc 1 14 11 view .LVU142
  721. 466 00d0 2368 ldr r3, [r4]
  722. 467 00d2 9842 cmp r0, r3
  723. 468 00d4 FAD0 beq .L27
  724. 16:user_src/soft_uart.c **** }
  725. 469 .loc 1 16 5 is_stmt 1 view .LVU143
  726. 470 00d6 0749 ldr r1, .L42+16
  727. 471 00d8 0248 ldr r0, .L42
  728. 472 00da 5B22 movs r2, #91
  729. 473 00dc FFF7FEFF bl HAL_UART_Transmit_DMA
  730. 474 .LVL32:
  731. 16:user_src/soft_uart.c **** }
  732. 475 .loc 1 16 5 is_stmt 0 view .LVU144
  733. 476 .LBE10:
  734. 477 .LBE11:
  735. 478 00e0 A3E7 b .L25
  736. 479 .L43:
  737. 480 00e2 00BF .align 2
  738. 481 .L42:
  739. 482 00e4 00000000 .word huart2
  740. 483 00e8 00000000 .word .LANCHOR3
  741. 484 00ec 00000000 .word .LANCHOR4
  742. 485 00f0 00000000 .word .LANCHOR5
  743. 486 00f4 00000000 .word .LANCHOR6
  744. 487 00f8 00000000 .word pmu_sn
  745. 488 00fc 00000000 .word .LANCHOR0
  746. 489 0100 00000000 .word pmu_hardversion
  747. 490 .cfi_endproc
  748. 491 .LFE135:
  749. 493 .section .text.Update_ack_fmu,"ax",%progbits
  750. 494 .align 1
  751. 495 .p2align 2,,3
  752. 496 .global Update_ack_fmu
  753. 497 .syntax unified
  754. 498 .thumb
  755. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 14
  756. 499 .thumb_func
  757. 501 Update_ack_fmu:
  758. 502 .LVL33:
  759. 503 .LFB136:
  760. 109:user_src/soft_uart.c ****
  761. 504 .loc 1 109 1 is_stmt 1 view -0
  762. 505 .cfi_startproc
  763. 506 @ args = 0, pretend = 0, frame = 0
  764. 507 @ frame_needed = 0, uses_anonymous_args = 0
  765. 111:user_src/soft_uart.c **** msg_buf[index++] = 0xFE;
  766. 508 .loc 1 111 5 view .LVU146
  767. 112:user_src/soft_uart.c **** msg_buf[index++] = 0;
  768. 509 .loc 1 112 5 view .LVU147
  769. 113:user_src/soft_uart.c **** msg_buf[index++] = 0;
  770. 510 .loc 1 113 5 view .LVU148
  771. 114:user_src/soft_uart.c **** msg_buf[index++] = 0x00;
  772. 511 .loc 1 114 5 view .LVU149
  773. 115:user_src/soft_uart.c **** msg_buf[index++] = 204;
  774. 512 .loc 1 115 5 view .LVU150
  775. 116:user_src/soft_uart.c **** msg_buf[index++] = 21;
  776. 513 .loc 1 116 5 view .LVU151
  777. 117:user_src/soft_uart.c ****
  778. 514 .loc 1 117 5 view .LVU152
  779. 109:user_src/soft_uart.c ****
  780. 515 .loc 1 109 1 is_stmt 0 view .LVU153
  781. 516 0000 38B5 push {r3, r4, r5, lr}
  782. 517 .LCFI9:
  783. 518 .cfi_def_cfa_offset 16
  784. 519 .cfi_offset 3, -16
  785. 520 .cfi_offset 4, -12
  786. 521 .cfi_offset 5, -8
  787. 522 .cfi_offset 14, -4
  788. 112:user_src/soft_uart.c **** msg_buf[index++] = 0;
  789. 523 .loc 1 112 22 view .LVU154
  790. 524 0002 124D ldr r5, .L48
  791. 525 .LBB14:
  792. 526 .LBB15:
  793. 13:user_src/soft_uart.c **** while (HAL_GetTick() - send_time < 1)
  794. 527 .loc 1 13 15 view .LVU155
  795. 528 0004 124C ldr r4, .L48+4
  796. 529 .LBE15:
  797. 530 .LBE14:
  798. 119:user_src/soft_uart.c **** msg_buf[index++] = *ackbuf;
  799. 531 .loc 1 119 22 view .LVU156
  800. 532 0006 A871 strb r0, [r5, #6]
  801. 112:user_src/soft_uart.c **** msg_buf[index++] = 0;
  802. 533 .loc 1 112 22 view .LVU157
  803. 534 0008 FE22 movs r2, #254
  804. 116:user_src/soft_uart.c **** msg_buf[index++] = 21;
  805. 535 .loc 1 116 22 view .LVU158
  806. 536 000a 41F2CC53 movw r3, #5580
  807. 112:user_src/soft_uart.c **** msg_buf[index++] = 0;
  808. 537 .loc 1 112 22 view .LVU159
  809. 538 000e 2A60 str r2, [r5]
  810. 116:user_src/soft_uart.c **** msg_buf[index++] = 21;
  811. 539 .loc 1 116 22 view .LVU160
  812. 540 0010 AB80 strh r3, [r5, #4] @ movhi
  813. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 15
  814. 119:user_src/soft_uart.c **** msg_buf[index++] = *ackbuf;
  815. 541 .loc 1 119 5 is_stmt 1 view .LVU161
  816. 542 .LVL34:
  817. 120:user_src/soft_uart.c **** msg_buf[index++] = *(ackbuf + 1);
  818. 543 .loc 1 120 5 view .LVU162
  819. 120:user_src/soft_uart.c **** msg_buf[index++] = *(ackbuf + 1);
  820. 544 .loc 1 120 24 is_stmt 0 view .LVU163
  821. 545 0012 0B78 ldrb r3, [r1] @ zero_extendqisi2
  822. 120:user_src/soft_uart.c **** msg_buf[index++] = *(ackbuf + 1);
  823. 546 .loc 1 120 22 view .LVU164
  824. 547 0014 EB71 strb r3, [r5, #7]
  825. 121:user_src/soft_uart.c **** msg_buf[index++] = 1;
  826. 548 .loc 1 121 5 is_stmt 1 view .LVU165
  827. 549 .LVL35:
  828. 121:user_src/soft_uart.c **** msg_buf[index++] = 1;
  829. 550 .loc 1 121 22 is_stmt 0 view .LVU166
  830. 551 0016 4878 ldrb r0, [r1, #1] @ zero_extendqisi2
  831. 552 .LVL36:
  832. 121:user_src/soft_uart.c **** msg_buf[index++] = 1;
  833. 553 .loc 1 121 22 view .LVU167
  834. 554 0018 2872 strb r0, [r5, #8]
  835. 122:user_src/soft_uart.c ****
  836. 555 .loc 1 122 5 is_stmt 1 view .LVU168
  837. 556 .LVL37:
  838. 122:user_src/soft_uart.c ****
  839. 557 .loc 1 122 22 is_stmt 0 view .LVU169
  840. 558 001a 0122 movs r2, #1
  841. 124:user_src/soft_uart.c **** uint16_t uart_crc = Get_Crc16(msg_buf, index);
  842. 559 .loc 1 124 16 view .LVU170
  843. 560 001c 0423 movs r3, #4
  844. 125:user_src/soft_uart.c **** memcpy(&msg_buf[index], &uart_crc, 2);
  845. 561 .loc 1 125 25 view .LVU171
  846. 562 001e 0A21 movs r1, #10
  847. 563 .LVL38:
  848. 125:user_src/soft_uart.c **** memcpy(&msg_buf[index], &uart_crc, 2);
  849. 564 .loc 1 125 25 view .LVU172
  850. 565 0020 2846 mov r0, r5
  851. 122:user_src/soft_uart.c ****
  852. 566 .loc 1 122 22 view .LVU173
  853. 567 0022 6A72 strb r2, [r5, #9]
  854. 124:user_src/soft_uart.c **** uint16_t uart_crc = Get_Crc16(msg_buf, index);
  855. 568 .loc 1 124 5 is_stmt 1 view .LVU174
  856. 124:user_src/soft_uart.c **** uint16_t uart_crc = Get_Crc16(msg_buf, index);
  857. 569 .loc 1 124 16 is_stmt 0 view .LVU175
  858. 570 0024 6B70 strb r3, [r5, #1]
  859. 125:user_src/soft_uart.c **** memcpy(&msg_buf[index], &uart_crc, 2);
  860. 571 .loc 1 125 5 is_stmt 1 view .LVU176
  861. 125:user_src/soft_uart.c **** memcpy(&msg_buf[index], &uart_crc, 2);
  862. 572 .loc 1 125 25 is_stmt 0 view .LVU177
  863. 573 0026 FFF7FEFF bl Get_Crc16
  864. 574 .LVL39:
  865. 126:user_src/soft_uart.c **** index += 2;
  866. 575 .loc 1 126 5 is_stmt 1 view .LVU178
  867. 576 002a 6881 strh r0, [r5, #10] @ movhi
  868. 127:user_src/soft_uart.c ****
  869. 577 .loc 1 127 5 view .LVU179
  870. 578 .LVL40:
  871. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 16
  872. 129:user_src/soft_uart.c **** }
  873. 579 .loc 1 129 5 view .LVU180
  874. 580 .LBB18:
  875. 581 .LBI14:
  876. 9:user_src/soft_uart.c **** {
  877. 582 .loc 1 9 6 view .LVU181
  878. 583 .LBB16:
  879. 11:user_src/soft_uart.c ****
  880. 584 .loc 1 11 5 view .LVU182
  881. 13:user_src/soft_uart.c **** while (HAL_GetTick() - send_time < 1)
  882. 585 .loc 1 13 5 view .LVU183
  883. 13:user_src/soft_uart.c **** while (HAL_GetTick() - send_time < 1)
  884. 586 .loc 1 13 17 is_stmt 0 view .LVU184
  885. 587 002c FFF7FEFF bl HAL_GetTick
  886. 588 .LVL41:
  887. 13:user_src/soft_uart.c **** while (HAL_GetTick() - send_time < 1)
  888. 589 .loc 1 13 15 view .LVU185
  889. 590 0030 2060 str r0, [r4]
  890. 14:user_src/soft_uart.c **** ;
  891. 591 .loc 1 14 5 is_stmt 1 view .LVU186
  892. 592 .L45:
  893. 15:user_src/soft_uart.c **** HAL_UART_Transmit_DMA(&huart2, data, size);
  894. 593 .loc 1 15 9 view .LVU187
  895. 14:user_src/soft_uart.c **** ;
  896. 594 .loc 1 14 11 view .LVU188
  897. 14:user_src/soft_uart.c **** ;
  898. 595 .loc 1 14 12 is_stmt 0 view .LVU189
  899. 596 0032 FFF7FEFF bl HAL_GetTick
  900. 597 .LVL42:
  901. 14:user_src/soft_uart.c **** ;
  902. 598 .loc 1 14 11 view .LVU190
  903. 599 0036 2368 ldr r3, [r4]
  904. 600 0038 9842 cmp r0, r3
  905. 601 003a FAD0 beq .L45
  906. 16:user_src/soft_uart.c **** }
  907. 602 .loc 1 16 5 is_stmt 1 view .LVU191
  908. 603 .LBE16:
  909. 604 .LBE18:
  910. 130:user_src/soft_uart.c ****
  911. 605 .loc 1 130 1 is_stmt 0 view .LVU192
  912. 606 003c BDE83840 pop {r3, r4, r5, lr}
  913. 607 .LCFI10:
  914. 608 .cfi_restore 14
  915. 609 .cfi_restore 5
  916. 610 .cfi_restore 4
  917. 611 .cfi_restore 3
  918. 612 .cfi_def_cfa_offset 0
  919. 613 .LBB19:
  920. 614 .LBB17:
  921. 16:user_src/soft_uart.c **** }
  922. 615 .loc 1 16 5 view .LVU193
  923. 616 0040 0249 ldr r1, .L48
  924. 617 0042 0448 ldr r0, .L48+8
  925. 618 0044 0C22 movs r2, #12
  926. 619 0046 FFF7FEBF b HAL_UART_Transmit_DMA
  927. 620 .LVL43:
  928. 621 .L49:
  929. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 17
  930. 622 004a 00BF .align 2
  931. 623 .L48:
  932. 624 004c 00000000 .word .LANCHOR6
  933. 625 0050 00000000 .word .LANCHOR0
  934. 626 0054 00000000 .word huart2
  935. 627 .LBE17:
  936. 628 .LBE19:
  937. 629 .cfi_endproc
  938. 630 .LFE136:
  939. 632 .section .text.check_usart_is_ok,"ax",%progbits
  940. 633 .align 1
  941. 634 .p2align 2,,3
  942. 635 .global check_usart_is_ok
  943. 636 .syntax unified
  944. 637 .thumb
  945. 638 .thumb_func
  946. 640 check_usart_is_ok:
  947. 641 .LFB137:
  948. 133:user_src/soft_uart.c **** if (huart2.gState == HAL_UART_STATE_READY && (__HAL_UART_GET_FLAG(&huart2, UART_FLAG_TC) != RES
  949. 642 .loc 1 133 1 is_stmt 1 view -0
  950. 643 .cfi_startproc
  951. 644 @ args = 0, pretend = 0, frame = 0
  952. 645 @ frame_needed = 0, uses_anonymous_args = 0
  953. 646 @ link register save eliminated.
  954. 647 .loc 1 134 5 view .LVU195
  955. 648 .loc 1 134 15 is_stmt 0 view .LVU196
  956. 649 0000 074B ldr r3, .L54
  957. 650 0002 DA6F ldr r2, [r3, #124]
  958. 651 .loc 1 134 8 view .LVU197
  959. 652 0004 202A cmp r2, #32
  960. 653 0006 08D1 bne .L52
  961. 654 .loc 1 134 51 discriminator 1 view .LVU198
  962. 655 0008 1B68 ldr r3, [r3]
  963. 656 000a D869 ldr r0, [r3, #28]
  964. 657 .loc 1 134 47 discriminator 1 view .LVU199
  965. 658 000c 10F04000 ands r0, r0, #64
  966. 659 0010 04D0 beq .L51
  967. 660 .loc 1 134 106 discriminator 2 view .LVU200
  968. 661 0012 D869 ldr r0, [r3, #28]
  969. 662 .loc 1 134 103 discriminator 2 view .LVU201
  970. 663 0014 C0F3C010 ubfx r0, r0, #7, #1
  971. 664 0018 7047 bx lr
  972. 665 .L52:
  973. 135:user_src/soft_uart.c **** {
  974. 136:user_src/soft_uart.c **** }
  975. 137:user_src/soft_uart.c **** else
  976. 138:user_src/soft_uart.c **** {
  977. 139:user_src/soft_uart.c **** return false;
  978. 666 .loc 1 139 16 view .LVU202
  979. 667 001a 0020 movs r0, #0
  980. 668 .L51:
  981. 140:user_src/soft_uart.c **** }
  982. 141:user_src/soft_uart.c **** return true;
  983. 142:user_src/soft_uart.c **** }
  984. 669 .loc 1 142 1 view .LVU203
  985. 670 001c 7047 bx lr
  986. 671 .L55:
  987. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 18
  988. 672 001e 00BF .align 2
  989. 673 .L54:
  990. 674 0020 00000000 .word huart2
  991. 675 .cfi_endproc
  992. 676 .LFE137:
  993. 678 .section .text.update_function,"ax",%progbits
  994. 679 .align 1
  995. 680 .p2align 2,,3
  996. 681 .global update_function
  997. 682 .syntax unified
  998. 683 .thumb
  999. 684 .thumb_func
  1000. 686 update_function:
  1001. 687 .LFB138:
  1002. 143:user_src/soft_uart.c ****
  1003. 144:user_src/soft_uart.c **** uint32_t addr_offset = 0;
  1004. 145:user_src/soft_uart.c **** bool update_complete = false;
  1005. 146:user_src/soft_uart.c **** void update_function(void)
  1006. 147:user_src/soft_uart.c **** {
  1007. 688 .loc 1 147 1 is_stmt 1 view -0
  1008. 689 .cfi_startproc
  1009. 690 @ args = 0, pretend = 0, frame = 8
  1010. 691 @ frame_needed = 0, uses_anonymous_args = 0
  1011. 148:user_src/soft_uart.c **** uint16_t crc = Get_Crc16(update.data, (uint16_t)update.data[LEN] + 2 + 6);
  1012. 692 .loc 1 148 5 view .LVU205
  1013. 147:user_src/soft_uart.c **** uint16_t crc = Get_Crc16(update.data, (uint16_t)update.data[LEN] + 2 + 6);
  1014. 693 .loc 1 147 1 is_stmt 0 view .LVU206
  1015. 694 0000 F0B5 push {r4, r5, r6, r7, lr}
  1016. 695 .LCFI11:
  1017. 696 .cfi_def_cfa_offset 20
  1018. 697 .cfi_offset 4, -20
  1019. 698 .cfi_offset 5, -16
  1020. 699 .cfi_offset 6, -12
  1021. 700 .cfi_offset 7, -8
  1022. 701 .cfi_offset 14, -4
  1023. 702 .loc 1 148 64 view .LVU207
  1024. 703 0002 434C ldr r4, .L83
  1025. 704 0004 6178 ldrb r1, [r4, #1] @ zero_extendqisi2
  1026. 147:user_src/soft_uart.c **** uint16_t crc = Get_Crc16(update.data, (uint16_t)update.data[LEN] + 2 + 6);
  1027. 705 .loc 1 147 1 view .LVU208
  1028. 706 0006 83B0 sub sp, sp, #12
  1029. 707 .LCFI12:
  1030. 708 .cfi_def_cfa_offset 32
  1031. 709 .loc 1 148 20 view .LVU209
  1032. 710 0008 2046 mov r0, r4
  1033. 711 000a 0831 adds r1, r1, #8
  1034. 712 000c FFF7FEFF bl Get_Crc16
  1035. 713 .LVL44:
  1036. 149:user_src/soft_uart.c **** int temp_32t = 0;
  1037. 714 .loc 1 149 5 is_stmt 1 view .LVU210
  1038. 715 .loc 1 149 9 is_stmt 0 view .LVU211
  1039. 716 0010 0023 movs r3, #0
  1040. 717 0012 0193 str r3, [sp, #4]
  1041. 150:user_src/soft_uart.c ****
  1042. 151:user_src/soft_uart.c **** if (crc != 0 || check_usart_is_ok() != true)
  1043. 718 .loc 1 151 5 is_stmt 1 view .LVU212
  1044. 719 .loc 1 151 8 is_stmt 0 view .LVU213
  1045. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 19
  1046. 720 0014 20B1 cbz r0, .L79
  1047. 721 .L57:
  1048. 152:user_src/soft_uart.c **** {
  1049. 153:user_src/soft_uart.c **** update.usebuf_flag = false;
  1050. 722 .loc 1 153 9 is_stmt 1 view .LVU214
  1051. 723 .loc 1 153 28 is_stmt 0 view .LVU215
  1052. 724 0016 0023 movs r3, #0
  1053. 725 0018 84F80031 strb r3, [r4, #256]
  1054. 154:user_src/soft_uart.c **** return;
  1055. 726 .loc 1 154 9 is_stmt 1 view .LVU216
  1056. 155:user_src/soft_uart.c **** }
  1057. 156:user_src/soft_uart.c ****
  1058. 157:user_src/soft_uart.c **** switch (update.data[MSGID_ID])
  1059. 158:user_src/soft_uart.c **** {
  1060. 159:user_src/soft_uart.c **** case UPDATE_START:
  1061. 160:user_src/soft_uart.c **** memcpy(&temp_32t, &update.data[PAYLOAD], 4);
  1062. 161:user_src/soft_uart.c **** if (temp_32t < 231424 && temp_32t > 112640) //新固件大小在110kb-226kb之间
  1063. 162:user_src/soft_uart.c **** {
  1064. 163:user_src/soft_uart.c **** if(cur_pack_num > 1) //中途重新升级
  1065. 164:user_src/soft_uart.c **** HAL_NVIC_SystemReset();
  1066. 165:user_src/soft_uart.c ****
  1067. 166:user_src/soft_uart.c **** temp_32t = 0;
  1068. 167:user_src/soft_uart.c **** Update_ack_fmu(UPDATE_START, (uint8_t *)&temp_32t);
  1069. 168:user_src/soft_uart.c **** addr_offset = 0;
  1070. 169:user_src/soft_uart.c **** cur_pack_num = 1;
  1071. 170:user_src/soft_uart.c **** }
  1072. 171:user_src/soft_uart.c **** break;
  1073. 172:user_src/soft_uart.c **** case UPDATE_ING:
  1074. 173:user_src/soft_uart.c **** if (cur_pack_num == update.data[PAYLOAD] + update.data[PAYLOAD + 1] * 256)
  1075. 174:user_src/soft_uart.c **** {
  1076. 175:user_src/soft_uart.c **** temp_32t = Flash_WriteData(FLASH_APP_ADDR + addr_offset, (uint16_t *)&update.data[PAYLO
  1077. 176:user_src/soft_uart.c **** if (temp_32t == WRITE_SUCCESS)
  1078. 177:user_src/soft_uart.c **** {
  1079. 178:user_src/soft_uart.c **** cur_pack_num++;
  1080. 179:user_src/soft_uart.c **** addr_offset += update.data[LEN] - 2;
  1081. 180:user_src/soft_uart.c **** Update_ack_fmu(UPDATE_ING, &update.data[PAYLOAD]);
  1082. 181:user_src/soft_uart.c **** }
  1083. 182:user_src/soft_uart.c **** }
  1084. 183:user_src/soft_uart.c **** else if(cur_pack_num > update.data[PAYLOAD] + update.data[PAYLOAD + 1] * 256)
  1085. 184:user_src/soft_uart.c **** {
  1086. 185:user_src/soft_uart.c **** Update_ack_fmu(UPDATE_ING, &update.data[PAYLOAD]);
  1087. 186:user_src/soft_uart.c **** }
  1088. 187:user_src/soft_uart.c **** break;
  1089. 188:user_src/soft_uart.c **** case UPDATE_END:
  1090. 189:user_src/soft_uart.c **** temp_32t = 0;
  1091. 190:user_src/soft_uart.c **** if(update_complete != true)
  1092. 191:user_src/soft_uart.c **** {
  1093. 192:user_src/soft_uart.c **** update_complete = wirte_update_flag();
  1094. 193:user_src/soft_uart.c **** if(update_complete == true)
  1095. 194:user_src/soft_uart.c **** Update_ack_fmu(UPDATE_END, (uint8_t *)&temp_32t);
  1096. 195:user_src/soft_uart.c **** HAL_Delay(50);
  1097. 196:user_src/soft_uart.c **** }
  1098. 197:user_src/soft_uart.c **** break;
  1099. 198:user_src/soft_uart.c ****
  1100. 199:user_src/soft_uart.c **** default:
  1101. 200:user_src/soft_uart.c **** break;
  1102. 201:user_src/soft_uart.c **** }
  1103. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 20
  1104. 202:user_src/soft_uart.c **** update.usebuf_flag = false;
  1105. 203:user_src/soft_uart.c **** memset(update.data, 0, MAX_UART_BUF);
  1106. 204:user_src/soft_uart.c **** }
  1107. 727 .loc 1 204 1 is_stmt 0 view .LVU217
  1108. 728 001c 03B0 add sp, sp, #12
  1109. 729 .LCFI13:
  1110. 730 .cfi_remember_state
  1111. 731 .cfi_def_cfa_offset 20
  1112. 732 @ sp needed
  1113. 733 001e F0BD pop {r4, r5, r6, r7, pc}
  1114. 734 .L79:
  1115. 735 .LCFI14:
  1116. 736 .cfi_restore_state
  1117. 737 .LBB22:
  1118. 738 .LBI22:
  1119. 132:user_src/soft_uart.c **** {
  1120. 739 .loc 1 132 6 is_stmt 1 view .LVU218
  1121. 740 .LBB23:
  1122. 134:user_src/soft_uart.c **** {
  1123. 741 .loc 1 134 5 view .LVU219
  1124. 134:user_src/soft_uart.c **** {
  1125. 742 .loc 1 134 15 is_stmt 0 view .LVU220
  1126. 743 0020 3C4B ldr r3, .L83+4
  1127. 744 0022 DA6F ldr r2, [r3, #124]
  1128. 134:user_src/soft_uart.c **** {
  1129. 745 .loc 1 134 8 view .LVU221
  1130. 746 0024 202A cmp r2, #32
  1131. 747 0026 F6D1 bne .L57
  1132. 134:user_src/soft_uart.c **** {
  1133. 748 .loc 1 134 51 view .LVU222
  1134. 749 0028 1B68 ldr r3, [r3]
  1135. 750 002a DA69 ldr r2, [r3, #28]
  1136. 134:user_src/soft_uart.c **** {
  1137. 751 .loc 1 134 47 view .LVU223
  1138. 752 002c 5206 lsls r2, r2, #25
  1139. 753 002e F2D5 bpl .L57
  1140. 134:user_src/soft_uart.c **** {
  1141. 754 .loc 1 134 106 view .LVU224
  1142. 755 0030 DB69 ldr r3, [r3, #28]
  1143. 134:user_src/soft_uart.c **** {
  1144. 756 .loc 1 134 103 view .LVU225
  1145. 757 0032 1B06 lsls r3, r3, #24
  1146. 758 0034 EFD5 bpl .L57
  1147. 759 .LBE23:
  1148. 760 .LBE22:
  1149. 157:user_src/soft_uart.c **** {
  1150. 761 .loc 1 157 5 is_stmt 1 view .LVU226
  1151. 157:user_src/soft_uart.c **** {
  1152. 762 .loc 1 157 24 is_stmt 0 view .LVU227
  1153. 763 0036 6579 ldrb r5, [r4, #5] @ zero_extendqisi2
  1154. 157:user_src/soft_uart.c **** {
  1155. 764 .loc 1 157 5 view .LVU228
  1156. 765 0038 C92D cmp r5, #201
  1157. 766 003a 0ED0 beq .L58
  1158. 767 003c CA2D cmp r5, #202
  1159. 768 003e 36D0 beq .L59
  1160. 769 0040 C82D cmp r5, #200
  1161. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 21
  1162. 770 0042 19D0 beq .L80
  1163. 771 .LVL45:
  1164. 772 .L61:
  1165. 202:user_src/soft_uart.c **** memset(update.data, 0, MAX_UART_BUF);
  1166. 773 .loc 1 202 5 is_stmt 1 discriminator 3 view .LVU229
  1167. 203:user_src/soft_uart.c **** }
  1168. 774 .loc 1 203 5 is_stmt 0 discriminator 3 view .LVU230
  1169. 775 0044 3248 ldr r0, .L83
  1170. 202:user_src/soft_uart.c **** memset(update.data, 0, MAX_UART_BUF);
  1171. 776 .loc 1 202 24 discriminator 3 view .LVU231
  1172. 777 0046 0021 movs r1, #0
  1173. 203:user_src/soft_uart.c **** }
  1174. 778 .loc 1 203 5 discriminator 3 view .LVU232
  1175. 779 0048 4FF48072 mov r2, #256
  1176. 202:user_src/soft_uart.c **** memset(update.data, 0, MAX_UART_BUF);
  1177. 780 .loc 1 202 24 discriminator 3 view .LVU233
  1178. 781 004c 84F80011 strb r1, [r4, #256]
  1179. 203:user_src/soft_uart.c **** }
  1180. 782 .loc 1 203 5 is_stmt 1 discriminator 3 view .LVU234
  1181. 783 .loc 1 204 1 is_stmt 0 discriminator 3 view .LVU235
  1182. 784 0050 03B0 add sp, sp, #12
  1183. 785 .LCFI15:
  1184. 786 .cfi_remember_state
  1185. 787 .cfi_def_cfa_offset 20
  1186. 788 @ sp needed
  1187. 789 0052 BDE8F040 pop {r4, r5, r6, r7, lr}
  1188. 790 .LCFI16:
  1189. 791 .cfi_restore 14
  1190. 792 .cfi_restore 7
  1191. 793 .cfi_restore 6
  1192. 794 .cfi_restore 5
  1193. 795 .cfi_restore 4
  1194. 796 .cfi_def_cfa_offset 0
  1195. 203:user_src/soft_uart.c **** }
  1196. 797 .loc 1 203 5 discriminator 3 view .LVU236
  1197. 798 0056 FFF7FEBF b memset
  1198. 799 .LVL46:
  1199. 800 .L58:
  1200. 801 .LCFI17:
  1201. 802 .cfi_restore_state
  1202. 173:user_src/soft_uart.c **** {
  1203. 803 .loc 1 173 9 is_stmt 1 view .LVU237
  1204. 173:user_src/soft_uart.c **** {
  1205. 804 .loc 1 173 63 is_stmt 0 view .LVU238
  1206. 805 005a E279 ldrb r2, [r4, #7] @ zero_extendqisi2
  1207. 173:user_src/soft_uart.c **** {
  1208. 806 .loc 1 173 26 view .LVU239
  1209. 807 005c 2E4E ldr r6, .L83+8
  1210. 173:user_src/soft_uart.c **** {
  1211. 808 .loc 1 173 40 view .LVU240
  1212. 809 005e A379 ldrb r3, [r4, #6] @ zero_extendqisi2
  1213. 173:user_src/soft_uart.c **** {
  1214. 810 .loc 1 173 50 view .LVU241
  1215. 811 0060 03EB0223 add r3, r3, r2, lsl #8
  1216. 173:user_src/soft_uart.c **** {
  1217. 812 .loc 1 173 26 view .LVU242
  1218. 813 0064 3268 ldr r2, [r6]
  1219. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 22
  1220. 173:user_src/soft_uart.c **** {
  1221. 814 .loc 1 173 12 view .LVU243
  1222. 815 0066 9342 cmp r3, r2
  1223. 816 0068 2DD0 beq .L81
  1224. 183:user_src/soft_uart.c **** {
  1225. 817 .loc 1 183 14 is_stmt 1 view .LVU244
  1226. 183:user_src/soft_uart.c **** {
  1227. 818 .loc 1 183 16 is_stmt 0 view .LVU245
  1228. 819 006a 9A42 cmp r2, r3
  1229. 820 006c EAD9 bls .L61
  1230. 185:user_src/soft_uart.c **** }
  1231. 821 .loc 1 185 13 is_stmt 1 view .LVU246
  1232. 822 006e A11D adds r1, r4, #6
  1233. 823 0070 2846 mov r0, r5
  1234. 824 .LVL47:
  1235. 185:user_src/soft_uart.c **** }
  1236. 825 .loc 1 185 13 is_stmt 0 view .LVU247
  1237. 826 0072 FFF7FEFF bl Update_ack_fmu
  1238. 827 .LVL48:
  1239. 828 0076 E5E7 b .L61
  1240. 829 .LVL49:
  1241. 830 .L80:
  1242. 160:user_src/soft_uart.c **** if (temp_32t < 231424 && temp_32t > 112640) //新固件大小在110kb-226kb之间
  1243. 831 .loc 1 160 9 is_stmt 1 view .LVU248
  1244. 832 0078 D4F80620 ldr r2, [r4, #6] @ unaligned
  1245. 161:user_src/soft_uart.c **** {
  1246. 833 .loc 1 161 12 is_stmt 0 view .LVU249
  1247. 834 007c 2749 ldr r1, .L83+12
  1248. 160:user_src/soft_uart.c **** if (temp_32t < 231424 && temp_32t > 112640) //新固件大小在110kb-226kb之间
  1249. 835 .loc 1 160 9 view .LVU250
  1250. 836 007e 0192 str r2, [sp, #4]
  1251. 161:user_src/soft_uart.c **** {
  1252. 837 .loc 1 161 9 is_stmt 1 view .LVU251
  1253. 161:user_src/soft_uart.c **** {
  1254. 838 .loc 1 161 31 is_stmt 0 view .LVU252
  1255. 839 0080 A2F10113 sub r3, r2, #65537
  1256. 840 0084 A3F53843 sub r3, r3, #47104
  1257. 161:user_src/soft_uart.c **** {
  1258. 841 .loc 1 161 12 view .LVU253
  1259. 842 0088 8B42 cmp r3, r1
  1260. 843 008a DBD8 bhi .L61
  1261. 163:user_src/soft_uart.c **** HAL_NVIC_SystemReset();
  1262. 844 .loc 1 163 13 is_stmt 1 view .LVU254
  1263. 163:user_src/soft_uart.c **** HAL_NVIC_SystemReset();
  1264. 845 .loc 1 163 29 is_stmt 0 view .LVU255
  1265. 846 008c 224D ldr r5, .L83+8
  1266. 163:user_src/soft_uart.c **** HAL_NVIC_SystemReset();
  1267. 847 .loc 1 163 15 view .LVU256
  1268. 848 008e 2B68 ldr r3, [r5]
  1269. 849 0090 012B cmp r3, #1
  1270. 850 0092 01D9 bls .L64
  1271. 164:user_src/soft_uart.c ****
  1272. 851 .loc 1 164 17 is_stmt 1 view .LVU257
  1273. 852 0094 FFF7FEFF bl HAL_NVIC_SystemReset
  1274. 853 .LVL50:
  1275. 854 .L64:
  1276. 166:user_src/soft_uart.c **** Update_ack_fmu(UPDATE_START, (uint8_t *)&temp_32t);
  1277. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 23
  1278. 855 .loc 1 166 13 view .LVU258
  1279. 166:user_src/soft_uart.c **** Update_ack_fmu(UPDATE_START, (uint8_t *)&temp_32t);
  1280. 856 .loc 1 166 22 is_stmt 0 view .LVU259
  1281. 857 0098 0026 movs r6, #0
  1282. 167:user_src/soft_uart.c **** addr_offset = 0;
  1283. 858 .loc 1 167 13 view .LVU260
  1284. 859 009a 01A9 add r1, sp, #4
  1285. 860 009c C820 movs r0, #200
  1286. 166:user_src/soft_uart.c **** Update_ack_fmu(UPDATE_START, (uint8_t *)&temp_32t);
  1287. 861 .loc 1 166 22 view .LVU261
  1288. 862 009e 0196 str r6, [sp, #4]
  1289. 167:user_src/soft_uart.c **** addr_offset = 0;
  1290. 863 .loc 1 167 13 is_stmt 1 view .LVU262
  1291. 864 00a0 FFF7FEFF bl Update_ack_fmu
  1292. 865 .LVL51:
  1293. 168:user_src/soft_uart.c **** cur_pack_num = 1;
  1294. 866 .loc 1 168 13 view .LVU263
  1295. 168:user_src/soft_uart.c **** cur_pack_num = 1;
  1296. 867 .loc 1 168 25 is_stmt 0 view .LVU264
  1297. 868 00a4 1E4A ldr r2, .L83+16
  1298. 169:user_src/soft_uart.c **** }
  1299. 869 .loc 1 169 26 view .LVU265
  1300. 870 00a6 0123 movs r3, #1
  1301. 168:user_src/soft_uart.c **** cur_pack_num = 1;
  1302. 871 .loc 1 168 25 view .LVU266
  1303. 872 00a8 1660 str r6, [r2]
  1304. 169:user_src/soft_uart.c **** }
  1305. 873 .loc 1 169 13 is_stmt 1 view .LVU267
  1306. 169:user_src/soft_uart.c **** }
  1307. 874 .loc 1 169 26 is_stmt 0 view .LVU268
  1308. 875 00aa 2B60 str r3, [r5]
  1309. 876 00ac CAE7 b .L61
  1310. 877 .LVL52:
  1311. 878 .L59:
  1312. 189:user_src/soft_uart.c **** if(update_complete != true)
  1313. 879 .loc 1 189 9 is_stmt 1 view .LVU269
  1314. 190:user_src/soft_uart.c **** {
  1315. 880 .loc 1 190 9 view .LVU270
  1316. 190:user_src/soft_uart.c **** {
  1317. 881 .loc 1 190 28 is_stmt 0 view .LVU271
  1318. 882 00ae 1D4E ldr r6, .L83+20
  1319. 190:user_src/soft_uart.c **** {
  1320. 883 .loc 1 190 11 view .LVU272
  1321. 884 00b0 3378 ldrb r3, [r6] @ zero_extendqisi2
  1322. 885 00b2 002B cmp r3, #0
  1323. 886 00b4 C6D1 bne .L61
  1324. 192:user_src/soft_uart.c **** if(update_complete == true)
  1325. 887 .loc 1 192 13 is_stmt 1 view .LVU273
  1326. 192:user_src/soft_uart.c **** if(update_complete == true)
  1327. 888 .loc 1 192 31 is_stmt 0 view .LVU274
  1328. 889 00b6 FFF7FEFF bl wirte_update_flag
  1329. 890 .LVL53:
  1330. 192:user_src/soft_uart.c **** if(update_complete == true)
  1331. 891 .loc 1 192 29 view .LVU275
  1332. 892 00ba 3070 strb r0, [r6]
  1333. 193:user_src/soft_uart.c **** Update_ack_fmu(UPDATE_END, (uint8_t *)&temp_32t);
  1334. 893 .loc 1 193 13 is_stmt 1 view .LVU276
  1335. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 24
  1336. 193:user_src/soft_uart.c **** Update_ack_fmu(UPDATE_END, (uint8_t *)&temp_32t);
  1337. 894 .loc 1 193 15 is_stmt 0 view .LVU277
  1338. 895 00bc 18BB cbnz r0, .L82
  1339. 896 .L67:
  1340. 195:user_src/soft_uart.c **** }
  1341. 897 .loc 1 195 13 is_stmt 1 view .LVU278
  1342. 898 00be 3220 movs r0, #50
  1343. 899 00c0 FFF7FEFF bl HAL_Delay
  1344. 900 .LVL54:
  1345. 901 00c4 BEE7 b .L61
  1346. 902 .LVL55:
  1347. 903 .L81:
  1348. 175:user_src/soft_uart.c **** if (temp_32t == WRITE_SUCCESS)
  1349. 904 .loc 1 175 13 view .LVU279
  1350. 175:user_src/soft_uart.c **** if (temp_32t == WRITE_SUCCESS)
  1351. 905 .loc 1 175 24 is_stmt 0 view .LVU280
  1352. 906 00c6 164F ldr r7, .L83+16
  1353. 175:user_src/soft_uart.c **** if (temp_32t == WRITE_SUCCESS)
  1354. 907 .loc 1 175 121 view .LVU281
  1355. 908 00c8 6278 ldrb r2, [r4, #1] @ zero_extendqisi2
  1356. 175:user_src/soft_uart.c **** if (temp_32t == WRITE_SUCCESS)
  1357. 909 .loc 1 175 24 view .LVU282
  1358. 910 00ca 3868 ldr r0, [r7]
  1359. 911 .LVL56:
  1360. 175:user_src/soft_uart.c **** if (temp_32t == WRITE_SUCCESS)
  1361. 912 .loc 1 175 127 view .LVU283
  1362. 913 00cc 023A subs r2, r2, #2
  1363. 175:user_src/soft_uart.c **** if (temp_32t == WRITE_SUCCESS)
  1364. 914 .loc 1 175 132 view .LVU284
  1365. 915 00ce 02EBD272 add r2, r2, r2, lsr #31
  1366. 175:user_src/soft_uart.c **** if (temp_32t == WRITE_SUCCESS)
  1367. 916 .loc 1 175 24 view .LVU285
  1368. 917 00d2 00F10060 add r0, r0, #134217728
  1369. 918 00d6 C2F34F02 ubfx r2, r2, #1, #16
  1370. 919 00da 00F5F040 add r0, r0, #30720
  1371. 920 00de 04F10801 add r1, r4, #8
  1372. 921 00e2 FFF7FEFF bl Flash_WriteData
  1373. 922 .LVL57:
  1374. 176:user_src/soft_uart.c **** {
  1375. 923 .loc 1 176 16 view .LVU286
  1376. 924 00e6 0328 cmp r0, #3
  1377. 175:user_src/soft_uart.c **** if (temp_32t == WRITE_SUCCESS)
  1378. 925 .loc 1 175 22 view .LVU287
  1379. 926 00e8 0190 str r0, [sp, #4]
  1380. 176:user_src/soft_uart.c **** {
  1381. 927 .loc 1 176 13 is_stmt 1 view .LVU288
  1382. 176:user_src/soft_uart.c **** {
  1383. 928 .loc 1 176 16 is_stmt 0 view .LVU289
  1384. 929 00ea ABD1 bne .L61
  1385. 178:user_src/soft_uart.c **** addr_offset += update.data[LEN] - 2;
  1386. 930 .loc 1 178 17 is_stmt 1 view .LVU290
  1387. 178:user_src/soft_uart.c **** addr_offset += update.data[LEN] - 2;
  1388. 931 .loc 1 178 29 is_stmt 0 view .LVU291
  1389. 932 00ec 3368 ldr r3, [r6]
  1390. 179:user_src/soft_uart.c **** Update_ack_fmu(UPDATE_ING, &update.data[PAYLOAD]);
  1391. 933 .loc 1 179 29 view .LVU292
  1392. 934 00ee 6278 ldrb r2, [r4, #1] @ zero_extendqisi2
  1393. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 25
  1394. 178:user_src/soft_uart.c **** addr_offset += update.data[LEN] - 2;
  1395. 935 .loc 1 178 29 view .LVU293
  1396. 936 00f0 0133 adds r3, r3, #1
  1397. 937 00f2 3360 str r3, [r6]
  1398. 179:user_src/soft_uart.c **** Update_ack_fmu(UPDATE_ING, &update.data[PAYLOAD]);
  1399. 938 .loc 1 179 17 is_stmt 1 view .LVU294
  1400. 179:user_src/soft_uart.c **** Update_ack_fmu(UPDATE_ING, &update.data[PAYLOAD]);
  1401. 939 .loc 1 179 29 is_stmt 0 view .LVU295
  1402. 940 00f4 3B68 ldr r3, [r7]
  1403. 941 00f6 023B subs r3, r3, #2
  1404. 942 00f8 1344 add r3, r3, r2
  1405. 180:user_src/soft_uart.c **** }
  1406. 943 .loc 1 180 17 view .LVU296
  1407. 944 00fa 2846 mov r0, r5
  1408. 945 00fc A11D adds r1, r4, #6
  1409. 179:user_src/soft_uart.c **** Update_ack_fmu(UPDATE_ING, &update.data[PAYLOAD]);
  1410. 946 .loc 1 179 29 view .LVU297
  1411. 947 00fe 3B60 str r3, [r7]
  1412. 180:user_src/soft_uart.c **** }
  1413. 948 .loc 1 180 17 is_stmt 1 view .LVU298
  1414. 949 0100 FFF7FEFF bl Update_ack_fmu
  1415. 950 .LVL58:
  1416. 951 0104 9EE7 b .L61
  1417. 952 .L82:
  1418. 194:user_src/soft_uart.c **** HAL_Delay(50);
  1419. 953 .loc 1 194 17 view .LVU299
  1420. 954 0106 01A9 add r1, sp, #4
  1421. 955 0108 2846 mov r0, r5
  1422. 956 010a FFF7FEFF bl Update_ack_fmu
  1423. 957 .LVL59:
  1424. 958 010e D6E7 b .L67
  1425. 959 .L84:
  1426. 960 .align 2
  1427. 961 .L83:
  1428. 962 0110 00000000 .word .LANCHOR2
  1429. 963 0114 00000000 .word huart2
  1430. 964 0118 00000000 .word .LANCHOR4
  1431. 965 011c FECF0100 .word 118782
  1432. 966 0120 00000000 .word .LANCHOR7
  1433. 967 0124 00000000 .word .LANCHOR8
  1434. 968 .cfi_endproc
  1435. 969 .LFE138:
  1436. 971 .section .text.init_usart,"ax",%progbits
  1437. 972 .align 1
  1438. 973 .p2align 2,,3
  1439. 974 .global init_usart
  1440. 975 .syntax unified
  1441. 976 .thumb
  1442. 977 .thumb_func
  1443. 979 init_usart:
  1444. 980 .LFB139:
  1445. 205:user_src/soft_uart.c ****
  1446. 206:user_src/soft_uart.c **** void init_usart(void)
  1447. 207:user_src/soft_uart.c **** {
  1448. 981 .loc 1 207 1 view -0
  1449. 982 .cfi_startproc
  1450. 983 @ args = 0, pretend = 0, frame = 0
  1451. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 26
  1452. 984 @ frame_needed = 0, uses_anonymous_args = 0
  1453. 208:user_src/soft_uart.c **** __HAL_UART_ENABLE_IT(&huart2, UART_IT_IDLE); //uart2 空闲中断
  1454. 985 .loc 1 208 5 view .LVU301
  1455. 207:user_src/soft_uart.c **** __HAL_UART_ENABLE_IT(&huart2, UART_IT_IDLE); //uart2 空闲中断
  1456. 986 .loc 1 207 1 is_stmt 0 view .LVU302
  1457. 987 0000 10B5 push {r4, lr}
  1458. 988 .LCFI18:
  1459. 989 .cfi_def_cfa_offset 8
  1460. 990 .cfi_offset 4, -8
  1461. 991 .cfi_offset 14, -4
  1462. 992 .loc 1 208 5 view .LVU303
  1463. 993 0002 094C ldr r4, .L87
  1464. 209:user_src/soft_uart.c **** HAL_UART_Receive_DMA(&huart2, (uint8_t *)FMU_uart_buf, MAX_UART_BUF);
  1465. 994 .loc 1 209 2 view .LVU304
  1466. 995 0004 0949 ldr r1, .L87+4
  1467. 208:user_src/soft_uart.c **** __HAL_UART_ENABLE_IT(&huart2, UART_IT_IDLE); //uart2 空闲中断
  1468. 996 .loc 1 208 5 view .LVU305
  1469. 997 0006 2068 ldr r0, [r4]
  1470. 998 0008 0368 ldr r3, [r0]
  1471. 999 000a 43F01003 orr r3, r3, #16
  1472. 1000 000e 0360 str r3, [r0]
  1473. 1001 .loc 1 209 2 is_stmt 1 view .LVU306
  1474. 1002 0010 4FF48072 mov r2, #256
  1475. 1003 0014 2046 mov r0, r4
  1476. 1004 0016 FFF7FEFF bl HAL_UART_Receive_DMA
  1477. 1005 .LVL60:
  1478. 210:user_src/soft_uart.c **** //开启错误处理机制
  1479. 211:user_src/soft_uart.c **** __HAL_UART_ENABLE_IT(&huart2, UART_IT_ERR);
  1480. 1006 .loc 1 211 2 view .LVU307
  1481. 1007 001a 2268 ldr r2, [r4]
  1482. 1008 001c 9368 ldr r3, [r2, #8]
  1483. 1009 001e 43F00103 orr r3, r3, #1
  1484. 1010 0022 9360 str r3, [r2, #8]
  1485. 212:user_src/soft_uart.c **** }...
  1486. 1011 .loc 1 212 1 is_stmt 0 view .LVU308
  1487. 1012 0024 10BD pop {r4, pc}
  1488. 1013 .L88:
  1489. 1014 0026 00BF .align 2
  1490. 1015 .L87:
  1491. 1016 0028 00000000 .word huart2
  1492. 1017 002c 00000000 .word .LANCHOR1
  1493. 1018 .cfi_endproc
  1494. 1019 .LFE139:
  1495. 1021 .global update_complete
  1496. 1022 .global addr_offset
  1497. 1023 .global cur_pack_num
  1498. 1024 .global msg_buf
  1499. 1025 .global update
  1500. 1026 .global FMU_uart_buf
  1501. 1027 .global fmu_version_ack
  1502. 1028 .section .bss.FMU_uart_buf,"aw",%nobits
  1503. 1029 .align 2
  1504. 1030 .set .LANCHOR1,. + 0
  1505. 1033 FMU_uart_buf:
  1506. 1034 0000 00000000 .space 256
  1507. 1034 00000000
  1508. 1034 00000000
  1509. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 27
  1510. 1034 00000000
  1511. 1034 00000000
  1512. 1035 .section .bss.addr_offset,"aw",%nobits
  1513. 1036 .align 2
  1514. 1037 .set .LANCHOR7,. + 0
  1515. 1040 addr_offset:
  1516. 1041 0000 00000000 .space 4
  1517. 1042 .section .bss.cur_pack_num,"aw",%nobits
  1518. 1043 .align 2
  1519. 1044 .set .LANCHOR4,. + 0
  1520. 1047 cur_pack_num:
  1521. 1048 0000 00000000 .space 4
  1522. 1049 .section .bss.fmu_version_ack,"aw",%nobits
  1523. 1050 .set .LANCHOR3,. + 0
  1524. 1053 fmu_version_ack:
  1525. 1054 0000 00 .space 1
  1526. 1055 .section .bss.msg_buf,"aw",%nobits
  1527. 1056 .align 2
  1528. 1057 .set .LANCHOR6,. + 0
  1529. 1060 msg_buf:
  1530. 1061 0000 00000000 .space 128
  1531. 1061 00000000
  1532. 1061 00000000
  1533. 1061 00000000
  1534. 1061 00000000
  1535. 1062 .section .bss.send_time.1,"aw",%nobits
  1536. 1063 .align 2
  1537. 1064 .set .LANCHOR0,. + 0
  1538. 1067 send_time.1:
  1539. 1068 0000 00000000 .space 4
  1540. 1069 .section .bss.time2_hz.0,"aw",%nobits
  1541. 1070 .align 2
  1542. 1071 .set .LANCHOR5,. + 0
  1543. 1074 time2_hz.0:
  1544. 1075 0000 00000000 .space 4
  1545. 1076 .section .bss.update,"aw",%nobits
  1546. 1077 .align 2
  1547. 1078 .set .LANCHOR2,. + 0
  1548. 1081 update:
  1549. 1082 0000 00000000 .space 257
  1550. 1082 00000000
  1551. 1082 00000000
  1552. 1082 00000000
  1553. 1082 00000000
  1554. 1083 .section .bss.update_complete,"aw",%nobits
  1555. 1084 .set .LANCHOR8,. + 0
  1556. 1087 update_complete:
  1557. 1088 0000 00 .space 1
  1558. 1089 .text
  1559. 1090 .Letext0:
  1560. 1091 .file 2 "d:\\arm-gcc\\arm-none-eabi\\include\\machine\\_default_types.h"
  1561. 1092 .file 3 "d:\\arm-gcc\\arm-none-eabi\\include\\sys\\_stdint.h"
  1562. 1093 .file 4 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302xc.h"
  1563. 1094 .file 5 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h"
  1564. 1095 .file 6 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h"
  1565. 1096 .file 7 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h"
  1566. 1097 .file 8 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_uart.h"
  1567. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 28
  1568. 1098 .file 9 "user_inc/soft_uart.h"
  1569. 1099 .file 10 "user_inc/soft_flash.h"
  1570. 1100 .file 11 "Core/Inc/usart.h"
  1571. 1101 .file 12 "user_inc/soft_crc.h"
  1572. 1102 .file 13 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_cortex.h"
  1573. 1103 .file 14 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h"
  1574. 1104 .file 15 "<built-in>"
  1575. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 29
  1576. DEFINED SYMBOLS
  1577. *ABS*:00000000 soft_uart.c
  1578. C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:20 .text.uart2_send_msg:00000000 $t
  1579. C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:27 .text.uart2_send_msg:00000000 uart2_send_msg
  1580. C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:85 .text.uart2_send_msg:00000028 $d
  1581. C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:91 .text.USER_UART_IRQHandler:00000000 $t
  1582. C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:98 .text.USER_UART_IRQHandler:00000000 USER_UART_IRQHandler
  1583. C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:228 .text.USER_UART_IRQHandler:00000084 $d
  1584. C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:236 .text.send_pmu_version:00000000 $t
  1585. C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:243 .text.send_pmu_version:00000000 send_pmu_version
  1586. C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:482 .text.send_pmu_version:000000e4 $d
  1587. C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:494 .text.Update_ack_fmu:00000000 $t
  1588. C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:501 .text.Update_ack_fmu:00000000 Update_ack_fmu
  1589. C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:624 .text.Update_ack_fmu:0000004c $d
  1590. C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:633 .text.check_usart_is_ok:00000000 $t
  1591. C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:640 .text.check_usart_is_ok:00000000 check_usart_is_ok
  1592. C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:674 .text.check_usart_is_ok:00000020 $d
  1593. C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:679 .text.update_function:00000000 $t
  1594. C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:686 .text.update_function:00000000 update_function
  1595. C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:962 .text.update_function:00000110 $d
  1596. C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:972 .text.init_usart:00000000 $t
  1597. C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:979 .text.init_usart:00000000 init_usart
  1598. C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:1016 .text.init_usart:00000028 $d
  1599. C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:1087 .bss.update_complete:00000000 update_complete
  1600. C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:1040 .bss.addr_offset:00000000 addr_offset
  1601. C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:1047 .bss.cur_pack_num:00000000 cur_pack_num
  1602. C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:1060 .bss.msg_buf:00000000 msg_buf
  1603. C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:1081 .bss.update:00000000 update
  1604. C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:1033 .bss.FMU_uart_buf:00000000 FMU_uart_buf
  1605. C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:1053 .bss.fmu_version_ack:00000000 fmu_version_ack
  1606. C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:1029 .bss.FMU_uart_buf:00000000 $d
  1607. C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:1036 .bss.addr_offset:00000000 $d
  1608. C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:1043 .bss.cur_pack_num:00000000 $d
  1609. C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:1054 .bss.fmu_version_ack:00000000 $d
  1610. C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:1056 .bss.msg_buf:00000000 $d
  1611. C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:1063 .bss.send_time.1:00000000 $d
  1612. C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:1067 .bss.send_time.1:00000000 send_time.1
  1613. C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:1070 .bss.time2_hz.0:00000000 $d
  1614. C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:1074 .bss.time2_hz.0:00000000 time2_hz.0
  1615. C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:1077 .bss.update:00000000 $d
  1616. C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s:1088 .bss.update_complete:00000000 $d
  1617. UNDEFINED SYMBOLS
  1618. HAL_GetTick
  1619. HAL_UART_Transmit_DMA
  1620. huart2
  1621. HAL_UART_AbortReceive
  1622. memset
  1623. HAL_UART_Receive_DMA
  1624. memcpy
  1625. Int2String
  1626. Get_Crc16
  1627. pmu_sn
  1628. pmu_hardversion
  1629. HAL_NVIC_SystemReset
  1630. wirte_update_flag
  1631. HAL_Delay
  1632. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccdSndPg.s page 30
  1633. Flash_WriteData