📄 lib_at91sam9260_h.html
字号:
__inline <font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> <a href="#AT91F_DBGU_GetInterruptMaskStatus">AT91F_DBGU_GetInterruptMaskStatus</a>( <font color=#B22222>// \<font color=#0000FF>return</font> <a href="AT91SAM9260_DBGU.html#DBGU">DBGU</a> Interrupt Mask Status</font>
<a href="AT91SAM9260_h.html#AT91PS_DBGU">AT91PS_DBGU</a> pDbgu) <font color=#B22222>// \arg pointer to a <a href="AT91SAM9260_DBGU.html#DBGU">DBGU</a> controller</font>
{
<font color=#0000FF>return</font> pDbgu-><a href="AT91SAM9260_DBGU.html#DBGU_IMR">DBGU_IMR</a>;
}
<font color=#B22222>//*----------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn <b><a name="AT91F_DBGU_IsInterruptMasked">AT91F_DBGU_IsInterruptMasked</a></b></font>
<font color=#B22222>//* \brief Test <font color=#0000FF>if</font> <a href="AT91SAM9260_DBGU.html#DBGU">DBGU</a> Interrupt is Masked </font>
<font color=#B22222>//*----------------------------------------------------------------------------</font>
__inline <font color=#0000FF>int</font> <a href="#AT91F_DBGU_IsInterruptMasked">AT91F_DBGU_IsInterruptMasked</a>(
<a href="AT91SAM9260_h.html#AT91PS_DBGU">AT91PS_DBGU</a> pDbgu, <font color=#B22222>// \arg pointer to a <a href="AT91SAM9260_DBGU.html#DBGU">DBGU</a> controller</font>
<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> flag) <font color=#B22222>// \arg flag to be tested</font>
{
<font color=#0000FF>return</font> (<a href="#AT91F_DBGU_GetInterruptMaskStatus">AT91F_DBGU_GetInterruptMaskStatus</a>(pDbgu) & flag);
}
/* *****************************************************************************
SOFTWARE API FOR <a href="AT91SAM9260_AIC.html#AIC">AIC</a>
***************************************************************************** */
<font color=#008200>#define</font> AT91C_AIC_BRANCH_OPCODE ((<font color=#0000FF>void</font> (*) ()) 0xE51FFF20) <font color=#B22222>// ldr, pc, [pc, #-&F20]</font>
<font color=#B22222>//*----------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn <b><a name="AT91F_AIC_ConfigureIt">AT91F_AIC_ConfigureIt</a></b></font>
<font color=#B22222>//* \brief Interrupt Handler Initialization</font>
<font color=#B22222>//*----------------------------------------------------------------------------</font>
__inline <font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> <a href="#AT91F_AIC_ConfigureIt">AT91F_AIC_ConfigureIt</a> (
<a href="AT91SAM9260_h.html#AT91PS_AIC">AT91PS_AIC</a> pAic, <font color=#B22222>// \arg pointer to the <a href="AT91SAM9260_AIC.html#AIC">AIC</a> registers</font>
<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> irq_id, <font color=#B22222>// \arg interrupt number to initialize</font>
<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> priority, <font color=#B22222>// \arg priority to give to the interrupt</font>
<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> src_type, <font color=#B22222>// \arg activation and sense of activation</font>
<font color=#0000FF>void</font> (*newHandler) (<font color=#0000FF>void</font>) ) <font color=#B22222>// \arg address of the interrupt handler</font>
{
<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> oldHandler;
<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> mask ;
oldHandler = pAic-><a href="AT91SAM9260_AIC.html#AIC_SVR">AIC_SVR</a>[irq_id];
mask = 0x1 << irq_id ;
<font color=#B22222>//* Disable the interrupt on the interrupt controller</font>
pAic-><a href="AT91SAM9260_AIC.html#AIC_IDCR">AIC_IDCR</a> = mask ;
<font color=#B22222>//* Save the interrupt handler routine pointer and the interrupt priority</font>
pAic-><a href="AT91SAM9260_AIC.html#AIC_SVR">AIC_SVR</a>[irq_id] = (<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font>) newHandler ;
<font color=#B22222>//* Store the Source Mode Register</font>
pAic-><a href="AT91SAM9260_AIC.html#AIC_SMR">AIC_SMR</a>[irq_id] = src_type | priority ;
<font color=#B22222>//* Clear the interrupt on the interrupt controller</font>
pAic-><a href="AT91SAM9260_AIC.html#AIC_ICCR">AIC_ICCR</a> = mask ;
<font color=#0000FF>return</font> oldHandler;
}
<font color=#B22222>//*----------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn <b><a name="AT91F_AIC_EnableIt">AT91F_AIC_EnableIt</a></b></font>
<font color=#B22222>//* \brief Enable corresponding IT number</font>
<font color=#B22222>//*----------------------------------------------------------------------------</font>
__inline <font color=#0000FF>void</font> <a href="#AT91F_AIC_EnableIt">AT91F_AIC_EnableIt</a> (
<a href="AT91SAM9260_h.html#AT91PS_AIC">AT91PS_AIC</a> pAic, <font color=#B22222>// \arg pointer to the <a href="AT91SAM9260_AIC.html#AIC">AIC</a> registers</font>
<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> irq_id ) <font color=#B22222>// \arg interrupt number to initialize</font>
{
<font color=#B22222>//* Enable the interrupt on the interrupt controller</font>
pAic-><a href="AT91SAM9260_AIC.html#AIC_IECR">AIC_IECR</a> = 0x1 << irq_id ;
}
<font color=#B22222>//*----------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn <b><a name="AT91F_AIC_DisableIt">AT91F_AIC_DisableIt</a></b></font>
<font color=#B22222>//* \brief Disable corresponding IT number</font>
<font color=#B22222>//*----------------------------------------------------------------------------</font>
__inline <font color=#0000FF>void</font> <a href="#AT91F_AIC_DisableIt">AT91F_AIC_DisableIt</a> (
<a href="AT91SAM9260_h.html#AT91PS_AIC">AT91PS_AIC</a> pAic, <font color=#B22222>// \arg pointer to the <a href="AT91SAM9260_AIC.html#AIC">AIC</a> registers</font>
<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> irq_id ) <font color=#B22222>// \arg interrupt number to initialize</font>
{
<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> mask = 0x1 << irq_id;
<font color=#B22222>//* Disable the interrupt on the interrupt controller</font>
pAic-><a href="AT91SAM9260_AIC.html#AIC_IDCR">AIC_IDCR</a> = mask ;
<font color=#B22222>//* Clear the interrupt on the Interrupt Controller ( <font color=#0000FF>if</font> one is pending )</font>
pAic-><a href="AT91SAM9260_AIC.html#AIC_ICCR">AIC_ICCR</a> = mask ;
}
<font color=#B22222>//*----------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn <b><a name="AT91F_AIC_ClearIt">AT91F_AIC_ClearIt</a></b></font>
<font color=#B22222>//* \brief Clear corresponding IT number</font>
<font color=#B22222>//*----------------------------------------------------------------------------</font>
__inline <font color=#0000FF>void</font> <a href="#AT91F_AIC_ClearIt">AT91F_AIC_ClearIt</a> (
<a href="AT91SAM9260_h.html#AT91PS_AIC">AT91PS_AIC</a> pAic, <font color=#B22222>// \arg pointer to the <a href="AT91SAM9260_AIC.html#AIC">AIC</a> registers</font>
<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> irq_id) <font color=#B22222>// \arg interrupt number to initialize</font>
{
<font color=#B22222>//* Clear the interrupt on the Interrupt Controller ( <font color=#0000FF>if</font> one is pending )</font>
pAic-><a href="AT91SAM9260_AIC.html#AIC_ICCR">AIC_ICCR</a> = (0x1 << irq_id);
}
<font color=#B22222>//*----------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn <b><a name="AT91F_AIC_AcknowledgeIt">AT91F_AIC_AcknowledgeIt</a></b></font>
<font color=#B22222>//* \brief Acknowledge corresponding IT number</font>
<font color=#B22222>//*----------------------------------------------------------------------------</font>
__inline <font color=#0000FF>void</font> <a href="#AT91F_AIC_AcknowledgeIt">AT91F_AIC_AcknowledgeIt</a> (
<a href="AT91SAM9260_h.html#AT91PS_AIC">AT91PS_AIC</a> pAic) <font color=#B22222>// \arg pointer to the <a href="AT91SAM9260_AIC.html#AIC">AIC</a> registers</font>
{
pAic-><a href="AT91SAM9260_AIC.html#AIC_EOICR">AIC_EOICR</a> = pAic-><a href="AT91SAM9260_AIC.html#AIC_EOICR">AIC_EOICR</a>;
}
<font color=#B22222>//*----------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn <b><a name="AT91F_AIC_SetExceptionVector">AT91F_AIC_SetExceptionVector</a></b></font>
<font color=#B22222>//* \brief Configure vector handler</font>
<font color=#B22222>//*----------------------------------------------------------------------------</font>
__inline <font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> <a href="#AT91F_AIC_SetExceptionVector">AT91F_AIC_SetExceptionVector</a> (
<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> *pVector, <font color=#B22222>// \arg pointer to the <a href="AT91SAM9260_AIC.html#AIC">AIC</a> registers</font>
<font color=#0000FF>void</font> (*Handler) () ) <font color=#B22222>// \arg Interrupt Handler</font>
{
<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> oldVector = *pVector;
<font color=#0000FF>if</font> ((<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font>) Handler == (<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font>) AT91C_AIC_BRANCH_OPCODE)
*pVector = (<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font>) AT91C_AIC_BRANCH_OPCODE;
<font color=#0000FF>else</font>
*pVector = (((((<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font>) Handler) - ((<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font>) pVector) - 0x8) >> 2) & 0x00FFFFFF) | 0xEA000000;
<font color=#0000FF>return</font> oldVector;
}
<font color=#B22222>//*----------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn <b><a name="AT91F_AIC_Trig">AT91F_AIC_Trig</a></b></font>
<font color=#B22222>//* \brief Trig an IT</font>
<font color=#B22222>//*----------------------------------------------------------------------------</font>
__inline <font color=#0000FF>void</font> <a href="#AT91F_AIC_Trig">AT91F_AIC_Trig</a> (
<a href="AT91SAM9260_h.html#AT91PS_AIC">AT91PS_AIC</a> pAic, <font color=#B22222>// \arg pointer to the <a href="AT91SAM9260_AIC.html#AIC">AIC</a> registers</font>
<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> irq_id) <font color=#B22222>// \arg interrupt number</font>
{
pAic-><a href="AT91SAM9260_AIC.html#AIC_ISCR">AIC_ISCR</a> = (0x1 << irq_id) ;
}
<font color=#B22222>//*----------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn <b><a name="AT91F_AIC_IsActive">AT91F_AIC_IsActive</a></b></font>
<font color=#B22222>//* \brief Test <font color=#0000FF>if</font> an IT is active</font>
<font color=#B22222>//*----------------------------------------------------------------------------</font>
__inline <font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> <a href="#AT91F_AIC_IsActive">AT91F_AIC_IsActive</a> (
<a href="AT91SAM9260_h.html#AT91PS_AIC">AT91PS_AIC</a> pAic, <font color=#B22222>// \arg pointer to the <a href="AT91SAM9260_AIC.html#AIC">AIC</a> registers</font>
<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> irq_id) <font color=#B22222>// \arg Interrupt Number</font>
{
<font color=#0000FF>return</font> (pAic-><a href="AT91SAM9260_AIC.html#AIC_ISR">AIC_ISR</a> & (0x1 << irq_id));
}
<font color=#B22222>//*----------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn <b><a name="AT91F_AIC_IsPending">AT91F_AIC_IsPending</a></b></font>
<font color=#B22222>//* \brief Test <font color=#0000FF>if</font> an IT is pending</font>
<font color=#B22222>//*----------------------------------------------------------------------------</font>
__inline <font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> <a href="#AT91F_AIC_IsPending">AT91F_AIC_IsPending</a> (
<a href="AT91SAM9260_h.html#AT91PS_AIC">AT91PS_AIC</a> pAic, <font color=#B22222>// \arg pointer to the <a href="AT91SAM9260_AIC.html#AIC">AIC</a> registers</font>
<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> irq_id) <font color=#B22222>// \arg Interrupt Number</font>
{
<font color=#0000FF>return</font> (pAic-><a href="AT91SAM9260_AIC.html#AIC_IPR">AIC_IPR</a> & (0x1 << irq_id));
}
<font color=#B22222>//*----------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn <b><a name="AT91F_AIC_Open">AT91F_AIC_Open</a></b></font>
<font color=#B22222>//* \brief Set exception vectors and <a href="AT91SAM9260_AIC.html#AIC">AIC</a> registers to <font color=#0000FF>default</font> values</font>
<font color=#B22222>//*----------------------------------------------------------------------------</font>
__inline <font color=#0000FF>void</font> <a href="#AT91F_AIC_Open">AT91F_AIC_Open</a>(
<a href="AT91SAM9260_h.html#AT91PS_AIC">AT91PS_AIC</a> pAic, <font color=#B22222>// \arg pointer to the <a href="AT91SAM9260_AIC.html#AIC">AIC</a> registers</font>
<font color=#0000FF>void</font> (*IrqHandler) (), <font color=#B22222>// \arg Default IRQ vector exception</font>
<font color=#0000FF>void</font> (*FiqHandler) (), <font color=#B22222>// \arg Default FIQ vector exception</font>
<font color=#0000FF>void</font> (*DefaultHandler) (), <font color=#B22222>// \arg Default Handler set in ISR</font>
<font color=#0000FF>void</font> (*SpuriousHandler) (), <font color=#B22222>// \arg Default Spurious Handler</font>
<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> protectMode) <font color=#B22222>// \arg Debug Control Register</font>
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -