📄 uipavr.lst
字号:
(0185) 0xe8, 00, 00, 00, 0x44, 0x7, 00, 00, 0x20, 0x3a,
(0186) 00, 00, 00, 0x44, 0x7, 00, 00, 0x20, 0x3a, 00,
(0187) 00, 00, 0xd1, 0x1, 00, 00, 0x20, 0x3a, 00, 00,
(0188) 0x80, 0x81, 0x98, 0x5b, 0x2, 0xe0, 0x16, 0xdb, 0xf5, 0xa1,
(0189) 0xf6, 0xfb, 0x21, 0xf4, 0x33, 0x7f, 0xb7, 0x39, 0xb4, 0xbb,
(0190) 0x43, 0x88, 0x9f, 0xbe, 0x5c, 0x94, 0x79, 0xd2, 0xfc, 0xea,
(0191) 0x7d, 0xdf, 0x6e, 0xfc, 0xc9, 0x25, 0x9e, 0xe2, 0xb9, 0xbf,
(0192) 0xf9, 0x75, 0xc7, 0xa4, 0xf8, 0x91, 0x3b, 0x89, 0x1, 0xe8,
(0193) 0x8d, 0x77, 0x3a, 00, 00, 00, 0xd1, 0x1, 0x43, 0xd3,
(0194) 0xd7, 0xd5, 0x7c, 0xeb, 0x2, 00, 0x88, 0xe, 00, 0xbe,
(0195) 0x8e, 0x31, 0xaf, 0xb4, 00, 0x88, 0xe, 00, 00, 00,
(0196) 0xd1, 0x1, 00, 00, 0x88, 0xe, 00, 00, 00, 0xd1,
(0197) 0x1, 00, 00, 0x88, 0xe, 00, 00, 0x40, 0x74, 00,
(0198) 00, 00, 0x88, 0xe, 00, 00, 0x40, 0x74, 00, 00,
(0199) 00, 0xa2, 0x3, 00, 00, 0x60, 0x34, 0xd1, 0x11, 0x82,
(0200) 0x5, 0x7, 00, 00, 0xd1, 0x1, 0x43, 0x21, 0x52, 0x1,
(0201) 00, 0x44, 0x7, 00, 00, 0xc0, 0x57, 0xe6, 0x96, 00,
(0202) 0x18, 0xa3, 0xa2, 0xcc, 0x5a, 0xdd, 0xfe, 0xf4, 0xe3, 0x9d,
(0203) 0xd5, 0x66, 0x7f, 0x7e, 0x83, 0x18, 0xaf, 0x3c, 0x40, 0xb7,
(0204) 0xdb, 0xbf, 0xfb, 0xbb, 0x4f, 0xba, 0xff, 0xe2, 0x25, 0x4f,
(0205) 0x9b, 0xff, 0xa7, 0xe1, 0xfc, 0xb, 0xfb, 0x5d, 0x3c, 0xe7,
(0206) 0xdf, 0xbe, 0xff, 0xe1, 0xca, 0x65, 0xb1, 0x3e, 0xe6, 0x5f,
(0207) 0x3d, 0xff, 0x12, 0xe7, 0x3, 0x4c, 0x8d, 0x77, 0x3a, 00,
(0208) 00, 00, 0xd1, 0x1, 00, 00, 0x88, 0xe, 00, 00,
(0209) 00, 0xd1, 0x1, 00, 00, 0x88, 0xe, 00, 00, 0x40,
(0210) 0x74, 00, 00, 00, 0x88, 0xe, 00, 00, 0x40, 0x74,
(0211) 00, 00, 00, 0xa2, 0x3, 00, 00, 0x40, 0x74, 0x34,
(0212) 0x13, 0xe4, 0x15, 00, 00, 0x88, 0xe, 00, 00, 0x40,
(0213) 0x74, 00, 00, 00, 0x88, 0xe, 00, 00, 0x40, 0x74,
(0214) 00, 00, 00, 0x13, 0xf1, 0xf, 0x24, 0xa1, 0x5c, 0xab,
(0215) 0x41, 0xd8, 0x92, 0xa4, 00, 00, 00, 00, 0x49, 0x45,
(0216) 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
(0217) '<','e','n','d','>','\0'
(0218) };
(0219)
(0220) #pragma data:data
(0221)
(0222)
(0223) void load_web_page(const char *webfile)
(0224) {
(0225) unsigned int i=0;
1452 24AA CLR R10
1453 24BB CLR R11
(0226) //for(;webfile[i]!='\0';i++)
(0227) for(;(webfile[i]!='<')||(webfile[i+1]!='e')||(webfile[i+2]!='n')||(webfile[i+3]!='d')||(webfile[i+4]!='>');i++)
1454 C00F RJMP 0x1464
(0228) {
(0229) mypage[i+http_head_len]=webfile[i];
1455 01F5 MOVW R30,R10
1456 0FE0 ADD R30,R16
1457 1FF1 ADC R31,R17
1458 91E4 LPM R30,0(Z)
1459 E189 LDI R24,0x19
145A E191 LDI R25,0x11
145B 01D5 MOVW R26,R10
145C 5AA4 SUBI R26,0xA4
145D 4FBF SBCI R27,0xFF
145E 0FA8 ADD R26,R24
145F 1FB9 ADC R27,R25
1460 93EC ST R30,0(X)
1461 01C5 MOVW R24,R10
1462 9601 ADIW R24,1
1463 015C MOVW R10,R24
1464 01F5 MOVW R30,R10
1465 0FE0 ADD R30,R16
1466 1FF1 ADC R31,R17
1467 91E4 LPM R30,0(Z)
1468 33EC CPI R30,0x3C
1469 F759 BNE 0x1455
146A 01F5 MOVW R30,R10
146B 9631 ADIW R30,1
146C 0FE0 ADD R30,R16
146D 1FF1 ADC R31,R17
146E 91E4 LPM R30,0(Z)
146F 36E5 CPI R30,0x65
1470 F721 BNE 0x1455
1471 01F5 MOVW R30,R10
1472 9632 ADIW R30,2
1473 0FE0 ADD R30,R16
1474 1FF1 ADC R31,R17
1475 91E4 LPM R30,0(Z)
1476 36EE CPI R30,0x6E
1477 F009 BEQ 0x1479
1478 CFDC RJMP 0x1455
1479 01F5 MOVW R30,R10
147A 9633 ADIW R30,3
147B 0FE0 ADD R30,R16
147C 1FF1 ADC R31,R17
147D 91E4 LPM R30,0(Z)
147E 36E4 CPI R30,0x64
147F F009 BEQ 0x1481
1480 CFD4 RJMP 0x1455
1481 01F5 MOVW R30,R10
1482 9634 ADIW R30,4
1483 0FE0 ADD R30,R16
1484 1FF1 ADC R31,R17
1485 91E4 LPM R30,0(Z)
1486 33EE CPI R30,0x3E
1487 F009 BEQ 0x1489
1488 CFCC RJMP 0x1455
1489 940E2E5A CALL pop_gset3x
148B 9508 RET
_fs_strcmp:
i --> R10
str2 --> R18
str1 --> R16
148C 940E2E6C CALL push_gset3x
FILE: D:\hexok项目\AVRNET项目\AVRNET光盘\AVRuIP\fs.c
(0001) /**
(0002) * \addtogroup httpd
(0003) * @{
(0004) */
(0005)
(0006) /**
(0007) * \file
(0008) * HTTP server read-only file system code.
(0009) * \author Adam Dunkels <adam@dunkels.com>
(0010) *
(0011) * A simple read-only filesystem.
(0012) */
(0013)
(0014) /*
(0015) * Copyright (c) 2001, Swedish Institute of Computer Science.
(0016) * All rights reserved.
(0017) *
(0018) * Redistribution and use in source and binary forms, with or without
(0019) * modification, are permitted provided that the following conditions
(0020) * are met:
(0021) * 1. Redistributions of source code must retain the above copyright
(0022) * notice, this list of conditions and the following disclaimer.
(0023) * 2. Redistributions in binary form must reproduce the above copyright
(0024) * notice, this list of conditions and the following disclaimer in the
(0025) * documentation and/or other materials provided with the distribution.
(0026) * 3. Neither the name of the Institute nor the names of its contributors
(0027) * may be used to endorse or promote products derived from this software
(0028) * without specific prior written permission.
(0029) *
(0030) * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
(0031) * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
(0032) * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
(0033) * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
(0034) * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
(0035) * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
(0036) * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
(0037) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
(0038) * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
(0039) * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
(0040) * SUCH DAMAGE.
(0041) *
(0042) * This file is part of the lwIP TCP/IP stack.
(0043) *
(0044) * Author: Adam Dunkels <adam@sics.se>
(0045) *
(0046) * $Id: fs.c,v 1.7.2.3 2003/10/07 13:22:27 adam Exp $
(0047) */
(0048)
(0049) #include "uip.h"
(0050) #include "httpd.h"
(0051) #include "fs.h"
(0052) #include "fsdata.h"
(0053)
(0054) #define NULL (void *)0
(0055) #include "fsdata.c"
(0056)
(0057) #ifdef FS_STATISTICS
(0058) #if FS_STATISTICS == 1
(0059) static u16_t count[FS_NUMFILES];
(0060) #endif /* FS_STATISTICS */
(0061) #endif /* FS_STATISTICS */
(0062)
(0063) //文件索引表
(0064) struct file_index_table
(0065) {
(0066) unsigned char filename[10];
(0067) char *data;
(0068) };file_index[FS_NUMFILES];
(0069)
(0070) /*-----------------------------------------------------------------------------------*/
(0071) static u8_t
(0072) fs_strcmp(char *str1,char *str2)
(0073) {
(0074) u8_t i;
(0075)
(0076) i = 0;
148E 24AA CLR R10
(0077) loop:
(0078) if(str2[i] == 0 ||
148F 2DEA MOV R30,R10
1490 27FF CLR R31
1491 0FE2 ADD R30,R18
1492 1FF3 ADC R31,R19
1493 8020 LDD R2,Z+0
1494 2022 TST R2
1495 F059 BEQ 0x14A1
1496 2DEA MOV R30,R10
1497 27FF CLR R31
1498 0FE0 ADD R30,R16
1499 1FF1 ADC R31,R17
149A 8020 LDD R2,Z+0
149B 2433 CLR R3
149C 2D82 MOV R24,R2
149D 308D CPI R24,0xD
149E F011 BEQ 0x14A1
149F 308A CPI R24,0xA
14A0 F411 BNE 0x14A3
(0079) str1[i] == '\r' ||
(0080) str1[i] == '\n') {
(0081) return 0;
14A1 2700 CLR R16
14A2 C010 RJMP 0x14B3
(0082) }
(0083)
(0084) if(str1[i] != str2[i]) {
14A3 2DEA MOV R30,R10
14A4 27FF CLR R31
14A5 0FE2 ADD R30,R18
14A6 1FF3 ADC R31,R19
14A7 8020 LDD R2,Z+0
14A8 2DEA MOV R30,R10
14A9 27FF CLR R31
14AA 0FE0 ADD R30,R16
14AB 1FF1 ADC R31,R17
14AC 8030 LDD R3,Z+0
14AD 1432 CP R3,R2
14AE F011 BEQ 0x14B1
(0085) return 1;
14AF E001 LDI R16,1
14B0 C002 RJMP 0x14B3
(0086) }
(0087) ++i;
14B1 94A3 INC R10
(0088) goto loop;
14B2 CFDC RJMP 0x148F
14B3 940E2E5A CALL pop_gset3x
14B5 9508 RET
_fs_open:
i --> R10
f --> R12
file --> R14
name --> Y+6
14B6 940E2E0B CALL push_arg4
14B8 940E2E73 CALL push_gset5x
14BA 0179 MOVW R14,R18
(0089) }
(0090) /*-----------------------------------------------------------------------------------*/
(0091) int
(0092) fs_open(char *name, struct fs_file *file)
(0093) {
(0094) #ifdef FS_STATISTICS
(0095) #if FS_STATISTICS == 1
(0096) u16_t i = 0;
14BB 24AA CLR R10
14BC 24BB CLR R11
(0097) #endif /* FS_STATISTICS */
(0098) #endif /* FS_STATISTICS */
(0099) struct fsdata_file_noconst *f;
(0100)
(0101) for(f = (struct fsdata_file_noconst *)FS_ROOT;f != NULL;f = (struct fsdata_file_noconst *)f->next) {
14BD EA8D LDI R24,0xAD
14BE E298 LDI R25,0x28
14BF 016C MOVW R12,R24
14C0 C032 RJMP 0x14F3
(0102)
(0103) if(fs_strcmp(name, f->name) == 0) {
14C1 01F6 MOVW R30,R12
14C2 8122 LDD R18,Z+2
14C3 8133 LDD R19,Z+3
14C4 810E LDD R16,Y+6
14C5 811F LDD R17,Y+7
14C6 DFC5 RCALL _fs_strcmp
14C7 2300 TST R16
14C8 F009 BEQ 0x14CA
14C9 C023 RJMP 0x14ED
(0104) load_web_page(f->constdata);
14CA 01F6 MOVW R30,R12
14CB 8500 LDD R16,Z+8
14CC 8511 LDD R17,Z+9
14CD DF82 RCALL _load_web_page
(0105) file->data = f->data;
14CE 01F6 MOVW R30,R12
14CF 8024 LDD R2,Z+4
14D0 8035 LDD R3,Z+5
14D1 01F7 MOVW R30,R14
14D2 8231 STD Z+1,R3
14D3 8220 STD Z+0,R2
(0106) file->len = f->len;
14D4 01F6 MOVW R30,R12
14D5 8026 LDD R2,Z+6
14D6 8037 LDD R3,Z+7
14D7 01F7 MOVW R30,R14
14D8 8233 STD Z+3,R3
14D9 8222 STD Z+2,R2
(0107) #ifdef FS_STATISTICS
(0108) #if FS_STATISTICS == 1
(0109) ++count[i];
14DA E002 LDI R16,2
14DB E010 LDI R17,0
14DC 0195 MOVW R18,R10
14DD 940E2E4A CALL empy16s
14DF 0118 MOVW R2,R16
14E0 E080 LDI R24,0
14E1 E29A LDI R25,0x2A
14E2 0E28 ADD R2,R24
14E3 1E39 ADC R3,R25
14E4 01F1 MOVW R30,R2
14E5 8180 LDD R24,Z+0
14E6 8191 LDD R25,Z+1
14E7 9601 ADIW R24,1
14E8 8391 STD Z+1,R25
14E9 8380 STD Z+0,R24
(0110) #endif /* FS_STATISTICS */
(0111) #endif /* FS_STATISTICS */
(0112) return 1;
14EA E001 LDI R16,1
14EB E010 LDI R17,0
14EC C00E RJMP 0x14FB
(0113) }
(0114) #ifdef FS_STATISTICS
(0115) #if FS_STATISTICS == 1
(0116) ++i;
14ED 01C5 MOVW R24,R10
14EE 9601 ADIW R24,1
14EF 015C MOVW R10,R24
14F0 01F6 MOVW R30,R12
14F1 80C0 LDD R12,Z+0
14F2 80D1 LDD R13,Z+1
14F3 20CC TST R12
14F4 F009 BEQ 0x14F6
14F5 CFCB RJMP 0x14C1
14F6 20DD TST R13
14F7 F009 BEQ 0x14F9
14F8 CFC8 RJMP 0x14C1
(0117) #endif /* FS_STATISTICS */
(0118) #endif /* FS_STATISTICS */
(0119)
(0120) }
(0121) return 0;
14F9 2700 CLR R16
14FA 2711 CLR R17
14FB 940E2E69 CALL pop_gset5x
14FD 9624 ADIW R28,4
14FE 9508 RET
_fs_init:
i --> R10
14FF 940E2E6C CALL push_gset3x
(0122) }
(0123) /*-----------------------------------------------------------------------------------*/
(0124) void
(0125) fs_init(void)
(0126) {
(0127) #ifdef FS_STATISTICS
(0128) #if FS_STATISTICS == 1
(0129) u16_t i;
(0130) for(i = 0; i < FS_NUMFILES; i++) {
1501 24AA CLR R10
1502 24BB CLR R11
1503 C011 RJMP 0x1515
(0131) count[i] = 0;
1504 E002 LDI R16,2
1505 E010 LDI R17,0
1506 0195 MOVW R18,R10
1507 940E2E4A CALL empy16s
1509 01F8 MOVW R30,R16
150A E080 LDI R24,0
150B E29A LDI R25,0x2A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -