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

📄 tcpip.i

📁 msp430 cs8900a msp430 servermsp430 servermsp430 servermsp430 servermsp430 server
💻 I
📖 第 1 页 / 共 4 页
字号:
__no_init volatile unsigned short TBCCTL5 @ (0x018C);
__no_init volatile unsigned short TBCCTL6 @ (0x018E);
__no_init volatile unsigned short TBR @ (0x0190);
__no_init volatile unsigned short TBCCR0 @ (0x0192);
__no_init volatile unsigned short TBCCR1 @ (0x0194);
__no_init volatile unsigned short TBCCR2 @ (0x0196);
__no_init volatile unsigned short TBCCR3 @ (0x0198);
__no_init volatile unsigned short TBCCR4 @ (0x019A);
__no_init volatile unsigned short TBCCR5 @ (0x019C);
__no_init volatile unsigned short TBCCR6 @ (0x019E);




 






 

__no_init volatile unsigned char DCOCTL @ (0x0056);
__no_init volatile unsigned char BCSCTL1 @ (0x0057);
__no_init volatile unsigned char BCSCTL2 @ (0x0058);










 

__no_init volatile unsigned short FCTL1 @ (0x0128);
__no_init volatile unsigned short FCTL2 @ (0x012A);
__no_init volatile unsigned short FCTL3 @ (0x012C);








 

__no_init volatile unsigned char CACTL1 @ (0x0059);
__no_init volatile unsigned char CACTL2 @ (0x005A);
__no_init volatile unsigned char CAPD @ (0x005B);







 

__no_init volatile unsigned short ADC12CTL0 @ (0x01A0);
__no_init volatile unsigned short ADC12CTL1 @ (0x01A2);
__no_init volatile unsigned short ADC12IFG @ (0x01A4);
__no_init volatile unsigned short ADC12IE @ (0x01A6);
__no_init volatile unsigned short ADC12IV @ (0x01A8);

__no_init volatile unsigned short ADC12MEM0 @ (0x0140);
__no_init volatile unsigned short ADC12MEM1 @ (0x0142);
__no_init volatile unsigned short ADC12MEM2 @ (0x0144);
__no_init volatile unsigned short ADC12MEM3 @ (0x0146);
__no_init volatile unsigned short ADC12MEM4 @ (0x0148);
__no_init volatile unsigned short ADC12MEM5 @ (0x014A);
__no_init volatile unsigned short ADC12MEM6 @ (0x014C);
__no_init volatile unsigned short ADC12MEM7 @ (0x014E);
__no_init volatile unsigned short ADC12MEM8 @ (0x0150);
__no_init volatile unsigned short ADC12MEM9 @ (0x0152);
__no_init volatile unsigned short ADC12MEM10 @ (0x0154);
__no_init volatile unsigned short ADC12MEM11 @ (0x0156);
__no_init volatile unsigned short ADC12MEM12 @ (0x0158);
__no_init volatile unsigned short ADC12MEM13 @ (0x015A);
__no_init volatile unsigned short ADC12MEM14 @ (0x015C);
__no_init volatile unsigned short ADC12MEM15 @ (0x015E);

__no_init volatile unsigned char ADC12MCTL0 @ (0x0080);
__no_init volatile unsigned char ADC12MCTL1 @ (0x0081);
__no_init volatile unsigned char ADC12MCTL2 @ (0x0082);
__no_init volatile unsigned char ADC12MCTL3 @ (0x0083);
__no_init volatile unsigned char ADC12MCTL4 @ (0x0084);
__no_init volatile unsigned char ADC12MCTL5 @ (0x0085);
__no_init volatile unsigned char ADC12MCTL6 @ (0x0086);
__no_init volatile unsigned char ADC12MCTL7 @ (0x0087);
__no_init volatile unsigned char ADC12MCTL8 @ (0x0088);
__no_init volatile unsigned char ADC12MCTL9 @ (0x0089);
__no_init volatile unsigned char ADC12MCTL10 @ (0x008A);
__no_init volatile unsigned char ADC12MCTL11 @ (0x008B);
__no_init volatile unsigned char ADC12MCTL12 @ (0x008C);
__no_init volatile unsigned char ADC12MCTL13 @ (0x008D);
__no_init volatile unsigned char ADC12MCTL14 @ (0x008E);
__no_init volatile unsigned char ADC12MCTL15 @ (0x008F);

 



 


 





 





 
#pragma language=default



extern void DelayCycles(unsigned int Count);
extern void WriteDWBE(unsigned char *Add, unsigned long Data);


















                                                 
                                                 



























































typedef struct                                   
{
  unsigned int Addr;                             
  unsigned int Data;
} TInitSeq;


extern const unsigned int MyMAC[];               


void Init8900(void);
void Write8900(unsigned char Address, unsigned int Data);
void WriteFrame8900(unsigned int Data);
unsigned int Read8900(unsigned char Address);
unsigned int ReadFrame8900(void);
unsigned int ReadHB1ST8900(unsigned char Address);
unsigned int ReadFrameBE8900(void);
void CopyToFrame8900(void *Source, unsigned int Size);
void CopyFromFrame8900(void *Dest, unsigned int Size);
void DummyReadFrame8900(unsigned int Size);
void RequestSend(unsigned int FrameSize);
unsigned int Rdy4Tx(void);



















                                                 
                                                 

                                                 
                                                 
                                        
                                                 



























