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