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

📄 uipavr.lst

📁 uIP是免费的TCP/IP协议栈,我们将它移植到我们的AVR以太网开发板中
💻 LST
📖 第 1 页 / 共 5 页
字号:
(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 + -