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

📄 sed_ar7.c

📁 ADAM2 sources (modified by Oleg)
💻 C
字号:
/*-----------------------------------------------------------------------------*//*                                                                             *//*   Copyright (C) 2003 by Texas Instruments, Inc.  All rights reserved.       *//*   Copyright (C) 2003 Telogy Networks, Inc.							       *//*                                                                             *//*     IMPORTANT - READ CAREFULLY BEFORE PROCEEDING TO USE SOFTWARE.           *//*                                                                             *//*  This document is displayed for you to read prior to using the software     *//*  and documentation.  By using the software and documentation, or opening    *//*  the sealed packet containing the software, or proceeding to download the   *//*  software from a Bulletin Board System(BBS) or a WEB Server, you agree to   *//*  abide by the following Texas Instruments License Agreement. If you choose  *//*  not to agree with these provisions, promptly discontinue use of the        *//*  software and documentation and return the material to the place you        *//*  obtained it.                                                               *//*                                                                             *//*                               *** NOTE ***                                  *//*                                                                             *//*  The licensed materials contain MIPS Technologies, Inc. confidential        *//*  information which is protected by the appropriate MIPS Technologies, Inc.  *//*  license agreement.  It is your responsibility to comply with these         *//*  licenses.                                                                  *//*                                                                             *//*                   Texas Instruments License Agreement                       *//*                                                                             *//*  1. License - Texas Instruments (hereinafter "TI"), grants you a license    *//*  to use the software program and documentation in this package ("Licensed   *//*  Materials") for Texas Instruments broadband products.                      *//*                                                                             *//*  2. Restrictions - You may not reverse-assemble or reverse-compile the      *//*  Licensed Materials provided in object code or executable format.  You may  *//*  not sublicense, transfer, assign, rent, or lease the Licensed Materials    *//*  or this Agreement without written permission from TI.                      *//*                                                                             *//*  3. Copyright - The Licensed Materials are copyrighted. Accordingly, you    *//*  may either make one copy of the Licensed Materials for backup and/or       *//*  archival purposes or copy the Licensed Materials to another medium and     *//*  keep the original Licensed Materials for backup and/or archival purposes.  *//*                                                                             *//*  4. Runtime and Applications Software - You may create modified or          *//*  derivative programs of software identified as Runtime Libraries or         *//*  Applications Software, which, in source code form, remain subject to this  *//*  Agreement, but object code versions of such derivative programs are not    *//*  subject to this Agreement.                                                 *//*                                                                             *//*  5. Warranty - TI warrants the media to be free from defects in material    *//*  and workmanship and that the software will substantially conform to the    *//*  related documentation for a period of ninety (90) days after the date of   *//*  your purchase. TI does not warrant that the Licensed Materials will be     *//*  free from error or will meet your specific requirements.                   *//*                                                                             *//*  6. Remedies - If you find defects in the media or that the software does   *//*  not conform to the enclosed documentation, you may return the Licensed     *//*  Materials along with the purchase receipt, postage prepaid, to the         *//*  following address within the warranty period and receive a refund.         *//*                                                                             *//*  TEXAS INSTRUMENTS                                                          *//*  Application Specific Products, MS 8650                                     *//*  c/o ADAM2 Application Manager                                              *//*  12500 TI Boulevard                                                         *//*  Dallas, TX 75243  - U.S.A.                                                 *//*                                                                             *//*  7. Limitations - TI makes no warranty or condition, either expressed or    *//*  implied, including, but not limited to, any implied warranties of          *//*  merchantability and fitness for a particular purpose, regarding the        *//*  licensed materials.                                                        *//*                                                                             *//*  Neither TI nor any applicable licensor will be liable for any indirect,    *//*  incidental or consequential damages, including but not limited to loss of  *//*  profits.                                                                   *//*                                                                             *//*  8. Term - The license is effective until terminated.   You may terminate   *//*  it at any other time by destroying the program together with all copies,   *//*  modifications and merged portions in any form. It also will terminate if   *//*  you fail to comply with any term or condition of this Agreement.           *//*                                                                             *//*  9. Export Control - The re-export of United States origin software and     *//*  documentation is subject to the U.S. Export Administration Regulations or  *//*  your equivalent local regulations. Compliance with such regulations is     *//*  your responsibility.                                                       *//*                                                                             *//*                         *** IMPORTANT NOTICE ***                            *//*                                                                             *//*  Texas Instruments (TI) reserves the right to make changes to or to         *//*  discontinue any semiconductor product or service identified in this        *//*  publication without notice. TI advises its customers to obtain the latest  *//*  version of the relevant information to verify, before placing orders,      *//*  that the information being relied upon is current.                         *//*                                                                             *//*  TI warrants performance of its semiconductor products and related          *//*  software to current specifications in accordance with TI's standard        *//*  warranty. Testing and other quality control techniques are utilized to     *//*  the extent TI deems necessary to support this warranty. Unless mandated    *//*  by government requirements, specific testing of all parameters of each     *//*  device is not necessarily performed.                                       *//*                                                                             *//*  Please be aware that Texas Instruments products are not intended for use   *//*  in life-support appliances, devices, or systems. Use of a TI product in    *//*  such applications without the written approval of the appropriate TI       *//*  officer is prohibited. Certain applications using semiconductor devices    *//*  may involve potential risks of injury, property damage, or loss of life.   *//*  In order to minimize these risks, adequate design and operating            *//*  safeguards should be provided by the customer to minimize inherent or      *//*  procedural hazards. Inclusion of TI products in such applications is       *//*  understood to be fully at the risk of the customer using TI devices or     *//*  systems.                                                                   *//*                                                                             *//*  TI assumes no liability for TI applications assistance, customer product   *//*  design, software performance, or infringement of patents or services       *//*  described herein. Nor does TI warrant or represent that license, either    *//*  expressed or implied, is granted under any patent right, copyright, mask   *//*  work right, or other intellectual property right of TI covering or         *//*  relating to any combination, machine, or process in which such             *//*  semiconductor products or services might be or are used.                   *//*                                                                             *//*  All company and/or product names are trademarks and/or registered          *//*  trademarks of their respective manaufacturers.                             *//*                                                                             *//*-----------------------------------------------------------------------------*//* 																			   *//* Ethernet Driver. 														   *//* A Very Simple set of ethernet driver primitives.  The ethernet (3com Mbus)  *//* interface is controlled by busy-waiting, the application is handed the      *//* location of on-board packet buffers, and allowed to fill in the             *//* transmit buffer directly.  The interface is entirely blocking.              *//*  																		   *//* Written March, 1986 by Geoffrey Cooper 									   *//* 																			   *//* Copyright (C) 1986, IMAGEN Corporation 									   *//*  "This code may be duplicated in whole or in part provided that [1] there   *//*   is no commercial gain involved in the duplication, and [2] that this      *//*   copyright notice is preserved on all copies.  Any other duplication       *//*   requires written notice of the author."                                   *//*  																		   *//* Primitives: 																   *//*  sed_Init()  -- Initialize the package 									   *//*  sed_FormatPacket( destEAddr ) => location of transmit buffer               *//*  sed_Send( pkLength ) -- send the packet that is in the transmit buffer     */ /*  sed_Receive( recBufLocation ) -- enable receiving packets.                 *//*  sed_IsPacket() => location of packet in receive buffer                     *//*  sed_CheckPacket( recBufLocation, expectedType )                            *//*  sed_shutdown(); 														   *//* 																			   *//* Global Variables: 														   *//*  sed_lclEthAddr -- Ethernet address of this host. 						   *//*  sed_ethBcastAddr -- Ethernet broadcast address.                            *//*-----------------------------------------------------------------------------*/#include "_stdio.h"#include "tinyip.h"#include "emacphy.h"#include "hw.h"#include "env.h"#include "support.h"#include "errors.h"#include "cpmac.h"//#define  CPMAC_DEBUG	1#define E10P_MIN        60              /* Minimum Ethernet packet size */bit32u emacbase;void sed_shutdown(void)  {	/* Do nothing, don't take the MAC out of reset */	/*	if(emacbase ==  EMACA_BASE)	{		RESET_PRCR  &= ~EMACA_RESET;	}	else	{  		RESET_PRCR  &= ~EMACB_RESET;	}	*/	return;  }int sed_Init(int loopback)  {  int i;    cpmac_init();  for (i=0; i<3; i++)   	sed_ethBcastAddr[i] = 0xFFFF;  return(0);  }/*  * Format an ethernet header in the transmit buffer, and say where it is. * Note that because of the way the 3Com interface works, we need to know * how long the packet is before we know where to put it.  The solution is * that we format the packet at the BEGINNING of the transmit buffer, and * later copy it (carefully) to where it belongs.  Another hack would be * to be inefficient about the size of the packet to be sent (always send * a larger ethernet packet than you need to, but copying should be ok for * now. */char abuffer[4096];octet *sed_FormatPacket( destEAddr, ethType )        register octet *destEAddr;  {  octet *xMitBuf;  bit32u *dp;  int i;      for(i=0,dp=(bit32u *)abuffer;i<((sizeof abuffer)/4);i++)     *dp++=0;  xMitBuf = (octet *)&abuffer[2];  Move( destEAddr, xMitBuf, 6 );  Move( sed_lclEthAddr, xMitBuf + 6, 6 );  *((short *)(xMitBuf+12)) = wfix(ethType);  return(xMitBuf+14);  }/* *  Send a packet out over the ethernet.  The packet is sitting at the * beginning of the transmit buffer.  The routine returns when the * packet has been successfully sent. */int sed_Send( pkLengthInOctets )  register int pkLengthInOctets;  {  char *cp;  pkLengthInOctets += 14;             /* account for Ethernet header */  pkLengthInOctets = (pkLengthInOctets + 1) & (~1);  if (pkLengthInOctets < E10P_MIN)     pkLengthInOctets = E10P_MIN; /* and min. ethernet len */  cp=&abuffer[2];  cpmac_tx((char *)UNCACHED(cp),pkLengthInOctets);  return(0);  }/*  * Test for the arrival of a packet on the Ethernet interface.  The packet may * arrive in either buffer A or buffer B; the location of the packet is * returned.  If no packet is returned withing 'timeout' milliseconds, * then the routine returns zero. *  * Note: ignores ethernet errors.  may occasionally return something * which was received in error. */octet *sed_IsPacket(void)  {  octet *pb;      int len;  Status ret;  volatile unsigned int  poll_itv = 60000;#ifdef CPMAC_DEBUG  sys_printf("WAITING FOR INCOMING PACKET...\n");#endif  do {  	ret = cpmac_rx((char **)&pb, &len);	if (SBL_ELKDN == ret || SBL_EFAILURE == ret) {	  sys_printf("\ncpmac rx failed or link is down.");	  return NULL;	}	if (SBL_SUCCESS == ret)	{#ifdef CPMAC_DEBUG	  sys_printf("rx success!!\n");#endif	  break;	}  } while (SBL_ETIMEOUT == ret && --poll_itv > 0);  if(poll_itv ==  0)  {#ifdef CPMAC_DEBUG	sys_printf("Rx timed out!!\n");		cpmac_stats(); #endif  }  if (pb)    {    pb+=14;#ifdef CPMAC_DEBUG  	sys_printf("GOT PACKET! Address: 0x%08x\n", pb);#endif    }  return(pb);  }/*  *  Check to make sure that the packet that you received was the one that * you expected to get. */int sed_CheckPacket( recBufLocation, expectedType )    word *recBufLocation;    word expectedType;  {  if ( recBufLocation[-1] != wfix(expectedType) )     return(0);   else    return(1);  }#include "cpmac.c"

⌨️ 快捷键说明

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