<?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>topic Re: Critical section in MPC5604 in MPC5xxx</title>
    <link>https://community.nxp.com/t5/MPC5xxx/Critical-section-in-MPC5604/m-p/418232#M918</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Calibri',sans-serif;"&gt;Hi,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Calibri',sans-serif;"&gt;you can use both constructions. Both are HW methods which allow execute code atomically. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Calibri',sans-serif;"&gt;Call function &lt;/SPAN&gt;&lt;SPAN&gt;&lt;EM style="color: #222222; font-size: 11.0pt; font-family: 'Calibri',sans-serif;"&gt;interrupt_disable_interrupt() &lt;/EM&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Calibri',sans-serif; color: #222222;"&gt;before the code which must be executed without interrupt. This function disable external interrupts and your code will be executed atomically. After the code in critical section is executed call &lt;SPAN&gt;&lt;EM style="font-family: 'Calibri',sans-serif;"&gt;interrupt_enable_interrupt() &lt;/EM&gt;function. This function enables external interrupts.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN style="color: #222222; font-size: 11.0pt; font-family: 'Calibri',sans-serif;"&gt;&amp;nbsp; &lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN style="color: #222222; font-size: 11.0pt; font-family: 'Calibri',sans-serif;"&gt;Regards,&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN style="color: #222222; font-size: 11.0pt; font-family: 'Calibri',sans-serif;"&gt;Martin&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 22 Oct 2015 12:29:03 GMT</pubDate>
    <dc:creator>martin_kovar</dc:creator>
    <dc:date>2015-10-22T12:29:03Z</dc:date>
    <item>
      <title>Critical section in MPC5604</title>
      <link>https://community.nxp.com/t5/MPC5xxx/Critical-section-in-MPC5604/m-p/418231#M917</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;BR /&gt;What is construction for EnterCritical and ExitCritical macro (function) to have part of code without interrupt?&lt;/P&gt;&lt;P&gt;Micro: MPC5604&lt;/P&gt;&lt;P&gt;I found these examples below.&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.1999998092651px;"&gt;&lt;STRONG&gt;methode #1:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.1999998092651px;"&gt;Disable/Enable interrupts&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.1999998092651px;"&gt;&lt;EM&gt;void interrupt_enable_interrupt(void)&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.1999998092651px;"&gt;&lt;EM&gt;{&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.1999998092651px;"&gt;&lt;EM&gt;&amp;nbsp; asm(" wrteei 1");&amp;nbsp;&amp;nbsp; /* Enable external interrupts */&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.1999998092651px;"&gt;&lt;EM&gt;}&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.1999998092651px;"&gt;&lt;EM&gt;&lt;BR /&gt;&lt;/EM&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.1999998092651px;"&gt;&lt;EM&gt;void interrupt_disable_interrupt(void)&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.1999998092651px;"&gt;&lt;EM&gt;{&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.1999998092651px;"&gt;&lt;EM&gt;&amp;nbsp; asm(" wrteei 0");&amp;nbsp;&amp;nbsp; /* disable external interrupts */&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.1999998092651px;"&gt;&lt;EM&gt;}&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.1999998092651px;"&gt;&lt;STRONG&gt;method #2:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.1999998092651px;"&gt;Save/Restore&amp;nbsp;&amp;nbsp; interrupt status to local variable&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.1999998092651px;"&gt;A local variable 'cpu_sr' of type 'vint32_t' needs to be defined in this method.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.1999998092651px;"&gt;&lt;EM&gt;vuint32_t interrupt_enter_critical(void)&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.1999998092651px;"&gt;&lt;EM&gt;{&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.1999998092651px;"&gt;&lt;EM&gt;&amp;nbsp; asm("mfmsr r3");&amp;nbsp;&amp;nbsp; /* save the register on the local variable */&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.1999998092651px;"&gt;&lt;EM&gt;&amp;nbsp; asm("wrteei 0");&amp;nbsp;&amp;nbsp; /* disable the interrupt */&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.1999998092651px;"&gt;&lt;EM&gt;}&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.1999998092651px;"&gt;&lt;EM&gt;&lt;BR /&gt;&lt;/EM&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.1999998092651px;"&gt;&lt;EM&gt;void interrupt_exit_critical(vuint32_t status_reg)&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.1999998092651px;"&gt;&lt;EM&gt;{&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.1999998092651px;"&gt;&lt;EM&gt;&amp;nbsp; asm("mtmsr r3");&amp;nbsp;&amp;nbsp; /* Enable external interrupts */&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.1999998092651px;"&gt;&lt;EM&gt;}&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Somebody used these constructions? Is it working?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 21 Oct 2015 12:16:48 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/Critical-section-in-MPC5604/m-p/418231#M917</guid>
      <dc:creator>remigiuszmachur</dc:creator>
      <dc:date>2015-10-21T12:16:48Z</dc:date>
    </item>
    <item>
      <title>Re: Critical section in MPC5604</title>
      <link>https://community.nxp.com/t5/MPC5xxx/Critical-section-in-MPC5604/m-p/418232#M918</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Calibri',sans-serif;"&gt;Hi,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Calibri',sans-serif;"&gt;you can use both constructions. Both are HW methods which allow execute code atomically. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Calibri',sans-serif;"&gt;Call function &lt;/SPAN&gt;&lt;SPAN&gt;&lt;EM style="color: #222222; font-size: 11.0pt; font-family: 'Calibri',sans-serif;"&gt;interrupt_disable_interrupt() &lt;/EM&gt;&lt;SPAN style="font-size: 11.0pt; font-family: 'Calibri',sans-serif; color: #222222;"&gt;before the code which must be executed without interrupt. This function disable external interrupts and your code will be executed atomically. After the code in critical section is executed call &lt;SPAN&gt;&lt;EM style="font-family: 'Calibri',sans-serif;"&gt;interrupt_enable_interrupt() &lt;/EM&gt;function. This function enables external interrupts.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN style="color: #222222; font-size: 11.0pt; font-family: 'Calibri',sans-serif;"&gt;&amp;nbsp; &lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN style="color: #222222; font-size: 11.0pt; font-family: 'Calibri',sans-serif;"&gt;Regards,&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN style="color: #222222; font-size: 11.0pt; font-family: 'Calibri',sans-serif;"&gt;Martin&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 22 Oct 2015 12:29:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/Critical-section-in-MPC5604/m-p/418232#M918</guid>
      <dc:creator>martin_kovar</dc:creator>
      <dc:date>2015-10-22T12:29:03Z</dc:date>
    </item>
  </channel>
</rss>

