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

📄 io.c

📁 基于AT91SAM7x256的硬件平台的WEB服务器源码(A&shy DS版本, ucOS_II+LWIP+自己编写的DNS查询工具)
💻 C
字号:
//*------------------------------------------------------------------------------------------------
//* 文件名				: IO.c
//* 功能描述			: 系统输输出函数
//* 作者    			: 焦海波
//* 版本				: 0.1
//* 建立日期、时间		: 2006/08/07 15:26
//* 最近修改日期、时间	: 
//* 修改原因			: 
//*------------------------------------------------------------------------------------------------
//*------------------------------------------ 头文件 -----------------------------------------------
#include	"/uCOS_II/includes.h"
#include	"/tools/stringExtAPI.h"
#include	"/at91sam7x256/periph/emac/lib_emac.h"
#include	"flash.h"
//*================================================================================================
//*                     函 数 区
//*================================================================================================
//*------------------------------------------------------------------------------------------------
//* 函数名称 : ubSetNetCFGParam
//* 功能描述 : 设置网络配置参数(IP地址、子网掩码、网关)
//* 入口参数 :      <ulIP>[in] IP地址
//*	         : <ulNetMask>[in] 子网掩码
//*          : <ulGateway>[in] 网关地址
//* 出口参数 : 设置成功返回TRUE,否则返回FALSE
//*------------------------------------------------------------------------------------------------
BOOLEAN ubSetNetCFGParam(ULONG ulIP, ULONG ulNetMask, ULONG ulGateway)
{
	ST_NET_CFG_PARAM	__stNetCFG;
	LONG				__lDNLen = 0;
	
	memset(&__stNetCFG, 0, sizeof(ST_NET_CFG_PARAM));
	
	if(*((ULONG*)PST_NET_CFG_PARAM->szDN) != 0xFFFFFFFF)
	{
		__lDNLen = strlenExt(PST_NET_CFG_PARAM->szDN);
		memcpy(__stNetCFG.szDN, PST_NET_CFG_PARAM->szDN, __lDNLen);
	}
	
	__stNetCFG.ulFlag = NET_CFG_FLAG;
	__stNetCFG.ulIP = ulIP;
	__stNetCFG.ulNetMask = ulNetMask;
	__stNetCFG.ulGateway = ulGateway;
	
	if(DFL_WriteFlash((ULONG*)&__stNetCFG, NET_CFG_PARAM_STORE_ADDR, ST_NETCFG_PARAM_HDR_LEN + __lDNLen) == ERR_WFLASH_OK)
		return TRUE;
	else
		return FALSE;
}
//*------------------------------------------------------------------------------------------------
//* 函数名称 : ubSetDN
//* 功能描述 : 设置域名
//* 入口参数 : <pszDN>[in] 指向域名的指针
//*          :  <lLen>[in] 域名的长度
//* 出口参数 : 设置成功返回TRUE,否则返回FALSE
//*------------------------------------------------------------------------------------------------
BOOLEAN ubSetDN(BYTE *pszDN, LONG lLen)
{
	ST_NET_CFG_PARAM	__stNetCFG;
	
	memset(&__stNetCFG, 0, sizeof(ST_NET_CFG_PARAM));
	
	if(PST_NET_CFG_PARAM->ulFlag == NET_CFG_FLAG)
	{
		__stNetCFG.ulFlag = NET_CFG_FLAG;
		__stNetCFG.ulIP = PST_NET_CFG_PARAM->ulIP;
		__stNetCFG.ulNetMask = PST_NET_CFG_PARAM->ulNetMask;
		__stNetCFG.ulGateway = PST_NET_CFG_PARAM->ulGateway;
	}
	memcpy(__stNetCFG.szDN, pszDN, lLen);
	
	if(DFL_WriteFlash((ULONG*)&__stNetCFG, NET_CFG_PARAM_STORE_ADDR, ST_NETCFG_PARAM_HDR_LEN + lLen) == ERR_WFLASH_OK)
		return TRUE;
	else
		return FALSE;
}
//*------------------------------------------------------------------------------------------------
//* 函数名称 : vReadASCIIIP
//* 功能描述 : 读取ASCII类型的IP地址到指定的缓冲区
//* 入口参数 : <pszIP>[in] 指向接收缓冲区的指针
//* 出口参数 : 无
//*------------------------------------------------------------------------------------------------
void vReadASCIIIP(BYTE *pszIP)
{	
	sprintf(pszIP, "%d.", (PST_NET_CFG_PARAM->ulFlag == NET_CFG_FLAG) ? macGetIPAddr(0) : IP_ADDR_0);
	sprintf(pszIP + strlenExt(pszIP), "%d.", (PST_NET_CFG_PARAM->ulFlag == NET_CFG_FLAG) ? macGetIPAddr(1) : IP_ADDR_1);
	sprintf(pszIP + strlenExt(pszIP), "%d.", (PST_NET_CFG_PARAM->ulFlag == NET_CFG_FLAG) ? macGetIPAddr(2) : IP_ADDR_2);
	sprintf(pszIP + strlenExt(pszIP), "%d", (PST_NET_CFG_PARAM->ulFlag == NET_CFG_FLAG) ? macGetIPAddr(3) : IP_ADDR_3);
}
//*------------------------------------------------------------------------------------------------
//* 函数名称 : vReadASCIINetMask
//* 功能描述 : 读取ASCII类型的子网掩码地址到指定的缓冲区
//* 入口参数 : <pszNetMask>[in] 指向接收缓冲区的指针
//* 出口参数 : 无
//*------------------------------------------------------------------------------------------------
void vReadASCIINetMask(BYTE *pszNetMask)
{	
	sprintf(pszNetMask, "%d.", (PST_NET_CFG_PARAM->ulFlag == NET_CFG_FLAG) ? macGetNetMask(0) : NET_MASK0);
	sprintf(pszNetMask + strlenExt(pszNetMask), "%d.", (PST_NET_CFG_PARAM->ulFlag == NET_CFG_FLAG) ? macGetNetMask(1) : NET_MASK1);
	sprintf(pszNetMask + strlenExt(pszNetMask), "%d.", (PST_NET_CFG_PARAM->ulFlag == NET_CFG_FLAG) ? macGetNetMask(2) : NET_MASK2);
	sprintf(pszNetMask + strlenExt(pszNetMask), "%d", (PST_NET_CFG_PARAM->ulFlag == NET_CFG_FLAG) ? macGetNetMask(3) : NET_MASK3);
}
//*------------------------------------------------------------------------------------------------
//* 函数名称 : vReadASCIIGateway
//* 功能描述 : 读取ASCII类型的网关地址到指定的缓冲区
//* 入口参数 : <pszGateway>[in] 指向接收缓冲区的指针
//* 出口参数 : 无
//*------------------------------------------------------------------------------------------------
void vReadASCIIGateway(BYTE *pszGateway)
{	
	sprintf(pszGateway, "%d.", (PST_NET_CFG_PARAM->ulFlag == NET_CFG_FLAG) ? macGetGateway(0) : GATEWAY_ADDR_0);
	sprintf(pszGateway + strlenExt(pszGateway), "%d.", (PST_NET_CFG_PARAM->ulFlag == NET_CFG_FLAG) ? macGetGateway(1) : GATEWAY_ADDR_1);
	sprintf(pszGateway + strlenExt(pszGateway), "%d.", (PST_NET_CFG_PARAM->ulFlag == NET_CFG_FLAG) ? macGetGateway(2) : GATEWAY_ADDR_2);
	sprintf(pszGateway + strlenExt(pszGateway), "%d", (PST_NET_CFG_PARAM->ulFlag == NET_CFG_FLAG) ? macGetGateway(3) : GATEWAY_ADDR_3);
}

⌨️ 快捷键说明

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