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

📄 main.lst

📁 ENC28J60 System HTTP
💻 LST
📖 第 1 页 / 共 3 页
字号:
   1               		.file	"main.c"
   2               	__SREG__ = 0x3f
   3               	__SP_H__ = 0x3e
   4               	__SP_L__ = 0x3d
   5               	__CCP__  = 0x34
   6               	__tmp_reg__ = 0
   7               	__zero_reg__ = 1
   8               		.global __do_copy_data
   9               		.global __do_clear_bss
  11               		.text
  12               	.Ltext0:
 109               		.data
 110               	.LC0:
 111 0000 3F3F 3F20 		.string	"??? : ip proto "
 111      3A20 6970 
 111      2070 726F 
 111      746F 2000 
 112               		.text
 114               	.global	main
 116               	main:
   1:main.c        **** /*
   2:main.c        **** ,-----------------------------------------------------------------------------------------.
   3:main.c        **** | main
   4:main.c        **** |-----------------------------------------------------------------------------------------
   5:main.c        **** | this file implements the main loop of the whole webserver project
   6:main.c        **** |
   7:main.c        **** | Author   : {{removed according to contest rules}}
   8:main.c        **** |            -> circuitcellar.com avr design contest 2006
   9:main.c        **** |            -> Entry #AT2616
  10:main.c        **** |
  11:main.c        **** |-----------------------------------------------------------------------------------------
  12:main.c        **** | License:
  13:main.c        **** | This program is free software; you can redistribute it and/or modify it under
  14:main.c        **** | the terms of the GNU General Public License as published by the Free Software
  15:main.c        **** | Foundation; either version 2 of the License, or (at your option) any later
  16:main.c        **** | version.
  17:main.c        **** | This program is distributed in the hope that it will be useful, but
  18:main.c        **** |
  19:main.c        **** | WITHOUT ANY WARRANTY;
  20:main.c        **** |
  21:main.c        **** | without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  22:main.c        **** | PURPOSE. See the GNU General Public License for more details.
  23:main.c        **** |
  24:main.c        **** | You should have received a copy of the GNU General Public License along with
  25:main.c        **** | this program; if not, write to the Free Software Foundation, Inc., 51
  26:main.c        **** | Franklin St, Fifth Floor, Boston, MA 02110, USA
  27:main.c        **** |
  28:main.c        **** | http://www.gnu.de/gpl-ger.html
  29:main.c        **** `-----------------------------------------------------------------------------------------*/
  30:main.c        **** #include "main.h"
  31:main.c        **** 
  32:main.c        **** #define F_CPU F_OSC
  33:main.c        **** 
  34:main.c        **** #include <avr/io.h>
  35:main.c        **** #include <stdint.h>
  36:main.c        **** #include <stdio.h>
  37:main.c        **** #include <avr/delay.h>
  38:main.c        **** #include <stdint.h>
  39:main.c        **** #include "update/flashloader.h"
  40:main.c        **** 
  41:main.c        **** 
  42:main.c        **** #include "io/dataflash.h"
  43:main.c        **** #include "io/plot.h"
  44:main.c        **** #include "io/filesystem.h"
  45:main.c        **** #include "io/lm75.h"
  46:main.c        **** #include "io/mca25.h"
  47:main.c        **** #include "io/mpf10.h"
  48:main.c        **** #include "io/led.h"
  49:main.c        **** #include "io/softuart.h"
  50:main.c        **** 
  51:main.c        **** //ACTIVATE DEBUG by editing this file:
  52:main.c        **** #include "debug.h"
  53:main.c        **** 
  54:main.c        **** #include "io/clock.h"
  55:main.c        **** #include "io/plot.h"
  56:main.c        **** #include "io/servo.h"
  57:main.c        **** 
  58:main.c        **** #include "net/mynic.h"
  59:main.c        **** #include "net/icmp.h"
  60:main.c        **** #include "net/ip.h"
  61:main.c        **** #include "net/arp.h"
  62:main.c        **** #include "net/tcp.h"
  63:main.c        **** #include "net/httpd.h"
  64:main.c        **** #include "net/ntp_client.h"
  65:main.c        **** #include "net/http_client.h"
  66:main.c        **** #include "net/base64.h"
  67:main.c        **** #include "util/string.h"
  68:main.c        **** #include "main.h"
  69:main.c        **** 
  70:main.c        **** //interrupt:
  71:main.c        **** #include <avr/interrupt.h>
  72:main.c        **** #include <inttypes.h>
  73:main.c        **** #include <avr/signal.h>
  74:main.c        **** #define NOP() asm volatile ("nop"::);
  75:main.c        **** #include "config.h"
  76:main.c        **** 
  77:main.c        **** //global ethernetbuffer
  78:main.c        **** unsigned char buffer[NIC_BUFFERSIZE];
  79:main.c        **** 
  80:main.c        **** int main(void){
 117               	1
 118               	.LM0:
 119               	.LFBB1:
 120 0000 EF92      		push r14
 121 0002 FF92      		push r15
 122 0004 1F93      		push r17
 123 0006 CF93      		push r28
 124 0008 DF93      		push r29
 125               	/* prologue: function */
 126               	/* frame size = 0 */
  81:main.c        **** ;
  82:main.c        **** 	PORTB = 0xFF;
  83:main.c        **** 
  84:main.c        **** 	//flash status led 5 times
  85:main.c        **** 	led_init();
 127               	,0,85,.LM1-.LFBB1
 128               	.LM1:
 129 000a 8FEF      		ldi r24,lo8(-1)
 130 000c 87BB      		out 55-32,r24
  86:main.c        **** ;
 131               	abn	68,0,86,.LM2-.LFBB1
 132               	.LM2:
 133 000e 84BB      		out 52-32,r24
  87:main.c        **** NOP() asm volatile ("nop"::);
 134               	tabn	68,0,87,.LM3-.LFBB1
 135               	.LM3:
 136 0010 88BB      		out 56-32,r24
  88:main.c        **** .h"
  89:main.c        **** #include "main.h"
  90:main.c        **** 
 137               	tabn	68,0,90,.LM4-.LFBB1
 138               	.LM4:
 139 0012 A39A      		sbi 52-32,3
 140 0014 20E0      		ldi r18,lo8(0)
 141 0016 30E0      		ldi r19,hi8(0)
 142               	.LBB30:
 143               	.LBB31:
 144               	.LBB32:
 145               	.LBB33:
 146               	.LBB34:
 147               	.LBB35:
 149               	.Ltext1:
   1:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h **** /* Copyright (c) 2002, Marek Michalkiewicz
   2:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****    Copyright (c) 2007 Joerg Wunsch
   3:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****    All rights reserved.
   4:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h **** 
   5:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****    Redistribution and use in source and binary forms, with or without
   6:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****    modification, are permitted provided that the following conditions are met:
   7:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h **** 
   8:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****    * Redistributions of source code must retain the above copyright
   9:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****      notice, this list of conditions and the following disclaimer.
  10:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h **** 
  11:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****    * Redistributions in binary form must reproduce the above copyright
  12:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****      notice, this list of conditions and the following disclaimer in
  13:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****      the documentation and/or other materials provided with the
  14:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****      distribution.
  15:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h **** 
  16:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****    * Neither the name of the copyright holders nor the names of
  17:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****      contributors may be used to endorse or promote products derived
  18:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****      from this software without specific prior written permission.
  19:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h **** 
  20:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  21:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  22:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  23:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****   ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
  24:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  25:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  26:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  27:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  28:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  29:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  30:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****   POSSIBILITY OF SUCH DAMAGE. */
  31:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h **** 
  32:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h **** /* $Id: delay_basic.h,v 1.1 2007/05/13 21:23:20 joerg_wunsch Exp $ */
  33:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h **** 
  34:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h **** #ifndef _UTIL_DELAY_BASIC_H_
  35:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h **** #define _UTIL_DELAY_BASIC_H_ 1
  36:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h **** 
  37:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h **** #include <inttypes.h>
  38:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h **** 
  39:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h **** /** \file */
  40:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h **** /** \defgroup util_delay_basic <util/delay_basic.h>: Basic busy-wait delay loops
  41:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****     \code
  42:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****     #include <util/delay_basic.h>
  43:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****     \endcode
  44:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h **** 
  45:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****     The functions in this header file implement simple delay loops
  46:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****     that perform a busy-waiting.  They are typically used to
  47:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****     facilitate short delays in the program execution.  They are
  48:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****     implemented as count-down loops with a well-known CPU cycle
  49:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****     count per loop iteration.  As such, no other processing can
  50:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****     occur simultaneously.  It should be kept in mind that the
  51:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****     functions described here do not disable interrupts.
  52:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h **** 
  53:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****     In general, for long delays, the use of hardware timers is
  54:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****     much preferrable, as they free the CPU, and allow for
  55:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****     concurrent processing of other events while the timer is
  56:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****     running.  However, in particular for very short delays, the
  57:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****     overhead of setting up a hardware timer is too much compared
  58:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****     to the overall delay time.
  59:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h **** 
  60:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****     Two inline functions are provided for the actual delay algorithms.
  61:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h **** 
  62:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h **** */
  63:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h **** 
  64:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h **** #if !defined(__DOXYGEN__)
  65:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h **** static inline void _delay_loop_1(uint8_t __count) __attribute__((always_inline));
  66:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h **** static inline void _delay_loop_2(uint16_t __count) __attribute__((always_inline));
  67:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h **** #endif
  68:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h **** 
  69:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h **** /** \ingroup util_delay_basic
  70:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h **** 
  71:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****     Delay loop using an 8-bit counter \c __count, so up to 256
  72:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****     iterations are possible.  (The value 256 would have to be passed
  73:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****     as 0.)  The loop executes three CPU cycles per iteration, not
  74:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****     including the overhead the compiler needs to setup the counter
  75:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****     register.
  76:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h **** 
  77:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****     Thus, at a CPU speed of 1 MHz, delays of up to 768 microseconds
  78:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****     can be achieved.
  79:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h **** */
  80:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h **** void
  81:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h **** _delay_loop_1(uint8_t __count)
  82:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h **** {
  83:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h **** 	__asm__ volatile (
  84:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h **** 		"1: dec %0" "\n\t"
  85:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h **** 		"brne 1b"
  86:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h **** 		: "=r" (__count)
  87:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h **** 		: "0" (__count)
  88:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h **** 	);
  89:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h **** }
  90:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h **** 
  91:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h **** /** \ingroup util_delay_basic
  92:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h **** 
  93:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****     Delay loop using a 16-bit counter \c __count, so up to 65536
  94:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****     iterations are possible.  (The value 65536 would have to be
  95:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****     passed as 0.)  The loop executes four CPU cycles per iteration,
  96:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****     not including the overhead the compiler requires to setup the
  97:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****     counter register pair.
  98:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h **** 
  99:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****     Thus, at a CPU speed of 1 MHz, delays of up to about 262.1
 100:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****     milliseconds can be achieved.
 101:c:/winavr-20081205/lib/gcc/../../avr/include/util/delay_basic.h ****  */

⌨️ 快捷键说明

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