⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 eepromoper.txt

📁 工厂环境污染控制数据采集器
💻 TXT
📖 第 1 页 / 共 5 页
字号:
; 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 + -