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

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

?? zl5011xmm.c

?? Zalink50114----TDMoIP芯片驅動源碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
         extMemBurstLength, 0, 0, 0, 0, 0);

   if ((extMemBurstLength < ZL5011X_MM_MIN_BURST_LENGTH) ||
      (extMemBurstLength > ZL5011X_MM_MAX_BURST_LENGTH))
   {
      status = ZL5011X_PARAMETER_INVALID;
   }

   if (status == ZL5011X_OK)
   {
      status = zl5011xWrite(zl5011xParams, ZL5011X_MM_BURSTL, extMemBurstLength);
      zl5011xParams->packetMemory.extMemBurstLength = extMemBurstLength;
   }
   return(status);
}

/*******************************************************************************

 Function:
    zl5011xMmTestPacketMemory

 Description:
   This function runs a software test on the packet memory, returning a bad
   status on error. Test mem by writing a counting value to successive locations,
   first counting up then repeat counting down (invert count).

 Inputs:
    zl5011xParams  Pointer to the structure for this device instance
   startAddr      start address,
   memSize        in bytes

 Outputs:
    none

 Returns:
   zlStatusE

 Remarks:

*******************************************************************************/
extern zlStatusE zl5011xMmTestPacketMemory(zl5011xParamsS *zl5011xParams, Uint32T startAddr, Uint32T memSize)
{
   zlStatusE status = ZL5011X_OK;
   zlStatusE result = ZL5011X_OK;
   Uint32T  count = 0, reso = sizeof(Uint32T);
   Uint32T writeValue = 0, readValue = 0xFFFFFFFF;
   Uint8T inverted;

#ifdef _DEBUG
   Uint32T traceFnFilterTemp;

   traceFnFilterTemp = zl5011xTraceFnFilter;

   /* turn off the read and write traces for the duration of the memory test */
   zl5011xTraceFnFilter &= ~(ZL5011X_READ | ZL5011X_WRITE);
#endif

   ZL5011X_TRACE(ZL5011X_MM_FN_ID, "zl5011xMmTestPacketMemory: start 0x%08x, memSize 0x%08x", startAddr, memSize, 0, 0, 0, 0);


   /* loop twice: first with count then inverted count */
   for(inverted = 0; inverted <= 1; inverted++)
   {
      if ((status!= ZL5011X_OK) || (result!= ZL5011X_OK))
      {
         break;
      }

      /* write to all specified locations */
      readValue = 0xFFFFFFFF;
      for(count = 0; count< memSize; count+= reso)
      {
         if (inverted == 0)
         {
            writeValue = count;
         }
         else
         {
            writeValue = ~count;
         }
         status = zl5011xWrite(zl5011xParams, count+ startAddr, writeValue);
      }

      /* check all mem locations */
      for(count = 0; count< memSize; count+= reso)
      {
         if ((status!= ZL5011X_OK) || (result!= ZL5011X_OK))
         {
            break;
         }
         if (inverted == 0)
         {
            writeValue = count;
         }
         else
         {
            writeValue = ~count;
         }
         status = zl5011xRead(zl5011xParams, count+ startAddr, &readValue);
         if (writeValue != readValue)
         {
            result = ZL5011X_PACKET_MEMORY_FAIL;
         }
      }
   }
   if (result == ZL5011X_OK)
   {
      ZL5011X_TRACE(ZL5011X_MM_FN_ID, "zl5011xMmTestPacketMemory: PASSED ", 0, 0, 0, 0, 0, 0);
   }
   else
   {
      ZL5011X_TRACE(ZL5011X_MM_FN_ID, "zl5011xMmTestPacketMemory: FAILED at address 0x%08x,"
                            " counting up(0)/down(1)=%d,  expected 0x%08x, "
                            " read 0x%08x",
                            count+ startAddr, inverted, writeValue, readValue, 0, 0);
   }

#ifdef _DEBUG
   /* the memory test is finished, so restore the settings for the read and write traces */
   zl5011xTraceFnFilter = traceFnFilterTemp;
#endif

   return(status);
}


/*******************************************************************************

 Function:
    zl5011xMmControlExternalMemory

 Description:
   This function can be used to put the external memory into low power modes.

 Inputs:
    zl5011xParams     Pointer to the structure for this device instance
    extMemReadiness  disable, sleep, enable

 Outputs:
    none

 Returns:
   zlStatusE

 Remarks:

*******************************************************************************/
extern zlStatusE zl5011xMmControlExternalMemory(zl5011xParamsS *zl5011xParams,
                                        zl5011xExtMemReadinessE extMemReadiness)
{
   zlStatusE status = ZL5011X_OK;

   ZL5011X_TRACE(ZL5011X_MM_FN_ID,
         "zl5011xMmControlExternalMemory: %d ",
         extMemReadiness, 0, 0, 0, 0, 0);

   if ((extMemReadiness>= ZL5011X_MM_DISABLED) && (extMemReadiness <= ZL5011X_MM_SLEEP))
   {
      status = zl5011xWrite(zl5011xParams, ZL5011X_MM_EMEMENB, extMemReadiness);
   }
   else
   {
      status = ZL5011X_PARAMETER_INVALID;
   }

   if (status == ZL5011X_OK)
   {
      zl5011xParams->packetMemory.extMemReadiness = extMemReadiness;
   }

   return(status);
}

/*******************************************************************************
 Function:
    zl5011xMmSetParityMode

 Description:
   This function sets parity of ext memory

 Inputs:
    zl5011xParams  Pointer to the structure for this device instance
    extMemParity  none, odd, OR even

 Outputs:
    none

 Returns:
   zlStatusE

 Remarks:

*******************************************************************************/

extern zlStatusE zl5011xMmSetParityMode(zl5011xParamsS *zl5011xParams,
      zl5011xExtMemParityE extMemParity)
{
   zlStatusE status = ZL5011X_OK;

   ZL5011X_TRACE(ZL5011X_MM_FN_ID, "zl5011xMmSetParityMode: %d ",
         extMemParity, 0, 0, 0, 0, 0);

   switch (extMemParity)
   {
      case ZL5011X_MM_PARITY_NONE:       /* fall through intended */
      case ZL5011X_MM_PARITY_ODD:        /* fall through intended */
      case ZL5011X_MM_PARITY_EVEN:
         status = zl5011xWrite(zl5011xParams, ZL5011X_MM_EMEMPARITY1, extMemParity);
         break;

      default:
         status = ZL5011X_PARAMETER_INVALID;
         break;
   }

   if (status == ZL5011X_OK)
   {
      zl5011xParams->packetMemory.extMemParity = extMemParity;
   }

   return(status);
}

/*******************************************************************************

 Function:
    zl5011xMmSetParityErrorThreshold

 Description:
   This function sets the parity trip point.

 Inputs:
    zl5011xParams           Pointer to the structure for this device instance
    extMemParityTripPoint  number of parity failures that cause an interrupt.

 Outputs:
    none

 Returns:
   zlStatusE

 Remarks:
   Also resets the parity count to 0, to give a known start condition.

*******************************************************************************/

extern zlStatusE zl5011xMmSetParityErrorThreshold(zl5011xParamsS *zl5011xParams,
      Uint32T extMemParityTripPoint)
{
   Uint8T pExtMemParityCount;
   zl5011xBooleanE pExtMemParityFailed;
   zlStatusE status = ZL5011X_OK;

   ZL5011X_TRACE(ZL5011X_MM_FN_ID, "zl5011xMmSetParityErrorThreshold: 0x%08x ",
               extMemParityTripPoint, 0, 0, 0, 0, 0);

   if (extMemParityTripPoint > ZL5011X_EMEMPARITY2_LIMIT)
   {
      extMemParityTripPoint = ZL5011X_EMEMPARITY2_LIMIT;
   }

   status = zl5011xWrite(zl5011xParams, ZL5011X_MM_EMEMPARITY2, extMemParityTripPoint);
   zl5011xParams->packetMemory.extMemParityTripPoint = extMemParityTripPoint;

   if (status == ZL5011X_OK)
   {
      /* force the parity count to 0 by reading the register */
      status = zl5011xMmGetParityStatus(zl5011xParams, &pExtMemParityCount,
            &pExtMemParityFailed);
   }

   return(status);
}

