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

📄 io_sprt.h

📁 CS8900测试文件(整个工程) 环境:VDSP4.0
💻 H
字号:
/* =============================================================================
 *
 *   $RCSfile: io_sprt.h,v $
 *
 *   Description:
 *    Core SMSC driver 
 *
 *   Last modified $Date: 2004/12/08 18:09:44 $
 *
 *	 Last modified by $Author: sgollako $
 *
 *   $Revision: 1.2 $
 *
 *   $Source: /home/cvs/repository/TCPIP_SRC/blackfin/drivers/lan91c111/io_sprt.h,v $ 
 *
 *============================================================================*/

#ifndef __io_sprt_h__
#define __io_sprt_h__

#include <ccblkfn.h>
// *(unsigned char*)addr = (unsigned)value;
inline void _outp(unsigned int addr, unsigned char value)
{
	unsigned char volatile *paddr = (unsigned char volatile *)addr;
	
	*paddr = value;
	csync();

	/*
    asm("B[%0] = %1; CSYNC;"
        : 
        : "p" (addr), "D" (value)
        : );
	*/
}

// *(unsigned short*)addr = (unsigned)value;
inline void _outpw(unsigned int addr, unsigned short value)
{
	unsigned short volatile *paddr = (unsigned short volatile *)addr;
	
	*paddr = value;
	csync();

	/*
    asm("W[%0] = %1; CSYNC;"
        : 
        : "p" (addr), "H" (value)
        :);
		*/
}

// *(unsigned int*)addr = (unsigned)value;
inline void _outpd(unsigned int addr, unsigned int value)
{
	unsigned int volatile *paddr = (unsigned int volatile *)addr;
	
	*paddr = value;
	csync();
	/*
    asm("[%0] = %1; CSYNC;"
        : 
        : "p" (addr), "D" (value)
        :);
		*/
}

// returns (*(unsigned char*) addr);
inline char _inp(unsigned int addr)
{
    volatile unsigned char rval;
	unsigned char volatile *paddr = (unsigned char volatile *)addr;
	rval = *paddr;
	
	return rval;

	/*
	unsigned char rval;
    asm("%0 = B [%1] (Z);"
        : "=D" (rval)
        : "p" (addr)
        :);
    return rval;
	*/
}

// returns (*(unsigned short*) addr);
inline short _inpw(unsigned int addr)
{
    volatile unsigned short rval;
	unsigned short volatile *paddr = (unsigned short volatile *)addr;
	rval = *paddr;
	
	return rval;
	/*
    unsigned short rval;
    asm("%0 = W [%1];"
        : "=H" (rval)
        : "p" (addr)
        :);
    return rval;
	*/
}

// returns (*(unsigned int*) addr);
inline int _inpd(unsigned int addr)
{
    volatile int rval;
	unsigned int volatile *paddr = (unsigned int volatile *)addr;
	rval = *paddr;
	
	return rval;

	/*
    unsigned int rval;
    asm("%0 = [%1];"
        : "=D" (rval)
        : "p" (addr)
        :);
    return rval;
	*/
}

// *(unsigned int*)addr = (unsigned)value;
inline void _ch_clk(unsigned int addr, unsigned int value)
{
	unsigned int volatile *paddr = (unsigned int volatile *)addr;
	
	*paddr = value;
	ssync();
	
	/*
    asm("[%0] = %1; SSYNC; nop; nop; nop;"
        : 
        : "p" (addr), "D" (value)
        :);
        */
}
#endif // __io_sprt_h__
/*=============================================================================
 * FOOT NOTES :
 *
 * FN#1 : 
 * ----------------------------------------------------------------------------
 *
 * $Log: io_sprt.h,v $
 * Revision 1.2  2004/12/08 18:09:44  sgollako
 * Unused old structures deleted.
 *
 * Revision 1.1.1.1  2004/11/23 21:36:56  sgollako
 * TCP/IP sources with lwIP sources
 *
 * Revision 1.1.1.1  2004/05/11 17:23:18  sgollako
 * lwIP port on Blackfin family of processors
 *
 *
 *
 *============================================================================*/

⌨️ 快捷键说明

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