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

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

?? zl5011xmm.c

?? Zalink50114----TDMoIP芯片驅動源碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
/*******************************************************************************
*
*  File name:              zl5011xMm.c
*
*  Version:                26
*
*  Author:                 PJE
*
*  Date created:           03/04/2002
*
*  Copyright 2002, 2003, 2004, 2005, Zarlink Semiconductor Limited.
*  All rights reserved.
*
*  Module Description:
*
*  This file contains all the functions that will initialise and control
*  the MM block.
*
*  Revision History:
*
*  Rev:  Date:       Author:  Comments:
*  1     03/04/2002  PJE      Bit twiddling done
*  2     03/04/2002  PJE      Update
*  3     04/04/2002  PJE      Bit twiddling done
*  4     04/04/2002  PJE      Bit twiddling - some corrections
*  5     05/04/2002  PJE      structure initialised
*  6     26/04/2002  MRC      Changed some data names in response to comments
*                             from Thomas, regarding the MIB interface.
*  7     30/04/2002  MRC      Changed MM init, so that it does not return
*                             the MBIST results.
*  8     09/05/2002  MRC      Added external memory enable to cofigure fn
*  9     13/06/2002  PJE      MmAlloc & MmFree coded.
*
*  10    14/06/2002  PJE      Update
*  11    20/06/2002  MRC      If _NO_DEVICE is set then don't do memory check
*  12    20/06/2002  MRC      Changed defines to control memory checks
*  13    10/07/2002  PJE      Chip simplified- functions removed.
*  14    18/07/2002  MRC      Moved the memory alloc table into the device
*                             structure
*  15    19/07/2002  MRC      Modified memory alloc fns
*  16    01/10/2002  DJA      File header modified
*                             ZL5011X_TRACE messages fixed up
*  17    03/10/2002  MRC      Turned off read and write tracing in memory test
*  18    03/10/2002  MRC      Renamed no memory test define
*  19    25/10/2002  PJE      API tidy up
*  20    31/10/2002  MRC      Added variants + minor fixes
*  21    22/01/2003  MRC      Changed the memory size enum and tidied up
*  22    07/02/2003  MRC      Changed the parity trip point, now initialises
*                             the parity count
*  23    24/06/2003  ARW      Updated function zl5011xMmFree
*  24    04/08/2003  APL      Adjusted heapSize calculation
*  25    23/07/2004  MRC      Fixed some compiler warnings
*  26    29/07/2004  MRC      Fixed some compiler warnings
*  27    26/05/2005  APL      Corrected TRACE statement for memory size
*
*******************************************************************************/

/*****************   INCLUDE FILES                *****************************/

#include "zl5011x.h"
#include "zl5011xMm.h"
#include "zl5011xMmMap.h"
#include "zl5011xUtilLib.h"

/*****************   EXPORTED GLOBAL VARIABLES    *****************************/

/*****************   STATIC GLOBAL VARIABLES      *****************************/

/*****************   STATIC FUNCTION DECLARATIONS *****************************/

/*****************   EXPORTED FUNCTION DEFINTIONS   ***************************/

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

 Function:
    zl5011xMmInit

 Description:
   Checks internal memory and initialises MM parts of device structure.

 Inputs:
    zl5011xParams      Pointer to the structure for this device instance

 Outputs:
   None

 Returns:
   zlStatusE

 Remarks:
   None

*******************************************************************************/
extern zlStatusE zl5011xMmInit(zl5011xParamsS *zl5011xParams)
{
   zlStatusE status = ZL5011X_OK;

   ZL5011X_TRACE(ZL5011X_MM_FN_ID, "zl5011xMmInit:", 0, 0, 0, 0, 0, 0);

   /* check the packet memory  */

#ifndef _NO_PACKET_MEMORY_TEST

    status = zl5011xMmTestPacketMemory(zl5011xParams, ZL5011X_INT_MEM_BASE,
                                      ZL5011X_INT_MEMORY_SIZE_IN_BYTES );

#endif

   /* "initialise" structure components of MM */
   if (status == ZL5011X_OK)
   {
      zl5011xParams->packetMemory.granBaseAddr = (Uint32T)ZL5011X_NOT_INITIALISED;
      zl5011xParams->packetMemory.granDescBaseAddr = (Uint32T)ZL5011X_NOT_INITIALISED;
      zl5011xParams->packetMemory.heapStartAddress = (Uint32T)ZL5011X_NOT_INITIALISED;
      zl5011xParams->packetMemory.heapEndAddress = (Uint32T)ZL5011X_NOT_INITIALISED;
   }

   return(status);
}

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

 Function:
    zl5011xMmConfigure

 Description:
   This Function initialises the MM block, and checks that the EXTERNAL memory
   is functional.
   The external memory is located at the bottom of the device memory map.
   The timing for the read and write clock signals are set to default values.

 Inputs:
   zl5011xParams      Pointer to the structure for this device instance
   extMemSize        external memory size in bytes

 Outputs:
    none

 Returns:
   zlStatusE

 Remarks:

