<?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>MQX Software SolutionsのトピックProper BASEPRI on Kinetis when interrupt priorities are used</title>
    <link>https://community.nxp.com/t5/MQX-Software-Solutions/Proper-BASEPRI-on-Kinetis-when-interrupt-priorities-are-used/m-p/164169#M1473</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello all,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In my K60-based MQX system, I need interrupts of different priorities. So far, I've used _bsp_int_init to assign priorities to the&amp;nbsp; interrupt vectors I want to have high priority, leaving ordinary interrupts untouched. When I look at the NVIC_IPRxx registers in the CodeWarrior 10&amp;nbsp;debugger, I see priority 0xC0 everywhere, except for my high-priority interrupts, some of which are at 0x80, some&amp;nbsp;very urgent ones&amp;nbsp;at 0x60. So far, so good.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;On entering an ISR installed using _int_install_isr, I read BASEPRI as 0xC0, and PRIMASK as 0, i.e. every interrupt with priority 0x80 or 0x60 is&amp;nbsp;welcome to interrupt this ISR. Hence, my 0x60 urgent ISR can be interrupted by a less-urgent 0x80 ISR, even if&amp;nbsp;the first C instruction in its body is _int_disable().&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Are my observations and conclusions correct? Is there a way I can achieve prioritized interrupts without using kernel ISRs everywhere?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 02 Sep 2011 15:54:13 GMT</pubDate>
    <dc:creator>konrada_anton</dc:creator>
    <dc:date>2011-09-02T15:54:13Z</dc:date>
    <item>
      <title>Proper BASEPRI on Kinetis when interrupt priorities are used</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Proper-BASEPRI-on-Kinetis-when-interrupt-priorities-are-used/m-p/164169#M1473</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello all,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In my K60-based MQX system, I need interrupts of different priorities. So far, I've used _bsp_int_init to assign priorities to the&amp;nbsp; interrupt vectors I want to have high priority, leaving ordinary interrupts untouched. When I look at the NVIC_IPRxx registers in the CodeWarrior 10&amp;nbsp;debugger, I see priority 0xC0 everywhere, except for my high-priority interrupts, some of which are at 0x80, some&amp;nbsp;very urgent ones&amp;nbsp;at 0x60. So far, so good.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;On entering an ISR installed using _int_install_isr, I read BASEPRI as 0xC0, and PRIMASK as 0, i.e. every interrupt with priority 0x80 or 0x60 is&amp;nbsp;welcome to interrupt this ISR. Hence, my 0x60 urgent ISR can be interrupted by a less-urgent 0x80 ISR, even if&amp;nbsp;the first C instruction in its body is _int_disable().&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Are my observations and conclusions correct? Is there a way I can achieve prioritized interrupts without using kernel ISRs everywhere?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 02 Sep 2011 15:54:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Proper-BASEPRI-on-Kinetis-when-interrupt-priorities-are-used/m-p/164169#M1473</guid>
      <dc:creator>konrada_anton</dc:creator>
      <dc:date>2011-09-02T15:54:13Z</dc:date>
    </item>
    <item>
      <title>Re: Proper BASEPRI on Kinetis when interrupt priorities are used</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Proper-BASEPRI-on-Kinetis-when-interrupt-priorities-are-used/m-p/164170#M1474</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Konrada,&lt;/P&gt;&lt;P&gt;First I'm not expert on the Kinetis NVIC yet.&lt;/P&gt;&lt;P&gt;The _int_install_isr() is actually registering your ISR function to a table that the kernel ISR will reference.&amp;nbsp; If you want your ISR to be highest you might want to implement a _int_install_kernel_isr() call.&lt;/P&gt;&lt;P&gt;Look at this post for further information on this topic:&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.freescale.com/message/92916#92916" title="https://community.freescale.com/message/92916#92916"&gt;https://community.freescale.com/message/92916#92916&lt;/A&gt;&lt;/P&gt;&lt;P&gt;Hope this helps.&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;David&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 02 Sep 2011 20:31:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Proper-BASEPRI-on-Kinetis-when-interrupt-priorities-are-used/m-p/164170#M1474</guid>
      <dc:creator>DavidS</dc:creator>
      <dc:date>2011-09-02T20:31:36Z</dc:date>
    </item>
  </channel>
</rss>

