/*****************************************************************
/*函数名称:hw_read_regU32
/*函数功能:读取指定寄存器的无符号32位数
/*参数:addr:16位地址
/* pData:指向存储读出的32位数据的指针
/*返回值:无
/*作者:李朋铜
/*完成时间:2008-4
/*****************************************************************/
void hw_read_regU32 (U16 addr, PU32 pData)
{
//禁中断,防止数据使用前被破坏
CriticalEnter();
//选取低8地址
RegAddrLow = (U8)(addr);
//选取高8地址
CpuRegAddrHi = (U8)(addr >> 8);
//读第byte 1
*((PU8)pData) = *gCpuRegcon;
// 读第byte 2
/*****************************************************************
/*相应的从寄存器读取8位、16位无符号数只需分别读取1byte和2byte即可
/*****************************************************************/
*((PU8)pData + 1) = *gCpuRegcon;
//读第byte 3
*((PU8)pData + 2) = *gCpuRegcon;
//读第byte 4
*((PU8)pData + 3) = *gCpuRegcon;
//使能中断
CriticalExit();
}

主函数的实现
void main (void)
{
//初始化二层交换设置
g_pfnLinkChangeFunc = FailOver_PROTECT;
//板卡启动
BoardBoot();
while (1) {
if (Login()) {
goShowLogin();
}
}
}
ZL50408提供LINK HERT BEAT(LHB)机制。它在两个MAC之间传送。时间参数会在发送端和接收端配置。在发送端,MAC将会监视发送过程。如果在发送包的过程中,无应答时间超过set period的一半,一个LHB包将会送到它的链路的另一端的设备上。在接收端,MAC将会监视接收过程。如果接收包的过程中,同样的如果无应答时间超过set period的一半,他将会向向CPU发出告警。如果链路正常工作并且链路的另一端的设备的LHB协议开启,且计时器没有超过set period的一半,接收端MAC会将LHB包丢弃。LHB包的格式如下所示:


