📄 eepromoper.txt
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.1 [Build 939] for uVision
; commandline ArmCC [--debug -c --asm --interleave -o.\obj\eepromoper.o --depend=.\obj\eepromoper.d --device=DARMP --apcs=interwork -O0 -IC:\Keil\ARM\INC\Philips --omf_browse=.\obj\eepromoper.crf eepromoper.c]
ARM
AREA ||.text||, CODE, READONLY, ALIGN=2
setarraytozeroval PROC
;;;13 unsigned char i;
;;;14 for (i = 0; i < len; i++) ary[i] = 0;
000000 e3a02000 MOV r2,#0
000004 ea000003 B |L1.24|
|L1.8|
000008 e3a03000 MOV r3,#0
00000c e7c03002 STRB r3,[r0,r2]
000010 e2823001 ADD r3,r2,#1
000014 e20320ff AND r2,r3,#0xff
|L1.24|
000018 e1520001 CMP r2,r1
00001c bafffff9 BLT |L1.8|
;;;15 }
000020 e12fff1e BX lr
;;;16 //初始化EEPROM
ENDP
initeeprom PROC
;;;17 void initeeprom(void)
;;;18 {
000024 e92d403e PUSH {r1-r5,lr}
;;;19 unsigned char tmp;
;;;20 unsigned char data[10];
;;;21 data[0] = 'I';
000028 e3a00049 MOV r0,#0x49
00002c e5cd0000 STRB r0,[sp,#0]
;;;22
;;;23 tmp = write(SYS_INIT_BYTE_ADDR, data, 1);
000030 e3a02001 MOV r2,#1
000034 e28d1000 ADD r1,sp,#0
000038 e1a00002 MOV r0,r2
00003c ebfffffe BL write
000040 e1a04000 MOV r4,r0
;;;24 strncpy(data, "123456", 6);
000044 e3a02006 MOV r2,#6
000048 e28f1f77 ADR r1,|L1.556|
00004c e28d0000 ADD r0,sp,#0
000050 ebfffffe BL strncpy
;;;25 tmp = write(PASSWORD_ADDRESS, data, 6);
000054 e3a02006 MOV r2,#6
000058 e28d1000 ADD r1,sp,#0
00005c e3a00010 MOV r0,#0x10
000060 ebfffffe BL write
000064 e1a04000 MOV r4,r0
;;;26 strncpy(data, convert_float_to_char(0.0), 4);
000068 e3a00000 MOV r0,#0
00006c ebfffffe BL convert_float_to_char
000070 e1a05000 MOV r5,r0
000074 e3a02004 MOV r2,#4
000078 e1a01000 MOV r1,r0
00007c e28d0000 ADD r0,sp,#0
000080 ebfffffe BL strncpy
;;;27 tmp = write(SYS_SUNJIAN_LIULIANG, data, 4);
000084 e3a02004 MOV r2,#4
000088 e28d1000 ADD r1,sp,#0
00008c e3a00018 MOV r0,#0x18
000090 ebfffffe BL write
000094 e1a04000 MOV r4,r0
;;;28 strncpy(data, convert_float_to_char(0.0), 4);
000098 e3a00000 MOV r0,#0
00009c ebfffffe BL convert_float_to_char
0000a0 e1a05000 MOV r5,r0
0000a4 e3a02004 MOV r2,#4
0000a8 e1a01000 MOV r1,r0
0000ac e28d0000 ADD r0,sp,#0
0000b0 ebfffffe BL strncpy
;;;29 tmp = write(SYS_LEIJI_LIULIANG, data, 4);
0000b4 e3a02004 MOV r2,#4
0000b8 e28d1000 ADD r1,sp,#0
0000bc e3a0001c MOV r0,#0x1c
0000c0 ebfffffe BL write
0000c4 e1a04000 MOV r4,r0
;;;30 strncpy(data, inttohexstr(0), 4);
0000c8 e3a00000 MOV r0,#0
0000cc ebfffffe BL inttohexstr
0000d0 e1a05000 MOV r5,r0
0000d4 e3a02004 MOV r2,#4
0000d8 e1a01000 MOV r1,r0
0000dc e28d0000 ADD r0,sp,#0
0000e0 ebfffffe BL strncpy
;;;31 tmp = write(SYS_CURR_INSTANT_ADDR, data, 4);
0000e4 e3a02004 MOV r2,#4
0000e8 e28d1000 ADD r1,sp,#0
0000ec e3a00028 MOV r0,#0x28
0000f0 ebfffffe BL write
0000f4 e1a04000 MOV r4,r0
;;;32 strncpy(data, inttohexstr(0x50), 4);
0000f8 e3a00050 MOV r0,#0x50
0000fc ebfffffe BL inttohexstr
000100 e1a05000 MOV r5,r0
000104 e3a02004 MOV r2,#4
000108 e1a01000 MOV r1,r0
00010c e28d0000 ADD r0,sp,#0
000110 ebfffffe BL strncpy
;;;33 tmp = write(SYS_INSTANT_STEP, data, 4);
000114 e3a02004 MOV r2,#4
000118 e28d1000 ADD r1,sp,#0
00011c e3a0002c MOV r0,#0x2c
000120 ebfffffe BL write
000124 e1a04000 MOV r4,r0
;;;34 strncpy(data, inttohexstr(0), 4);
000128 e3a00000 MOV r0,#0
00012c ebfffffe BL inttohexstr
000130 e1a05000 MOV r5,r0
000134 e3a02004 MOV r2,#4
000138 e1a01000 MOV r1,r0
00013c e28d0000 ADD r0,sp,#0
000140 ebfffffe BL strncpy
;;;35 tmp = write(SYS_LAST_REBOOT_TIME, data, 8);
000144 e3a02008 MOV r2,#8
000148 e28d1000 ADD r1,sp,#0
00014c e3a00058 MOV r0,#0x58
000150 ebfffffe BL write
000154 e1a04000 MOV r4,r0
;;;36 tmp = write(SYS_LAST_DAY_REPORT, data, 8);
000158 e3a02008 MOV r2,#8
00015c e28d1000 ADD r1,sp,#0
000160 e3a00060 MOV r0,#0x60
000164 ebfffffe BL write
000168 e1a04000 MOV r4,r0
;;;37 tmp = write(SYS_LAST_HOUR_REPORT, data, 8);
00016c e3a02008 MOV r2,#8
000170 e28d1000 ADD r1,sp,#0
000174 e3a00068 MOV r0,#0x68
000178 ebfffffe BL write
00017c e1a04000 MOV r4,r0
;;;38 tmp = write(SYS_LAST_MIN_REPORT, data, 8);
000180 e3a02008 MOV r2,#8
000184 e28d1000 ADD r1,sp,#0
000188 e3a00070 MOV r0,#0x70
00018c ebfffffe BL write
000190 e1a04000 MOV r4,r0
;;;39 tmp = write(SYS_LAST_INSTANT_REPORT, data, 8);
000194 e3a02008 MOV r2,#8
000198 e28d1000 ADD r1,sp,#0
00019c e3a00078 MOV r0,#0x78
0001a0 ebfffffe BL write
0001a4 e1a04000 MOV r4,r0
;;;40 tmp = write(SYS_LAST_LOG_REPORT, data, 8);
0001a8 e3a02008 MOV r2,#8
0001ac e28d1000 ADD r1,sp,#0
0001b0 e3a00080 MOV r0,#0x80
0001b4 ebfffffe BL write
0001b8 e1a04000 MOV r4,r0
;;;41 tmp = write(SYS_LAST_REPORTONTTIME, data, 8);
0001bc e3a02008 MOV r2,#8
0001c0 e28d1000 ADD r1,sp,#0
0001c4 e3a00088 MOV r0,#0x88
0001c8 ebfffffe BL write
0001cc e1a04000 MOV r4,r0
;;;42 tmp = write(SYS_LAST_ALARMREPORT, data, 8);
0001d0 e3a02008 MOV r2,#8
0001d4 e28d1000 ADD r1,sp,#0
0001d8 e3a00090 MOV r0,#0x90
0001dc ebfffffe BL write
0001e0 e1a04000 MOV r4,r0
;;;43 }
0001e4 e8bd403e POP {r1-r5,lr}
0001e8 e12fff1e BX lr
;;;44
ENDP
setinitflg PROC
;;;47
;;;48 }
0001ec e12fff1e BX lr
;;;49
ENDP
setNoinitflg PROC
;;;51 {
;;;52 }
0001f0 e12fff1e BX lr
;;;53
ENDP
readinitflg PROC
;;;55 BOOL readinitflg(void)
;;;56 {
0001f4 e92d4038 PUSH {r3-r5,lr}
;;;57 unsigned char tmp;
;;;58 unsigned char flg;
;;;59 //读初始位的状态 0-未初始化
;;;60 tmp = read(SYS_INIT_BYTE_ADDR, &flg, 1);
0001f8 e3a02001 MOV r2,#1
0001fc e28d1000 ADD r1,sp,#0
000200 e1a00002 MOV r0,r2
000204 ebfffffe BL read
000208 e1a04000 MOV r4,r0
;;;61 if (flg == 'I')
00020c e5dd0000 LDRB r0,[sp,#0]
000210 e3500049 CMP r0,#0x49
000214 1a000002 BNE |L1.548|
;;;62 return TRUE;
000218 e3a00001 MOV r0,#1
|L1.540|
00021c e8bd4038 POP {r3-r5,lr}
;;;63 else
;;;64 return FALSE;
;;;65
;;;66 }
000220 e12fff1e BX lr
|L1.548|
000224 e3a00000 MOV r0,#0 ;64
000228 eafffffb B |L1.540|
|L1.556|
00022c 31323334 DCB "1234"
000230 35360000 DCB "56\0\0"
ENDP
setPassword PROC
;;;67
;;;68 void setPassword(char *pw) {
000234 e92d4070 PUSH {r4-r6,lr}
000238 e1a04000 MOV r4,r0
;;;69 unsigned char tmp;
;;;70
;;;71 tmp = write(PASSWORD_ADDRESS, pw, 6);
00023c e3a02006 MOV r2,#6
000240 e1a01004 MOV r1,r4
000244 e3a00010 MOV r0,#0x10
000248 ebfffffe BL write
00024c e1a05000 MOV r5,r0
;;;72 return;
;;;73 }
000250 e8bd4070 POP {r4-r6,lr}
000254 e12fff1e BX lr
;;;74
ENDP
readPassword PROC
;;;75 char * readPassword(void) {
000258 e92d401c PUSH {r2-r4,lr}
;;;76 unsigned char pw[6];
;;;77 unsigned char tmp;
;;;78
;;;79 tmp = read(PASSWORD_ADDRESS, pw, 6);
00025c e3a02006 MOV r2,#6
000260 e28d1000 ADD r1,sp,#0
000264 e3a00010 MOV r0,#0x10
000268 ebfffffe BL read
00026c e1a04000 MOV r4,r0
;;;80 return pw;
000270 e28d0000 ADD r0,sp,#0
000274 e8bd401c POP {r2-r4,lr}
;;;81 }
000278 e12fff1e BX lr
;;;82
ENDP
setinstantflow PROC
;;;83 void setinstantflow(float val) {
00027c e92d40fe PUSH {r1-r7,lr}
000280 e1a04000 MOV r4,r0
;;;84 unsigned char tmp;
;;;85 unsigned char data[10];
;;;86
;;;87 strncpy(data, convert_float_to_char(val), 4);
000284 e1a00004 MOV r0,r4
000288 ebfffffe BL convert_float_to_char
00028c e1a06000 MOV r6,r0
000290 e3a02004 MOV r2,#4
000294 e1a01000 MOV r1,r0
000298 e28d0000 ADD r0,sp,#0
00029c ebfffffe BL strncpy
;;;88 tmp = write(SYS_SUNJIAN_LIULIANG, data, 4);
0002a0 e3a02004 MOV r2,#4
0002a4 e28d1000 ADD r1,sp,#0
0002a8 e3a00018 MOV r0,#0x18
0002ac ebfffffe BL write
0002b0 e1a05000 MOV r5,r0
;;;89 g_cur_measuredata.measuredata[P_ADDR_INSTANT].val = val;
0002b4 e59f0718 LDR r0,|L1.2516|
0002b8 e5804018 STR r4,[r0,#0x18]
;;;90
;;;91 return;
;;;92 }
0002bc e8bd40fe POP {r1-r7,lr}
0002c0 e12fff1e BX lr
;;;93
ENDP
readinstantflow PROC
;;;94 float readinstantflow(void) {
0002c4 e92d403e PUSH {r1-r5,lr}
;;;95 unsigned char tmp;
;;;96 unsigned char data[10];
;;;97 float val;
;;;98
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -