?? io.c
字號(hào):
//*------------------------------------------------------------------------------------------------
//* 文件名 : IO.c
//* 功能描述 : 系統(tǒng)輸輸出函數(shù)
//* 作者 : 焦海波
//* 版本 : 0.1
//* 建立日期、時(shí)間 : 2006/08/07 15:26
//* 最近修改日期、時(shí)間 :
//* 修改原因 :
//*------------------------------------------------------------------------------------------------
//*------------------------------------------ 頭文件 -----------------------------------------------
#include "/uCOS_II/includes.h"
#include "/tools/stringExtAPI.h"
#include "/at91sam7x256/periph/emac/lib_emac.h"
#include "flash.h"
//*================================================================================================
//* 函 數(shù) 區(qū)
//*================================================================================================
//*------------------------------------------------------------------------------------------------
//* 函數(shù)名稱 : ubSetNetCFGParam
//* 功能描述 : 設(shè)置網(wǎng)絡(luò)配置參數(shù)(IP地址、子網(wǎng)掩碼、網(wǎng)關(guān))
//* 入口參數(shù) : <ulIP>[in] IP地址
//* : <ulNetMask>[in] 子網(wǎng)掩碼
//* : <ulGateway>[in] 網(wǎng)關(guān)地址
//* 出口參數(shù) : 設(shè)置成功返回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;
}
//*------------------------------------------------------------------------------------------------
//* 函數(shù)名稱 : ubSetDN
//* 功能描述 : 設(shè)置域名
//* 入口參數(shù) : <pszDN>[in] 指向域名的指針
//* : <lLen>[in] 域名的長(zhǎng)度
//* 出口參數(shù) : 設(shè)置成功返回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;
}
//*------------------------------------------------------------------------------------------------
//* 函數(shù)名稱 : vReadASCIIIP
//* 功能描述 : 讀取ASCII類型的IP地址到指定的緩沖區(qū)
//* 入口參數(shù) : <pszIP>[in] 指向接收緩沖區(qū)的指針
//* 出口參數(shù) : 無
//*------------------------------------------------------------------------------------------------
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);
}
//*------------------------------------------------------------------------------------------------
//* 函數(shù)名稱 : vReadASCIINetMask
//* 功能描述 : 讀取ASCII類型的子網(wǎng)掩碼地址到指定的緩沖區(qū)
//* 入口參數(shù) : <pszNetMask>[in] 指向接收緩沖區(qū)的指針
//* 出口參數(shù) : 無
//*------------------------------------------------------------------------------------------------
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);
}
//*------------------------------------------------------------------------------------------------
//* 函數(shù)名稱 : vReadASCIIGateway
//* 功能描述 : 讀取ASCII類型的網(wǎng)關(guān)地址到指定的緩沖區(qū)
//* 入口參數(shù) : <pszGateway>[in] 指向接收緩沖區(qū)的指針
//* 出口參數(shù) : 無
//*------------------------------------------------------------------------------------------------
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);
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -