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

📄 inioper.txt

📁 工厂环境污染控制数据采集器
💻 TXT
📖 第 1 页 / 共 5 页
字号:
000594  e28d107c          ADD      r1,sp,#0x7c
000598  e7d10000          LDRB     r0,[r1,r0]
00059c  e350002b          CMP      r0,#0x2b
0005a0  1a000049          BNE      |L1.1740|
;;;287      { 
;;;288       buf1[n-1] = 0x00; 
0005a4  e3a00000          MOV      r0,#0
0005a8  e2491001          SUB      r1,r9,#1
0005ac  e28d207c          ADD      r2,sp,#0x7c
0005b0  e7c20001          STRB     r0,[r2,r1]
;;;289       while(1) 
0005b4  ea000041          B        |L1.1728|
                  |L1.1464|
;;;290       { 
;;;291        ret = CFG_ERR_READ_FILE; 
0005b8  e3e0000b          MVN      r0,#0xb
0005bc  e58d0008          STR      r0,[sp,#8]
;;;292        n = FileGetLine(fhandle, curpos, buf2, MAX_CFG_BUF); 
0005c0  e3a03064          MOV      r3,#0x64
0005c4  e28d2014          ADD      r2,sp,#0x14
0005c8  e1a0100a          MOV      r1,r10
0005cc  e1a00004          MOV      r0,r4
0005d0  ebfffffe          BL       FileGetLine
0005d4  e1a09000          MOV      r9,r0
;;;293    	curpos += n + 2; 
0005d8  e2890002          ADD      r0,r9,#2
0005dc  e08aa000          ADD      r10,r10,r0
;;;294        if(n < -1) goto r_cfg_end; 
0005e0  e3790001          CMN      r9,#1
0005e4  aa000000          BGE      |L1.1516|
0005e8  ea000054          B        |L1.1856|
                  |L1.1516|
;;;295        if(n < 0) break;                         /* 文件结束 */ 
0005ec  e3590000          CMP      r9,#0
0005f0  aa000000          BGE      |L1.1528|
0005f4  ea000033          B        |L1.1736|
                  |L1.1528|
;;;296        line_no++; 
0005f8  e2888001          ADD      r8,r8,#1
;;;297        CFG_key_lines++; 
0005fc  e59f06b0          LDR      r0,|L1.3252|
000600  e5900000          LDR      r0,[r0,#0]  ; CFG_key_lines
000604  e2800001          ADD      r0,r0,#1
000608  e59f16a4          LDR      r1,|L1.3252|
00060c  e5810000          STR      r0,[r1,#0]  ; CFG_key_lines
;;;298        n = strlen(strtrimr(buf2)); 
000610  e28d0014          ADD      r0,sp,#0x14
000614  ebfffffe          BL       strtrimr
000618  e1a0b000          MOV      r11,r0
00061c  ebfffffe          BL       strlen
000620  e1a09000          MOV      r9,r0
;;;299        ret = CFG_ERR_EXCEED_BUF_SIZE; 
000624  e3e00015          MVN      r0,#0x15
000628  e58d0008          STR      r0,[sp,#8]
;;;300        if(n > 0 && buf2[n-1] == '+')            /* 遇+号表示下一行继续 */ 
00062c  e3590000          CMP      r9,#0
000630  da000015          BLE      |L1.1676|
000634  e2490001          SUB      r0,r9,#1
000638  e28d1014          ADD      r1,sp,#0x14
00063c  e7d10000          LDRB     r0,[r1,r0]
000640  e350002b          CMP      r0,#0x2b
000644  1a000010          BNE      |L1.1676|
;;;301        { 
;;;302         buf2[n-1] = 0x00; 
000648  e3a00000          MOV      r0,#0
00064c  e2491001          SUB      r1,r9,#1
000650  e28d2014          ADD      r2,sp,#0x14
000654  e7c20001          STRB     r0,[r2,r1]
;;;303         if(strlen(buf1) + strlen(buf2) > MAX_CFG_BUF) 
000658  e28d007c          ADD      r0,sp,#0x7c
00065c  ebfffffe          BL       strlen
000660  e1a0b000          MOV      r11,r0
000664  e28d0014          ADD      r0,sp,#0x14
000668  ebfffffe          BL       strlen
00066c  e080000b          ADD      r0,r0,r11
000670  e3500064          CMP      r0,#0x64
000674  9a000000          BLS      |L1.1660|
;;;304          goto r_cfg_end; 
000678  ea000030          B        |L1.1856|
                  |L1.1660|
;;;305         strcat(buf1, buf2); 
00067c  e28d1014          ADD      r1,sp,#0x14
000680  e28d007c          ADD      r0,sp,#0x7c
000684  ebfffffe          BL       strcat
;;;306         continue; 
000688  ea00000c          B        |L1.1728|
                  |L1.1676|
;;;307        } 
;;;308        if(strlen(buf1) + strlen(buf2) > MAX_CFG_BUF) 
00068c  e28d007c          ADD      r0,sp,#0x7c
000690  ebfffffe          BL       strlen
000694  e1a0b000          MOV      r11,r0
000698  e28d0014          ADD      r0,sp,#0x14
00069c  ebfffffe          BL       strlen
0006a0  e080000b          ADD      r0,r0,r11
0006a4  e3500064          CMP      r0,#0x64
0006a8  9a000000          BLS      |L1.1712|
;;;309         goto r_cfg_end; 
0006ac  ea000023          B        |L1.1856|
                  |L1.1712|
;;;310        strcat(buf1, buf2); 
0006b0  e28d1014          ADD      r1,sp,#0x14
0006b4  e28d007c          ADD      r0,sp,#0x7c
0006b8  ebfffffe          BL       strcat
;;;311        break; 
0006bc  ea000001          B        |L1.1736|
                  |L1.1728|
0006c0  e1a00000          MOV      r0,r0                 ;306
0006c4  eaffffbb          B        |L1.1464|
                  |L1.1736|
0006c8  e1a00000          MOV      r0,r0                 ;295
                  |L1.1740|
;;;312       } 
;;;313      } 
;;;314      ret = CFG_ERR_FILE_FORMAT; 
0006cc  e3e0000d          MVN      r0,#0xd
0006d0  e58d0008          STR      r0,[sp,#8]
;;;315      if(SplitKeyValue(buf1, &key_ptr, &val_ptr) != 1) 
0006d4  e28d200c          ADD      r2,sp,#0xc
0006d8  e28d1010          ADD      r1,sp,#0x10
0006dc  e28d007c          ADD      r0,sp,#0x7c
0006e0  ebfffffe          BL       SplitKeyValue
0006e4  e3500001          CMP      r0,#1
0006e8  0a000000          BEQ      |L1.1776|
;;;316       goto r_cfg_end; 
0006ec  ea000013          B        |L1.1856|
                  |L1.1776|
;;;317      strtriml(strtrimr(key_ptr)); 
0006f0  e59d0010          LDR      r0,[sp,#0x10]
0006f4  ebfffffe          BL       strtrimr
0006f8  e1a0b000          MOV      r11,r0
0006fc  ebfffffe          BL       strtriml
;;;318      if(strcmp(key_ptr, key) != 0) 
000700  e1a01006          MOV      r1,r6
000704  e59d0010          LDR      r0,[sp,#0x10]
000708  ebfffffe          BL       strcmp
00070c  e3500000          CMP      r0,#0
000710  0a000000          BEQ      |L1.1816|
;;;319       continue;                                  /* 和key值不匹配 */ 
000714  ea000003          B        |L1.1832|
                  |L1.1816|
;;;320      strcpy(buf, val_ptr); 
000718  e1a00007          MOV      r0,r7
00071c  e59d100c          LDR      r1,[sp,#0xc]
000720  ebfffffe          BL       strcpy
;;;321      break; 
000724  ea000001          B        |L1.1840|
                  |L1.1832|
000728  e1a00000          MOV      r0,r0                 ;283
00072c  eaffff68          B        |L1.1236|
                  |L1.1840|
000730  e1a00000          MOV      r0,r0
;;;322     } 
;;;323     ret = CFG_OK; 
000734  e3a00000          MOV      r0,#0
000738  e58d0008          STR      r0,[sp,#8]
;;;324    r_cfg_end: 
00073c  e1a00000          MOV      r0,r0
                  |L1.1856|
;;;325     //if(fp != NULL) fclose(fp); 
;;;326     return ret; 
000740  e59d0008          LDR      r0,[sp,#8]
000744  e28dd0e4          ADD      sp,sp,#0xe4
000748  e8bd4ff0          POP      {r4-r11,lr}
;;;327    } 
00074c  e12fff1e          BX       lr
;;;328    
                          ENDP

                  strtoint PROC
;;;685    long strtoint(unsigned char *buf, unsigned int len)
;;;686    {
000750  e92d41f0          PUSH     {r4-r8,lr}
000754  e1a04000          MOV      r4,r0
000758  e1a05001          MOV      r5,r1
;;;687    	long Temp = 0;
00075c  e3a06000          MOV      r6,#0
;;;688    	long dd = 1;
000760  e3a08001          MOV      r8,#1
;;;689    	int j;
;;;690    
;;;691    	for (j = 1; j < len; j++)
000764  e3a07001          MOV      r7,#1
000768  ea000002          B        |L1.1912|
                  |L1.1900|
;;;692    		dd *= 10;
00076c  e3a0000a          MOV      r0,#0xa
000770  e0080890          MUL      r8,r0,r8
000774  e2877001          ADD      r7,r7,#1              ;691
                  |L1.1912|
000778  e1570005          CMP      r7,r5                 ;691
00077c  3afffffa          BCC      |L1.1900|
;;;693    	
;;;694    	for (j = 0;j < len; j++){
000780  e3a07000          MOV      r7,#0
000784  ea000007          B        |L1.1960|
                  |L1.1928|
;;;695    		Temp = Temp + (buf[j] - 0x30) * dd;
000788  e7d40007          LDRB     r0,[r4,r7]
00078c  e2400030          SUB      r0,r0,#0x30
000790  e0266890          MLA      r6,r0,r8,r6
;;;696    		dd = dd / 10;
000794  e3a0100a          MOV      r1,#0xa
000798  e1a00008          MOV      r0,r8
00079c  ebfffffe          BL       __aeabi_idivmod
0007a0  e1a08000          MOV      r8,r0
0007a4  e2877001          ADD      r7,r7,#1              ;694
                  |L1.1960|
0007a8  e1570005          CMP      r7,r5                 ;694
0007ac  3afffff5          BCC      |L1.1928|
;;;697    		}
;;;698    	return Temp;
0007b0  e1a00006          MOV      r0,r6
0007b4  e8bd41f0          POP      {r4-r8,lr}
;;;699    }
0007b8  e12fff1e          BX       lr
;;;700    
                          ENDP

                  pickcsvdata PROC
;;;633    unsigned char * pickcsvdata(unsigned char *buf, unsigned int len, unsigned char endchar, unsigned char analysechar, unsigned int pos)
;;;634    {
0007bc  e92d4fff          PUSH     {r0-r11,lr}
0007c0  e24dd024          SUB      sp,sp,#0x24
0007c4  e1a04000          MOV      r4,r0
0007c8  e1a05001          MOV      r5,r1
0007cc  e1a06002          MOV      r6,r2
0007d0  e59d7058          LDR      r7,[sp,#0x58]
;;;635    	unsigned char bu[30];
;;;636    	unsigned int i, count, iStart, iEnd;
;;;637    
;;;638    	iStart = iEnd = count = 0;
0007d4  e3a00000          MOV      r0,#0
0007d8  e1a09000          MOV      r9,r0
0007dc  e1a0b000          MOV      r11,r0
0007e0  e1a0a000          MOV      r10,r0
;;;639    	//len = 30;//strlen(buf);
;;;640    	for (i = 0; i < len; i++)
0007e4  e3a08000          MOV      r8,#0
0007e8  ea00001a          B        |L1.2136|
                  |L1.2028|
;;;641    	{
;;;642    		if ((buf[i] == analysechar) || (buf[i] == endchar))
0007ec  e7d40008          LDRB     r0,[r4,r8]
0007f0  e59d1030          LDR      r1,[sp,#0x30]
0007f4  e1500001          CMP      r0,r1
0007f8  0a000002          BEQ      |L1.2056|
0007fc  e7d40008          LDRB     r0,[r4,r8]
000800  e1500006          CMP      r0,r6
000804  1a000012          BNE      |L1.2132|
                  |L1.2056|
;;;643    		{
;;;644    			if (pos == 0)
000808  e3570000          CMP      r7,#0
00080c  1a000002          BNE      |L1.2076|
;;;645    			{
;;;646    				iStart = 0;
000810  e3a0a000          MOV      r10,#0
;;;647    				iEnd = i;
000814  e1a0b008          MOV      r11,r8
;;;648    				break;
000818  ea000010          B        |L1.2144|
                  |L1.2076|
;;;649    			}
;;;650    			else  if (i == len - 1)
00081c  e2450001          SUB      r0,r5,#1
000820  e1500008          CMP      r0,r8
000824  1a000001          BNE      |L1.2096|
;;;651    			{
;;;652    				iEnd = i;
000828  e1a0b008          MOV      r11,r8
;;;653    				break;
00082c  ea00000b          B        |L1.2144|
                  |L1.2096|
;;;654    			}
;;;655    			else
;;;656    			{
;;;657    				if (count == pos - 1)
000830  e2470001          SUB      r0,r7,#1
000834  e1500009          CMP      r0,r9
000838  1a000000          BNE      |L1.2112|
;;;658    					iStart = i + 1;
00083c  e288a001          ADD      r10,r8,#1
                  |L1.2112|
;;;659    				if (count == pos)
000840  e1590007          CMP      r9,r7
000844  1a000001          BNE      |L1.2128|
;;;660    					{
;;;661    						iEnd = i;
000848  e1a0b008          MOV      r11,r8
;;;662    						break;
00084c  ea000003          B        |L1.2144|
                  |L1.2128|
;;;663    					}
;;;664    			}
;;;665    
;;;666    			count++;
000850  e2899001          ADD      r9,r9,#1
                  |L1.2132|
000854  e2888001          ADD      r8,r8,#1              ;640
                  |L1.2136|
000858  e1580005          CMP      r8,r5                 ;640
00085c  3affffe2          BCC      |L1.2028|
                  |L1.2144|
000860  e1a00000          MOV      r0,r0                 ;648
;;;667    		}
;;;668    
;;;669    	}
;;;670    	//if (i == len)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -