<?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>Kinetis Microcontrollers中的主题 Re: Mask Set Errata for Mask 1N03P</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Mask-Set-Errata-for-Mask-1N03P/m-p/832382#M50347</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Kerry !&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Yes, _DSB() entry is visible in almost all interrupt handlers.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But not in TickTimerHandler in FreeRTOS port.c:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void xPortSysTickHandler(void)&lt;BR /&gt;{&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;uint32_t ulDummy;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;ulDummy = portSET_INTERRUPT_MASK_FROM_ISR();&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;/* Increment the RTOS tick. */&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (xTaskIncrementTick() != pdFALSE)&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* Pend a context switch. */&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;portNVIC_INT_CTRL_REG = portNVIC_PENDSVSET_BIT;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;portCLEAR_INTERRUPT_MASK_FROM_ISR(ulDummy);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;// ???&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Even if I unroll all macros, _DSB is not visible.&lt;/P&gt;&lt;P&gt;Or errata is not effect special handlers ?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;By the way, do you have idea when new SDK will be released&amp;nbsp; with new FreeRTOS 10.1.0 for K82 ?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Eugene&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 29 Aug 2018 07:28:54 GMT</pubDate>
    <dc:creator>EugeneHiihtaja</dc:creator>
    <dc:date>2018-08-29T07:28:54Z</dc:date>
    <item>
      <title>Mask Set Errata for Mask 1N03P</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Mask-Set-Errata-for-Mask-1N03P/m-p/832380#M50345</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello !&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Do I undestand right and "Mask Set Errata for Mask 1N03P&amp;nbsp;Rev. 09 Sept 2015" is the latest one what available for K82 MCU ?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;On my K82 I can see 1N03P&amp;nbsp; sign.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As result all interrupt handlers should have this code at the end of routine:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* Add for ARM errata 838869, affects Cortex-M4, Cortex-M4F Store immediate overlapping&lt;BR /&gt; exception return operation might vector to incorrect interrupt */&lt;BR /&gt;#if defined __CORTEX_M &amp;amp;&amp;amp; (__CORTEX_M == 4U)&lt;BR /&gt; __DSB();&lt;BR /&gt;#endif&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Or may be even:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;__DSB();&lt;/P&gt;&lt;P&gt;__ISB();&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Eugene&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 28 Aug 2018 07:31:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Mask-Set-Errata-for-Mask-1N03P/m-p/832380#M50345</guid>
      <dc:creator>EugeneHiihtaja</dc:creator>
      <dc:date>2018-08-28T07:31:24Z</dc:date>
    </item>
    <item>
      <title>Re: Mask Set Errata for Mask 1N03P</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Mask-Set-Errata-for-Mask-1N03P/m-p/832381#M50346</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Eugene,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Yes, The IN03P errata from this link:&lt;/P&gt;&lt;P&gt;&lt;A class="link-titled" href="https://www.nxp.com/docs/en/errata/KINETIS_K_1N03P.pdf" title="https://www.nxp.com/docs/en/errata/KINETIS_K_1N03P.pdf"&gt;https://www.nxp.com/docs/en/errata/KINETIS_K_1N03P.pdf&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; is the latest document.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; The relate item is e9005, actually, it is the ARM errata 838869, you also can check the ARM core website.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; About the workaround code, you totally can refer to the SDK K82 code, that code driver already add the DSB, take an example:&lt;/P&gt;&lt;P&gt;void LPUART0_LPUART1_TX_DriverIRQHandler(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (CLOCK_isEnabledClock(s_lpuartClock[0]))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((LPUART_STAT_OR_MASK &amp;amp; LPUART0-&amp;gt;STAT) ||&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ((LPUART0-&amp;gt;STAT &amp;amp; LPUART_STAT_TDRE_MASK) &amp;amp;&amp;amp; (LPUART0-&amp;gt;CTRL &amp;amp; LPUART_CTRL_TIE_MASK)))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s_lpuartIsr(LPUART0, s_lpuartHandle[0]);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (CLOCK_isEnabledClock(s_lpuartClock[1]))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((LPUART_STAT_OR_MASK &amp;amp; LPUART1-&amp;gt;STAT) ||&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ((LPUART1-&amp;gt;STAT &amp;amp; LPUART_STAT_TDRE_MASK) &amp;amp;&amp;amp; (LPUART1-&amp;gt;CTRL &amp;amp; LPUART_CTRL_TIE_MASK)))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s_lpuartIsr(LPUART1, s_lpuartHandle[1]);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;/* Add for ARM errata 838869, affects Cortex-M4, Cortex-M4F Store immediate overlapping&lt;BR /&gt;&amp;nbsp; exception return operation might vector to incorrect interrupt */&lt;BR /&gt;#if defined __CORTEX_M &amp;amp;&amp;amp; (__CORTEX_M == 4U)&lt;BR /&gt;&amp;nbsp;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp; __DSB();&lt;/STRONG&gt;&lt;BR /&gt;#endif&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Wish it helps you!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Kerry&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 29 Aug 2018 07:04:22 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Mask-Set-Errata-for-Mask-1N03P/m-p/832381#M50346</guid>
      <dc:creator>kerryzhou</dc:creator>
      <dc:date>2018-08-29T07:04:22Z</dc:date>
    </item>
    <item>
      <title>Re: Mask Set Errata for Mask 1N03P</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Mask-Set-Errata-for-Mask-1N03P/m-p/832382#M50347</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Kerry !&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Yes, _DSB() entry is visible in almost all interrupt handlers.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But not in TickTimerHandler in FreeRTOS port.c:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void xPortSysTickHandler(void)&lt;BR /&gt;{&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;uint32_t ulDummy;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;ulDummy = portSET_INTERRUPT_MASK_FROM_ISR();&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;/* Increment the RTOS tick. */&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (xTaskIncrementTick() != pdFALSE)&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* Pend a context switch. */&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;portNVIC_INT_CTRL_REG = portNVIC_PENDSVSET_BIT;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;portCLEAR_INTERRUPT_MASK_FROM_ISR(ulDummy);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;// ???&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Even if I unroll all macros, _DSB is not visible.&lt;/P&gt;&lt;P&gt;Or errata is not effect special handlers ?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;By the way, do you have idea when new SDK will be released&amp;nbsp; with new FreeRTOS 10.1.0 for K82 ?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Eugene&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 29 Aug 2018 07:28:54 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Mask-Set-Errata-for-Mask-1N03P/m-p/832382#M50347</guid>
      <dc:creator>EugeneHiihtaja</dc:creator>
      <dc:date>2018-08-29T07:28:54Z</dc:date>
    </item>
  </channel>
</rss>

