<?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 MKW21D256 Flash Operation interrupt disable in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/MKW21D256-Flash-Operation-interrupt-disable/m-p/413191#M23459</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I am developing a system based on the MKW21D256 that implements a certain standard that requires pretty accurate baud rate, to achieve this I have implemented a timer that triggers an interrupt and there I toggle the correct pins etc.&lt;/P&gt;&lt;P&gt;My problem is when I would like to upgrade the system, at the beginning of the operation I want to erase the internal storage flash block (~96kB).&lt;/P&gt;&lt;P&gt;The problem is that it takes a lot of time to format this section and it is being done while under disabling all interrupts.&lt;/P&gt;&lt;P&gt;I tried splitting the erase of the entire block to smaller erases but each one is &amp;gt;5ms long and my timer interrupt interval is every 3.5ms.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any idea how I can format the flash region without hurting the timing of the system? I want to be able to upgrade the device while still "In service" in terms of the protocol I am implementing.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Roy.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 16 Nov 2015 11:34:40 GMT</pubDate>
    <dc:creator>roybenshlomo</dc:creator>
    <dc:date>2015-11-16T11:34:40Z</dc:date>
    <item>
      <title>MKW21D256 Flash Operation interrupt disable</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/MKW21D256-Flash-Operation-interrupt-disable/m-p/413191#M23459</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I am developing a system based on the MKW21D256 that implements a certain standard that requires pretty accurate baud rate, to achieve this I have implemented a timer that triggers an interrupt and there I toggle the correct pins etc.&lt;/P&gt;&lt;P&gt;My problem is when I would like to upgrade the system, at the beginning of the operation I want to erase the internal storage flash block (~96kB).&lt;/P&gt;&lt;P&gt;The problem is that it takes a lot of time to format this section and it is being done while under disabling all interrupts.&lt;/P&gt;&lt;P&gt;I tried splitting the erase of the entire block to smaller erases but each one is &amp;gt;5ms long and my timer interrupt interval is every 3.5ms.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any idea how I can format the flash region without hurting the timing of the system? I want to be able to upgrade the device while still "In service" in terms of the protocol I am implementing.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Roy.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Nov 2015 11:34:40 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/MKW21D256-Flash-Operation-interrupt-disable/m-p/413191#M23459</guid>
      <dc:creator>roybenshlomo</dc:creator>
      <dc:date>2015-11-16T11:34:40Z</dc:date>
    </item>
    <item>
      <title>Re: MKW21D256 Flash Operation interrupt disable</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/MKW21D256-Flash-Operation-interrupt-disable/m-p/413192#M23460</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello roybenshlomo:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;A possible workaround in your case would be to leave the timer interrupt enabled during flash programming. This requires that the interrupt vectors are copied to RAM and setting the SCB_VTOR register accordingly, and also the timer interrupt handler code itself must be in RAM. The procedure to place a function in RAM depends on the IDE/toolchain. In the appnote from the next link you can find some ideas:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://cache.freescale.com/files/32bit/doc/app_note/AN4695" title="http://cache.freescale.com/files/32bit/doc/app_note/AN4695"&gt;http://cache.freescale.com/files/32bit/doc/app_note/AN4695&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Regards!,&lt;BR /&gt;Jorge Gonzalez&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>Fri, 20 Nov 2015 03:41:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/MKW21D256-Flash-Operation-interrupt-disable/m-p/413192#M23460</guid>
      <dc:creator>Jorge_Gonzalez</dc:creator>
      <dc:date>2015-11-20T03:41:17Z</dc:date>
    </item>
  </channel>
</rss>

