common.lst 78 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041
  1. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.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, 6
  14. 13 .eabi_attribute 34, 1
  15. 14 .eabi_attribute 18, 4
  16. 15 .file "common.c"
  17. 16 .text
  18. 17 .Ltext0:
  19. 18 .cfi_sections .debug_frame
  20. 19 .section .text.findStrInArray,"ax",%progbits
  21. 20 .align 1
  22. 21 .global findStrInArray
  23. 22 .syntax unified
  24. 23 .thumb
  25. 24 .thumb_func
  26. 26 findStrInArray:
  27. 27 .LFB130:
  28. 28 .file 1 "user_src/common.c"
  29. 1:user_src/common.c **** #include "tim.h"
  30. 2:user_src/common.c **** #include "common.h"
  31. 3:user_src/common.c **** #include "string.h"
  32. 4:user_src/common.c **** #include "soft_obstacle.h"
  33. 5:user_src/common.c ****
  34. 6:user_src/common.c ****
  35. 7:user_src/common.c **** int findStrInArray( uint8_t *array, int aLen, const char *str )
  36. 8:user_src/common.c **** {
  37. 29 .loc 1 8 1
  38. 30 .cfi_startproc
  39. 31 @ args = 0, pretend = 0, frame = 32
  40. 32 @ frame_needed = 1, uses_anonymous_args = 0
  41. 33 0000 80B5 push {r7, lr}
  42. 34 .LCFI0:
  43. 35 .cfi_def_cfa_offset 8
  44. 36 .cfi_offset 7, -8
  45. 37 .cfi_offset 14, -4
  46. 38 0002 88B0 sub sp, sp, #32
  47. 39 .LCFI1:
  48. 40 .cfi_def_cfa_offset 40
  49. 41 0004 00AF add r7, sp, #0
  50. 42 .LCFI2:
  51. 43 .cfi_def_cfa_register 7
  52. 44 0006 F860 str r0, [r7, #12]
  53. 45 0008 B960 str r1, [r7, #8]
  54. 46 000a 7A60 str r2, [r7, #4]
  55. 9:user_src/common.c **** int strLen = strlen( str );
  56. 47 .loc 1 9 18
  57. 48 000c 7868 ldr r0, [r7, #4]
  58. 49 000e FFF7FEFF bl strlen
  59. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 2
  60. 50 0012 0346 mov r3, r0
  61. 51 .loc 1 9 9
  62. 52 0014 BB61 str r3, [r7, #24]
  63. 10:user_src/common.c **** uint8_t s1 = str[0];
  64. 53 .loc 1 10 13
  65. 54 0016 7B68 ldr r3, [r7, #4]
  66. 55 0018 1B78 ldrb r3, [r3]
  67. 56 001a FB75 strb r3, [r7, #23]
  68. 11:user_src/common.c ****
  69. 12:user_src/common.c **** if ( aLen < strLen )
  70. 57 .loc 1 12 8
  71. 58 001c BA68 ldr r2, [r7, #8]
  72. 59 001e BB69 ldr r3, [r7, #24]
  73. 60 0020 9A42 cmp r2, r3
  74. 61 0022 01DA bge .L2
  75. 13:user_src/common.c **** return 0;
  76. 62 .loc 1 13 16
  77. 63 0024 0023 movs r3, #0
  78. 64 0026 1EE0 b .L3
  79. 65 .L2:
  80. 66 .LBB2:
  81. 14:user_src/common.c ****
  82. 15:user_src/common.c **** for ( int i = 0; i < aLen; i++ )
  83. 67 .loc 1 15 15
  84. 68 0028 0023 movs r3, #0
  85. 69 002a FB61 str r3, [r7, #28]
  86. 70 .loc 1 15 5
  87. 71 002c 16E0 b .L4
  88. 72 .L6:
  89. 16:user_src/common.c **** {
  90. 17:user_src/common.c **** if ( array[i] == s1 )
  91. 73 .loc 1 17 19
  92. 74 002e FB69 ldr r3, [r7, #28]
  93. 75 0030 FA68 ldr r2, [r7, #12]
  94. 76 0032 1344 add r3, r3, r2
  95. 77 0034 1B78 ldrb r3, [r3] @ zero_extendqisi2
  96. 78 .loc 1 17 12
  97. 79 0036 FA7D ldrb r2, [r7, #23] @ zero_extendqisi2
  98. 80 0038 9A42 cmp r2, r3
  99. 81 003a 0CD1 bne .L5
  100. 18:user_src/common.c **** {
  101. 19:user_src/common.c **** if ( memcmp( &array[i], str, strLen ) == 0 )
  102. 82 .loc 1 19 18
  103. 83 003c FB69 ldr r3, [r7, #28]
  104. 84 .loc 1 19 26
  105. 85 003e FA68 ldr r2, [r7, #12]
  106. 86 0040 1344 add r3, r3, r2
  107. 87 .loc 1 19 18
  108. 88 0042 BA69 ldr r2, [r7, #24]
  109. 89 0044 7968 ldr r1, [r7, #4]
  110. 90 0046 1846 mov r0, r3
  111. 91 0048 FFF7FEFF bl memcmp
  112. 92 004c 0346 mov r3, r0
  113. 93 .loc 1 19 16
  114. 94 004e 002B cmp r3, #0
  115. 95 0050 01D1 bne .L5
  116. 20:user_src/common.c **** return 1;
  117. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 3
  118. 96 .loc 1 20 24
  119. 97 0052 0123 movs r3, #1
  120. 98 0054 07E0 b .L3
  121. 99 .L5:
  122. 15:user_src/common.c **** {
  123. 100 .loc 1 15 33 discriminator 2
  124. 101 0056 FB69 ldr r3, [r7, #28]
  125. 102 0058 0133 adds r3, r3, #1
  126. 103 005a FB61 str r3, [r7, #28]
  127. 104 .L4:
  128. 15:user_src/common.c **** {
  129. 105 .loc 1 15 5 discriminator 1
  130. 106 005c FA69 ldr r2, [r7, #28]
  131. 107 005e BB68 ldr r3, [r7, #8]
  132. 108 0060 9A42 cmp r2, r3
  133. 109 0062 E4DB blt .L6
  134. 110 .LBE2:
  135. 21:user_src/common.c **** }
  136. 22:user_src/common.c **** }
  137. 23:user_src/common.c **** return 0;
  138. 111 .loc 1 23 12
  139. 112 0064 0023 movs r3, #0
  140. 113 .L3:
  141. 24:user_src/common.c **** }
  142. 114 .loc 1 24 1
  143. 115 0066 1846 mov r0, r3
  144. 116 0068 2037 adds r7, r7, #32
  145. 117 .LCFI3:
  146. 118 .cfi_def_cfa_offset 8
  147. 119 006a BD46 mov sp, r7
  148. 120 .LCFI4:
  149. 121 .cfi_def_cfa_register 13
  150. 122 @ sp needed
  151. 123 006c 80BD pop {r7, pc}
  152. 124 .cfi_endproc
  153. 125 .LFE130:
  154. 127 .section .text.buf2int,"ax",%progbits
  155. 128 .align 1
  156. 129 .global buf2int
  157. 130 .syntax unified
  158. 131 .thumb
  159. 132 .thumb_func
  160. 134 buf2int:
  161. 135 .LFB131:
  162. 25:user_src/common.c ****
  163. 26:user_src/common.c **** void buf2int( int *tint, unsigned char *buf )
  164. 27:user_src/common.c **** {
  165. 136 .loc 1 27 1
  166. 137 .cfi_startproc
  167. 138 @ args = 0, pretend = 0, frame = 24
  168. 139 @ frame_needed = 1, uses_anonymous_args = 0
  169. 140 @ link register save eliminated.
  170. 141 0000 80B4 push {r7}
  171. 142 .LCFI5:
  172. 143 .cfi_def_cfa_offset 4
  173. 144 .cfi_offset 7, -4
  174. 145 0002 87B0 sub sp, sp, #28
  175. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 4
  176. 146 .LCFI6:
  177. 147 .cfi_def_cfa_offset 32
  178. 148 0004 00AF add r7, sp, #0
  179. 149 .LCFI7:
  180. 150 .cfi_def_cfa_register 7
  181. 151 0006 7860 str r0, [r7, #4]
  182. 152 0008 3960 str r1, [r7]
  183. 28:user_src/common.c **** int i;
  184. 29:user_src/common.c **** unsigned char *p1 = ( unsigned char * )tint;
  185. 153 .loc 1 29 20
  186. 154 000a 7B68 ldr r3, [r7, #4]
  187. 155 000c 3B61 str r3, [r7, #16]
  188. 30:user_src/common.c **** unsigned char *p3 = buf;
  189. 156 .loc 1 30 20
  190. 157 000e 3B68 ldr r3, [r7]
  191. 158 0010 FB60 str r3, [r7, #12]
  192. 31:user_src/common.c **** for ( i = 0; i < 4; i++ )
  193. 159 .loc 1 31 13
  194. 160 0012 0023 movs r3, #0
  195. 161 0014 7B61 str r3, [r7, #20]
  196. 162 .loc 1 31 5
  197. 163 0016 0CE0 b .L8
  198. 164 .L9:
  199. 32:user_src/common.c **** {
  200. 33:user_src/common.c **** *p1 = *p3;
  201. 165 .loc 1 33 15 discriminator 3
  202. 166 0018 FB68 ldr r3, [r7, #12]
  203. 167 001a 1A78 ldrb r2, [r3] @ zero_extendqisi2
  204. 168 .loc 1 33 13 discriminator 3
  205. 169 001c 3B69 ldr r3, [r7, #16]
  206. 170 001e 1A70 strb r2, [r3]
  207. 34:user_src/common.c **** p1++;
  208. 171 .loc 1 34 11 discriminator 3
  209. 172 0020 3B69 ldr r3, [r7, #16]
  210. 173 0022 0133 adds r3, r3, #1
  211. 174 0024 3B61 str r3, [r7, #16]
  212. 35:user_src/common.c **** p3++;
  213. 175 .loc 1 35 11 discriminator 3
  214. 176 0026 FB68 ldr r3, [r7, #12]
  215. 177 0028 0133 adds r3, r3, #1
  216. 178 002a FB60 str r3, [r7, #12]
  217. 31:user_src/common.c **** {
  218. 179 .loc 1 31 26 discriminator 3
  219. 180 002c 7B69 ldr r3, [r7, #20]
  220. 181 002e 0133 adds r3, r3, #1
  221. 182 0030 7B61 str r3, [r7, #20]
  222. 183 .L8:
  223. 31:user_src/common.c **** {
  224. 184 .loc 1 31 5 discriminator 1
  225. 185 0032 7B69 ldr r3, [r7, #20]
  226. 186 0034 032B cmp r3, #3
  227. 187 0036 EFDD ble .L9
  228. 36:user_src/common.c **** }
  229. 37:user_src/common.c **** }
  230. 188 .loc 1 37 1
  231. 189 0038 00BF nop
  232. 190 003a 00BF nop
  233. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 5
  234. 191 003c 1C37 adds r7, r7, #28
  235. 192 .LCFI8:
  236. 193 .cfi_def_cfa_offset 4
  237. 194 003e BD46 mov sp, r7
  238. 195 .LCFI9:
  239. 196 .cfi_def_cfa_register 13
  240. 197 @ sp needed
  241. 198 0040 5DF8047B ldr r7, [sp], #4
  242. 199 .LCFI10:
  243. 200 .cfi_restore 7
  244. 201 .cfi_def_cfa_offset 0
  245. 202 0044 7047 bx lr
  246. 203 .cfi_endproc
  247. 204 .LFE131:
  248. 206 .section .text.u16t_buf_sort,"ax",%progbits
  249. 207 .align 1
  250. 208 .global u16t_buf_sort
  251. 209 .syntax unified
  252. 210 .thumb
  253. 211 .thumb_func
  254. 213 u16t_buf_sort:
  255. 214 .LFB132:
  256. 38:user_src/common.c ****
  257. 39:user_src/common.c ****
  258. 40:user_src/common.c **** /*****************************uint16从大到�排列*************************/
  259. 41:user_src/common.c **** void u16t_buf_sort( uint16_t *arr, uint16_t length )
  260. 42:user_src/common.c **** {
  261. 215 .loc 1 42 1
  262. 216 .cfi_startproc
  263. 217 @ args = 0, pretend = 0, frame = 16
  264. 218 @ frame_needed = 1, uses_anonymous_args = 0
  265. 219 @ link register save eliminated.
  266. 220 0000 80B4 push {r7}
  267. 221 .LCFI11:
  268. 222 .cfi_def_cfa_offset 4
  269. 223 .cfi_offset 7, -4
  270. 224 0002 85B0 sub sp, sp, #20
  271. 225 .LCFI12:
  272. 226 .cfi_def_cfa_offset 24
  273. 227 0004 00AF add r7, sp, #0
  274. 228 .LCFI13:
  275. 229 .cfi_def_cfa_register 7
  276. 230 0006 7860 str r0, [r7, #4]
  277. 231 0008 0B46 mov r3, r1
  278. 232 000a 7B80 strh r3, [r7, #2] @ movhi
  279. 43:user_src/common.c **** if ( length < 2 )
  280. 233 .loc 1 43 8
  281. 234 000c 7B88 ldrh r3, [r7, #2]
  282. 235 000e 012B cmp r3, #1
  283. 236 0010 3FD9 bls .L18
  284. 44:user_src/common.c **** {
  285. 45:user_src/common.c **** return;
  286. 46:user_src/common.c **** }
  287. 47:user_src/common.c **** uint16_t num = 0, num1 = 0;
  288. 237 .loc 1 47 14
  289. 238 0012 0023 movs r3, #0
  290. 239 0014 FB81 strh r3, [r7, #14] @ movhi
  291. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 6
  292. 240 .loc 1 47 23
  293. 241 0016 0023 movs r3, #0
  294. 242 0018 BB81 strh r3, [r7, #12] @ movhi
  295. 48:user_src/common.c **** uint16_t tmp = 0;
  296. 243 .loc 1 48 14
  297. 244 001a 0023 movs r3, #0
  298. 245 001c 7B81 strh r3, [r7, #10] @ movhi
  299. 49:user_src/common.c **** for ( num = length - 1; num >= 1; num-- )
  300. 246 .loc 1 49 15
  301. 247 001e 7B88 ldrh r3, [r7, #2] @ movhi
  302. 248 0020 013B subs r3, r3, #1
  303. 249 0022 FB81 strh r3, [r7, #14] @ movhi
  304. 250 .loc 1 49 5
  305. 251 0024 31E0 b .L13
  306. 252 .L17:
  307. 50:user_src/common.c **** {
  308. 51:user_src/common.c **** for ( num1 = 0; num1 <= num - 1; num1++ )
  309. 253 .loc 1 51 20
  310. 254 0026 0023 movs r3, #0
  311. 255 0028 BB81 strh r3, [r7, #12] @ movhi
  312. 256 .loc 1 51 9
  313. 257 002a 27E0 b .L14
  314. 258 .L16:
  315. 52:user_src/common.c **** {
  316. 53:user_src/common.c **** if ( *( arr + num1 ) > *( arr + num1 + 1 ) )
  317. 259 .loc 1 53 25
  318. 260 002c BB89 ldrh r3, [r7, #12]
  319. 261 002e 5B00 lsls r3, r3, #1
  320. 262 0030 7A68 ldr r2, [r7, #4]
  321. 263 0032 1344 add r3, r3, r2
  322. 264 .loc 1 53 18
  323. 265 0034 1A88 ldrh r2, [r3]
  324. 266 .loc 1 53 50
  325. 267 0036 BB89 ldrh r3, [r7, #12]
  326. 268 0038 0133 adds r3, r3, #1
  327. 269 003a 5B00 lsls r3, r3, #1
  328. 270 003c 7968 ldr r1, [r7, #4]
  329. 271 003e 0B44 add r3, r3, r1
  330. 272 .loc 1 53 36
  331. 273 0040 1B88 ldrh r3, [r3]
  332. 274 .loc 1 53 16
  333. 275 0042 9A42 cmp r2, r3
  334. 276 0044 17D9 bls .L15
  335. 54:user_src/common.c **** {
  336. 55:user_src/common.c **** tmp = *( arr + num1 );
  337. 277 .loc 1 55 30
  338. 278 0046 BB89 ldrh r3, [r7, #12]
  339. 279 0048 5B00 lsls r3, r3, #1
  340. 280 004a 7A68 ldr r2, [r7, #4]
  341. 281 004c 1344 add r3, r3, r2
  342. 282 .loc 1 55 21
  343. 283 004e 1B88 ldrh r3, [r3] @ movhi
  344. 284 0050 7B81 strh r3, [r7, #10] @ movhi
  345. 56:user_src/common.c **** *( arr + num1 ) = *( arr + num1 + 1 );
  346. 285 .loc 1 56 49
  347. 286 0052 BB89 ldrh r3, [r7, #12]
  348. 287 0054 0133 adds r3, r3, #1
  349. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 7
  350. 288 0056 5B00 lsls r3, r3, #1
  351. 289 0058 7A68 ldr r2, [r7, #4]
  352. 290 005a 1A44 add r2, r2, r3
  353. 291 .loc 1 56 24
  354. 292 005c BB89 ldrh r3, [r7, #12]
  355. 293 005e 5B00 lsls r3, r3, #1
  356. 294 0060 7968 ldr r1, [r7, #4]
  357. 295 0062 0B44 add r3, r3, r1
  358. 296 .loc 1 56 35
  359. 297 0064 1288 ldrh r2, [r2]
  360. 298 .loc 1 56 33
  361. 299 0066 1A80 strh r2, [r3] @ movhi
  362. 57:user_src/common.c **** *( arr + num1 + 1 ) = tmp;
  363. 300 .loc 1 57 31
  364. 301 0068 BB89 ldrh r3, [r7, #12]
  365. 302 006a 0133 adds r3, r3, #1
  366. 303 006c 5B00 lsls r3, r3, #1
  367. 304 006e 7A68 ldr r2, [r7, #4]
  368. 305 0070 1344 add r3, r3, r2
  369. 306 .loc 1 57 37
  370. 307 0072 7A89 ldrh r2, [r7, #10] @ movhi
  371. 308 0074 1A80 strh r2, [r3] @ movhi
  372. 309 .L15:
  373. 51:user_src/common.c **** {
  374. 310 .loc 1 51 46 discriminator 2
  375. 311 0076 BB89 ldrh r3, [r7, #12]
  376. 312 0078 0133 adds r3, r3, #1
  377. 313 007a BB81 strh r3, [r7, #12] @ movhi
  378. 314 .L14:
  379. 51:user_src/common.c **** {
  380. 315 .loc 1 51 9 discriminator 1
  381. 316 007c FA89 ldrh r2, [r7, #14]
  382. 317 007e BB89 ldrh r3, [r7, #12]
  383. 318 0080 9A42 cmp r2, r3
  384. 319 0082 D3D8 bhi .L16
  385. 49:user_src/common.c **** {
  386. 320 .loc 1 49 42 discriminator 2
  387. 321 0084 FB89 ldrh r3, [r7, #14]
  388. 322 0086 013B subs r3, r3, #1
  389. 323 0088 FB81 strh r3, [r7, #14] @ movhi
  390. 324 .L13:
  391. 49:user_src/common.c **** {
  392. 325 .loc 1 49 5 discriminator 1
  393. 326 008a FB89 ldrh r3, [r7, #14]
  394. 327 008c 002B cmp r3, #0
  395. 328 008e CAD1 bne .L17
  396. 329 0090 00E0 b .L10
  397. 330 .L18:
  398. 45:user_src/common.c **** }
  399. 331 .loc 1 45 9
  400. 332 0092 00BF nop
  401. 333 .L10:
  402. 58:user_src/common.c **** }
  403. 59:user_src/common.c **** }
  404. 60:user_src/common.c **** }
  405. 61:user_src/common.c **** }
  406. 334 .loc 1 61 1
  407. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 8
  408. 335 0094 1437 adds r7, r7, #20
  409. 336 .LCFI14:
  410. 337 .cfi_def_cfa_offset 4
  411. 338 0096 BD46 mov sp, r7
  412. 339 .LCFI15:
  413. 340 .cfi_def_cfa_register 13
  414. 341 @ sp needed
  415. 342 0098 5DF8047B ldr r7, [sp], #4
  416. 343 .LCFI16:
  417. 344 .cfi_restore 7
  418. 345 .cfi_def_cfa_offset 0
  419. 346 009c 7047 bx lr
  420. 347 .cfi_endproc
  421. 348 .LFE132:
  422. 350 .section .text.mimomocib_buf_sort,"ax",%progbits
  423. 351 .align 1
  424. 352 .global mimomocib_buf_sort
  425. 353 .syntax unified
  426. 354 .thumb
  427. 355 .thumb_func
  428. 357 mimomocib_buf_sort:
  429. 358 .LFB133:
  430. 62:user_src/common.c ****
  431. 63:user_src/common.c **** /*****************************�曌&莫之比雷达排�************************/
  432. 64:user_src/common.c **** void mimomocib_buf_sort( mimo_part_radar *arr, uint16_t length )
  433. 65:user_src/common.c **** {
  434. 359 .loc 1 65 1
  435. 360 .cfi_startproc
  436. 361 @ args = 0, pretend = 0, frame = 24
  437. 362 @ frame_needed = 1, uses_anonymous_args = 0
  438. 363 @ link register save eliminated.
  439. 364 0000 80B4 push {r7}
  440. 365 .LCFI17:
  441. 366 .cfi_def_cfa_offset 4
  442. 367 .cfi_offset 7, -4
  443. 368 0002 87B0 sub sp, sp, #28
  444. 369 .LCFI18:
  445. 370 .cfi_def_cfa_offset 32
  446. 371 0004 00AF add r7, sp, #0
  447. 372 .LCFI19:
  448. 373 .cfi_def_cfa_register 7
  449. 374 0006 7860 str r0, [r7, #4]
  450. 375 0008 0B46 mov r3, r1
  451. 376 000a 7B80 strh r3, [r7, #2] @ movhi
  452. 66:user_src/common.c **** if ( length < 2 )
  453. 377 .loc 1 66 8
  454. 378 000c 7B88 ldrh r3, [r7, #2]
  455. 379 000e 012B cmp r3, #1
  456. 380 0010 57D9 bls .L27
  457. 67:user_src/common.c **** {
  458. 68:user_src/common.c **** return;
  459. 69:user_src/common.c **** }
  460. 70:user_src/common.c **** uint16_t num = 0, num1 = 0;
  461. 381 .loc 1 70 14
  462. 382 0012 0023 movs r3, #0
  463. 383 0014 FB82 strh r3, [r7, #22] @ movhi
  464. 384 .loc 1 70 23
  465. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 9
  466. 385 0016 0023 movs r3, #0
  467. 386 0018 BB82 strh r3, [r7, #20] @ movhi
  468. 71:user_src/common.c **** mimo_part_radar tmp;
  469. 72:user_src/common.c **** for ( num = length - 1; num >= 1; num-- )
  470. 387 .loc 1 72 15
  471. 388 001a 7B88 ldrh r3, [r7, #2] @ movhi
  472. 389 001c 013B subs r3, r3, #1
  473. 390 001e FB82 strh r3, [r7, #22] @ movhi
  474. 391 .loc 1 72 5
  475. 392 0020 4BE0 b .L22
  476. 393 .L26:
  477. 73:user_src/common.c **** {
  478. 74:user_src/common.c **** for ( num1 = 0; num1 <= num - 1; num1++ )
  479. 394 .loc 1 74 20
  480. 395 0022 0023 movs r3, #0
  481. 396 0024 BB82 strh r3, [r7, #20] @ movhi
  482. 397 .loc 1 74 9
  483. 398 0026 41E0 b .L23
  484. 399 .L25:
  485. 75:user_src/common.c **** {
  486. 76:user_src/common.c **** if ( ( ( arr + num1 )->Distance ) > ( ( arr + num1 + 1 )->Distance ) )
  487. 400 .loc 1 76 26
  488. 401 0028 BB8A ldrh r3, [r7, #20]
  489. 402 002a DB00 lsls r3, r3, #3
  490. 403 002c 7A68 ldr r2, [r7, #4]
  491. 404 002e 1344 add r3, r3, r2
  492. 405 .loc 1 76 34
  493. 406 0030 DA78 ldrb r2, [r3, #3] @ zero_extendqisi2
  494. 407 0032 1209 lsrs r2, r2, #4
  495. 408 0034 D2B2 uxtb r2, r2
  496. 409 0036 1B79 ldrb r3, [r3, #4] @ zero_extendqisi2
  497. 410 0038 1B01 lsls r3, r3, #4
  498. 411 003a 1343 orrs r3, r3, r2
  499. 412 003c 1B05 lsls r3, r3, #20
  500. 413 003e 1B15 asrs r3, r3, #20
  501. 414 0040 1AB2 sxth r2, r3
  502. 415 .loc 1 76 64
  503. 416 0042 BB8A ldrh r3, [r7, #20]
  504. 417 0044 0133 adds r3, r3, #1
  505. 418 0046 DB00 lsls r3, r3, #3
  506. 419 0048 7968 ldr r1, [r7, #4]
  507. 420 004a 0B44 add r3, r3, r1
  508. 421 .loc 1 76 69
  509. 422 004c D978 ldrb r1, [r3, #3] @ zero_extendqisi2
  510. 423 004e 0909 lsrs r1, r1, #4
  511. 424 0050 C9B2 uxtb r1, r1
  512. 425 0052 1B79 ldrb r3, [r3, #4] @ zero_extendqisi2
  513. 426 0054 1B01 lsls r3, r3, #4
  514. 427 0056 0B43 orrs r3, r3, r1
  515. 428 0058 1B05 lsls r3, r3, #20
  516. 429 005a 1B15 asrs r3, r3, #20
  517. 430 005c 1BB2 sxth r3, r3
  518. 431 .loc 1 76 16
  519. 432 005e 9A42 cmp r2, r3
  520. 433 0060 21DD ble .L24
  521. 77:user_src/common.c **** {
  522. 78:user_src/common.c **** tmp = *( arr + num1 );
  523. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 10
  524. 434 .loc 1 78 30
  525. 435 0062 BB8A ldrh r3, [r7, #20]
  526. 436 0064 DB00 lsls r3, r3, #3
  527. 437 0066 7A68 ldr r2, [r7, #4]
  528. 438 0068 1A44 add r2, r2, r3
  529. 439 .loc 1 78 21
  530. 440 006a 07F10C03 add r3, r7, #12
  531. 441 006e 1068 ldr r0, [r2] @ unaligned
  532. 442 0070 5168 ldr r1, [r2, #4] @ unaligned
  533. 443 0072 03C3 stmia r3!, {r0, r1}
  534. 79:user_src/common.c **** *( arr + num1 ) = *( arr + num1 + 1 );
  535. 444 .loc 1 79 49
  536. 445 0074 BB8A ldrh r3, [r7, #20]
  537. 446 0076 0133 adds r3, r3, #1
  538. 447 0078 DB00 lsls r3, r3, #3
  539. 448 007a 7A68 ldr r2, [r7, #4]
  540. 449 007c D118 adds r1, r2, r3
  541. 450 .loc 1 79 24
  542. 451 007e BB8A ldrh r3, [r7, #20]
  543. 452 0080 DB00 lsls r3, r3, #3
  544. 453 0082 7A68 ldr r2, [r7, #4]
  545. 454 0084 1344 add r3, r3, r2
  546. 455 .loc 1 79 33
  547. 456 0086 0A46 mov r2, r1
  548. 457 0088 1168 ldr r1, [r2] @ unaligned
  549. 458 008a 5268 ldr r2, [r2, #4] @ unaligned
  550. 459 008c 1960 str r1, [r3] @ unaligned
  551. 460 008e 5A60 str r2, [r3, #4] @ unaligned
  552. 80:user_src/common.c **** *( arr + num1 + 1 ) = tmp;
  553. 461 .loc 1 80 31
  554. 462 0090 BB8A ldrh r3, [r7, #20]
  555. 463 0092 0133 adds r3, r3, #1
  556. 464 0094 DB00 lsls r3, r3, #3
  557. 465 0096 7A68 ldr r2, [r7, #4]
  558. 466 0098 1344 add r3, r3, r2
  559. 467 .loc 1 80 37
  560. 468 009a 1A46 mov r2, r3
  561. 469 009c 07F10C03 add r3, r7, #12
  562. 470 00a0 03CB ldmia r3!, {r0, r1}
  563. 471 00a2 1060 str r0, [r2] @ unaligned
  564. 472 00a4 5160 str r1, [r2, #4] @ unaligned
  565. 473 .L24:
  566. 74:user_src/common.c **** {
  567. 474 .loc 1 74 46 discriminator 2
  568. 475 00a6 BB8A ldrh r3, [r7, #20]
  569. 476 00a8 0133 adds r3, r3, #1
  570. 477 00aa BB82 strh r3, [r7, #20] @ movhi
  571. 478 .L23:
  572. 74:user_src/common.c **** {
  573. 479 .loc 1 74 9 discriminator 1
  574. 480 00ac FA8A ldrh r2, [r7, #22]
  575. 481 00ae BB8A ldrh r3, [r7, #20]
  576. 482 00b0 9A42 cmp r2, r3
  577. 483 00b2 B9D8 bhi .L25
  578. 72:user_src/common.c **** {
  579. 484 .loc 1 72 42 discriminator 2
  580. 485 00b4 FB8A ldrh r3, [r7, #22]
  581. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 11
  582. 486 00b6 013B subs r3, r3, #1
  583. 487 00b8 FB82 strh r3, [r7, #22] @ movhi
  584. 488 .L22:
  585. 72:user_src/common.c **** {
  586. 489 .loc 1 72 5 discriminator 1
  587. 490 00ba FB8A ldrh r3, [r7, #22]
  588. 491 00bc 002B cmp r3, #0
  589. 492 00be B0D1 bne .L26
  590. 493 00c0 00E0 b .L19
  591. 494 .L27:
  592. 68:user_src/common.c **** }
  593. 495 .loc 1 68 9
  594. 496 00c2 00BF nop
  595. 497 .L19:
  596. 81:user_src/common.c **** }
  597. 82:user_src/common.c **** }
  598. 83:user_src/common.c **** }
  599. 84:user_src/common.c **** }
  600. 498 .loc 1 84 1
  601. 499 00c4 1C37 adds r7, r7, #28
  602. 500 .LCFI20:
  603. 501 .cfi_def_cfa_offset 4
  604. 502 00c6 BD46 mov sp, r7
  605. 503 .LCFI21:
  606. 504 .cfi_def_cfa_register 13
  607. 505 @ sp needed
  608. 506 00c8 5DF8047B ldr r7, [sp], #4
  609. 507 .LCFI22:
  610. 508 .cfi_restore 7
  611. 509 .cfi_def_cfa_offset 0
  612. 510 00cc 7047 bx lr
  613. 511 .cfi_endproc
  614. 512 .LFE133:
  615. 514 .section .text.short2buf,"ax",%progbits
  616. 515 .align 1
  617. 516 .global short2buf
  618. 517 .syntax unified
  619. 518 .thumb
  620. 519 .thumb_func
  621. 521 short2buf:
  622. 522 .LFB134:
  623. 85:user_src/common.c ****
  624. 86:user_src/common.c **** /****************************short 类型放到buf中***************/
  625. 87:user_src/common.c **** void short2buf( unsigned char *buf, short *tshort )
  626. 88:user_src/common.c **** {
  627. 523 .loc 1 88 1
  628. 524 .cfi_startproc
  629. 525 @ args = 0, pretend = 0, frame = 24
  630. 526 @ frame_needed = 1, uses_anonymous_args = 0
  631. 527 @ link register save eliminated.
  632. 528 0000 80B4 push {r7}
  633. 529 .LCFI23:
  634. 530 .cfi_def_cfa_offset 4
  635. 531 .cfi_offset 7, -4
  636. 532 0002 87B0 sub sp, sp, #28
  637. 533 .LCFI24:
  638. 534 .cfi_def_cfa_offset 32
  639. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 12
  640. 535 0004 00AF add r7, sp, #0
  641. 536 .LCFI25:
  642. 537 .cfi_def_cfa_register 7
  643. 538 0006 7860 str r0, [r7, #4]
  644. 539 0008 3960 str r1, [r7]
  645. 89:user_src/common.c **** int i;
  646. 90:user_src/common.c **** unsigned char *p1 = ( unsigned char * )tshort;
  647. 540 .loc 1 90 20
  648. 541 000a 3B68 ldr r3, [r7]
  649. 542 000c 3B61 str r3, [r7, #16]
  650. 91:user_src/common.c **** unsigned char *p3 = buf;
  651. 543 .loc 1 91 20
  652. 544 000e 7B68 ldr r3, [r7, #4]
  653. 545 0010 FB60 str r3, [r7, #12]
  654. 92:user_src/common.c **** for ( i = 0; i < 2; i++ )
  655. 546 .loc 1 92 13
  656. 547 0012 0023 movs r3, #0
  657. 548 0014 7B61 str r3, [r7, #20]
  658. 549 .loc 1 92 5
  659. 550 0016 0CE0 b .L29
  660. 551 .L30:
  661. 93:user_src/common.c **** {
  662. 94:user_src/common.c **** *p3 = *p1;
  663. 552 .loc 1 94 15 discriminator 3
  664. 553 0018 3B69 ldr r3, [r7, #16]
  665. 554 001a 1A78 ldrb r2, [r3] @ zero_extendqisi2
  666. 555 .loc 1 94 13 discriminator 3
  667. 556 001c FB68 ldr r3, [r7, #12]
  668. 557 001e 1A70 strb r2, [r3]
  669. 95:user_src/common.c **** p1++;
  670. 558 .loc 1 95 11 discriminator 3
  671. 559 0020 3B69 ldr r3, [r7, #16]
  672. 560 0022 0133 adds r3, r3, #1
  673. 561 0024 3B61 str r3, [r7, #16]
  674. 96:user_src/common.c **** p3++;
  675. 562 .loc 1 96 11 discriminator 3
  676. 563 0026 FB68 ldr r3, [r7, #12]
  677. 564 0028 0133 adds r3, r3, #1
  678. 565 002a FB60 str r3, [r7, #12]
  679. 92:user_src/common.c **** {
  680. 566 .loc 1 92 26 discriminator 3
  681. 567 002c 7B69 ldr r3, [r7, #20]
  682. 568 002e 0133 adds r3, r3, #1
  683. 569 0030 7B61 str r3, [r7, #20]
  684. 570 .L29:
  685. 92:user_src/common.c **** {
  686. 571 .loc 1 92 5 discriminator 1
  687. 572 0032 7B69 ldr r3, [r7, #20]
  688. 573 0034 012B cmp r3, #1
  689. 574 0036 EFDD ble .L30
  690. 97:user_src/common.c **** }
  691. 98:user_src/common.c **** }
  692. 575 .loc 1 98 1
  693. 576 0038 00BF nop
  694. 577 003a 00BF nop
  695. 578 003c 1C37 adds r7, r7, #28
  696. 579 .LCFI26:
  697. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 13
  698. 580 .cfi_def_cfa_offset 4
  699. 581 003e BD46 mov sp, r7
  700. 582 .LCFI27:
  701. 583 .cfi_def_cfa_register 13
  702. 584 @ sp needed
  703. 585 0040 5DF8047B ldr r7, [sp], #4
  704. 586 .LCFI28:
  705. 587 .cfi_restore 7
  706. 588 .cfi_def_cfa_offset 0
  707. 589 0044 7047 bx lr
  708. 590 .cfi_endproc
  709. 591 .LFE134:
  710. 593 .section .text.char_to_hex_string,"ax",%progbits
  711. 594 .align 1
  712. 595 .global char_to_hex_string
  713. 596 .syntax unified
  714. 597 .thumb
  715. 598 .thumb_func
  716. 600 char_to_hex_string:
  717. 601 .LFB135:
  718. 99:user_src/common.c ****
  719. 100:user_src/common.c **** /*
  720. 101:user_src/common.c **** int转hex转string
  721. 102:user_src/common.c **** */
  722. 103:user_src/common.c **** void char_to_hex_string( unsigned char *cdata, short lenc, char *sbuf, short lens, char *ES )
  723. 104:user_src/common.c **** {
  724. 602 .loc 1 104 1
  725. 603 .cfi_startproc
  726. 604 @ args = 4, pretend = 0, frame = 32
  727. 605 @ frame_needed = 1, uses_anonymous_args = 0
  728. 606 @ link register save eliminated.
  729. 607 0000 80B4 push {r7}
  730. 608 .LCFI29:
  731. 609 .cfi_def_cfa_offset 4
  732. 610 .cfi_offset 7, -4
  733. 611 0002 89B0 sub sp, sp, #36
  734. 612 .LCFI30:
  735. 613 .cfi_def_cfa_offset 40
  736. 614 0004 00AF add r7, sp, #0
  737. 615 .LCFI31:
  738. 616 .cfi_def_cfa_register 7
  739. 617 0006 F860 str r0, [r7, #12]
  740. 618 0008 7A60 str r2, [r7, #4]
  741. 619 000a 1A46 mov r2, r3
  742. 620 000c 0B46 mov r3, r1 @ movhi
  743. 621 000e 7B81 strh r3, [r7, #10] @ movhi
  744. 622 0010 1346 mov r3, r2 @ movhi
  745. 623 0012 3B81 strh r3, [r7, #8] @ movhi
  746. 105:user_src/common.c **** short tmp_lens = lens;
  747. 624 .loc 1 105 11
  748. 625 0014 3B89 ldrh r3, [r7, #8] @ movhi
  749. 626 0016 FB83 strh r3, [r7, #30] @ movhi
  750. 627 .LBB3:
  751. 106:user_src/common.c ****
  752. 107:user_src/common.c **** for ( int i = 0 ; i < lenc && tmp_lens >= 2 ; i++ )
  753. 628 .loc 1 107 15
  754. 629 0018 0023 movs r3, #0
  755. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 14
  756. 630 001a BB61 str r3, [r7, #24]
  757. 631 .loc 1 107 5
  758. 632 001c 53E0 b .L32
  759. 633 .L38:
  760. 634 .LBB4:
  761. 108:user_src/common.c **** {
  762. 109:user_src/common.c **** char hight = ( cdata[i] >> 4 ) & 0x0f;
  763. 635 .loc 1 109 29
  764. 636 001e BB69 ldr r3, [r7, #24]
  765. 637 0020 FA68 ldr r2, [r7, #12]
  766. 638 0022 1344 add r3, r3, r2
  767. 639 0024 1B78 ldrb r3, [r3] @ zero_extendqisi2
  768. 640 .loc 1 109 14
  769. 641 0026 1B09 lsrs r3, r3, #4
  770. 642 0028 FB74 strb r3, [r7, #19]
  771. 110:user_src/common.c **** char low = cdata[i] & 0x0f;
  772. 643 .loc 1 110 25
  773. 644 002a BB69 ldr r3, [r7, #24]
  774. 645 002c FA68 ldr r2, [r7, #12]
  775. 646 002e 1344 add r3, r3, r2
  776. 647 .loc 1 110 29
  777. 648 0030 1B78 ldrb r3, [r3] @ zero_extendqisi2
  778. 649 .loc 1 110 14
  779. 650 0032 03F00F03 and r3, r3, #15
  780. 651 0036 BB74 strb r3, [r7, #18]
  781. 111:user_src/common.c ****
  782. 112:user_src/common.c **** if ( hight > 9 )
  783. 652 .loc 1 112 12
  784. 653 0038 FB7C ldrb r3, [r7, #19] @ zero_extendqisi2
  785. 654 003a 092B cmp r3, #9
  786. 655 003c 0CD9 bls .L33
  787. 113:user_src/common.c **** sbuf[lens - tmp_lens] = 'A' + hight - 10;
  788. 656 .loc 1 113 23
  789. 657 003e B7F90820 ldrsh r2, [r7, #8]
  790. 658 0042 B7F91E30 ldrsh r3, [r7, #30]
  791. 659 0046 D31A subs r3, r2, r3
  792. 660 0048 1A46 mov r2, r3
  793. 661 .loc 1 113 17
  794. 662 004a 7B68 ldr r3, [r7, #4]
  795. 663 004c 1344 add r3, r3, r2
  796. 664 .loc 1 113 49
  797. 665 004e FA7C ldrb r2, [r7, #19]
  798. 666 0050 3732 adds r2, r2, #55
  799. 667 0052 D2B2 uxtb r2, r2
  800. 668 .loc 1 113 35
  801. 669 0054 1A70 strb r2, [r3]
  802. 670 0056 0BE0 b .L34
  803. 671 .L33:
  804. 114:user_src/common.c **** else
  805. 115:user_src/common.c **** sbuf[lens - tmp_lens] = '0' + hight;
  806. 672 .loc 1 115 23
  807. 673 0058 B7F90820 ldrsh r2, [r7, #8]
  808. 674 005c B7F91E30 ldrsh r3, [r7, #30]
  809. 675 0060 D31A subs r3, r2, r3
  810. 676 0062 1A46 mov r2, r3
  811. 677 .loc 1 115 17
  812. 678 0064 7B68 ldr r3, [r7, #4]
  813. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 15
  814. 679 0066 1344 add r3, r3, r2
  815. 680 .loc 1 115 41
  816. 681 0068 FA7C ldrb r2, [r7, #19]
  817. 682 006a 3032 adds r2, r2, #48
  818. 683 006c D2B2 uxtb r2, r2
  819. 684 .loc 1 115 35
  820. 685 006e 1A70 strb r2, [r3]
  821. 686 .L34:
  822. 116:user_src/common.c **** tmp_lens--;
  823. 687 .loc 1 116 17
  824. 688 0070 B7F91E30 ldrsh r3, [r7, #30]
  825. 689 0074 9BB2 uxth r3, r3
  826. 690 0076 013B subs r3, r3, #1
  827. 691 0078 9BB2 uxth r3, r3
  828. 692 007a FB83 strh r3, [r7, #30] @ movhi
  829. 117:user_src/common.c ****
  830. 118:user_src/common.c **** if ( low > 9 )
  831. 693 .loc 1 118 12
  832. 694 007c BB7C ldrb r3, [r7, #18] @ zero_extendqisi2
  833. 695 007e 092B cmp r3, #9
  834. 696 0080 0CD9 bls .L35
  835. 119:user_src/common.c **** sbuf[lens - tmp_lens] = 'A' + low - 10;
  836. 697 .loc 1 119 23
  837. 698 0082 B7F90820 ldrsh r2, [r7, #8]
  838. 699 0086 B7F91E30 ldrsh r3, [r7, #30]
  839. 700 008a D31A subs r3, r2, r3
  840. 701 008c 1A46 mov r2, r3
  841. 702 .loc 1 119 17
  842. 703 008e 7B68 ldr r3, [r7, #4]
  843. 704 0090 1344 add r3, r3, r2
  844. 705 .loc 1 119 47
  845. 706 0092 BA7C ldrb r2, [r7, #18]
  846. 707 0094 3732 adds r2, r2, #55
  847. 708 0096 D2B2 uxtb r2, r2
  848. 709 .loc 1 119 35
  849. 710 0098 1A70 strb r2, [r3]
  850. 711 009a 0BE0 b .L36
  851. 712 .L35:
  852. 120:user_src/common.c **** else
  853. 121:user_src/common.c **** sbuf[lens - tmp_lens] = '0' + low;
  854. 713 .loc 1 121 23
  855. 714 009c B7F90820 ldrsh r2, [r7, #8]
  856. 715 00a0 B7F91E30 ldrsh r3, [r7, #30]
  857. 716 00a4 D31A subs r3, r2, r3
  858. 717 00a6 1A46 mov r2, r3
  859. 718 .loc 1 121 17
  860. 719 00a8 7B68 ldr r3, [r7, #4]
  861. 720 00aa 1344 add r3, r3, r2
  862. 721 .loc 1 121 41
  863. 722 00ac BA7C ldrb r2, [r7, #18]
  864. 723 00ae 3032 adds r2, r2, #48
  865. 724 00b0 D2B2 uxtb r2, r2
  866. 725 .loc 1 121 35
  867. 726 00b2 1A70 strb r2, [r3]
  868. 727 .L36:
  869. 122:user_src/common.c **** tmp_lens--;
  870. 728 .loc 1 122 17 discriminator 2
  871. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 16
  872. 729 00b4 B7F91E30 ldrsh r3, [r7, #30]
  873. 730 00b8 9BB2 uxth r3, r3
  874. 731 00ba 013B subs r3, r3, #1
  875. 732 00bc 9BB2 uxth r3, r3
  876. 733 00be FB83 strh r3, [r7, #30] @ movhi
  877. 734 .LBE4:
  878. 107:user_src/common.c **** {
  879. 735 .loc 1 107 53 discriminator 2
  880. 736 00c0 BB69 ldr r3, [r7, #24]
  881. 737 00c2 0133 adds r3, r3, #1
  882. 738 00c4 BB61 str r3, [r7, #24]
  883. 739 .L32:
  884. 107:user_src/common.c **** {
  885. 740 .loc 1 107 25 discriminator 1
  886. 741 00c6 B7F90A30 ldrsh r3, [r7, #10]
  887. 107:user_src/common.c **** {
  888. 742 .loc 1 107 5 discriminator 1
  889. 743 00ca BA69 ldr r2, [r7, #24]
  890. 744 00cc 9A42 cmp r2, r3
  891. 745 00ce 03DA bge .L37
  892. 107:user_src/common.c **** {
  893. 746 .loc 1 107 33 discriminator 3
  894. 747 00d0 B7F91E30 ldrsh r3, [r7, #30]
  895. 748 00d4 012B cmp r3, #1
  896. 749 00d6 A2DC bgt .L38
  897. 750 .L37:
  898. 751 .LBE3:
  899. 123:user_src/common.c **** }
  900. 124:user_src/common.c ****
  901. 125:user_src/common.c **** int i = 0;
  902. 752 .loc 1 125 9
  903. 753 00d8 0023 movs r3, #0
  904. 754 00da 7B61 str r3, [r7, #20]
  905. 126:user_src/common.c **** //尾缀
  906. 127:user_src/common.c **** for ( ; tmp_lens > 0 ; tmp_lens-- )
  907. 755 .loc 1 127 5
  908. 756 00dc 1BE0 b .L39
  909. 757 .L43:
  910. 128:user_src/common.c **** {
  911. 129:user_src/common.c **** if ( *( ES + i ) != '\0' )
  912. 758 .loc 1 129 20
  913. 759 00de 7B69 ldr r3, [r7, #20]
  914. 760 00e0 BA6A ldr r2, [r7, #40]
  915. 761 00e2 1344 add r3, r3, r2
  916. 762 .loc 1 129 14
  917. 763 00e4 1B78 ldrb r3, [r3] @ zero_extendqisi2
  918. 764 .loc 1 129 12
  919. 765 00e6 002B cmp r3, #0
  920. 766 00e8 1AD0 beq .L44
  921. 130:user_src/common.c **** {
  922. 131:user_src/common.c **** sbuf[lens - tmp_lens] = *( ES + i );
  923. 767 .loc 1 131 43
  924. 768 00ea 7B69 ldr r3, [r7, #20]
  925. 769 00ec BA6A ldr r2, [r7, #40]
  926. 770 00ee 1A44 add r2, r2, r3
  927. 771 .loc 1 131 23
  928. 772 00f0 B7F90810 ldrsh r1, [r7, #8]
  929. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 17
  930. 773 00f4 B7F91E30 ldrsh r3, [r7, #30]
  931. 774 00f8 CB1A subs r3, r1, r3
  932. 775 00fa 1946 mov r1, r3
  933. 776 .loc 1 131 17
  934. 777 00fc 7B68 ldr r3, [r7, #4]
  935. 778 00fe 0B44 add r3, r3, r1
  936. 779 .loc 1 131 37
  937. 780 0100 1278 ldrb r2, [r2] @ zero_extendqisi2
  938. 781 .loc 1 131 35
  939. 782 0102 1A70 strb r2, [r3]
  940. 132:user_src/common.c **** }
  941. 133:user_src/common.c **** else
  942. 134:user_src/common.c **** {
  943. 135:user_src/common.c **** break;
  944. 136:user_src/common.c **** }
  945. 137:user_src/common.c **** i++;
  946. 783 .loc 1 137 10
  947. 784 0104 7B69 ldr r3, [r7, #20]
  948. 785 0106 0133 adds r3, r3, #1
  949. 786 0108 7B61 str r3, [r7, #20]
  950. 127:user_src/common.c **** {
  951. 787 .loc 1 127 36
  952. 788 010a B7F91E30 ldrsh r3, [r7, #30]
  953. 789 010e 9BB2 uxth r3, r3
  954. 790 0110 013B subs r3, r3, #1
  955. 791 0112 9BB2 uxth r3, r3
  956. 792 0114 FB83 strh r3, [r7, #30] @ movhi
  957. 793 .L39:
  958. 127:user_src/common.c **** {
  959. 794 .loc 1 127 5 discriminator 1
  960. 795 0116 B7F91E30 ldrsh r3, [r7, #30]
  961. 796 011a 002B cmp r3, #0
  962. 797 011c DFDC bgt .L43
  963. 138:user_src/common.c **** }
  964. 139:user_src/common.c **** }
  965. 798 .loc 1 139 1
  966. 799 011e 00E0 b .L45
  967. 800 .L44:
  968. 135:user_src/common.c **** }
  969. 801 .loc 1 135 13
  970. 802 0120 00BF nop
  971. 803 .L45:
  972. 804 .loc 1 139 1
  973. 805 0122 00BF nop
  974. 806 0124 2437 adds r7, r7, #36
  975. 807 .LCFI32:
  976. 808 .cfi_def_cfa_offset 4
  977. 809 0126 BD46 mov sp, r7
  978. 810 .LCFI33:
  979. 811 .cfi_def_cfa_register 13
  980. 812 @ sp needed
  981. 813 0128 5DF8047B ldr r7, [sp], #4
  982. 814 .LCFI34:
  983. 815 .cfi_restore 7
  984. 816 .cfi_def_cfa_offset 0
  985. 817 012c 7047 bx lr
  986. 818 .cfi_endproc
  987. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 18
  988. 819 .LFE135:
  989. 821 .section .rodata
  990. 822 .align 2
  991. 823 .LC0:
  992. 824 0000 30313233 .ascii "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\000"
  993. 824 34353637
  994. 824 38394142
  995. 824 43444546
  996. 824 4748494A
  997. 825 .section .text.itoa,"ax",%progbits
  998. 826 .align 1
  999. 827 .global itoa
  1000. 828 .syntax unified
  1001. 829 .thumb
  1002. 830 .thumb_func
  1003. 832 itoa:
  1004. 833 .LFB136:
  1005. 140:user_src/common.c ****
  1006. 141:user_src/common.c ****
  1007. 142:user_src/common.c ****
  1008. 143:user_src/common.c **** /*
  1009. 144:user_src/common.c **** @brief:
  1010. 145:user_src/common.c **** num: 整型数值
  1011. 146:user_src/common.c **** str: 字符串地�
  1012. 147:user_src/common.c **** radix:进制
  1013. 148:user_src/common.c **** */
  1014. 149:user_src/common.c **** char* itoa( int num, char* str, int radix )
  1015. 150:user_src/common.c **** {
  1016. 834 .loc 1 150 1
  1017. 835 .cfi_startproc
  1018. 836 @ args = 0, pretend = 0, frame = 72
  1019. 837 @ frame_needed = 1, uses_anonymous_args = 0
  1020. 838 @ link register save eliminated.
  1021. 839 0000 B0B4 push {r4, r5, r7}
  1022. 840 .LCFI35:
  1023. 841 .cfi_def_cfa_offset 12
  1024. 842 .cfi_offset 4, -12
  1025. 843 .cfi_offset 5, -8
  1026. 844 .cfi_offset 7, -4
  1027. 845 0002 93B0 sub sp, sp, #76
  1028. 846 .LCFI36:
  1029. 847 .cfi_def_cfa_offset 88
  1030. 848 0004 00AF add r7, sp, #0
  1031. 849 .LCFI37:
  1032. 850 .cfi_def_cfa_register 7
  1033. 851 0006 F860 str r0, [r7, #12]
  1034. 852 0008 B960 str r1, [r7, #8]
  1035. 853 000a 7A60 str r2, [r7, #4]
  1036. 151:user_src/common.c **** char index[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; //索引表
  1037. 854 .loc 1 151 10
  1038. 855 000c 3F4B ldr r3, .L55
  1039. 856 000e 07F11004 add r4, r7, #16
  1040. 857 0012 1D46 mov r5, r3
  1041. 858 0014 0FCD ldmia r5!, {r0, r1, r2, r3}
  1042. 859 0016 0FC4 stmia r4!, {r0, r1, r2, r3}
  1043. 860 0018 0FCD ldmia r5!, {r0, r1, r2, r3}
  1044. 861 001a 0FC4 stmia r4!, {r0, r1, r2, r3}
  1045. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 19
  1046. 862 001c 95E80300 ldm r5, {r0, r1}
  1047. 863 0020 2060 str r0, [r4]
  1048. 864 0022 0434 adds r4, r4, #4
  1049. 865 0024 2170 strb r1, [r4]
  1050. 152:user_src/common.c **** unsigned unum;//存放�转�的整数的�对值,转�的整数�能是负数
  1051. 153:user_src/common.c **** int i = 0, j, k; //i用æ�¥æŒ‡ç¤ºè®¾ç½®å­—符串相应ä½�,转æ�¢ä¹‹å�Ži其实就是字符串çš
  1052. 866 .loc 1 153 9
  1053. 867 0026 0023 movs r3, #0
  1054. 868 0028 3B64 str r3, [r7, #64]
  1055. 154:user_src/common.c ****
  1056. 155:user_src/common.c **** //获��转�的整数的�对值
  1057. 156:user_src/common.c **** if ( radix == 10 && num < 0 ) //�转���进制数并且是负数
  1058. 869 .loc 1 156 8
  1059. 870 002a 7B68 ldr r3, [r7, #4]
  1060. 871 002c 0A2B cmp r3, #10
  1061. 872 002e 0ED1 bne .L47
  1062. 873 .loc 1 156 22 discriminator 1
  1063. 874 0030 FB68 ldr r3, [r7, #12]
  1064. 875 0032 002B cmp r3, #0
  1065. 876 0034 0BDA bge .L47
  1066. 157:user_src/common.c **** {
  1067. 158:user_src/common.c **** unum = ( unsigned ) - num; //将num的�对值赋给unum
  1068. 877 .loc 1 158 29
  1069. 878 0036 FB68 ldr r3, [r7, #12]
  1070. 879 0038 5B42 rsbs r3, r3, #0
  1071. 880 .loc 1 158 14
  1072. 881 003a 7B64 str r3, [r7, #68]
  1073. 159:user_src/common.c **** str[i++] = '-'; //在字符串最��设置为'-'�,并且索引加1
  1074. 882 .loc 1 159 14
  1075. 883 003c 3B6C ldr r3, [r7, #64]
  1076. 884 003e 5A1C adds r2, r3, #1
  1077. 885 0040 3A64 str r2, [r7, #64]
  1078. 886 0042 1A46 mov r2, r3
  1079. 887 .loc 1 159 12
  1080. 888 0044 BB68 ldr r3, [r7, #8]
  1081. 889 0046 1344 add r3, r3, r2
  1082. 890 .loc 1 159 18
  1083. 891 0048 2D22 movs r2, #45
  1084. 892 004a 1A70 strb r2, [r3]
  1085. 893 004c 01E0 b .L49
  1086. 894 .L47:
  1087. 160:user_src/common.c **** }
  1088. 161:user_src/common.c **** else unum = ( unsigned )num; //若是num为正,直接赋值给unum
  1089. 895 .loc 1 161 15
  1090. 896 004e FB68 ldr r3, [r7, #12]
  1091. 897 0050 7B64 str r3, [r7, #68]
  1092. 898 .L49:
  1093. 162:user_src/common.c ****
  1094. 163:user_src/common.c **** //转�部分,注�转��是逆�的
  1095. 164:user_src/common.c **** do
  1096. 165:user_src/common.c **** {
  1097. 166:user_src/common.c **** str[i++] = index[unum % ( unsigned )radix]; //å�–unum的最å�Žä¸€ä½�,并设置为str对åº
  1098. 899 .loc 1 166 33 discriminator 1
  1099. 900 0052 7A68 ldr r2, [r7, #4]
  1100. 901 .loc 1 166 31 discriminator 1
  1101. 902 0054 7B6C ldr r3, [r7, #68]
  1102. 903 0056 B3FBF2F1 udiv r1, r3, r2
  1103. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 20
  1104. 904 005a 01FB02F2 mul r2, r1, r2
  1105. 905 005e 9A1A subs r2, r3, r2
  1106. 906 .loc 1 166 14 discriminator 1
  1107. 907 0060 3B6C ldr r3, [r7, #64]
  1108. 908 0062 591C adds r1, r3, #1
  1109. 909 0064 3964 str r1, [r7, #64]
  1110. 910 0066 1946 mov r1, r3
  1111. 911 .loc 1 166 12 discriminator 1
  1112. 912 0068 BB68 ldr r3, [r7, #8]
  1113. 913 006a 0B44 add r3, r3, r1
  1114. 914 .loc 1 166 25 discriminator 1
  1115. 915 006c 4832 adds r2, r2, #72
  1116. 916 006e 3A44 add r2, r2, r7
  1117. 917 0070 12F8382C ldrb r2, [r2, #-56] @ zero_extendqisi2
  1118. 918 .loc 1 166 18 discriminator 1
  1119. 919 0074 1A70 strb r2, [r3]
  1120. 167:user_src/common.c **** unum /= radix; //unum去掉最�一�
  1121. 920 .loc 1 167 14 discriminator 1
  1122. 921 0076 7B68 ldr r3, [r7, #4]
  1123. 922 0078 7A6C ldr r2, [r7, #68]
  1124. 923 007a B2FBF3F3 udiv r3, r2, r3
  1125. 924 007e 7B64 str r3, [r7, #68]
  1126. 168:user_src/common.c ****
  1127. 169:user_src/common.c **** }
  1128. 170:user_src/common.c **** while ( unum ); //直至unum为0退出循环
  1129. 925 .loc 1 170 5 discriminator 1
  1130. 926 0080 7B6C ldr r3, [r7, #68]
  1131. 927 0082 002B cmp r3, #0
  1132. 928 0084 E5D1 bne .L49
  1133. 171:user_src/common.c ****
  1134. 172:user_src/common.c **** str[i] = '\0'; //在字符串最�添加'\0'字符,c语言字符串以'\0'结�。
  1135. 929 .loc 1 172 8
  1136. 930 0086 3B6C ldr r3, [r7, #64]
  1137. 931 0088 BA68 ldr r2, [r7, #8]
  1138. 932 008a 1344 add r3, r3, r2
  1139. 933 .loc 1 172 12
  1140. 934 008c 0022 movs r2, #0
  1141. 935 008e 1A70 strb r2, [r3]
  1142. 173:user_src/common.c ****
  1143. 174:user_src/common.c **** //将顺�调整过�
  1144. 175:user_src/common.c **** if ( str[0] == '-' ) k = 1; //如果是负数,符å�·ä¸�用调整,从符å�·å�Žé�¢å¼€å§‹è°ƒæ•
  1145. 936 .loc 1 175 13
  1146. 937 0090 BB68 ldr r3, [r7, #8]
  1147. 938 0092 1B78 ldrb r3, [r3] @ zero_extendqisi2
  1148. 939 .loc 1 175 8
  1149. 940 0094 2D2B cmp r3, #45
  1150. 941 0096 02D1 bne .L50
  1151. 942 .loc 1 175 28 discriminator 1
  1152. 943 0098 0123 movs r3, #1
  1153. 944 009a BB63 str r3, [r7, #56]
  1154. 945 009c 01E0 b .L51
  1155. 946 .L50:
  1156. 176:user_src/common.c **** else k = 0; //�是负数,全部都�调整
  1157. 947 .loc 1 176 12
  1158. 948 009e 0023 movs r3, #0
  1159. 949 00a0 BB63 str r3, [r7, #56]
  1160. 950 .L51:
  1161. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 21
  1162. 177:user_src/common.c ****
  1163. 178:user_src/common.c **** char temp;//临时��,交�两个值时用到
  1164. 179:user_src/common.c **** for ( j = k; j <= ( i - 1 ) / 2; j++ ) //头尾一一对称交æ�¢ï¼Œi其实就是字符串的é•
  1165. 951 .loc 1 179 13
  1166. 952 00a2 BB6B ldr r3, [r7, #56]
  1167. 953 00a4 FB63 str r3, [r7, #60]
  1168. 954 .loc 1 179 5
  1169. 955 00a6 22E0 b .L52
  1170. 956 .L53:
  1171. 180:user_src/common.c **** {
  1172. 181:user_src/common.c **** temp = str[j]; //头部赋值给临时��
  1173. 957 .loc 1 181 19 discriminator 3
  1174. 958 00a8 FB6B ldr r3, [r7, #60]
  1175. 959 00aa BA68 ldr r2, [r7, #8]
  1176. 960 00ac 1344 add r3, r3, r2
  1177. 961 .loc 1 181 14 discriminator 3
  1178. 962 00ae 1B78 ldrb r3, [r3]
  1179. 963 00b0 87F83730 strb r3, [r7, #55]
  1180. 182:user_src/common.c **** str[j] = str[i - 1 + k - j]; //尾部赋值给头部
  1181. 964 .loc 1 182 24 discriminator 3
  1182. 965 00b4 3B6C ldr r3, [r7, #64]
  1183. 966 00b6 5A1E subs r2, r3, #1
  1184. 967 .loc 1 182 28 discriminator 3
  1185. 968 00b8 BB6B ldr r3, [r7, #56]
  1186. 969 00ba 1A44 add r2, r2, r3
  1187. 970 .loc 1 182 32 discriminator 3
  1188. 971 00bc FB6B ldr r3, [r7, #60]
  1189. 972 00be D31A subs r3, r2, r3
  1190. 973 00c0 1A46 mov r2, r3
  1191. 974 .loc 1 182 21 discriminator 3
  1192. 975 00c2 BB68 ldr r3, [r7, #8]
  1193. 976 00c4 1A44 add r2, r2, r3
  1194. 977 .loc 1 182 12 discriminator 3
  1195. 978 00c6 FB6B ldr r3, [r7, #60]
  1196. 979 00c8 B968 ldr r1, [r7, #8]
  1197. 980 00ca 0B44 add r3, r3, r1
  1198. 981 .loc 1 182 21 discriminator 3
  1199. 982 00cc 1278 ldrb r2, [r2] @ zero_extendqisi2
  1200. 983 .loc 1 182 16 discriminator 3
  1201. 984 00ce 1A70 strb r2, [r3]
  1202. 183:user_src/common.c **** str[i - 1 + k - j] = temp; //将临时��的值(其实就是之�的头部值)赋给尾
  1203. 985 .loc 1 183 15 discriminator 3
  1204. 986 00d0 3B6C ldr r3, [r7, #64]
  1205. 987 00d2 5A1E subs r2, r3, #1
  1206. 988 .loc 1 183 19 discriminator 3
  1207. 989 00d4 BB6B ldr r3, [r7, #56]
  1208. 990 00d6 1A44 add r2, r2, r3
  1209. 991 .loc 1 183 23 discriminator 3
  1210. 992 00d8 FB6B ldr r3, [r7, #60]
  1211. 993 00da D31A subs r3, r2, r3
  1212. 994 00dc 1A46 mov r2, r3
  1213. 995 .loc 1 183 12 discriminator 3
  1214. 996 00de BB68 ldr r3, [r7, #8]
  1215. 997 00e0 1344 add r3, r3, r2
  1216. 998 .loc 1 183 28 discriminator 3
  1217. 999 00e2 97F83720 ldrb r2, [r7, #55]
  1218. 1000 00e6 1A70 strb r2, [r3]
  1219. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 22
  1220. 179:user_src/common.c **** {
  1221. 1001 .loc 1 179 39 discriminator 3
  1222. 1002 00e8 FB6B ldr r3, [r7, #60]
  1223. 1003 00ea 0133 adds r3, r3, #1
  1224. 1004 00ec FB63 str r3, [r7, #60]
  1225. 1005 .L52:
  1226. 179:user_src/common.c **** {
  1227. 1006 .loc 1 179 27 discriminator 1
  1228. 1007 00ee 3B6C ldr r3, [r7, #64]
  1229. 1008 00f0 013B subs r3, r3, #1
  1230. 179:user_src/common.c **** {
  1231. 1009 .loc 1 179 33 discriminator 1
  1232. 1010 00f2 DA0F lsrs r2, r3, #31
  1233. 1011 00f4 1344 add r3, r3, r2
  1234. 1012 00f6 5B10 asrs r3, r3, #1
  1235. 1013 00f8 1A46 mov r2, r3
  1236. 179:user_src/common.c **** {
  1237. 1014 .loc 1 179 5 discriminator 1
  1238. 1015 00fa FB6B ldr r3, [r7, #60]
  1239. 1016 00fc 9342 cmp r3, r2
  1240. 1017 00fe D3DD ble .L53
  1241. 184:user_src/common.c **** }
  1242. 185:user_src/common.c ****
  1243. 186:user_src/common.c **** return str;//返回转��的字符串
  1244. 1018 .loc 1 186 12
  1245. 1019 0100 BB68 ldr r3, [r7, #8]
  1246. 187:user_src/common.c **** }
  1247. 1020 .loc 1 187 1
  1248. 1021 0102 1846 mov r0, r3
  1249. 1022 0104 4C37 adds r7, r7, #76
  1250. 1023 .LCFI38:
  1251. 1024 .cfi_def_cfa_offset 12
  1252. 1025 0106 BD46 mov sp, r7
  1253. 1026 .LCFI39:
  1254. 1027 .cfi_def_cfa_register 13
  1255. 1028 @ sp needed
  1256. 1029 0108 B0BC pop {r4, r5, r7}
  1257. 1030 .LCFI40:
  1258. 1031 .cfi_restore 7
  1259. 1032 .cfi_restore 5
  1260. 1033 .cfi_restore 4
  1261. 1034 .cfi_def_cfa_offset 0
  1262. 1035 010a 7047 bx lr
  1263. 1036 .L56:
  1264. 1037 .align 2
  1265. 1038 .L55:
  1266. 1039 010c 00000000 .word .LC0
  1267. 1040 .cfi_endproc
  1268. 1041 .LFE136:
  1269. 1043 .section .text.Int2String,"ax",%progbits
  1270. 1044 .align 1
  1271. 1045 .global Int2String
  1272. 1046 .syntax unified
  1273. 1047 .thumb
  1274. 1048 .thumb_func
  1275. 1050 Int2String:
  1276. 1051 .LFB137:
  1277. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 23
  1278. 188:user_src/common.c ****
  1279. 189:user_src/common.c ****
  1280. 190:user_src/common.c **** char* Int2String(int num,char *str,uint8_t size)//10进制
  1281. 191:user_src/common.c **** {
  1282. 1052 .loc 1 191 1
  1283. 1053 .cfi_startproc
  1284. 1054 @ args = 0, pretend = 0, frame = 24
  1285. 1055 @ frame_needed = 1, uses_anonymous_args = 0
  1286. 1056 @ link register save eliminated.
  1287. 1057 0000 80B4 push {r7}
  1288. 1058 .LCFI41:
  1289. 1059 .cfi_def_cfa_offset 4
  1290. 1060 .cfi_offset 7, -4
  1291. 1061 0002 87B0 sub sp, sp, #28
  1292. 1062 .LCFI42:
  1293. 1063 .cfi_def_cfa_offset 32
  1294. 1064 0004 00AF add r7, sp, #0
  1295. 1065 .LCFI43:
  1296. 1066 .cfi_def_cfa_register 7
  1297. 1067 0006 F860 str r0, [r7, #12]
  1298. 1068 0008 B960 str r1, [r7, #8]
  1299. 1069 000a 1346 mov r3, r2
  1300. 1070 000c FB71 strb r3, [r7, #7]
  1301. 192:user_src/common.c **** int i = 0;//指示填充str
  1302. 1071 .loc 1 192 9
  1303. 1072 000e 0023 movs r3, #0
  1304. 1073 0010 7B61 str r3, [r7, #20]
  1305. 193:user_src/common.c **** if(num<0)//如果num为负数,将num�正
  1306. 1074 .loc 1 193 7
  1307. 1075 0012 FB68 ldr r3, [r7, #12]
  1308. 1076 0014 002B cmp r3, #0
  1309. 1077 0016 0ADA bge .L60
  1310. 194:user_src/common.c **** {
  1311. 195:user_src/common.c **** num = -num;
  1312. 1078 .loc 1 195 13
  1313. 1079 0018 FB68 ldr r3, [r7, #12]
  1314. 1080 001a 5B42 rsbs r3, r3, #0
  1315. 1081 001c FB60 str r3, [r7, #12]
  1316. 196:user_src/common.c **** str[i++] = '-';
  1317. 1082 .loc 1 196 14
  1318. 1083 001e 7B69 ldr r3, [r7, #20]
  1319. 1084 0020 5A1C adds r2, r3, #1
  1320. 1085 0022 7A61 str r2, [r7, #20]
  1321. 1086 0024 1A46 mov r2, r3
  1322. 1087 .loc 1 196 12
  1323. 1088 0026 BB68 ldr r3, [r7, #8]
  1324. 1089 0028 1344 add r3, r3, r2
  1325. 1090 .loc 1 196 18
  1326. 1091 002a 2D22 movs r2, #45
  1327. 1092 002c 1A70 strb r2, [r3]
  1328. 1093 .L60:
  1329. 197:user_src/common.c **** }
  1330. 198:user_src/common.c **** //转�
  1331. 199:user_src/common.c **** do
  1332. 200:user_src/common.c **** {
  1333. 201:user_src/common.c **** if(size>0)
  1334. 1094 .loc 1 201 11
  1335. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 24
  1336. 1095 002e FB79 ldrb r3, [r7, #7] @ zero_extendqisi2
  1337. 1096 0030 002B cmp r3, #0
  1338. 1097 0032 15D0 beq .L59
  1339. 202:user_src/common.c **** {
  1340. 203:user_src/common.c **** str[i++] = num%10+48;
  1341. 1098 .loc 1 203 27
  1342. 1099 0034 FA68 ldr r2, [r7, #12]
  1343. 1100 0036 404B ldr r3, .L65
  1344. 1101 0038 83FB0213 smull r1, r3, r3, r2
  1345. 1102 003c 9910 asrs r1, r3, #2
  1346. 1103 003e D317 asrs r3, r2, #31
  1347. 1104 0040 C91A subs r1, r1, r3
  1348. 1105 0042 0B46 mov r3, r1
  1349. 1106 0044 9B00 lsls r3, r3, #2
  1350. 1107 0046 0B44 add r3, r3, r1
  1351. 1108 0048 5B00 lsls r3, r3, #1
  1352. 1109 004a D11A subs r1, r2, r3
  1353. 1110 .loc 1 203 30
  1354. 1111 004c CAB2 uxtb r2, r1
  1355. 1112 .loc 1 203 18
  1356. 1113 004e 7B69 ldr r3, [r7, #20]
  1357. 1114 0050 591C adds r1, r3, #1
  1358. 1115 0052 7961 str r1, [r7, #20]
  1359. 1116 0054 1946 mov r1, r3
  1360. 1117 .loc 1 203 16
  1361. 1118 0056 BB68 ldr r3, [r7, #8]
  1362. 1119 0058 0B44 add r3, r3, r1
  1363. 1120 .loc 1 203 30
  1364. 1121 005a 3032 adds r2, r2, #48
  1365. 1122 005c D2B2 uxtb r2, r2
  1366. 1123 .loc 1 203 22
  1367. 1124 005e 1A70 strb r2, [r3]
  1368. 1125 .L59:
  1369. 204:user_src/common.c **** }
  1370. 205:user_src/common.c **** size--;
  1371. 1126 .loc 1 205 13
  1372. 1127 0060 FB79 ldrb r3, [r7, #7] @ zero_extendqisi2
  1373. 1128 0062 013B subs r3, r3, #1
  1374. 1129 0064 FB71 strb r3, [r7, #7]
  1375. 206:user_src/common.c **** num /= 10;
  1376. 1130 .loc 1 206 13
  1377. 1131 0066 FB68 ldr r3, [r7, #12]
  1378. 1132 0068 334A ldr r2, .L65
  1379. 1133 006a 82FB0312 smull r1, r2, r2, r3
  1380. 1134 006e 9210 asrs r2, r2, #2
  1381. 1135 0070 DB17 asrs r3, r3, #31
  1382. 1136 0072 D31A subs r3, r2, r3
  1383. 1137 0074 FB60 str r3, [r7, #12]
  1384. 207:user_src/common.c **** }while(num);
  1385. 1138 .loc 1 207 5
  1386. 1139 0076 FB68 ldr r3, [r7, #12]
  1387. 1140 0078 002B cmp r3, #0
  1388. 1141 007a D8D1 bne .L60
  1389. 208:user_src/common.c ****
  1390. 209:user_src/common.c **** str[i] = '\0';
  1391. 1142 .loc 1 209 8
  1392. 1143 007c 7B69 ldr r3, [r7, #20]
  1393. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 25
  1394. 1144 007e BA68 ldr r2, [r7, #8]
  1395. 1145 0080 1344 add r3, r3, r2
  1396. 1146 .loc 1 209 12
  1397. 1147 0082 0022 movs r2, #0
  1398. 1148 0084 1A70 strb r2, [r3]
  1399. 210:user_src/common.c ****
  1400. 211:user_src/common.c **** //确定开始调整的�置
  1401. 212:user_src/common.c **** int j = 0;
  1402. 1149 .loc 1 212 9
  1403. 1150 0086 0023 movs r3, #0
  1404. 1151 0088 3B61 str r3, [r7, #16]
  1405. 213:user_src/common.c **** if(str[0]=='-')//如果有负�,负��用调整
  1406. 1152 .loc 1 213 11
  1407. 1153 008a BB68 ldr r3, [r7, #8]
  1408. 1154 008c 1B78 ldrb r3, [r3] @ zero_extendqisi2
  1409. 1155 .loc 1 213 7
  1410. 1156 008e 2D2B cmp r3, #45
  1411. 1157 0090 42D1 bne .L62
  1412. 214:user_src/common.c **** {
  1413. 215:user_src/common.c **** j = 1;//从第二�开始调整
  1414. 1158 .loc 1 215 11
  1415. 1159 0092 0123 movs r3, #1
  1416. 1160 0094 3B61 str r3, [r7, #16]
  1417. 216:user_src/common.c **** ++i;//由于有负�,所以交�的对称轴也��移1�
  1418. 1161 .loc 1 216 9
  1419. 1162 0096 7B69 ldr r3, [r7, #20]
  1420. 1163 0098 0133 adds r3, r3, #1
  1421. 1164 009a 7B61 str r3, [r7, #20]
  1422. 217:user_src/common.c **** }
  1423. 218:user_src/common.c **** //对称交�
  1424. 219:user_src/common.c **** for(;j<i/2;j++)
  1425. 1165 .loc 1 219 5
  1426. 1166 009c 3CE0 b .L62
  1427. 1167 .L63:
  1428. 220:user_src/common.c **** {
  1429. 221:user_src/common.c **** //对称交�两端的值 其实就是�下中间��交�a+b的值:a=a+b;b=a-b;a=a-
  1430. 222:user_src/common.c **** str[j] = str[j] + str[i-1-j];
  1431. 1168 .loc 1 222 21 discriminator 2
  1432. 1169 009e 3B69 ldr r3, [r7, #16]
  1433. 1170 00a0 BA68 ldr r2, [r7, #8]
  1434. 1171 00a2 1344 add r3, r3, r2
  1435. 1172 00a4 1978 ldrb r1, [r3] @ zero_extendqisi2
  1436. 1173 .loc 1 222 32 discriminator 2
  1437. 1174 00a6 7B69 ldr r3, [r7, #20]
  1438. 1175 00a8 5A1E subs r2, r3, #1
  1439. 1176 .loc 1 222 34 discriminator 2
  1440. 1177 00aa 3B69 ldr r3, [r7, #16]
  1441. 1178 00ac D31A subs r3, r2, r3
  1442. 1179 00ae 1A46 mov r2, r3
  1443. 1180 .loc 1 222 30 discriminator 2
  1444. 1181 00b0 BB68 ldr r3, [r7, #8]
  1445. 1182 00b2 1344 add r3, r3, r2
  1446. 1183 00b4 1A78 ldrb r2, [r3] @ zero_extendqisi2
  1447. 1184 .loc 1 222 12 discriminator 2
  1448. 1185 00b6 3B69 ldr r3, [r7, #16]
  1449. 1186 00b8 B868 ldr r0, [r7, #8]
  1450. 1187 00ba 0344 add r3, r3, r0
  1451. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 26
  1452. 1188 .loc 1 222 25 discriminator 2
  1453. 1189 00bc 0A44 add r2, r2, r1
  1454. 1190 00be D2B2 uxtb r2, r2
  1455. 1191 .loc 1 222 16 discriminator 2
  1456. 1192 00c0 1A70 strb r2, [r3]
  1457. 223:user_src/common.c **** str[i-1-j] = str[j] - str[i-1-j];
  1458. 1193 .loc 1 223 25 discriminator 2
  1459. 1194 00c2 3B69 ldr r3, [r7, #16]
  1460. 1195 00c4 BA68 ldr r2, [r7, #8]
  1461. 1196 00c6 1344 add r3, r3, r2
  1462. 1197 00c8 1978 ldrb r1, [r3] @ zero_extendqisi2
  1463. 1198 .loc 1 223 36 discriminator 2
  1464. 1199 00ca 7B69 ldr r3, [r7, #20]
  1465. 1200 00cc 5A1E subs r2, r3, #1
  1466. 1201 .loc 1 223 38 discriminator 2
  1467. 1202 00ce 3B69 ldr r3, [r7, #16]
  1468. 1203 00d0 D31A subs r3, r2, r3
  1469. 1204 00d2 1A46 mov r2, r3
  1470. 1205 .loc 1 223 34 discriminator 2
  1471. 1206 00d4 BB68 ldr r3, [r7, #8]
  1472. 1207 00d6 1344 add r3, r3, r2
  1473. 1208 00d8 1A78 ldrb r2, [r3] @ zero_extendqisi2
  1474. 1209 .loc 1 223 14 discriminator 2
  1475. 1210 00da 7B69 ldr r3, [r7, #20]
  1476. 1211 00dc 581E subs r0, r3, #1
  1477. 1212 .loc 1 223 16 discriminator 2
  1478. 1213 00de 3B69 ldr r3, [r7, #16]
  1479. 1214 00e0 C31A subs r3, r0, r3
  1480. 1215 00e2 1846 mov r0, r3
  1481. 1216 .loc 1 223 12 discriminator 2
  1482. 1217 00e4 BB68 ldr r3, [r7, #8]
  1483. 1218 00e6 0344 add r3, r3, r0
  1484. 1219 .loc 1 223 29 discriminator 2
  1485. 1220 00e8 8A1A subs r2, r1, r2
  1486. 1221 00ea D2B2 uxtb r2, r2
  1487. 1222 .loc 1 223 20 discriminator 2
  1488. 1223 00ec 1A70 strb r2, [r3]
  1489. 224:user_src/common.c **** str[j] = str[j] - str[i-1-j];
  1490. 1224 .loc 1 224 21 discriminator 2
  1491. 1225 00ee 3B69 ldr r3, [r7, #16]
  1492. 1226 00f0 BA68 ldr r2, [r7, #8]
  1493. 1227 00f2 1344 add r3, r3, r2
  1494. 1228 00f4 1978 ldrb r1, [r3] @ zero_extendqisi2
  1495. 1229 .loc 1 224 32 discriminator 2
  1496. 1230 00f6 7B69 ldr r3, [r7, #20]
  1497. 1231 00f8 5A1E subs r2, r3, #1
  1498. 1232 .loc 1 224 34 discriminator 2
  1499. 1233 00fa 3B69 ldr r3, [r7, #16]
  1500. 1234 00fc D31A subs r3, r2, r3
  1501. 1235 00fe 1A46 mov r2, r3
  1502. 1236 .loc 1 224 30 discriminator 2
  1503. 1237 0100 BB68 ldr r3, [r7, #8]
  1504. 1238 0102 1344 add r3, r3, r2
  1505. 1239 0104 1A78 ldrb r2, [r3] @ zero_extendqisi2
  1506. 1240 .loc 1 224 12 discriminator 2
  1507. 1241 0106 3B69 ldr r3, [r7, #16]
  1508. 1242 0108 B868 ldr r0, [r7, #8]
  1509. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 27
  1510. 1243 010a 0344 add r3, r3, r0
  1511. 1244 .loc 1 224 25 discriminator 2
  1512. 1245 010c 8A1A subs r2, r1, r2
  1513. 1246 010e D2B2 uxtb r2, r2
  1514. 1247 .loc 1 224 16 discriminator 2
  1515. 1248 0110 1A70 strb r2, [r3]
  1516. 219:user_src/common.c **** {
  1517. 1249 .loc 1 219 17 discriminator 2
  1518. 1250 0112 3B69 ldr r3, [r7, #16]
  1519. 1251 0114 0133 adds r3, r3, #1
  1520. 1252 0116 3B61 str r3, [r7, #16]
  1521. 1253 .L62:
  1522. 219:user_src/common.c **** {
  1523. 1254 .loc 1 219 13 discriminator 1
  1524. 1255 0118 7B69 ldr r3, [r7, #20]
  1525. 1256 011a DA0F lsrs r2, r3, #31
  1526. 1257 011c 1344 add r3, r3, r2
  1527. 1258 011e 5B10 asrs r3, r3, #1
  1528. 1259 0120 1A46 mov r2, r3
  1529. 219:user_src/common.c **** {
  1530. 1260 .loc 1 219 5 discriminator 1
  1531. 1261 0122 3B69 ldr r3, [r7, #16]
  1532. 1262 0124 9342 cmp r3, r2
  1533. 1263 0126 BADB blt .L63
  1534. 225:user_src/common.c **** }
  1535. 226:user_src/common.c ****
  1536. 227:user_src/common.c **** return str;//返回转��的值
  1537. 1264 .loc 1 227 12
  1538. 1265 0128 BB68 ldr r3, [r7, #8]
  1539. 228:user_src/common.c **** }
  1540. 1266 .loc 1 228 1
  1541. 1267 012a 1846 mov r0, r3
  1542. 1268 012c 1C37 adds r7, r7, #28
  1543. 1269 .LCFI44:
  1544. 1270 .cfi_def_cfa_offset 4
  1545. 1271 012e BD46 mov sp, r7
  1546. 1272 .LCFI45:
  1547. 1273 .cfi_def_cfa_register 13
  1548. 1274 @ sp needed
  1549. 1275 0130 5DF8047B ldr r7, [sp], #4
  1550. 1276 .LCFI46:
  1551. 1277 .cfi_restore 7
  1552. 1278 .cfi_def_cfa_offset 0
  1553. 1279 0134 7047 bx lr
  1554. 1280 .L66:
  1555. 1281 0136 00BF .align 2
  1556. 1282 .L65:
  1557. 1283 0138 67666666 .word 1717986919
  1558. 1284 .cfi_endproc
  1559. 1285 .LFE137:
  1560. 1287 .section .text.Check_dev_link,"ax",%progbits
  1561. 1288 .align 1
  1562. 1289 .global Check_dev_link
  1563. 1290 .syntax unified
  1564. 1291 .thumb
  1565. 1292 .thumb_func
  1566. 1294 Check_dev_link:
  1567. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 28
  1568. 1295 .LFB138:
  1569. 229:user_src/common.c ****
  1570. 230:user_src/common.c ****
  1571. 231:user_src/common.c **** /**
  1572. 232:user_src/common.c **** * @file Check_dev_link
  1573. 233:user_src/common.c **** * @brief 检测设备连接状�
  1574. 234:user_src/common.c **** * @param dev 设备 ms 时间毫秒 p数�地� size数�大�
  1575. 235:user_src/common.c **** * @details
  1576. 236:user_src/common.c **** * @author Zhang Sir
  1577. 237:user_src/common.c **** **/
  1578. 238:user_src/common.c **** void Check_dev_link(Connect_check *dev,uint16_t ms,char *p,uint16_t size)
  1579. 239:user_src/common.c **** {
  1580. 1296 .loc 1 239 1
  1581. 1297 .cfi_startproc
  1582. 1298 @ args = 0, pretend = 0, frame = 16
  1583. 1299 @ frame_needed = 1, uses_anonymous_args = 0
  1584. 1300 0000 80B5 push {r7, lr}
  1585. 1301 .LCFI47:
  1586. 1302 .cfi_def_cfa_offset 8
  1587. 1303 .cfi_offset 7, -8
  1588. 1304 .cfi_offset 14, -4
  1589. 1305 0002 84B0 sub sp, sp, #16
  1590. 1306 .LCFI48:
  1591. 1307 .cfi_def_cfa_offset 24
  1592. 1308 0004 00AF add r7, sp, #0
  1593. 1309 .LCFI49:
  1594. 1310 .cfi_def_cfa_register 7
  1595. 1311 0006 F860 str r0, [r7, #12]
  1596. 1312 0008 7A60 str r2, [r7, #4]
  1597. 1313 000a 1A46 mov r2, r3
  1598. 1314 000c 0B46 mov r3, r1 @ movhi
  1599. 1315 000e 7B81 strh r3, [r7, #10] @ movhi
  1600. 1316 0010 1346 mov r3, r2 @ movhi
  1601. 1317 0012 3B81 strh r3, [r7, #8] @ movhi
  1602. 240:user_src/common.c **** if(dev->connect_status == COMP_NOEXIST)
  1603. 1318 .loc 1 240 11
  1604. 1319 0014 FB68 ldr r3, [r7, #12]
  1605. 1320 0016 1B7A ldrb r3, [r3, #8] @ zero_extendqisi2
  1606. 1321 .loc 1 240 7
  1607. 1322 0018 002B cmp r3, #0
  1608. 1323 001a 1ED0 beq .L71
  1609. 241:user_src/common.c **** return;
  1610. 242:user_src/common.c ****
  1611. 243:user_src/common.c **** dev->error_time = HAL_GetTick() - dev->recv_time;
  1612. 1324 .loc 1 243 23
  1613. 1325 001c FFF7FEFF bl HAL_GetTick
  1614. 1326 0020 0246 mov r2, r0
  1615. 1327 .loc 1 243 42
  1616. 1328 0022 FB68 ldr r3, [r7, #12]
  1617. 1329 0024 1B68 ldr r3, [r3]
  1618. 1330 .loc 1 243 37
  1619. 1331 0026 D31A subs r3, r2, r3
  1620. 1332 0028 1A46 mov r2, r3
  1621. 1333 .loc 1 243 21
  1622. 1334 002a FB68 ldr r3, [r7, #12]
  1623. 1335 002c 5A60 str r2, [r3, #4]
  1624. 244:user_src/common.c ****
  1625. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 29
  1626. 245:user_src/common.c **** if (dev->connect_status == COMP_NORMAL && (dev->error_time > ms))
  1627. 1336 .loc 1 245 12
  1628. 1337 002e FB68 ldr r3, [r7, #12]
  1629. 1338 0030 1B7A ldrb r3, [r3, #8] @ zero_extendqisi2
  1630. 1339 .loc 1 245 8
  1631. 1340 0032 012B cmp r3, #1
  1632. 1341 0034 12D1 bne .L67
  1633. 1342 .loc 1 245 51 discriminator 1
  1634. 1343 0036 FB68 ldr r3, [r7, #12]
  1635. 1344 0038 5A68 ldr r2, [r3, #4]
  1636. 1345 .loc 1 245 64 discriminator 1
  1637. 1346 003a 7B89 ldrh r3, [r7, #10]
  1638. 1347 .loc 1 245 44 discriminator 1
  1639. 1348 003c 9A42 cmp r2, r3
  1640. 1349 003e 0DDD ble .L67
  1641. 246:user_src/common.c **** {
  1642. 247:user_src/common.c **** if(p != NULL)
  1643. 1350 .loc 1 247 11
  1644. 1351 0040 7B68 ldr r3, [r7, #4]
  1645. 1352 0042 002B cmp r3, #0
  1646. 1353 0044 05D0 beq .L70
  1647. 248:user_src/common.c **** memset(p, 0, size);
  1648. 1354 .loc 1 248 13
  1649. 1355 0046 3B89 ldrh r3, [r7, #8]
  1650. 1356 0048 1A46 mov r2, r3
  1651. 1357 004a 0021 movs r1, #0
  1652. 1358 004c 7868 ldr r0, [r7, #4]
  1653. 1359 004e FFF7FEFF bl memset
  1654. 1360 .L70:
  1655. 249:user_src/common.c ****
  1656. 250:user_src/common.c **** dev->connect_status = COMP_LOST;
  1657. 1361 .loc 1 250 29
  1658. 1362 0052 FB68 ldr r3, [r7, #12]
  1659. 1363 0054 0222 movs r2, #2
  1660. 1364 0056 1A72 strb r2, [r3, #8]
  1661. 1365 0058 00E0 b .L67
  1662. 1366 .L71:
  1663. 241:user_src/common.c ****
  1664. 1367 .loc 1 241 9
  1665. 1368 005a 00BF nop
  1666. 1369 .L67:
  1667. 251:user_src/common.c **** }
  1668. 252:user_src/common.c **** }
  1669. 1370 .loc 1 252 1
  1670. 1371 005c 1037 adds r7, r7, #16
  1671. 1372 .LCFI50:
  1672. 1373 .cfi_def_cfa_offset 8
  1673. 1374 005e BD46 mov sp, r7
  1674. 1375 .LCFI51:
  1675. 1376 .cfi_def_cfa_register 13
  1676. 1377 @ sp needed
  1677. 1378 0060 80BD pop {r7, pc}
  1678. 1379 .cfi_endproc
  1679. 1380 .LFE138:
  1680. 1382 .section .text.Check_Timer_Ready,"ax",%progbits
  1681. 1383 .align 1
  1682. 1384 .global Check_Timer_Ready
  1683. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 30
  1684. 1385 .syntax unified
  1685. 1386 .thumb
  1686. 1387 .thumb_func
  1687. 1389 Check_Timer_Ready:
  1688. 1390 .LFB139:
  1689. 253:user_src/common.c ****
  1690. 254:user_src/common.c **** /**
  1691. 255:user_src/common.c **** * @file Check_Timer_Ready
  1692. 256:user_src/common.c **** * @brief 定时器循环检测
  1693. 257:user_src/common.c **** * @param
  1694. 258:user_src/common.c **** * @details
  1695. 259:user_src/common.c **** * @author Zhang Sir
  1696. 260:user_src/common.c **** **/
  1697. 261:user_src/common.c **** bool Check_Timer_Ready(uint32_t *time,uint16_t HZ)
  1698. 262:user_src/common.c **** {
  1699. 1391 .loc 1 262 1
  1700. 1392 .cfi_startproc
  1701. 1393 @ args = 0, pretend = 0, frame = 8
  1702. 1394 @ frame_needed = 1, uses_anonymous_args = 0
  1703. 1395 0000 80B5 push {r7, lr}
  1704. 1396 .LCFI52:
  1705. 1397 .cfi_def_cfa_offset 8
  1706. 1398 .cfi_offset 7, -8
  1707. 1399 .cfi_offset 14, -4
  1708. 1400 0002 82B0 sub sp, sp, #8
  1709. 1401 .LCFI53:
  1710. 1402 .cfi_def_cfa_offset 16
  1711. 1403 0004 00AF add r7, sp, #0
  1712. 1404 .LCFI54:
  1713. 1405 .cfi_def_cfa_register 7
  1714. 1406 0006 7860 str r0, [r7, #4]
  1715. 1407 0008 0B46 mov r3, r1
  1716. 1408 000a 7B80 strh r3, [r7, #2] @ movhi
  1717. 263:user_src/common.c **** if(HAL_GetTick() - *time >= HZ)
  1718. 1409 .loc 1 263 8
  1719. 1410 000c FFF7FEFF bl HAL_GetTick
  1720. 1411 0010 0246 mov r2, r0
  1721. 1412 .loc 1 263 24
  1722. 1413 0012 7B68 ldr r3, [r7, #4]
  1723. 1414 0014 1B68 ldr r3, [r3]
  1724. 1415 .loc 1 263 22
  1725. 1416 0016 D21A subs r2, r2, r3
  1726. 1417 .loc 1 263 30
  1727. 1418 0018 7B88 ldrh r3, [r7, #2]
  1728. 1419 .loc 1 263 7
  1729. 1420 001a 9A42 cmp r2, r3
  1730. 1421 001c 06D3 bcc .L73
  1731. 264:user_src/common.c **** {
  1732. 265:user_src/common.c **** *time = HAL_GetTick();
  1733. 1422 .loc 1 265 17
  1734. 1423 001e FFF7FEFF bl HAL_GetTick
  1735. 1424 0022 0246 mov r2, r0
  1736. 1425 .loc 1 265 15
  1737. 1426 0024 7B68 ldr r3, [r7, #4]
  1738. 1427 0026 1A60 str r2, [r3]
  1739. 266:user_src/common.c **** return true;
  1740. 1428 .loc 1 266 16
  1741. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 31
  1742. 1429 0028 0123 movs r3, #1
  1743. 1430 002a 00E0 b .L74
  1744. 1431 .L73:
  1745. 267:user_src/common.c **** }
  1746. 268:user_src/common.c **** return false;
  1747. 1432 .loc 1 268 12
  1748. 1433 002c 0023 movs r3, #0
  1749. 1434 .L74:
  1750. 269:user_src/common.c **** }
  1751. 1435 .loc 1 269 1
  1752. 1436 002e 1846 mov r0, r3
  1753. 1437 0030 0837 adds r7, r7, #8
  1754. 1438 .LCFI55:
  1755. 1439 .cfi_def_cfa_offset 8
  1756. 1440 0032 BD46 mov sp, r7
  1757. 1441 .LCFI56:
  1758. 1442 .cfi_def_cfa_register 13
  1759. 1443 @ sp needed
  1760. 1444 0034 80BD pop {r7, pc}
  1761. 1445 .cfi_endproc
  1762. 1446 .LFE139:
  1763. 1448 .section .text.math_cons_i16,"ax",%progbits
  1764. 1449 .align 1
  1765. 1450 .global math_cons_i16
  1766. 1451 .syntax unified
  1767. 1452 .thumb
  1768. 1453 .thumb_func
  1769. 1455 math_cons_i16:
  1770. 1456 .LFB140:
  1771. 270:user_src/common.c ****
  1772. 271:user_src/common.c **** int16_t math_cons_i16( int16_t value, int16_t min, int16_t max )
  1773. 272:user_src/common.c **** {
  1774. 1457 .loc 1 272 1
  1775. 1458 .cfi_startproc
  1776. 1459 @ args = 0, pretend = 0, frame = 8
  1777. 1460 @ frame_needed = 1, uses_anonymous_args = 0
  1778. 1461 @ link register save eliminated.
  1779. 1462 0000 80B4 push {r7}
  1780. 1463 .LCFI57:
  1781. 1464 .cfi_def_cfa_offset 4
  1782. 1465 .cfi_offset 7, -4
  1783. 1466 0002 83B0 sub sp, sp, #12
  1784. 1467 .LCFI58:
  1785. 1468 .cfi_def_cfa_offset 16
  1786. 1469 0004 00AF add r7, sp, #0
  1787. 1470 .LCFI59:
  1788. 1471 .cfi_def_cfa_register 7
  1789. 1472 0006 0346 mov r3, r0
  1790. 1473 0008 FB80 strh r3, [r7, #6] @ movhi
  1791. 1474 000a 0B46 mov r3, r1 @ movhi
  1792. 1475 000c BB80 strh r3, [r7, #4] @ movhi
  1793. 1476 000e 1346 mov r3, r2 @ movhi
  1794. 1477 0010 7B80 strh r3, [r7, #2] @ movhi
  1795. 273:user_src/common.c **** return ( ( value ) < ( min ) ? ( min ) : ( ( value ) > ( max ) ? ( max ) : ( value ) ) );
  1796. 1478 .loc 1 273 44
  1797. 1479 0012 B7F90620 ldrsh r2, [r7, #6]
  1798. 1480 0016 B7F90430 ldrsh r3, [r7, #4]
  1799. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 32
  1800. 1481 001a 9A42 cmp r2, r3
  1801. 1482 001c 08DB blt .L76
  1802. 1483 .loc 1 273 44 is_stmt 0 discriminator 1
  1803. 1484 001e B7F90620 ldrsh r2, [r7, #6]
  1804. 1485 0022 B7F90230 ldrsh r3, [r7, #2]
  1805. 1486 0026 9342 cmp r3, r2
  1806. 1487 0028 A8BF it ge
  1807. 1488 002a 1346 movge r3, r2
  1808. 1489 002c 1BB2 sxth r3, r3
  1809. 1490 002e 01E0 b .L77
  1810. 1491 .L76:
  1811. 1492 .loc 1 273 44 discriminator 2
  1812. 1493 0030 B7F90430 ldrsh r3, [r7, #4]
  1813. 1494 .L77:
  1814. 274:user_src/common.c **** }
  1815. 1495 .loc 1 274 1 is_stmt 1 discriminator 4
  1816. 1496 0034 1846 mov r0, r3
  1817. 1497 0036 0C37 adds r7, r7, #12
  1818. 1498 .LCFI60:
  1819. 1499 .cfi_def_cfa_offset 4
  1820. 1500 0038 BD46 mov sp, r7
  1821. 1501 .LCFI61:
  1822. 1502 .cfi_def_cfa_register 13
  1823. 1503 @ sp needed
  1824. 1504 003a 5DF8047B ldr r7, [sp], #4
  1825. 1505 .LCFI62:
  1826. 1506 .cfi_restore 7
  1827. 1507 .cfi_def_cfa_offset 0
  1828. 1508 003e 7047 bx lr
  1829. 1509 .cfi_endproc
  1830. 1510 .LFE140:
  1831. 1512 .section .text.StrArrayNull,"ax",%progbits
  1832. 1513 .align 1
  1833. 1514 .global StrArrayNull
  1834. 1515 .syntax unified
  1835. 1516 .thumb
  1836. 1517 .thumb_func
  1837. 1519 StrArrayNull:
  1838. 1520 .LFB141:
  1839. 275:user_src/common.c ****
  1840. 276:user_src/common.c **** //数组array是�为空,�有'\0'以�'0'
  1841. 277:user_src/common.c **** bool StrArrayNull( uint8_t *array, int aLen )
  1842. 278:user_src/common.c **** {
  1843. 1521 .loc 1 278 1
  1844. 1522 .cfi_startproc
  1845. 1523 @ args = 0, pretend = 0, frame = 16
  1846. 1524 @ frame_needed = 1, uses_anonymous_args = 0
  1847. 1525 @ link register save eliminated.
  1848. 1526 0000 80B4 push {r7}
  1849. 1527 .LCFI63:
  1850. 1528 .cfi_def_cfa_offset 4
  1851. 1529 .cfi_offset 7, -4
  1852. 1530 0002 85B0 sub sp, sp, #20
  1853. 1531 .LCFI64:
  1854. 1532 .cfi_def_cfa_offset 24
  1855. 1533 0004 00AF add r7, sp, #0
  1856. 1534 .LCFI65:
  1857. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 33
  1858. 1535 .cfi_def_cfa_register 7
  1859. 1536 0006 7860 str r0, [r7, #4]
  1860. 1537 0008 3960 str r1, [r7]
  1861. 1538 .LBB5:
  1862. 279:user_src/common.c **** for ( int i = 0; i < aLen; i++ )
  1863. 1539 .loc 1 279 15
  1864. 1540 000a 0023 movs r3, #0
  1865. 1541 000c FB60 str r3, [r7, #12]
  1866. 1542 .loc 1 279 5
  1867. 1543 000e 10E0 b .L80
  1868. 1544 .L83:
  1869. 280:user_src/common.c **** {
  1870. 281:user_src/common.c **** if(array[i] != 0 && array[i] != '0')
  1871. 1545 .loc 1 281 17
  1872. 1546 0010 FB68 ldr r3, [r7, #12]
  1873. 1547 0012 7A68 ldr r2, [r7, #4]
  1874. 1548 0014 1344 add r3, r3, r2
  1875. 1549 0016 1B78 ldrb r3, [r3] @ zero_extendqisi2
  1876. 1550 .loc 1 281 11
  1877. 1551 0018 002B cmp r3, #0
  1878. 1552 001a 07D0 beq .L81
  1879. 1553 .loc 1 281 34 discriminator 1
  1880. 1554 001c FB68 ldr r3, [r7, #12]
  1881. 1555 001e 7A68 ldr r2, [r7, #4]
  1882. 1556 0020 1344 add r3, r3, r2
  1883. 1557 0022 1B78 ldrb r3, [r3] @ zero_extendqisi2
  1884. 1558 .loc 1 281 26 discriminator 1
  1885. 1559 0024 302B cmp r3, #48
  1886. 1560 0026 01D0 beq .L81
  1887. 282:user_src/common.c **** return false;
  1888. 1561 .loc 1 282 20
  1889. 1562 0028 0023 movs r3, #0
  1890. 1563 002a 07E0 b .L82
  1891. 1564 .L81:
  1892. 279:user_src/common.c **** for ( int i = 0; i < aLen; i++ )
  1893. 1565 .loc 1 279 33 discriminator 2
  1894. 1566 002c FB68 ldr r3, [r7, #12]
  1895. 1567 002e 0133 adds r3, r3, #1
  1896. 1568 0030 FB60 str r3, [r7, #12]
  1897. 1569 .L80:
  1898. 279:user_src/common.c **** for ( int i = 0; i < aLen; i++ )
  1899. 1570 .loc 1 279 5 discriminator 1
  1900. 1571 0032 FA68 ldr r2, [r7, #12]
  1901. 1572 0034 3B68 ldr r3, [r7]
  1902. 1573 0036 9A42 cmp r2, r3
  1903. 1574 0038 EADB blt .L83
  1904. 1575 .LBE5:
  1905. 283:user_src/common.c **** }
  1906. 284:user_src/common.c ****
  1907. 285:user_src/common.c **** return true;
  1908. 1576 .loc 1 285 12
  1909. 1577 003a 0123 movs r3, #1
  1910. 1578 .L82:
  1911. 286:user_src/common.c **** }
  1912. 1579 .loc 1 286 1
  1913. 1580 003c 1846 mov r0, r3
  1914. 1581 003e 1437 adds r7, r7, #20
  1915. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 34
  1916. 1582 .LCFI66:
  1917. 1583 .cfi_def_cfa_offset 4
  1918. 1584 0040 BD46 mov sp, r7
  1919. 1585 .LCFI67:
  1920. 1586 .cfi_def_cfa_register 13
  1921. 1587 @ sp needed
  1922. 1588 0042 5DF8047B ldr r7, [sp], #4
  1923. 1589 .LCFI68:
  1924. 1590 .cfi_restore 7
  1925. 1591 .cfi_def_cfa_offset 0
  1926. 1592 0046 7047 bx lr
  1927. 1593 .cfi_endproc
  1928. 1594 .LFE141:
  1929. 1596 .text
  1930. 1597 .Letext0:
  1931. 1598 .file 2 "d:\\arm-gcc\\arm-none-eabi\\include\\machine\\_default_types.h"
  1932. 1599 .file 3 "d:\\arm-gcc\\arm-none-eabi\\include\\sys\\_stdint.h"
  1933. 1600 .file 4 "user_inc/common.h"
  1934. 1601 .file 5 "user_inc/soft_obstacle.h"
  1935. 1602 .file 6 "d:\\arm-gcc\\arm-none-eabi\\include\\stdlib.h"
  1936. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s page 35
  1937. DEFINED SYMBOLS
  1938. *ABS*:00000000 common.c
  1939. C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:20 .text.findStrInArray:00000000 $t
  1940. C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:26 .text.findStrInArray:00000000 findStrInArray
  1941. C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:128 .text.buf2int:00000000 $t
  1942. C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:134 .text.buf2int:00000000 buf2int
  1943. C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:207 .text.u16t_buf_sort:00000000 $t
  1944. C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:213 .text.u16t_buf_sort:00000000 u16t_buf_sort
  1945. C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:351 .text.mimomocib_buf_sort:00000000 $t
  1946. C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:357 .text.mimomocib_buf_sort:00000000 mimomocib_buf_sort
  1947. C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:515 .text.short2buf:00000000 $t
  1948. C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:521 .text.short2buf:00000000 short2buf
  1949. C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:594 .text.char_to_hex_string:00000000 $t
  1950. C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:600 .text.char_to_hex_string:00000000 char_to_hex_string
  1951. C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:822 .rodata:00000000 $d
  1952. C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:826 .text.itoa:00000000 $t
  1953. C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:832 .text.itoa:00000000 itoa
  1954. C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:1039 .text.itoa:0000010c $d
  1955. C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:1044 .text.Int2String:00000000 $t
  1956. C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:1050 .text.Int2String:00000000 Int2String
  1957. C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:1283 .text.Int2String:00000138 $d
  1958. C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:1288 .text.Check_dev_link:00000000 $t
  1959. C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:1294 .text.Check_dev_link:00000000 Check_dev_link
  1960. C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:1383 .text.Check_Timer_Ready:00000000 $t
  1961. C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:1389 .text.Check_Timer_Ready:00000000 Check_Timer_Ready
  1962. C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:1449 .text.math_cons_i16:00000000 $t
  1963. C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:1455 .text.math_cons_i16:00000000 math_cons_i16
  1964. C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:1513 .text.StrArrayNull:00000000 $t
  1965. C:\Users\zl835\AppData\Local\Temp\ccrecGQK.s:1519 .text.StrArrayNull:00000000 StrArrayNull
  1966. UNDEFINED SYMBOLS
  1967. strlen
  1968. memcmp
  1969. HAL_GetTick
  1970. memset