www.pudn.com > ARM_Ethernet.rar > system.h, change:2005-12-30,size:11088b


/****************************************Copyright (c)************************************************** 
**                               Guangzou ZLG-MCU Development Co.,LTD. 
**                                      graduate school 
**                                 http://www.zlgmcu.com 
** 
**--------------File Info------------------------------------------------------------------------------- 
** File name: 			target.h 
** Last modified Date:  2005-11-14 
** Last Version: 		1.0 
** Descriptions: 		header file of the specific codes for LPC2200 target boards 
**				Every project should include a copy of this file, user may modify it as needed 
**------------------------------------------------------------------------------------------------------ 
** Modified by:  
** Modified date: 
** Version:	 
** Descriptions:  
** 
********************************************************************************************************/ 
#ifndef __SYSTEM_H  
#define __SYSTEM_H 
 
 
    #ifdef __cplusplus 
    extern "C" { 
    #endif 
 
__swi(0xaa) unsigned int SwiHandle(int, ...); 
 
 
/********************************************************************************************************* 
** 函数名称: FIQDisable 
** 功能描述: 全局禁止FIQ中断 
** 输 入: 无 
** 输 出: 无 
********************************************************************************************************/ 
__inline void FIQDisable(void) 
{ 
    SwiHandle(0x100); 
} 
 
/********************************************************************************************************* 
** 函数名称: FIQEnable 
** 功能描述: 全局允许FIQ中断 
** 输 入: 无 
** 输 出: 无 
********************************************************************************************************/ 
__inline void FIQEnable(void) 
{ 
    SwiHandle(0x101); 
} 
 
/********************************************************************************************************* 
** 函数名称: FIQSave 
** 功能描述: 全局禁止FIQ中断的同时返回FIQ的状态 
**           FIQRestore()配对使用 
** 输 入: 无 
** 输 出: 无 
********************************************************************************************************/ 
__inline unsigned int FIQSave(void) 
{ 
    return SwiHandle(0x102); 
} 
 
/********************************************************************************************************* 
** 函数名称: FIQRestore 
** 功能描述: 与IRQFIQSaveSave()配对使用,恢复全局FIQ状态 
** 输 入: psr:FIQSave()返回的值 
** 输 出: 无 
********************************************************************************************************/ 
__inline void FIQRestore(unsigned int psr) 
{ 
    SwiHandle(0x103, psr); 
} 
 
/********************************************************************************************************* 
** 函数名称: SetUsrSWIAddr 
** 功能描述: 设置用户SWI服务程序,非必要情况不要使用 
** 输 入:   Function:中断服务程序(普通C语言函数)  
** 输 出:无 
********************************************************************************************************/ 
#if 0 
__inline void SetUsrSWIAddr(void *Function) 
{ 
    SwiHandle(0x104, Function); 
} 
#endif 
 
/********************************************************************************************************* 
** 函数名称: SetUsrFIQaddr 
** 功能描述: 设置FIQ中断服务程序 
** 输 入:   Function:中断服务程序(普通C语言函数)  
** 输 出:无 
********************************************************************************************************/ 
__inline void SetUsrFIQaddr(void *Function) 
{ 
    SwiHandle(0x105, Function); 
} 
 
/********************************************************************************************************* 
** 函数名称: SetDefIRQAddr 
** 功能描述: 设置非向量中断服务程序 
** 输 入:   Function:中断服务程序(普通C语言函数)  
** 输 出:无 
********************************************************************************************************/ 
__inline void SetDefIRQAddr(void *Function) 
{ 
    SwiHandle(0x106, Function); 
} 
 
/********************************************************************************************************* 
** 函数名称: SetISRFuction 
** 功能描述: 设置向量中断服务程序 
** 输 入: Channel: 中断通道号 
**         PRI:     中断优先级 
**         Function:中断服务程序(普通C语言函数)  
** 输 出:无 
********************************************************************************************************/ 
__inline void SetISRFuction(unsigned int Channel, unsigned int PRI, void *Function) 
{ 
    SwiHandle(0x107, Channel, PRI, Function); 
} 
 
#if 1 
/********************************************************************************************************* 
** 函数名称: SysInit 
** 功能描述: 系统初始化从I2c从器件读数据 
** 输 入: 无 
** 输 出: 无 
********************************************************************************************************/ 
__inline void SysInit(void) 
{ 
    SwiHandle(0x108); 
} 
#endif 
 
/********************************************************************************************************* 
** 函数名称: I2cInit 
** 功能描述: 初始化I2c为(主模式) 
** 输 入: I2cDiv:I2c总线分频值 
** 
** 输 出:TRUE  :成功 
**        FALSE:失败 
********************************************************************************************************/ 
__inline uint8 I2cInit(uint32 I2cDiv) 
{ 
    return SwiHandle(0x109, I2cDiv); 
} 
 
/********************************************************************************************************* 
** 函数名称: I2cWrite 
** 功能描述: 向I2C从器件写数据  
** 输 入: Addr:从机地址 
**        Data:指向将要写的数据的指针 
**        NByte:写的数据数目 
** 输 出:发送的数据字节数 
** 
********************************************************************************************************/ 
__inline uint16 I2cWrite(uint8 Addr, uint8 *Data, int16 NByte) 
{ 
    return SwiHandle(0x10a, Addr, Data, NByte); 
} 
 
/********************************************************************************************************* 
** 函数名称: I2cRead 
** 功能描述: 从I2c从器件读数据 
** 输 入: Addr:从机地址 
**        Ret:指向返回数据存储位置的指针 
**        Eaddr:扩展地址存储位置 
**        EaddrNByte:扩展地址字节数,0为无 
**        ReadNbyte:将要读取的字节数目 
** 输 出:已读取的字节数 
********************************************************************************************************/ 
__inline int16 I2cRead(uint8 Addr, uint8 *Ret, uint8 *Eaddr, int16 EaddrNByte, int16 ReadNbyte) 
{ 
    return SwiHandle(0x10b, Addr, Ret, Eaddr, EaddrNByte, ReadNbyte); 
} 
 
/********************************************************************************************************* 
** 函数名称: I2cGetFlag 
** 功能描述: 获取I2C总线状态 
** 输 入: 无 
** 
** 输 出:  0:               忙 
**          I2C_WRITE_END:   写完成 
**          I2C_READ_END:    读完成 
**          I2C_NOT_GET_BUS: 丢失仲裁 
**          I2C_ACK_ERR:     接收ACK错误 
**          0xff:            空闲 
********************************************************************************************************/ 
__inline uint8 I2cGetFlag(void) 
{ 
    return SwiHandle(0x10c); 
} 
 
/********************************************************************************************************* 
** 函数名称: I2cGetWriteBytes 
** 功能描述: 获得未写完的数据个数  
** 输 入: 无 
** 输 出: 未写完的数据个数 
** 
********************************************************************************************************/ 
__inline uint16 I2cGetWriteBytes(void) 
{ 
    return SwiHandle(0x10d); 
} 
 
/********************************************************************************************************* 
** 函数名称: I2cGetReadBytes 
** 功能描述: 从I2c从器件读数据 
** 输 入: 无 
** 输 出:未读完的数据个数 
********************************************************************************************************/ 
__inline int16 I2cGetReadBytes(void) 
{ 
    return SwiHandle(0x10e); 
} 
 
 
#if 1 
 
 
__inline void ZlgipInitial(const uint8 *ip, const uint8 *Gateway, const uint8 *Mark) 
{ 
    SwiHandle(0x10f, ip, Gateway, Mark); 
} 
 
 
 
 
 
 
 
 
__inline SOCKET socket(uint16 af, uint16 type, uint16 protocol) 
{ 
    return SwiHandle(0x110, af, type, protocol); 
} 
 
__inline int bind(SOCKET s, struct sockaddr * name,uint16 namelen) 
{ 
    return SwiHandle(0x111, s, name, namelen); 
} 
 
__inline int listen(SOCKET s, uint16 backlog ) 
{ 
    return SwiHandle(0x112, s, backlog); 
} 
 
__inline uint8 accept(SOCKET s, struct sockaddr * addr, int *addrlen) 
{ 
    return SwiHandle(0x113, s, addr, addrlen); 
} 
 
__inline uint16 recv(uint8 num, uint8 *buf, uint16 len, int flags) 
{ 
    return SwiHandle(0x114, num, buf, len, flags); 
} 
 
__inline uint16 send(uint8 num, uint8 *buf, uint16 len, int flags ) 
{ 
    return SwiHandle(0x115, num, buf, len, flags); 
} 
 
__inline uint8 close(uint8 num) 
{ 
    return SwiHandle(0x116, num); 
} 
 
__inline uint8 connect(SOCKET s, struct sockaddr * addr,uint16 addrlen) 
{ 
    return SwiHandle(0x117, s, addr, addrlen); 
} 
 
__inline int closesocket(SOCKET s) 
{ 
    return SwiHandle(0x118, s); 
} 
 
__inline uint16 recvfrom(SOCKET s, uint8 *buf, uint16 len, int flags, struct sockaddr *from, uint16 *fromlen) 
{ 
    return SwiHandle(0x119, s, buf, len, flags, from, fromlen); 
} 
 
__inline uint16 sendto(SOCKET s, uint8 *buf, uint16 len, int flags, struct sockaddr *to, uint16 tolen) 
{ 
    return SwiHandle(0x11a, s, buf, len, flags, to, tolen); 
} 
 
__inline void getlocalip(uint8 * outptr, uint8 num) 
{ 
    SwiHandle(0x11b, outptr, num); 
} 
 
__inline int getpeername(SOCKET s, struct sockaddr *name,int *namelen) 
{ 
    return SwiHandle(0x11c, s, name, namelen); 
} 
 
__inline int getsockname(SOCKET s, struct sockaddr *name,int *namelen) 
{ 
    return SwiHandle(0x11d, s, name, namelen); 
} 
 
__inline int getsockopt(SOCKET s, int level, int optname, uint8 *optval, int *optlen) 
{ 
    return SwiHandle(0x11e, s, level, optname, optval, optlen); 
} 
 
 
/* not find */ 
__inline uint8 getsocktcpsta(uint8 linknum) 
{ 
    return SwiHandle(0x11f, linknum); 
} 
 
__inline int getsockcliaddr(uint8 linknum, struct sockaddr * addr,int  * addrlen) 
{ 
    return SwiHandle(0x120, linknum, addr, addrlen); 
} 
 
__inline uint32 htonl(uint32 hostlong) 
{ 
    return SwiHandle(0x121, hostlong); 
} 
 
__inline uint16 htons(uint16 hostshort) 
{ 
    return SwiHandle(0x122, hostshort); 
} 
 
__inline uint32 inet_addr(char * inaddr) 
{ 
    return SwiHandle(0x123, inaddr); 
} 
 
__inline void inet_ntoa(uint8 *in , char * out) 
{ 
    SwiHandle(0x124, in, out); 
} 
 
__inline uint32 ntohl(uint32 netlong) 
{ 
    return SwiHandle(0x125, netlong); 
} 
 
__inline uint16 ntohs(uint16 netlong) 
{ 
    return SwiHandle(0x126, netlong); 
} 
 
#endif 
 
 
    #ifdef __cplusplus 
    } 
    #endif 
  
#endif 
/********************************************************************************************************* 
**                            End Of File 
********************************************************************************************************/