亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
久久激情综合网| 亚洲自拍另类综合| 成人精品免费看| 亚洲欧洲www| 高清av一区二区| 久久日韩精品一区二区五区| 免费在线欧美视频| 久久色中文字幕| 成人美女视频在线观看18| 日韩欧美一区二区视频| 久久电影网站中文字幕| 国产精品色眯眯| 成人午夜av影视| 亚洲一区二区在线播放相泽| 一本到高清视频免费精品| 亚洲女子a中天字幕| 欧美精品日韩精品| 成人久久久精品乱码一区二区三区| 自拍偷拍亚洲欧美日韩| 精品视频色一区| 本田岬高潮一区二区三区| 亚洲韩国精品一区| 国产精品少妇自拍| 欧美电视剧在线看免费| 一本一道久久a久久精品| 精品影视av免费| 亚洲成在线观看| 久久久久久亚洲综合| 日韩欧美国产综合一区| 91小宝寻花一区二区三区| 九九在线精品视频| 亚洲午夜久久久久久久久电影网| 久久精品亚洲国产奇米99| 欧美日韩国产系列| 色婷婷综合五月| 国产不卡在线播放| 国产在线视频不卡二| 美女精品一区二区| 日韩精品每日更新| 三级欧美在线一区| 亚洲超碰97人人做人人爱| 国产精品污污网站在线观看| 精品福利在线导航| 精品乱码亚洲一区二区不卡| 69久久99精品久久久久婷婷| 91蜜桃网址入口| 色婷婷久久久综合中文字幕| 播五月开心婷婷综合| 国产69精品久久久久毛片| 国产一区三区三区| 国产精品综合视频| 国产高清久久久| 丁香激情综合国产| 国产**成人网毛片九色| 成人黄色国产精品网站大全在线免费观看| 黄网站免费久久| 国产成人啪免费观看软件| 国产精品一级片在线观看| 国产福利视频一区二区三区| eeuss鲁一区二区三区| 日本电影亚洲天堂一区| 欧美日韩国产首页| 国产亚洲综合性久久久影院| 国产精品久久久久影院| 亚洲一区二区三区四区不卡| 蜜臀精品久久久久久蜜臀| 欧美三级电影网站| 日韩免费观看高清完整版| 久久精品视频免费| 香蕉久久一区二区不卡无毒影院| 免费亚洲电影在线| 成人黄页毛片网站| 日韩免费视频线观看| 亚洲欧美日韩系列| 国产乱码字幕精品高清av| 一本大道av一区二区在线播放| 欧美高清一级片在线| 亚洲国产精品二十页| 亚洲成人免费电影| gogo大胆日本视频一区| 日韩视频在线永久播放| 亚洲日本青草视频在线怡红院| 精品在线一区二区| 欧美美女视频在线观看| 亚洲啪啪综合av一区二区三区| 久久爱www久久做| 欧美三区在线观看| 亚洲卡通欧美制服中文| 豆国产96在线|亚洲| 精品sm在线观看| 日本视频免费一区| 欧美日韩精品一区视频| 亚洲影院理伦片| 欧美亚洲综合久久| 亚洲欧美国产毛片在线| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 欧美最新大片在线看| 中文字幕一区二区三区av| 成+人+亚洲+综合天堂| 欧美国产97人人爽人人喊| 风间由美中文字幕在线看视频国产欧美| 26uuu亚洲| 91亚洲国产成人精品一区二三 | 欧美极品美女视频| 日韩精品资源二区在线| 国产麻豆视频精品| 中文字幕日韩精品一区| 欧洲激情一区二区| 久久精品国产秦先生| 国产精品美女久久久久久2018| 成人免费看的视频| 一区二区三区在线观看欧美| 欧美福利视频导航| 国产成人精品三级麻豆| 亚洲色图清纯唯美| 欧美成人精精品一区二区频| 岛国精品在线播放| 天堂蜜桃91精品| 国产清纯白嫩初高生在线观看91 | 波多野结衣亚洲| 日韩av电影免费观看高清完整版在线观看 | 成人爱爱电影网址| 亚洲第一福利一区| 国产精品天天摸av网| 欧美日韩成人综合天天影院 | 欧美美女直播网站| 成人一级片在线观看| 亚洲成人午夜影院| 中文字幕国产一区二区| 欧美精品777| 色婷婷精品久久二区二区蜜臂av| 久久国产三级精品| 一区二区三区资源| 国产精品久久99| 欧美高清在线一区二区| 精品卡一卡二卡三卡四在线| 欧美在线一区二区三区| 99久久777色| 国产a区久久久| 国产精品99久久不卡二区| 蜜臀av一级做a爰片久久| 亚洲国产成人tv| 国产综合成人久久大片91| 五月天亚洲精品| 亚洲成人精品影院| 天堂一区二区在线| 日韩制服丝袜先锋影音| 亚洲激情综合网| 一区二区三区资源| 婷婷国产在线综合| 久久精品国产99久久6| 美女免费视频一区| 激情综合色播激情啊| 韩国一区二区三区| 成人18视频在线播放| 91丨porny丨首页| 欧美日韩一区在线| 精品三级在线看| 国产女人水真多18毛片18精品视频| xfplay精品久久| 日本一区免费视频| 亚洲18女电影在线观看| 狠狠网亚洲精品| av亚洲精华国产精华精| 777午夜精品免费视频| 精品处破学生在线二十三| 国产精品国产精品国产专区不蜜| 亚洲成人免费观看| 国产精品亚洲午夜一区二区三区| 黄色日韩网站视频| 在线观看成人小视频| 日韩免费一区二区| 一区二区三区精品视频在线| 国产精品一二三四五| 欧美另类高清zo欧美| 国产精品久久久久久久久动漫| 首页国产丝袜综合| 97久久精品人人爽人人爽蜜臀| 欧美大片一区二区三区| 一区二区成人在线| 91视频在线观看免费| 精品噜噜噜噜久久久久久久久试看| 亚洲午夜成aⅴ人片| av资源站一区| 国产偷国产偷亚洲高清人白洁| 五月婷婷综合在线| 成人白浆超碰人人人人| 日本一区二区久久| 国产成人免费av在线| 中文字幕免费观看一区| 国产寡妇亲子伦一区二区| 久久亚洲二区三区| 欧美aaaaaa午夜精品| 欧美一级欧美一级在线播放| 奇米色一区二区| 亚洲综合一二三区| 欧美性受xxxx| 日本大胆欧美人术艺术动态 | 91一区一区三区| 亚洲欧美一区二区三区久本道91 |