LWL/MDK-ARM/keilpro/Listing/bluetooth.txt
youxianghua faacc7b570 提交
2024-07-10 14:01:39 +08:00

2720 lines
124 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

; generated by Component: ARM Compiler 5.06 update 6 (build 750) Tool: ArmCC [4d3637]
; commandline ArmCC [--list --debug -c --asm --interleave -o.\output\bluetooth.o --asm_dir=.\Listing\ --list_dir=.\Listing\ --depend=.\output\bluetooth.d --cpu=Cortex-M3 --apcs=interwork -O0 --diag_suppress=9931 -I..\..\template\Libraries\CMSIS\startup -I..\..\template\Libraries\CMSIS -I..\..\template\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\..\template\Libraries\STM32F10x_StdPeriph_Driver\src -I..\..\nlib -I..\user\inc -I..\user\src -IC:\Keil_v5\ARM\RV31\INC -IC:\Keil_v5\ARM\CMSIS\Include -IC:\Keil_v5\ARM\INC\ST\STM32F10x -D__MICROLIB -D__UVISION_VERSION=525 -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD --omf_browse=.\output\bluetooth.crf ..\user\src\Bluetooth.c]
THUMB
AREA ||.text||, CODE, READONLY, ALIGN=2
flash_read_sys_flag PROC
;;;47 */
;;;48 void flash_read_sys_flag(void)
000000 b510 PUSH {r4,lr}
;;;49 {
000002 b086 SUB sp,sp,#0x18
;;;50 u16 buf_short[5] = {0};
000004 2000 MOVS r0,#0
000006 9003 STR r0,[sp,#0xc]
000008 9004 STR r0,[sp,#0x10]
00000a 9005 STR r0,[sp,#0x14]
;;;51 u8 buf_char[10] = {0};
00000c 9000 STR r0,[sp,#0]
00000e 9001 STR r0,[sp,#4]
000010 9002 STR r0,[sp,#8]
;;;52 u8 i = 0;
000012 2400 MOVS r4,#0
;;;53 /*»ñÈ¡´æ´¢Êý¾Ý*/
;;;54 STMFLASH_Read(FLASH_ADRR,buf_short,5);
000014 2205 MOVS r2,#5
000016 a903 ADD r1,sp,#0xc
000018 48f8 LDR r0,|L1.1020|
00001a f7fffffe BL STMFLASH_Read
;;;55
;;;56 for(i=0;i<5;i++)
00001e bf00 NOP
000020 e00f B |L1.66|
|L1.34|
;;;57 {
;;;58 buf_char[i*2] = buf_short[i] >> 8;
000022 a803 ADD r0,sp,#0xc
000024 f8300014 LDRH r0,[r0,r4,LSL #1]
000028 1200 ASRS r0,r0,#8
00002a f80d0014 STRB r0,[sp,r4,LSL #1]
;;;59 buf_char[i*2+1] = buf_short[i];
00002e a803 ADD r0,sp,#0xc
000030 f8100014 LDRB r0,[r0,r4,LSL #1]
000034 2101 MOVS r1,#1
000036 eb010144 ADD r1,r1,r4,LSL #1
00003a f80d0001 STRB r0,[sp,r1]
00003e 1c60 ADDS r0,r4,#1 ;56
000040 b2c4 UXTB r4,r0 ;56
|L1.66|
000042 2c05 CMP r4,#5 ;56
000044 dbed BLT |L1.34|
;;;60 }
;;;61
;;;62 if(buf_char[0] == 'A' && buf_char[1] == 'A' && buf_char[2] == 'B' && buf_char[3] == 'B')
000046 f89d0000 LDRB r0,[sp,#0]
00004a 2841 CMP r0,#0x41
00004c d116 BNE |L1.124|
00004e f89d0001 LDRB r0,[sp,#1]
000052 2841 CMP r0,#0x41
000054 d112 BNE |L1.124|
000056 f89d0002 LDRB r0,[sp,#2]
00005a 2842 CMP r0,#0x42
00005c d10e BNE |L1.124|
00005e f89d0003 LDRB r0,[sp,#3]
000062 2842 CMP r0,#0x42
000064 d10a BNE |L1.124|
;;;63 {
;;;64 for(i=0;i<6;i++)
000066 2400 MOVS r4,#0
000068 e006 B |L1.120|
|L1.106|
;;;65 {
;;;66 Pass_init[4+i] = buf_char[4+i];
00006a 1d20 ADDS r0,r4,#4
00006c f81d1000 LDRB r1,[sp,r0]
000070 4ae3 LDR r2,|L1.1024|
000072 5411 STRB r1,[r2,r0]
000074 1c60 ADDS r0,r4,#1 ;64
000076 b2c4 UXTB r4,r0 ;64
|L1.120|
000078 2c06 CMP r4,#6 ;64
00007a dbf6 BLT |L1.106|
|L1.124|
;;;67 }
;;;68 }
;;;69 }
00007c b006 ADD sp,sp,#0x18
00007e bd10 POP {r4,pc}
;;;70
ENDP
flash_write_sys_flag_ALL PROC
;;;76 */
;;;77 void flash_write_sys_flag_ALL(u8 *revbuf_char)
000080 b53e PUSH {r1-r5,lr}
;;;78 {
000082 4605 MOV r5,r0
;;;79 u8 i = 0;
000084 2400 MOVS r4,#0
;;;80 u16 revbuf_short[5]={0};
000086 2000 MOVS r0,#0
000088 9000 STR r0,[sp,#0]
00008a 9001 STR r0,[sp,#4]
00008c 9002 STR r0,[sp,#8]
;;;81
;;;82 for(i=0;i<5;i++)
00008e bf00 NOP
000090 e00b B |L1.170|
|L1.146|
;;;83 {
;;;84 revbuf_short[i] = revbuf_char[i*2]<<8 | revbuf_char[i*2+1];
000092 2001 MOVS r0,#1
000094 eb000044 ADD r0,r0,r4,LSL #1
000098 5c28 LDRB r0,[r5,r0]
00009a f8151014 LDRB r1,[r5,r4,LSL #1]
00009e ea402001 ORR r0,r0,r1,LSL #8
0000a2 f82d0014 STRH r0,[sp,r4,LSL #1]
0000a6 1c60 ADDS r0,r4,#1 ;82
0000a8 b2c4 UXTB r4,r0 ;82
|L1.170|
0000aa 2c05 CMP r4,#5 ;82
0000ac dbf1 BLT |L1.146|
;;;85 }
;;;86
;;;87 STMFLASH_Write(FLASH_ADRR,revbuf_short,5);
0000ae 2205 MOVS r2,#5
0000b0 4669 MOV r1,sp
0000b2 48d2 LDR r0,|L1.1020|
0000b4 f7fffffe BL STMFLASH_Write
;;;88 }
0000b8 bd3e POP {r1-r5,pc}
;;;89
ENDP
BlueSend_GpsFun PROC
;;;101 */
;;;102 void BlueSend_GpsFun(u32 bmsnum,u8 orde,u8 type,u8 *buff,u16 len,u32 Recnumber)
0000ba e92d47f0 PUSH {r4-r10,lr}
;;;103 {
0000be f5ad7d54 SUB sp,sp,#0x350
0000c2 4606 MOV r6,r0
0000c4 460f MOV r7,r1
0000c6 4690 MOV r8,r2
0000c8 4699 MOV r9,r3
0000ca f8dda374 LDR r10,[sp,#0x374]
0000ce 9cdc LDR r4,[sp,#0x370]
;;;104 u16 index;
;;;105 u8 sendbuf[420] = {0};
0000d0 f44f71d2 MOV r1,#0x1a4
0000d4 a86b ADD r0,sp,#0x1ac
0000d6 f7fffffe BL __aeabi_memclr4
;;;106 Data_frame data_frame;
;;;107
;;;108 data_frame.start_frame = START_FRAME;
0000da f6446057 MOV r0,#0x4e57
0000de f8ad0004 STRH r0,[sp,#4]
;;;109 data_frame.Len_frame = S_GD_LEN + len - 2;
0000e2 f1040012 ADD r0,r4,#0x12
0000e6 b280 UXTH r0,r0
0000e8 f8ad0006 STRH r0,[sp,#6]
;;;110 data_frame.Bms_number = bmsnum;
0000ec 9602 STR r6,[sp,#8]
;;;111 data_frame.orde = orde;
0000ee f88d700c STRB r7,[sp,#0xc]
;;;112 data_frame.farm_sor = 0x00;
0000f2 2000 MOVS r0,#0
0000f4 f88d000d STRB r0,[sp,#0xd]
;;;113 data_frame.Type = type;
0000f8 f88d800e STRB r8,[sp,#0xe]
;;;114 memcpy(data_frame.s_data,buff,len);
0000fc 4622 MOV r2,r4
0000fe 4649 MOV r1,r9
000100 f10d000f ADD r0,sp,#0xf
000104 f7fffffe BL __aeabi_memcpy
;;;115 data_frame.Recnumber = Recnumber;
000108 f8cda1a0 STR r10,[sp,#0x1a0]
;;;116 data_frame.end_signs = END_FRAME;
00010c 2068 MOVS r0,#0x68
00010e f88d01a4 STRB r0,[sp,#0x1a4]
;;;117 data_frame.check_sum = 0;
000112 2000 MOVS r0,#0
000114 906a STR r0,[sp,#0x1a8]
;;;118
;;;119 sendbuf[0] = (data_frame.start_frame >> 8);
000116 f8bd0004 LDRH r0,[sp,#4]
00011a 1200 ASRS r0,r0,#8
00011c f88d01ac STRB r0,[sp,#0x1ac]
;;;120 sendbuf[1] = data_frame.start_frame;
000120 f8bd0004 LDRH r0,[sp,#4]
000124 b2c0 UXTB r0,r0
000126 f88d01ad STRB r0,[sp,#0x1ad]
;;;121 sendbuf[2] = (data_frame.Len_frame >> 8);
00012a f8bd0006 LDRH r0,[sp,#6]
00012e 1200 ASRS r0,r0,#8
000130 f88d01ae STRB r0,[sp,#0x1ae]
;;;122 sendbuf[3] = data_frame.Len_frame;
000134 f8bd0006 LDRH r0,[sp,#6]
000138 b2c0 UXTB r0,r0
00013a f88d01af STRB r0,[sp,#0x1af]
;;;123 sendbuf[4] = (data_frame.Bms_number >> 24);
00013e 9802 LDR r0,[sp,#8]
000140 0e00 LSRS r0,r0,#24
000142 f88d01b0 STRB r0,[sp,#0x1b0]
;;;124 sendbuf[5] = (data_frame.Bms_number >> 16);
000146 9802 LDR r0,[sp,#8]
000148 0c00 LSRS r0,r0,#16
00014a f88d01b1 STRB r0,[sp,#0x1b1]
;;;125 sendbuf[6] = (data_frame.Bms_number >> 8);
00014e 9802 LDR r0,[sp,#8]
000150 0a00 LSRS r0,r0,#8
000152 f88d01b2 STRB r0,[sp,#0x1b2]
;;;126 sendbuf[7] = data_frame.Bms_number;
000156 9802 LDR r0,[sp,#8]
000158 b2c0 UXTB r0,r0
00015a f88d01b3 STRB r0,[sp,#0x1b3]
;;;127 sendbuf[8] = data_frame.orde;
00015e f89d000c LDRB r0,[sp,#0xc]
000162 f88d01b4 STRB r0,[sp,#0x1b4]
;;;128 sendbuf[9] = data_frame.farm_sor;
000166 f89d000d LDRB r0,[sp,#0xd]
00016a f88d01b5 STRB r0,[sp,#0x1b5]
;;;129 sendbuf[10]= data_frame.Type;
00016e f89d000e LDRB r0,[sp,#0xe]
000172 f88d01b6 STRB r0,[sp,#0x1b6]
;;;130 memcpy(&sendbuf[11],data_frame.s_data,len);
000176 4622 MOV r2,r4
000178 f10d010f ADD r1,sp,#0xf
00017c f20d10b7 ADD r0,sp,#0x1b7
000180 f7fffffe BL __aeabi_memcpy
;;;131 sendbuf[11 + len] = (data_frame.Recnumber >> 24);
000184 9868 LDR r0,[sp,#0x1a0]
000186 0e01 LSRS r1,r0,#24
000188 f104000b ADD r0,r4,#0xb
00018c aa6b ADD r2,sp,#0x1ac
00018e 5411 STRB r1,[r2,r0]
;;;132 sendbuf[12 + len] = (data_frame.Recnumber >> 16);
000190 9868 LDR r0,[sp,#0x1a0]
000192 f3c04107 UBFX r1,r0,#16,#8
000196 f104000c ADD r0,r4,#0xc
00019a 5411 STRB r1,[r2,r0]
;;;133 sendbuf[13 + len] = (data_frame.Recnumber >> 8);
00019c 9868 LDR r0,[sp,#0x1a0]
00019e f3c02107 UBFX r1,r0,#8,#8
0001a2 f104000d ADD r0,r4,#0xd
0001a6 5411 STRB r1,[r2,r0]
;;;134 sendbuf[14 + len] = data_frame.Recnumber;
0001a8 9868 LDR r0,[sp,#0x1a0]
0001aa b2c1 UXTB r1,r0
0001ac f104000e ADD r0,r4,#0xe
0001b0 5411 STRB r1,[r2,r0]
;;;135 sendbuf[15 + len] = data_frame.end_signs;
0001b2 f89d11a4 LDRB r1,[sp,#0x1a4]
0001b6 1c40 ADDS r0,r0,#1
0001b8 5411 STRB r1,[r2,r0]
;;;136
;;;137 for(index = 0; index < S_GD_LEN + len - 4; index++)
0001ba 2500 MOVS r5,#0
0001bc e006 B |L1.460|
|L1.446|
;;;138 {
;;;139 data_frame.check_sum += sendbuf[index];
0001be a96b ADD r1,sp,#0x1ac
0001c0 5d49 LDRB r1,[r1,r5]
0001c2 986a LDR r0,[sp,#0x1a8]
0001c4 4408 ADD r0,r0,r1
0001c6 906a STR r0,[sp,#0x1a8]
0001c8 1c68 ADDS r0,r5,#1 ;137
0001ca b285 UXTH r5,r0 ;137
|L1.460|
0001cc f1040010 ADD r0,r4,#0x10 ;137
0001d0 42a8 CMP r0,r5 ;137
0001d2 dcf4 BGT |L1.446|
;;;140 }
;;;141 sendbuf[16 + len] = 0x00;
0001d4 2100 MOVS r1,#0
0001d6 aa6b ADD r2,sp,#0x1ac
0001d8 5411 STRB r1,[r2,r0]
;;;142 sendbuf[17 + len] = 0x00;
0001da 1c40 ADDS r0,r0,#1
0001dc 5411 STRB r1,[r2,r0]
;;;143 sendbuf[18 + len] = (data_frame.check_sum >> 8);
0001de 986a LDR r0,[sp,#0x1a8]
0001e0 f3c02107 UBFX r1,r0,#8,#8
0001e4 f1040012 ADD r0,r4,#0x12
0001e8 5411 STRB r1,[r2,r0]
;;;144 sendbuf[19 + len] = data_frame.check_sum;
0001ea 986a LDR r0,[sp,#0x1a8]
0001ec b2c1 UXTB r1,r0
0001ee f1040013 ADD r0,r4,#0x13
0001f2 5411 STRB r1,[r2,r0]
;;;145
;;;146 /*·¢ËÍÊý¾Ý*/
;;;147 Send_TString_Bluetooth(sendbuf,(u16)(S_GD_LEN + len));
0001f4 1c40 ADDS r0,r0,#1
0001f6 b281 UXTH r1,r0
0001f8 a86b ADD r0,sp,#0x1ac
0001fa f7fffffe BL Send_TString_Bluetooth
;;;148 }
0001fe f50d7d54 ADD sp,sp,#0x350
000202 e8bd87f0 POP {r4-r10,pc}
;;;149
ENDP
Bluetoothdecodea PROC
;;;156 */
;;;157 void Bluetoothdecodea(void)
000206 e92d4ff0 PUSH {r4-r11,lr}
;;;158 {
00020a b0df SUB sp,sp,#0x17c
;;;159 u16 data_len = 0; //³¤¶È
00020c 2600 MOVS r6,#0
;;;160 u32 crc_sum = 0; //ÀÛ¼ÓºÍ
00020e 2000 MOVS r0,#0
000210 905e STR r0,[sp,#0x178]
;;;161 u32 Bms_num = 0; //BMSÖն˺Å
000212 905d STR r0,[sp,#0x174]
;;;162 u16 index;
;;;163
;;;164 u8 orde = 0; //ÃüÁî×Ö
000214 905b STR r0,[sp,#0x16c]
;;;165 u8 b_addr = 0; //±êʶÂë
000216 4681 MOV r9,r0
;;;166 u8 Type = 0; //´«ÊäÀàÐÍ
000218 905a STR r0,[sp,#0x168]
;;;167 u32 recnum = 0; //¼Ç¼ºÅ
00021a 9059 STR r0,[sp,#0x164]
;;;168
;;;169 u8 sendbuffer[300]; //·¢ËÍÊý¾Ý»º´æ
;;;170 u16 send_len = 0; //Êý¾ÝÓò³¤¶È
00021c 4682 MOV r10,r0
;;;171
;;;172 /*309Ïà¹Ø±äÁ¿*/
;;;173 u8 Rev_309_buf_A[2]={0};
00021e 900d STR r0,[sp,#0x34]
;;;174 u8 Rev_309_buf_B[2]={0};
000220 900c STR r0,[sp,#0x30]
;;;175
;;;176 /*ζÈÏà¹Ø±äÁ¿*/
;;;177 float Rref = 0; //ÄÚ²¿²Î¿¼µç×è(µ¥Î»£ºK¦¸)
000222 900b STR r0,[sp,#0x2c]
;;;178 float Rt1 = 0; //ÈÈÃôµç×è×èÖµ(µ¥Î»£ºK¦¸)
000224 900a STR r0,[sp,#0x28]
;;;179
;;;180 /*´®ÊýÏà¹Ø±äÁ¿*/
;;;181 u8 A_Cellnum = 0; //Ö÷309 оƬµç³Ø´®Êý
000226 2700 MOVS r7,#0
;;;182 u8 B_Cellnum = 0; //¸±309 оƬµç³Ø´®Êý
000228 4680 MOV r8,r0
;;;183
;;;184 /*½ÓÊÕÒ»Ö¡±¨Îijɹ¦*/
;;;185 if(Bluttooth_buf.gps_Rev_start == 1)
00022a 4876 LDR r0,|L1.1028|
00022c 7800 LDRB r0,[r0,#0] ; Bluttooth_buf
00022e 2801 CMP r0,#1
|L1.560|
000230 f0418043 BNE.W |L1.4794|
;;;186 {
;;;187 Bluttooth_buf.gps_Rev_start = 0; //Çå³ý±ê־λ
000234 2000 MOVS r0,#0
000236 4973 LDR r1,|L1.1028|
000238 7008 STRB r0,[r1,#0]
;;;188 Data_Source = 2;
00023a 2002 MOVS r0,#2
00023c 4972 LDR r1,|L1.1032|
00023e 7008 STRB r0,[r1,#0]
;;;189
;;;190 data_len = (u16)((Bluttooth_buf.gps_Rev_buf[2] << 8) | Bluttooth_buf.gps_Rev_buf[3]);
000240 4870 LDR r0,|L1.1028|
000242 7901 LDRB r1,[r0,#4]
000244 78c0 LDRB r0,[r0,#3]
000246 ea412600 ORR r6,r1,r0,LSL #8
;;;191
;;;192 for(index = 0; index < data_len + 2 - 4; index++)
00024a 2000 MOVS r0,#0
00024c 905c STR r0,[sp,#0x170]
00024e e00a B |L1.614|
|L1.592|
;;;193 {
;;;194 crc_sum += Bluttooth_buf.gps_Rev_buf[index];
000250 486c LDR r0,|L1.1028|
000252 1c40 ADDS r0,r0,#1
000254 995c LDR r1,[sp,#0x170]
000256 5c41 LDRB r1,[r0,r1]
000258 985e LDR r0,[sp,#0x178]
00025a 4408 ADD r0,r0,r1
00025c 905e STR r0,[sp,#0x178]
00025e 985c LDR r0,[sp,#0x170] ;192
000260 1c40 ADDS r0,r0,#1 ;192
000262 b280 UXTH r0,r0 ;192
000264 905c STR r0,[sp,#0x170] ;192
|L1.614|
000266 1eb0 SUBS r0,r6,#2 ;192
000268 995c LDR r1,[sp,#0x170] ;192
00026a 4288 CMP r0,r1 ;192
00026c dcf0 BGT |L1.592|
;;;195 }
;;;196
;;;197 /*Ìõ¼þÔ¼Êø*/
;;;198 if((u16)crc_sum == (u16)((Bluttooth_buf.gps_Rev_buf[data_len + 2 - 2] << 8) | Bluttooth_buf.gps_Rev_buf[data_len + 2 - 1]))
00026e 1c70 ADDS r0,r6,#1
000270 4964 LDR r1,|L1.1028|
000272 1c49 ADDS r1,r1,#1
000274 5c0a LDRB r2,[r1,r0]
000276 5d88 LDRB r0,[r1,r6]
000278 ea422100 ORR r1,r2,r0,LSL #8
00027c 985e LDR r0,[sp,#0x178]
00027e b280 UXTH r0,r0
000280 4281 CMP r1,r0
000282 d1d5 BNE |L1.560|
;;;199 {
;;;200 /*»ñÈ¡BMSÖն˺Å*/
;;;201 Bms_num = (u32)(((Bluttooth_buf.gps_Rev_buf[4] << 8) | (Bluttooth_buf.gps_Rev_buf[5])) * 65536 + ((Bluttooth_buf.gps_Rev_buf[6] << 8) | Bluttooth_buf.gps_Rev_buf[7]));
000284 485f LDR r0,|L1.1028|
000286 7a01 LDRB r1,[r0,#8]
000288 79c0 LDRB r0,[r0,#7]
00028a ea412100 ORR r1,r1,r0,LSL #8
00028e 485d LDR r0,|L1.1028|
000290 7982 LDRB r2,[r0,#6]
000292 7940 LDRB r0,[r0,#5]
000294 ea422000 ORR r0,r2,r0,LSL #8
000298 eb014000 ADD r0,r1,r0,LSL #16
00029c 905d STR r0,[sp,#0x174]
;;;202
;;;203 /*»ñÈ¡ÃüÁî×Ö*/
;;;204 orde = Bluttooth_buf.gps_Rev_buf[8];
00029e 4859 LDR r0,|L1.1028|
0002a0 7a40 LDRB r0,[r0,#9]
0002a2 905b STR r0,[sp,#0x16c]
;;;205
;;;206 /*»ñÈ¡±êʶÂë*/
;;;207 b_addr = Bluttooth_buf.gps_Rev_buf[11];
0002a4 4857 LDR r0,|L1.1028|
0002a6 f890900c LDRB r9,[r0,#0xc]
;;;208
;;;209 /*»ñÈ¡¼Ç¼ºÅ*/
;;;210 recnum = (u32)(((Bluttooth_buf.gps_Rev_buf[data_len + 2 - 5 - 4] << 8) | (Bluttooth_buf.gps_Rev_buf[data_len + 2 - 5 - 3])) * 65536 + ((Bluttooth_buf.gps_Rev_buf[data_len + 2 - 5 - 2] << 8) | Bluttooth_buf.gps_Rev_buf[data_len + 2 - 5 - 1]));
0002aa 1f30 SUBS r0,r6,#4
0002ac 4955 LDR r1,|L1.1028|
0002ae 1c49 ADDS r1,r1,#1
0002b0 5c0a LDRB r2,[r1,r0]
0002b2 1f70 SUBS r0,r6,#5
0002b4 5c08 LDRB r0,[r1,r0]
0002b6 ea422100 ORR r1,r2,r0,LSL #8
0002ba 1fb0 SUBS r0,r6,#6
0002bc 4a51 LDR r2,|L1.1028|
0002be 1c52 ADDS r2,r2,#1
0002c0 5c13 LDRB r3,[r2,r0]
0002c2 1ff0 SUBS r0,r6,#7
0002c4 5c10 LDRB r0,[r2,r0]
0002c6 ea432000 ORR r0,r3,r0,LSL #8
0002ca eb014000 ADD r0,r1,r0,LSL #16
0002ce 9059 STR r0,[sp,#0x164]
;;;211
;;;212 switch(orde)
0002d0 985b LDR r0,[sp,#0x16c]
0002d2 2807 CMP r0,#7
0002d4 f08087ef BCS.W |L1.4790|
0002d8 e8dff000 TBB [pc,r0]
0002dc fd041929 DCB 0xfd,0x04,0x19,0x29
0002e0 395dfc00 DCB 0x39,0x5d,0xfc,0x00
;;;213 {
;;;214 case ACTIVACE_ORDE: //¼¤»îÖ¸Áî ´ÓÐÝÃßÖÐÍ˳ö
;;;215 {
;;;216 Type = 0x01; //Ó¦´ð
0002e4 2001 MOVS r0,#1
0002e6 905a STR r0,[sp,#0x168]
;;;217 sendbuffer[0] = b_addr;
0002e8 f88d9038 STRB r9,[sp,#0x38]
;;;218 send_len = 1;
0002ec 4682 MOV r10,r0
;;;219 BlueActivate = 1;
0002ee 4947 LDR r1,|L1.1036|
0002f0 7008 STRB r0,[r1,#0]
;;;220 BlueSend_GpsFun(Bms_num,orde,Type,sendbuffer,send_len,recnum);
0002f2 9859 LDR r0,[sp,#0x164]
0002f4 ab0e ADD r3,sp,#0x38
0002f6 e9cda000 STRD r10,r0,[sp,#0]
0002fa 9a5a LDR r2,[sp,#0x168]
0002fc 995b LDR r1,[sp,#0x16c]
0002fe 985d LDR r0,[sp,#0x174]
000300 f7fffffe BL BlueSend_GpsFun
;;;221 Beep_Flag = 1;
000304 2001 MOVS r0,#1
000306 4942 LDR r1,|L1.1040|
000308 7008 STRB r0,[r1,#0]
|L1.778|
;;;222 }
;;;223 break;
00030a f000bfd5 B.W |L1.4792|
;;;224 case WRITE_ORDE: //дָÁî
;;;225 if(BlueActivate == 1)
00030e 483f LDR r0,|L1.1036|
000310 7800 LDRB r0,[r0,#0] ; BlueActivate
000312 2801 CMP r0,#1
000314 d10a BNE |L1.812|
;;;226 {
;;;227 /*MCUÊý¾Ý*/
;;;228 if(Ranjianyinjian == 0)
000316 483f LDR r0,|L1.1044|
000318 7800 LDRB r0,[r0,#0] ; Ranjianyinjian
00031a b938 CBNZ r0,|L1.812|
;;;229 {
;;;230 Send_TString_BMS(Bluttooth_buf.gps_Rev_buf,data_len+2);
00031c 1cb1 ADDS r1,r6,#2
00031e 4839 LDR r0,|L1.1028|
000320 1c40 ADDS r0,r0,#1
000322 f7fffffe BL Send_TString_BMS
;;;231 Beep_Flag = 1;
000326 2001 MOVS r0,#1
000328 4939 LDR r1,|L1.1040|
00032a 7008 STRB r0,[r1,#0]
|L1.812|
;;;232 }
;;;233 }
;;;234 break;
00032c e7ed B |L1.778|
;;;235 case REV_ORDE: //¶ÁÖ¸Áî
;;;236 if(BlueActivate == 1)
00032e 4837 LDR r0,|L1.1036|
000330 7800 LDRB r0,[r0,#0] ; BlueActivate
000332 2801 CMP r0,#1
000334 d10a BNE |L1.844|
;;;237 {
;;;238 /*MCUÊý¾Ý*/
;;;239 if(Ranjianyinjian == 0)
000336 4837 LDR r0,|L1.1044|
000338 7800 LDRB r0,[r0,#0] ; Ranjianyinjian
00033a b938 CBNZ r0,|L1.844|
;;;240 {
;;;241 Send_TString_BMS(Bluttooth_buf.gps_Rev_buf,data_len+2);
00033c 1cb1 ADDS r1,r6,#2
00033e 4831 LDR r0,|L1.1028|
000340 1c40 ADDS r0,r0,#1
000342 f7fffffe BL Send_TString_BMS
;;;242 Beep_Flag = 1;
000346 2001 MOVS r0,#1
000348 4931 LDR r1,|L1.1040|
00034a 7008 STRB r0,[r1,#0]
|L1.844|
;;;243 }
;;;244 }
;;;245 break;
00034c e7dd B |L1.778|
;;;246 case CONF_ORDE: //¿ØÖÆÑ¡ÔñÖ¸Áî_ֻд
;;;247 switch(b_addr)
00034e f1b90fd0 CMP r9,#0xd0
000352 d003 BEQ |L1.860|
000354 f1b90fd1 CMP r9,#0xd1
000358 d10a BNE |L1.880|
00035a e004 B |L1.870|
|L1.860|
;;;248 {
;;;249 case RANJIANYINJIAN:
;;;250 Ranjianyinjian = Bluttooth_buf.gps_Rev_buf[12];
00035c 4829 LDR r0,|L1.1028|
00035e 7b40 LDRB r0,[r0,#0xd]
000360 492c LDR r1,|L1.1044|
000362 7008 STRB r0,[r1,#0]
;;;251 break;
000364 e004 B |L1.880|
|L1.870|
;;;252 case CONF_309NUM:
;;;253 Conf_309num = Bluttooth_buf.gps_Rev_buf[12];
000366 4827 LDR r0,|L1.1028|
000368 7b40 LDRB r0,[r0,#0xd]
00036a 492b LDR r1,|L1.1048|
00036c 7008 STRB r0,[r1,#0]
;;;254 break;
00036e bf00 NOP
|L1.880|
000370 bf00 NOP ;251
;;;255 }
;;;256 Type = 0x01;
000372 2001 MOVS r0,#1
000374 905a STR r0,[sp,#0x168]
;;;257 sendbuffer[0] = b_addr;
000376 f88d9038 STRB r9,[sp,#0x38]
;;;258 send_len = 1;
00037a 4682 MOV r10,r0
;;;259 /*·¢ËÍÊý¾Ý*/
;;;260 BlueSend_GpsFun(Bms_num,orde,Type,sendbuffer,send_len,recnum);
00037c 9859 LDR r0,[sp,#0x164]
00037e ab0e ADD r3,sp,#0x38
000380 e9cda000 STRD r10,r0,[sp,#0]
000384 9a5a LDR r2,[sp,#0x168]
000386 995b LDR r1,[sp,#0x16c]
000388 985d LDR r0,[sp,#0x174]
00038a f7fffffe BL BlueSend_GpsFun
;;;261 Beep_Flag = 1;
00038e 2001 MOVS r0,#1
000390 491f LDR r1,|L1.1040|
000392 7008 STRB r0,[r1,#0]
;;;262 break;
000394 e7b9 B |L1.778|
;;;263 case PASS_ORDE: //¶ÔÃÜÂëÖ¸Áî
;;;264 {
;;;265 switch(b_addr)
000396 f1b90fe0 CMP r9,#0xe0
00039a d006 BEQ |L1.938|
00039c f1b90fe1 CMP r9,#0xe1
0003a0 d072 BEQ |L1.1160|
0003a2 f1b90fe2 CMP r9,#0xe2
0003a6 d16d BNE |L1.1156|
0003a8 e0a1 B |L1.1262|
|L1.938|
;;;266 {
;;;267 case PASS_YAZ: //ÃÜÂëÑéÖ¤
;;;268 if((Pass_init[4] == Bluttooth_buf.gps_Rev_buf[12]) && (Pass_init[5] == Bluttooth_buf.gps_Rev_buf[13])
0003aa 4815 LDR r0,|L1.1024|
0003ac 7901 LDRB r1,[r0,#4] ; Pass_init
0003ae 4815 LDR r0,|L1.1028|
0003b0 7b40 LDRB r0,[r0,#0xd]
0003b2 4281 CMP r1,r0
0003b4 d132 BNE |L1.1052|
0003b6 4812 LDR r0,|L1.1024|
0003b8 7941 LDRB r1,[r0,#5] ; Pass_init
0003ba 4812 LDR r0,|L1.1028|
0003bc 7b80 LDRB r0,[r0,#0xe]
0003be 4281 CMP r1,r0
0003c0 d12c BNE |L1.1052|
;;;269 && (Pass_init[6] == Bluttooth_buf.gps_Rev_buf[14]) && (Pass_init[7] == Bluttooth_buf.gps_Rev_buf[15])
0003c2 480f LDR r0,|L1.1024|
0003c4 7981 LDRB r1,[r0,#6] ; Pass_init
0003c6 480f LDR r0,|L1.1028|
0003c8 7bc0 LDRB r0,[r0,#0xf]
0003ca 4281 CMP r1,r0
0003cc d126 BNE |L1.1052|
0003ce 480c LDR r0,|L1.1024|
0003d0 79c1 LDRB r1,[r0,#7] ; Pass_init
0003d2 480c LDR r0,|L1.1028|
0003d4 7c00 LDRB r0,[r0,#0x10]
0003d6 4281 CMP r1,r0
0003d8 d120 BNE |L1.1052|
;;;270 && (Pass_init[8] == Bluttooth_buf.gps_Rev_buf[16]) && (Pass_init[9] == Bluttooth_buf.gps_Rev_buf[17])
0003da 4809 LDR r0,|L1.1024|
0003dc 7a01 LDRB r1,[r0,#8] ; Pass_init
0003de 4809 LDR r0,|L1.1028|
0003e0 7c40 LDRB r0,[r0,#0x11]
0003e2 4281 CMP r1,r0
0003e4 d11a BNE |L1.1052|
0003e6 4806 LDR r0,|L1.1024|
0003e8 7a41 LDRB r1,[r0,#9] ; Pass_init
0003ea 4806 LDR r0,|L1.1028|
0003ec 7c80 LDRB r0,[r0,#0x12]
0003ee 4281 CMP r1,r0
0003f0 d114 BNE |L1.1052|
;;;271 )
;;;272 {
;;;273 sendbuffer[1] = 1;
0003f2 2001 MOVS r0,#1
0003f4 f88d0039 STRB r0,[sp,#0x39]
0003f8 e013 B |L1.1058|
0003fa 0000 DCW 0x0000
|L1.1020|
DCD 0x0800ffe0
|L1.1024|
DCD Pass_init
|L1.1028|
DCD Bluttooth_buf
|L1.1032|
DCD Data_Source
|L1.1036|
DCD BlueActivate
|L1.1040|
DCD Beep_Flag
|L1.1044|
DCD Ranjianyinjian
|L1.1048|
DCD Conf_309num
|L1.1052|
;;;274 }
;;;275 else
;;;276 sendbuffer[1] = 0; //1³É¹¦ 0ʧ°Ü
00041c 2000 MOVS r0,#0
00041e f88d0039 STRB r0,[sp,#0x39]
|L1.1058|
;;;277
;;;278 if(sendbuffer[1] == 0)
000422 f89d0039 LDRB r0,[sp,#0x39]
000426 bb30 CBNZ r0,|L1.1142|
;;;279 {
;;;280 //³¬¼¶ÃÜÂë
;;;281 if((Pass_CJ[4] == Bluttooth_buf.gps_Rev_buf[12]) && (Pass_CJ[5] == Bluttooth_buf.gps_Rev_buf[13])
000428 48fe LDR r0,|L1.2084|
00042a 7901 LDRB r1,[r0,#4] ; Pass_CJ
00042c 48fe LDR r0,|L1.2088|
00042e 7b40 LDRB r0,[r0,#0xd]
000430 4281 CMP r1,r0
000432 d121 BNE |L1.1144|
000434 48fb LDR r0,|L1.2084|
000436 7941 LDRB r1,[r0,#5] ; Pass_CJ
000438 48fb LDR r0,|L1.2088|
00043a 7b80 LDRB r0,[r0,#0xe]
00043c 4281 CMP r1,r0
00043e d11b BNE |L1.1144|
;;;282 && (Pass_CJ[6] == Bluttooth_buf.gps_Rev_buf[14]) && (Pass_CJ[7] == Bluttooth_buf.gps_Rev_buf[15])
000440 48f8 LDR r0,|L1.2084|
000442 7981 LDRB r1,[r0,#6] ; Pass_CJ
000444 48f8 LDR r0,|L1.2088|
000446 7bc0 LDRB r0,[r0,#0xf]
000448 4281 CMP r1,r0
00044a d115 BNE |L1.1144|
00044c 48f5 LDR r0,|L1.2084|
00044e 79c1 LDRB r1,[r0,#7] ; Pass_CJ
000450 48f5 LDR r0,|L1.2088|
000452 7c00 LDRB r0,[r0,#0x10]
000454 4281 CMP r1,r0
000456 d10f BNE |L1.1144|
;;;283 && (Pass_CJ[8] == Bluttooth_buf.gps_Rev_buf[16]) && (Pass_CJ[9] == Bluttooth_buf.gps_Rev_buf[17])
000458 48f2 LDR r0,|L1.2084|
00045a 7a01 LDRB r1,[r0,#8] ; Pass_CJ
00045c 48f2 LDR r0,|L1.2088|
00045e 7c40 LDRB r0,[r0,#0x11]
000460 4281 CMP r1,r0
000462 d109 BNE |L1.1144|
000464 48ef LDR r0,|L1.2084|
000466 7a41 LDRB r1,[r0,#9] ; Pass_CJ
000468 48ef LDR r0,|L1.2088|
00046a 7c80 LDRB r0,[r0,#0x12]
00046c 4281 CMP r1,r0
00046e d103 BNE |L1.1144|
;;;284 )
;;;285 {
;;;286 sendbuffer[1] = 1;
000470 2001 MOVS r0,#1
000472 f88d0039 STRB r0,[sp,#0x39]
|L1.1142|
000476 e002 B |L1.1150|
|L1.1144|
;;;287 }
;;;288 else
;;;289 sendbuffer[1] = 0; //1³É¹¦ 0ʧ°Ü
000478 2000 MOVS r0,#0
00047a f88d0039 STRB r0,[sp,#0x39]
|L1.1150|
;;;290 }
;;;291 Pass_bit = 0;
00047e 2000 MOVS r0,#0
000480 49ea LDR r1,|L1.2092|
000482 7008 STRB r0,[r1,#0]
|L1.1156|
;;;292 break;
000484 e058 B |L1.1336|
000486 e7ff B |L1.1160|
|L1.1160|
;;;293 case XIUG_PASS_CHU: //ÐÞ¸ÄÃÜÂëÊäÈëԭʼÃÜÂë
;;;294 if((Pass_init[4] == Bluttooth_buf.gps_Rev_buf[12]) && (Pass_init[5] == Bluttooth_buf.gps_Rev_buf[13])
000488 48e9 LDR r0,|L1.2096|
00048a 7901 LDRB r1,[r0,#4] ; Pass_init
00048c 48e6 LDR r0,|L1.2088|
00048e 7b40 LDRB r0,[r0,#0xd]
000490 4281 CMP r1,r0
000492 d126 BNE |L1.1250|
000494 48e6 LDR r0,|L1.2096|
000496 7941 LDRB r1,[r0,#5] ; Pass_init
000498 48e3 LDR r0,|L1.2088|
00049a 7b80 LDRB r0,[r0,#0xe]
00049c 4281 CMP r1,r0
00049e d120 BNE |L1.1250|
;;;295 && (Pass_init[6] == Bluttooth_buf.gps_Rev_buf[14]) && (Pass_init[7] == Bluttooth_buf.gps_Rev_buf[15])
0004a0 48e3 LDR r0,|L1.2096|
0004a2 7981 LDRB r1,[r0,#6] ; Pass_init
0004a4 48e0 LDR r0,|L1.2088|
0004a6 7bc0 LDRB r0,[r0,#0xf]
0004a8 4281 CMP r1,r0
0004aa d11a BNE |L1.1250|
0004ac 48e0 LDR r0,|L1.2096|
0004ae 79c1 LDRB r1,[r0,#7] ; Pass_init
0004b0 48dd LDR r0,|L1.2088|
0004b2 7c00 LDRB r0,[r0,#0x10]
0004b4 4281 CMP r1,r0
0004b6 d114 BNE |L1.1250|
;;;296 && (Pass_init[8] == Bluttooth_buf.gps_Rev_buf[16]) && (Pass_init[9] == Bluttooth_buf.gps_Rev_buf[17])
0004b8 48dd LDR r0,|L1.2096|
0004ba 7a01 LDRB r1,[r0,#8] ; Pass_init
0004bc 48da LDR r0,|L1.2088|
0004be 7c40 LDRB r0,[r0,#0x11]
0004c0 4281 CMP r1,r0
0004c2 d10e BNE |L1.1250|
0004c4 48da LDR r0,|L1.2096|
0004c6 7a41 LDRB r1,[r0,#9] ; Pass_init
0004c8 48d7 LDR r0,|L1.2088|
0004ca 7c80 LDRB r0,[r0,#0x12]
0004cc 4281 CMP r1,r0
0004ce d108 BNE |L1.1250|
;;;297 )
;;;298 {
;;;299 sendbuffer[1] = 1;
0004d0 2001 MOVS r0,#1
0004d2 e001 B |L1.1240|
0004d4 e044 B |L1.1376|
0004d6 e3fd B |L1.3284|
|L1.1240|
0004d8 f88d0039 STRB r0,[sp,#0x39]
;;;300 Pass_bit = 1;
0004dc 49d3 LDR r1,|L1.2092|
0004de 7008 STRB r0,[r1,#0]
0004e0 e004 B |L1.1260|
|L1.1250|
;;;301 }
;;;302 else
;;;303 {
;;;304 sendbuffer[1] = 0; //1³É¹¦ 0ʧ°Ü
0004e2 2000 MOVS r0,#0
0004e4 f88d0039 STRB r0,[sp,#0x39]
;;;305 Pass_bit = 0;
0004e8 49d0 LDR r1,|L1.2092|
0004ea 7008 STRB r0,[r1,#0]
|L1.1260|
;;;306 }
;;;307 break;
0004ec e024 B |L1.1336|
|L1.1262|
;;;308 case XIUG_PASS_NEW:
;;;309 {
;;;310 u8 i = 0;
0004ee 2400 MOVS r4,#0
;;;311 memcpy(&Pass_init_Lase[4],&Bluttooth_buf.gps_Rev_buf[12],6);
0004f0 49d0 LDR r1,|L1.2100|
0004f2 48cd LDR r0,|L1.2088|
0004f4 1c40 ADDS r0,r0,#1
0004f6 68c2 LDR r2,[r0,#0xc]
0004f8 604a STR r2,[r1,#4] ; Pass_init_Lase
0004fa 8a00 LDRH r0,[r0,#0x10]
0004fc 8108 STRH r0,[r1,#8]
;;;312 if(Pass_bit == 1)
0004fe 48cb LDR r0,|L1.2092|
000500 7800 LDRB r0,[r0,#0] ; Pass_bit
000502 2801 CMP r0,#1
000504 d114 BNE |L1.1328|
;;;313 {
;;;314 for(i=0;i<6;i++)
000506 bf00 NOP
000508 e006 B |L1.1304|
|L1.1290|
;;;315 {
;;;316 Pass_init[4+i] = Pass_init_Lase[4+i];
00050a 1d20 ADDS r0,r4,#4
00050c 49c9 LDR r1,|L1.2100|
00050e 5c09 LDRB r1,[r1,r0]
000510 4ac7 LDR r2,|L1.2096|
000512 5411 STRB r1,[r2,r0]
000514 1c60 ADDS r0,r4,#1 ;314
000516 b2c4 UXTB r4,r0 ;314
|L1.1304|
000518 2c06 CMP r4,#6 ;314
00051a dbf6 BLT |L1.1290|
;;;317 }
;;;318 flash_write_sys_flag_ALL(Pass_init);
00051c 48c4 LDR r0,|L1.2096|
00051e f7fffffe BL flash_write_sys_flag_ALL
;;;319 Pass_bit = 0;
000522 2000 MOVS r0,#0
000524 49c1 LDR r1,|L1.2092|
000526 7008 STRB r0,[r1,#0]
;;;320 sendbuffer[1] = 1;
000528 2001 MOVS r0,#1
00052a f88d0039 STRB r0,[sp,#0x39]
00052e e002 B |L1.1334|
|L1.1328|
;;;321 }
;;;322 else
;;;323 sendbuffer[1] = 0;
000530 2000 MOVS r0,#0
000532 f88d0039 STRB r0,[sp,#0x39]
|L1.1334|
;;;324 }
;;;325 break;
000536 bf00 NOP
|L1.1336|
000538 bf00 NOP ;292
;;;326 }
;;;327 Type = 0x01;
00053a 2001 MOVS r0,#1
00053c 905a STR r0,[sp,#0x168]
;;;328 sendbuffer[0] = b_addr;
00053e f88d9038 STRB r9,[sp,#0x38]
;;;329 send_len = 2;
000542 f04f0a02 MOV r10,#2
;;;330 /*·¢ËÍÊý¾Ý*/
;;;331 BlueSend_GpsFun(Bms_num,orde,Type,sendbuffer,send_len,recnum);
000546 9859 LDR r0,[sp,#0x164]
000548 ab0e ADD r3,sp,#0x38
00054a e9cda000 STRD r10,r0,[sp,#0]
00054e 9a5a LDR r2,[sp,#0x168]
000550 995b LDR r1,[sp,#0x16c]
000552 985d LDR r0,[sp,#0x174]
000554 f7fffffe BL BlueSend_GpsFun
;;;332 Beep_Flag = 1;
000558 2001 MOVS r0,#1
00055a 49b7 LDR r1,|L1.2104|
00055c 7008 STRB r0,[r1,#0]
;;;333 }
;;;334 break;
00055e e6d4 B |L1.778|
|L1.1376|
;;;335 case REV_ALLORDE: //¶ÁMCUÈ«²¿Ö¸Áî
;;;336 if(BlueActivate == 1)
000560 48b6 LDR r0,|L1.2108|
000562 7800 LDRB r0,[r0,#0] ; BlueActivate
000564 2801 CMP r0,#1
000566 d17c BNE |L1.1634|
;;;337 {
;;;338 u32 sumVol = 0;
000568 2000 MOVS r0,#0
00056a 9009 STR r0,[sp,#0x24]
;;;339 u16 Out_curr = 0; //·ÅµçµçÁ÷ µ¥Î»£º0.01A
00056c 4683 MOV r11,r0
;;;340 u16 Chg_curr = 0;
00056e 9008 STR r0,[sp,#0x20]
;;;341 u16 temp = 0;
000570 2400 MOVS r4,#0
;;;342
;;;343 if(Ranjianyinjian == 0)
000572 48b3 LDR r0,|L1.2112|
000574 7800 LDRB r0,[r0,#0] ; Ranjianyinjian
000576 b950 CBNZ r0,|L1.1422|
;;;344 {
;;;345 Send_TString_BMS(Bluttooth_buf.gps_Rev_buf,data_len+2);
000578 1cb1 ADDS r1,r6,#2
00057a 48ab LDR r0,|L1.2088|
00057c 1c40 ADDS r0,r0,#1
00057e f7fffffe BL Send_TString_BMS
;;;346 Bluetooth_bit = 1;
000582 2001 MOVS r0,#1
000584 49af LDR r1,|L1.2116|
000586 7008 STRB r0,[r1,#0]
;;;347 Beep_Flag = 1;
000588 49ab LDR r1,|L1.2104|
00058a 7008 STRB r0,[r1,#0]
|L1.1420|
00058c e3fd B |L1.3466|
|L1.1422|
;;;348 }
;;;349
;;;350 else if(Ranjianyinjian == 1)
00058e 48ac LDR r0,|L1.2112|
000590 7800 LDRB r0,[r0,#0] ; Ranjianyinjian
000592 2801 CMP r0,#1
000594 d1fa BNE |L1.1420|
;;;351 {
;;;352 u8 i = 0;
000596 2500 MOVS r5,#0
;;;353 Type = 0x01; //Ó¦´ð
000598 905a STR r0,[sp,#0x168]
;;;354 memset(sendbuffer,0,sizeof(sendbuffer)); //Êý¾ÝÇåÁã
00059a f44f7196 MOV r1,#0x12c
00059e a80e ADD r0,sp,#0x38
0005a0 f7fffffe BL __aeabi_memclr4
;;;355 Send_TString_BMS(stop_orde,22); //·¢Ë͸øMCUÍ£Ö¹¶Ô309¶Áд
0005a4 2116 MOVS r1,#0x16
0005a6 48a8 LDR r0,|L1.2120|
0005a8 f7fffffe BL Send_TString_BMS
;;;356 Delay_ms(100);
0005ac 2064 MOVS r0,#0x64
0005ae f7fffffe BL Delay_ms
;;;357
;;;358 if(Conf_309num==1)
0005b2 48a6 LDR r0,|L1.2124|
0005b4 7800 LDRB r0,[r0,#0] ; Conf_309num
0005b6 2801 CMP r0,#1
0005b8 d112 BNE |L1.1504|
;;;359 {
;;;360 MTPRead_fun_1( EEPROM_SCONF1, 2, &Rev_309_buf_A[0]);
0005ba aa0d ADD r2,sp,#0x34
0005bc 2102 MOVS r1,#2
0005be 2000 MOVS r0,#0
0005c0 f7fffffe BL MTPRead_fun_1
;;;361 data_309_A.EEPROMWriRev_309.Sconf1.datas = Rev_309_buf_A[0];
0005c4 f89d0034 LDRB r0,[sp,#0x34]
0005c8 49a1 LDR r1,|L1.2128|
0005ca 7008 STRB r0,[r1,#0]
;;;362 A_Cellnum = (data_309_A.EEPROMWriRev_309.Sconf1.bits.cn3_cn0 & 0x0f);
0005cc 4608 MOV r0,r1
0005ce 7800 LDRB r0,[r0,#0] ; data_309_A
0005d0 f000070f AND r7,r0,#0xf
;;;363 if(A_Cellnum<5)
0005d4 2f05 CMP r7,#5
0005d6 da00 BGE |L1.1498|
;;;364 A_Cellnum = 16;
0005d8 2710 MOVS r7,#0x10
|L1.1498|
;;;365 B_Cellnum = 0;
0005da f04f0800 MOV r8,#0
0005de e025 B |L1.1580|
|L1.1504|
;;;366 }
;;;367
;;;368 else if(Conf_309num==2)
0005e0 489a LDR r0,|L1.2124|
0005e2 7800 LDRB r0,[r0,#0] ; Conf_309num
0005e4 2802 CMP r0,#2
0005e6 d121 BNE |L1.1580|
;;;369 {
;;;370 MTPRead_fun_1( EEPROM_SCONF1, 2, &Rev_309_buf_A[0]);
0005e8 aa0d ADD r2,sp,#0x34
0005ea 2102 MOVS r1,#2
0005ec 2000 MOVS r0,#0
0005ee f7fffffe BL MTPRead_fun_1
;;;371 data_309_A.EEPROMWriRev_309.Sconf1.datas = Rev_309_buf_A[0];
0005f2 f89d0034 LDRB r0,[sp,#0x34]
0005f6 4996 LDR r1,|L1.2128|
0005f8 7008 STRB r0,[r1,#0]
;;;372 A_Cellnum = (data_309_A.EEPROMWriRev_309.Sconf1.bits.cn3_cn0 & 0x0f);
0005fa 4608 MOV r0,r1
0005fc 7800 LDRB r0,[r0,#0] ; data_309_A
0005fe f000070f AND r7,r0,#0xf
;;;373 if(A_Cellnum<5)
000602 2f05 CMP r7,#5
000604 da00 BGE |L1.1544|
;;;374 A_Cellnum = 16;
000606 2710 MOVS r7,#0x10
|L1.1544|
;;;375
;;;376 MTPRead_fun_2( EEPROM_SCONF1, 2, &Rev_309_buf_B[0]);
000608 aa0c ADD r2,sp,#0x30
00060a 2102 MOVS r1,#2
00060c 2000 MOVS r0,#0
00060e f7fffffe BL MTPRead_fun_2
;;;377 data_309_B.EEPROMWriRev_309.Sconf1.datas = Rev_309_buf_B[0];
000612 f89d0030 LDRB r0,[sp,#0x30]
000616 498f LDR r1,|L1.2132|
000618 7008 STRB r0,[r1,#0]
;;;378 B_Cellnum = (data_309_B.EEPROMWriRev_309.Sconf1.bits.cn3_cn0 & 0x0f);
00061a 4608 MOV r0,r1
00061c 7800 LDRB r0,[r0,#0] ; data_309_B
00061e f000080f AND r8,r0,#0xf
;;;379 if(B_Cellnum<5)
000622 f1b80f05 CMP r8,#5
000626 da01 BGE |L1.1580|
;;;380 B_Cellnum = 0;
000628 f04f0800 MOV r8,#0
|L1.1580|
;;;381 }
;;;382
;;;383
;;;384 MTPRead_fun_1( MTP_CONF, 1, &Rev_309_buf_A[0]);
00062c aa0d ADD r2,sp,#0x34
00062e 2101 MOVS r1,#1
000630 2040 MOVS r0,#0x40
000632 f7fffffe BL MTPRead_fun_1
;;;385 data_309_A.RAM_WrieRev_309.Conf.datas = Rev_309_buf_A[0];
000636 f89d0034 LDRB r0,[sp,#0x34]
00063a 4985 LDR r1,|L1.2128|
00063c 7688 STRB r0,[r1,#0x1a]
;;;386
;;;387 RAM_309data.Conf.datas = data_309_A.RAM_WrieRev_309.Conf.datas;
00063e 4608 MOV r0,r1
000640 7e80 LDRB r0,[r0,#0x1a] ; data_309_A
000642 4985 LDR r1,|L1.2136|
000644 7008 STRB r0,[r1,#0]
;;;388
;;;389 if(Conf_309num==1)
000646 4881 LDR r0,|L1.2124|
000648 7800 LDRB r0,[r0,#0] ; Conf_309num
00064a 2801 CMP r0,#1
00064c d115 BNE |L1.1658|
;;;390 {
;;;391 MTPRead_fun_1( MTP_BALANCEH, 2, &Rev_309_buf_A[0]);
00064e aa0d ADD r2,sp,#0x34
000650 2102 MOVS r1,#2
000652 2041 MOVS r0,#0x41
000654 f7fffffe BL MTPRead_fun_1
;;;392 data_309_A.RAM_WrieRev_309.Balanceh_l.datas = (Rev_309_buf_A[0] << 8) | Rev_309_buf_A[1];
000658 f89d0035 LDRB r0,[sp,#0x35]
00065c f89d1034 LDRB r1,[sp,#0x34]
000660 e000 B |L1.1636|
|L1.1634|
000662 e3f7 B |L1.3668|
|L1.1636|
000664 ea402101 ORR r1,r0,r1,LSL #8
000668 4879 LDR r0,|L1.2128|
00066a 8381 STRH r1,[r0,#0x1c]
;;;393 RAM_309data.Balanceh_l.datas = 0;
00066c 2000 MOVS r0,#0
00066e 497a LDR r1,|L1.2136|
000670 6048 STR r0,[r1,#4] ; RAM_309data
;;;394 RAM_309data.Balanceh_l.datas = data_309_A.RAM_WrieRev_309.Balanceh_l.datas;
000672 4877 LDR r0,|L1.2128|
000674 8b80 LDRH r0,[r0,#0x1c]
000676 6048 STR r0,[r1,#4] ; RAM_309data
000678 e028 B |L1.1740|
|L1.1658|
;;;395 }
;;;396 else if(Conf_309num==2)
00067a 4874 LDR r0,|L1.2124|
00067c 7800 LDRB r0,[r0,#0] ; Conf_309num
00067e 2802 CMP r0,#2
000680 d124 BNE |L1.1740|
;;;397 {
;;;398 MTPRead_fun_1( MTP_BALANCEH, 2, &Rev_309_buf_A[0]);
000682 aa0d ADD r2,sp,#0x34
000684 2102 MOVS r1,#2
000686 2041 MOVS r0,#0x41
000688 f7fffffe BL MTPRead_fun_1
;;;399 data_309_A.RAM_WrieRev_309.Balanceh_l.datas = (Rev_309_buf_A[0] << 8) | Rev_309_buf_A[1];
00068c f89d0035 LDRB r0,[sp,#0x35]
000690 f89d1034 LDRB r1,[sp,#0x34]
000694 ea402101 ORR r1,r0,r1,LSL #8
000698 486d LDR r0,|L1.2128|
00069a 8381 STRH r1,[r0,#0x1c]
;;;400 MTPRead_fun_2( MTP_BALANCEH, 2, &Rev_309_buf_B[0]);
00069c aa0c ADD r2,sp,#0x30
00069e 2102 MOVS r1,#2
0006a0 2041 MOVS r0,#0x41
0006a2 f7fffffe BL MTPRead_fun_2
;;;401 data_309_B.RAM_WrieRev_309.Balanceh_l.datas = (Rev_309_buf_B[0] << 8) | Rev_309_buf_B[1];
0006a6 f89d0031 LDRB r0,[sp,#0x31]
0006aa f89d1030 LDRB r1,[sp,#0x30]
0006ae ea402101 ORR r1,r0,r1,LSL #8
0006b2 4868 LDR r0,|L1.2132|
0006b4 8381 STRH r1,[r0,#0x1c]
;;;402 RAM_309data.Balanceh_l.datas = 0;
0006b6 2000 MOVS r0,#0
0006b8 4967 LDR r1,|L1.2136|
0006ba 6048 STR r0,[r1,#4] ; RAM_309data
;;;403 RAM_309data.Balanceh_l.datas = (data_309_B.RAM_WrieRev_309.Balanceh_l.datas << A_Cellnum) | data_309_A.RAM_WrieRev_309.Balanceh_l.datas;
0006bc 4865 LDR r0,|L1.2132|
0006be 8b80 LDRH r0,[r0,#0x1c]
0006c0 40b8 LSLS r0,r0,r7
0006c2 4963 LDR r1,|L1.2128|
0006c4 8b89 LDRH r1,[r1,#0x1c]
0006c6 4308 ORRS r0,r0,r1
0006c8 4963 LDR r1,|L1.2136|
0006ca 6048 STR r0,[r1,#4] ; RAM_309data
|L1.1740|
;;;404 }
;;;405
;;;406 if(Conf_309num==1)
0006cc 485f LDR r0,|L1.2124|
0006ce 7800 LDRB r0,[r0,#0] ; Conf_309num
0006d0 2801 CMP r0,#1
0006d2 d126 BNE |L1.1826|
;;;407 {
;;;408 MTPRead_fun_1( MTP_BSTATUS1, 1, &Rev_309_buf_A[0]);
0006d4 aa0d ADD r2,sp,#0x34
0006d6 2101 MOVS r1,#1
0006d8 2043 MOVS r0,#0x43
0006da f7fffffe BL MTPRead_fun_1
;;;409 data_309_A.RAM_WrieRev_309.Bstrtus1.datas = Rev_309_buf_A[0];
0006de f89d1034 LDRB r1,[sp,#0x34]
0006e2 485b LDR r0,|L1.2128|
0006e4 7781 STRB r1,[r0,#0x1e]
;;;410 RAM_309data.Bstrtus1.datas = data_309_A.RAM_WrieRev_309.Bstrtus1.datas;
0006e6 7f80 LDRB r0,[r0,#0x1e]
0006e8 495b LDR r1,|L1.2136|
0006ea 7208 STRB r0,[r1,#8]
;;;411
;;;412 MTPRead_fun_1( MTP_BSTATUS2, 1, &Rev_309_buf_A[0]);
0006ec aa0d ADD r2,sp,#0x34
0006ee 2101 MOVS r1,#1
0006f0 2044 MOVS r0,#0x44
0006f2 f7fffffe BL MTPRead_fun_1
;;;413 data_309_A.RAM_WrieRev_309.Bstrtus2.datas = Rev_309_buf_A[0];
0006f6 f89d1034 LDRB r1,[sp,#0x34]
0006fa 4855 LDR r0,|L1.2128|
0006fc 77c1 STRB r1,[r0,#0x1f]
;;;414 RAM_309data.Bstrtus2.datas = data_309_A.RAM_WrieRev_309.Bstrtus2.datas;
0006fe 7fc0 LDRB r0,[r0,#0x1f]
000700 4955 LDR r1,|L1.2136|
000702 7248 STRB r0,[r1,#9]
;;;415
;;;416 MTPRead_fun_1( MTP_BSTATUS3, 1, &Rev_309_buf_A[0]);
000704 aa0d ADD r2,sp,#0x34
000706 2101 MOVS r1,#1
000708 2045 MOVS r0,#0x45
00070a f7fffffe BL MTPRead_fun_1
;;;417 data_309_A.RAM_WrieRev_309.Bstrtus3.datas = Rev_309_buf_A[0];
00070e f89d1034 LDRB r1,[sp,#0x34]
000712 484f LDR r0,|L1.2128|
000714 f8801020 STRB r1,[r0,#0x20]
;;;418 RAM_309data.Bstrtus3.datas = data_309_A.RAM_WrieRev_309.Bstrtus3.datas;
000718 f8900020 LDRB r0,[r0,#0x20]
00071c 494e LDR r1,|L1.2136|
00071e 7288 STRB r0,[r1,#0xa]
000720 e052 B |L1.1992|
|L1.1826|
;;;419 }
;;;420
;;;421 else if(Conf_309num==2)
000722 484a LDR r0,|L1.2124|
000724 7800 LDRB r0,[r0,#0] ; Conf_309num
000726 2802 CMP r0,#2
000728 d14e BNE |L1.1992|
;;;422 {
;;;423 MTPRead_fun_1( MTP_BSTATUS1, 1, &Rev_309_buf_A[0]);
00072a aa0d ADD r2,sp,#0x34
00072c 2101 MOVS r1,#1
00072e 2043 MOVS r0,#0x43
000730 f7fffffe BL MTPRead_fun_1
;;;424 data_309_A.RAM_WrieRev_309.Bstrtus1.datas = Rev_309_buf_A[0];
000734 f89d1034 LDRB r1,[sp,#0x34]
000738 4845 LDR r0,|L1.2128|
00073a 7781 STRB r1,[r0,#0x1e]
;;;425 MTPRead_fun_2( MTP_BSTATUS1, 1, &Rev_309_buf_B[0]);
00073c aa0c ADD r2,sp,#0x30
00073e 2101 MOVS r1,#1
000740 2043 MOVS r0,#0x43
000742 f7fffffe BL MTPRead_fun_2
;;;426 data_309_B.RAM_WrieRev_309.Bstrtus1.datas = Rev_309_buf_B[0];
000746 f89d1030 LDRB r1,[sp,#0x30]
00074a 4842 LDR r0,|L1.2132|
00074c 7781 STRB r1,[r0,#0x1e]
;;;427 RAM_309data.Bstrtus1.datas = data_309_A.RAM_WrieRev_309.Bstrtus1.datas | data_309_B.RAM_WrieRev_309.Bstrtus1.datas;
00074e 4840 LDR r0,|L1.2128|
000750 7f80 LDRB r0,[r0,#0x1e]
000752 4940 LDR r1,|L1.2132|
000754 7f89 LDRB r1,[r1,#0x1e]
000756 4308 ORRS r0,r0,r1
000758 493f LDR r1,|L1.2136|
00075a 7208 STRB r0,[r1,#8]
;;;428
;;;429 MTPRead_fun_1( MTP_BSTATUS2, 1, &Rev_309_buf_A[0]);
00075c aa0d ADD r2,sp,#0x34
00075e 2101 MOVS r1,#1
000760 2044 MOVS r0,#0x44
000762 f7fffffe BL MTPRead_fun_1
;;;430 data_309_A.RAM_WrieRev_309.Bstrtus2.datas = Rev_309_buf_A[0];
000766 f89d1034 LDRB r1,[sp,#0x34]
00076a 4839 LDR r0,|L1.2128|
00076c 77c1 STRB r1,[r0,#0x1f]
;;;431 MTPRead_fun_2( MTP_BSTATUS2, 1, &Rev_309_buf_B[0]);
00076e aa0c ADD r2,sp,#0x30
000770 2101 MOVS r1,#1
000772 2044 MOVS r0,#0x44
000774 f7fffffe BL MTPRead_fun_2
;;;432 data_309_B.RAM_WrieRev_309.Bstrtus2.datas = Rev_309_buf_B[0];
000778 f89d1030 LDRB r1,[sp,#0x30]
00077c 4835 LDR r0,|L1.2132|
00077e 77c1 STRB r1,[r0,#0x1f]
;;;433 RAM_309data.Bstrtus2.datas = data_309_A.RAM_WrieRev_309.Bstrtus2.datas | data_309_B.RAM_WrieRev_309.Bstrtus2.datas;
000780 4833 LDR r0,|L1.2128|
000782 7fc0 LDRB r0,[r0,#0x1f]
000784 4933 LDR r1,|L1.2132|
000786 7fc9 LDRB r1,[r1,#0x1f]
000788 4308 ORRS r0,r0,r1
00078a 4933 LDR r1,|L1.2136|
00078c 7248 STRB r0,[r1,#9]
;;;434
;;;435 MTPRead_fun_1( MTP_BSTATUS3, 1, &Rev_309_buf_A[0]);
00078e aa0d ADD r2,sp,#0x34
000790 2101 MOVS r1,#1
000792 2045 MOVS r0,#0x45
000794 f7fffffe BL MTPRead_fun_1
;;;436 data_309_A.RAM_WrieRev_309.Bstrtus3.datas = Rev_309_buf_A[0];
000798 f89d1034 LDRB r1,[sp,#0x34]
00079c 482c LDR r0,|L1.2128|
00079e f8801020 STRB r1,[r0,#0x20]
;;;437 MTPRead_fun_2( MTP_BSTATUS3, 1, &Rev_309_buf_B[0]);
0007a2 aa0c ADD r2,sp,#0x30
0007a4 2101 MOVS r1,#1
0007a6 2045 MOVS r0,#0x45
0007a8 f7fffffe BL MTPRead_fun_2
;;;438 data_309_B.RAM_WrieRev_309.Bstrtus3.datas = Rev_309_buf_B[0];
0007ac f89d1030 LDRB r1,[sp,#0x30]
0007b0 4828 LDR r0,|L1.2132|
0007b2 f8801020 STRB r1,[r0,#0x20]
;;;439 RAM_309data.Bstrtus3.datas = data_309_A.RAM_WrieRev_309.Bstrtus3.datas | data_309_B.RAM_WrieRev_309.Bstrtus3.datas;
0007b6 4826 LDR r0,|L1.2128|
0007b8 f8900020 LDRB r0,[r0,#0x20]
0007bc 4925 LDR r1,|L1.2132|
0007be f8911020 LDRB r1,[r1,#0x20]
0007c2 4308 ORRS r0,r0,r1
0007c4 4924 LDR r1,|L1.2136|
0007c6 7288 STRB r0,[r1,#0xa]
|L1.1992|
;;;440 }
;;;441
;;;442
;;;443 MTPRead_fun_1( MTP_TEMP1, 2, &Rev_309_buf_A[0]);
0007c8 aa0d ADD r2,sp,#0x34
0007ca 2102 MOVS r1,#2
0007cc 2046 MOVS r0,#0x46
0007ce f7fffffe BL MTPRead_fun_1
;;;444 data_309_A.RAM_WrieRev_309.TEMP1h_l = (Rev_309_buf_A[0] << 8) | Rev_309_buf_A[1];
0007d2 f89d0035 LDRB r0,[sp,#0x35]
0007d6 f89d1034 LDRB r1,[sp,#0x34]
0007da ea402101 ORR r1,r0,r1,LSL #8
0007de 481c LDR r0,|L1.2128|
0007e0 8441 STRH r1,[r0,#0x22]
;;;445 RAM_309data.TEMP1h_l = data_309_A.RAM_WrieRev_309.TEMP1h_l;
0007e2 8c40 LDRH r0,[r0,#0x22]
0007e4 491c LDR r1,|L1.2136|
0007e6 8188 STRH r0,[r1,#0xc]
;;;446
;;;447 MTPRead_fun_1( MTP_TEMP2, 2, &Rev_309_buf_A[0]);
0007e8 aa0d ADD r2,sp,#0x34
0007ea 2102 MOVS r1,#2
0007ec 2048 MOVS r0,#0x48
0007ee f7fffffe BL MTPRead_fun_1
;;;448 data_309_A.RAM_WrieRev_309.TEMP2h_l = (Rev_309_buf_A[0] << 8) | Rev_309_buf_A[1];
0007f2 f89d0035 LDRB r0,[sp,#0x35]
0007f6 f89d1034 LDRB r1,[sp,#0x34]
0007fa ea402101 ORR r1,r0,r1,LSL #8
0007fe 4814 LDR r0,|L1.2128|
000800 8481 STRH r1,[r0,#0x24]
;;;449 RAM_309data.TEMP2h_l = data_309_A.RAM_WrieRev_309.TEMP2h_l;
000802 8c80 LDRH r0,[r0,#0x24]
000804 4914 LDR r1,|L1.2136|
000806 81c8 STRH r0,[r1,#0xe]
;;;450
;;;451 MTPRead_fun_1( MTP_TEMP3, 2, &Rev_309_buf_A[0]);
000808 aa0d ADD r2,sp,#0x34
00080a 2102 MOVS r1,#2
00080c 204a MOVS r0,#0x4a
00080e f7fffffe BL MTPRead_fun_1
;;;452 data_309_A.RAM_WrieRev_309.TEMP3h_l = (Rev_309_buf_A[0] << 8) | Rev_309_buf_A[1];
000812 f89d0035 LDRB r0,[sp,#0x35]
000816 f89d1034 LDRB r1,[sp,#0x34]
00081a ea402101 ORR r1,r0,r1,LSL #8
00081e 480c LDR r0,|L1.2128|
000820 84c1 STRH r1,[r0,#0x26]
;;;453 RAM_309data.TEMP3h_l = data_309_A.RAM_WrieRev_309.TEMP3h_l;
000822 e01b B |L1.2140|
|L1.2084|
DCD Pass_CJ
|L1.2088|
DCD Bluttooth_buf
|L1.2092|
DCD Pass_bit
|L1.2096|
DCD Pass_init
|L1.2100|
DCD Pass_init_Lase
|L1.2104|
DCD Beep_Flag
|L1.2108|
DCD BlueActivate
|L1.2112|
DCD Ranjianyinjian
|L1.2116|
DCD Bluetooth_bit
|L1.2120|
DCD stop_orde
|L1.2124|
DCD Conf_309num
|L1.2128|
DCD data_309_A
|L1.2132|
DCD data_309_B
|L1.2136|
DCD RAM_309data
|L1.2140|
00085c 8cc0 LDRH r0,[r0,#0x26]
00085e 49fe LDR r1,|L1.3160|
000860 8208 STRH r0,[r1,#0x10]
;;;454
;;;455 MTPRead_fun_1( MTP_CUR, 2, &Rev_309_buf_A[0]);
000862 aa0d ADD r2,sp,#0x34
000864 2102 MOVS r1,#2
000866 204c MOVS r0,#0x4c
000868 f7fffffe BL MTPRead_fun_1
;;;456 data_309_A.RAM_WrieRev_309.Curh_l = (Rev_309_buf_A[0] << 8) | Rev_309_buf_A[1];
00086c f89d0035 LDRB r0,[sp,#0x35]
000870 f89d1034 LDRB r1,[sp,#0x34]
000874 ea402101 ORR r1,r0,r1,LSL #8
000878 48f8 LDR r0,|L1.3164|
00087a 8501 STRH r1,[r0,#0x28]
;;;457 RAM_309data.Curh_l = data_309_A.RAM_WrieRev_309.Curh_l;
00087c 8d00 LDRH r0,[r0,#0x28]
00087e 49f6 LDR r1,|L1.3160|
000880 8248 STRH r0,[r1,#0x12]
;;;458
;;;459 for(i=0;i<A_Cellnum;i++)
000882 2500 MOVS r5,#0
000884 e013 B |L1.2222|
|L1.2182|
;;;460 {
;;;461 MTPRead_fun_1( 0x4E+i*2, 2, &Rev_309_buf_A[0]);
000886 214e MOVS r1,#0x4e
000888 eb010145 ADD r1,r1,r5,LSL #1
00088c b2c8 UXTB r0,r1
00088e aa0d ADD r2,sp,#0x34
000890 2102 MOVS r1,#2
000892 f7fffffe BL MTPRead_fun_1
;;;462 RAM_309data.Cell.cellvol[i] = (Rev_309_buf_A[0] << 8) | Rev_309_buf_A[1];
000896 f89d0035 LDRB r0,[sp,#0x35]
00089a f89d1034 LDRB r1,[sp,#0x34]
00089e ea402101 ORR r1,r0,r1,LSL #8
0008a2 48ed LDR r0,|L1.3160|
0008a4 3014 ADDS r0,r0,#0x14
0008a6 f8201015 STRH r1,[r0,r5,LSL #1]
0008aa 1c68 ADDS r0,r5,#1 ;459
0008ac b2c5 UXTB r5,r0 ;459
|L1.2222|
0008ae 42bd CMP r5,r7 ;459
0008b0 dbe9 BLT |L1.2182|
;;;463 }
;;;464 for(i=0;i<B_Cellnum;i++)
0008b2 2500 MOVS r5,#0
0008b4 e014 B |L1.2272|
|L1.2230|
;;;465 {
;;;466 MTPRead_fun_2( 0x4E+i*2, 2, &Rev_309_buf_B[0]);
0008b6 214e MOVS r1,#0x4e
0008b8 eb010145 ADD r1,r1,r5,LSL #1
0008bc b2c8 UXTB r0,r1
0008be aa0c ADD r2,sp,#0x30
0008c0 2102 MOVS r1,#2
0008c2 f7fffffe BL MTPRead_fun_2
;;;467 RAM_309data.Cell.cellvol[i+A_Cellnum] = (Rev_309_buf_B[0] << 8) | Rev_309_buf_B[1];
0008c6 f89d0031 LDRB r0,[sp,#0x31]
0008ca f89d1030 LDRB r1,[sp,#0x30]
0008ce ea402101 ORR r1,r0,r1,LSL #8
0008d2 19ea ADDS r2,r5,r7
0008d4 48e0 LDR r0,|L1.3160|
0008d6 3014 ADDS r0,r0,#0x14
0008d8 f8201012 STRH r1,[r0,r2,LSL #1]
0008dc 1c68 ADDS r0,r5,#1 ;464
0008de b2c5 UXTB r5,r0 ;464
|L1.2272|
0008e0 4545 CMP r5,r8 ;464
0008e2 dbe8 BLT |L1.2230|
;;;468 }
;;;469 for(i=A_Cellnum+B_Cellnum;i<24;i++)
0008e4 eb070008 ADD r0,r7,r8
0008e8 b2c5 UXTB r5,r0
0008ea e006 B |L1.2298|
|L1.2284|
;;;470 {
;;;471 RAM_309data.Cell.cellvol[i]=0;
0008ec 2100 MOVS r1,#0
0008ee 48da LDR r0,|L1.3160|
0008f0 3014 ADDS r0,r0,#0x14
0008f2 f8201015 STRH r1,[r0,r5,LSL #1]
0008f6 1c68 ADDS r0,r5,#1 ;469
0008f8 b2c5 UXTB r5,r0 ;469
|L1.2298|
0008fa 2d18 CMP r5,#0x18 ;469
0008fc dbf6 BLT |L1.2284|
;;;472 }
;;;473
;;;474 MTPRead_fun_1( MTP_ADC2, 2, &Rev_309_buf_A[0]);
0008fe aa0d ADD r2,sp,#0x34
000900 2102 MOVS r1,#2
000902 206e MOVS r0,#0x6e
000904 f7fffffe BL MTPRead_fun_1
;;;475 data_309_A.RAM_WrieRev_309.CADcdh_l = (Rev_309_buf_A[0] << 8) | Rev_309_buf_A[1];
000908 f89d0035 LDRB r0,[sp,#0x35]
00090c f89d1034 LDRB r1,[sp,#0x34]
000910 ea402101 ORR r1,r0,r1,LSL #8
000914 48d1 LDR r0,|L1.3164|
000916 f8a0104a STRH r1,[r0,#0x4a]
;;;476 RAM_309data.CADcdh_l = data_309_A.RAM_WrieRev_309.CADcdh_l;
00091a f8b0004a LDRH r0,[r0,#0x4a]
00091e 49ce LDR r1,|L1.3160|
000920 f8a10044 STRH r0,[r1,#0x44]
;;;477
;;;478 MTPRead_fun_1( MTP_BFLAG1, 1, &Rev_309_buf_A[0]);
000924 aa0d ADD r2,sp,#0x34
000926 2101 MOVS r1,#1
000928 2070 MOVS r0,#0x70
00092a f7fffffe BL MTPRead_fun_1
;;;479 data_309_A.RAM_WrieRev_309.Bflag1.datas = Rev_309_buf_A[0];
00092e f89d1034 LDRB r1,[sp,#0x34]
000932 48ca LDR r0,|L1.3164|
000934 f880104c STRB r1,[r0,#0x4c]
;;;480 RAM_309data.Bflag1.datas = data_309_A.RAM_WrieRev_309.Bflag1.datas;
000938 f890004c LDRB r0,[r0,#0x4c]
00093c 49c6 LDR r1,|L1.3160|
00093e f8810046 STRB r0,[r1,#0x46]
;;;481
;;;482 MTPRead_fun_1( MTP_BFLAG2, 1, &Rev_309_buf_A[0]);
000942 aa0d ADD r2,sp,#0x34
000944 2101 MOVS r1,#1
000946 2071 MOVS r0,#0x71
000948 f7fffffe BL MTPRead_fun_1
;;;483 data_309_A.RAM_WrieRev_309.Bflag2.datas = Rev_309_buf_A[0];
00094c f89d1034 LDRB r1,[sp,#0x34]
000950 48c2 LDR r0,|L1.3164|
000952 f880104d STRB r1,[r0,#0x4d]
;;;484 RAM_309data.Bflag2.datas = data_309_A.RAM_WrieRev_309.Bflag2.datas;
000956 f890004d LDRB r0,[r0,#0x4d]
00095a 49bf LDR r1,|L1.3160|
00095c f8810047 STRB r0,[r1,#0x47]
;;;485
;;;486 MTPRead_fun_1( MTP_RSTSTAT, 1, &Rev_309_buf_A[0]);
000960 aa0d ADD r2,sp,#0x34
000962 2101 MOVS r1,#1
000964 2072 MOVS r0,#0x72
000966 f7fffffe BL MTPRead_fun_1
;;;487 data_309_A.RAM_WrieRev_309.Rststat.datas = Rev_309_buf_A[0];
00096a f89d1034 LDRB r1,[sp,#0x34]
00096e 48bb LDR r0,|L1.3164|
000970 f880104e STRB r1,[r0,#0x4e]
;;;488 RAM_309data.Rststat.datas = data_309_A.RAM_WrieRev_309.Rststat.datas;
000974 f890004e LDRB r0,[r0,#0x4e]
000978 49b7 LDR r1,|L1.3160|
00097a f8810048 STRB r0,[r1,#0x48]
;;;489
;;;490 MTPRead_fun_1( EEPROM_TR, 1, &Rev_309_buf_A[0]);
00097e aa0d ADD r2,sp,#0x34
000980 2101 MOVS r1,#1
000982 2019 MOVS r0,#0x19
000984 f7fffffe BL MTPRead_fun_1
;;;491 data_309_A.EEPROMWriRev_309.Tr = Rev_309_buf_A[0];
000988 f89d0034 LDRB r0,[sp,#0x34]
00098c 49b3 LDR r1,|L1.3164|
00098e 7648 STRB r0,[r1,#0x19]
;;;492 Rref = (6.8 + 0.05 * (float)(data_309_A.EEPROMWriRev_309.Tr&0x7f));
000990 7e49 LDRB r1,[r1,#0x19] ; data_309_A
000992 f001007f AND r0,r1,#0x7f
000996 f7fffffe BL __aeabi_i2f
00099a 9001 STR r0,[sp,#4]
00099c f7fffffe BL __aeabi_f2d
0009a0 4aaf LDR r2,|L1.3168|
0009a2 4bb0 LDR r3,|L1.3172|
0009a4 e9cd0102 STRD r0,r1,[sp,#8]
0009a8 f7fffffe BL __aeabi_dmul
0009ac f04f3233 MOV r2,#0x33333333
0009b0 4bad LDR r3,|L1.3176|
0009b2 e9cd0104 STRD r0,r1,[sp,#0x10]
0009b6 f7fffffe BL __aeabi_dadd
0009ba e9cd0106 STRD r0,r1,[sp,#0x18]
0009be f7fffffe BL __aeabi_d2f
0009c2 900b STR r0,[sp,#0x2c]
;;;493
;;;494 MTPRead_fun_1( MTP_TEMP1, 2, &Rev_309_buf_A[0]);
0009c4 aa0d ADD r2,sp,#0x34
0009c6 2102 MOVS r1,#2
0009c8 2046 MOVS r0,#0x46
0009ca f7fffffe BL MTPRead_fun_1
;;;495 data_309_A.RAM_WrieRev_309.TEMP1h_l = (Rev_309_buf_A[0] << 8) | Rev_309_buf_A[1];
0009ce f89d0035 LDRB r0,[sp,#0x35]
0009d2 f89d1034 LDRB r1,[sp,#0x34]
0009d6 ea402101 ORR r1,r0,r1,LSL #8
0009da 48a0 LDR r0,|L1.3164|
0009dc 8441 STRH r1,[r0,#0x22]
;;;496 Rt1 = (float)(data_309_A.RAM_WrieRev_309.TEMP1h_l * 1.0) /(float)(32768 - data_309_A.RAM_WrieRev_309.TEMP1h_l) * Rref;
0009de 4601 MOV r1,r0
0009e0 8c49 LDRH r1,[r1,#0x22]
0009e2 f5c14000 RSB r0,r1,#0x8000
0009e6 f7fffffe BL __aeabi_i2f
0009ea 499c LDR r1,|L1.3164|
0009ec 9006 STR r0,[sp,#0x18]
0009ee 8c48 LDRH r0,[r1,#0x22]
0009f0 f7fffffe BL __aeabi_ui2d
0009f4 2200 MOVS r2,#0
0009f6 4b9d LDR r3,|L1.3180|
0009f8 e9cd0100 STRD r0,r1,[sp,#0]
0009fc f7fffffe BL __aeabi_dmul
000a00 e9cd0102 STRD r0,r1,[sp,#8]
000a04 f7fffffe BL __aeabi_d2f
000a08 9005 STR r0,[sp,#0x14]
000a0a 9906 LDR r1,[sp,#0x18]
000a0c f7fffffe BL __aeabi_fdiv
000a10 9007 STR r0,[sp,#0x1c]
000a12 990b LDR r1,[sp,#0x2c]
000a14 f7fffffe BL __aeabi_fmul
000a18 900a STR r0,[sp,#0x28]
;;;497 RAM_309data.T1_tmp = Get_Temp((u32)(Rt1 * 1000));
000a1a 4995 LDR r1,|L1.3184|
000a1c 980a LDR r0,[sp,#0x28]
000a1e f7fffffe BL __aeabi_fmul
000a22 9006 STR r0,[sp,#0x18]
000a24 f7fffffe BL __aeabi_f2uiz
000a28 9007 STR r0,[sp,#0x1c]
000a2a f7fffffe BL Get_Temp
000a2e 498a LDR r1,|L1.3160|
000a30 f8810049 STRB r0,[r1,#0x49]
;;;498
;;;499 MTPRead_fun_1( MTP_TEMP2, 2, &Rev_309_buf_A[0]);
000a34 aa0d ADD r2,sp,#0x34
000a36 2102 MOVS r1,#2
000a38 2048 MOVS r0,#0x48
000a3a f7fffffe BL MTPRead_fun_1
;;;500 data_309_A.RAM_WrieRev_309.TEMP2h_l = (Rev_309_buf_A[0] << 8) | Rev_309_buf_A[1];
000a3e f89d0035 LDRB r0,[sp,#0x35]
000a42 f89d1034 LDRB r1,[sp,#0x34]
000a46 ea402101 ORR r1,r0,r1,LSL #8
000a4a 4884 LDR r0,|L1.3164|
000a4c 8481 STRH r1,[r0,#0x24]
;;;501 Rt1 = (float)(data_309_A.RAM_WrieRev_309.TEMP2h_l * 1.0) /(float)(32768 - data_309_A.RAM_WrieRev_309.TEMP2h_l) * Rref;
000a4e 4601 MOV r1,r0
000a50 8c89 LDRH r1,[r1,#0x24]
000a52 f5c14000 RSB r0,r1,#0x8000
000a56 f7fffffe BL __aeabi_i2f
000a5a 4980 LDR r1,|L1.3164|
000a5c 9006 STR r0,[sp,#0x18]
000a5e 8c88 LDRH r0,[r1,#0x24]
000a60 f7fffffe BL __aeabi_ui2d
000a64 2200 MOVS r2,#0
000a66 4b81 LDR r3,|L1.3180|
000a68 e9cd0100 STRD r0,r1,[sp,#0]
000a6c f7fffffe BL __aeabi_dmul
000a70 e9cd0102 STRD r0,r1,[sp,#8]
000a74 f7fffffe BL __aeabi_d2f
000a78 9005 STR r0,[sp,#0x14]
000a7a 9906 LDR r1,[sp,#0x18]
000a7c f7fffffe BL __aeabi_fdiv
000a80 9007 STR r0,[sp,#0x1c]
000a82 990b LDR r1,[sp,#0x2c]
000a84 f7fffffe BL __aeabi_fmul
000a88 900a STR r0,[sp,#0x28]
;;;502 RAM_309data.T2_tmp = Get_Temp((u32)(Rt1 * 1000));
000a8a 4979 LDR r1,|L1.3184|
000a8c 980a LDR r0,[sp,#0x28]
000a8e f7fffffe BL __aeabi_fmul
000a92 9006 STR r0,[sp,#0x18]
000a94 f7fffffe BL __aeabi_f2uiz
000a98 9007 STR r0,[sp,#0x1c]
000a9a f7fffffe BL Get_Temp
000a9e 496e LDR r1,|L1.3160|
000aa0 f881004a STRB r0,[r1,#0x4a]
;;;503
;;;504 MTPRead_fun_1( MTP_TEMP3, 2, &Rev_309_buf_A[0]);
000aa4 aa0d ADD r2,sp,#0x34
000aa6 2102 MOVS r1,#2
000aa8 204a MOVS r0,#0x4a
000aaa f7fffffe BL MTPRead_fun_1
;;;505 data_309_A.RAM_WrieRev_309.TEMP3h_l = (Rev_309_buf_A[0] << 8) | Rev_309_buf_A[1];
000aae f89d0035 LDRB r0,[sp,#0x35]
000ab2 f89d1034 LDRB r1,[sp,#0x34]
000ab6 ea402101 ORR r1,r0,r1,LSL #8
000aba 4868 LDR r0,|L1.3164|
000abc 84c1 STRH r1,[r0,#0x26]
;;;506 Rt1 = (float)(data_309_A.RAM_WrieRev_309.TEMP3h_l * 1.0) /(float)(32768 - data_309_A.RAM_WrieRev_309.TEMP3h_l) * Rref;
000abe 4601 MOV r1,r0
000ac0 8cc9 LDRH r1,[r1,#0x26]
000ac2 f5c14000 RSB r0,r1,#0x8000
000ac6 f7fffffe BL __aeabi_i2f
000aca 4964 LDR r1,|L1.3164|
000acc 9006 STR r0,[sp,#0x18]
000ace 8cc8 LDRH r0,[r1,#0x26]
000ad0 f7fffffe BL __aeabi_ui2d
000ad4 2200 MOVS r2,#0
000ad6 4b65 LDR r3,|L1.3180|
000ad8 e9cd0100 STRD r0,r1,[sp,#0]
000adc f7fffffe BL __aeabi_dmul
000ae0 e9cd0102 STRD r0,r1,[sp,#8]
000ae4 f7fffffe BL __aeabi_d2f
000ae8 9005 STR r0,[sp,#0x14]
000aea 9906 LDR r1,[sp,#0x18]
000aec f7fffffe BL __aeabi_fdiv
000af0 9007 STR r0,[sp,#0x1c]
000af2 990b LDR r1,[sp,#0x2c]
000af4 f7fffffe BL __aeabi_fmul
000af8 900a STR r0,[sp,#0x28]
;;;507 RAM_309data.T3_tmp = Get_Temp((u32)(Rt1 * 1000));
000afa 495d LDR r1,|L1.3184|
000afc 980a LDR r0,[sp,#0x28]
000afe f7fffffe BL __aeabi_fmul
000b02 9006 STR r0,[sp,#0x18]
000b04 f7fffffe BL __aeabi_f2uiz
000b08 9007 STR r0,[sp,#0x1c]
000b0a f7fffffe BL Get_Temp
000b0e 4952 LDR r1,|L1.3160|
000b10 f881004b STRB r0,[r1,#0x4b]
;;;508
;;;509 for(i=0;i<24;i++)
000b14 2500 MOVS r5,#0
000b16 e016 B |L1.2886|
|L1.2840|
;;;510 {
;;;511 RAM_309data.Cell_Num.cellvol[i] = RAM_309data.Cell.cellvol[i] / 6.403;
000b18 494f LDR r1,|L1.3160|
000b1a 3114 ADDS r1,r1,#0x14
000b1c f8310015 LDRH r0,[r1,r5,LSL #1]
000b20 f7fffffe BL __aeabi_ui2d
000b24 4a53 LDR r2,|L1.3188|
000b26 4b54 LDR r3,|L1.3192|
000b28 e9cd0104 STRD r0,r1,[sp,#0x10]
000b2c f7fffffe BL __aeabi_ddiv
000b30 e9cd0106 STRD r0,r1,[sp,#0x18]
000b34 f7fffffe BL __aeabi_d2uiz
000b38 b281 UXTH r1,r0
000b3a 4847 LDR r0,|L1.3160|
000b3c 304c ADDS r0,r0,#0x4c
000b3e f8201015 STRH r1,[r0,r5,LSL #1]
000b42 1c68 ADDS r0,r5,#1 ;509
000b44 b2c5 UXTB r5,r0 ;509
|L1.2886|
000b46 2d18 CMP r5,#0x18 ;509
000b48 dbe6 BLT |L1.2840|
;;;512 }
;;;513 ////////////////////////////////////////////////////////////////////////////
;;;514
;;;515 for(i = 0; i < (A_Cellnum + B_Cellnum); i++)
000b4a 2500 MOVS r5,#0
000b4c e01a B |L1.2948|
|L1.2894|
;;;516 {
;;;517 blue_datas.Rev_data.Singcellvol[i][0] = i + 1; //µç³ØºÅ
000b4e 1c68 ADDS r0,r5,#1
000b50 b2c1 UXTB r1,r0
000b52 eb050245 ADD r2,r5,r5,LSL #1
000b56 4849 LDR r0,|L1.3196|
000b58 5481 STRB r1,[r0,r2]
;;;518 blue_datas.Rev_data.Singcellvol[i][1] = RAM_309data.Cell_Num.cellvol[i] >> 8;
000b5a 483f LDR r0,|L1.3160|
000b5c 304c ADDS r0,r0,#0x4c
000b5e f8300015 LDRH r0,[r0,r5,LSL #1]
000b62 1201 ASRS r1,r0,#8
000b64 eb050245 ADD r2,r5,r5,LSL #1
000b68 4844 LDR r0,|L1.3196|
000b6a 4410 ADD r0,r0,r2
000b6c 7041 STRB r1,[r0,#1]
;;;519 blue_datas.Rev_data.Singcellvol[i][2] = RAM_309data.Cell_Num.cellvol[i];
000b6e 483a LDR r0,|L1.3160|
000b70 304c ADDS r0,r0,#0x4c
000b72 f8101015 LDRB r1,[r0,r5,LSL #1]
000b76 eb050245 ADD r2,r5,r5,LSL #1
000b7a 4840 LDR r0,|L1.3196|
000b7c 4410 ADD r0,r0,r2
000b7e 7081 STRB r1,[r0,#2]
000b80 1c68 ADDS r0,r5,#1 ;515
000b82 b2c5 UXTB r5,r0 ;515
|L1.2948|
000b84 eb070008 ADD r0,r7,r8 ;515
000b88 42a8 CMP r0,r5 ;515
000b8a dce0 BGT |L1.2894|
;;;520 }
;;;521 if((short)RAM_309data.T3_tmp >= 0)
000b8c 4832 LDR r0,|L1.3160|
000b8e f890004b LDRB r0,[r0,#0x4b] ; RAM_309data
000b92 2800 CMP r0,#0
000b94 db07 BLT |L1.2982|
;;;522 blue_datas.Rev_data.MosTmp = RAM_309data.T3_tmp; //MOS¹ÜζÈ
000b96 4830 LDR r0,|L1.3160|
000b98 f890004b LDRB r0,[r0,#0x4b] ; RAM_309data
000b9c 4937 LDR r1,|L1.3196|
000b9e 390e SUBS r1,r1,#0xe
000ba0 f8a1006e STRH r0,[r1,#0x6e]
000ba4 e008 B |L1.3000|
|L1.2982|
;;;523 else
;;;524 blue_datas.Rev_data.MosTmp = 100 - RAM_309data.T3_tmp; //MOS¹ÜζÈ
000ba6 482c LDR r0,|L1.3160|
000ba8 f890004b LDRB r0,[r0,#0x4b] ; RAM_309data
000bac f1c00064 RSB r0,r0,#0x64
000bb0 4932 LDR r1,|L1.3196|
000bb2 390e SUBS r1,r1,#0xe
000bb4 f8a1006e STRH r0,[r1,#0x6e]
|L1.3000|
;;;525
;;;526 if((short)RAM_309data.T2_tmp >= 0)
000bb8 4827 LDR r0,|L1.3160|
000bba f890004a LDRB r0,[r0,#0x4a] ; RAM_309data
000bbe 2800 CMP r0,#0
000bc0 db07 BLT |L1.3026|
;;;527 blue_datas.Rev_data.QualiTmp = RAM_309data.T2_tmp; //µç³ØÏäÄÚζÈ
000bc2 4825 LDR r0,|L1.3160|
000bc4 f890004a LDRB r0,[r0,#0x4a] ; RAM_309data
000bc8 492c LDR r1,|L1.3196|
000bca 390e SUBS r1,r1,#0xe
000bcc f8a10070 STRH r0,[r1,#0x70]
000bd0 e008 B |L1.3044|
|L1.3026|
;;;528 else
;;;529 blue_datas.Rev_data.QualiTmp = 100 - RAM_309data.T2_tmp; //µç³ØÏäÄÚζÈ
000bd2 4821 LDR r0,|L1.3160|
000bd4 f890004a LDRB r0,[r0,#0x4a] ; RAM_309data
000bd8 f1c00064 RSB r0,r0,#0x64
000bdc 4927 LDR r1,|L1.3196|
000bde 390e SUBS r1,r1,#0xe
000be0 f8a10070 STRH r0,[r1,#0x70]
|L1.3044|
;;;530
;;;531 if((short)RAM_309data.T1_tmp >= 0)
000be4 481c LDR r0,|L1.3160|
000be6 f8900049 LDRB r0,[r0,#0x49] ; RAM_309data
000bea 2800 CMP r0,#0
000bec db07 BLT |L1.3070|
;;;532 blue_datas.Rev_data.CellTmp = RAM_309data.T1_tmp; //µç³ØζÈ
000bee 481a LDR r0,|L1.3160|
000bf0 f8900049 LDRB r0,[r0,#0x49] ; RAM_309data
000bf4 4921 LDR r1,|L1.3196|
000bf6 390e SUBS r1,r1,#0xe
000bf8 f8a10072 STRH r0,[r1,#0x72]
000bfc e008 B |L1.3088|
|L1.3070|
;;;533 else
;;;534 blue_datas.Rev_data.CellTmp = 100 - RAM_309data.T1_tmp; //µç³ØζÈ
000bfe 4816 LDR r0,|L1.3160|
000c00 f8900049 LDRB r0,[r0,#0x49] ; RAM_309data
000c04 f1c00064 RSB r0,r0,#0x64
000c08 491c LDR r1,|L1.3196|
000c0a 390e SUBS r1,r1,#0xe
000c0c f8a10072 STRH r0,[r1,#0x72]
|L1.3088|
;;;535
;;;536 for(i = 0; i < (A_Cellnum + B_Cellnum); i++)
000c10 2500 MOVS r5,#0
000c12 e008 B |L1.3110|
|L1.3092|
;;;537 {
;;;538 sumVol +=RAM_309data.Cell_Num.cellvol[i];
000c14 4810 LDR r0,|L1.3160|
000c16 304c ADDS r0,r0,#0x4c
000c18 f8301015 LDRH r1,[r0,r5,LSL #1]
000c1c 9809 LDR r0,[sp,#0x24]
000c1e 4408 ADD r0,r0,r1
000c20 9009 STR r0,[sp,#0x24]
000c22 1c68 ADDS r0,r5,#1 ;536
000c24 b2c5 UXTB r5,r0 ;536
|L1.3110|
000c26 eb070008 ADD r0,r7,r8 ;536
000c2a 42a8 CMP r0,r5 ;536
000c2c dcf2 BGT |L1.3092|
;;;539 }
;;;540 blue_datas.Rev_data.CellZvol = sumVol/10.0; //×ܵçѹ
000c2e 9809 LDR r0,[sp,#0x24]
000c30 f7fffffe BL __aeabi_ui2d
000c34 2200 MOVS r2,#0
000c36 4b12 LDR r3,|L1.3200|
000c38 e9cd0104 STRD r0,r1,[sp,#0x10]
000c3c f7fffffe BL __aeabi_ddiv
000c40 e9cd0106 STRD r0,r1,[sp,#0x18]
000c44 f7fffffe BL __aeabi_d2uiz
000c48 490c LDR r1,|L1.3196|
000c4a 390e SUBS r1,r1,#0xe
000c4c f8a10074 STRH r0,[r1,#0x74]
;;;541
;;;542 if(data_309_A.RAM_WrieRev_309.Curh_l & 0x8000) //±íʾ·Åµç
000c50 4802 LDR r0,|L1.3164|
000c52 8d00 LDRH r0,[r0,#0x28]
000c54 e016 B |L1.3204|
000c56 0000 DCW 0x0000
|L1.3160|
DCD RAM_309data
|L1.3164|
DCD data_309_A
|L1.3168|
DCD 0x9999999a
|L1.3172|
DCD 0x3fa99999
|L1.3176|
DCD 0x401b3333
|L1.3180|
DCD 0x3ff00000
|L1.3184|
DCD 0x447a0000
|L1.3188|
DCD 0x083126e9
|L1.3192|
DCD 0x40199cac
|L1.3196|
DCD blue_datas+0xe
|L1.3200|
DCD 0x40240000
|L1.3204|
000c84 f4004000 AND r0,r0,#0x8000
000c88 b328 CBZ r0,|L1.3286|
;;;543 {
;;;544 Out_curr = (65535-data_309_A.RAM_WrieRev_309.Curh_l)*200.0/(26837*0.0010) / 10.0;
000c8a 49fe LDR r1,|L1.4228|
000c8c 8d09 LDRH r1,[r1,#0x28]
000c8e f64f72ff MOV r2,#0xffff
000c92 1a50 SUBS r0,r2,r1
000c94 f7fffffe BL __aeabi_i2d
000c98 2200 MOVS r2,#0
000c9a 4bfb LDR r3,|L1.4232|
000c9c e9cd0100 STRD r0,r1,[sp,#0]
000ca0 f7fffffe BL __aeabi_dmul
000ca4 4af9 LDR r2,|L1.4236|
000ca6 4bfa LDR r3,|L1.4240|
000ca8 e9cd0102 STRD r0,r1,[sp,#8]
000cac f7fffffe BL __aeabi_ddiv
000cb0 2200 MOVS r2,#0
000cb2 4bf8 LDR r3,|L1.4244|
000cb4 e9cd0104 STRD r0,r1,[sp,#0x10]
000cb8 f7fffffe BL __aeabi_ddiv
000cbc e9cd0106 STRD r0,r1,[sp,#0x18]
000cc0 f7fffffe BL __aeabi_d2uiz
000cc4 fa1ffb80 UXTH r11,r0
;;;545 if(Out_curr <= 80) Out_curr = 0;
000cc8 f1bb0f50 CMP r11,#0x50
000ccc dc01 BGT |L1.3282|
000cce f04f0b00 MOV r11,#0
|L1.3282|
;;;546 blue_datas.Rev_data.Currdata = Out_curr + 10000; //µçÁ÷
000cd2 e001 B |L1.3288|
|L1.3284|
000cd4 e2ef B |L1.4790|
|L1.3286|
000cd6 e006 B |L1.3302|
|L1.3288|
000cd8 f2427010 MOV r0,#0x2710
000cdc 4458 ADD r0,r0,r11
000cde 49ee LDR r1,|L1.4248|
000ce0 f8a10076 STRH r0,[r1,#0x76]
000ce4 e027 B |L1.3382|
|L1.3302|
;;;547 }
;;;548 else //±íʾ³äµç
;;;549 {
;;;550 Chg_curr = data_309_A.RAM_WrieRev_309.Curh_l * 200.0/(26837*0.0010) / 10.0;
000ce6 49e7 LDR r1,|L1.4228|
000ce8 8d08 LDRH r0,[r1,#0x28]
000cea f7fffffe BL __aeabi_ui2d
000cee 2200 MOVS r2,#0
000cf0 4be5 LDR r3,|L1.4232|
000cf2 e9cd0100 STRD r0,r1,[sp,#0]
000cf6 f7fffffe BL __aeabi_dmul
000cfa 4ae4 LDR r2,|L1.4236|
000cfc 4be4 LDR r3,|L1.4240|
000cfe e9cd0102 STRD r0,r1,[sp,#8]
000d02 f7fffffe BL __aeabi_ddiv
000d06 2200 MOVS r2,#0
000d08 4be2 LDR r3,|L1.4244|
000d0a e9cd0104 STRD r0,r1,[sp,#0x10]
000d0e f7fffffe BL __aeabi_ddiv
000d12 e9cd0106 STRD r0,r1,[sp,#0x18]
000d16 f7fffffe BL __aeabi_d2uiz
000d1a b280 UXTH r0,r0
000d1c 9008 STR r0,[sp,#0x20]
;;;551 if(Chg_curr <= 50) Chg_curr = 0;
000d1e 9808 LDR r0,[sp,#0x20]
000d20 2832 CMP r0,#0x32
000d22 dc01 BGT |L1.3368|
000d24 2000 MOVS r0,#0
000d26 9008 STR r0,[sp,#0x20]
|L1.3368|
;;;552 blue_datas.Rev_data.Currdata = 10000 - Chg_curr;
000d28 f2427110 MOV r1,#0x2710
000d2c 9808 LDR r0,[sp,#0x20]
000d2e 1a08 SUBS r0,r1,r0
000d30 49d9 LDR r1,|L1.4248|
000d32 f8a10076 STRH r0,[r1,#0x76]
|L1.3382|
;;;553 }
;;;554 blue_datas.Rev_data.Soc = 50; //SOC
000d36 2032 MOVS r0,#0x32
000d38 49d7 LDR r1,|L1.4248|
000d3a f8810078 STRB r0,[r1,#0x78]
;;;555 blue_datas.Rev_data.CellTmpSors = 0x03; //ĬÈÏ2
000d3e 2003 MOVS r0,#3
000d40 f8810079 STRB r0,[r1,#0x79]
;;;556 blue_datas.Rev_data.Bms_rl = 40 * 100; //BMSУ׼µç³ØÈÝÁ¿
000d44 f44f607a MOV r0,#0xfa0
000d48 f8a1007c STRH r0,[r1,#0x7c]
;;;557 blue_datas.Rev_data.CellOutrl = 0;
000d4c 2000 MOVS r0,#0
000d4e f8c10080 STR r0,[r1,#0x80] ; blue_datas
;;;558 blue_datas.Rev_data.Cellusnum = 0;
000d52 f8a1007a STRH r0,[r1,#0x7a]
;;;559 blue_datas.Rev_data.CellZnum = A_Cellnum + B_Cellnum;
000d56 eb070008 ADD r0,r7,r8
000d5a f8a10084 STRH r0,[r1,#0x84]
;;;560
;;;561 if(data_309_A.RAM_WrieRev_309.Bstrtus2.bits.OTD == 1 || data_309_A.RAM_WrieRev_309.Bstrtus2.bits.OTD == 1)
000d5e 48c9 LDR r0,|L1.4228|
000d60 7fc0 LDRB r0,[r0,#0x1f]
000d62 f3c000c0 UBFX r0,r0,#3,#1
000d66 b920 CBNZ r0,|L1.3442|
000d68 48c6 LDR r0,|L1.4228|
000d6a 7fc0 LDRB r0,[r0,#0x1f]
000d6c f3c000c0 UBFX r0,r0,#3,#1
000d70 b188 CBZ r0,|L1.3478|
|L1.3442|
;;;562 {
;;;563 blue_datas.Rev_data.CellhitData |= (1<<1);
000d72 48c9 LDR r0,|L1.4248|
000d74 f8b00086 LDRH r0,[r0,#0x86] ; blue_datas
000d78 f0400002 ORR r0,r0,#2
000d7c 49c6 LDR r1,|L1.4248|
000d7e f8a10086 STRH r0,[r1,#0x86]
;;;564 blue_datas.Rev_data.CellhitData |= (1<<4);
000d82 4608 MOV r0,r1
000d84 f8b00086 LDRH r0,[r0,#0x86] ; blue_datas
000d88 e000 B |L1.3468|
|L1.3466|
000d8a e292 B |L1.4786|
|L1.3468|
000d8c f0400010 ORR r0,r0,#0x10
000d90 f8a10086 STRH r0,[r1,#0x86]
000d94 e00e B |L1.3508|
|L1.3478|
;;;565 }
;;;566 else
;;;567 {
;;;568 blue_datas.Rev_data.CellhitData &= ~(1<<1);
000d96 48c0 LDR r0,|L1.4248|
000d98 f8b00086 LDRH r0,[r0,#0x86] ; blue_datas
000d9c f0200002 BIC r0,r0,#2
000da0 49bd LDR r1,|L1.4248|
000da2 f8a10086 STRH r0,[r1,#0x86]
;;;569 blue_datas.Rev_data.CellhitData &= ~(1<<4);
000da6 4608 MOV r0,r1
000da8 f8b00086 LDRH r0,[r0,#0x86] ; blue_datas
000dac f0200010 BIC r0,r0,#0x10
000db0 f8a10086 STRH r0,[r1,#0x86]
|L1.3508|
;;;570 }
;;;571 if(data_309_A.RAM_WrieRev_309.Bstrtus1.bits.OV == 1)
000db4 48b3 LDR r0,|L1.4228|
000db6 7f80 LDRB r0,[r0,#0x1e]
000db8 f0000001 AND r0,r0,#1
000dbc b140 CBZ r0,|L1.3536|
;;;572 blue_datas.Rev_data.CellhitData |= (1<<10);
000dbe 48b6 LDR r0,|L1.4248|
000dc0 f8b00086 LDRH r0,[r0,#0x86] ; blue_datas
000dc4 f4406080 ORR r0,r0,#0x400
000dc8 49b3 LDR r1,|L1.4248|
000dca f8a10086 STRH r0,[r1,#0x86]
000dce e007 B |L1.3552|
|L1.3536|
;;;573 else
;;;574 blue_datas.Rev_data.CellhitData &= ~(1<<10);
000dd0 48b1 LDR r0,|L1.4248|
000dd2 f8b00086 LDRH r0,[r0,#0x86] ; blue_datas
000dd6 f4206080 BIC r0,r0,#0x400
000dda 49af LDR r1,|L1.4248|
000ddc f8a10086 STRH r0,[r1,#0x86]
|L1.3552|
;;;575 if(data_309_A.RAM_WrieRev_309.Bstrtus1.bits.UV == 1)
000de0 48a8 LDR r0,|L1.4228|
000de2 7f80 LDRB r0,[r0,#0x1e]
000de4 f3c00040 UBFX r0,r0,#1,#1
000de8 b140 CBZ r0,|L1.3580|
;;;576 blue_datas.Rev_data.CellhitData |= (1<<11);
000dea 48ab LDR r0,|L1.4248|
000dec f8b00086 LDRH r0,[r0,#0x86] ; blue_datas
000df0 f4406000 ORR r0,r0,#0x800
000df4 49a8 LDR r1,|L1.4248|
000df6 f8a10086 STRH r0,[r1,#0x86]
000dfa e007 B |L1.3596|
|L1.3580|
;;;577 else
;;;578 blue_datas.Rev_data.CellhitData &= ~(1<<11);
000dfc 48a6 LDR r0,|L1.4248|
000dfe f8b00086 LDRH r0,[r0,#0x86] ; blue_datas
000e02 f4206000 BIC r0,r0,#0x800
000e06 49a4 LDR r1,|L1.4248|
000e08 f8a10086 STRH r0,[r1,#0x86]
|L1.3596|
;;;579 if(data_309_A.RAM_WrieRev_309.Bstrtus1.bits.OCD1 == 1)
000e0c 489d LDR r0,|L1.4228|
000e0e 7f80 LDRB r0,[r0,#0x1e]
000e10 f3c00080 UBFX r0,r0,#2,#1
000e14 b140 CBZ r0,|L1.3624|
;;;580 blue_datas.Rev_data.CellhitData |= (1<<5);
000e16 48a0 LDR r0,|L1.4248|
000e18 f8b00086 LDRH r0,[r0,#0x86] ; blue_datas
000e1c f0400020 ORR r0,r0,#0x20
000e20 499d LDR r1,|L1.4248|
000e22 f8a10086 STRH r0,[r1,#0x86]
000e26 e007 B |L1.3640|
|L1.3624|
;;;581 else
;;;582 blue_datas.Rev_data.CellhitData &= ~(1<<5);
000e28 489b LDR r0,|L1.4248|
000e2a f8b00086 LDRH r0,[r0,#0x86] ; blue_datas
000e2e f0200020 BIC r0,r0,#0x20
000e32 4999 LDR r1,|L1.4248|
000e34 f8a10086 STRH r0,[r1,#0x86]
|L1.3640|
;;;583 if(data_309_A.RAM_WrieRev_309.Bstrtus1.bits.OCD2 == 1)
000e38 4892 LDR r0,|L1.4228|
000e3a 7f80 LDRB r0,[r0,#0x1e]
000e3c f3c000c0 UBFX r0,r0,#3,#1
000e40 b148 CBZ r0,|L1.3670|
;;;584 blue_datas.Rev_data.CellhitData |= (1<<6);
000e42 4895 LDR r0,|L1.4248|
000e44 f8b00086 LDRH r0,[r0,#0x86] ; blue_datas
000e48 f0400040 ORR r0,r0,#0x40
000e4c 4992 LDR r1,|L1.4248|
000e4e f8a10086 STRH r0,[r1,#0x86]
000e52 e008 B |L1.3686|
|L1.3668|
000e54 e22e B |L1.4788|
|L1.3670|
;;;585 else
;;;586 blue_datas.Rev_data.CellhitData &= ~(1<<6);
000e56 4890 LDR r0,|L1.4248|
000e58 f8b00086 LDRH r0,[r0,#0x86] ; blue_datas
000e5c f0200040 BIC r0,r0,#0x40
000e60 498d LDR r1,|L1.4248|
000e62 f8a10086 STRH r0,[r1,#0x86]
|L1.3686|
;;;587 if(data_309_A.RAM_WrieRev_309.Bstrtus2.bits.UTC == 1 || data_309_A.RAM_WrieRev_309.Bstrtus2.bits.UTD == 1)
000e66 4887 LDR r0,|L1.4228|
000e68 7fc0 LDRB r0,[r0,#0x1f]
000e6a f0000001 AND r0,r0,#1
000e6e b920 CBNZ r0,|L1.3706|
000e70 4884 LDR r0,|L1.4228|
000e72 7fc0 LDRB r0,[r0,#0x1f]
000e74 f3c00080 UBFX r0,r0,#2,#1
000e78 b140 CBZ r0,|L1.3724|
|L1.3706|
;;;588 blue_datas.Rev_data.CellhitData |= (1<<9);
000e7a 4887 LDR r0,|L1.4248|
000e7c f8b00086 LDRH r0,[r0,#0x86] ; blue_datas
000e80 f4407000 ORR r0,r0,#0x200
000e84 4984 LDR r1,|L1.4248|
000e86 f8a10086 STRH r0,[r1,#0x86]
000e8a e007 B |L1.3740|
|L1.3724|
;;;589 else
;;;590 blue_datas.Rev_data.CellhitData &= ~(1<<9);
000e8c 4882 LDR r0,|L1.4248|
000e8e f8b00086 LDRH r0,[r0,#0x86] ; blue_datas
000e92 f4207000 BIC r0,r0,#0x200
000e96 4980 LDR r1,|L1.4248|
000e98 f8a10086 STRH r0,[r1,#0x86]
|L1.3740|
;;;591
;;;592 if(data_309_A.RAM_WrieRev_309.Bstrtus3.bits.CHG_FET==1)
000e9c 4879 LDR r0,|L1.4228|
000e9e f8900020 LDRB r0,[r0,#0x20]
000ea2 f3c00040 UBFX r0,r0,#1,#1
000ea6 b140 CBZ r0,|L1.3770|
;;;593 blue_datas.Rev_data.CellStrtu |= (1<<0);
000ea8 487b LDR r0,|L1.4248|
000eaa f8b00088 LDRH r0,[r0,#0x88] ; blue_datas
000eae f0400001 ORR r0,r0,#1
000eb2 4979 LDR r1,|L1.4248|
000eb4 f8a10088 STRH r0,[r1,#0x88]
000eb8 e007 B |L1.3786|
|L1.3770|
;;;594 else
;;;595 blue_datas.Rev_data.CellStrtu &= ~(1<<0);
000eba 4877 LDR r0,|L1.4248|
000ebc f8b00088 LDRH r0,[r0,#0x88] ; blue_datas
000ec0 f0200001 BIC r0,r0,#1
000ec4 4974 LDR r1,|L1.4248|
000ec6 f8a10088 STRH r0,[r1,#0x88]
|L1.3786|
;;;596
;;;597 if(data_309_A.RAM_WrieRev_309.Bstrtus3.bits.DSG_FET==1)
000eca 486e LDR r0,|L1.4228|
000ecc f8900020 LDRB r0,[r0,#0x20]
000ed0 f0000001 AND r0,r0,#1
000ed4 b140 CBZ r0,|L1.3816|
;;;598 blue_datas.Rev_data.CellStrtu |= (1<<1);
000ed6 4870 LDR r0,|L1.4248|
000ed8 f8b00088 LDRH r0,[r0,#0x88] ; blue_datas
000edc f0400002 ORR r0,r0,#2
000ee0 496d LDR r1,|L1.4248|
000ee2 f8a10088 STRH r0,[r1,#0x88]
000ee6 e007 B |L1.3832|
|L1.3816|
;;;599 else
;;;600 blue_datas.Rev_data.CellStrtu &= ~(1<<1);
000ee8 486b LDR r0,|L1.4248|
000eea f8b00088 LDRH r0,[r0,#0x88] ; blue_datas
000eee f0200002 BIC r0,r0,#2
000ef2 4969 LDR r1,|L1.4248|
000ef4 f8a10088 STRH r0,[r1,#0x88]
|L1.3832|
;;;601
;;;602 if(data_309_A.RAM_WrieRev_309.Balanceh_l.datas != 0 || data_309_B.RAM_WrieRev_309.Balanceh_l.datas != 0)
000ef8 4862 LDR r0,|L1.4228|
000efa 8b80 LDRH r0,[r0,#0x1c]
000efc b910 CBNZ r0,|L1.3844|
000efe 4867 LDR r0,|L1.4252|
000f00 8b80 LDRH r0,[r0,#0x1c]
000f02 b140 CBZ r0,|L1.3862|
|L1.3844|
;;;603 blue_datas.Rev_data.CellStrtu |= (1<<2);
000f04 4864 LDR r0,|L1.4248|
000f06 f8b00088 LDRH r0,[r0,#0x88] ; blue_datas
000f0a f0400004 ORR r0,r0,#4
000f0e 4962 LDR r1,|L1.4248|
000f10 f8a10088 STRH r0,[r1,#0x88]
000f14 e007 B |L1.3878|
|L1.3862|
;;;604 else
;;;605 blue_datas.Rev_data.CellStrtu &= ~(1<<2);
000f16 4860 LDR r0,|L1.4248|
000f18 f8b00088 LDRH r0,[r0,#0x88] ; blue_datas
000f1c f0200004 BIC r0,r0,#4
000f20 495d LDR r1,|L1.4248|
000f22 f8a10088 STRH r0,[r1,#0x88]
|L1.3878|
;;;606
;;;607 blue_datas.Rev_data.CellStrtu |= 0x0008;
000f26 485c LDR r0,|L1.4248|
000f28 f8b00088 LDRH r0,[r0,#0x88] ; blue_datas
000f2c f0400008 ORR r0,r0,#8
000f30 4959 LDR r1,|L1.4248|
000f32 f8a10088 STRH r0,[r1,#0x88]
;;;608
;;;609 blue_datas.Rev_data.CellTime = 0;
000f36 2000 MOVS r0,#0
000f38 6008 STR r0,[r1,#0] ; blue_datas
;;;610 if(Out_curr == 0 && Chg_curr == 0)
000f3a f1bb0f00 CMP r11,#0
000f3e d103 BNE |L1.3912|
000f40 9808 LDR r0,[sp,#0x20]
000f42 b908 CBNZ r0,|L1.3912|
;;;611 blue_datas.Rev_data.sturt = 0;
000f44 2000 MOVS r0,#0
000f46 7108 STRB r0,[r1,#4]
|L1.3912|
;;;612 if(Out_curr>0) blue_datas.Rev_data.sturt = 3;
000f48 f1bb0f00 CMP r11,#0
000f4c dd02 BLE |L1.3924|
000f4e 2003 MOVS r0,#3
000f50 4951 LDR r1,|L1.4248|
000f52 7108 STRB r0,[r1,#4]
|L1.3924|
;;;613 if(Chg_curr>0) blue_datas.Rev_data.sturt = 2;
000f54 9808 LDR r0,[sp,#0x20]
000f56 2800 CMP r0,#0
000f58 dd02 BLE |L1.3936|
000f5a 2002 MOVS r0,#2
000f5c 494e LDR r1,|L1.4248|
000f5e 7108 STRB r0,[r1,#4]
|L1.3936|
;;;614
;;;615 memcpy(blue_datas.Rev_data.xinhao,broad_name,9);
000f60 484d LDR r0,|L1.4248|
000f62 1d40 ADDS r0,r0,#5
000f64 494e LDR r1,|L1.4256|
000f66 680a LDR r2,[r1,#0] ; broad_name
000f68 6002 STR r2,[r0,#0] ; blue_datas
000f6a 684a LDR r2,[r1,#4] ; broad_name
000f6c 6042 STR r2,[r0,#4] ; blue_datas
000f6e 7a09 LDRB r1,[r1,#8] ; broad_name
000f70 7201 STRB r1,[r0,#8]
;;;616 /////////////////////////////////////////////////////////////////////////////
;;;617 /*°æ±¾ºÅÐÅÏ¢*/
;;;618 sendbuffer[0] = REVCELLTIME;
000f72 2076 MOVS r0,#0x76
000f74 f88d0038 STRB r0,[sp,#0x38]
;;;619 sendbuffer[1] = blue_datas.Rev_data.CellTime >> 24;
000f78 4847 LDR r0,|L1.4248|
000f7a 6800 LDR r0,[r0,#0] ; blue_datas
000f7c 0e00 LSRS r0,r0,#24
000f7e f88d0039 STRB r0,[sp,#0x39]
;;;620 sendbuffer[2] = blue_datas.Rev_data.CellTime >> 16;
000f82 4845 LDR r0,|L1.4248|
000f84 6800 LDR r0,[r0,#0] ; blue_datas
000f86 0c00 LSRS r0,r0,#16
000f88 f88d003a STRB r0,[sp,#0x3a]
;;;621 sendbuffer[3] = blue_datas.Rev_data.CellTime >> 8;
000f8c 4842 LDR r0,|L1.4248|
000f8e 8800 LDRH r0,[r0,#0] ; blue_datas
000f90 0a00 LSRS r0,r0,#8
000f92 f88d003b STRB r0,[sp,#0x3b]
;;;622 sendbuffer[4] = blue_datas.Rev_data.CellTime;
000f96 4840 LDR r0,|L1.4248|
000f98 7800 LDRB r0,[r0,#0] ; blue_datas
000f9a f88d003c STRB r0,[sp,#0x3c]
;;;623
;;;624 sendbuffer[5] = REVSTRUCT;
000f9e 2077 MOVS r0,#0x77
000fa0 f88d003d STRB r0,[sp,#0x3d]
;;;625 sendbuffer[6] = blue_datas.Rev_data.sturt;
000fa4 483c LDR r0,|L1.4248|
000fa6 7900 LDRB r0,[r0,#4] ; blue_datas
000fa8 f88d003e STRB r0,[sp,#0x3e]
;;;626
;;;627 sendbuffer[7] = REVXINGHAO;
000fac 2078 MOVS r0,#0x78
000fae f88d003f STRB r0,[sp,#0x3f]
;;;628 memcpy(&sendbuffer[8],blue_datas.Rev_data.xinhao,9);
000fb2 4839 LDR r0,|L1.4248|
000fb4 1d40 ADDS r0,r0,#5
000fb6 6801 LDR r1,[r0,#0] ; blue_datas
000fb8 9110 STR r1,[sp,#0x40]
000fba 6841 LDR r1,[r0,#4] ; blue_datas
000fbc 9111 STR r1,[sp,#0x44]
000fbe 7a00 LDRB r0,[r0,#8] ; blue_datas
000fc0 f88d0048 STRB r0,[sp,#0x48]
;;;629
;;;630 temp = 17;
000fc4 2411 MOVS r4,#0x11
;;;631 sendbuffer[0+temp] = REVSINGCELLVOL;
000fc6 2079 MOVS r0,#0x79
000fc8 a90e ADD r1,sp,#0x38
000fca 5508 STRB r0,[r1,r4]
;;;632 sendbuffer[1+temp] = blue_datas.Rev_data.CellZnum * 3;
000fcc 4832 LDR r0,|L1.4248|
000fce f8900084 LDRB r0,[r0,#0x84] ; blue_datas
000fd2 eb000040 ADD r0,r0,r0,LSL #1
000fd6 b2c1 UXTB r1,r0
000fd8 1c60 ADDS r0,r4,#1
000fda aa0e ADD r2,sp,#0x38
000fdc 5411 STRB r1,[r2,r0]
;;;633
;;;634 for(i=0;i<blue_datas.Rev_data.CellZnum;i++)
000fde 2500 MOVS r5,#0
000fe0 e022 B |L1.4136|
|L1.4066|
;;;635 {
;;;636 sendbuffer[i*3+2+temp] = blue_datas.Rev_data.Singcellvol[i][0];
000fe2 eb050145 ADD r1,r5,r5,LSL #1
000fe6 482c LDR r0,|L1.4248|
000fe8 300e ADDS r0,r0,#0xe
000fea 5c41 LDRB r1,[r0,r1]
000fec eb050045 ADD r0,r5,r5,LSL #1
000ff0 1c80 ADDS r0,r0,#2
000ff2 4420 ADD r0,r0,r4
000ff4 aa0e ADD r2,sp,#0x38
000ff6 5411 STRB r1,[r2,r0]
;;;637 sendbuffer[i*3+3+temp] = blue_datas.Rev_data.Singcellvol[i][1];
000ff8 eb050145 ADD r1,r5,r5,LSL #1
000ffc 4826 LDR r0,|L1.4248|
000ffe 300e ADDS r0,r0,#0xe
001000 4408 ADD r0,r0,r1
001002 7841 LDRB r1,[r0,#1]
001004 eb050045 ADD r0,r5,r5,LSL #1
001008 1cc0 ADDS r0,r0,#3
00100a 4420 ADD r0,r0,r4
00100c 5411 STRB r1,[r2,r0]
;;;638 sendbuffer[i*3+4+temp] = blue_datas.Rev_data.Singcellvol[i][2];
00100e eb050145 ADD r1,r5,r5,LSL #1
001012 4821 LDR r0,|L1.4248|
001014 300e ADDS r0,r0,#0xe
001016 4408 ADD r0,r0,r1
001018 7881 LDRB r1,[r0,#2]
00101a eb050045 ADD r0,r5,r5,LSL #1
00101e 1d00 ADDS r0,r0,#4
001020 4420 ADD r0,r0,r4
001022 5411 STRB r1,[r2,r0]
001024 1c68 ADDS r0,r5,#1 ;634
001026 b2c5 UXTB r5,r0 ;634
|L1.4136|
001028 481b LDR r0,|L1.4248|
00102a f8b00084 LDRH r0,[r0,#0x84] ;634 ; blue_datas
00102e 42a8 CMP r0,r5 ;634
001030 dcd7 BGT |L1.4066|
;;;639 }
;;;640
;;;641 sendbuffer[sendbuffer[1+temp] + 2+temp] = REVPOWTMP;
001032 2180 MOVS r1,#0x80
001034 1c60 ADDS r0,r4,#1
001036 aa0e ADD r2,sp,#0x38
001038 5c10 LDRB r0,[r2,r0]
00103a 1c80 ADDS r0,r0,#2
00103c 4420 ADD r0,r0,r4
00103e 5411 STRB r1,[r2,r0]
;;;642 sendbuffer[sendbuffer[1+temp] + 3+temp] = blue_datas.Rev_data.MosTmp >> 8;
001040 4815 LDR r0,|L1.4248|
001042 f8b0006e LDRH r0,[r0,#0x6e] ; blue_datas
001046 1201 ASRS r1,r0,#8
001048 1c60 ADDS r0,r4,#1
00104a 5c10 LDRB r0,[r2,r0]
00104c 1cc0 ADDS r0,r0,#3
00104e 4420 ADD r0,r0,r4
001050 5411 STRB r1,[r2,r0]
;;;643 sendbuffer[sendbuffer[1+temp] + 4+temp] = blue_datas.Rev_data.MosTmp;
001052 4811 LDR r0,|L1.4248|
001054 f890106e LDRB r1,[r0,#0x6e] ; blue_datas
001058 1c60 ADDS r0,r4,#1
00105a 5c10 LDRB r0,[r2,r0]
00105c 1d00 ADDS r0,r0,#4
00105e 4420 ADD r0,r0,r4
001060 5411 STRB r1,[r2,r0]
;;;644
;;;645 sendbuffer[sendbuffer[1+temp] + 5+temp] = REVEQUALI;
001062 2181 MOVS r1,#0x81
001064 1c60 ADDS r0,r4,#1
001066 5c10 LDRB r0,[r2,r0]
001068 1d40 ADDS r0,r0,#5
00106a 4420 ADD r0,r0,r4
00106c 5411 STRB r1,[r2,r0]
;;;646 sendbuffer[sendbuffer[1+temp] + 6+temp] = blue_datas.Rev_data.QualiTmp >> 8;
00106e 480a LDR r0,|L1.4248|
001070 f8b00070 LDRH r0,[r0,#0x70] ; blue_datas
001074 1201 ASRS r1,r0,#8
001076 1c60 ADDS r0,r4,#1
001078 5c10 LDRB r0,[r2,r0]
00107a 1d80 ADDS r0,r0,#6
00107c 4420 ADD r0,r0,r4
00107e 5411 STRB r1,[r2,r0]
;;;647 sendbuffer[sendbuffer[1+temp] + 7+temp] = blue_datas.Rev_data.QualiTmp;
001080 4805 LDR r0,|L1.4248|
001082 e00f B |L1.4260|
|L1.4228|
DCD data_309_A
|L1.4232|
DCD 0x40690000
|L1.4236|
DCD 0xa1cac083
|L1.4240|
DCD 0x403ad645
|L1.4244|
DCD 0x40240000
|L1.4248|
DCD blue_datas
|L1.4252|
DCD data_309_B
|L1.4256|
DCD broad_name
|L1.4260|
0010a4 f8901070 LDRB r1,[r0,#0x70] ; blue_datas
0010a8 1c60 ADDS r0,r4,#1
0010aa 5c10 LDRB r0,[r2,r0]
0010ac 1dc0 ADDS r0,r0,#7
0010ae 4420 ADD r0,r0,r4
0010b0 5411 STRB r1,[r2,r0]
;;;648
;;;649 sendbuffer[sendbuffer[1+temp] + 8+temp] = REVCELLTMP;
0010b2 2182 MOVS r1,#0x82
0010b4 1c60 ADDS r0,r4,#1
0010b6 5c10 LDRB r0,[r2,r0]
0010b8 3008 ADDS r0,r0,#8
0010ba 4420 ADD r0,r0,r4
0010bc 5411 STRB r1,[r2,r0]
;;;650 sendbuffer[sendbuffer[1+temp] + 9+temp] = blue_datas.Rev_data.CellTmp >> 8;
0010be 4880 LDR r0,|L1.4800|
0010c0 f8b00072 LDRH r0,[r0,#0x72] ; blue_datas
0010c4 1201 ASRS r1,r0,#8
0010c6 1c60 ADDS r0,r4,#1
0010c8 5c10 LDRB r0,[r2,r0]
0010ca 3009 ADDS r0,r0,#9
0010cc 4420 ADD r0,r0,r4
0010ce 5411 STRB r1,[r2,r0]
;;;651 sendbuffer[sendbuffer[1+temp] + 10+temp] = blue_datas.Rev_data.CellTmp;
0010d0 487b LDR r0,|L1.4800|
0010d2 f8901072 LDRB r1,[r0,#0x72] ; blue_datas
0010d6 1c60 ADDS r0,r4,#1
0010d8 5c10 LDRB r0,[r2,r0]
0010da 300a ADDS r0,r0,#0xa
0010dc 4420 ADD r0,r0,r4
0010de 5411 STRB r1,[r2,r0]
;;;652
;;;653 sendbuffer[sendbuffer[1+temp] + 11+temp] = REVCELLZVOL;
0010e0 2183 MOVS r1,#0x83
0010e2 1c60 ADDS r0,r4,#1
0010e4 5c10 LDRB r0,[r2,r0]
0010e6 300b ADDS r0,r0,#0xb
0010e8 4420 ADD r0,r0,r4
0010ea 5411 STRB r1,[r2,r0]
;;;654 sendbuffer[sendbuffer[1+temp] + 12+temp] = blue_datas.Rev_data.CellZvol >> 8;
0010ec 4874 LDR r0,|L1.4800|
0010ee f8b00074 LDRH r0,[r0,#0x74] ; blue_datas
0010f2 1201 ASRS r1,r0,#8
0010f4 1c60 ADDS r0,r4,#1
0010f6 5c10 LDRB r0,[r2,r0]
0010f8 300c ADDS r0,r0,#0xc
0010fa 4420 ADD r0,r0,r4
0010fc 5411 STRB r1,[r2,r0]
;;;655 sendbuffer[sendbuffer[1+temp] + 13+temp] = blue_datas.Rev_data.CellZvol;
0010fe 4870 LDR r0,|L1.4800|
001100 f8901074 LDRB r1,[r0,#0x74] ; blue_datas
001104 1c60 ADDS r0,r4,#1
001106 5c10 LDRB r0,[r2,r0]
001108 300d ADDS r0,r0,#0xd
00110a 4420 ADD r0,r0,r4
00110c 5411 STRB r1,[r2,r0]
;;;656
;;;657 sendbuffer[sendbuffer[1+temp] + 14+temp] = REVCURR;
00110e 2184 MOVS r1,#0x84
001110 1c60 ADDS r0,r4,#1
001112 5c10 LDRB r0,[r2,r0]
001114 300e ADDS r0,r0,#0xe
001116 4420 ADD r0,r0,r4
001118 5411 STRB r1,[r2,r0]
;;;658 sendbuffer[sendbuffer[1+temp] + 15+temp] = blue_datas.Rev_data.Currdata >> 8;
00111a 4869 LDR r0,|L1.4800|
00111c f8b00076 LDRH r0,[r0,#0x76] ; blue_datas
001120 1201 ASRS r1,r0,#8
001122 1c60 ADDS r0,r4,#1
001124 5c10 LDRB r0,[r2,r0]
001126 300f ADDS r0,r0,#0xf
001128 4420 ADD r0,r0,r4
00112a 5411 STRB r1,[r2,r0]
;;;659 sendbuffer[sendbuffer[1+temp] + 16+temp] = blue_datas.Rev_data.Currdata;
00112c 4864 LDR r0,|L1.4800|
00112e f8901076 LDRB r1,[r0,#0x76] ; blue_datas
001132 1c60 ADDS r0,r4,#1
001134 5c10 LDRB r0,[r2,r0]
001136 3010 ADDS r0,r0,#0x10
001138 4420 ADD r0,r0,r4
00113a 5411 STRB r1,[r2,r0]
;;;660
;;;661 sendbuffer[sendbuffer[1+temp] + 17+temp] = REVSRL;
00113c 2185 MOVS r1,#0x85
00113e 1c60 ADDS r0,r4,#1
001140 5c10 LDRB r0,[r2,r0]
001142 3011 ADDS r0,r0,#0x11
001144 4420 ADD r0,r0,r4
001146 5411 STRB r1,[r2,r0]
;;;662 sendbuffer[sendbuffer[1+temp] + 18+temp] = blue_datas.Rev_data.Soc;
001148 485d LDR r0,|L1.4800|
00114a f8901078 LDRB r1,[r0,#0x78] ; blue_datas
00114e 1c60 ADDS r0,r4,#1
001150 5c10 LDRB r0,[r2,r0]
001152 3012 ADDS r0,r0,#0x12
001154 4420 ADD r0,r0,r4
001156 5411 STRB r1,[r2,r0]
;;;663
;;;664 sendbuffer[sendbuffer[1+temp] + 19+temp] = CELLTMPNUM;
001158 2186 MOVS r1,#0x86
00115a 1c60 ADDS r0,r4,#1
00115c 5c10 LDRB r0,[r2,r0]
00115e 3013 ADDS r0,r0,#0x13
001160 4420 ADD r0,r0,r4
001162 5411 STRB r1,[r2,r0]
;;;665 sendbuffer[sendbuffer[1+temp] + 20+temp] = blue_datas.Rev_data.CellTmpSors;
001164 4856 LDR r0,|L1.4800|
001166 f8901079 LDRB r1,[r0,#0x79] ; blue_datas
00116a 1c60 ADDS r0,r4,#1
00116c 5c10 LDRB r0,[r2,r0]
00116e 3014 ADDS r0,r0,#0x14
001170 4420 ADD r0,r0,r4
001172 5411 STRB r1,[r2,r0]
;;;666
;;;667 sendbuffer[sendbuffer[1+temp] + 21+temp] = CELLUSNUM;
001174 2187 MOVS r1,#0x87
001176 1c60 ADDS r0,r4,#1
001178 5c10 LDRB r0,[r2,r0]
00117a 3015 ADDS r0,r0,#0x15
00117c 4420 ADD r0,r0,r4
00117e 5411 STRB r1,[r2,r0]
;;;668 sendbuffer[sendbuffer[1+temp] + 22+temp] = blue_datas.Rev_data.Cellusnum >> 8;
001180 484f LDR r0,|L1.4800|
001182 f8b0007a LDRH r0,[r0,#0x7a] ; blue_datas
001186 1201 ASRS r1,r0,#8
001188 1c60 ADDS r0,r4,#1
00118a 5c10 LDRB r0,[r2,r0]
00118c 3016 ADDS r0,r0,#0x16
00118e 4420 ADD r0,r0,r4
001190 5411 STRB r1,[r2,r0]
;;;669 sendbuffer[sendbuffer[1+temp] + 23+temp] = blue_datas.Rev_data.Cellusnum;
001192 484b LDR r0,|L1.4800|
001194 f890107a LDRB r1,[r0,#0x7a] ; blue_datas
001198 1c60 ADDS r0,r4,#1
00119a 5c10 LDRB r0,[r2,r0]
00119c 3017 ADDS r0,r0,#0x17
00119e 4420 ADD r0,r0,r4
0011a0 5411 STRB r1,[r2,r0]
;;;670
;;;671 sendbuffer[sendbuffer[1+temp] + 24+temp] = CELLZRL;
0011a2 2189 MOVS r1,#0x89
0011a4 1c60 ADDS r0,r4,#1
0011a6 5c10 LDRB r0,[r2,r0]
0011a8 3018 ADDS r0,r0,#0x18
0011aa 4420 ADD r0,r0,r4
0011ac 5411 STRB r1,[r2,r0]
;;;672 sendbuffer[sendbuffer[1+temp] + 25+temp] = blue_datas.Rev_data.CellOutrl >> 24;
0011ae 4844 LDR r0,|L1.4800|
0011b0 f8d00080 LDR r0,[r0,#0x80] ; blue_datas
0011b4 0e01 LSRS r1,r0,#24
0011b6 1c60 ADDS r0,r4,#1
0011b8 5c10 LDRB r0,[r2,r0]
0011ba 3019 ADDS r0,r0,#0x19
0011bc 4420 ADD r0,r0,r4
0011be 5411 STRB r1,[r2,r0]
;;;673 sendbuffer[sendbuffer[1+temp] + 26+temp] = blue_datas.Rev_data.CellOutrl >> 16;
0011c0 483f LDR r0,|L1.4800|
0011c2 f8d00080 LDR r0,[r0,#0x80] ; blue_datas
0011c6 f3c04107 UBFX r1,r0,#16,#8
0011ca 1c60 ADDS r0,r4,#1
0011cc 5c10 LDRB r0,[r2,r0]
0011ce 301a ADDS r0,r0,#0x1a
0011d0 4420 ADD r0,r0,r4
0011d2 5411 STRB r1,[r2,r0]
;;;674 sendbuffer[sendbuffer[1+temp] + 27+temp] = blue_datas.Rev_data.CellOutrl >> 8;
0011d4 483a LDR r0,|L1.4800|
0011d6 f8b00080 LDRH r0,[r0,#0x80] ; blue_datas
0011da f3c02107 UBFX r1,r0,#8,#8
0011de 1c60 ADDS r0,r4,#1
0011e0 5c10 LDRB r0,[r2,r0]
0011e2 301b ADDS r0,r0,#0x1b
0011e4 4420 ADD r0,r0,r4
0011e6 5411 STRB r1,[r2,r0]
;;;675 sendbuffer[sendbuffer[1+temp] + 28+temp] = blue_datas.Rev_data.CellOutrl;
0011e8 4835 LDR r0,|L1.4800|
0011ea f8901080 LDRB r1,[r0,#0x80] ; blue_datas
0011ee 1c60 ADDS r0,r4,#1
0011f0 5c10 LDRB r0,[r2,r0]
0011f2 301c ADDS r0,r0,#0x1c
0011f4 4420 ADD r0,r0,r4
0011f6 5411 STRB r1,[r2,r0]
;;;676
;;;677 sendbuffer[sendbuffer[1+temp] + 29+temp] = CELLZCS;
0011f8 218a MOVS r1,#0x8a
0011fa 1c60 ADDS r0,r4,#1
0011fc 5c10 LDRB r0,[r2,r0]
0011fe 301d ADDS r0,r0,#0x1d
001200 4420 ADD r0,r0,r4
001202 5411 STRB r1,[r2,r0]
;;;678 sendbuffer[sendbuffer[1+temp] + 30+temp] = blue_datas.Rev_data.CellZnum >> 8;
001204 482e LDR r0,|L1.4800|
001206 f8b00084 LDRH r0,[r0,#0x84] ; blue_datas
00120a 1201 ASRS r1,r0,#8
00120c 1c60 ADDS r0,r4,#1
00120e 5c10 LDRB r0,[r2,r0]
001210 301e ADDS r0,r0,#0x1e
001212 4420 ADD r0,r0,r4
001214 5411 STRB r1,[r2,r0]
;;;679 sendbuffer[sendbuffer[1+temp] + 31+temp] = blue_datas.Rev_data.CellZnum;
001216 482a LDR r0,|L1.4800|
001218 f8901084 LDRB r1,[r0,#0x84] ; blue_datas
00121c 1c60 ADDS r0,r4,#1
00121e 5c10 LDRB r0,[r2,r0]
001220 301f ADDS r0,r0,#0x1f
001222 4420 ADD r0,r0,r4
001224 5411 STRB r1,[r2,r0]
;;;680
;;;681 sendbuffer[sendbuffer[1+temp] + 32+temp] = CELLHIT;
001226 218b MOVS r1,#0x8b
001228 1c60 ADDS r0,r4,#1
00122a 5c10 LDRB r0,[r2,r0]
00122c 3020 ADDS r0,r0,#0x20
00122e 4420 ADD r0,r0,r4
001230 5411 STRB r1,[r2,r0]
;;;682 sendbuffer[sendbuffer[1+temp] + 33+temp] = blue_datas.Rev_data.CellhitData >> 8;
001232 4823 LDR r0,|L1.4800|
001234 f8b00086 LDRH r0,[r0,#0x86] ; blue_datas
001238 1201 ASRS r1,r0,#8
00123a 1c60 ADDS r0,r4,#1
00123c 5c10 LDRB r0,[r2,r0]
00123e 3021 ADDS r0,r0,#0x21
001240 4420 ADD r0,r0,r4
001242 5411 STRB r1,[r2,r0]
;;;683 sendbuffer[sendbuffer[1+temp] + 34+temp] = blue_datas.Rev_data.CellhitData;
001244 481e LDR r0,|L1.4800|
001246 f8901086 LDRB r1,[r0,#0x86] ; blue_datas
00124a 1c60 ADDS r0,r4,#1
00124c 5c10 LDRB r0,[r2,r0]
00124e 3022 ADDS r0,r0,#0x22
001250 4420 ADD r0,r0,r4
001252 5411 STRB r1,[r2,r0]
;;;684
;;;685 sendbuffer[sendbuffer[1+temp] + 35+temp] = CELLSTURT;
001254 218c MOVS r1,#0x8c
001256 1c60 ADDS r0,r4,#1
001258 5c10 LDRB r0,[r2,r0]
00125a 3023 ADDS r0,r0,#0x23
00125c 4420 ADD r0,r0,r4
00125e 5411 STRB r1,[r2,r0]
;;;686 sendbuffer[sendbuffer[1+temp] + 36+temp] = blue_datas.Rev_data.CellStrtu >> 8;
001260 4817 LDR r0,|L1.4800|
001262 f8b00088 LDRH r0,[r0,#0x88] ; blue_datas
001266 1201 ASRS r1,r0,#8
001268 1c60 ADDS r0,r4,#1
00126a 5c10 LDRB r0,[r2,r0]
00126c 3024 ADDS r0,r0,#0x24
00126e 4420 ADD r0,r0,r4
001270 5411 STRB r1,[r2,r0]
;;;687 sendbuffer[sendbuffer[1+temp] + 37+temp] = blue_datas.Rev_data.CellStrtu;
001272 4813 LDR r0,|L1.4800|
001274 f8901088 LDRB r1,[r0,#0x88] ; blue_datas
001278 1c60 ADDS r0,r4,#1
00127a 5c10 LDRB r0,[r2,r0]
00127c 3025 ADDS r0,r0,#0x25
00127e 4420 ADD r0,r0,r4
001280 5411 STRB r1,[r2,r0]
;;;688
;;;689
;;;690
;;;691 send_len = sendbuffer[1+temp] + 38+temp;
001282 1c60 ADDS r0,r4,#1
001284 a90e ADD r1,sp,#0x38
001286 5c08 LDRB r0,[r1,r0]
001288 3026 ADDS r0,r0,#0x26
00128a 4420 ADD r0,r0,r4
00128c fa1ffa80 UXTH r10,r0
;;;692
;;;693 Send_TString_BMS(start_orde,22); //·¢Ë͸øMCU¿ªÊ¼¶Ô309¶Áд
001290 2116 MOVS r1,#0x16
001292 480c LDR r0,|L1.4804|
001294 f7fffffe BL Send_TString_BMS
;;;694 /*·¢ËÍÊý¾Ý*/
;;;695 BlueSend_GpsFun(Bms_num,orde,Type,sendbuffer,send_len,recnum);
001298 9859 LDR r0,[sp,#0x164]
00129a ab0e ADD r3,sp,#0x38
00129c e9cda000 STRD r10,r0,[sp,#0]
0012a0 9a5a LDR r2,[sp,#0x168]
0012a2 995b LDR r1,[sp,#0x16c]
0012a4 985d LDR r0,[sp,#0x174]
0012a6 f7fffffe BL BlueSend_GpsFun
;;;696 Beep_Flag = 1;
0012aa 2001 MOVS r0,#1
0012ac 4906 LDR r1,|L1.4808|
0012ae 7008 STRB r0,[r1,#0]
;;;697 }
0012b0 bf00 NOP
|L1.4786|
;;;698 }
0012b2 bf00 NOP
|L1.4788|
;;;699 break;
0012b4 e000 B |L1.4792|
|L1.4790|
;;;700 default:
;;;701 break;
0012b6 bf00 NOP
|L1.4792|
0012b8 bf00 NOP ;223
|L1.4794|
;;;702 }
;;;703 }
;;;704 }
;;;705 }
0012ba b05f ADD sp,sp,#0x17c
0012bc e8bd8ff0 POP {r4-r11,pc}
ENDP
|L1.4800|
DCD blue_datas
|L1.4804|
DCD start_orde
|L1.4808|
DCD Beep_Flag
AREA ||.bss||, DATA, NOINIT, ALIGN=2
Bluttooth_buf
% 360
blue_datas
% 140
AREA ||.data||, DATA, ALIGN=0
Pass_init
000000 41414242 DCB 0x41,0x41,0x42,0x42
000004 31323334 DCB 0x31,0x32,0x33,0x34
000008 353600 DCB 0x35,0x36,0x00
Pass_init_Lase
00000b 41 DCB 0x41
00000c 41424231 DCB 0x41,0x42,0x42,0x31
000010 32333435 DCB 0x32,0x33,0x34,0x35
000014 3600 DCB 0x36,0x00
Pass_CJ
000016 4141 DCB 0x41,0x41
000018 42423535 DCB 0x42,0x42,0x35,0x35
00001c 33333232 DCB 0x33,0x33,0x32,0x32
000020 00 DCB 0x00
Pass_bit
000021 00 DCB 0x00
BlueActivate
000022 01 DCB 0x01