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

📄 hfctldevaccesstest.c

📁 vxworks下跳频控制的驱动
💻 C
📖 第 1 页 / 共 5 页
字号:
      printf("hfCtlDevTest: HFCtlPmcGetRegMailbox7() failed.\n");
      close(iHfCtlFd);
      return(ERROR);
      }

   if (iDevTestDebug)
      {
      printf("hfCtlDevTest: after Set mailbox7, MBOX7 = 0x%.8x\n", *pTempData);
      }
#endif /* if 0 */

   /* get Runtime register CNTRL */
   iStatus = HFCtlPmcGetRegRtControl(iHfCtlFd, pTempData);

   if (iStatus == ERROR)
      {
      printf("hfCtlDevTest: HFCtlPmcGetRegRtControl() failed.\n");
      close(iHfCtlFd);
      return(ERROR);
      }

   if (iDevTestDebug)
      {
      printf("hfCtlDevTest: CNTRL = 0x%.8x\n", *pTempData);
      }

   /* get Local configuration register LAS0BA */
   iStatus = HFCtlPmcGetRegLocalAdrsSpace0BaseAdrs(iHfCtlFd, pTempData);

   if (iStatus == ERROR)
      {
      printf("hfCtlDevTest: HFCtlPmcGetRegLocalAdrsSpace0BaseAdrs() failed.\n");
      close(iHfCtlFd);
      return(ERROR);
      }

   if (iDevTestDebug)
      {
      printf("hfCtlDevTest: LAS0BA = 0x%.8x\n", *pTempData);
      }

   /* set Local configuration register LAS0BA bit 0 */
   ulRegData = (*pTempData) | 0x1;

   if (iDevTestDebug)
      {
      printf("hfCtlDevTest: ulRegData = 0x%.8x\n", ulRegData);
      }

   iStatus = HFCtlPmcSetRegLocalAdrsSpace0BaseAdrs(iHfCtlFd, ulRegData);

   if (iStatus == ERROR)
      {
      printf("hfCtlDevTest: HFCtlPmcSetRegLocalAdrsSpace0BaseAdrs() failed.\n");
      close(iHfCtlFd);
      return(ERROR);
      }

   /* get Local configuration register LAS0BA */
   iStatus = HFCtlPmcGetRegLocalAdrsSpace0BaseAdrs(iHfCtlFd, pTempData);

   if (iStatus == ERROR)
      {
      printf("hfCtlDevTest: HFCtlPmcGetRegLocalAdrsSpace0BaseAdrs() failed.\n");
      close(iHfCtlFd);
      return(ERROR);
      }

   if (iDevTestDebug)
      {
      printf("hfCtlDevTest: after set LAS0BA, LAS0BA = 0x%.8x\n", *pTempData);
      }

#if 0
   /* get PCI configuration register PCIBAR2 */
   iStatus = HFCtlPmcGetRegPciBaseAdrs2(iHfCtlFd, pTempData);

   if (iStatus == ERROR)
      {
      printf("hfCtlDevTest: HFCtlPmcGetRegPciBaseAdrs2() failed.\n");
      close(iHfCtlFd);
      return(ERROR);
      }

   if (iDevTestDebug)
      {
      printf("hfCtlDevTest: PCIBAR2 = 0x%.8x\n", *pTempData);
      }

   /* set PCI configuration register PCIBAR2 to all ones */
   ulRegData = 0xffffffff;

   if (iDevTestDebug)
      {
      printf("hfCtlDevTest: ulRegData = 0x%.8x\n", ulRegData);
      }

   iStatus = HFCtlPmcSetRegPciBaseAdrs2(iHfCtlFd, ulRegData);

   if (iStatus == ERROR)
      {
      printf("hfCtlDevTest: HFCtlPmcSetRegPciBaseAdrs2() failed.\n");
      close(iHfCtlFd);
      return(ERROR);
      }

   /* get PCI configuration register PCIBAR2 after set */
   iStatus = HFCtlPmcGetRegPciBaseAdrs2(iHfCtlFd, pTempData);

   if (iStatus == ERROR)
      {
      printf("hfCtlDevTest: HFCtlPmcGetRegPciBaseAdrs2() failed.\n");
      close(iHfCtlFd);
      return(ERROR);
      }

   if (iDevTestDebug)
      {
      printf("hfCtlDevTest: after set PCIBAR2, PCIBAR2 = 0x%.8x\n", *pTempData);
      }
