1.修改confignet.h中的数组END_TBL_ENTRY endDevTbl [],在其中添加要加载的end驱动的一个表项,这个表项中包含:设备单元号、load装载函数、load buffer等等。如果需要加载多个则需要全部添加到表中。
2.在usrRoot()中会对END_TBL_ENTRY endDevTbl []表中的end驱动进行初始化:
for (count = 0, pDevTbl = endDevTbl; count < (int)(NELEMENTS(endDevTbl));
pDevTbl++, count++)
{
if (pDevTbl->endLoadFunc != NULL)
{
cookieTbl[count].pCookie = muxDevLoad (pDevTbl->unit, pDevTbl->endLoadFunc,
pDevTbl->endLoadString,
pDevTbl->endLoan, pDevTbl->pBSP);
if (cookieTbl[count].pCookie == NULL)
{
printf ("muxLoad failed!/n");
}
cookieTbl[count].unitNo=pDevTbl->unit;
bzero((void *)cookieTbl[count].devName,END_NAME_MAX);
pDevTbl->endLoadFunc((char*)cookieTbl[count].devName, NULL);
}
}
3.如果整个初始化过程都没有问题,接下来判断中断是否正确,是否能产生中断:
中断的挂载是在END_TBL_ENTRY endDevTbl []中指定的load装载函数中完成的,通过在中断处理函数中加打印(不能用printf)或者点灯或者累加一个全局变量的方式来判断中断处理函数挂载的是否正确。
4.如果中断没有问题则需要判断是整个路径上什么位置出现了问题,通过配置回环(loopback)来进行判断。以FCC为例:首先在CPU FCC端配置一个loopback,把GFMR1的DIAG域配置为01,FPSMR的PRO域配置为1。如果能够ping通说明cpu端没有问题。接下来在PHY芯片配置一个loopback,以此类推,由近及远的配置loopback来判断整个通路上什么位置出现了问题。
vxworks end驱动的调试
最新推荐文章于 2023-12-03 19:49:23 发布