/*******************************************************************************

 Function:
    zl5011xMmGetParityStatus

 Description:
   This function gets the count of parity failures from the EMEMPTYCNT register,
   which also contains a boolean indicator of parity fail.

 Inputs:
    zl5011xParams      Pointer to the structure for this device instance

 Outputs:
    pExtMemParityCount  count of parity fails.
    pExtMemParityFailed indicates a failure has occurred.

 Returns:
   zlStatusE

 Remarks:

*******************************************************************************/

extern zlStatusE zl5011xMmGetParityStatus(zl5011xParamsS  *zl5011xParams, Uint8T *pExtMemParityCount,
                                  zl5011xBooleanE *pExtMemParityFailed)
{
   zlStatusE status = ZL5011X_OK;
   Uint32T readValue;

   status = zl5011xRead(zl5011xParams, ZL5011X_MM_EMEMPTYCNT, &readValue);
   if (status == ZL5011X_OK)
   {
      if ((readValue & ZL5011X_1BIT_MASK)== 0)
      {
         *pExtMemParityFailed = ZL5011X_FALSE;
      }
      else
      {
         *pExtMemParityFailed = ZL5011X_TRUE;
         *pExtMemParityCount = (Uint8T)((readValue >> ZL5011X_MM_PARITY_FAIL_COUNT_LSB)& ZL5011X_4BIT_MASK);
      }
   }
   ZL5011X_TRACE(ZL5011X_MM_FN_ID, "zl5011xMmGetParityStatus: Parity count %2d"
                         "Parity fail %d (1=FAIL, 0= OK)",
                         *pExtMemParityCount, *pExtMemParityFailed, 0, 0, 0, 0);
   return(status);
}

