UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 18068

3.2 EDK - 割り込みがイネーブルの場合に、XUartLite_mIsIntrEnabled(XPAR_MYUART_BASEADDR) ファンクションで、XTRUE を変数として適切に使用できない

説明

キーワード : EDK, 3.2, uartlite, XUartLite_mGetControlReg, read, get

重要度 : 標準

概要 :
割り込みがイネーブルの場合に、XUartLite_mIsIntrEnabled(XPAR_MYUART_BASEADDR) ファンクションで、XTRUE を変数として適切に使用できません。

xuartlite_I.h ファイルには、次のセクションが含まれます。

/****************************************************************************/
/**
*
* Check to see if the interrupt is enabled.
*
* @param BaseAddress is the base address of the device
*
* @return XTRUE if the interrupt is enabled, XFALSE otherwise.
*
* @note None.
*
*****************************************************************************/
#define XUartLite_mIsIntrEnabled(BaseAddress) ?_
(XUartLite_mGetStatusReg((BaseAddress)) & XUL_SR_INTR_ENABLED

however after debugging the following c code

XUartLite_mEnableIntr(XPAR_MYUART_BASEADDR);
test = XUartLite_mIsIntrEnabled(XPAR_MYUART_BASEADDR);
if(XUartLite_mIsIntrEnabled(XPAR_MYUART_BASEADDR)==XTRUE){
:
:
}

テストは、0x10 となり、 XTRUE = 1 であるため、if の条件が反映されません。

ソリューション


この問題を回避するためには、次の if 構文を変更します。
if(XUartLite_mIsIntrEnabled(XPAR_MYUART_BASEADDR)==XTRUE)

これを次のように変更します。

if(XUartLite_mIsIntrEnabled(XPAR_MYUART_BASEADDR)==0x10)
AR# 18068
日付 04/28/2006
ステータス アーカイブ
種類 一般
このページをブックマークに追加