<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>S12 / MagniV MicrocontrollersのトピックInterrupt priority decoder</title>
    <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Interrupt-priority-decoder/m-p/1060290#M17235</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi All,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am referring the&amp;nbsp;MC9S12ZVM-Family RM&lt;/P&gt;&lt;P&gt;In that Chapter&amp;nbsp;4.4.3 Priority Decoder has a NOTE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Care must be taken to ensure that all exception requests remain active until&lt;BR /&gt;the system begins execution of the applicable service routine; otherwise, the&lt;BR /&gt;exception request may not get processed at all or the result may be a&lt;BR /&gt;spurious interrupt request (vector at address (vector base + 0x0001DC))&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can someone please explain what exactly&amp;nbsp; "care must be taken " here mean.&lt;/P&gt;&lt;P&gt;From a software point of view what exactly are the steps to be taken to ensure the exception request remains active.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you in advance&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 22 May 2020 07:14:56 GMT</pubDate>
    <dc:creator>pratibhasurabhi</dc:creator>
    <dc:date>2020-05-22T07:14:56Z</dc:date>
    <item>
      <title>Interrupt priority decoder</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Interrupt-priority-decoder/m-p/1060290#M17235</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi All,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am referring the&amp;nbsp;MC9S12ZVM-Family RM&lt;/P&gt;&lt;P&gt;In that Chapter&amp;nbsp;4.4.3 Priority Decoder has a NOTE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Care must be taken to ensure that all exception requests remain active until&lt;BR /&gt;the system begins execution of the applicable service routine; otherwise, the&lt;BR /&gt;exception request may not get processed at all or the result may be a&lt;BR /&gt;spurious interrupt request (vector at address (vector base + 0x0001DC))&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can someone please explain what exactly&amp;nbsp; "care must be taken " here mean.&lt;/P&gt;&lt;P&gt;From a software point of view what exactly are the steps to be taken to ensure the exception request remains active.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you in advance&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 22 May 2020 07:14:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Interrupt-priority-decoder/m-p/1060290#M17235</guid>
      <dc:creator>pratibhasurabhi</dc:creator>
      <dc:date>2020-05-22T07:14:56Z</dc:date>
    </item>
    <item>
      <title>Re: Interrupt priority decoder</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Interrupt-priority-decoder/m-p/1060291#M17236</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;Typically spurious interrupts are caused when an interrupt source is masked at the same time the interrupt is asserted. The processor attempts to recognize the interrupt, but by the time it gets to the interrupt controller the interrupt has been masked, so the original source of the interrupt cannot be found.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;Disabling a specific interrupt source without previously setting the I mask bit in the CCR can result in spurious interrupts which cause the micro-controller to take the spurious interrupt vector instead of the expected interrupt vector.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;It is recommended to set the I mask bit before disabling a maskable interrupt source to avoid spurious interrupts.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;A spurious interrupt occurs when the micro-controller starts interrupt processing due to an asserted interrupt, but when the interrupt vector is fetched, the interrupt has gone. In this case, the microcontroller will fetch the spurious interrupt vector.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;&amp;nbsp;Interrupt flags must be cleared only within corresponding interrupt routines to be absolutely sure the spurious interrupt will not be generated&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;&amp;nbsp;Spurious interrupt is generated always the source of interrupt is not known =&amp;gt; also problem can be in the case of IRQ and XIRQ, when they are level sensitive, they can be deactivated before the CPU recognize interrupt source =&amp;gt; When IRQ or XIRQ are enabled the pulse connected to these pins have to have minimal given length to generate valid interrupt.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;Moreover, you should check whether interrupt flags are correctly cleared.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;For example: clear flag bit 3 in register PIFP:&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;PIFP = 0x08; // correct&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;PIFP |= 0x08; // wrong approach because this approach clears all flags in the PIFP register (not only selected) because process is made as read-modify-write.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;Ladislav&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 25 May 2020 06:05:39 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Interrupt-priority-decoder/m-p/1060291#M17236</guid>
      <dc:creator>lama</dc:creator>
      <dc:date>2020-05-25T06:05:39Z</dc:date>
    </item>
  </channel>
</rss>

