soft_okcell.lst 75 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693
  1. ARM GAS C:\Users\zl835\AppData\Local\Temp\cclvVMOp.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 "soft_okcell.c"
  17. 16 .text
  18. 17 .Ltext0:
  19. 18 .cfi_sections .debug_frame
  20. 19 .global group_num
  21. 20 .section .bss.group_num,"aw",%nobits
  22. 23 group_num:
  23. 24 0000 00 .space 1
  24. 25 .global okcell_sha1_out
  25. 26 .section .bss.okcell_sha1_out,"aw",%nobits
  26. 27 .align 2
  27. 30 okcell_sha1_out:
  28. 31 0000 00000000 .space 20
  29. 31 00000000
  30. 31 00000000
  31. 31 00000000
  32. 31 00000000
  33. 32 .global okcell_device1
  34. 33 .section .bss.okcell_device1,"aw",%nobits
  35. 34 .align 2
  36. 37 okcell_device1:
  37. 38 0000 00000000 .space 354
  38. 38 00000000
  39. 38 00000000
  40. 38 00000000
  41. 38 00000000
  42. 39 .global okcell_device2
  43. 40 .section .bss.okcell_device2,"aw",%nobits
  44. 41 .align 2
  45. 44 okcell_device2:
  46. 45 0000 00000000 .space 354
  47. 45 00000000
  48. 45 00000000
  49. 45 00000000
  50. 45 00000000
  51. 46 .section .rodata
  52. 47 .align 2
  53. 48 .LC0:
  54. 49 0000 5A464B4A .ascii "ZFKJ\000"
  55. 49 00
  56. 50 0005 000000 .align 2
  57. 51 .LC1:
  58. 52 0008 454E4400 .ascii "END\000"
  59. ARM GAS C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s page 2
  60. 53 .section .text.OkcellCanRecvHookFunction,"ax",%progbits
  61. 54 .align 1
  62. 55 .global OkcellCanRecvHookFunction
  63. 56 .syntax unified
  64. 57 .thumb
  65. 58 .thumb_func
  66. 60 OkcellCanRecvHookFunction:
  67. 61 .LFB130:
  68. 62 .file 1 "user_src/soft_okcell.c"
  69. 1:user_src/soft_okcell.c ****
  70. 2:user_src/soft_okcell.c **** #include "soft_okcell.h"
  71. 3:user_src/soft_okcell.c **** #include "string.h"
  72. 4:user_src/soft_okcell.c **** #include "common.h"
  73. 5:user_src/soft_okcell.c **** #include "crc.h"
  74. 6:user_src/soft_okcell.c **** #include "soft_can.h"
  75. 7:user_src/soft_okcell.c **** #include "soft_crc.h"
  76. 8:user_src/soft_okcell.c **** //在数组中array查找是否存在字符串str
  77. 9:user_src/soft_okcell.c **** //不能使用strstr函数,数组中存在'\0'的话会被结束
  78. 10:user_src/soft_okcell.c **** int findStrInArray(uint8_t *array, int aLen, const char *str);
  79. 11:user_src/soft_okcell.c ****
  80. 12:user_src/soft_okcell.c **** uint8_t group_num = 0; //电池组数
  81. 13:user_src/soft_okcell.c ****
  82. 14:user_src/soft_okcell.c **** #define RESET_OKIDCODE_DELAY (3)
  83. 15:user_src/soft_okcell.c **** unsigned char okcell_sha1_out[20] = {0};
  84. 16:user_src/soft_okcell.c **** //结构体指针类型
  85. 17:user_src/soft_okcell.c **** _OKCELL_DEVICE okcell_device1 = {.Okcell_Link.connect_status = COMP_NOEXIST,
  86. 18:user_src/soft_okcell.c **** .Okcell_get_s = false,
  87. 19:user_src/soft_okcell.c **** .okcell_inf.cell_D0.cell_d0[6] = 0},
  88. 20:user_src/soft_okcell.c **** okcell_device2 = {.Okcell_Link.connect_status = COMP_NOEXIST,
  89. 21:user_src/soft_okcell.c **** .Okcell_get_s = false,
  90. 22:user_src/soft_okcell.c **** .okcell_inf.cell_D0.cell_d0[6] = 0};
  91. 23:user_src/soft_okcell.c ****
  92. 24:user_src/soft_okcell.c ****
  93. 25:user_src/soft_okcell.c **** void OkcellCanRecvHookFunction(uint32_t cellCanID, uint8_t data[], uint8_t len)
  94. 26:user_src/soft_okcell.c **** {
  95. 63 .loc 1 26 1
  96. 64 .cfi_startproc
  97. 65 @ args = 0, pretend = 0, frame = 40
  98. 66 @ frame_needed = 1, uses_anonymous_args = 0
  99. 67 0000 80B5 push {r7, lr}
  100. 68 .LCFI0:
  101. 69 .cfi_def_cfa_offset 8
  102. 70 .cfi_offset 7, -8
  103. 71 .cfi_offset 14, -4
  104. 72 0002 8AB0 sub sp, sp, #40
  105. 73 .LCFI1:
  106. 74 .cfi_def_cfa_offset 48
  107. 75 0004 00AF add r7, sp, #0
  108. 76 .LCFI2:
  109. 77 .cfi_def_cfa_register 7
  110. 78 0006 F860 str r0, [r7, #12]
  111. 79 0008 B960 str r1, [r7, #8]
  112. 80 000a 1346 mov r3, r2
  113. 81 000c FB71 strb r3, [r7, #7]
  114. 27:user_src/soft_okcell.c **** _OKCELL_DEVICE *OKptr = NULL;
  115. 82 .loc 1 27 21
  116. 83 000e 0023 movs r3, #0
  117. ARM GAS C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s page 3
  118. 84 0010 7B62 str r3, [r7, #36]
  119. 28:user_src/soft_okcell.c **** //添加兼容两组电池
  120. 29:user_src/soft_okcell.c **** static uint8_t OKIdCode1counts = 0,OKIdCode2counts = 0;
  121. 30:user_src/soft_okcell.c **** //判断是哪个电池的ID,通过ID来区分电池。并支持飞控不断电更换电池
  122. 31:user_src/soft_okcell.c **** if(cellCanID != okcell_device1.deviceCanID && cellCanID != okcell_device2.deviceCanID)
  123. 85 .loc 1 31 35
  124. 86 0012 8F4B ldr r3, .L44
  125. 87 0014 1B68 ldr r3, [r3]
  126. 88 .loc 1 31 7
  127. 89 0016 FA68 ldr r2, [r7, #12]
  128. 90 0018 9A42 cmp r2, r3
  129. 91 001a 39D0 beq .L2
  130. 92 .loc 1 31 78 discriminator 1
  131. 93 001c 8D4B ldr r3, .L44+4
  132. 94 001e 1B68 ldr r3, [r3]
  133. 95 .loc 1 31 48 discriminator 1
  134. 96 0020 FA68 ldr r2, [r7, #12]
  135. 97 0022 9A42 cmp r2, r3
  136. 98 0024 34D0 beq .L2
  137. 32:user_src/soft_okcell.c **** {
  138. 33:user_src/soft_okcell.c **** //分配给1号结构体
  139. 34:user_src/soft_okcell.c **** if(OKIdCode1counts == 0){
  140. 99 .loc 1 34 28
  141. 100 0026 8C4B ldr r3, .L44+8
  142. 101 0028 1B78 ldrb r3, [r3] @ zero_extendqisi2
  143. 102 .loc 1 34 11
  144. 103 002a 002B cmp r3, #0
  145. 104 002c 0BD1 bne .L3
  146. 35:user_src/soft_okcell.c **** OKIdCode1counts = RESET_OKIDCODE_DELAY;
  147. 105 .loc 1 35 29
  148. 106 002e 8A4B ldr r3, .L44+8
  149. 107 0030 0322 movs r2, #3
  150. 108 0032 1A70 strb r2, [r3]
  151. 36:user_src/soft_okcell.c ****
  152. 37:user_src/soft_okcell.c **** OKptr = &okcell_device1;
  153. 109 .loc 1 37 19
  154. 110 0034 864B ldr r3, .L44
  155. 111 0036 7B62 str r3, [r7, #36]
  156. 38:user_src/soft_okcell.c **** OKptr->deviceCanID = cellCanID;
  157. 112 .loc 1 38 32
  158. 113 0038 7B6A ldr r3, [r7, #36]
  159. 114 003a FA68 ldr r2, [r7, #12]
  160. 115 003c 1A60 str r2, [r3] @ unaligned
  161. 39:user_src/soft_okcell.c ****
  162. 40:user_src/soft_okcell.c **** group_num = 1;
  163. 116 .loc 1 40 23
  164. 117 003e 874B ldr r3, .L44+12
  165. 118 0040 0122 movs r2, #1
  166. 119 0042 1A70 strb r2, [r3]
  167. 34:user_src/soft_okcell.c **** OKIdCode1counts = RESET_OKIDCODE_DELAY;
  168. 120 .loc 1 34 11
  169. 121 0044 40E0 b .L36
  170. 122 .L3:
  171. 41:user_src/soft_okcell.c **** }
  172. 42:user_src/soft_okcell.c **** //分配给2号结构体
  173. 43:user_src/soft_okcell.c **** else if(OKIdCode2counts == 0) {
  174. 123 .loc 1 43 33
  175. ARM GAS C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s page 4
  176. 124 0046 864B ldr r3, .L44+16
  177. 125 0048 1B78 ldrb r3, [r3] @ zero_extendqisi2
  178. 126 .loc 1 43 16
  179. 127 004a 002B cmp r3, #0
  180. 128 004c 0BD1 bne .L5
  181. 44:user_src/soft_okcell.c **** OKIdCode2counts = RESET_OKIDCODE_DELAY;
  182. 129 .loc 1 44 29
  183. 130 004e 844B ldr r3, .L44+16
  184. 131 0050 0322 movs r2, #3
  185. 132 0052 1A70 strb r2, [r3]
  186. 45:user_src/soft_okcell.c ****
  187. 46:user_src/soft_okcell.c **** OKptr = &okcell_device2;
  188. 133 .loc 1 46 19
  189. 134 0054 7F4B ldr r3, .L44+4
  190. 135 0056 7B62 str r3, [r7, #36]
  191. 47:user_src/soft_okcell.c **** OKptr->deviceCanID = cellCanID;
  192. 136 .loc 1 47 32
  193. 137 0058 7B6A ldr r3, [r7, #36]
  194. 138 005a FA68 ldr r2, [r7, #12]
  195. 139 005c 1A60 str r2, [r3] @ unaligned
  196. 48:user_src/soft_okcell.c ****
  197. 49:user_src/soft_okcell.c **** group_num = 2;
  198. 140 .loc 1 49 23
  199. 141 005e 7F4B ldr r3, .L44+12
  200. 142 0060 0222 movs r2, #2
  201. 143 0062 1A70 strb r2, [r3]
  202. 34:user_src/soft_okcell.c **** OKIdCode1counts = RESET_OKIDCODE_DELAY;
  203. 144 .loc 1 34 11
  204. 145 0064 30E0 b .L36
  205. 146 .L5:
  206. 50:user_src/soft_okcell.c **** }
  207. 51:user_src/soft_okcell.c **** //不分配结构体
  208. 52:user_src/soft_okcell.c **** else{
  209. 53:user_src/soft_okcell.c **** OKIdCode1counts>0 ? OKIdCode1counts-- : OKIdCode1counts;
  210. 147 .loc 1 53 28
  211. 148 0066 7C4B ldr r3, .L44+8
  212. 149 0068 1B78 ldrb r3, [r3] @ zero_extendqisi2
  213. 150 .loc 1 53 51
  214. 151 006a 002B cmp r3, #0
  215. 152 006c 05D0 beq .L7
  216. 153 .loc 1 53 48 discriminator 1
  217. 154 006e 7A4B ldr r3, .L44+8
  218. 155 0070 1B78 ldrb r3, [r3] @ zero_extendqisi2
  219. 156 0072 013B subs r3, r3, #1
  220. 157 0074 DAB2 uxtb r2, r3
  221. 158 0076 784B ldr r3, .L44+8
  222. 159 0078 1A70 strb r2, [r3]
  223. 160 .L7:
  224. 54:user_src/soft_okcell.c **** OKIdCode2counts>0 ? OKIdCode2counts-- : OKIdCode2counts;
  225. 161 .loc 1 54 28
  226. 162 007a 794B ldr r3, .L44+16
  227. 163 007c 1B78 ldrb r3, [r3] @ zero_extendqisi2
  228. 164 .loc 1 54 51
  229. 165 007e 002B cmp r3, #0
  230. 166 0080 22D0 beq .L36
  231. 167 .loc 1 54 48 discriminator 1
  232. 168 0082 774B ldr r3, .L44+16
  233. ARM GAS C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s page 5
  234. 169 0084 1B78 ldrb r3, [r3] @ zero_extendqisi2
  235. 170 0086 013B subs r3, r3, #1
  236. 171 0088 DAB2 uxtb r2, r3
  237. 172 008a 754B ldr r3, .L44+16
  238. 173 008c 1A70 strb r2, [r3]
  239. 34:user_src/soft_okcell.c **** OKIdCode1counts = RESET_OKIDCODE_DELAY;
  240. 174 .loc 1 34 11 discriminator 1
  241. 175 008e 1BE0 b .L36
  242. 176 .L2:
  243. 55:user_src/soft_okcell.c **** }
  244. 56:user_src/soft_okcell.c **** }
  245. 57:user_src/soft_okcell.c **** else if(cellCanID == okcell_device1.deviceCanID)
  246. 177 .loc 1 57 40
  247. 178 0090 6F4B ldr r3, .L44
  248. 179 0092 1B68 ldr r3, [r3]
  249. 180 .loc 1 57 12
  250. 181 0094 FA68 ldr r2, [r7, #12]
  251. 182 0096 9A42 cmp r2, r3
  252. 183 0098 08D1 bne .L10
  253. 58:user_src/soft_okcell.c **** {
  254. 59:user_src/soft_okcell.c **** OKIdCode1counts = RESET_OKIDCODE_DELAY;
  255. 184 .loc 1 59 25
  256. 185 009a 6F4B ldr r3, .L44+8
  257. 186 009c 0322 movs r2, #3
  258. 187 009e 1A70 strb r2, [r3]
  259. 60:user_src/soft_okcell.c ****
  260. 61:user_src/soft_okcell.c **** OKptr = &okcell_device1;
  261. 188 .loc 1 61 15
  262. 189 00a0 6B4B ldr r3, .L44
  263. 190 00a2 7B62 str r3, [r7, #36]
  264. 62:user_src/soft_okcell.c **** OKptr->deviceCanID = cellCanID;
  265. 191 .loc 1 62 28
  266. 192 00a4 7B6A ldr r3, [r7, #36]
  267. 193 00a6 FA68 ldr r2, [r7, #12]
  268. 194 00a8 1A60 str r2, [r3] @ unaligned
  269. 195 00aa 0EE0 b .L9
  270. 196 .L10:
  271. 63:user_src/soft_okcell.c **** }
  272. 64:user_src/soft_okcell.c **** else if(cellCanID == okcell_device2.deviceCanID)
  273. 197 .loc 1 64 40
  274. 198 00ac 694B ldr r3, .L44+4
  275. 199 00ae 1B68 ldr r3, [r3]
  276. 200 .loc 1 64 12
  277. 201 00b0 FA68 ldr r2, [r7, #12]
  278. 202 00b2 9A42 cmp r2, r3
  279. 203 00b4 09D1 bne .L9
  280. 65:user_src/soft_okcell.c **** {
  281. 66:user_src/soft_okcell.c **** OKIdCode2counts = RESET_OKIDCODE_DELAY;
  282. 204 .loc 1 66 25
  283. 205 00b6 6A4B ldr r3, .L44+16
  284. 206 00b8 0322 movs r2, #3
  285. 207 00ba 1A70 strb r2, [r3]
  286. 67:user_src/soft_okcell.c ****
  287. 68:user_src/soft_okcell.c **** OKptr = &okcell_device2;
  288. 208 .loc 1 68 15
  289. 209 00bc 654B ldr r3, .L44+4
  290. 210 00be 7B62 str r3, [r7, #36]
  291. ARM GAS C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s page 6
  292. 69:user_src/soft_okcell.c **** OKptr->deviceCanID = cellCanID;
  293. 211 .loc 1 69 28
  294. 212 00c0 7B6A ldr r3, [r7, #36]
  295. 213 00c2 FA68 ldr r2, [r7, #12]
  296. 214 00c4 1A60 str r2, [r3] @ unaligned
  297. 215 00c6 00E0 b .L9
  298. 216 .L36:
  299. 34:user_src/soft_okcell.c **** OKIdCode1counts = RESET_OKIDCODE_DELAY;
  300. 217 .loc 1 34 11
  301. 218 00c8 00BF nop
  302. 219 .L9:
  303. 70:user_src/soft_okcell.c **** }
  304. 71:user_src/soft_okcell.c ****
  305. 72:user_src/soft_okcell.c ****
  306. 73:user_src/soft_okcell.c **** //如果指针找到了存放数据的结构体
  307. 74:user_src/soft_okcell.c **** if(OKptr != NULL)
  308. 220 .loc 1 74 7
  309. 221 00ca 7B6A ldr r3, [r7, #36]
  310. 222 00cc 002B cmp r3, #0
  311. 223 00ce 00F0D581 beq .L37
  312. 75:user_src/soft_okcell.c **** {
  313. 76:user_src/soft_okcell.c **** //找到开头,开始接收
  314. 77:user_src/soft_okcell.c **** //strncmp比较字符串,遇到'\0'会结束,所以不适合用字数组比较
  315. 78:user_src/soft_okcell.c **** if(memcmp(data,"ZFKJ",4) == 0){
  316. 224 .loc 1 78 12
  317. 225 00d2 0422 movs r2, #4
  318. 226 00d4 6349 ldr r1, .L44+20
  319. 227 00d6 B868 ldr r0, [r7, #8]
  320. 228 00d8 FFF7FEFF bl memcmp
  321. 229 00dc 0346 mov r3, r0
  322. 230 .loc 1 78 11
  323. 231 00de 002B cmp r3, #0
  324. 232 00e0 0AD1 bne .L12
  325. 79:user_src/soft_okcell.c **** OKptr->Okcell_recv_index = 0;
  326. 233 .loc 1 79 38
  327. 234 00e2 7B6A ldr r3, [r7, #36]
  328. 235 00e4 0022 movs r2, #0
  329. 236 00e6 83F8CC20 strb r2, [r3, #204]
  330. 237 00ea 0022 movs r2, #0
  331. 238 00ec 83F8CD20 strb r2, [r3, #205]
  332. 80:user_src/soft_okcell.c **** OKptr->Okcell_get_s = true;
  333. 239 .loc 1 80 33
  334. 240 00f0 7B6A ldr r3, [r7, #36]
  335. 241 00f2 0122 movs r2, #1
  336. 242 00f4 83F8CE20 strb r2, [r3, #206]
  337. 243 .L12:
  338. 81:user_src/soft_okcell.c **** }
  339. 82:user_src/soft_okcell.c ****
  340. 83:user_src/soft_okcell.c **** //溢出检测
  341. 84:user_src/soft_okcell.c **** if(OKptr->Okcell_recv_index + len > OKCELL_MAXLEN)
  342. 244 .loc 1 84 17
  343. 245 00f8 7B6A ldr r3, [r7, #36]
  344. 246 00fa B3F9CC30 ldrsh r3, [r3, #204] @ unaligned
  345. 247 00fe 1BB2 sxth r3, r3
  346. 248 0100 1A46 mov r2, r3
  347. 249 .loc 1 84 37
  348. 250 0102 FB79 ldrb r3, [r7, #7] @ zero_extendqisi2
  349. ARM GAS C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s page 7
  350. 251 0104 1344 add r3, r3, r2
  351. 252 .loc 1 84 11
  352. 253 0106 C82B cmp r3, #200
  353. 254 0108 14DD ble .L13
  354. 85:user_src/soft_okcell.c **** {
  355. 86:user_src/soft_okcell.c **** memset(OKptr->Okcell_recv_buf,0,OKptr->Okcell_recv_index);
  356. 255 .loc 1 86 25
  357. 256 010a 7B6A ldr r3, [r7, #36]
  358. 257 010c 181D adds r0, r3, #4
  359. 258 .loc 1 86 50
  360. 259 010e 7B6A ldr r3, [r7, #36]
  361. 260 0110 B3F9CC30 ldrsh r3, [r3, #204] @ unaligned
  362. 261 0114 1BB2 sxth r3, r3
  363. 262 .loc 1 86 13
  364. 263 0116 1A46 mov r2, r3
  365. 264 0118 0021 movs r1, #0
  366. 265 011a FFF7FEFF bl memset
  367. 87:user_src/soft_okcell.c **** OKptr->Okcell_recv_index = 0;
  368. 266 .loc 1 87 38
  369. 267 011e 7B6A ldr r3, [r7, #36]
  370. 268 0120 0022 movs r2, #0
  371. 269 0122 83F8CC20 strb r2, [r3, #204]
  372. 270 0126 0022 movs r2, #0
  373. 271 0128 83F8CD20 strb r2, [r3, #205]
  374. 88:user_src/soft_okcell.c **** OKptr->Okcell_get_s = false;
  375. 272 .loc 1 88 33
  376. 273 012c 7B6A ldr r3, [r7, #36]
  377. 274 012e 0022 movs r2, #0
  378. 275 0130 83F8CE20 strb r2, [r3, #206]
  379. 276 .L13:
  380. 89:user_src/soft_okcell.c **** }
  381. 90:user_src/soft_okcell.c ****
  382. 91:user_src/soft_okcell.c **** //接收到起始标志后开始存数组
  383. 92:user_src/soft_okcell.c **** if(OKptr->Okcell_get_s == true){
  384. 277 .loc 1 92 17
  385. 278 0134 7B6A ldr r3, [r7, #36]
  386. 279 0136 93F8CE30 ldrb r3, [r3, #206] @ zero_extendqisi2
  387. 280 .loc 1 92 11
  388. 281 013a 002B cmp r3, #0
  389. 282 013c 19D0 beq .L14
  390. 93:user_src/soft_okcell.c **** //复制数据
  391. 94:user_src/soft_okcell.c **** memcpy(&OKptr->Okcell_recv_buf[OKptr->Okcell_recv_index], data, len);
  392. 283 .loc 1 94 49
  393. 284 013e 7B6A ldr r3, [r7, #36]
  394. 285 0140 B3F9CC30 ldrsh r3, [r3, #204] @ unaligned
  395. 286 0144 1BB2 sxth r3, r3
  396. 287 0146 1A46 mov r2, r3
  397. 288 .loc 1 94 20
  398. 289 0148 7B6A ldr r3, [r7, #36]
  399. 290 014a 1344 add r3, r3, r2
  400. 291 014c 0433 adds r3, r3, #4
  401. 292 .loc 1 94 13
  402. 293 014e FA79 ldrb r2, [r7, #7] @ zero_extendqisi2
  403. 294 0150 B968 ldr r1, [r7, #8]
  404. 295 0152 1846 mov r0, r3
  405. 296 0154 FFF7FEFF bl memcpy
  406. 95:user_src/soft_okcell.c **** OKptr->Okcell_recv_index += len;
  407. ARM GAS C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s page 8
  408. 297 .loc 1 95 38
  409. 298 0158 7B6A ldr r3, [r7, #36]
  410. 299 015a B3F9CC30 ldrsh r3, [r3, #204] @ unaligned
  411. 300 015e 1BB2 sxth r3, r3
  412. 301 0160 9AB2 uxth r2, r3
  413. 302 0162 FB79 ldrb r3, [r7, #7] @ zero_extendqisi2
  414. 303 0164 9BB2 uxth r3, r3
  415. 304 0166 1344 add r3, r3, r2
  416. 305 0168 9BB2 uxth r3, r3
  417. 306 016a 1AB2 sxth r2, r3
  418. 307 016c 7B6A ldr r3, [r7, #36]
  419. 308 016e A3F8CC20 strh r2, [r3, #204] @ unaligned
  420. 309 .L14:
  421. 96:user_src/soft_okcell.c **** }
  422. 97:user_src/soft_okcell.c ****
  423. 98:user_src/soft_okcell.c ****
  424. 99:user_src/soft_okcell.c **** //找到结尾,开始解析,不能用strstr
  425. 100:user_src/soft_okcell.c **** if(OKptr->Okcell_get_s == true && findStrInArray(OKptr->Okcell_recv_buf, OKptr->Okcell_recv
  426. 310 .loc 1 100 17
  427. 311 0172 7B6A ldr r3, [r7, #36]
  428. 312 0174 93F8CE30 ldrb r3, [r3, #206] @ zero_extendqisi2
  429. 313 .loc 1 100 11
  430. 314 0178 002B cmp r3, #0
  431. 315 017a 00F07F81 beq .L37
  432. 316 .loc 1 100 63 discriminator 1
  433. 317 017e 7B6A ldr r3, [r7, #36]
  434. 318 0180 181D adds r0, r3, #4
  435. 319 .loc 1 100 87 discriminator 1
  436. 320 0182 7B6A ldr r3, [r7, #36]
  437. 321 0184 B3F9CC30 ldrsh r3, [r3, #204] @ unaligned
  438. 322 0188 1BB2 sxth r3, r3
  439. 323 .loc 1 100 43 discriminator 1
  440. 324 018a 374A ldr r2, .L44+24
  441. 325 018c 1946 mov r1, r3
  442. 326 018e FFF7FEFF bl findStrInArray
  443. 327 0192 0346 mov r3, r0
  444. 328 .loc 1 100 40 discriminator 1
  445. 329 0194 002B cmp r3, #0
  446. 330 0196 00F07181 beq .L37
  447. 331 .LBB2:
  448. 101:user_src/soft_okcell.c **** {
  449. 102:user_src/soft_okcell.c **** OKptr->Okcell_get_s = false;
  450. 332 .loc 1 102 33
  451. 333 019a 7B6A ldr r3, [r7, #36]
  452. 334 019c 0022 movs r2, #0
  453. 335 019e 83F8CE20 strb r2, [r3, #206]
  454. 103:user_src/soft_okcell.c ****
  455. 104:user_src/soft_okcell.c **** unsigned char loadflag = OKptr->Okcell_recv_buf[7];
  456. 336 .loc 1 104 27
  457. 337 01a2 7B6A ldr r3, [r7, #36]
  458. 338 01a4 DB7A ldrb r3, [r3, #11]
  459. 339 01a6 FB77 strb r3, [r7, #31]
  460. 105:user_src/soft_okcell.c **** //负载标识为固定的OxBB
  461. 106:user_src/soft_okcell.c **** if(loadflag == 0xBB)
  462. 340 .loc 1 106 15
  463. 341 01a8 FB7F ldrb r3, [r7, #31] @ zero_extendqisi2
  464. 342 01aa BB2B cmp r3, #187
  465. ARM GAS C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s page 9
  466. 343 01ac 40F04A81 bne .L38
  467. 344 .LBB3:
  468. 107:user_src/soft_okcell.c **** {
  469. 108:user_src/soft_okcell.c **** unsigned char cellLoadLen = OKptr->Okcell_recv_buf[6];
  470. 345 .loc 1 108 31
  471. 346 01b0 7B6A ldr r3, [r7, #36]
  472. 347 01b2 9B7A ldrb r3, [r3, #10]
  473. 348 01b4 BB77 strb r3, [r7, #30]
  474. 109:user_src/soft_okcell.c ****
  475. 110:user_src/soft_okcell.c **** //避免错误数据造成的数组溢出
  476. 111:user_src/soft_okcell.c **** if(cellLoadLen < OKCELL_MAXLEN-9)
  477. 349 .loc 1 111 19
  478. 350 01b6 BB7F ldrb r3, [r7, #30] @ zero_extendqisi2
  479. 351 01b8 BE2B cmp r3, #190
  480. 352 01ba 00F24381 bhi .L38
  481. 353 .LBB4:
  482. 112:user_src/soft_okcell.c **** {
  483. 113:user_src/soft_okcell.c **** unsigned int cellCheck = OKptr->Okcell_recv_buf[8+cellLoadLen]*256 + OKptr->Okc
  484. 354 .loc 1 113 70
  485. 355 01be BB7F ldrb r3, [r7, #30] @ zero_extendqisi2
  486. 356 01c0 0833 adds r3, r3, #8
  487. 357 .loc 1 113 68
  488. 358 01c2 7A6A ldr r2, [r7, #36]
  489. 359 01c4 1344 add r3, r3, r2
  490. 360 01c6 1B79 ldrb r3, [r3, #4] @ zero_extendqisi2
  491. 361 .loc 1 113 83
  492. 362 01c8 1B02 lsls r3, r3, #8
  493. 363 .loc 1 113 114
  494. 364 01ca BA7F ldrb r2, [r7, #30] @ zero_extendqisi2
  495. 365 01cc 0932 adds r2, r2, #9
  496. 366 .loc 1 113 112
  497. 367 01ce 796A ldr r1, [r7, #36]
  498. 368 01d0 0A44 add r2, r2, r1
  499. 369 01d2 1279 ldrb r2, [r2, #4] @ zero_extendqisi2
  500. 370 .loc 1 113 88
  501. 371 01d4 1344 add r3, r3, r2
  502. 372 .loc 1 113 34
  503. 373 01d6 BB61 str r3, [r7, #24]
  504. 114:user_src/soft_okcell.c **** //校验通过,测试没通过
  505. 115:user_src/soft_okcell.c **** if(((crc_ccitt(&OKptr->Okcell_recv_buf[8], cellLoadLen))&0xffff) == cellCheck)
  506. 374 .loc 1 115 26
  507. 375 01d8 7B6A ldr r3, [r7, #36]
  508. 376 01da 0C33 adds r3, r3, #12
  509. 377 01dc BA7F ldrb r2, [r7, #30] @ zero_extendqisi2
  510. 378 01de 1146 mov r1, r2
  511. 379 01e0 1846 mov r0, r3
  512. 380 01e2 FFF7FEFF bl crc_ccitt
  513. 381 01e6 0346 mov r3, r0
  514. 382 .loc 1 115 77
  515. 383 01e8 9BB2 uxth r3, r3
  516. 384 .loc 1 115 23
  517. 385 01ea BA69 ldr r2, [r7, #24]
  518. 386 01ec 9A42 cmp r2, r3
  519. 387 01ee 40F02981 bne .L38
  520. 388 .LBB5:
  521. 116:user_src/soft_okcell.c **** {
  522. 117:user_src/soft_okcell.c **** unsigned short cellCmd = (OKptr->Okcell_recv_buf[4]<<8) + OKptr->Okcell_rec
  523. ARM GAS C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s page 10
  524. 389 .loc 1 117 73
  525. 390 01f2 7B6A ldr r3, [r7, #36]
  526. 391 01f4 1B7A ldrb r3, [r3, #8] @ zero_extendqisi2
  527. 392 01f6 9BB2 uxth r3, r3
  528. 393 .loc 1 117 76
  529. 394 01f8 1B02 lsls r3, r3, #8
  530. 395 01fa 9AB2 uxth r2, r3
  531. 396 .loc 1 117 105
  532. 397 01fc 7B6A ldr r3, [r7, #36]
  533. 398 01fe 5B7A ldrb r3, [r3, #9] @ zero_extendqisi2
  534. 399 0200 9BB2 uxth r3, r3
  535. 400 .loc 1 117 40
  536. 401 0202 1344 add r3, r3, r2
  537. 402 0204 FB82 strh r3, [r7, #22] @ movhi
  538. 118:user_src/soft_okcell.c ****
  539. 119:user_src/soft_okcell.c **** OKptr->Okcell_Link.connect_status = COMP_NORMAL;
  540. 403 .loc 1 119 59
  541. 404 0206 7B6A ldr r3, [r7, #36]
  542. 405 0208 0122 movs r2, #1
  543. 406 020a 83F8D720 strb r2, [r3, #215]
  544. 120:user_src/soft_okcell.c ****
  545. 121:user_src/soft_okcell.c **** //用于判断电池波特率锁定,实测只要给电池发送数据,电池收到后就会锁定波特率
  546. 122:user_src/soft_okcell.c **** //由于锁定波特率缺少反馈应答,5s内收到多于10包正确的数据则认为波特率锁定成�
  547. 123:user_src/soft_okcell.c **** if(OKptr->cell_bps_lock_success == false)
  548. 407 .loc 1 123 33
  549. 408 020e 7B6A ldr r3, [r7, #36]
  550. 409 0210 93F8E130 ldrb r3, [r3, #225] @ zero_extendqisi2
  551. 410 .loc 1 123 57
  552. 411 0214 83F00103 eor r3, r3, #1
  553. 412 0218 DBB2 uxtb r3, r3
  554. 413 .loc 1 123 27
  555. 414 021a 002B cmp r3, #0
  556. 415 021c 43D0 beq .L16
  557. 124:user_src/soft_okcell.c **** {
  558. 125:user_src/soft_okcell.c **** OKptr->recv_celldata_counts++;
  559. 416 .loc 1 125 34
  560. 417 021e 7B6A ldr r3, [r7, #36]
  561. 418 0220 B3F9E230 ldrsh r3, [r3, #226] @ unaligned
  562. 419 0224 1BB2 sxth r3, r3
  563. 420 .loc 1 125 56
  564. 421 0226 9BB2 uxth r3, r3
  565. 422 0228 0133 adds r3, r3, #1
  566. 423 022a 9BB2 uxth r3, r3
  567. 424 022c 1AB2 sxth r2, r3
  568. 425 022e 7B6A ldr r3, [r7, #36]
  569. 426 0230 A3F8E220 strh r2, [r3, #226] @ unaligned
  570. 126:user_src/soft_okcell.c **** if(OKptr->recv_celldata_counts == 1){
  571. 427 .loc 1 126 37
  572. 428 0234 7B6A ldr r3, [r7, #36]
  573. 429 0236 B3F9E230 ldrsh r3, [r3, #226] @ unaligned
  574. 430 023a 1BB2 sxth r3, r3
  575. 431 .loc 1 126 31
  576. 432 023c 012B cmp r3, #1
  577. 433 023e 15D1 bne .L17
  578. 127:user_src/soft_okcell.c **** OKptr->recv_celldata_time = HAL_GetTick();
  579. 434 .loc 1 127 61
  580. 435 0240 FFF7FEFF bl HAL_GetTick
  581. ARM GAS C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s page 11
  582. 436 0244 0246 mov r2, r0
  583. 437 .loc 1 127 59
  584. 438 0246 7B6A ldr r3, [r7, #36]
  585. 439 0248 C3F8E420 str r2, [r3, #228] @ unaligned
  586. 440 024c 2BE0 b .L16
  587. 441 .L45:
  588. 442 024e 00BF .align 2
  589. 443 .L44:
  590. 444 0250 00000000 .word okcell_device1
  591. 445 0254 00000000 .word okcell_device2
  592. 446 0258 00000000 .word OKIdCode1counts.1
  593. 447 025c 00000000 .word group_num
  594. 448 0260 00000000 .word OKIdCode2counts.0
  595. 449 0264 00000000 .word .LC0
  596. 450 0268 08000000 .word .LC1
  597. 451 .L17:
  598. 128:user_src/soft_okcell.c **** }
  599. 129:user_src/soft_okcell.c **** else if(OKptr->recv_celldata_counts >= 10)
  600. 452 .loc 1 129 42
  601. 453 026c 7B6A ldr r3, [r7, #36]
  602. 454 026e B3F9E230 ldrsh r3, [r3, #226] @ unaligned
  603. 455 0272 1BB2 sxth r3, r3
  604. 456 .loc 1 129 36
  605. 457 0274 092B cmp r3, #9
  606. 458 0276 16DD ble .L16
  607. 459 .LBB6:
  608. 130:user_src/soft_okcell.c **** {
  609. 131:user_src/soft_okcell.c **** OKptr->recv_celldata_counts = 0;
  610. 460 .loc 1 131 61
  611. 461 0278 7B6A ldr r3, [r7, #36]
  612. 462 027a 0022 movs r2, #0
  613. 463 027c 83F8E220 strb r2, [r3, #226]
  614. 464 0280 0022 movs r2, #0
  615. 465 0282 83F8E320 strb r2, [r3, #227]
  616. 132:user_src/soft_okcell.c **** uint32_t timeperiod = HAL_GetTick() - OKptr->recv_celldata_time;
  617. 466 .loc 1 132 55
  618. 467 0286 FFF7FEFF bl HAL_GetTick
  619. 468 028a 0246 mov r2, r0
  620. 469 .loc 1 132 76
  621. 470 028c 7B6A ldr r3, [r7, #36]
  622. 471 028e D3F8E430 ldr r3, [r3, #228] @ unaligned
  623. 472 .loc 1 132 42
  624. 473 0292 D31A subs r3, r2, r3
  625. 474 0294 3B61 str r3, [r7, #16]
  626. 133:user_src/soft_okcell.c **** if(timeperiod < 5000000)
  627. 475 .loc 1 133 35
  628. 476 0296 3B69 ldr r3, [r7, #16]
  629. 477 0298 7A4A ldr r2, .L46
  630. 478 029a 9342 cmp r3, r2
  631. 479 029c 03D8 bhi .L16
  632. 134:user_src/soft_okcell.c **** {
  633. 135:user_src/soft_okcell.c **** OKptr->cell_bps_lock_success = true;
  634. 480 .loc 1 135 66
  635. 481 029e 7B6A ldr r3, [r7, #36]
  636. 482 02a0 0122 movs r2, #1
  637. 483 02a2 83F8E120 strb r2, [r3, #225]
  638. 484 .L16:
  639. ARM GAS C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s page 12
  640. 485 .LBE6:
  641. 136:user_src/soft_okcell.c **** }
  642. 137:user_src/soft_okcell.c **** }
  643. 138:user_src/soft_okcell.c **** }
  644. 139:user_src/soft_okcell.c ****
  645. 140:user_src/soft_okcell.c **** //更新电池数据到来时间
  646. 141:user_src/soft_okcell.c **** OKptr->Okcell_Link.recv_time = HAL_GetTick();
  647. 486 .loc 1 141 56
  648. 487 02a6 FFF7FEFF bl HAL_GetTick
  649. 488 02aa 0246 mov r2, r0
  650. 489 .loc 1 141 54
  651. 490 02ac 7B6A ldr r3, [r7, #36]
  652. 491 02ae C3F8CF20 str r2, [r3, #207] @ unaligned
  653. 142:user_src/soft_okcell.c ****
  654. 143:user_src/soft_okcell.c **** switch(cellCmd)
  655. 492 .loc 1 143 25
  656. 493 02b2 FB8A ldrh r3, [r7, #22]
  657. 494 02b4 B3F5034F cmp r3, #33536
  658. 495 02b8 00F0A080 beq .L18
  659. 496 02bc B3F5034F cmp r3, #33536
  660. 497 02c0 00F3C280 bgt .L39
  661. 498 02c4 B3F5024F cmp r3, #33280
  662. 499 02c8 69D0 beq .L20
  663. 500 02ca B3F5024F cmp r3, #33280
  664. 501 02ce 00F3BB80 bgt .L39
  665. 502 02d2 002B cmp r3, #0
  666. 503 02d4 03D0 beq .L21
  667. 504 02d6 B3F5407F cmp r3, #768
  668. 505 02da 31D0 beq .L22
  669. 144:user_src/soft_okcell.c **** {
  670. 145:user_src/soft_okcell.c **** case 0x0000:
  671. 146:user_src/soft_okcell.c **** //stm32为小段模式,OKCELL发送过来的数据为大端模式,不能使用memcpy
  672. 147:user_src/soft_okcell.c **** //memcpy(&cell_D0,&Okcell_recv_buf[8],cellLoadLen);
  673. 148:user_src/soft_okcell.c **** //避免电池厂家私自增加协议造成的数组溢出
  674. 149:user_src/soft_okcell.c **** if(cellLoadLen <= sizeof(_CELL_D0))
  675. 150:user_src/soft_okcell.c **** {
  676. 151:user_src/soft_okcell.c **** for(unsigned char i=0; i<cellLoadLen/2; i++)
  677. 152:user_src/soft_okcell.c **** {
  678. 153:user_src/soft_okcell.c **** OKptr->okcell_inf.cell_D0.cell_d0[i] = (OKptr->Okcell_recv_
  679. 154:user_src/soft_okcell.c **** }
  680. 155:user_src/soft_okcell.c **** }
  681. 156:user_src/soft_okcell.c **** break;
  682. 157:user_src/soft_okcell.c **** case 0x0300:
  683. 158:user_src/soft_okcell.c **** //cell_inf1.cell_D3.cell_d3[4] = (Okcell_recv_buf[16] << 8) + Okcel
  684. 159:user_src/soft_okcell.c **** //避免电池厂家私自增加协议造成的数组溢出
  685. 160:user_src/soft_okcell.c **** if(cellLoadLen <= sizeof(_CELL_D3))
  686. 161:user_src/soft_okcell.c **** {
  687. 162:user_src/soft_okcell.c **** for(unsigned char i=0; i<cellLoadLen/2; i++)
  688. 163:user_src/soft_okcell.c **** {
  689. 164:user_src/soft_okcell.c **** OKptr->okcell_inf.cell_D3.cell_d3[i] = (OKptr->Okcell_recv_
  690. 165:user_src/soft_okcell.c **** }
  691. 166:user_src/soft_okcell.c **** }
  692. 167:user_src/soft_okcell.c **** break;
  693. 168:user_src/soft_okcell.c **** case 0x8200://SHA1加密文密码查询
  694. 169:user_src/soft_okcell.c **** //避免电池厂家私自增加协议造成的数组溢出
  695. 170:user_src/soft_okcell.c **** if(cellLoadLen <= sizeof(_CELL_P2))
  696. 171:user_src/soft_okcell.c **** {
  697. ARM GAS C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s page 13
  698. 172:user_src/soft_okcell.c **** for(unsigned char i=0; i<cellLoadLen; i++)
  699. 173:user_src/soft_okcell.c **** {
  700. 174:user_src/soft_okcell.c **** OKptr->okcell_inf.cell_P2.cell_p2[i] = OKptr->Okcell_recv_b
  701. 175:user_src/soft_okcell.c **** }
  702. 176:user_src/soft_okcell.c **** }
  703. 177:user_src/soft_okcell.c ****
  704. 178:user_src/soft_okcell.c **** if(memcmp(OKptr->okcell_inf.cell_P2.cell_p2, okcell_sha1_out, sizeo
  705. 179:user_src/soft_okcell.c **** {
  706. 180:user_src/soft_okcell.c **** //收到了正确密文
  707. 181:user_src/soft_okcell.c **** OKptr->get_cellEncryption = true;
  708. 182:user_src/soft_okcell.c **** }
  709. 183:user_src/soft_okcell.c **** break;
  710. 184:user_src/soft_okcell.c **** case 0x8300://获取电池编号
  711. 185:user_src/soft_okcell.c **** OKptr->get_cellNumber = true;
  712. 186:user_src/soft_okcell.c **** //避免电池厂家私自增加协议造成的数组溢出
  713. 187:user_src/soft_okcell.c **** if(cellLoadLen <= sizeof(_CELL_P3))
  714. 188:user_src/soft_okcell.c **** {
  715. 189:user_src/soft_okcell.c **** for(uint8_t i=0; i<cellLoadLen; i++)
  716. 190:user_src/soft_okcell.c **** {
  717. 191:user_src/soft_okcell.c **** OKptr->okcell_inf.cell_P3.cell_p3[i] = OKptr->Okcell_recv_b
  718. 192:user_src/soft_okcell.c **** }
  719. 193:user_src/soft_okcell.c **** }
  720. 194:user_src/soft_okcell.c **** break;
  721. 195:user_src/soft_okcell.c **** default:
  722. 196:user_src/soft_okcell.c **** break;
  723. 506 .loc 1 196 33
  724. 507 02dc B4E0 b .L39
  725. 508 .L21:
  726. 149:user_src/soft_okcell.c **** {
  727. 509 .loc 1 149 35
  728. 510 02de BB7F ldrb r3, [r7, #30] @ zero_extendqisi2
  729. 511 02e0 422B cmp r3, #66
  730. 512 02e2 00F2B380 bhi .L40
  731. 513 .LBB7:
  732. 151:user_src/soft_okcell.c **** {
  733. 514 .loc 1 151 55
  734. 515 02e6 0023 movs r3, #0
  735. 516 02e8 87F82330 strb r3, [r7, #35]
  736. 151:user_src/soft_okcell.c **** {
  737. 517 .loc 1 151 37
  738. 518 02ec 20E0 b .L24
  739. 519 .L25:
  740. 153:user_src/soft_okcell.c **** }
  741. 520 .loc 1 153 106 discriminator 3
  742. 521 02ee 97F82330 ldrb r3, [r7, #35] @ zero_extendqisi2
  743. 522 02f2 0433 adds r3, r3, #4
  744. 523 02f4 5B00 lsls r3, r3, #1
  745. 153:user_src/soft_okcell.c **** }
  746. 524 .loc 1 153 103 discriminator 3
  747. 525 02f6 7A6A ldr r2, [r7, #36]
  748. 526 02f8 1344 add r3, r3, r2
  749. 527 02fa 1B79 ldrb r3, [r3, #4] @ zero_extendqisi2
  750. 528 02fc 9BB2 uxth r3, r3
  751. 153:user_src/soft_okcell.c **** }
  752. 529 .loc 1 153 113 discriminator 3
  753. 530 02fe 1B02 lsls r3, r3, #8
  754. 531 0300 99B2 uxth r1, r3
  755. ARM GAS C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s page 14
  756. 153:user_src/soft_okcell.c **** }
  757. 532 .loc 1 153 149 discriminator 3
  758. 533 0302 97F82330 ldrb r3, [r7, #35] @ zero_extendqisi2
  759. 534 0306 5B00 lsls r3, r3, #1
  760. 153:user_src/soft_okcell.c **** }
  761. 535 .loc 1 153 146 discriminator 3
  762. 536 0308 0933 adds r3, r3, #9
  763. 153:user_src/soft_okcell.c **** }
  764. 537 .loc 1 153 143 discriminator 3
  765. 538 030a 7A6A ldr r2, [r7, #36]
  766. 539 030c 1344 add r3, r3, r2
  767. 540 030e 1B79 ldrb r3, [r3, #4] @ zero_extendqisi2
  768. 541 0310 9AB2 uxth r2, r3
  769. 153:user_src/soft_okcell.c **** }
  770. 542 .loc 1 153 74 discriminator 3
  771. 543 0312 97F82330 ldrb r3, [r7, #35] @ zero_extendqisi2
  772. 153:user_src/soft_okcell.c **** }
  773. 544 .loc 1 153 119 discriminator 3
  774. 545 0316 0A44 add r2, r2, r1
  775. 546 0318 91B2 uxth r1, r2
  776. 153:user_src/soft_okcell.c **** }
  777. 547 .loc 1 153 78 discriminator 3
  778. 548 031a 7A6A ldr r2, [r7, #36]
  779. 549 031c 7433 adds r3, r3, #116
  780. 550 031e 5B00 lsls r3, r3, #1
  781. 551 0320 1344 add r3, r3, r2
  782. 552 0322 0A46 mov r2, r1 @ movhi
  783. 553 0324 9A80 strh r2, [r3, #4] @ unaligned
  784. 151:user_src/soft_okcell.c **** {
  785. 554 .loc 1 151 78 discriminator 3
  786. 555 0326 97F82330 ldrb r3, [r7, #35] @ zero_extendqisi2
  787. 556 032a 0133 adds r3, r3, #1
  788. 557 032c 87F82330 strb r3, [r7, #35]
  789. 558 .L24:
  790. 151:user_src/soft_okcell.c **** {
  791. 559 .loc 1 151 61 discriminator 1
  792. 560 0330 BB7F ldrb r3, [r7, #30] @ zero_extendqisi2
  793. 561 0332 5B08 lsrs r3, r3, #1
  794. 562 0334 DBB2 uxtb r3, r3
  795. 151:user_src/soft_okcell.c **** {
  796. 563 .loc 1 151 37 discriminator 1
  797. 564 0336 97F82320 ldrb r2, [r7, #35] @ zero_extendqisi2
  798. 565 033a 9A42 cmp r2, r3
  799. 566 033c D7D3 bcc .L25
  800. 567 .LBE7:
  801. 156:user_src/soft_okcell.c **** case 0x0300:
  802. 568 .loc 1 156 33
  803. 569 033e 85E0 b .L40
  804. 570 .L22:
  805. 160:user_src/soft_okcell.c **** {
  806. 571 .loc 1 160 35
  807. 572 0340 BB7F ldrb r3, [r7, #30] @ zero_extendqisi2
  808. 573 0342 122B cmp r3, #18
  809. 574 0344 00F28480 bhi .L41
  810. 575 .LBB8:
  811. 162:user_src/soft_okcell.c **** {
  812. 576 .loc 1 162 55
  813. ARM GAS C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s page 15
  814. 577 0348 0023 movs r3, #0
  815. 578 034a 87F82230 strb r3, [r7, #34]
  816. 162:user_src/soft_okcell.c **** {
  817. 579 .loc 1 162 37
  818. 580 034e 1EE0 b .L27
  819. 581 .L28:
  820. 164:user_src/soft_okcell.c **** }
  821. 582 .loc 1 164 106 discriminator 3
  822. 583 0350 97F82230 ldrb r3, [r7, #34] @ zero_extendqisi2
  823. 584 0354 0433 adds r3, r3, #4
  824. 585 0356 5B00 lsls r3, r3, #1
  825. 164:user_src/soft_okcell.c **** }
  826. 586 .loc 1 164 103 discriminator 3
  827. 587 0358 7A6A ldr r2, [r7, #36]
  828. 588 035a 1344 add r3, r3, r2
  829. 589 035c 1B79 ldrb r3, [r3, #4] @ zero_extendqisi2
  830. 590 035e 9BB2 uxth r3, r3
  831. 164:user_src/soft_okcell.c **** }
  832. 591 .loc 1 164 113 discriminator 3
  833. 592 0360 1B02 lsls r3, r3, #8
  834. 593 0362 99B2 uxth r1, r3
  835. 164:user_src/soft_okcell.c **** }
  836. 594 .loc 1 164 149 discriminator 3
  837. 595 0364 97F82230 ldrb r3, [r7, #34] @ zero_extendqisi2
  838. 596 0368 5B00 lsls r3, r3, #1
  839. 164:user_src/soft_okcell.c **** }
  840. 597 .loc 1 164 146 discriminator 3
  841. 598 036a 0933 adds r3, r3, #9
  842. 164:user_src/soft_okcell.c **** }
  843. 599 .loc 1 164 143 discriminator 3
  844. 600 036c 7A6A ldr r2, [r7, #36]
  845. 601 036e 1344 add r3, r3, r2
  846. 602 0370 1B79 ldrb r3, [r3, #4] @ zero_extendqisi2
  847. 603 0372 9BB2 uxth r3, r3
  848. 164:user_src/soft_okcell.c **** }
  849. 604 .loc 1 164 74 discriminator 3
  850. 605 0374 97F82220 ldrb r2, [r7, #34] @ zero_extendqisi2
  851. 164:user_src/soft_okcell.c **** }
  852. 606 .loc 1 164 119 discriminator 3
  853. 607 0378 0B44 add r3, r3, r1
  854. 608 037a 99B2 uxth r1, r3
  855. 164:user_src/soft_okcell.c **** }
  856. 609 .loc 1 164 78 discriminator 3
  857. 610 037c 7B6A ldr r3, [r7, #36]
  858. 611 037e 9C32 adds r2, r2, #156
  859. 612 0380 23F81210 strh r1, [r3, r2, lsl #1] @ unaligned
  860. 162:user_src/soft_okcell.c **** {
  861. 613 .loc 1 162 78 discriminator 3
  862. 614 0384 97F82230 ldrb r3, [r7, #34] @ zero_extendqisi2
  863. 615 0388 0133 adds r3, r3, #1
  864. 616 038a 87F82230 strb r3, [r7, #34]
  865. 617 .L27:
  866. 162:user_src/soft_okcell.c **** {
  867. 618 .loc 1 162 61 discriminator 1
  868. 619 038e BB7F ldrb r3, [r7, #30] @ zero_extendqisi2
  869. 620 0390 5B08 lsrs r3, r3, #1
  870. 621 0392 DBB2 uxtb r3, r3
  871. ARM GAS C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s page 16
  872. 162:user_src/soft_okcell.c **** {
  873. 622 .loc 1 162 37 discriminator 1
  874. 623 0394 97F82220 ldrb r2, [r7, #34] @ zero_extendqisi2
  875. 624 0398 9A42 cmp r2, r3
  876. 625 039a D9D3 bcc .L28
  877. 626 .LBE8:
  878. 167:user_src/soft_okcell.c **** case 0x8200://SHA1加密文密码查询
  879. 627 .loc 1 167 33
  880. 628 039c 58E0 b .L41
  881. 629 .L20:
  882. 170:user_src/soft_okcell.c **** {
  883. 630 .loc 1 170 35
  884. 631 039e BB7F ldrb r3, [r7, #30] @ zero_extendqisi2
  885. 632 03a0 042B cmp r3, #4
  886. 633 03a2 1BD8 bhi .L29
  887. 634 .LBB9:
  888. 172:user_src/soft_okcell.c **** {
  889. 635 .loc 1 172 55
  890. 636 03a4 0023 movs r3, #0
  891. 637 03a6 87F82130 strb r3, [r7, #33]
  892. 172:user_src/soft_okcell.c **** {
  893. 638 .loc 1 172 37
  894. 639 03aa 12E0 b .L30
  895. 640 .L31:
  896. 174:user_src/soft_okcell.c **** }
  897. 641 .loc 1 174 105 discriminator 3
  898. 642 03ac 97F82130 ldrb r3, [r7, #33] @ zero_extendqisi2
  899. 643 03b0 03F10802 add r2, r3, #8
  900. 174:user_src/soft_okcell.c **** }
  901. 644 .loc 1 174 74 discriminator 3
  902. 645 03b4 97F82130 ldrb r3, [r7, #33] @ zero_extendqisi2
  903. 174:user_src/soft_okcell.c **** }
  904. 646 .loc 1 174 102 discriminator 3
  905. 647 03b8 796A ldr r1, [r7, #36]
  906. 648 03ba 0A44 add r2, r2, r1
  907. 649 03bc 1179 ldrb r1, [r2, #4] @ zero_extendqisi2
  908. 174:user_src/soft_okcell.c **** }
  909. 650 .loc 1 174 78 discriminator 3
  910. 651 03be 7A6A ldr r2, [r7, #36]
  911. 652 03c0 1344 add r3, r3, r2
  912. 653 03c2 0A46 mov r2, r1
  913. 654 03c4 83F85221 strb r2, [r3, #338]
  914. 172:user_src/soft_okcell.c **** {
  915. 655 .loc 1 172 76 discriminator 3
  916. 656 03c8 97F82130 ldrb r3, [r7, #33] @ zero_extendqisi2
  917. 657 03cc 0133 adds r3, r3, #1
  918. 658 03ce 87F82130 strb r3, [r7, #33]
  919. 659 .L30:
  920. 172:user_src/soft_okcell.c **** {
  921. 660 .loc 1 172 37 discriminator 1
  922. 661 03d2 97F82120 ldrb r2, [r7, #33] @ zero_extendqisi2
  923. 662 03d6 BB7F ldrb r3, [r7, #30] @ zero_extendqisi2
  924. 663 03d8 9A42 cmp r2, r3
  925. 664 03da E7D3 bcc .L31
  926. 665 .L29:
  927. 666 .LBE9:
  928. 178:user_src/soft_okcell.c **** {
  929. ARM GAS C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s page 17
  930. 667 .loc 1 178 68
  931. 668 03dc 7B6A ldr r3, [r7, #36]
  932. 669 03de 03F5A973 add r3, r3, #338
  933. 178:user_src/soft_okcell.c **** {
  934. 670 .loc 1 178 36
  935. 671 03e2 0422 movs r2, #4
  936. 672 03e4 2849 ldr r1, .L46+4
  937. 673 03e6 1846 mov r0, r3
  938. 674 03e8 FFF7FEFF bl memcmp
  939. 675 03ec 0346 mov r3, r0
  940. 178:user_src/soft_okcell.c **** {
  941. 676 .loc 1 178 35
  942. 677 03ee 002B cmp r3, #0
  943. 678 03f0 30D1 bne .L42
  944. 181:user_src/soft_okcell.c **** }
  945. 679 .loc 1 181 63
  946. 680 03f2 7B6A ldr r3, [r7, #36]
  947. 681 03f4 0122 movs r2, #1
  948. 682 03f6 83F8DC20 strb r2, [r3, #220]
  949. 183:user_src/soft_okcell.c **** case 0x8300://获取电池编号
  950. 683 .loc 1 183 33
  951. 684 03fa 2BE0 b .L42
  952. 685 .L18:
  953. 185:user_src/soft_okcell.c **** //避免电池厂家私自增加协议造成的数组溢出
  954. 686 .loc 1 185 55
  955. 687 03fc 7B6A ldr r3, [r7, #36]
  956. 688 03fe 0122 movs r2, #1
  957. 689 0400 83F8DB20 strb r2, [r3, #219]
  958. 187:user_src/soft_okcell.c **** {
  959. 690 .loc 1 187 35
  960. 691 0404 BB7F ldrb r3, [r7, #30] @ zero_extendqisi2
  961. 692 0406 0C2B cmp r3, #12
  962. 693 0408 26D8 bhi .L43
  963. 694 .LBB10:
  964. 189:user_src/soft_okcell.c **** {
  965. 695 .loc 1 189 49
  966. 696 040a 0023 movs r3, #0
  967. 697 040c 87F82030 strb r3, [r7, #32]
  968. 189:user_src/soft_okcell.c **** {
  969. 698 .loc 1 189 37
  970. 699 0410 12E0 b .L34
  971. 700 .L35:
  972. 191:user_src/soft_okcell.c **** }
  973. 701 .loc 1 191 105 discriminator 3
  974. 702 0412 97F82030 ldrb r3, [r7, #32] @ zero_extendqisi2
  975. 703 0416 03F10802 add r2, r3, #8
  976. 191:user_src/soft_okcell.c **** }
  977. 704 .loc 1 191 74 discriminator 3
  978. 705 041a 97F82030 ldrb r3, [r7, #32] @ zero_extendqisi2
  979. 191:user_src/soft_okcell.c **** }
  980. 706 .loc 1 191 102 discriminator 3
  981. 707 041e 796A ldr r1, [r7, #36]
  982. 708 0420 0A44 add r2, r2, r1
  983. 709 0422 1179 ldrb r1, [r2, #4] @ zero_extendqisi2
  984. 191:user_src/soft_okcell.c **** }
  985. 710 .loc 1 191 78 discriminator 3
  986. 711 0424 7A6A ldr r2, [r7, #36]
  987. ARM GAS C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s page 18
  988. 712 0426 1344 add r3, r3, r2
  989. 713 0428 0A46 mov r2, r1
  990. 714 042a 83F85621 strb r2, [r3, #342]
  991. 189:user_src/soft_okcell.c **** {
  992. 715 .loc 1 189 70 discriminator 3
  993. 716 042e 97F82030 ldrb r3, [r7, #32] @ zero_extendqisi2
  994. 717 0432 0133 adds r3, r3, #1
  995. 718 0434 87F82030 strb r3, [r7, #32]
  996. 719 .L34:
  997. 189:user_src/soft_okcell.c **** {
  998. 720 .loc 1 189 37 discriminator 1
  999. 721 0438 97F82020 ldrb r2, [r7, #32] @ zero_extendqisi2
  1000. 722 043c BB7F ldrb r3, [r7, #30] @ zero_extendqisi2
  1001. 723 043e 9A42 cmp r2, r3
  1002. 724 0440 E7D3 bcc .L35
  1003. 725 .LBE10:
  1004. 194:user_src/soft_okcell.c **** default:
  1005. 726 .loc 1 194 33
  1006. 727 0442 09E0 b .L43
  1007. 728 .L38:
  1008. 197:user_src/soft_okcell.c **** }
  1009. 198:user_src/soft_okcell.c **** }
  1010. 729 .loc 1 198 21
  1011. 730 0444 00BF nop
  1012. 731 0446 08E0 b .L15
  1013. 732 .L39:
  1014. 196:user_src/soft_okcell.c **** }
  1015. 733 .loc 1 196 33
  1016. 734 0448 00BF nop
  1017. 735 044a 06E0 b .L15
  1018. 736 .L40:
  1019. 156:user_src/soft_okcell.c **** case 0x0300:
  1020. 737 .loc 1 156 33
  1021. 738 044c 00BF nop
  1022. 739 044e 04E0 b .L15
  1023. 740 .L41:
  1024. 167:user_src/soft_okcell.c **** case 0x8200://SHA1加密文密码查询
  1025. 741 .loc 1 167 33
  1026. 742 0450 00BF nop
  1027. 743 0452 02E0 b .L15
  1028. 744 .L42:
  1029. 183:user_src/soft_okcell.c **** case 0x8300://获取电池编号
  1030. 745 .loc 1 183 33
  1031. 746 0454 00BF nop
  1032. 747 0456 00E0 b .L15
  1033. 748 .L43:
  1034. 194:user_src/soft_okcell.c **** default:
  1035. 749 .loc 1 194 33
  1036. 750 0458 00BF nop
  1037. 751 .L15:
  1038. 752 .LBE5:
  1039. 753 .LBE4:
  1040. 754 .LBE3:
  1041. 199:user_src/soft_okcell.c **** }
  1042. 200:user_src/soft_okcell.c **** }
  1043. 201:user_src/soft_okcell.c ****
  1044. 202:user_src/soft_okcell.c **** //清理buff
  1045. ARM GAS C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s page 19
  1046. 203:user_src/soft_okcell.c **** memset(OKptr->Okcell_recv_buf,0,OKptr->Okcell_recv_index);
  1047. 755 .loc 1 203 25
  1048. 756 045a 7B6A ldr r3, [r7, #36]
  1049. 757 045c 181D adds r0, r3, #4
  1050. 758 .loc 1 203 50
  1051. 759 045e 7B6A ldr r3, [r7, #36]
  1052. 760 0460 B3F9CC30 ldrsh r3, [r3, #204] @ unaligned
  1053. 761 0464 1BB2 sxth r3, r3
  1054. 762 .loc 1 203 13
  1055. 763 0466 1A46 mov r2, r3
  1056. 764 0468 0021 movs r1, #0
  1057. 765 046a FFF7FEFF bl memset
  1058. 204:user_src/soft_okcell.c ****
  1059. 205:user_src/soft_okcell.c **** //包数完整重新计数
  1060. 206:user_src/soft_okcell.c **** OKptr->Okcell_recv_index = 0;
  1061. 766 .loc 1 206 38
  1062. 767 046e 7B6A ldr r3, [r7, #36]
  1063. 768 0470 0022 movs r2, #0
  1064. 769 0472 83F8CC20 strb r2, [r3, #204]
  1065. 770 0476 0022 movs r2, #0
  1066. 771 0478 83F8CD20 strb r2, [r3, #205]
  1067. 772 .L37:
  1068. 773 .LBE2:
  1069. 207:user_src/soft_okcell.c **** }
  1070. 208:user_src/soft_okcell.c **** }
  1071. 209:user_src/soft_okcell.c **** }
  1072. 774 .loc 1 209 1
  1073. 775 047c 00BF nop
  1074. 776 047e 2837 adds r7, r7, #40
  1075. 777 .LCFI3:
  1076. 778 .cfi_def_cfa_offset 8
  1077. 779 0480 BD46 mov sp, r7
  1078. 780 .LCFI4:
  1079. 781 .cfi_def_cfa_register 13
  1080. 782 @ sp needed
  1081. 783 0482 80BD pop {r7, pc}
  1082. 784 .L47:
  1083. 785 .align 2
  1084. 786 .L46:
  1085. 787 0484 3F4B4C00 .word 4999999
  1086. 788 0488 00000000 .word okcell_sha1_out
  1087. 789 .cfi_endproc
  1088. 790 .LFE130:
  1089. 792 .global okcell_p80
  1090. 793 .section .bss.okcell_p80,"aw",%nobits
  1091. 794 .align 2
  1092. 797 okcell_p80:
  1093. 798 0000 00000000 .space 14
  1094. 798 00000000
  1095. 798 00000000
  1096. 798 0000
  1097. 799 .global okcell_p82
  1098. 800 .section .bss.okcell_p82,"aw",%nobits
  1099. 801 .align 2
  1100. 804 okcell_p82:
  1101. 805 0000 00000000 .space 17
  1102. 805 00000000
  1103. ARM GAS C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s page 20
  1104. 805 00000000
  1105. 805 00000000
  1106. 805 00
  1107. 806 .global okcell_p83
  1108. 807 .section .bss.okcell_p83,"aw",%nobits
  1109. 808 .align 2
  1110. 811 okcell_p83:
  1111. 812 0000 00000000 .space 13
  1112. 812 00000000
  1113. 812 00000000
  1114. 812 00
  1115. 813 .global time_okcell_p80
  1116. 814 .section .bss.time_okcell_p80,"aw",%nobits
  1117. 815 .align 2
  1118. 818 time_okcell_p80:
  1119. 819 0000 00000000 .space 4
  1120. 820 .global time_okcell_p82
  1121. 821 .section .bss.time_okcell_p82,"aw",%nobits
  1122. 822 .align 2
  1123. 825 time_okcell_p82:
  1124. 826 0000 00000000 .space 4
  1125. 827 .global time_okcell_p83
  1126. 828 .section .bss.time_okcell_p83,"aw",%nobits
  1127. 829 .align 2
  1128. 832 time_okcell_p83:
  1129. 833 0000 00000000 .space 4
  1130. 834 .global send_okcell_p80data
  1131. 835 .section .bss.send_okcell_p80data,"aw",%nobits
  1132. 838 send_okcell_p80data:
  1133. 839 0000 00 .space 1
  1134. 840 .global send_okcell_p82data
  1135. 841 .section .bss.send_okcell_p82data,"aw",%nobits
  1136. 844 send_okcell_p82data:
  1137. 845 0000 00 .space 1
  1138. 846 .global send_okcell_p83data
  1139. 847 .section .bss.send_okcell_p83data,"aw",%nobits
  1140. 850 send_okcell_p83data:
  1141. 851 0000 00 .space 1
  1142. 852 .section .text.send_msg_to_okcell,"ax",%progbits
  1143. 853 .align 1
  1144. 854 .global send_msg_to_okcell
  1145. 855 .syntax unified
  1146. 856 .thumb
  1147. 857 .thumb_func
  1148. 859 send_msg_to_okcell:
  1149. 860 .LFB131:
  1150. 210:user_src/soft_okcell.c ****
  1151. 211:user_src/soft_okcell.c ****
  1152. 212:user_src/soft_okcell.c ****
  1153. 213:user_src/soft_okcell.c ****
  1154. 214:user_src/soft_okcell.c **** /*
  1155. 215:user_src/soft_okcell.c ****
  1156. 216:user_src/soft_okcell.c **** 上电前10s持续发送数据给智能电池,用于设置通信速率
  1157. 217:user_src/soft_okcell.c **** */
  1158. 218:user_src/soft_okcell.c ****
  1159. 219:user_src/soft_okcell.c ****
  1160. 220:user_src/soft_okcell.c ****
  1161. ARM GAS C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s page 21
  1162. 221:user_src/soft_okcell.c **** struct OkCell_P80 okcell_p80;
  1163. 222:user_src/soft_okcell.c **** struct OkCell_P82 okcell_p82;
  1164. 223:user_src/soft_okcell.c **** struct OkCell_P83 okcell_p83;
  1165. 224:user_src/soft_okcell.c ****
  1166. 225:user_src/soft_okcell.c **** uint32_t time_okcell_p80 = 0;
  1167. 226:user_src/soft_okcell.c **** uint32_t time_okcell_p82 = 0;
  1168. 227:user_src/soft_okcell.c **** uint32_t time_okcell_p83 = 0;
  1169. 228:user_src/soft_okcell.c **** bool send_okcell_p80data = false;
  1170. 229:user_src/soft_okcell.c **** bool send_okcell_p82data = false;
  1171. 230:user_src/soft_okcell.c **** bool send_okcell_p83data = false;
  1172. 231:user_src/soft_okcell.c ****
  1173. 232:user_src/soft_okcell.c **** void send_msg_to_okcell(void)
  1174. 233:user_src/soft_okcell.c **** {
  1175. 861 .loc 1 233 1
  1176. 862 .cfi_startproc
  1177. 863 @ args = 0, pretend = 0, frame = 8
  1178. 864 @ frame_needed = 1, uses_anonymous_args = 0
  1179. 865 0000 80B5 push {r7, lr}
  1180. 866 .LCFI5:
  1181. 867 .cfi_def_cfa_offset 8
  1182. 868 .cfi_offset 7, -8
  1183. 869 .cfi_offset 14, -4
  1184. 870 0002 82B0 sub sp, sp, #8
  1185. 871 .LCFI6:
  1186. 872 .cfi_def_cfa_offset 16
  1187. 873 0004 00AF add r7, sp, #0
  1188. 874 .LCFI7:
  1189. 875 .cfi_def_cfa_register 7
  1190. 234:user_src/soft_okcell.c **** //自动锁定波特率,正方电池开机自动循环500K/1M发送数据。正方电池缺少一个波特率锁定的反馈应答
  1191. 235:user_src/soft_okcell.c **** //电池开机会自动1M/500k切换波特率给飞控发信息,所以不用用是否连接来判断。
  1192. 236:user_src/soft_okcell.c **** if(/*okcell_device1.okcell_link_status == COMP_NOEXIST &&*/ send_okcell_p80data == false &&
  1193. 876 .loc 1 236 85
  1194. 877 0006 6D4B ldr r3, .L55
  1195. 878 0008 1B78 ldrb r3, [r3] @ zero_extendqisi2
  1196. 879 000a 83F00103 eor r3, r3, #1
  1197. 880 000e DBB2 uxtb r3, r3
  1198. 881 .loc 1 236 7
  1199. 882 0010 002B cmp r3, #0
  1200. 883 0012 55D0 beq .L49
  1201. 237:user_src/soft_okcell.c **** okcell_device1.cell_bps_lock_success == false && HAL_GetTick() < 30000 &&
  1202. 884 .loc 1 237 23 discriminator 1
  1203. 885 0014 6A4B ldr r3, .L55+4
  1204. 886 0016 93F8E130 ldrb r3, [r3, #225] @ zero_extendqisi2
  1205. 887 .loc 1 237 46 discriminator 1
  1206. 888 001a 83F00103 eor r3, r3, #1
  1207. 889 001e DBB2 uxtb r3, r3
  1208. 236:user_src/soft_okcell.c **** okcell_device1.cell_bps_lock_success == false && HAL_GetTick() < 30000 &&
  1209. 890 .loc 1 236 94 discriminator 1
  1210. 891 0020 002B cmp r3, #0
  1211. 892 0022 4DD0 beq .L49
  1212. 893 .loc 1 237 58
  1213. 894 0024 FFF7FEFF bl HAL_GetTick
  1214. 895 0028 0346 mov r3, r0
  1215. 896 .loc 1 237 55
  1216. 897 002a 47F22F52 movw r2, #29999
  1217. 898 002e 9342 cmp r3, r2
  1218. 899 0030 46D8 bhi .L49
  1219. ARM GAS C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s page 22
  1220. 238:user_src/soft_okcell.c **** HAL_GetTick() - time_okcell_p80 > 250)
  1221. 900 .loc 1 238 9 discriminator 1
  1222. 901 0032 FFF7FEFF bl HAL_GetTick
  1223. 902 0036 0246 mov r2, r0
  1224. 903 .loc 1 238 23 discriminator 1
  1225. 904 0038 624B ldr r3, .L55+8
  1226. 905 003a 1B68 ldr r3, [r3]
  1227. 906 003c D31A subs r3, r2, r3
  1228. 237:user_src/soft_okcell.c **** okcell_device1.cell_bps_lock_success == false && HAL_GetTick() < 30000 &&
  1229. 907 .loc 1 237 80 discriminator 1
  1230. 908 003e FA2B cmp r3, #250
  1231. 909 0040 3ED9 bls .L49
  1232. 910 .LBB11:
  1233. 239:user_src/soft_okcell.c **** {
  1234. 240:user_src/soft_okcell.c **** time_okcell_p80 = HAL_GetTick();
  1235. 911 .loc 1 240 27
  1236. 912 0042 FFF7FEFF bl HAL_GetTick
  1237. 913 0046 0346 mov r3, r0
  1238. 914 .loc 1 240 25
  1239. 915 0048 5E4A ldr r2, .L55+8
  1240. 916 004a 1360 str r3, [r2]
  1241. 241:user_src/soft_okcell.c ****
  1242. 242:user_src/soft_okcell.c **** okcell_p80.ok_s[0] = 'Z';
  1243. 917 .loc 1 242 28
  1244. 918 004c 5E4B ldr r3, .L55+12
  1245. 919 004e 5A22 movs r2, #90
  1246. 920 0050 1A70 strb r2, [r3]
  1247. 243:user_src/soft_okcell.c **** okcell_p80.ok_s[1] = 'F';
  1248. 921 .loc 1 243 28
  1249. 922 0052 5D4B ldr r3, .L55+12
  1250. 923 0054 4622 movs r2, #70
  1251. 924 0056 5A70 strb r2, [r3, #1]
  1252. 244:user_src/soft_okcell.c **** okcell_p80.ok_s[2] = 'K';
  1253. 925 .loc 1 244 28
  1254. 926 0058 5B4B ldr r3, .L55+12
  1255. 927 005a 4B22 movs r2, #75
  1256. 928 005c 9A70 strb r2, [r3, #2]
  1257. 245:user_src/soft_okcell.c **** okcell_p80.ok_s[3] = 'J';
  1258. 929 .loc 1 245 28
  1259. 930 005e 5A4B ldr r3, .L55+12
  1260. 931 0060 4A22 movs r2, #74
  1261. 932 0062 DA70 strb r2, [r3, #3]
  1262. 246:user_src/soft_okcell.c ****
  1263. 247:user_src/soft_okcell.c **** okcell_p80.ok_cmd[0] = 0x80;
  1264. 933 .loc 1 247 30
  1265. 934 0064 584B ldr r3, .L55+12
  1266. 935 0066 8022 movs r2, #128
  1267. 936 0068 1A71 strb r2, [r3, #4]
  1268. 248:user_src/soft_okcell.c **** okcell_p80.ok_cmd[1] = 0x00;
  1269. 937 .loc 1 248 30
  1270. 938 006a 574B ldr r3, .L55+12
  1271. 939 006c 0022 movs r2, #0
  1272. 940 006e 5A71 strb r2, [r3, #5]
  1273. 249:user_src/soft_okcell.c **** okcell_p80.ok_len = 1;
  1274. 941 .loc 1 249 27
  1275. 942 0070 554B ldr r3, .L55+12
  1276. 943 0072 0122 movs r2, #1
  1277. ARM GAS C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s page 23
  1278. 944 0074 9A71 strb r2, [r3, #6]
  1279. 250:user_src/soft_okcell.c **** okcell_p80.ok_flag = 0xbb;
  1280. 945 .loc 1 250 28
  1281. 946 0076 544B ldr r3, .L55+12
  1282. 947 0078 BB22 movs r2, #187
  1283. 948 007a DA71 strb r2, [r3, #7]
  1284. 251:user_src/soft_okcell.c **** okcell_p80.ok_data = 0x79;
  1285. 949 .loc 1 251 28
  1286. 950 007c 524B ldr r3, .L55+12
  1287. 951 007e 7922 movs r2, #121
  1288. 952 0080 1A72 strb r2, [r3, #8]
  1289. 252:user_src/soft_okcell.c ****
  1290. 253:user_src/soft_okcell.c **** short OKcellCRC = crc_ccitt((uint8_t *)&okcell_p80.ok_data,okcell_p80.ok_len);
  1291. 953 .loc 1 253 78
  1292. 954 0082 514B ldr r3, .L55+12
  1293. 955 0084 9B79 ldrb r3, [r3, #6] @ zero_extendqisi2
  1294. 956 .loc 1 253 27
  1295. 957 0086 1946 mov r1, r3
  1296. 958 0088 5048 ldr r0, .L55+16
  1297. 959 008a FFF7FEFF bl crc_ccitt
  1298. 960 008e 0346 mov r3, r0
  1299. 961 .loc 1 253 15
  1300. 962 0090 FB80 strh r3, [r7, #6] @ movhi
  1301. 254:user_src/soft_okcell.c **** okcell_p80.ok_crc[0] = (OKcellCRC>>8) & 0xff;
  1302. 963 .loc 1 254 30
  1303. 964 0092 B7F90630 ldrsh r3, [r7, #6]
  1304. 965 0096 1B12 asrs r3, r3, #8
  1305. 966 0098 1BB2 sxth r3, r3
  1306. 967 009a DAB2 uxtb r2, r3
  1307. 968 009c 4A4B ldr r3, .L55+12
  1308. 969 009e 5A72 strb r2, [r3, #9]
  1309. 255:user_src/soft_okcell.c **** okcell_p80.ok_crc[1] = OKcellCRC & 0xff;
  1310. 970 .loc 1 255 30
  1311. 971 00a0 FB88 ldrh r3, [r7, #6] @ movhi
  1312. 972 00a2 DAB2 uxtb r2, r3
  1313. 973 00a4 484B ldr r3, .L55+12
  1314. 974 00a6 9A72 strb r2, [r3, #10]
  1315. 256:user_src/soft_okcell.c ****
  1316. 257:user_src/soft_okcell.c **** okcell_p80.ok_e[0] = 'E';
  1317. 975 .loc 1 257 28
  1318. 976 00a8 474B ldr r3, .L55+12
  1319. 977 00aa 4522 movs r2, #69
  1320. 978 00ac DA72 strb r2, [r3, #11]
  1321. 258:user_src/soft_okcell.c **** okcell_p80.ok_e[1] = 'N';
  1322. 979 .loc 1 258 28
  1323. 980 00ae 464B ldr r3, .L55+12
  1324. 981 00b0 4E22 movs r2, #78
  1325. 982 00b2 1A73 strb r2, [r3, #12]
  1326. 259:user_src/soft_okcell.c **** okcell_p80.ok_e[2] = 'D';
  1327. 983 .loc 1 259 28
  1328. 984 00b4 444B ldr r3, .L55+12
  1329. 985 00b6 4422 movs r2, #68
  1330. 986 00b8 5A73 strb r2, [r3, #13]
  1331. 260:user_src/soft_okcell.c ****
  1332. 261:user_src/soft_okcell.c **** send_okcell_p80data = true;
  1333. 987 .loc 1 261 29
  1334. 988 00ba 404B ldr r3, .L55
  1335. ARM GAS C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s page 24
  1336. 989 00bc 0122 movs r2, #1
  1337. 990 00be 1A70 strb r2, [r3]
  1338. 991 .L49:
  1339. 992 .LBE11:
  1340. 262:user_src/soft_okcell.c **** }
  1341. 263:user_src/soft_okcell.c ****
  1342. 264:user_src/soft_okcell.c **** if(send_okcell_p80data == true){
  1343. 993 .loc 1 264 28
  1344. 994 00c0 3E4B ldr r3, .L55
  1345. 995 00c2 1B78 ldrb r3, [r3] @ zero_extendqisi2
  1346. 996 .loc 1 264 7
  1347. 997 00c4 002B cmp r3, #0
  1348. 998 00c6 07D0 beq .L50
  1349. 265:user_src/soft_okcell.c **** send_okcell_p80data =false;
  1350. 999 .loc 1 265 29
  1351. 1000 00c8 3C4B ldr r3, .L55
  1352. 1001 00ca 0022 movs r2, #0
  1353. 1002 00cc 1A70 strb r2, [r3]
  1354. 266:user_src/soft_okcell.c **** can_send_msg_normal((unsigned char *)&okcell_p80,sizeof(okcell_p80),CAN_OKCELL_SEND_ID);
  1355. 1003 .loc 1 266 9
  1356. 1004 00ce 404A ldr r2, .L55+20
  1357. 1005 00d0 0E21 movs r1, #14
  1358. 1006 00d2 3D48 ldr r0, .L55+12
  1359. 1007 00d4 FFF7FEFF bl can_send_msg_normal
  1360. 1008 .L50:
  1361. 267:user_src/soft_okcell.c **** }
  1362. 268:user_src/soft_okcell.c ****
  1363. 269:user_src/soft_okcell.c **** if(send_okcell_p82data == true){
  1364. 1009 .loc 1 269 28
  1365. 1010 00d8 3E4B ldr r3, .L55+24
  1366. 1011 00da 1B78 ldrb r3, [r3] @ zero_extendqisi2
  1367. 1012 .loc 1 269 7
  1368. 1013 00dc 002B cmp r3, #0
  1369. 1014 00de 09D0 beq .L51
  1370. 270:user_src/soft_okcell.c **** send_okcell_p82data =false;
  1371. 1015 .loc 1 270 29
  1372. 1016 00e0 3C4B ldr r3, .L55+24
  1373. 1017 00e2 0022 movs r2, #0
  1374. 1018 00e4 1A70 strb r2, [r3]
  1375. 271:user_src/soft_okcell.c **** can_send_msg_normal((unsigned char *)&okcell_p82,sizeof(okcell_p82),okcell_device1.deviceCa
  1376. 1019 .loc 1 271 91
  1377. 1020 00e6 364B ldr r3, .L55+4
  1378. 1021 00e8 1B68 ldr r3, [r3]
  1379. 1022 .loc 1 271 9
  1380. 1023 00ea 1A46 mov r2, r3
  1381. 1024 00ec 1121 movs r1, #17
  1382. 1025 00ee 3A48 ldr r0, .L55+28
  1383. 1026 00f0 FFF7FEFF bl can_send_msg_normal
  1384. 1027 .L51:
  1385. 272:user_src/soft_okcell.c **** }
  1386. 273:user_src/soft_okcell.c ****
  1387. 274:user_src/soft_okcell.c ****
  1388. 275:user_src/soft_okcell.c ****
  1389. 276:user_src/soft_okcell.c **** //获取电池编号
  1390. 277:user_src/soft_okcell.c **** if(okcell_device1.Okcell_Link.connect_status == COMP_NORMAL && okcell_device1.cell_bps_lock_suc
  1391. 1028 .loc 1 277 34
  1392. 1029 00f4 324B ldr r3, .L55+4
  1393. ARM GAS C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s page 25
  1394. 1030 00f6 93F8D730 ldrb r3, [r3, #215] @ zero_extendqisi2
  1395. 1031 .loc 1 277 7
  1396. 1032 00fa 012B cmp r3, #1
  1397. 1033 00fc 4BD1 bne .L52
  1398. 1034 .loc 1 277 82 discriminator 1
  1399. 1035 00fe 304B ldr r3, .L55+4
  1400. 1036 0100 93F8E130 ldrb r3, [r3, #225] @ zero_extendqisi2
  1401. 1037 .loc 1 277 65 discriminator 1
  1402. 1038 0104 002B cmp r3, #0
  1403. 1039 0106 46D0 beq .L52
  1404. 278:user_src/soft_okcell.c **** okcell_device1.get_cellNumber == false &&
  1405. 1040 .loc 1 278 23 discriminator 2
  1406. 1041 0108 2D4B ldr r3, .L55+4
  1407. 1042 010a 93F8DB30 ldrb r3, [r3, #219] @ zero_extendqisi2
  1408. 1043 .loc 1 278 39 discriminator 2
  1409. 1044 010e 83F00103 eor r3, r3, #1
  1410. 1045 0112 DBB2 uxtb r3, r3
  1411. 277:user_src/soft_okcell.c **** okcell_device1.get_cellNumber == false &&
  1412. 1046 .loc 1 277 113 discriminator 2
  1413. 1047 0114 002B cmp r3, #0
  1414. 1048 0116 3ED0 beq .L52
  1415. 279:user_src/soft_okcell.c **** send_okcell_p83data == false && HAL_GetTick() - time_okcell_p83 > 1000)
  1416. 1049 .loc 1 279 29
  1417. 1050 0118 304B ldr r3, .L55+32
  1418. 1051 011a 1B78 ldrb r3, [r3] @ zero_extendqisi2
  1419. 1052 011c 83F00103 eor r3, r3, #1
  1420. 1053 0120 DBB2 uxtb r3, r3
  1421. 278:user_src/soft_okcell.c **** okcell_device1.get_cellNumber == false &&
  1422. 1054 .loc 1 278 48
  1423. 1055 0122 002B cmp r3, #0
  1424. 1056 0124 37D0 beq .L52
  1425. 1057 .loc 1 279 41
  1426. 1058 0126 FFF7FEFF bl HAL_GetTick
  1427. 1059 012a 0246 mov r2, r0
  1428. 1060 .loc 1 279 55
  1429. 1061 012c 2C4B ldr r3, .L55+36
  1430. 1062 012e 1B68 ldr r3, [r3]
  1431. 1063 0130 D31A subs r3, r2, r3
  1432. 1064 .loc 1 279 38
  1433. 1065 0132 B3F57A7F cmp r3, #1000
  1434. 1066 0136 2ED9 bls .L52
  1435. 280:user_src/soft_okcell.c **** {
  1436. 281:user_src/soft_okcell.c **** time_okcell_p83 = HAL_GetTick();
  1437. 1067 .loc 1 281 27
  1438. 1068 0138 FFF7FEFF bl HAL_GetTick
  1439. 1069 013c 0346 mov r3, r0
  1440. 1070 .loc 1 281 25
  1441. 1071 013e 284A ldr r2, .L55+36
  1442. 1072 0140 1360 str r3, [r2]
  1443. 282:user_src/soft_okcell.c ****
  1444. 283:user_src/soft_okcell.c **** okcell_p83.ok_s[0] = 'Z';
  1445. 1073 .loc 1 283 28
  1446. 1074 0142 284B ldr r3, .L55+40
  1447. 1075 0144 5A22 movs r2, #90
  1448. 1076 0146 1A70 strb r2, [r3]
  1449. 284:user_src/soft_okcell.c **** okcell_p83.ok_s[1] = 'F';
  1450. 1077 .loc 1 284 28
  1451. ARM GAS C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s page 26
  1452. 1078 0148 264B ldr r3, .L55+40
  1453. 1079 014a 4622 movs r2, #70
  1454. 1080 014c 5A70 strb r2, [r3, #1]
  1455. 285:user_src/soft_okcell.c **** okcell_p83.ok_s[2] = 'K';
  1456. 1081 .loc 1 285 28
  1457. 1082 014e 254B ldr r3, .L55+40
  1458. 1083 0150 4B22 movs r2, #75
  1459. 1084 0152 9A70 strb r2, [r3, #2]
  1460. 286:user_src/soft_okcell.c **** okcell_p83.ok_s[3] = 'J';
  1461. 1085 .loc 1 286 28
  1462. 1086 0154 234B ldr r3, .L55+40
  1463. 1087 0156 4A22 movs r2, #74
  1464. 1088 0158 DA70 strb r2, [r3, #3]
  1465. 287:user_src/soft_okcell.c ****
  1466. 288:user_src/soft_okcell.c **** okcell_p83.ok_cmd[0] = 0x83;
  1467. 1089 .loc 1 288 30
  1468. 1090 015a 224B ldr r3, .L55+40
  1469. 1091 015c 8322 movs r2, #131
  1470. 1092 015e 1A71 strb r2, [r3, #4]
  1471. 289:user_src/soft_okcell.c **** okcell_p83.ok_cmd[1] = 0x00;
  1472. 1093 .loc 1 289 30
  1473. 1094 0160 204B ldr r3, .L55+40
  1474. 1095 0162 0022 movs r2, #0
  1475. 1096 0164 5A71 strb r2, [r3, #5]
  1476. 290:user_src/soft_okcell.c **** okcell_p83.ok_len = 0;
  1477. 1097 .loc 1 290 27
  1478. 1098 0166 1F4B ldr r3, .L55+40
  1479. 1099 0168 0022 movs r2, #0
  1480. 1100 016a 9A71 strb r2, [r3, #6]
  1481. 291:user_src/soft_okcell.c **** okcell_p83.ok_flag = 0xbb;
  1482. 1101 .loc 1 291 28
  1483. 1102 016c 1D4B ldr r3, .L55+40
  1484. 1103 016e BB22 movs r2, #187
  1485. 1104 0170 DA71 strb r2, [r3, #7]
  1486. 292:user_src/soft_okcell.c **** okcell_p83.ok_crc[0] = 0xff;
  1487. 1105 .loc 1 292 30
  1488. 1106 0172 1C4B ldr r3, .L55+40
  1489. 1107 0174 FF22 movs r2, #255
  1490. 1108 0176 1A72 strb r2, [r3, #8]
  1491. 293:user_src/soft_okcell.c **** okcell_p83.ok_crc[1] = 0xff;
  1492. 1109 .loc 1 293 30
  1493. 1110 0178 1A4B ldr r3, .L55+40
  1494. 1111 017a FF22 movs r2, #255
  1495. 1112 017c 5A72 strb r2, [r3, #9]
  1496. 294:user_src/soft_okcell.c ****
  1497. 295:user_src/soft_okcell.c **** okcell_p83.ok_e[0] = 'E';
  1498. 1113 .loc 1 295 28
  1499. 1114 017e 194B ldr r3, .L55+40
  1500. 1115 0180 4522 movs r2, #69
  1501. 1116 0182 9A72 strb r2, [r3, #10]
  1502. 296:user_src/soft_okcell.c **** okcell_p83.ok_e[1] = 'N';
  1503. 1117 .loc 1 296 28
  1504. 1118 0184 174B ldr r3, .L55+40
  1505. 1119 0186 4E22 movs r2, #78
  1506. 1120 0188 DA72 strb r2, [r3, #11]
  1507. 297:user_src/soft_okcell.c **** okcell_p83.ok_e[2] = 'D';
  1508. 1121 .loc 1 297 28
  1509. ARM GAS C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s page 27
  1510. 1122 018a 164B ldr r3, .L55+40
  1511. 1123 018c 4422 movs r2, #68
  1512. 1124 018e 1A73 strb r2, [r3, #12]
  1513. 298:user_src/soft_okcell.c ****
  1514. 299:user_src/soft_okcell.c **** send_okcell_p83data = true;
  1515. 1125 .loc 1 299 29
  1516. 1126 0190 124B ldr r3, .L55+32
  1517. 1127 0192 0122 movs r2, #1
  1518. 1128 0194 1A70 strb r2, [r3]
  1519. 1129 .L52:
  1520. 300:user_src/soft_okcell.c **** }
  1521. 301:user_src/soft_okcell.c ****
  1522. 302:user_src/soft_okcell.c **** if(send_okcell_p83data == true){
  1523. 1130 .loc 1 302 28
  1524. 1131 0196 114B ldr r3, .L55+32
  1525. 1132 0198 1B78 ldrb r3, [r3] @ zero_extendqisi2
  1526. 1133 .loc 1 302 7
  1527. 1134 019a 002B cmp r3, #0
  1528. 1135 019c 09D0 beq .L54
  1529. 303:user_src/soft_okcell.c **** send_okcell_p83data =false;
  1530. 1136 .loc 1 303 29
  1531. 1137 019e 0F4B ldr r3, .L55+32
  1532. 1138 01a0 0022 movs r2, #0
  1533. 1139 01a2 1A70 strb r2, [r3]
  1534. 304:user_src/soft_okcell.c **** can_send_msg_normal((unsigned char *)&okcell_p83,sizeof(okcell_p83),okcell_device1.deviceCa
  1535. 1140 .loc 1 304 91
  1536. 1141 01a4 064B ldr r3, .L55+4
  1537. 1142 01a6 1B68 ldr r3, [r3]
  1538. 1143 .loc 1 304 9
  1539. 1144 01a8 1A46 mov r2, r3
  1540. 1145 01aa 0D21 movs r1, #13
  1541. 1146 01ac 0D48 ldr r0, .L55+40
  1542. 1147 01ae FFF7FEFF bl can_send_msg_normal
  1543. 1148 .L54:
  1544. 305:user_src/soft_okcell.c **** }
  1545. 306:user_src/soft_okcell.c **** }
  1546. 1149 .loc 1 306 1
  1547. 1150 01b2 00BF nop
  1548. 1151 01b4 0837 adds r7, r7, #8
  1549. 1152 .LCFI8:
  1550. 1153 .cfi_def_cfa_offset 8
  1551. 1154 01b6 BD46 mov sp, r7
  1552. 1155 .LCFI9:
  1553. 1156 .cfi_def_cfa_register 13
  1554. 1157 @ sp needed
  1555. 1158 01b8 80BD pop {r7, pc}
  1556. 1159 .L56:
  1557. 1160 01ba 00BF .align 2
  1558. 1161 .L55:
  1559. 1162 01bc 00000000 .word send_okcell_p80data
  1560. 1163 01c0 00000000 .word okcell_device1
  1561. 1164 01c4 00000000 .word time_okcell_p80
  1562. 1165 01c8 00000000 .word okcell_p80
  1563. 1166 01cc 08000000 .word okcell_p80+8
  1564. 1167 01d0 00003515 .word 355794944
  1565. 1168 01d4 00000000 .word send_okcell_p82data
  1566. 1169 01d8 00000000 .word okcell_p82
  1567. ARM GAS C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s page 28
  1568. 1170 01dc 00000000 .word send_okcell_p83data
  1569. 1171 01e0 00000000 .word time_okcell_p83
  1570. 1172 01e4 00000000 .word okcell_p83
  1571. 1173 .cfi_endproc
  1572. 1174 .LFE131:
  1573. 1176 .section .bss.OKIdCode1counts.1,"aw",%nobits
  1574. 1179 OKIdCode1counts.1:
  1575. 1180 0000 00 .space 1
  1576. 1181 .section .bss.OKIdCode2counts.0,"aw",%nobits
  1577. 1184 OKIdCode2counts.0:
  1578. 1185 0000 00 .space 1
  1579. 1186 .text
  1580. 1187 .Letext0:
  1581. 1188 .file 2 "d:\\arm-gcc\\arm-none-eabi\\include\\machine\\_default_types.h"
  1582. 1189 .file 3 "d:\\arm-gcc\\arm-none-eabi\\include\\sys\\_stdint.h"
  1583. 1190 .file 4 "user_inc/common.h"
  1584. 1191 .file 5 "user_inc/soft_okcell.h"
  1585. ARM GAS C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s page 29
  1586. DEFINED SYMBOLS
  1587. *ABS*:00000000 soft_okcell.c
  1588. C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s:23 .bss.group_num:00000000 group_num
  1589. C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s:24 .bss.group_num:00000000 $d
  1590. C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s:30 .bss.okcell_sha1_out:00000000 okcell_sha1_out
  1591. C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s:27 .bss.okcell_sha1_out:00000000 $d
  1592. C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s:37 .bss.okcell_device1:00000000 okcell_device1
  1593. C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s:34 .bss.okcell_device1:00000000 $d
  1594. C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s:44 .bss.okcell_device2:00000000 okcell_device2
  1595. C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s:41 .bss.okcell_device2:00000000 $d
  1596. C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s:47 .rodata:00000000 $d
  1597. C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s:54 .text.OkcellCanRecvHookFunction:00000000 $t
  1598. C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s:60 .text.OkcellCanRecvHookFunction:00000000 OkcellCanRecvHookFunction
  1599. C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s:444 .text.OkcellCanRecvHookFunction:00000250 $d
  1600. C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s:1179 .bss.OKIdCode1counts.1:00000000 OKIdCode1counts.1
  1601. C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s:1184 .bss.OKIdCode2counts.0:00000000 OKIdCode2counts.0
  1602. C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s:453 .text.OkcellCanRecvHookFunction:0000026c $t
  1603. C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s:787 .text.OkcellCanRecvHookFunction:00000484 $d
  1604. C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s:797 .bss.okcell_p80:00000000 okcell_p80
  1605. C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s:794 .bss.okcell_p80:00000000 $d
  1606. C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s:804 .bss.okcell_p82:00000000 okcell_p82
  1607. C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s:801 .bss.okcell_p82:00000000 $d
  1608. C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s:811 .bss.okcell_p83:00000000 okcell_p83
  1609. C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s:808 .bss.okcell_p83:00000000 $d
  1610. C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s:818 .bss.time_okcell_p80:00000000 time_okcell_p80
  1611. C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s:815 .bss.time_okcell_p80:00000000 $d
  1612. C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s:825 .bss.time_okcell_p82:00000000 time_okcell_p82
  1613. C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s:822 .bss.time_okcell_p82:00000000 $d
  1614. C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s:832 .bss.time_okcell_p83:00000000 time_okcell_p83
  1615. C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s:829 .bss.time_okcell_p83:00000000 $d
  1616. C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s:838 .bss.send_okcell_p80data:00000000 send_okcell_p80data
  1617. C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s:839 .bss.send_okcell_p80data:00000000 $d
  1618. C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s:844 .bss.send_okcell_p82data:00000000 send_okcell_p82data
  1619. C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s:845 .bss.send_okcell_p82data:00000000 $d
  1620. C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s:850 .bss.send_okcell_p83data:00000000 send_okcell_p83data
  1621. C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s:851 .bss.send_okcell_p83data:00000000 $d
  1622. C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s:853 .text.send_msg_to_okcell:00000000 $t
  1623. C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s:859 .text.send_msg_to_okcell:00000000 send_msg_to_okcell
  1624. C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s:1162 .text.send_msg_to_okcell:000001bc $d
  1625. C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s:1180 .bss.OKIdCode1counts.1:00000000 $d
  1626. C:\Users\zl835\AppData\Local\Temp\cclvVMOp.s:1185 .bss.OKIdCode2counts.0:00000000 $d
  1627. UNDEFINED SYMBOLS
  1628. memcmp
  1629. memset
  1630. memcpy
  1631. findStrInArray
  1632. crc_ccitt
  1633. HAL_GetTick
  1634. can_send_msg_normal