/*******************************************************************************

 Function:

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜桃在线一区二区三区| 一区二区三区四区高清精品免费观看| 99国产精品久久久久久久久久久| 狠狠久久亚洲欧美| 精品一二三四区| 九九热在线视频观看这里只有精品| 亚洲国产欧美在线人成| 亚洲国产日韩一级| 天堂成人免费av电影一区| 午夜精品久久久久久久99樱桃| 亚洲妇熟xx妇色黄| 午夜成人免费视频| 麻豆成人91精品二区三区| 久久精品二区亚洲w码| 日韩高清不卡在线| 久久福利视频一区二区| 国产九色sp调教91| 99国产精品久久久久久久久久久| 91丨porny丨国产入口| 欧美三区在线观看| 日韩一级片在线观看| 国产视频在线观看一区二区三区 | 天天av天天翘天天综合网| 亚洲综合在线电影| 天天操天天色综合| 国产乱码精品一区二区三区忘忧草 | 有码一区二区三区| 日本大胆欧美人术艺术动态| 久久se这里有精品| 94色蜜桃网一区二区三区| 欧美老肥妇做.爰bbww| 欧美不卡在线视频| 综合av第一页| 精品一区二区在线观看| 不卡一区中文字幕| 日韩西西人体444www| 国产精品久久久久久久浪潮网站| 亚洲一区二区美女| 国产盗摄一区二区三区| 欧美体内she精高潮| 久久久国际精品| 亚洲自拍都市欧美小说| 国产麻豆日韩欧美久久| 欧美天堂一区二区三区| 国产日韩欧美综合一区| 日韩二区三区四区| 91在线你懂得| 国产亚洲一区二区三区| 青青青爽久久午夜综合久久午夜| eeuss鲁片一区二区三区| 欧美一区二区三区白人| 亚洲天堂2014| 粉嫩绯色av一区二区在线观看 | 欧美日韩国产另类一区| 久久精品男人的天堂| 日本不卡的三区四区五区| 色综合天天狠狠| 久久精品一区二区| 美日韩一区二区| 欧美视频日韩视频| 一区二区三区日韩欧美精品| 国产精品一卡二卡| 久久综合成人精品亚洲另类欧美 | 91啪亚洲精品| 国产网站一区二区三区| 全国精品久久少妇| 欧美在线高清视频| 一区二区三区免费看视频| 成人精品视频一区二区三区尤物| 精品播放一区二区| 久久精品国产精品青草| 日韩午夜激情免费电影| 视频一区视频二区中文| 欧美日韩视频专区在线播放| 中文字幕佐山爱一区二区免费| 国产成人精品综合在线观看 | 一区二区三区四区在线免费观看| 国产精品77777竹菊影视小说| 精品入口麻豆88视频| 青青草成人在线观看| 日韩一区二区精品葵司在线| 午夜视频在线观看一区二区| 欧美区一区二区三区| 三级成人在线视频| 欧美不卡视频一区| 岛国一区二区三区| 中文字幕一区二区视频| 色欧美片视频在线观看| 一区二区三区欧美视频| 欧美日韩国产首页在线观看| 日韩精品一级中文字幕精品视频免费观看 | 色美美综合视频| 亚洲国产日产av| 欧美变态tickling挠脚心| 黄网站免费久久| 国产精品久久久久影院老司| 97久久超碰国产精品| 日韩精品视频网站| www久久精品| 成人综合婷婷国产精品久久| 亚洲靠逼com| 91精品国产综合久久小美女| 国产精品一区一区| 日韩毛片一二三区| 欧美一区在线视频| 成人自拍视频在线| 五月天激情综合网| 国产亚洲美州欧州综合国| 色综合久久中文综合久久97| 日韩经典中文字幕一区| 欧美国产精品中文字幕| 欧美日韩美少妇| 国产成人久久精品77777最新版本| 国产精品成人免费| 日韩欧美另类在线| 91视频在线观看| 韩国欧美国产一区| 亚洲午夜久久久久久久久久久 | 日本二三区不卡| 麻豆成人免费电影| 亚洲一区二区三区爽爽爽爽爽| 日韩精品综合一本久道在线视频| 99久久国产综合精品色伊| 免费成人av在线| 亚洲黄网站在线观看| 国产片一区二区三区| 欧美日韩一区二区三区视频| 成人在线视频一区| 经典三级视频一区| 天天影视色香欲综合网老头| 成人欧美一区二区三区视频网页| 日韩免费电影一区| 777亚洲妇女| 91久久精品一区二区二区| 国产成人自拍网| 免费观看一级欧美片| 亚洲国产精品嫩草影院| 综合激情网...| 国产精品视频一二三| 欧美成人精精品一区二区频| 666欧美在线视频| 欧美性生活一区| 色综合久久九月婷婷色综合| 高潮精品一区videoshd| 国产专区欧美精品| 九色综合国产一区二区三区| 丝袜国产日韩另类美女| 午夜av一区二区| 性欧美疯狂xxxxbbbb| 午夜欧美电影在线观看| 午夜视频一区二区| 亚洲国产精品久久艾草纯爱| 一区二区三区日韩精品视频| 亚洲视频在线观看三级| 亚洲精品日日夜夜| 一级日本不卡的影视| 依依成人精品视频| 亚洲最新视频在线播放| 亚洲午夜私人影院| 婷婷国产v国产偷v亚洲高清| 日日欢夜夜爽一区| 久久精品久久精品| 黄色精品一二区| 高潮精品一区videoshd| 成人av一区二区三区| 99久久婷婷国产综合精品电影| 成人av先锋影音| 91久久一区二区| 91精品国产一区二区三区蜜臀 | 成人综合婷婷国产精品久久| 成人免费毛片嘿嘿连载视频| 91浏览器打开| 在线综合+亚洲+欧美中文字幕| 91精品免费在线| 国产日韩欧美电影| 亚洲欧美另类小说| 天堂va蜜桃一区二区三区漫画版| 久久国产精品区| 99国产欧美另类久久久精品| 欧美日韩精品一区二区在线播放| 精品欧美黑人一区二区三区| 国产午夜一区二区三区| 亚洲人精品午夜| 美女视频黄久久| 成人91在线观看| 日韩欧美视频一区| 日韩一区在线看| 蜜桃精品视频在线| 色综合久久66| 久久久不卡网国产精品二区| 1024成人网| 极品瑜伽女神91| 欧美午夜精品一区二区三区| 久久久国产一区二区三区四区小说 | 久久精品免费观看| 9i看片成人免费高清| 在线不卡欧美精品一区二区三区| 久久久亚洲国产美女国产盗摄| 亚洲综合av网| 91日韩一区二区三区|