Blame view

Tangible/ethernet.h 4.16 KB
67b73333   amoreau   Ajout du squelette
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
  /*
  *
  @file		ethernet.h
  *
  */
  
  #ifndef _ETHERNET_H_
  #define _ETHERNET_H_
  
  
  /***************************************************
   * attribute for mcu ( types, ... ) 
   ***************************************************/
  //#include "mcu_define.h"
  #define __MCU_AVR__	1
  #define __MCU_TYPE__	__MCU_AVR__
  
  //---- Refer "Rom File Maker Manual Vx.x.pdf"
  #include <avr/pgmspace.h>
  
  #define	_ENDIAN_LITTLE_	0	/**<  This must be defined if system is little-endian alignment */
  #define	_ENDIAN_BIG_		1
  #define 	SYSTEM_ENDIAN		_ENDIAN_LITTLE_
  
  #define	MAX_SOCK_NUM		4	/**< Maxmium number of socket  */
  #define	CLK_CPU			F_CPU		/**< 8Mhz(for serial) */
  
  /* ## __DEF_IINCHIP_xxx__ : define option for iinchip driver *****************/
  #define __DEF_IINCHIP_DBG__ /* involve debug code in driver (socket.c) */
  //#define __DEF_IINCHIP_INT__ /**< involve interrupt service routine (socket.c) */
  //#define __DEF_IINCHIP_PPP__ /* involve pppoe routine (socket.c) */
                              /* If it is defined, the source files(md5.h,md5.c) must be included in your project.
                                 Otherwize, the source files must be removed in your project. */
  
  #define __DEF_IINCHIP_DIRECT_MODE__ 1
  #define __DEF_IINCHIP_INDIRECT_MODE__ 2
  #define __DEF_IINCHIP_SPI_MODE__ 3
  
  //#define __DEF_IINCHIP_BUS__ __DEF_IINCHIP_DIRECT_MODE__
  //#define __DEF_IINCHIP_BUS__ __DEF_IINCHIP_INDIRECT_MODE__
  #define __DEF_IINCHIP_BUS__ __DEF_IINCHIP_SPI_MODE__ /*Enable SPI_mode*/
  
  
  /**
  @brief	 __DEF_IINCHIP_MAP_xxx__ : define memory map for iinchip 
  */
  #define __DEF_IINCHIP_MAP_BASE__ 0x8000
  #if (__DEF_IINCHIP_BUS__ == __DEF_IINCHIP_DIRECT_MODE__)
   #define COMMON_BASE __DEF_IINCHIP_MAP_BASE__
  #else
   #define COMMON_BASE 0x0000
  #endif
  #define __DEF_IINCHIP_MAP_TXBUF__ (COMMON_BASE + 0x4000) /* Internal Tx buffer address of the iinchip */
  #define __DEF_IINCHIP_MAP_RXBUF__ (COMMON_BASE + 0x6000) /* Internal Rx buffer address of the iinchip */
  
  
  #if (__MCU_TYPE__ == __MCU_AVR__)
     #ifdef __DEF_IINCHIP_INT__
        // iinchip use external interrupt 4
        #define IINCHIP_ISR_DISABLE()	(EIMSK &= ~(0x10))
        #define IINCHIP_ISR_ENABLE()	(EIMSK |= 0x10)
        #define IINCHIP_ISR_GET(X)		(X = EIMSK)
        #define IINCHIP_ISR_SET(X)		(EIMSK = X)
     #else
        #define IINCHIP_ISR_DISABLE()
        #define IINCHIP_ISR_ENABLE()	
        #define IINCHIP_ISR_GET(X)
        #define IINCHIP_ISR_SET(X)
     #endif
  #else
  #error "unknown MCU type"
  #endif
  
  #ifndef NULL
  #define NULL		((void *) 0)
  #endif
  
  //typedef enum { false, true } bool;
  
  #ifndef _SIZE_T
  #define _SIZE_T
  typedef unsigned int size_t;
  #endif
  
  /**
   * The 8-bit signed data type.
   */
  typedef char int8;
  /**
   * The volatile 8-bit signed data type.
   */
  typedef volatile char vint8;
  /**
   * The 8-bit unsigned data type.
   */
  typedef unsigned char uint8;
  /**
   * The volatile 8-bit unsigned data type.
   */
  typedef volatile unsigned char vuint8;
  
  /**
   * The 16-bit signed data type.
   */
  typedef int int16;
  /**
   * The volatile 16-bit signed data type.
   */
  typedef volatile int vint16;
  /**
   * The 16-bit unsigned data type.
   */
  typedef unsigned int uint16;
  /**
   * The volatile 16-bit unsigned data type.
   */
  typedef volatile unsigned int vuint16;
  /**
   * The 32-bit signed data type.
   */
  typedef long int32;
  /**
   * The volatile 32-bit signed data type.
   */
  typedef volatile long vint32;
  /**
   * The 32-bit unsigned data type.
   */
  typedef unsigned long uint32;
  /**
   * The volatile 32-bit unsigned data type.
   */
  typedef volatile unsigned long vuint32;
  
  /* bsd */
  typedef uint8			u_char;		/**< 8-bit value */
  typedef uint8 			SOCKET;
  typedef uint16			u_short;	/**< 16-bit value */
  typedef uint16			u_int;		/**< 16-bit value */
  typedef uint32			u_long;		/**< 32-bit value */
  
  typedef union _un_l2cval {
  	u_long	lVal;
  	u_char	cVal[4];
  }un_l2cval;
  
  typedef union _un_i2cval {
  	u_int	iVal;
  	u_char	cVal[2];
  }un_i2cval;
  
  
  /** global define */
  #define FW_VERSION		0x01010000	/* System F/W Version : 1.1.0.0	*/
  #define HW_VERSION	       0x01000000
  
  
  #define TX_RX_MAX_BUF_SIZE	2048
  #define TX_BUF	0x1100
  #define RX_BUF	(TX_BUF+TX_RX_MAX_BUF_SIZE)
  
  #define UART_DEVICE_CNT		1	/**< UART device number */
  /* #define SUPPORT_UART_ONE */
  
  void ethernet_init(uint8_t *mac,uint8_t *ip,uint8_t *gateway,uint8_t *mask);
  
  #endif		/* _ETHERNET_H_ */