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

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

?? ixnpedlnpemgrutils.c

?? 友善mini2440嵌入式
?? C
?? 第 1 頁 / 共 2 頁
字號:
/** * @file IxNpeDlNpeMgrUtils.c * * @author Intel Corporation * @date 18 February 2002 * * @brief This file contains the implementation of the private API for the  *        IXP425 NPE Downloader NpeMgr Utils module * *  * @par * IXP400 SW Release version 2.0 *  * -- Copyright Notice -- *  * @par * Copyright 2001-2005, Intel Corporation. * All rights reserved. *  * @par * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in the *    documentation and/or other materials provided with the distribution. * 3. Neither the name of the Intel Corporation nor the names of its contributors *    may be used to endorse or promote products derived from this software *    without specific prior written permission. *  * @par * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. *  * @par * -- End of Copyright Notice --*//* * Put the system defined include files required. */#define IX_NPE_DL_MAX_NUM_OF_RETRIES 1000000 /**< Maximum number of                                              * retries before                                              * timeout					                          */  /* * Put the user defined include files required. */#include "IxOsal.h"#include "IxNpeDl.h"#include "IxNpeDlNpeMgrUtils_p.h"#include "IxNpeDlNpeMgrEcRegisters_p.h"#include "IxNpeDlMacros_p.h"/* * #defines and macros used in this file. *//* used to bit-mask a number of bytes */#define IX_NPEDL_MASK_LOWER_BYTE_OF_WORD  0x000000FF#define IX_NPEDL_MASK_LOWER_SHORT_OF_WORD 0x0000FFFF#define IX_NPEDL_MASK_FULL_WORD           0xFFFFFFFF#define IX_NPEDL_BYTES_PER_WORD           4#define IX_NPEDL_BYTES_PER_SHORT          2#define IX_NPEDL_REG_SIZE_BYTE            8#define IX_NPEDL_REG_SIZE_SHORT           16#define IX_NPEDL_REG_SIZE_WORD            32/* * Introduce extra read cycles after issuing read command to NPE * so that we read the register after the NPE has updated it * This is to overcome race condition between XScale and NPE */#define IX_NPEDL_DELAY_READ_CYCLES        2/* * To mask top three MSBs of 32bit word to download into NPE IMEM */#define IX_NPEDL_MASK_UNUSED_IMEM_BITS    0x1FFFFFFF;/* * typedefs */typedef struct{    UINT32 regAddress;    UINT32 regSize;} IxNpeDlCtxtRegAccessInfo;/* module statistics counters */typedef struct{    UINT32 insMemWrites;    UINT32 insMemWriteFails;    UINT32 dataMemWrites;    UINT32 dataMemWriteFails;    UINT32 ecsRegWrites;    UINT32 ecsRegReads;    UINT32 dbgInstructionExecs;    UINT32 contextRegWrites;    UINT32 physicalRegWrites;    UINT32 nextPcWrites;} IxNpeDlNpeMgrUtilsStats;/* * Variable declarations global to this file only.  Externs are followed by * static variables. *//*  * contains useful address and function pointers to read/write Context Regs,  * eliminating some switch or if-else statements in places */static IxNpeDlCtxtRegAccessInfo ixNpeDlCtxtRegAccInfo[IX_NPEDL_CTXT_REG_MAX] ={    {	IX_NPEDL_CTXT_REG_ADDR_STEVT,	IX_NPEDL_REG_SIZE_BYTE    },    {	IX_NPEDL_CTXT_REG_ADDR_STARTPC,	IX_NPEDL_REG_SIZE_SHORT    },    {	IX_NPEDL_CTXT_REG_ADDR_REGMAP,	IX_NPEDL_REG_SIZE_SHORT    },    {	IX_NPEDL_CTXT_REG_ADDR_CINDEX,	IX_NPEDL_REG_SIZE_BYTE    }};static UINT32 ixNpeDlSavedExecCount = 0;static UINT32 ixNpeDlSavedEcsDbgCtxtReg2 = 0;static IxNpeDlNpeMgrUtilsStats ixNpeDlNpeMgrUtilsStats;/* * static function prototypes. */PRIVATE __inline__ voidixNpeDlNpeMgrWriteCommandIssue (UINT32 npeBaseAddress, UINT32 cmd,				UINT32 addr, UINT32 data);PRIVATE __inline__ UINT32ixNpeDlNpeMgrReadCommandIssue (UINT32 npeBaseAddress, UINT32 cmd, UINT32 addr);PRIVATE IX_STATUSixNpeDlNpeMgrLogicalRegRead (UINT32 npeBaseAddress, UINT32 regAddr,			     UINT32 regSize, UINT32 ctxtNum, UINT32 *regVal);PRIVATE IX_STATUSixNpeDlNpeMgrLogicalRegWrite (UINT32 npeBaseAddress, UINT32 regAddr,			      UINT32 regVal, UINT32 regSize,			      UINT32 ctxtNum, BOOL verify);/* * Function definition: ixNpeDlNpeMgrWriteCommandIssue */PRIVATE __inline__ voidixNpeDlNpeMgrWriteCommandIssue (    UINT32 npeBaseAddress,    UINT32 cmd,    UINT32 addr,    UINT32 data){    IX_NPEDL_REG_WRITE (npeBaseAddress, IX_NPEDL_REG_OFFSET_EXDATA, data);    IX_NPEDL_REG_WRITE (npeBaseAddress, IX_NPEDL_REG_OFFSET_EXAD, addr);    IX_NPEDL_REG_WRITE (npeBaseAddress, IX_NPEDL_REG_OFFSET_EXCTL, cmd);}/* * Function definition: ixNpeDlNpeMgrReadCommandIssue */PRIVATE __inline__ UINT32ixNpeDlNpeMgrReadCommandIssue (    UINT32 npeBaseAddress,    UINT32 cmd,    UINT32 addr){    UINT32 data = 0;    int i;    IX_NPEDL_REG_WRITE (npeBaseAddress, IX_NPEDL_REG_OFFSET_EXAD, addr);    IX_NPEDL_REG_WRITE (npeBaseAddress, IX_NPEDL_REG_OFFSET_EXCTL, cmd);    for (i = 0; i <= IX_NPEDL_DELAY_READ_CYCLES; i++)    {	IX_NPEDL_REG_READ (npeBaseAddress, IX_NPEDL_REG_OFFSET_EXDATA, &data);    }    return data;}/* * Function definition: ixNpeDlNpeMgrInsMemWrite */IX_STATUSixNpeDlNpeMgrInsMemWrite (    UINT32 npeBaseAddress,    UINT32 insMemAddress,    UINT32 insMemData,    BOOL verify){    UINT32 insMemDataRtn;    ixNpeDlNpeMgrWriteCommandIssue (npeBaseAddress,				    IX_NPEDL_EXCTL_CMD_WR_INS_MEM,				    insMemAddress, insMemData);    if (verify)    {        /* write invalid data to this reg, so we can see if we're reading 	   the EXDATA register too early */	IX_NPEDL_REG_WRITE (npeBaseAddress, IX_NPEDL_REG_OFFSET_EXDATA,			    ~insMemData);        /*Disabled since top 3 MSB are not used for Azusa hardware Refer WR:IXA00053900*/        insMemData&=IX_NPEDL_MASK_UNUSED_IMEM_BITS;        insMemDataRtn=ixNpeDlNpeMgrReadCommandIssue (npeBaseAddress,                                           IX_NPEDL_EXCTL_CMD_RD_INS_MEM,                                           insMemAddress);        insMemDataRtn&=IX_NPEDL_MASK_UNUSED_IMEM_BITS;	if (insMemData != insMemDataRtn)	{	    ixNpeDlNpeMgrUtilsStats.insMemWriteFails++;	    return IX_FAIL;	}    }    ixNpeDlNpeMgrUtilsStats.insMemWrites++;    return IX_SUCCESS;}/* * Function definition: ixNpeDlNpeMgrDataMemWrite */IX_STATUSixNpeDlNpeMgrDataMemWrite (    UINT32 npeBaseAddress,    UINT32 dataMemAddress,    UINT32 dataMemData,    BOOL verify){    ixNpeDlNpeMgrWriteCommandIssue (npeBaseAddress,				    IX_NPEDL_EXCTL_CMD_WR_DATA_MEM,				    dataMemAddress, dataMemData);    if (verify)    {        /* write invalid data to this reg, so we can see if we're reading 	   the EXDATA register too early */	IX_NPEDL_REG_WRITE (npeBaseAddress, IX_NPEDL_REG_OFFSET_EXDATA, ~dataMemData);	if (dataMemData !=	    ixNpeDlNpeMgrReadCommandIssue (npeBaseAddress,					   IX_NPEDL_EXCTL_CMD_RD_DATA_MEM,					   dataMemAddress))	{	    ixNpeDlNpeMgrUtilsStats.dataMemWriteFails++;	    return IX_FAIL;	}    }    ixNpeDlNpeMgrUtilsStats.dataMemWrites++;    return IX_SUCCESS;}/* * Function definition: ixNpeDlNpeMgrExecAccRegWrite */voidixNpeDlNpeMgrExecAccRegWrite (    UINT32 npeBaseAddress,    UINT32 regAddress,    UINT32 regData){    ixNpeDlNpeMgrWriteCommandIssue (npeBaseAddress,				    IX_NPEDL_EXCTL_CMD_WR_ECS_REG,				    regAddress, regData);    ixNpeDlNpeMgrUtilsStats.ecsRegWrites++;}/* * Function definition: ixNpeDlNpeMgrExecAccRegRead */UINT32ixNpeDlNpeMgrExecAccRegRead (    UINT32 npeBaseAddress,    UINT32 regAddress){    ixNpeDlNpeMgrUtilsStats.ecsRegReads++;    return ixNpeDlNpeMgrReadCommandIssue (npeBaseAddress,					  IX_NPEDL_EXCTL_CMD_RD_ECS_REG,					  regAddress);}/* * Function definition: ixNpeDlNpeMgrCommandIssue */voidixNpeDlNpeMgrCommandIssue (    UINT32 npeBaseAddress,    UINT32 command)     {    IX_NPEDL_TRACE0 (IX_NPEDL_FN_ENTRY_EXIT,		     "Entering ixNpeDlNpeMgrCommandIssue\n");    IX_NPEDL_REG_WRITE (npeBaseAddress, IX_NPEDL_REG_OFFSET_EXCTL, command);    IX_NPEDL_TRACE0 (IX_NPEDL_FN_ENTRY_EXIT,		     "Exiting ixNpeDlNpeMgrCommandIssue\n");}/* * Function definition: ixNpeDlNpeMgrDebugInstructionPreExec */voidixNpeDlNpeMgrDebugInstructionPreExec(    UINT32 npeBaseAddress){    /* turn off the halt bit by clearing Execution Count register. */    /* save reg contents 1st and restore later */    IX_NPEDL_REG_READ (npeBaseAddress, IX_NPEDL_REG_OFFSET_EXCT,		       &ixNpeDlSavedExecCount);    IX_NPEDL_REG_WRITE (npeBaseAddress, IX_NPEDL_REG_OFFSET_EXCT, 0);    /* ensure that IF and IE are on (temporarily), so that we don't end up     * stepping forever */    ixNpeDlSavedEcsDbgCtxtReg2 = ixNpeDlNpeMgrExecAccRegRead (npeBaseAddress,				                   IX_NPEDL_ECS_DBG_CTXT_REG_2);    ixNpeDlNpeMgrExecAccRegWrite (npeBaseAddress, IX_NPEDL_ECS_DBG_CTXT_REG_2,				  (ixNpeDlSavedEcsDbgCtxtReg2 |				   IX_NPEDL_MASK_ECS_DBG_REG_2_IF |				   IX_NPEDL_MASK_ECS_DBG_REG_2_IE));}/* * Function definition: ixNpeDlNpeMgrDebugInstructionExec */IX_STATUSixNpeDlNpeMgrDebugInstructionExec(    UINT32 npeBaseAddress,    UINT32 npeInstruction,    UINT32 ctxtNum,    UINT32 ldur){    UINT32 ecsDbgRegVal;    UINT32 oldWatchcount, newWatchcount;    UINT32 retriesCount = 0;    IX_STATUS status = IX_SUCCESS;    IX_NPEDL_TRACE0 (IX_NPEDL_FN_ENTRY_EXIT,		     "Entering ixNpeDlNpeMgrDebugInstructionExec\n");    /* set the Active bit, and the LDUR, in the debug level */    ecsDbgRegVal = IX_NPEDL_MASK_ECS_REG_0_ACTIVE |	(ldur << IX_NPEDL_OFFSET_ECS_REG_0_LDUR);    ixNpeDlNpeMgrExecAccRegWrite (npeBaseAddress, IX_NPEDL_ECS_DBG_CTXT_REG_0,				  ecsDbgRegVal);    /*     * set CCTXT at ECS DEBUG L3 to specify in which context to execute the     * instruction, and set SELCTXT at ECS DEBUG Level to specify which context     * store to access.     * Debug ECS Level Reg 1 has form  0x000n000n, where n = context number     */    ecsDbgRegVal = (ctxtNum << IX_NPEDL_OFFSET_ECS_REG_1_CCTXT) |	(ctxtNum << IX_NPEDL_OFFSET_ECS_REG_1_SELCTXT);    ixNpeDlNpeMgrExecAccRegWrite (npeBaseAddress, IX_NPEDL_ECS_DBG_CTXT_REG_1,				  ecsDbgRegVal);    /* clear the pipeline */    ixNpeDlNpeMgrCommandIssue (npeBaseAddress, IX_NPEDL_EXCTL_CMD_NPE_CLR_PIPE);    /* load NPE instruction into the instruction register */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
风间由美一区二区av101 | 欧美丰满美乳xxx高潮www| 偷拍亚洲欧洲综合| 国产日韩欧美麻豆| 欧美tickle裸体挠脚心vk| 91丨porny丨最新| 丰满放荡岳乱妇91ww| 精品视频一区二区不卡| 91丨九色丨蝌蚪丨老版| 日韩欧美亚洲另类制服综合在线| 欧美日韩国产一二三| 欧美韩国日本一区| 91精品国产色综合久久不卡电影 | 欧美一级午夜免费电影| 国产午夜精品久久久久久久 | 奇米影视一区二区三区小说| 国产一区二区三区久久久| 激情文学综合丁香| 日韩高清中文字幕一区| 五月婷婷激情综合网| 成人一级视频在线观看| av一区二区三区在线| 91在线国产观看| 欧美日韩国产影片| 亚洲精品免费在线| 亚洲成人你懂的| 日本va欧美va精品发布| 欧美午夜不卡视频| 日韩精品一区二区三区中文不卡| 亚洲最新视频在线观看| 日本欧美一区二区三区| 欧美亚洲精品一区| 亚洲综合免费观看高清在线观看| 麻豆国产精品视频| 日韩欧美国产三级| 五月婷婷另类国产| 欧美精品在线视频| 亚洲成人久久影院| 欧美三级日韩三级国产三级| 玉足女爽爽91| 欧美自拍偷拍一区| 国产日韩欧美在线一区| 狠狠色狠狠色综合日日91app| 精品国产一区二区亚洲人成毛片| 中文字幕精品一区二区精品绿巨人| 国产在线视频一区二区三区| 久久亚洲一区二区三区明星换脸| 亚洲免费资源在线播放| 日本中文字幕不卡| 精品欧美乱码久久久久久1区2区| 久久99国产精品免费网站| 欧美老女人第四色| 蜜乳av一区二区三区| 精品国产精品网麻豆系列| 国产麻豆9l精品三级站| 国产精品三级在线观看| 日韩电影免费在线观看网站| 欧美一区二区高清| 国产一区二区精品久久| 国产精品女上位| 欧美性一二三区| 日本少妇一区二区| 国产日韩欧美电影| 色www精品视频在线观看| 国产三级精品在线| 日韩情涩欧美日韩视频| 欧美三级在线播放| 亚洲国产成人porn| 国产视频一区在线观看| 国产精品久久久久久久久图文区 | 国产精品免费观看视频| 91国产成人在线| 1024亚洲合集| 欧美电影免费观看高清完整版在线观看| 香蕉影视欧美成人| 久久久久综合网| 国产欧美一区二区精品性| 成人激情免费网站| 久久精品夜色噜噜亚洲a∨| av不卡在线观看| 日本不卡一二三区黄网| 亚洲欧美视频在线观看视频| 91精品国产色综合久久ai换脸| 国产成人午夜精品影院观看视频 | 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 一区二区三区四区在线免费观看| 欧美日韩午夜精品| 国产激情一区二区三区| 亚洲夂夂婷婷色拍ww47| 国产精品色婷婷久久58| 欧美电视剧免费全集观看| 色呦呦网站一区| 成人一区二区三区视频在线观看| 亚洲成在人线在线播放| 国产精品成人在线观看| 日韩欧美国产小视频| 欧美少妇性性性| 99re热视频这里只精品| 国产美女在线观看一区| 日韩国产成人精品| 亚洲自拍欧美精品| 国产精品成人免费精品自在线观看| 精品国产乱码久久久久久免费| 欧美日韩在线播放三区四区| 91在线国产观看| gogogo免费视频观看亚洲一| 国产精品 日产精品 欧美精品| 奇米精品一区二区三区在线观看 | 亚洲丝袜自拍清纯另类| 国产日本一区二区| 中文子幕无线码一区tr| 日韩中文字幕亚洲一区二区va在线| 午夜精品久久久久久久蜜桃app| 91麻豆免费看| 国产亚洲va综合人人澡精品| 久久久亚洲国产美女国产盗摄 | 日韩女优视频免费观看| 韩国精品在线观看| 91视频91自| 成av人片一区二区| 蜜桃91丨九色丨蝌蚪91桃色| 一区二区三区丝袜| 中文字幕精品综合| 国产女人18毛片水真多成人如厕| 一本色道久久综合亚洲精品按摩| 亚洲国产sm捆绑调教视频| 亚洲精品一区二区三区影院 | 欧美日韩亚洲丝袜制服| 调教+趴+乳夹+国产+精品| 99国产精品久久久| 国产精品欧美经典| 日韩在线观看一区二区| 丝袜美腿一区二区三区| 日韩激情一二三区| 国产一区欧美二区| 成人a级免费电影| 91在线视频18| 欧美精品亚洲二区| 欧美电影免费提供在线观看| 精品国产乱码久久久久久闺蜜| 精品国产区一区| 国产精品美女久久久久久2018 | 亚洲男人的天堂网| 日韩成人精品在线| 国产一区不卡在线| 色乱码一区二区三区88| 91精品国产全国免费观看| 精品国产乱码久久久久久夜甘婷婷| 国产免费成人在线视频| 亚洲伊人色欲综合网| 国产一区二区中文字幕| 99国产精品99久久久久久| 在线不卡一区二区| 欧美高清在线一区| 亚洲国产精品一区二区久久恐怖片 | 欧美日韩国产综合久久| 精品国产91九色蝌蚪| 亚洲欧美视频在线观看视频| 免费的成人av| 色综合久久中文综合久久牛| 日韩三级在线观看| 国产91高潮流白浆在线麻豆 | 国产成人高清视频| 欧美日韩一级视频| 国产精品亲子伦对白| 午夜精品久久久| av成人免费在线观看| 精品国精品自拍自在线| 一区二区三区蜜桃| 高清不卡在线观看av| 91精品国产aⅴ一区二区| 国产精品大尺度| 另类小说图片综合网| 一区二区三区四区高清精品免费观看 | 欧美三日本三级三级在线播放| 精品国产精品网麻豆系列| 午夜影院久久久| 99re这里都是精品| 国产精品久久久久久久久搜平片| 免费观看日韩av| 欧美日韩国产综合一区二区 | 91福利视频久久久久| 亚洲国产激情av| 国产在线精品不卡| 欧美一级日韩免费不卡| 亚洲国产精品人人做人人爽| 99re视频精品| 国产精品福利在线播放| 国产suv一区二区三区88区| 日韩欧美一级片| 日本视频在线一区| 91精品国产综合久久久久久久久久| 欧美一区二区网站| 亚洲国产日韩在线一区模特| aaa欧美日韩| 亚洲欧洲精品天堂一级| 成a人片国产精品| 日韩伦理免费电影| 99精品一区二区| 亚洲色图色小说|