#endif /* if 0 */

#if 0
   /* get PCI configuration register PCICR */
   iStatus = HFCtlPmcGetRegPciCommand(iHfCtlFd, pTempData);

   if (iStatus == ERROR)
      {
      printf("hfCtlDevTest: HFCtlPmcGetRegPciCommand() failed.\n");
      close(iHfCtlFd);
      return(ERROR);
      }

   if (iDevTestDebug)
      {
      printf("hfCtlDevTest: PCICR = 0x%.8x\n", *pTempData);
      }
#endif /* if 0 */

   pLocalSpace0Adrs = (unsigned long *)(HFCtlPmcDev.boardDataSpace0);

   if (iDevTestDebug)
      {
      printf("hfCtlDevTest: pLocalSpace0Adrs = 0x%.8x\n", pLocalSpace0Adrs);
      }
   
#if 0
   for(i = 0; i < 4; i++)
      {
      printf("hfCtlDevTest: 0x%.8x = 0x%.8x\n", &pLocalSpace0Adrs[i], pLocalSpace0Adrs[i]);
      }
#endif /* if 0 */

   /* close the device */
   close(iHfCtlFd);

   return(OK);
}

STATUS hfCtlDevLocalSpace0ReadTest(int iReadTime)
{
   int   i;
   int   iHfCtlFd;
   int   iStatus;
   char  hfCtldevName[15];
   unsigned long ulRegData;
   unsigned char ucRegCharData;
   unsigned long *pTempData;
   unsigned char *pTempCharData;
   unsigned long *pLocalSpace0Adrs;
   unsigned long *pLocalSpace1Adrs;

	sprintf(hfCtldevName, "/HFCtlPmc/0");
   
   /* open the device */
   iHfCtlFd = open(hfCtldevName, O_RDWR, 0644);

   if (iHfCtlFd == ERROR)
      {
      printf("hfCtlDevLocalSpace0ReadTest: Unable to open HfCtlDev device!\n");
      return(ERROR);
      }

   iStatus = HFCtlPmcGetRegLAS0Range(iHfCtlFd, pTempData);

   if (iStatus == ERROR)
      {
      printf("hfCtlDevLocalSpace0ReadTest: HFCtlPmcGetRegLAS0Range() failed.\n");
      close(iHfCtlFd);
      return(ERROR);
      }

   if (iDevTestDebug)
      {
      printf("hfCtlDevLocalSpace0ReadTest: LAS0RR = 0x%.8x\n", *pTempData);
      }

#if 0
   iStatus = HFCtlPmcSetRegLAS0Range(iHfCtlFd, 0xfffff000);

   if (iStatus == ERROR)
      {
      printf("hfCtlDevLocalSpace0ReadTest: HFCtlPmcSetRegLAS0Range() failed.\n");
      close(iHfCtlFd);
      return(ERROR);
      }

   iStatus = HFCtlPmcGetRegLAS0Range(iHfCtlFd, pTempData);

   if (iStatus == ERROR)
      {
      printf("hfCtlDevLocalSpace0ReadTest: HFCtlPmcGetRegLAS0Range() failed.\n");
      close(iHfCtlFd);
      return(ERROR);
      }

   if (iDevTestDebug)
      {
      printf("hfCtlDevLocalSpace0ReadTest: after set LAS0Range, LAS0RR = 0x%.8x\n", *pTempData);
      }
#endif /* if 0 */

   /* get Local configuration register LAS0BA */
   iStatus = HFCtlPmcGetRegLocalAdrsSpace0BaseAdrs(iHfCtlFd, pTempData);

   if (iStatus == ERROR)
      {
      printf("hfCtlDevLocalSpace0ReadTest: HFCtlPmcGetRegLocalAdrsSpace0BaseAdrs() failed.\n");
      close(iHfCtlFd);
      return(ERROR);
      }

   if (iDevTestDebug)
      {
      printf("hfCtlDevLocalSpace0ReadTest: LAS0BA = 0x%.8x\n", *pTempData);
      }

   /* set Local configuration register LAS0BA bit 0 */
   ulRegData = (*pTempData) | 0x1;

   if (iDevTestDebug)
      {
      printf("hfCtlDevLocalSpace0ReadTest: ulRegData = 0x%.8x\n", ulRegData);
      }

   iStatus = HFCtlPmcSetRegLocalAdrsSpace0BaseAdrs(iHfCtlFd, ulRegData);

   if (iStatus == ERROR)
      {
      printf("hfCtlDevLocalSpace0ReadTest: HFCtlPmcSetRegLocalAdrsSpace0BaseAdrs() failed.\n");
      close(iHfCtlFd);
      return(ERROR);
      }

   /* get Local configuration register LAS0BA */
   iStatus = HFCtlPmcGetRegLocalAdrsSpace0BaseAdrs(iHfCtlFd, pTempData);

   if (iStatus == ERROR)
      {
      printf("hfCtlDevLocalSpace0ReadTest: HFCtlPmcGetRegLocalAdrsSpace0BaseAdrs() failed.\n");
      close(iHfCtlFd);
      return(ERROR);
      }

   if (iDevTestDebug)
      {
      printf("hfCtlDevLocalSpace0ReadTest: after set LAS0BA, LAS0BA = 0x%.8x\n", *pTempData);
      }

   /* get Local configuration register MARBR */
   iStatus = HFCtlPmcGetRegModeArbitration(iHfCtlFd, pTempData);

   if (iStatus == ERROR)
      {
      printf("hfCtlDevLocalSpace0ReadTest: HFCtlPmcGetRegModeArbitration() failed.\n");
      close(iHfCtlFd);
      return(ERROR);
      }

   if (iDevTestDebug)
      {
      printf("hfCtlDevLocalSpace0ReadTest: MARBR = 0x%.8x\n", *pTempData);
      }

   /* set Local configuration register MARBR */
   ulRegData = 0x00210010;

   if (iDevTestDebug)
      {
      printf("hfCtlDevLocalSpace0ReadTest: ulRegData = 0x%.8x\n", ulRegData);
      }

   iStatus = HFCtlPmcSetRegModeArbitration(iHfCtlFd, ulRegData);

   if (iStatus == ERROR)
      {
      printf("hfCtlDevLocalSpace0ReadTest: HFCtlPmcSetRegModeArbitration() failed.\n");
      close(iHfCtlFd);
      return(ERROR);
      }

   /* get Local configuration register MARBR */
   iStatus = HFCtlPmcGetRegModeArbitration(iHfCtlFd, pTempData);

   if (iStatus == ERROR)
      {
      printf("hfCtlDevLocalSpace0ReadTest: HFCtlPmcGetRegModeArbitration() failed.\n");
      close(iHfCtlFd);
      return(ERROR);
      }

   if (iDevTestDebug)
      {
      printf("hfCtlDevLocalSpace0ReadTest: after set MARBR, MARBR = 0x%.8x\n", *pTempData);
      }

   /* get Local configuration register BIGEND */
   iStatus = HFCtlPmcGetRegBigEndianDesc(iHfCtlFd, pTempCharData);

   if (iStatus == ERROR)
      {
      printf("hfCtlDevLocalSpace0ReadTest: HFCtlPmcGetRegBigEndianDesc() failed.\n");
      close(iHfCtlFd);
      return(ERROR);
      }

   if (iDevTestDebug)
      {
      printf("hfCtlDevLocalSpace0ReadTest: BIGEND = 0x%.8x\n", *pTempCharData);
      }

   /* set Local configuration register BIGEND */
   ucRegCharData = 0xee; /*0x00;*/

   if (iDevTestDebug)
      {
      printf("hfCtlDevLocalSpace0ReadTest: ucRegCharData = 0x%.2x\n", ucRegCharData);
      }

   iStatus = HFCtlPmcSetRegBigEndianDesc(iHfCtlFd, ucRegCharData);

   if (iStatus == ERROR)
      {
      printf("hfCtlDevLocalSpace0ReadTest: HFCtlPmcSetRegBigEndianDesc() failed.\n");
      close(iHfCtlFd);
      return(ERROR);
      }

   /* get Local configuration register BIGEND */
   iStatus = HFCtlPmcGetRegBigEndianDesc(iHfCtlFd, pTempCharData);

   if (iStatus == ERROR)
      {
      printf("hfCtlDevLocalSpace0ReadTest: HFCtlPmcGetRegBigEndianDesc() failed.\n");
      close(iHfCtlFd);
      return(ERROR);
      }

   if (iDevTestDebug)
      {
      printf("hfCtlDevLocalSpace0ReadTest: after set BIGEND, BIGEND = 0x%.8x\n", *pTempCharData);
      }

   /* get Local configuration register LMISC1 */
   iStatus = HFCtlPmcGetRegLocalMisc1(iHfCtlFd, pTempCharData);

   if (iStatus == ERROR)
      {
      printf("hfCtlDevLocalSpace0ReadTest: HFCtlPmcGetRegLocalMisc1() failed.\n");
      close(iHfCtlFd);
      return(ERROR);
      }

   if (iDevTestDebug)
      {
      printf("hfCtlDevLocalSpace0ReadTest: LMISC1 = 0x%.8x\n", *pTempCharData);
      }

   /* set Local configuration register LMISC1 */
   ucRegCharData = 0x05;

   if (iDevTestDebug)
      {
      printf("hfCtlDevLocalSpace0ReadTest: ucRegCharData = 0x%.8x\n", ucRegCharData);
      }

   iStatus = HFCtlPmcSetRegLocalMisc1(iHfCtlFd, ucRegCharData);

   if (iStatus == ERROR)
      {
      printf("hfCtlDevLocalSpace0ReadTest: HFCtlPmcSetRegLocalMisc1() failed.\n");
      close(iHfCtlFd);
      return(ERROR);
      }

   /* get Local configuration register LMISC1 */
   iStatus = HFCtlPmcGetRegLocalMisc1(iHfCtlFd, pTempCharData);

   if (iStatus == ERROR)
      {
      printf("hfCtlDevLocalSpace0ReadTest: HFCtlPmcGetRegLocalMisc1() failed.\n");
      close(iHfCtlFd);
      return(ERROR);
      }

   if (iDevTestDebug)
      {
      printf("hfCtlDevLocalSpace0ReadTest: after set LMISC1, LMISC1 = 0x%.8x\n", *pTempCharData);
      }

   /* get Local configuration register LMISC2 */
   iStatus = HFCtlPmcGetRegLocalMisc2(iHfCtlFd, pTempCharData);

   if (iStatus == ERROR)
      {
      printf("hfCtlDevLocalSpace0ReadTest: HFCtlPmcGetRegLocalMisc2() failed.\n");
      close(iHfCtlFd);
      return(ERROR);
      }

   if (iDevTestDebug)
      {
      printf("hfCtlDevLocalSpace0ReadTest: LMISC2 = 0x%.8x\n", *pTempCharData);
      }

   /* set Local configuration register LMISC2 */
   ucRegCharData = 0x01;

   if (iDevTestDebug)
      {
      printf("hfCtlDevLocalSpace0ReadTest: ucRegCharData = 0x%.8x\n", ucRegCharData);
      }

   iStatus = HFCtlPmcSetRegLocalMisc2(iHfCtlFd, ucRegCharData);

   if (iStatus == ERROR)
      {
      printf("hfCtlDevLocalSpace0ReadTest: HFCtlPmcSetRegLocalMisc2() failed.\n");
      close(iHfCtlFd);
      return(ERROR);
      }

   /* get Local configuration register LMISC2 */
   iStatus = HFCtlPmcGetRegLocalMisc2(iHfCtlFd, pTempCharData);

   if (iStatus == ERROR)
      {
      printf("hfCtlDevLocalSpace0ReadTest: HFCtlPmcGetRegLocalMisc2() failed.\n");
      close(iHfCtlFd);
      return(ERROR);
      }

   if (iDevTestDebug)
      {
      printf("hfCtlDevLocalSpace0ReadTest: after set LMISC2, LMISC2 = 0x%.8x\n", *pTempCharData);
      }

   /* get Local configuration register LBRD0 */
   iStatus = HFCtlPmcGetRegLocalBusSpace0RegionDesc(iHfCtlFd, pTempData);

   if (iStatus == ERROR)
      {
      printf("hfCtlDevLocalSpace0ReadTest: HFCtlPmcGetRegLocalBusSpace0RegionDesc() failed.\n");
      close(iHfCtlFd);
      return(ERROR);
      }

   if (iDevTestDebug)
      {
      printf("hfCtlDevLocalSpace0ReadTest: LBRD0 = 0x%.8x\n", *pTempData);
      }

   /* set Local configuration register LBRD0 */
/*
   ulRegData = 0x80430303;
*/
   ulRegData = 0x80430343; /* enable READY */

   if (iDevTestDebug)
      {
      printf("hfCtlDevLocalSpace0ReadTest: ulRegData = 0x%.8x\n", ulRegData);
      }

   iStatus = HFCtlPmcSetRegLocalBusSpace0RegionDesc(iHfCtlFd, ulRegData);

⌨️ 快捷键说明

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