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

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

?? ixnpedlnpemgrutils.c

?? 友善mini2440嵌入式
?? C
?? 第 1 頁 / 共 2 頁
字號:
    ixNpeDlNpeMgrExecAccRegWrite (npeBaseAddress, IX_NPEDL_ECS_INSTRUCT_REG,				  npeInstruction);    /* we need this value later to wait for completion of NPE execution step */    IX_NPEDL_REG_READ (npeBaseAddress, IX_NPEDL_REG_OFFSET_WC, &oldWatchcount);    /* issue a Step One command via the Execution Control register */    ixNpeDlNpeMgrCommandIssue (npeBaseAddress, IX_NPEDL_EXCTL_CMD_NPE_STEP);	/* Watch Count register increments when NPE completes an instruction */	IX_NPEDL_REG_READ (npeBaseAddress, IX_NPEDL_REG_OFFSET_WC,        &newWatchcount);            /*     * force the XScale to wait until the NPE has finished execution step     * NOTE that this delay will be very small, just long enough to allow a     * single NPE instruction to complete execution; if instruction execution     * is not completed before timeout retries, exit the while loop     */    while ((IX_NPE_DL_MAX_NUM_OF_RETRIES > retriesCount)         && (newWatchcount == oldWatchcount))    {	    /* Watch Count register increments when NPE completes an instruction */	    IX_NPEDL_REG_READ (npeBaseAddress, IX_NPEDL_REG_OFFSET_WC,		    &newWatchcount);			           retriesCount++;    }        if (IX_NPE_DL_MAX_NUM_OF_RETRIES > retriesCount)    {        ixNpeDlNpeMgrUtilsStats.dbgInstructionExecs++;    }    else    {        /* Return timeout status as the instruction has not been executed         * after maximum retries */        status = IX_NPEDL_CRITICAL_NPE_ERR;    }        IX_NPEDL_TRACE0 (IX_NPEDL_FN_ENTRY_EXIT,		     "Exiting ixNpeDlNpeMgrDebugInstructionExec\n");		         return status;}    /* * Function definition: ixNpeDlNpeMgrDebugInstructionPostExec */voidixNpeDlNpeMgrDebugInstructionPostExec(    UINT32 npeBaseAddress){    /* clear active bit in debug level */    ixNpeDlNpeMgrExecAccRegWrite (npeBaseAddress, IX_NPEDL_ECS_DBG_CTXT_REG_0,				  0);    /* clear the pipeline */    ixNpeDlNpeMgrCommandIssue (npeBaseAddress, IX_NPEDL_EXCTL_CMD_NPE_CLR_PIPE);        /* restore Execution Count register contents. */    IX_NPEDL_REG_WRITE (npeBaseAddress, IX_NPEDL_REG_OFFSET_EXCT,			ixNpeDlSavedExecCount);    /* restore IF and IE bits to original values */    ixNpeDlNpeMgrExecAccRegWrite (npeBaseAddress, IX_NPEDL_ECS_DBG_CTXT_REG_2,				  ixNpeDlSavedEcsDbgCtxtReg2);}/* * Function definition: ixNpeDlNpeMgrLogicalRegRead */PRIVATE IX_STATUSixNpeDlNpeMgrLogicalRegRead (    UINT32 npeBaseAddress,     UINT32 regAddr,    UINT32 regSize,    UINT32 ctxtNum,    UINT32 *regVal){    IX_STATUS status = IX_SUCCESS;    UINT32 npeInstruction = 0;    UINT32 mask = 0;    IX_NPEDL_TRACE0 (IX_NPEDL_FN_ENTRY_EXIT,		     "Entering ixNpeDlNpeMgrLogicalRegRead\n");    switch (regSize)    {    case IX_NPEDL_REG_SIZE_BYTE:      npeInstruction = IX_NPEDL_INSTR_RD_REG_BYTE;      mask = IX_NPEDL_MASK_LOWER_BYTE_OF_WORD;  break;    case IX_NPEDL_REG_SIZE_SHORT:      npeInstruction = IX_NPEDL_INSTR_RD_REG_SHORT;      mask = IX_NPEDL_MASK_LOWER_SHORT_OF_WORD;  break;    case IX_NPEDL_REG_SIZE_WORD:      npeInstruction = IX_NPEDL_INSTR_RD_REG_WORD;      mask = IX_NPEDL_MASK_FULL_WORD;  break;    }    /* make regAddr be the SRC and DEST operands (e.g. movX d0, d0) */    npeInstruction |= (regAddr << IX_NPEDL_OFFSET_INSTR_SRC) |	(regAddr << IX_NPEDL_OFFSET_INSTR_DEST);    /* step execution of NPE intruction using Debug Executing Context stack */    status = ixNpeDlNpeMgrDebugInstructionExec (npeBaseAddress, npeInstruction,				       ctxtNum, IX_NPEDL_RD_INSTR_LDUR);    if (IX_SUCCESS != status)    {        return status;    }        /* read value of register from Execution Data register */    IX_NPEDL_REG_READ (npeBaseAddress,	IX_NPEDL_REG_OFFSET_EXDATA, regVal);   /* align value from left to right */    *regVal = (*regVal >> (IX_NPEDL_REG_SIZE_WORD - regSize)) & mask;    IX_NPEDL_TRACE0 (IX_NPEDL_FN_ENTRY_EXIT,		     "Exiting ixNpeDlNpeMgrLogicalRegRead\n");        return IX_SUCCESS;}/* * Function definition: ixNpeDlNpeMgrLogicalRegWrite */PRIVATE IX_STATUSixNpeDlNpeMgrLogicalRegWrite (    UINT32 npeBaseAddress,     UINT32 regAddr,    UINT32 regVal,    UINT32 regSize,    UINT32 ctxtNum,    BOOL verify){    UINT32 npeInstruction = 0;    UINT32 mask = 0;    IX_STATUS status = IX_SUCCESS;    UINT32 retRegVal;    IX_NPEDL_TRACE0 (IX_NPEDL_FN_ENTRY_EXIT,		     "Entering ixNpeDlNpeMgrLogicalRegWrite\n");    if (regSize == IX_NPEDL_REG_SIZE_WORD)    {	/* NPE register addressing is left-to-right: e.g. |d0|d1|d2|d3| */	/* Write upper half-word (short) to |d0|d1| */	status = ixNpeDlNpeMgrLogicalRegWrite (npeBaseAddress, regAddr,				      regVal >> IX_NPEDL_REG_SIZE_SHORT,				      IX_NPEDL_REG_SIZE_SHORT,				      ctxtNum, verify);				      	if (IX_SUCCESS != status)	{	    return status;	}		/* Write lower half-word (short) to |d2|d3| */	status = ixNpeDlNpeMgrLogicalRegWrite (npeBaseAddress,				      regAddr + IX_NPEDL_BYTES_PER_SHORT,                                    regVal & IX_NPEDL_MASK_LOWER_SHORT_OF_WORD,				      IX_NPEDL_REG_SIZE_SHORT,				      ctxtNum, verify);        if (IX_SUCCESS != status)	{	    return status;	}	}    else    {        switch (regSize)	{ 	case IX_NPEDL_REG_SIZE_BYTE:	    npeInstruction = IX_NPEDL_INSTR_WR_REG_BYTE;	    mask = IX_NPEDL_MASK_LOWER_BYTE_OF_WORD;  break;	case IX_NPEDL_REG_SIZE_SHORT:            npeInstruction = IX_NPEDL_INSTR_WR_REG_SHORT;	    mask = IX_NPEDL_MASK_LOWER_SHORT_OF_WORD;  break;	}	/* mask out any redundant bits, so verify will work later */	regVal &= mask;	/* fill dest operand field of  instruction with destination reg addr */	npeInstruction |= (regAddr << IX_NPEDL_OFFSET_INSTR_DEST);	/* fill src operand field of instruction with least-sig 5 bits of val*/	npeInstruction |= ((regVal & IX_NPEDL_MASK_IMMED_INSTR_SRC_DATA) <<			   IX_NPEDL_OFFSET_INSTR_SRC);	/* fill coprocessor field of instruction with most-sig 11 bits of val*/	npeInstruction |= ((regVal & IX_NPEDL_MASK_IMMED_INSTR_COPROC_DATA) <<			   IX_NPEDL_DISPLACE_IMMED_INSTR_COPROC_DATA);	/* step execution of NPE intruction using Debug ECS */	status = ixNpeDlNpeMgrDebugInstructionExec(npeBaseAddress, npeInstruction,					  ctxtNum, IX_NPEDL_WR_INSTR_LDUR);					  	if (IX_SUCCESS != status)	{	    return status;  	}     }/* condition: if reg to be written is 8-bit or 16-bit (not 32-bit) */    if (verify)    {    	status = ixNpeDlNpeMgrLogicalRegRead (npeBaseAddress, regAddr,    						   regSize, ctxtNum, &retRegVal);    						           if (IX_SUCCESS == status)        {            if (regVal != retRegVal)            {                status = IX_FAIL;            }        }            }    IX_NPEDL_TRACE1 (IX_NPEDL_FN_ENTRY_EXIT,		     "Exiting ixNpeDlNpeMgrLogicalRegWrite : status = %d\n",		     status);        return status;}/* * Function definition: ixNpeDlNpeMgrPhysicalRegWrite */IX_STATUSixNpeDlNpeMgrPhysicalRegWrite (    UINT32 npeBaseAddress,    UINT32 regAddr,    UINT32 regValue,    BOOL verify){    IX_STATUS status;    IX_NPEDL_TRACE0 (IX_NPEDL_FN_ENTRY_EXIT,		     "Entering ixNpeDlNpeMgrPhysicalRegWrite\n");/* * There are 32 physical registers used in an NPE.  These are * treated as 16 pairs of 32-bit registers.  To write one of the pair, * write the pair number (0-16) to the REGMAP for Context 0.  Then write * the value to register  0 or 4 in the regfile, depending on which * register of the pair is to be written */    /*     * set REGMAP for context 0 to (regAddr >> 1) to choose which pair (0-16)     * of physical registers to write      */    status = ixNpeDlNpeMgrLogicalRegWrite (npeBaseAddress,					   IX_NPEDL_CTXT_REG_ADDR_REGMAP,					   (regAddr >>					  IX_NPEDL_OFFSET_PHYS_REG_ADDR_REGMAP),					   IX_NPEDL_REG_SIZE_SHORT, 0, verify);    if (status == IX_SUCCESS)    {	/* regAddr = 0 or 4  */	regAddr = (regAddr & IX_NPEDL_MASK_PHYS_REG_ADDR_LOGICAL_ADDR) *	    IX_NPEDL_BYTES_PER_WORD;        status = ixNpeDlNpeMgrLogicalRegWrite (npeBaseAddress, regAddr, regValue, 					   IX_NPEDL_REG_SIZE_WORD, 0, verify);    }        if (status != IX_SUCCESS)    {	IX_NPEDL_ERROR_REPORT ("ixNpeDlNpeMgrPhysicalRegWrite: "			       "error writing to physical register\n");    }    ixNpeDlNpeMgrUtilsStats.physicalRegWrites++;    IX_NPEDL_TRACE1 (IX_NPEDL_FN_ENTRY_EXIT,		     "Exiting ixNpeDlNpeMgrPhysicalRegWrite : status = %d\n",		     status);    return status;}/* * Function definition: ixNpeDlNpeMgrCtxtRegWrite */IX_STATUSixNpeDlNpeMgrCtxtRegWrite (    UINT32 npeBaseAddress,    UINT32 ctxtNum,    IxNpeDlCtxtRegNum ctxtReg,    UINT32 ctxtRegVal,    BOOL verify){    UINT32 tempRegVal;    UINT32 ctxtRegAddr;    UINT32 ctxtRegSize;    IX_STATUS status = IX_SUCCESS;    IX_NPEDL_TRACE0 (IX_NPEDL_FN_ENTRY_EXIT, 		     "Entering ixNpeDlNpeMgrCtxtRegWrite\n");    /*     * Context 0 has no STARTPC. Instead, this value is used to set     * NextPC for Background ECS, to set where NPE starts executing code     */    if ((ctxtNum == 0) && (ctxtReg == IX_NPEDL_CTXT_REG_STARTPC))    {	/* read BG_CTXT_REG_0, update NEXTPC bits, and write back to reg */	tempRegVal = ixNpeDlNpeMgrExecAccRegRead (npeBaseAddress,						  IX_NPEDL_ECS_BG_CTXT_REG_0);	tempRegVal &= ~IX_NPEDL_MASK_ECS_REG_0_NEXTPC;	tempRegVal |= (ctxtRegVal << IX_NPEDL_OFFSET_ECS_REG_0_NEXTPC) &	    IX_NPEDL_MASK_ECS_REG_0_NEXTPC;		ixNpeDlNpeMgrExecAccRegWrite (npeBaseAddress,				      IX_NPEDL_ECS_BG_CTXT_REG_0, tempRegVal);	ixNpeDlNpeMgrUtilsStats.nextPcWrites++;    }    else    {	ctxtRegAddr = ixNpeDlCtxtRegAccInfo[ctxtReg].regAddress;	ctxtRegSize = ixNpeDlCtxtRegAccInfo[ctxtReg].regSize;	status = ixNpeDlNpeMgrLogicalRegWrite (npeBaseAddress, ctxtRegAddr,					       ctxtRegVal, ctxtRegSize,					       ctxtNum, verify);	if (status != IX_SUCCESS)	{	    IX_NPEDL_ERROR_REPORT ("ixNpeDlNpeMgrCtxtRegWrite: "				   "error writing to context store register\n");	}		ixNpeDlNpeMgrUtilsStats.contextRegWrites++;    }    IX_NPEDL_TRACE1 (IX_NPEDL_FN_ENTRY_EXIT, 		     "Exiting ixNpeDlNpeMgrCtxtRegWrite : status = %d\n",		     status);    return status;}/* * Function definition: ixNpeDlNpeMgrUtilsStatsShow */voidixNpeDlNpeMgrUtilsStatsShow (void){    ixOsalLog (IX_OSAL_LOG_LVL_USER,               IX_OSAL_LOG_DEV_STDOUT,               "\nixNpeDlNpeMgrUtilsStatsShow:\n"               "\tInstruction Memory writes: %u\n"               "\tInstruction Memory writes failed: %u\n"               "\tData Memory writes: %u\n"               "\tData Memory writes failed: %u\n",               ixNpeDlNpeMgrUtilsStats.insMemWrites,               ixNpeDlNpeMgrUtilsStats.insMemWriteFails,               ixNpeDlNpeMgrUtilsStats.dataMemWrites,               ixNpeDlNpeMgrUtilsStats.dataMemWriteFails,               0,0);    ixOsalLog (IX_OSAL_LOG_LVL_USER,               IX_OSAL_LOG_DEV_STDOUT,               "\tExecuting Context Stack Register writes: %u\n"               "\tExecuting Context Stack Register reads: %u\n"               "\tPhysical Register writes: %u\n"               "\tContext Store Register writes: %u\n"               "\tExecution Backgound Context NextPC writes: %u\n"               "\tDebug Instructions Executed: %u\n\n",               ixNpeDlNpeMgrUtilsStats.ecsRegWrites,               ixNpeDlNpeMgrUtilsStats.ecsRegReads,               ixNpeDlNpeMgrUtilsStats.physicalRegWrites,               ixNpeDlNpeMgrUtilsStats.contextRegWrites,               ixNpeDlNpeMgrUtilsStats.nextPcWrites,               ixNpeDlNpeMgrUtilsStats.dbgInstructionExecs);}/* * Function definition: ixNpeDlNpeMgrUtilsStatsReset */voidixNpeDlNpeMgrUtilsStatsReset (void){    ixNpeDlNpeMgrUtilsStats.insMemWrites = 0;    ixNpeDlNpeMgrUtilsStats.insMemWriteFails = 0;    ixNpeDlNpeMgrUtilsStats.dataMemWrites = 0;    ixNpeDlNpeMgrUtilsStats.dataMemWriteFails = 0;    ixNpeDlNpeMgrUtilsStats.ecsRegWrites = 0;    ixNpeDlNpeMgrUtilsStats.ecsRegReads = 0;    ixNpeDlNpeMgrUtilsStats.physicalRegWrites = 0;    ixNpeDlNpeMgrUtilsStats.contextRegWrites = 0;    ixNpeDlNpeMgrUtilsStats.nextPcWrites = 0;    ixNpeDlNpeMgrUtilsStats.dbgInstructionExecs = 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美精品一区二区色综合| 国产专区综合网| 欧美日韩精品一区二区三区| 最新日韩av在线| 成人自拍视频在线观看| 欧美在线free| 欧美激情艳妇裸体舞| 国产乱码精品一区二区三| 精品少妇一区二区三区| 久久精工是国产品牌吗| 日韩一级片在线播放| 奇米一区二区三区av| 欧美久久高跟鞋激| 亚洲成年人影院| 欧美男同性恋视频网站| 午夜成人免费视频| 欧美一区二区三区不卡| 毛片av一区二区| 日韩精品在线网站| 国产综合色视频| 日韩欧美的一区二区| 狠狠久久亚洲欧美| 欧美激情资源网| 91亚洲精品乱码久久久久久蜜桃 | 色先锋aa成人| 亚洲综合在线视频| 欧美剧情片在线观看| 日韩av成人高清| 久久精品人人做人人爽97| eeuss鲁片一区二区三区在线看| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 色综合久久久久综合体| 中文字幕一区日韩精品欧美| 91国产成人在线| 免费在线看一区| 久久精品亚洲乱码伦伦中文| 色偷偷成人一区二区三区91| 亚洲gay无套男同| 久久综合国产精品| av一本久道久久综合久久鬼色| 亚洲天堂2016| 欧美一区二区成人| 东方欧美亚洲色图在线| 午夜影院在线观看欧美| 国产日本一区二区| 欧美性极品少妇| 国产乱码字幕精品高清av| 亚洲最色的网站| 国产精品污网站| 在线播放中文一区| 国产成人在线观看| 天天色综合成人网| 中文一区在线播放| 欧美无乱码久久久免费午夜一区 | 亚洲成人av中文| 2024国产精品| 欧美高清dvd| 成人av免费在线播放| 日韩福利视频网| 国产精品私房写真福利视频| 6080yy午夜一二三区久久| 99久久精品国产精品久久| 免费人成精品欧美精品 | 一本久久综合亚洲鲁鲁五月天| 免费视频最近日韩| 一区二区三区在线观看动漫| 国产亚洲综合性久久久影院| 欧美美女直播网站| 99精品桃花视频在线观看| 免费人成黄页网站在线一区二区 | 国产精品第一页第二页第三页| 91精品婷婷国产综合久久性色| 99精品一区二区三区| 国产一区二区三区在线观看精品| 亚洲大片一区二区三区| 最新成人av在线| 国产亚洲欧洲一区高清在线观看| 欧美日韩国产bt| 欧美视频精品在线| 91在线看国产| 国产91对白在线观看九色| 免费精品视频在线| 亚洲免费在线观看| 国产欧美日韩视频一区二区| 精品久久一区二区三区| 欧美一级黄色片| 欧美一级日韩免费不卡| 欧美日韩国产综合久久| 在线亚洲一区二区| 一本色道综合亚洲| 91蝌蚪porny| 91同城在线观看| 99久久er热在这里只有精品66| 国产精品亚洲一区二区三区在线| 日产精品久久久久久久性色| 亚洲电影激情视频网站| 夜夜精品视频一区二区| 亚洲亚洲人成综合网络| 一区二区三区在线播| 亚洲综合久久久久| 亚洲综合激情另类小说区| 一区二区三区小说| 亚洲第四色夜色| 青青草97国产精品免费观看无弹窗版 | 91麻豆精品国产综合久久久久久| 日本精品免费观看高清观看| 91女厕偷拍女厕偷拍高清| 一本大道久久a久久精品综合| 91网上在线视频| 欧美三级日本三级少妇99| 欧美日韩午夜在线视频| 色中色一区二区| 欧美精品高清视频| 日韩一区二区在线观看视频| 2020国产精品自拍| 欧美韩国日本不卡| 亚洲精品写真福利| 日韩中文字幕区一区有砖一区 | 中文字幕一区在线观看视频| 亚洲欧美日韩中文字幕一区二区三区 | 久久这里都是精品| 日韩午夜电影在线观看| 久久久久成人黄色影片| 亚洲图片你懂的| 日韩国产欧美在线视频| 蜜桃久久av一区| 岛国精品在线播放| 波波电影院一区二区三区| 成人精品小蝌蚪| 欧美日韩视频第一区| 精品福利av导航| 中文字幕一区视频| 美女一区二区久久| 欧美午夜精品一区二区三区| 91视频你懂的| 91久久一区二区| 欧美videossexotv100| 国产日韩欧美综合在线| 亚洲精品乱码久久久久久| 玖玖九九国产精品| 岛国av在线一区| 91精品免费观看| 亚洲欧美成aⅴ人在线观看| 精品一区二区三区在线播放视频 | 国产精品123| 555www色欧美视频| 亚洲制服欧美中文字幕中文字幕| 国产成人免费av在线| 日韩免费观看高清完整版 | 国产精品美女久久久久久久久 | 东方欧美亚洲色图在线| 精品粉嫩超白一线天av| 日韩精品电影在线| 欧美日韩国产首页| 亚洲尤物在线视频观看| 91一区二区在线| 中文字幕一区二区三区色视频| 国产精品自拍三区| 日韩精品一区二区三区在线| 日韩高清不卡一区二区三区| 欧美蜜桃一区二区三区| 亚洲成人av电影在线| 欧美色欧美亚洲另类二区| 樱花草国产18久久久久| av亚洲产国偷v产偷v自拍| 国产精品―色哟哟| 成人国产一区二区三区精品| 久久久精品免费免费| 国产高清在线精品| 久久久久久久综合狠狠综合| 狠狠色狠狠色综合系列| 久久久久成人黄色影片| 国产精品一区二区91| 久久你懂得1024| 国产91丝袜在线18| 亚洲欧美怡红院| 91成人在线观看喷潮| 午夜精品在线看| 91精品国产一区二区三区香蕉| 日韩经典中文字幕一区| 日韩欧美一级二级三级| 国产一区不卡视频| 国产精品久久三区| 在线看日韩精品电影| 日韩在线播放一区二区| 欧美一级久久久| 国产成人av一区二区三区在线| 欧美韩国日本综合| 日本丰满少妇一区二区三区| 午夜精品视频一区| 精品国产乱码久久久久久浪潮 | 欧美色成人综合| 日韩在线a电影| 久久日一线二线三线suv| 成人激情午夜影院| 一区二区三区国产精华| 日韩三级av在线播放| 国产xxx精品视频大全| 亚洲精品日日夜夜| 日韩限制级电影在线观看|