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

📄 nbuf.h

📁 MCS-51的一个Free小型操作系统,在KeilC中下编译工作
💻 H
字号:
/* * Network buffer code based on the MCF523x examples from Freescale. * * Freescale explicitly grants the redistribution and modification * of these source files. The complete licensing information is * available in the file LICENSE_FREESCALE.TXT. * * Modifications Copyright (c) 2006 Christian Walter <wolti@sil.at> * * File: $Id: nbuf.h,v 1.3 2006/09/24 22:50:23 wolti Exp $ */#ifndef _NBUF_H#define _NBUF_H/* ------------------------ Defines --------------------------------------- */#ifdef __GNUC__#define ATTR_FECMEM             \    __attribute__((section(".nbuf"),aligned(16)))#endif#define NBUF_RX                 ( 1 )#define NBUF_TX                 ( 0 )/* We set the receiver buffers to the maximum size the FEC supports ( See * MCF5235 reference manual 19.2.5.1.2 - Driver/DMA Operation with Receive * BDs). This gives us the benefit that any frame fits into one buffer. A * maximum size of 2047 is guaranteed by the FEC and 2048 is therefore a * safe value. * Note: The value MUST be dividable by 16! */#define RX_BUFFER_SIZE          ( 2048 )/* Size of the transmit buffers. If you set this value to small all frames * greater than this size will be dropped. The value 1520 was choosen because * it is bigger than the FEC MTU (1518) and is dividable by 16. * Note: The value MUST be dividable by 16! */#define TX_BUFFER_SIZE          ( 1520 )/* Number of Receive and Transmit Buffers and Buffer Descriptors */#define NUM_RXBDS               ( 2 )#define NUM_TXBDS               ( 2 )/* ------------------------ Defines ( Buffer Descriptor Flags )------------ */#define TX_BD_R                 ( 0x8000 )#define TX_BD_INUSE             ( 0x4000 )#define TX_BD_TO1               ( 0x4000 )#define TX_BD_W                 ( 0x2000 )#define TX_BD_TO2               ( 0x1000 )#define TX_BD_L                 ( 0x0800 )#define TX_BD_TC                ( 0x0400 )#define TX_BD_DEF               ( 0x0200 )#define TX_BD_HB                ( 0x0100 )#define TX_BD_LC                ( 0x0080 )#define TX_BD_RL                ( 0x0040 )#define TX_BD_UN                ( 0x0002 )#define TX_BD_CSL               ( 0x0001 )#define RX_BD_E                 ( 0x8000 )#define RX_BD_INUSE             ( 0x4000 )#define RX_BD_R01               ( 0x4000 )#define RX_BD_W                 ( 0x2000 )#define RX_BD_R02               ( 0x1000 )#define RX_BD_L                 ( 0x0800 )#define RX_BD_M                 ( 0x0100 )#define RX_BD_BC                ( 0x0080 )#define RX_BD_MC                ( 0x0040 )#define RX_BD_LG                ( 0x0020 )#define RX_BD_NO                ( 0x0010 )#define RX_BD_SH                ( 0x0008 )#define RX_BD_CR                ( 0x0004 )#define RX_BD_OV                ( 0x0002 )#define RX_BD_TR                ( 0x0001 )/* ------------------------ Type definitions ------------------------------ */typedef struct{    uint16          status;     /* control and status */    uint16          length;     /* transfer length */    uint8          *data;       /* buffer address */} nbuf_t;/* ------------------------ Prototypes ------------------------------------ */void            nbuf_init( void );uint32          nbuf_get_start( uint8 );nbuf_t         *nbuf_rx_allocate( void );nbuf_t         *nbuf_tx_allocate( void );void            nbuf_rx_release( nbuf_t * );void            nbuf_tx_release( nbuf_t * );int             nbuf_rx_next_ready( void );#endif

⌨️ 快捷键说明

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