*******************************************************************************/
extern zlStatusE zl5011xMmConfigure(zl5011xParamsS *zl5011xParams,
                            zl5011xExtMemChipSizeE extMemSize)
{
   zlStatusE status = ZL5011X_OK;

   ZL5011X_TRACE(ZL5011X_MM_FN_ID, "zl5011xMmConfigure: Memory Size (enum) %d", extMemSize, 0, 0, 0, 0, 0);

   /* Set the external mem device size */
   switch(extMemSize)
   {
      case ZL5011X_EXT_MEM_SIZE_0MB:
         zl5011xParams->packetMemory.extMemSizeBytes = 0x0;
         break;
      case ZL5011X_EXT_MEM_SIZE_512KB:
         zl5011xParams->packetMemory.extMemSizeBytes = 0x80000;
         break;
      case ZL5011X_EXT_MEM_SIZE_1MB:
         zl5011xParams->packetMemory.extMemSizeBytes = 0x100000;
         break;
      case ZL5011X_EXT_MEM_SIZE_2MB:
         zl5011xParams->packetMemory.extMemSizeBytes = 0x200000;
         break;
      case ZL5011X_EXT_MEM_SIZE_4MB:
         zl5011xParams->packetMemory.extMemSizeBytes = 0x400000;
         break;
      case ZL5011X_EXT_MEM_SIZE_8MB:
         zl5011xParams->packetMemory.extMemSizeBytes = 0x800000;
         break;
      default:
         status = ZL5011X_PARAMETER_INVALID;
         break;
   }

   /* set read-latency & set the external mem clocks value */
   if (status == ZL5011X_OK)
   {
      zl5011xParams->packetMemory.extMemChipSize = extMemSize;
   }

   /* if there is external memory, then enable it now */
   if (status == ZL5011X_OK)
   {
      if (extMemSize != ZL5011X_EXT_MEM_SIZE_0MB)
      {
         status = zl5011xMmControlExternalMemory(zl5011xParams, ZL5011X_MM_ENABLED);

         if (status == ZL5011X_OK)
         {
            status = zl5011xMmSetArbitrationBurstLength(zl5011xParams,
                  ZL5011X_MM_DEFAULT_BURST_LENGTH);
         }
      }
   }

   /* check packet memory is functional */
   if (status == ZL5011X_OK)
   {

#ifndef _NO_PACKET_MEMORY_TEST

      status = zl5011xMmTestPacketMemory(zl5011xParams, ZL5011X_EXT_MEM_BASE,
                                        zl5011xParams->packetMemory.extMemSizeBytes);
#endif

   }

   return(status);
}

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

 Function:
    zl5011xMmSetGranuleDataBase

 Description:
   This function sets the granule base address in the GRNBASE register with the
   value given.

 Inputs:
    zl5011xParams  Pointer to the structure for this device instance
    granBaseAddr  address for granule data

 Outputs:
    none

 Returns:
    zlStatusE

 Remarks:
   Only bits 23:15 are used to give a resolution of 4k (words of 64bit).

*******************************************************************************/
extern zlStatusE zl5011xMmSetGranuleDataBase(zl5011xParamsS *zl5011xParams,
                                     Uint32T granBaseAddr)
{
   zlStatusE status = ZL5011X_OK;

   ZL5011X_TRACE(ZL5011X_MM_FN_ID, "zl5011xMmSetGranuleDataBase: adddress 0x%08x ", granBaseAddr, 0, 0, 0, 0, 0);

   if ((granBaseAddr & ~ZL5011X_MM_GRNBASE_MASK) != 0)
   {
      status = ZL5011X_PARAMETER_INVALID;
   }

   if (status == ZL5011X_OK)
   {
      status = zl5011xWrite(zl5011xParams, ZL5011X_MM_GRNBASE, granBaseAddr);

      zl5011xParams->packetMemory.granBaseAddr = granBaseAddr;
   }

   return(status);
}

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

 Function:
    zl5011xMmSetGranuleDescriptorBase

 Description:
   This function sets the granule descriptor base address in the GRNDESBASE
   register with the value given.

 Inputs:
    zl5011xParams     Pointer to the structure for this device instance
    granDescBaseAddr granule base byte address in given resolution. (= 32kbyte)

 Outputs:
    none

 Returns:
    zlStatusE

 Remarks:
   Resolution = 4kwords (of 64bit).

*******************************************************************************/
extern zlStatusE zl5011xMmSetGranuleDescriptorBase(zl5011xParamsS *zl5011xParams,
                                           Uint32T granDescBaseAddr)
{
   zlStatusE status = ZL5011X_OK;

   ZL5011X_TRACE(ZL5011X_MM_FN_ID, "zl5011xMmSetGranuleDescriptorBase: adddress 0x%08x ", granDescBaseAddr, 0, 0, 0, 0, 0);
   granDescBaseAddr&= ZL5011X_MM_GRNBASE_MASK;
   status = zl5011xWrite(zl5011xParams, ZL5011X_MM_GRNDESBASE, granDescBaseAddr);
   if (status == ZL5011X_OK)
   {
      zl5011xParams->packetMemory.granDescBaseAddr = granDescBaseAddr;
   }
   return(status);
}

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

 Function:
    zl5011xMmSetArbitrationBurstLength

 Description:
   This function sets the BURSTL register with the maximum number of cycles that
   the module is allowed to keep access to the memory.

 Inputs:
    zl5011xParams      Pointer to the structure for this device instance
    extMemBurstLength number of cycles that a block is granted access to the bus.

 Outputs:
    none

 Returns:
    zlStatusE

 Remarks:

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

extern zlStatusE zl5011xMmSetArbitrationBurstLength(zl5011xParamsS *zl5011xParams,
                                            Uint32T extMemBurstLength)
{
   zlStatusE status = ZL5011X_OK;

   ZL5011X_TRACE(ZL5011X_MM_FN_ID, "zl5011xMmSetArbitrationBurstLength: %d",

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91在线观看视频| 亚洲色图另类专区| 亚洲线精品一区二区三区 | 欧美国产欧美综合| 天堂一区二区在线| 欧美亚洲日本一区| 国产精品福利一区二区| 国产精品99久久久| 日韩欧美国产成人一区二区| 亚洲国产精品一区二区尤物区| 成人免费视频免费观看| 久久久久久久久久久99999| 日本大胆欧美人术艺术动态| 日本久久一区二区| 亚洲日本va午夜在线电影| 懂色一区二区三区免费观看| 欧美精品一区二区三区蜜桃 | 国产成人一级电影| 日韩欧美一级二级三级久久久| 亚洲宅男天堂在线观看无病毒| 99久久国产综合色|国产精品| 国产色综合一区| 国产成人在线免费| 国产欧美日韩久久| 国产精品一二三四区| 久久精品网站免费观看| 国产盗摄女厕一区二区三区| 亚洲精品一区二区三区香蕉 | 91免费在线播放| 国产精品国模大尺度视频| 不卡av电影在线播放| 国产精品毛片久久久久久久| 国产成人av影院| 国产精品国产自产拍高清av王其| 国产精品乡下勾搭老头1| 久久久国产精品麻豆| 成人一区二区视频| 中文字幕视频一区| 欧美日韩中文字幕一区| 无吗不卡中文字幕| 日韩一区二区在线播放| 国产制服丝袜一区| 国产精品美日韩| 91亚洲男人天堂| 性做久久久久久久免费看| 日韩视频一区在线观看| 国产美女一区二区| 亚洲婷婷在线视频| 欧美一区二区在线不卡| 久久不见久久见免费视频7| 久久精品人人做人人综合| 97精品久久久久中文字幕 | 欧美精品三级在线观看| 美女视频网站黄色亚洲| 国产亚洲欧洲一区高清在线观看| 粉嫩绯色av一区二区在线观看 | 欧美日韩免费一区二区三区 | k8久久久一区二区三区| 国产精品不卡在线观看| 91蜜桃在线观看| 日韩成人免费在线| 国产欧美一区二区在线| 欧美性色黄大片手机版| 激情丁香综合五月| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 色婷婷狠狠综合| 国产原创一区二区| 亚洲国产裸拍裸体视频在线观看乱了| 欧美一区二区久久久| 成人黄色国产精品网站大全在线免费观看| 一区二区三区毛片| 日本一区二区三区高清不卡| 欧美日韩一区二区三区高清 | 欧美性猛交xxxx乱大交退制版| 亚洲福利一二三区| 在线播放国产精品二区一二区四区| 久久精品国产网站| 中文字幕一区二区三区视频| 日韩一二三区视频| 色哦色哦哦色天天综合| 国产精品性做久久久久久| 午夜亚洲福利老司机| 亚洲私人黄色宅男| 精品国产电影一区二区| 欧美无乱码久久久免费午夜一区 | 狠狠狠色丁香婷婷综合激情| 亚洲一区二区三区四区在线观看| 2023国产精华国产精品| 欧美精品aⅴ在线视频| 色美美综合视频| 成年人网站91| 国产成人精品1024| 国产一区二区在线免费观看| 日本系列欧美系列| 视频一区中文字幕国产| 亚洲一区在线视频观看| 亚洲视频免费在线观看| 国产欧美日韩在线看| 久久欧美中文字幕| 日韩欧美一区在线| 9191国产精品| 欧美精品国产精品| 欧美亚洲愉拍一区二区| 91猫先生在线| 99国产精品99久久久久久| 成人免费毛片嘿嘿连载视频| 国产一区二区91| 韩国午夜理伦三级不卡影院| 蜜桃传媒麻豆第一区在线观看| 亚洲成人久久影院| 日本成人在线一区| 精品综合免费视频观看| 韩国一区二区视频| 国产黑丝在线一区二区三区| 国产一区二区三区免费看| 国产黑丝在线一区二区三区| 国产成人aaa| 99久久国产综合精品色伊| 色综合久久中文字幕综合网| 欧美综合色免费| 欧美精品黑人性xxxx| 日韩欧美激情在线| 国产日韩欧美精品综合| 国产精品久久久久aaaa樱花| 专区另类欧美日韩| 亚洲丶国产丶欧美一区二区三区| 天天综合色天天综合色h| 麻豆久久一区二区| 国产黄色精品网站| 色综合视频在线观看| 欧美喷水一区二区| 26uuu精品一区二区三区四区在线| 国产亚洲精品aa午夜观看| 亚洲私人黄色宅男| 日韩av中文在线观看| 韩国成人精品a∨在线观看| 国产91丝袜在线观看| 欧美色中文字幕| 久久综合av免费| 亚洲精品视频观看| 久久精品国产一区二区三| 风间由美一区二区av101| 91久久国产最好的精华液| 欧美一级理论片| **性色生活片久久毛片| 日韩在线观看一区二区| 东方aⅴ免费观看久久av| 91国模大尺度私拍在线视频| 欧美α欧美αv大片| 国产精品久久久久一区二区三区共| 亚洲自拍偷拍九九九| 国产毛片精品视频| 在线免费亚洲电影| 久久久久久久久久电影| 亚洲高清视频在线| 国产91丝袜在线播放九色| 欧美日韩专区在线| 国产精品区一区二区三区| 午夜av一区二区| 成人福利视频在线看| 日韩欧美高清dvd碟片| 国产精品久久久久影院亚瑟 | 久久女同互慰一区二区三区| 亚洲精品ww久久久久久p站| 国产剧情一区在线| 7777精品久久久大香线蕉| 日韩一区在线播放| 国产精品一区二区不卡| 日韩一区二区免费在线观看| 亚洲天堂av老司机| 国产高清在线观看免费不卡| 欧美久久久久中文字幕| 一区二区三区国产| av在线不卡电影| 精品乱人伦一区二区三区| 亚洲国产一区二区在线播放| 91玉足脚交白嫩脚丫在线播放| 久久久www成人免费无遮挡大片| 首页国产丝袜综合| 欧美三级中文字幕| 亚洲一区影音先锋| 91丨九色丨尤物| 亚洲婷婷综合色高清在线| 成人看片黄a免费看在线| 精品99999| 狠狠久久亚洲欧美| 欧美成人一区二区三区在线观看 | 日韩欧美在线网站| 日韩电影在线免费观看| 精品视频一区三区九区| 亚洲成在线观看| 欧美性色综合网| 午夜伦欧美伦电影理论片| 欧美图片一区二区三区| 亚洲国产sm捆绑调教视频| 欧美日韩三级一区| 天堂影院一区二区| 欧美一级黄色大片| 激情五月婷婷综合| 久久亚洲捆绑美女|