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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ixnpedlnpemgrutils.c

?? 友善mini2440嵌入式
?? C
?? 第 1 頁 / 共 2 頁
字號(hào):
/** * @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 */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
26uuu国产日韩综合| 久久精品免费在线观看| 一区二区在线观看免费| 国产精品一区二区视频| 精品国产制服丝袜高跟| 免费日韩伦理电影| 日韩午夜电影在线观看| 久久国产精品区| 精品国产麻豆免费人成网站| 免费成人美女在线观看.| 欧美一区二区大片| 老司机精品视频导航| 精品国产成人在线影院| 国产一区二区三区不卡在线观看| 欧美一区二区三区视频免费播放| 日韩精品一二区| 欧美一激情一区二区三区| 日av在线不卡| 久久欧美一区二区| 成人午夜免费视频| 国产精品的网站| 日本久久一区二区三区| 亚洲国产成人porn| 精品1区2区3区| 亚洲午夜久久久久久久久久久 | 久久久久国产精品厨房| 国产999精品久久久久久绿帽| 国产蜜臀av在线一区二区三区| 成人精品一区二区三区四区| 亚洲女厕所小便bbb| 欧美日韩精品一区二区天天拍小说| 午夜精品免费在线观看| 精品奇米国产一区二区三区| 国产a级毛片一区| 一区二区三区日韩精品视频| 欧美一区二区三级| 国产成人亚洲综合a∨猫咪| 亚洲人成在线观看一区二区| 4438x成人网最大色成网站| 激情综合色播激情啊| 亚洲欧美日韩在线播放| 91精品国产丝袜白色高跟鞋| 高清不卡在线观看av| 亚洲乱码国产乱码精品精可以看 | 91麻豆.com| 日本中文在线一区| 欧美tickling网站挠脚心| 精品一区二区三区久久| 久久久天堂av| 色综合久久中文综合久久牛| 亚洲免费色视频| 日韩午夜av电影| 91国偷自产一区二区三区成为亚洲经典 | 亚洲欧洲性图库| 91麻豆精品国产自产在线| 风间由美一区二区av101| 亚洲综合激情小说| 国产欧美一区二区在线| 欧美理论在线播放| 99视频一区二区三区| 七七婷婷婷婷精品国产| 国产精品国产精品国产专区不蜜| 欧美精品vⅰdeose4hd| 成人网页在线观看| 美女一区二区三区| 亚洲444eee在线观看| 国产精品的网站| 久久免费视频一区| 91精品国产综合久久精品| 99精品视频一区二区| 国产一区二区三区四区五区入口| 亚洲国产精品一区二区久久 | 夜夜精品视频一区二区| 欧美哺乳videos| 欧美日韩亚洲综合在线| 99这里只有久久精品视频| 国产福利一区二区三区视频在线| 日韩av一区二区三区四区| 一区二区三区.www| 中文字幕亚洲视频| 国产蜜臀97一区二区三区| 亚洲精品一区二区三区四区高清| 欧美美女一区二区在线观看| 色天天综合色天天久久| 成人黄色在线网站| 高潮精品一区videoshd| 国产一区二区三区在线观看精品| 蜜桃久久av一区| 奇米综合一区二区三区精品视频 | 日本高清无吗v一区| 国产精品一级在线| 国产剧情一区二区三区| 精品一区二区三区在线播放视频| 三级在线观看一区二区| 亚洲成人你懂的| 亚洲成在线观看| 性欧美大战久久久久久久久| 一区二区三区在线看| 有坂深雪av一区二区精品| 久久色在线视频| 国产欧美日韩在线视频| 中文字幕精品—区二区四季| 日韩三级高清在线| 精品国产乱码久久久久久久久| 3751色影院一区二区三区| 在线观看中文字幕不卡| 91搞黄在线观看| 狠狠色丁香九九婷婷综合五月| 久久国产综合精品| 国产一区二区三区视频在线播放| 国产精品一区三区| 91女神在线视频| 欧美日韩一区 二区 三区 久久精品 | 国产精品视频麻豆| 亚洲欧美视频在线观看| 亚洲国产精品高清| 亚洲女同女同女同女同女同69| 亚洲女爱视频在线| 亚洲国产精品一区二区尤物区| 亚洲国产日产av| 亚洲一区av在线| 奇米影视一区二区三区小说| 激情深爱一区二区| 精品一区二区综合| 国精产品一区一区三区mba视频| 国产成人精品免费一区二区| 色综合天天视频在线观看| 欧美日韩电影一区| 国产亚洲1区2区3区| 亚洲无线码一区二区三区| 美女脱光内衣内裤视频久久网站 | 韩日欧美一区二区三区| 成人免费va视频| 欧美视频一区二区三区在线观看| 日韩欧美一级片| 中文字幕一区免费在线观看| 天天综合网 天天综合色| 国产不卡一区视频| 7777精品伊人久久久大香线蕉经典版下载 | 精品黑人一区二区三区久久| 国产精品国模大尺度视频| 日韩专区在线视频| 不卡的av网站| 欧美一区二区三区日韩| 中文字幕在线不卡视频| 美女一区二区视频| 91久久精品日日躁夜夜躁欧美| 日韩一二三区视频| 一区二区欧美国产| 国产成人av影院| 欧美一区二区人人喊爽| 亚洲日韩欧美一区二区在线| 美国精品在线观看| 色哦色哦哦色天天综合| 精品88久久久久88久久久| 亚洲一区二区欧美激情| 国内精品免费在线观看| 欧美网站一区二区| 国产精品免费视频网站| 激情综合色综合久久| 欧美色图免费看| 中文字幕在线观看一区二区| 激情五月激情综合网| 8v天堂国产在线一区二区| 亚洲精品视频免费观看| www.亚洲色图| 2020国产精品自拍| 美国欧美日韩国产在线播放| 欧美日韩精品久久久| 亚洲免费观看在线视频| eeuss鲁片一区二区三区在线看| 精品久久久久久亚洲综合网| 午夜精品一区二区三区免费视频| 国产盗摄视频一区二区三区| 日韩欧美一二三区| 六月婷婷色综合| 欧美一级高清片| 日日夜夜免费精品视频| 欧美美女黄视频| 天天操天天干天天综合网| 色av综合在线| 午夜精品一区在线观看| 日韩精品一区二区在线| 国产精一品亚洲二区在线视频| 国产欧美精品一区二区色综合朱莉| 国产乱对白刺激视频不卡| 中文字幕一区二区三区精华液 | 91黄色免费观看| 日韩高清在线电影| 欧美xxxxxxxxx| 国产成+人+日韩+欧美+亚洲| 亚洲四区在线观看| 欧美精品国产精品| 国产综合久久久久久久久久久久| 中文字幕欧美三区| 99re在线视频这里只有精品| 亚洲电影激情视频网站| 日韩欧美www| 99视频一区二区| 日本大胆欧美人术艺术动态|