📄 boardctrl.c
字号:
#include <string.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "vxWorks.h"
#include "muxLib.h"
#include "ifLib.h"
#include "BspCpusApi.h"
#include "config.h"
#include "vxWorks.h"
#include "etherLib.h"
#include "end.h"
#include "endLib.h"
#include "cacheLib.h"
#include "rtlcpp.h"
extern unsigned char g_ucTestNetUnit;
/* add by zoutl for test 2003-4-4 9:48 */
extern unsigned char g_ucTestNetUnit;
void Init8139_CHM(void)
{
int iDevNum[3];
int iIntNum[3];
int iIntPri[3];
int NetMask =0xffff0000;
char aucAddr[8];
NET_ADD tNetPara;
/* 添加主备通信网口 */
iDevNum[0] = 21;
iIntNum[0] = PMC_INTD_VEC;
iIntPri[0] = 10;
/*
iDevNum[0] = 22;
iIntNum[0] = PMC_INTC_VEC;
iIntPri[0] = 10;
*/
tNetPara.DevNum = iDevNum;
tNetPara.IntNum = iIntNum;
tNetPara.IntPri = iIntPri;
tNetPara.unit = 1;
NetIntAdd(&tNetPara);
/* if(BSP_OK != init8139net(1, 0, 22, 0, 128)) */
if(BSP_OK != init8139net(1, 0, 21, 0, 128))
{
printf(" CHM 8139初始化失败\n");
return;
}
return;
if(ipAttach (1, "rtl")==ERROR)
{
printf("ipAttach error\n");
return;
}
if(ifMaskSet("rtl1",NetMask)==ERROR)
{
printf("ifMaskSet error\n");
return;
}
if(ifAddrSet("rtl1","10.48.1.2")==ERROR)
{
printf("ifAddrSet error\n");
return;
}
printf(" CHM 8139初始化成功\n");
return;
}
/* 用于测试CCM上的8139网口 */
void Init8139_CCM(void)
{
int iDevNum[3];
int iIntNum[3];
int iIntPri[3];
int NetMask =0xffff0000;
char aucAddr[8];
NET_ADD tNetPara;
g_ucTestNetUnit = 0 ;
/* 添加主备通信网口 */
#if 1
iDevNum[0] = 22;
iIntNum[0] = PMC_INTD_VEC;
iIntPri[0] = 10;
tNetPara.DevNum = iDevNum;
tNetPara.IntNum = iIntNum;
tNetPara.IntPri = iIntPri;
tNetPara.unit = 1;
NetIntAdd(&tNetPara);
/* if(BSP_OK != init8139net(1, 0, 22, 0, 128)) */
if(BSP_OK != init8139net(g_ucTestNetUnit, 0, 22, 0, 1000))
{
printf(" CCM 8139初始化失败\n");
return;
}
#endif
/* 测试网口为1 */
/* 设置rtl1为自环&100M工作状态(可选) */
SetRtl8139State(g_ucTestNetUnit, 3);
printf(" CCM 8139初始化成功\n");
#if 0
if(ipAttach (0, "rtl")==ERROR)
{
printf("ipAttach error\n");
return;
}
if(ifMaskSet("rtl0",NetMask)==ERROR)
{
printf("ifMaskSet error\n");
return;
}
if(ifAddrSet("rtl0","10.51.49.251")==ERROR)
{
printf("ifAddrSet error\n");
return;
}
printf(" CCM 8139初始化成功\n");
#endif
return;
}
/* 用于测试CCM上的8139网口 */
void Init8139_CCM1(void)
{
int iDevNum[3];
int iIntNum[3];
int iIntPri[3];
int NetMask =0xffff0000;
char aucAddr[8];
NET_ADD tNetPara;
/* 添加主备通信网口 */
iDevNum[0] = 23;
iIntNum[0] = PMC_INTC_VEC;
iIntPri[0] = 10;
tNetPara.DevNum = iDevNum;
tNetPara.IntNum = iIntNum;
tNetPara.IntPri = iIntPri;
tNetPara.unit = 1;
NetIntAdd(&tNetPara);
/* if(BSP_OK != init8139net(1, 0, 22, 0, 128)) */
if(BSP_OK != init8139net(1, 0, 23, 0, 400))
{
printf(" CCM 8139初始化失败\n");
return;
}
/* 测试网口为1 */
/* 设置rtl1为自环&100M工作状态(可选) */
SetRtl8139State(1, 3);
printf(" CCM 8139初始化成功\n");
#if 0
if(ipAttach (1, "rtl")==ERROR)
{
printf("ipAttach error\n");
return;
}
if(ifMaskSet("rtl1",NetMask)==ERROR)
{
printf("ifMaskSet error\n");
return;
}
if(ifAddrSet("rtl1","10.48.1.3")==ERROR)
{
printf("ifAddrSet error\n");
return;
}
printf(" CCM 8139初始化成功\n");
#endif
return;
}
void Init8139_RMM(void)
{
int iDevNum[3];
int iIntNum[3];
int iIntPri[3];
int NetMask =0xffff0000;
char aucAddr[8];
NET_ADD tNetPara;
/* 添加主备通信网口 */
iDevNum[0] = 22;
iIntNum[0] = PMC_INTC_VEC;
iIntPri[0] = 10;
tNetPara.DevNum = iDevNum;
tNetPara.IntNum = iIntNum;
tNetPara.IntPri = iIntPri;
tNetPara.unit = 1;
NetIntAdd(&tNetPara);
/* if(BSP_OK != init8139net(1, 0, 21, 0, 128)) */
if(BSP_OK != init8139net(0, 0, 22, 0, 128))
{
printf(" CHM 8139初始化失败\n");
return;
}
if(ipAttach (1, "rtl")==ERROR)
{
printf("ipAttach error\n");
return;
}
if(ifMaskSet("rtl1",NetMask)==ERROR)
{
printf("ifMaskSet error\n");
return;
}
if(ifAddrSet("rtl1","10.48.1.2")==ERROR)
{
printf("ifAddrSet error\n");
return;
}
printf(" CHM 8139初始化成功\n");
return;
}
/* add by zoutl for test 2003-4-4 9:48 */
void Init8139_824x(void)
{
int iDevNum[3];
int iIntNum[3];
int iIntPri[3];
int NetMask =0xffff0000;
char aucAddr[8];
NET_ADD tNetPara;
/* 添加主备通信网口 */
iDevNum[0] = 16;
iIntNum[0] = PCI_8139_INT_VEC;
iIntPri[0] = 10;
tNetPara.DevNum = iDevNum;
tNetPara.IntNum = iIntNum;
tNetPara.IntPri = iIntPri;
tNetPara.unit = 1;
NetIntAdd(&tNetPara);
/* if(BSP_OK != init8139net(1, 0, 21, 0, 128)) */
if(BSP_OK != init8139net(0, 0, 16, 0, 128))
{
printf(" CHM 8139初始化失败\n");
return;
}
if(ipAttach (0, "rtl")==ERROR)
{
printf("ipAttach error\n");
return;
}
if(ifMaskSet("rtl0",NetMask)==ERROR)
{
printf("ifMaskSet error\n");
return;
}
if(ifAddrSet("rtl0","10.48.1.2")==ERROR)
{
printf("ifAddrSet error\n");
return;
}
printf(" 子卡8139初始化成功\n");
return;
}
unsigned long g_total0 =0;
unsigned long g_totalErr0 =0;
unsigned long g_total1 =0;
unsigned long g_totalErr1 =0;
void testLoopBack(void)
{
int i;
while(1)
{
for(i =0; i<100;i++)
{
if(sysChecki8139Loopback(0))
g_totalErr0++;
g_total0++;
}
taskDelay(50);
for(i =0; i<100;i++)
{
if(sysChecki8139Loopback(1))
g_totalErr1++;
g_total1++;
}
printf("\n g_total0 =%d\n", g_total0);
printf("\n g_totalErr0 =%d\n", g_totalErr0);
printf("\n g_total1 =%d\n", g_total1);
printf("\n g_totalErr1 =%d\n", g_totalErr1);
}
}
void SdramTest(void)
{
unsigned long i;
unsigned char *temp;
unsigned long templengh;
ENABLE_S_RUN_LED;
DISABLE_S_ALARM_LED;
DISABLE_S_RUN_LED;
ENABLE_S_ALARM_LED;
ENABLE_S_RUN_LED;
DISABLE_S_ALARM_LED;
DISABLE_S_RUN_LED;
ENABLE_S_ALARM_LED;
}
unsigned long g_IntrNum =0;
unsigned long g_IntrNumSec =0;
void AuxClkIntr(int arg)
{
g_IntrNum ++;
if((g_IntrNum%sysAuxClkRateGet()) == 0)
{
g_IntrNumSec++;
}
}
void TestAucClk(void)
{
if(sysAuxClk1Connect(AuxClkIntr, 0) ==OK)
printf("sysAuxClkConnect连接成功!\n");
else
printf("sysAuxClkConnect连接失败!\n");
sysAuxClk1Enable();
while(1)
{
printf("g_IntrNumSec:%d\n",g_IntrNumSec);
taskDelay(50);
}
}
void ShowNetPool(int unit)
{
RTL81X9END_DEVICE *pDrvCtrl = NULL;
printf("TxOk = %08x%08x\n", 0x12345,0x123);
pDrvCtrl =(RTL81X9END_DEVICE *)endFindByName("rtl", unit);
netPoolShow(pDrvCtrl->end.pNetPool);
}
void testConfigReg(void)
{
UINT32 temp;
UINT16 temp2;
UINT8 temp1;
temp2 = sysPciConfigInWord ((UINT32*)(0x800000E2));
temp = sysPciConfigInLong ((UINT32*)(0x800000E0));
temp1 = sysPciConfigInByte ((UINT8*)0x800000E2);
temp = sysPciConfigInLong ((UINT32*)(0x80000000 + MPC8240_CFG_MEM_CNTL_CFG_REG2));
temp = sysPciConfigInLong ((UINT32*)(0x80000050));
sysPciConfigOutLong ((UINT32*)(0x80000050), 0xaaaa5555);
temp = sysPciConfigInLong ((UINT32*)(0x80000050));
sysPciConfigOutLong ((UINT32*)(0x80000050), 0);
sysPciConfigOutByte ((UINT8*)0x8000000c, 0x04);
temp1 = sysPciConfigInByte ((UINT8*)0x8000000c);
sysPciConfigOutByte ((UINT8*)0x8000000c, 0x00);
temp1 = sysPciConfigInByte ((UINT8*)0x8000000c);
}
/* 测试电平中断 */
UINT32 g_dwInIntD =0;
void IsrIntD(void)
{
g_dwInIntD++;
if(g_dwInIntD == 10000)
{
intDisable (PMC_INTD_LVL);
}
}
void testLevelInt(void)
{
intConnect ( INUM_TO_IVEC ((unsigned int)PMC_INTD_LVL), IsrIntD, 0);
intEnable (PMC_INTD_LVL);
}
extern void FeedWatchDog(void);
void taskFeedDog(void)
{
while(1)
{
watchDogFeed();
taskDelay(sysClkRateGet());
}
}
void WatchDogTest(void)
{
taskSpawn("FeedWatch",
135,
0,
1000,
(FUNCPTR)taskFeedDog,
0,0,0,0,0,0,0,0,0,0);
}
void testLed(void)
{
ENABLE_S_RUN_LED;
DISABLE_S_RUN_LED;
ENABLE_S_RUN_LED;
ENABLE_S_ALARM_LED;
DISABLE_S_ALARM_LED;
ENABLE_S_ALARM_LED;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -