亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pc1394regaccesstest1.c

?? vxWorks下pc1394的驅動程序
?? C
?? 第 1 頁 / 共 5 頁
字號:
   /* CFG_ROM_MAP */
   ulTempData = pciReadLong((int)(pPc1394Dev.pciControllerSpace0 + CFG_ROM_MAP_ADR));

   pCfgRomAdrs = (unsigned long*)ulTempData;
   printf("pc1394DevCfgROMAccessTest: configROM addr = 0x%.8x\n\n", ulTempData);

   for(i = 0; i < 16; i++)
      {
      pCfgRomData[i] = pciReadLong((int)(ulTempData + i * 4));
      }

   for(i = 0; i < 16; i++)
      {
      printf("0x%.8x :     0x%.8x\n\n", ulTempData + i * 4, pCfgRomData[i]);
      }

   return(OK);
}

/******************************************************************************
TITLE:  	pc1394DevGetCfgROMHeader
DESC:   	routine to get config ROM header register of PC 1394 card   
PARAM:  	none
RETURN: 	ulTempData   - value return from Link 
******************************************************************************/
unsigned long pc1394DevGetCfgROMHeader(void)
{
   unsigned long ulTempData;

   ulTempData = pciReadLong((int)(pPc1394Dev.pciControllerSpace0 + CFG_ROM_HEADER_ADR));

   return(ulTempData);
}

/******************************************************************************
TITLE:  	pc1394DevGetBusIdentification
DESC:   	routine to get Bus Identification register of PC 1394 card   
PARAM:  	none
RETURN: 	ulTempData   - value return from Link 
******************************************************************************/
unsigned long pc1394DevGetBusIdentification(void)
{
   unsigned long ulTempData;

   ulTempData = pciReadLong((int)(pPc1394Dev.pciControllerSpace0 + BUS_ID_ADR));

   return(ulTempData);
}

/******************************************************************************
TITLE:  	pc1394DevGetBusOptions
DESC:   	routine to get Bus Options register of PC 1394 card   
PARAM:  	none
RETURN: 	ulTempData   - value return from Link 
******************************************************************************/
unsigned long pc1394DevGetBusOptions(void)
{
   unsigned long ulTempData;

   ulTempData = pciReadLong((int)(pPc1394Dev.pciControllerSpace0 + BUS_OPTION_ADR));

   return(ulTempData);
}

/******************************************************************************
TITLE:  	pc1394DevSetBusOptions
DESC:   	routine to get Bus Options register of PC 1394 card   
PARAM:  	ulRegData      - data to write to register
RETURN: 	OK          - operation runs successfully
         ERROR       - operation runs failed 
******************************************************************************/
unsigned long pc1394DevSetBusOptions(unsigned long ulRegData)
{
   pciWriteLong((int)(pPc1394Dev.pciControllerSpace0 + BUS_OPTION_ADR), ulRegData);

   return(ERROR);
}

/******************************************************************************
TITLE:  	pc1394DevGetBusMaxRec
DESC:   	routine to get BusOptions.max_rec of PC 1394 card   
PARAM:  	none
RETURN: 	ulTempData   - value return from Link 
******************************************************************************/
unsigned long pc1394DevGetBusMaxRec(void)
{
   unsigned long ulTempData;

   ulTempData = pc1394DevGetBusOptions();

   ulTempData = (ulTempData & 0x0000f000) >> 12;

   return(ulTempData);
}

/******************************************************************************
TITLE:  	pc1394DevSetBusMaxRec
DESC:   	routine to set BusOptions.max_rec of PC 1394 card   
PARAM:  	ulMaxRec     - data to write to the specific field of BusOptions register
RETURN: 	OK          - operation runs successfully
         ERROR       - operation runs failed

NOTE:    ulMaxRec should be 2^X format.         
******************************************************************************/
STATUS pc1394DevSetBusMaxRec(unsigned long ulMaxRec)
{
   unsigned long ulTempData;
   unsigned long ulTempMaxRec;

   if ((ulMaxRec > 65536) | (ulMaxRec < 4))
      {
      printf("pc1394DevSetBusMaxRec: parameter ulMaxRec should be in [4..65536].\n");
      return(ERROR);
      }
   switch (ulMaxRec)
      {
      case 4:
         ulTempMaxRec = 0x1;
         break;
      case 8:
         ulTempMaxRec = 0x2;
         break;
      case 16:
         ulTempMaxRec = 0x3;
         break;
      case 32:
         ulTempMaxRec = 0x4;
         break;
      case 64:
         ulTempMaxRec = 0x5;
         break;
      case 128:
         ulTempMaxRec = 0x6;
         break;
      case 256:
         ulTempMaxRec = 0x7;
         break;
      case 512:
         ulTempMaxRec = 0x8;
         break;
      case 1024:
         ulTempMaxRec = 0x9;
         break;
      case 2048:
         ulTempMaxRec = 0xa;
         break;
      case 4096:
         ulTempMaxRec = 0xb;
         break;
      case 8192:
         ulTempMaxRec = 0xc;
         break;
      case 16384:
         ulTempMaxRec = 0xd;
         break;
      case 32768:
         ulTempMaxRec = 0xe;
         break;
      default:
         printf("pc1394DevSetBusMaxRec: parameter ulMaxRec should be in 2^X format.\n");
         return(ERROR);         
      }

/*   
   printf("pc1394DevSetBusMaxRec: ulTempMaxRec = 0x%.4x\n", ulTempMaxRec);
*/     /* comment by chenxuhao at 2004-11-16 */

   ulTempData = pc1394DevGetBusOptions();

   ulTempData = (ulTempData & 0x00000007) | (ulTempMaxRec << 12);

/*   
   printf("pc1394DevSetBusMaxRec: ulTempData = 0x%.8x\n", ulTempData);
*/     /* comment by chenxuhao at 2004-11-16 */

   pc1394DevSetBusOptions(ulTempData);

   return(OK);
}

/******************************************************************************
TITLE:  	pc1394DevGetBusLinkSpeed
DESC:   	routine to get BusOptions.link_spd of PC 1394 card   
PARAM:  	none
RETURN: 	ulTempData   - value return from Link 
******************************************************************************/
unsigned long pc1394DevGetBusLinkSpeed(void)
{
   unsigned long ulTempData;

   ulTempData = pc1394DevGetBusOptions();

   ulTempData = ulTempData & 0x00000007;

   return(ulTempData);
}

/******************************************************************************
TITLE:  	pc1394DevSetBusLinkSpeed
DESC:   	routine to set BusOptions.LinkSpeed of PC 1394 card   
PARAM:  	ulLinkSpeed - data to write to the specific field of BusOptions register
RETURN: 	OK          - operation runs successfully
         ERROR       - operation runs failed 
******************************************************************************/
STATUS pc1394DevSetBusLinkSpeed(unsigned long ulLinkSpeed)
{
   unsigned long ulTempData;

   if (ulLinkSpeed > 2)
      {
      printf("pc1394DevSetBusMaxRec: parameter ulLinkSpeed should be less than 3.\n");
      return(ERROR);
      }

   ulTempData = pc1394DevGetBusOptions();

   ulTempData = (ulTempData & 0x0000f000) | ulLinkSpeed;

   pc1394DevSetBusOptions(ulTempData);

   return(OK);
}

/******************************************************************************
TITLE:  	pc1394DevGetPhyReg
DESC:   	routine to get specified PHY register
PARAM:  	ulRegAdrs   - which PHY reg to read
RETURN: 	ulPhyRdData - value return from PHY 
         ERROR       - operation runs failed
******************************************************************************/
int pc1394DevGetPhyReg(unsigned long ulRegAdrs)
{
   int iReadCount;
   unsigned long ulTempData;
   unsigned long ulPhyRegAdrs;
   unsigned long ulPhyRdAdrs;
   unsigned long ulPhyRdData;
   unsigned long *pCfgRomAdrs;

   ulPhyRegAdrs = ulRegAdrs;
/*
   printf("pc1394DevGetPhyReg: ulPhyRegAdrs = 0x%.8x\n", ulPhyRegAdrs);
*/
   ulTempData = (ulPhyRegAdrs << 8) | DATA_BIT15;
/*
printf("pc1394DevGetPhyReg: ulTempData = 0x%.8x\n", ulTempData);
*/
   pciWriteLong((int)(pPc1394Dev.pciControllerSpace0 + PHY_CTR_REG_ADR), ulTempData);

   iReadCount = 0;
   ulTempData = 0;
   while ((!(ulTempData & DATA_BIT31)) && (iReadCount < 30))
      {
      taskDelay(1);
      ulTempData = pciReadLong((int)(pPc1394Dev.pciControllerSpace0 + PHY_CTR_REG_ADR));
      iReadCount++;
      }
   
   if ((!(ulTempData & DATA_BIT31)) && (iReadCount == 30))
      {
      printf("pc1394DevGetPhyReg: read count error.\n");
      return(ERROR);
      }      

/*
printf("pc1394DevGetPhyReg: ulTempData = 0x%.8x\n", ulTempData);
*/
   ulPhyRdAdrs = (ulTempData & 0x0f000000) >> 24;
   if (ulPhyRegAdrs != ulPhyRdAdrs)
      {
      printf("pc1394DevGetPhyReg: read address error.\n");
      return(ERROR);
      }

   ulPhyRdData = (ulTempData & 0x00ff0000) >> 16;

   return(ulPhyRdData);
}

/******************************************************************************
TITLE:  	pc1394DevSetPhyReg
DESC:   	routine to set specified PHY register
PARAM:  	ulRegAdrs   - which PHY reg to write
         ulRegData   - data to write to the specific PHY reg
RETURN: 	OK          - operation runs successfully 
         ERROR       - operation runs failed
******************************************************************************/
STATUS pc1394DevSetPhyReg(unsigned long ulRegAdrs, unsigned long ulRegData)
{
   int iReadCount;
   unsigned long ulTempData;
   unsigned long ulPhyRegAdrs;
   unsigned long ulPhyRdAdrs;
   unsigned long ulPhyWrData;
   unsigned long *pCfgRomAdrs;

   ulPhyRegAdrs = ulRegAdrs;
   ulPhyWrData  = ulRegData;
/*
   printf("pc1394DevSetPhyReg: ulPhyRegAdrs = 0x%.8x\n", ulPhyRegAdrs);
*/
   ulTempData = ((ulPhyRegAdrs & 0xf) << 8) | DATA_BIT14 | (ulPhyWrData & 0xff);
/*
   printf("pc1394DevSetPhyReg: ulTempData = 0x%.8x\n", ulTempData);
*/
   pciWriteLong((int)(pPc1394Dev.pciControllerSpace0 + PHY_CTR_REG_ADR), ulTempData);

   iReadCount = 0;
   ulTempData = 0;
   while ((!(ulTempData & DATA_BIT31)) && (iReadCount < 30))
      {
      taskDelay(1);
      ulTempData = pciReadLong((int)(pPc1394Dev.pciControllerSpace0 + PHY_CTR_REG_ADR));
      iReadCount++;
      }
   
   if ((!(ulTempData & DATA_BIT31)) && (iReadCount == 30))
      {
      printf("pc1394DevSetPhyReg: read count error.\n");
      return(ERROR);
      }      

/*
   printf("pc1394DevSetPhyReg: ulTempData = 0x%.8x\n", ulTempData);

   ulPhyRdAdrs = (ulTempData & 0x0f000000) >> 24;
   if (ulPhyRegAdrs != ulPhyRdAdrs)
      {
      printf("pc1394DevSetPhyReg: read address error.\n");
      return(ERROR);
      }
*/
   return(OK);
}


/******************************************************************************
TITLE:  	pc1394DevGetPhyReg0Test
DESC:   	test routine to get PHY register 0
PARAM:  	none
RETURN: 	OK    - operation runs successfully
         ERROR - operation runs failed
******************************************************************************/
STATUS pc1394DevGetPhyReg0Test(void)
{
   int iReadCount;
   unsigned long ulTempData;
   unsigned long ulPhyRegAdrs;
   unsigned long ulPhyRdAdrs;
   unsigned long ulPhyRdData;
   unsigned long *pCfgRomAdrs;
   /* PHY_CTR_REG 0 */
   ulPhyRegAdrs = 0x0000;
   ulTempData = (ulPhyRegAdrs << 8) | DATA_BIT15;
   pciWriteLong((int)(pPc1394Dev.pciControllerSpace0 + PHY_CTR_REG_ADR), ulTempData);

   iReadCount = 0;
   ulTempData = 0;
   while ((!(ulTempData & DATA_BIT31)) && (iReadCount < 30))
      {
      taskDelay(1);
      ulTempData = pciReadLong((int)(pPc1394Dev.pciControllerSpace0 + PHY_CTR_REG_ADR));
      iReadCount++;
      }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
a4yy欧美一区二区三区| 国产精品你懂的在线欣赏| 久久蜜臀精品av| 亚洲国产一区二区视频| 成人福利电影精品一区二区在线观看| 在线播放亚洲一区| 综合激情成人伊人| 狠狠色狠狠色综合| 5月丁香婷婷综合| 一区二区三区中文字幕| 国产99久久久精品| 欧美大片在线观看一区二区| 亚洲高清免费观看 | 99久久综合色| 欧美精品一区二区精品网| 午夜精品久久久久久久 | 免费观看91视频大全| 91国产福利在线| 亚洲免费观看高清| 91天堂素人约啪| 亚洲人成小说网站色在线| 国产成人精品免费在线| 久久久久国产精品人| 裸体歌舞表演一区二区| 91精品国产入口| 视频一区二区三区在线| 欧美日韩综合在线| 亚洲午夜精品久久久久久久久| 91美女片黄在线观看| 亚洲天堂久久久久久久| 色综合激情久久| 一区二区在线观看av| 日本韩国一区二区三区视频| 亚洲欧美福利一区二区| 91亚洲精品乱码久久久久久蜜桃 | 99精品视频一区| 国产精品国产三级国产aⅴ原创| 国产69精品久久久久毛片| 中文字幕巨乱亚洲| 99久久综合精品| 亚洲在线成人精品| 欧美日韩精品电影| 伦理电影国产精品| 亚洲国产精品精华液ab| 色8久久人人97超碰香蕉987| 亚洲国产日韩综合久久精品| 欧美日韩视频在线第一区| 青娱乐精品视频在线| 久久久久国产精品免费免费搜索| 成人综合婷婷国产精品久久| 亚洲柠檬福利资源导航| 666欧美在线视频| 激情综合五月天| 国产精品短视频| 在线播放中文一区| 国产不卡高清在线观看视频| 国产精品美女久久久久aⅴ| 色综合网色综合| 免费观看30秒视频久久| 中文字幕乱码一区二区免费| 欧美日韩一区精品| 狠狠色狠狠色综合日日91app| 国产欧美久久久精品影院| 在线看国产一区二区| 欧美aaaaaa午夜精品| 国产精品久久久久影视| 欧美日韩一区二区三区视频| 国模套图日韩精品一区二区| 亚洲精品一卡二卡| 欧美成人vr18sexvr| 91在线码无精品| 久久91精品国产91久久小草| 亚洲欧洲国产日本综合| 日韩欧美中文字幕一区| 一本到一区二区三区| 国精品**一区二区三区在线蜜桃| 国产精品乱人伦中文| 91麻豆精品国产自产在线| va亚洲va日韩不卡在线观看| 欧美aaaaaa午夜精品| 亚洲欧美日韩中文字幕一区二区三区 | 欧美zozozo| 欧美视频日韩视频| 丁香五精品蜜臀久久久久99网站| 亚洲午夜成aⅴ人片| 国产精品久久久久毛片软件| 91精品国产一区二区三区香蕉| 9人人澡人人爽人人精品| 精品一区二区在线免费观看| 亚洲国产一区二区视频| 国产精品久久久爽爽爽麻豆色哟哟| 日韩欧美亚洲国产精品字幕久久久| 91色在线porny| 大美女一区二区三区| 蜜桃精品在线观看| 日韩精品电影一区亚洲| 亚洲一区二区三区四区在线| 综合av第一页| 1024国产精品| 国产精品色婷婷| 国产视频一区二区三区在线观看| 欧美一区二区三区小说| 欧美日韩一级片网站| 欧美视频中文字幕| 91精品福利在线| 色国产精品一区在线观看| 99久久免费精品高清特色大片| 粉嫩av一区二区三区在线播放| 精品亚洲国内自在自线福利| 另类小说一区二区三区| 全部av―极品视觉盛宴亚洲| 天天av天天翘天天综合网色鬼国产 | 91豆麻精品91久久久久久| 99久久综合99久久综合网站| eeuss鲁片一区二区三区| 成人国产精品免费观看视频| gogogo免费视频观看亚洲一| 成人av在线网站| 色综合 综合色| 色嗨嗨av一区二区三区| 欧美日韩一区二区在线视频| 欧美精品免费视频| 欧美精品v日韩精品v韩国精品v| 欧美精品 日韩| 日韩免费高清电影| 久久久激情视频| 国产精品久久久久久久久免费相片| 中文字幕一区日韩精品欧美| 亚洲美女屁股眼交3| 亚洲一卡二卡三卡四卡无卡久久 | 亚洲三级免费观看| 一区二区三区鲁丝不卡| 日韩激情中文字幕| 国产主播一区二区| 成人国产精品视频| 欧美日高清视频| 久久精品夜色噜噜亚洲a∨ | 久久久久国产精品麻豆ai换脸| 亚洲国产精品ⅴa在线观看| 亚洲人妖av一区二区| 五月激情丁香一区二区三区| 国产综合色产在线精品| 91伊人久久大香线蕉| 欧美精品在线一区二区| 国产日韩精品视频一区| 一区二区三区不卡在线观看 | 国产成人免费在线观看| 欧美视频中文字幕| 久久久精品综合| 亚洲va欧美va人人爽午夜 | 蜜桃免费网站一区二区三区| 成人美女视频在线观看| 欧美日韩中文一区| 欧美国产一区二区| 亚洲va天堂va国产va久| 成人午夜在线视频| 日韩欧美一二三| 一区二区高清在线| 国精品**一区二区三区在线蜜桃| 色悠悠久久综合| 久久久99精品久久| 日韩av中文字幕一区二区| 不卡视频一二三四| 欧美大度的电影原声| 一区二区三区中文在线观看| 国产成人精品影视| 欧美电影免费观看高清完整版在线观看| 中文字幕一区三区| 国产传媒久久文化传媒| 91精品久久久久久久久99蜜臂| 亚洲欧洲一区二区三区| 狠狠色狠狠色综合| 91精品国产91热久久久做人人| 国产精品灌醉下药二区| 国产乱码精品一区二区三区av| 欧美群妇大交群中文字幕| 亚洲欧美激情在线| thepron国产精品| 国产精品水嫩水嫩| 国产一区二区美女| 日韩欧美国产小视频| 五月综合激情婷婷六月色窝| 91色在线porny| 中文字幕一区二区三区乱码在线| 国产麻豆视频一区二区| 欧美va在线播放| 热久久国产精品| 欧美电影免费观看高清完整版在线观看| 亚洲一区二区在线观看视频| 色综合天天综合狠狠| 国产精品国产三级国产| 不卡高清视频专区| 国产精品久久久久一区| 波多野结衣精品在线| 中文字幕电影一区| 成人av电影观看| 亚洲三级在线免费| 欧美性受xxxx黑人xyx性爽| 亚洲黄色片在线观看| 色婷婷亚洲婷婷|