typedef enum                                     
{                                                
  CLOSED,                                        
  LISTENING,
  SYN_SENT,
  SYN_RECD,
  ESTABLISHED,
  FIN_WAIT_1,
  FIN_WAIT_2,
  CLOSE_WAIT,
  CLOSING,
  LAST_ACK,
  TIME_WAIT
} TTCPStateMachine;

typedef enum                                     
{                                                
  ARP_REQUEST,                                   
  TCP_SYN_FRAME,
  TCP_SYN_ACK_FRAME,
  TCP_FIN_FRAME,
  TCP_DATA_FRAME
} TLastFrameSent;









void TCPLowLevelInit(void);                      
void TCPPassiveOpen(void);                       
void TCPActiveOpen(void);                        
void TCPClose(void);                             
void TCPReleaseRxBuffer(void);                   
void TCPTransmitTxBuffer(void);                  
void DoNetworkStuff(void);                       


extern const unsigned int MyIP[];                
extern const unsigned int SubnetMask[];          
extern const unsigned int GatewayIP[];           



extern unsigned char SocketStatus;               
extern unsigned int TCPLocalPort;                
extern unsigned int TCPRemotePort;
extern unsigned int RemoteMAC[3];                
extern unsigned int RemoteIP[2];                 
extern unsigned int TCPRxDataCount;              
extern unsigned int TCPTxDataCount;              
extern unsigned int TxFrame1Mem[];               
extern unsigned int RxTCPBufferMem[];            






const unsigned int MyIP[] =                      
{
  192 + (unsigned int)(168 << 8),
  0 + (unsigned int)(30 << 8)
};

const unsigned int SubnetMask[] =                
{
  255 + (unsigned int)(255 << 8),
  255 + (unsigned int)(0 << 8)
};

const unsigned int GatewayIP[] =                 
{
  192 + (unsigned int)(168 << 8),
  0 + (unsigned int)(1 << 8)
};


static TTCPStateMachine TCPStateMachine;         
static TLastFrameSent LastFrameSent;             

static unsigned int ISNGenHigh;                  
static unsigned long TCPSeqNr;                   
static unsigned long TCPUNASeqNr;                
                                                 
static unsigned long TCPAckNr;                   
                                                 
static unsigned char TCPTimer;                   
static unsigned char RetryCounter;               

static unsigned int TxFrame1Size;                
static unsigned char TxFrame2Size;               
static unsigned char TransmitControl;
static unsigned char TCPFlags;
unsigned int TCPRxDataCount;                     
unsigned int TCPTxDataCount;                     
unsigned int TCPLocalPort;                       
unsigned int TCPRemotePort;
unsigned int RemoteMAC[3];                       
unsigned int RemoteIP[2];
unsigned char SocketStatus;


static unsigned int RecdFrameLength;             
static unsigned int RecdFrameMAC[3];             
static unsigned int RecdFrameIP[2];              
static unsigned int RecdIPFrameLength;           


unsigned int TxFrame1Mem[(14 + 20 + 20 +
                          768 + 1) >> 1];
static unsigned int TxFrame2Mem[(14 + 60 + 1) >> 1];
unsigned int RxTCPBufferMem[(536 + 1) >> 1];  


static void ProcessEthBroadcastFrame(void);
static void ProcessEthIAFrame(void);
static void ProcessICMPFrame(void);
static void ProcessTCPFrame(void);


static void PrepareARP_REQUEST(void);
static void PrepareARP_ANSWER(void);
static void PrepareICMP_ECHO_REPLY(void);

static void PrepareTCP_FRAME(unsigned long seqnr, unsigned long acknr,
  unsigned int TCPCode);
static void PrepareTCP_DATA_FRAME(void);


static void TCPStartRetryTimer(void);
static void TCPStartFinTimer(void);
static void TCPRestartTimer(void);
static void TCPStopTimer(void);
static void TCPHandleRetransmission(void);
static void TCPHandleTimeout(void);
static unsigned int CalcChecksum(void *Start, unsigned int Count,
  unsigned char IsTCP);




void TCPLowLevelInit(void)
{
  BCSCTL1 &= ~(0x10);                             
  BCSCTL1 |= (0x20);
  TACTL = (3*0x40u) + (1*0x100u) + (2*0x10u) + (0x0002);         
                                                 
  Init8900();
  TransmitControl = 0;
  TCPFlags = 0;
  TCPStateMachine = CLOSED;
  SocketStatus = 0;
}





void TCPPassiveOpen(void)
{
  if (TCPStateMachine == CLOSED)
  {
    TCPFlags &= ~(0x01);                
    TCPStateMachine = LISTENING;
    SocketStatus = (0x01);                  
  }
}





void TCPActiveOpen(void)
{
  if ((TCPStateMachine == CLOSED) || (TCPStateMachine == LISTENING))
  {
    TCPFlags |= (0x01);                 
    TCPFlags &= ~(0x02);               
  
    PrepareARP_REQUEST();                        
    LastFrameSent = ARP_REQUEST;

⌨️ 快捷键说明

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