📄 basic.html
字号:
<p class=MsoNormal style='margin-left:72.0pt'><span lang=EN-US
style='mso-ansi-language:EN-US'>- Priority needs to manage nested interrupt and
to enable the next interrupt (clear I bit)<o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:72.0pt'><span lang=EN-US
style='mso-ansi-language:EN-US'>Save the context (scratched registers only) <o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:72.0pt'><span lang=EN-US
style='mso-ansi-language:EN-US'>Call the C handler (IVR) <o:p><br>
<br>
</o:p></span></p>
<p class=MsoNormal style='margin-left:36.0pt'><b><span lang=EN-US
style='mso-ansi-language:EN-US'>Interrupt Handling Exit</span></b><span
lang=EN-US style='mso-ansi-language:EN-US'> <o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:72.0pt'><span lang=EN-US
style='mso-ansi-language:EN-US'>Restore the context<o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:72.0pt'><span lang=EN-US
style='mso-ansi-language:EN-US'>Disable Interrupt<o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:72.0pt'><span lang=EN-US
style='mso-ansi-language:EN-US'>Switch back in IRQ Mode<o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:72.0pt'><span lang=EN-US
style='mso-ansi-language:EN-US'>Write AIC_EOICR<o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:72.0pt'><span lang=EN-US
style='mso-ansi-language:EN-US'>Restore r0 and spsr_irq<o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:72.0pt'><span lang=EN-US
style='mso-ansi-language:EN-US'>Restore lr directly in pc<o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:72.0pt'><span lang=EN-US
style='mso-ansi-language:EN-US'>Because adjusted in entry sequence<o:p><br>
<br>
</o:p></span></p>
<p class=MsoNormal style='margin-left:36.0pt'><a name="Interrupt_detection"><b><span
lang=EN-US style='mso-ansi-language:EN-US'>Interrupt Detection</span></b></a><b><span
lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></b></p>
<p class=MsoNormal style='margin-left:36.0pt'><span lang=EN-US
style='mso-ansi-language:EN-US'>When an interrupt source is detected, AIC asserts
NIRQ<o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:72.0pt'><span lang=FR style='mso-ansi-language:
FR'>- AIC de-asserts the NIRQ<o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:72.0pt'><span lang=EN-US
style='mso-ansi-language:EN-US'>- AIC determines the highest level pending and
enabled interrupt source<o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:72.0pt'><span lang=EN-US
style='mso-ansi-language:EN-US'>- AIC pushes the level of the current interrupt
in hardware stack<o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:72.0pt'><span lang=EN-US
style='mso-ansi-language:EN-US'>- AIC clears the interrupt if it’s edge
triggered<o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:72.0pt'><span lang=EN-US
style='mso-ansi-language:EN-US'>- AIC returns the vector corresponding to the
current interrupt<o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:36.0pt'><span lang=EN-US
style='mso-ansi-language:EN-US'>Interrupt Service Routine re-enables as soon as
possible the interrupt at processor level<o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:36.0pt'><span lang=EN-US
style='mso-ansi-language:EN-US'>A highest-level interrupt can occur and restarts
this sequence<o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:36.0pt'><span lang=EN-US
style='mso-ansi-language:EN-US'>The Interrupt Service Exit code disables the interrupt
at processor level and writes the End Of Interrupt Command Register<o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:72.0pt'><span lang=EN-US
style='mso-ansi-language:EN-US'>- AIC pops from its hardware stack the current
level<o:p></o:p></span></p>
<p style='margin-left:36.0pt'><span lang=EN-US style='mso-ansi-language:EN-US'>Interrupt
Handling Entry <!-- ******* Interrupt level ********** !--><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:36.0pt'><a name="Interrupt_Level"><b><span
lang=EN-US style='mso-ansi-language:EN-US'>Interrupt level </span></b></a><b><span
lang=EN-US style='mso-ansi-language:EN-US'>description<o:p></o:p></span></b></p>
<p class=MsoNormal style='margin-left:36.0pt'><span lang=EN-US
style='mso-ansi-language:EN-US'>The NIRQ line is controlled by an 8-level priority
encoder. Each source has a programmable priority level of 7 to 0. Level 7
is the highest priority and level 0 the lowest.<o:p><br>
<br>
</o:p></span></p>
<table border=1 cellspacing=1 cellpadding=0 width=665 style='width:498.75pt;
mso-cellspacing:.7pt;mso-padding-alt:5.25pt 5.25pt 5.25pt 5.25pt'>
<tr>
<td width="8%" valign=top style='width:8.0%;padding:5.25pt 5.25pt 5.25pt 5.25pt'>
<p><b><span lang=EN-US style='font-size:10.0pt;mso-ansi-language:EN-US'>level</span></b><span
lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
</td>
<td width="8%" valign=top style='width:8.0%;padding:5.25pt 5.25pt 5.25pt 5.25pt'>
<p><b><span lang=EN-US style='font-size:10.0pt;mso-ansi-language:EN-US'>LED</span></b><span
lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
</td>
<td width="25%" valign=top style='width:25.0%;padding:5.25pt 5.25pt 5.25pt 5.25pt'>
<p><b><span lang=EN-US style='font-size:10.0pt;mso-ansi-language:EN-US'>Name</span></b><span
lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
</td>
<td width="58%" valign=top style='width:58.0%;padding:5.25pt 5.25pt 5.25pt 5.25pt'>
<p><b><span lang=EN-US style='font-size:10.0pt;mso-ansi-language:EN-US'>Comment</span></b><span
lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
</td>
</tr>
<tr>
<td width="8%" valign=top style='width:8.0%;padding:5.25pt 5.25pt 5.25pt 5.25pt'>
<p><span lang=EN-US style='font-size:10.0pt;mso-ansi-language:EN-US'>1(lower)</span><span
lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
</td>
<td width="8%" valign=top style='width:8.0%;padding:5.25pt 5.25pt 5.25pt 5.25pt'>
<p><span lang=EN-US style='font-size:10.0pt;mso-ansi-language:EN-US'>3</span><span
lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
</td>
<td width="25%" valign=top style='width:25.0%;padding:5.25pt 5.25pt 5.25pt 5.25pt'>
<p><span lang=EN-US style='font-size:10.0pt;mso-ansi-language:EN-US'>TIMER0_INTERRUPT_LEVEL
</span><span lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
</td>
<td width="58%" valign=top style='width:58.0%;padding:5.25pt 5.25pt 5.25pt 5.25pt'>
<p><span lang=EN-US style='font-size:10.0pt;mso-ansi-language:EN-US'>Timer
led blink high speed</span><span lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
</td>
</tr>
<tr>
<td width="8%" valign=top style='width:8.0%;padding:5.25pt 5.25pt 5.25pt 5.25pt'>
<p><span lang=EN-US style='font-size:10.0pt;mso-ansi-language:EN-US'>2</span><span
lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
</td>
<td width="8%" valign=top style='width:8.0%;padding:5.25pt 5.25pt 5.25pt 5.25pt'>
<p><span lang=EN-US style='font-size:10.0pt;mso-ansi-language:EN-US'>2</span><span
lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
</td>
<td width="25%" valign=top style='width:25.0%;padding:5.25pt 5.25pt 5.25pt 5.25pt'>
<p><span lang=EN-US style='font-size:10.0pt;mso-ansi-language:EN-US'>IRQ0_INTERRUPT_LEVEL
</span><span lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
</td>
<td width="58%" valign=top style='width:58.0%;padding:5.25pt 5.25pt 5.25pt 5.25pt'>
<p><span lang=EN-US style='font-size:10.0pt;mso-ansi-language:EN-US'>External
IRQ0 interrupt (SW2) </span><span lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
</td>
</tr>
<tr>
<td width="8%" valign=top style='width:8.0%;padding:5.25pt 5.25pt 5.25pt 5.25pt'>
<p><span lang=EN-US style='font-size:10.0pt;mso-ansi-language:EN-US'>4</span><span
lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
</td>
<td width="8%" valign=top style='width:8.0%;padding:5.25pt 5.25pt 5.25pt 5.25pt'>
<p><span lang=EN-US style='font-size:10.0pt;mso-ansi-language:EN-US'>4</span><span
lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
</td>
<td width="25%" valign=top style='width:25.0%;padding:5.25pt 5.25pt 5.25pt 5.25pt'>
<p><span lang=EN-US style='font-size:10.0pt;mso-ansi-language:EN-US'>TIMER1_INTERRUPT_LEVEL
</span><span lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
</td>
<td width="58%" valign=top style='width:58.0%;padding:5.25pt 5.25pt 5.25pt 5.25pt'>
<p><span lang=EN-US style='font-size:10.0pt;mso-ansi-language:EN-US'>Timer
1 led blink low speed</span><span lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
</td>
</tr>
<tr>
<td width="8%" valign=top style='width:8.0%;padding:5.25pt 5.25pt 5.25pt 5.25pt'>
<p><span lang=EN-US style='font-size:10.0pt;mso-ansi-language:EN-US'>5</span><span
lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
</td>
<td width="8%" valign=top style='width:8.0%;padding:5.25pt 5.25pt 5.25pt 5.25pt'>
<p><span lang=EN-US style='font-size:10.0pt;mso-ansi-language:EN-US'>2</span><span
lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
</td>
<td width="25%" valign=top style='width:25.0%;padding:5.25pt 5.25pt 5.25pt 5.25pt'>
<p><span lang=EN-US style='font-size:10.0pt;mso-ansi-language:EN-US'>SOFT_INTERRUPT_LEVEL
</span><span lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
</td>
<td width="58%" valign=top style='width:58.0%;padding:5.25pt 5.25pt 5.25pt 5.25pt'>
<p><span lang=EN-US style='font-size:10.0pt;mso-ansi-language:EN-US'>Generate
in main function by setting the AIC </span><span lang=EN-US style='mso-ansi-language:
EN-US'><o:p></o:p></span></p>
</td>
</tr>
<tr>
<td width="8%" valign=top style='width:8.0%;padding:5.25pt 5.25pt 5.25pt 5.25pt'>
<p><span lang=EN-US style='font-size:10.0pt;mso-ansi-language:EN-US'>6</span><span
lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
</td>
<td width="8%" valign=top style='width:8.0%;padding:5.25pt 5.25pt 5.25pt 5.25pt'>
<p><span lang=EN-US style='font-size:10.0pt;mso-ansi-language:EN-US'>2</span><span
lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
</td>
<td width="25%" valign=top style='width:25.0%;padding:5.25pt 5.25pt 5.25pt 5.25pt'>
<p><span lang=EN-US style='font-size:10.0pt;mso-ansi-language:EN-US'>PIO_INTERRUPT_LEVEL
</span><span lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
</td>
<td width="58%" valign=top style='width:58.0%;padding:5.25pt 5.25pt 5.25pt 5.25pt'>
<p><span lang=EN-US style='font-size:10.0pt;mso-ansi-language:EN-US'>PIO
interrupt(SW4) </span><span lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
</td>
</tr>
<tr>
<td width="8%" valign=top style='width:8.0%;padding:5.25pt 5.25pt 5.25pt 5.25pt'>
<p><span lang=EN-US style='font-size:10.0pt;mso-ansi-language:EN-US'>7</span><span
lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
</td>
<td width="8%" valign=top style='width:8.0%;padding:5.25pt 5.25pt 5.25pt 5.25pt'>
<p><span lang=EN-US style='font-size:10.0pt;mso-ansi-language:EN-US'>None</span><span
lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
</td>
<td width="25%" valign=top style='width:25.0%;padding:5.25pt 5.25pt 5.25pt 5.25pt'>
<p><span lang=EN-US style='font-size:10.0pt;mso-ansi-language:EN-US'>USART_INTERRUPT_LEVEL
</span><span lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
</td>
<td width="58%" valign=top style='width:58.0%;padding:5.25pt 5.25pt 5.25pt 5.25pt'>
<p><span lang=EN-US style='font-size:10.0pt;mso-ansi-language:EN-US'>USART
1 Interrupt only on RX with RXRDY and error OVER, Framing, Parity, Time
out </span><span
lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
</td>
</tr>
<tr>
<td width="8%" valign=top style='width:8.0%;padding:5.25pt 5.25pt 5.25pt 5.25pt'>
<p><span lang=EN-US style='font-size:10.0pt;mso-ansi-language:EN-US'>FIQ
</span><span
lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
</td>
<td width="8%" valign=top style='width:8.0%;padding:5.25pt 5.25pt 5.25pt 5.25pt'>
<p><span lang=EN-US style='font-size:10.0pt;mso-ansi-language:EN-US'>4
</span><span
lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
</td>
<td width="25%" valign=top style='width:25.0%;padding:5.25pt 5.25pt 5.25pt 5.25pt'>
<p><span lang=EN-US style='font-size:10.0pt;mso-ansi-language:EN-US'>FIQ_INTERRUPT_LEVEL
</span><span lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -