<?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>i.MX ProcessorsのトピックRe: Disabling IRQ during FlexSPI operations (erase, write, etc.) stops SysTick</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/Disabling-IRQ-during-FlexSPI-operations-erase-write-etc-stops/m-p/1648318#M205643</link>
    <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/208015"&gt;@SpoonMan&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp; Yes, RT1050, RT1060 ROM API is not the same.&lt;/P&gt;
&lt;P&gt;&amp;nbsp; As the RT1060 ROM support the get_config, but RT1050 can't support it.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="kerryzhou_0-1683781668255.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/222649iA2FA53018A286376/image-size/medium?v=v2&amp;amp;px=400" role="button" title="kerryzhou_0-1683781668255.png" alt="kerryzhou_0-1683781668255.png" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;kerryzhou_0-1683781668255.png&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;You need to manually configure the get_config in the RT1050, just this API:&lt;/P&gt;
&lt;P&gt;void FLEXSPI_NorFlash_GetConfig(flexspi_nor_config_t *config)&lt;/P&gt;
&lt;P&gt;I mean, you need to modify the API internal related configuration, the&amp;nbsp;config-&amp;gt; LUT, etc.&lt;/P&gt;
&lt;P&gt;For the detail content, you can refer to the flexspi_polling in :&lt;/P&gt;
&lt;P&gt;SDK_2_13_0_EVKB-IMXRT1050\boards\evkbimxrt1050\driver_examples\flexspi\nor&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It's not difficult, you can try it, if you still meet issues, let me know, I may find time to help you to modify it. But for this part, it's better to create a new question post about it, as this post is a little old.&lt;/P&gt;
&lt;P&gt;Best Regards,&lt;/P&gt;
&lt;P&gt;Kerry&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 11 May 2023 05:11:07 GMT</pubDate>
    <dc:creator>kerryzhou</dc:creator>
    <dc:date>2023-05-11T05:11:07Z</dc:date>
    <item>
      <title>Disabling IRQ during FlexSPI operations (erase, write, etc.) stops SysTick</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Disabling-IRQ-during-FlexSPI-operations-erase-write-etc-stops/m-p/1642126#M205025</link>
      <description>&lt;P&gt;Hi everybody,&lt;/P&gt;&lt;P&gt;referring to:&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A href="https://github.com/NXP/vizn3d_smartlock_oobe" target="_blank"&gt;https://github.com/NXP/vizn3d_smartlock_oobe/tree/rt117x/smart_lockhttps://github.com/NXP/vizn3d_smartlock_oobe&lt;/A&gt;&lt;/P&gt;&lt;P&gt;I correctly see that, because of XIP,&amp;nbsp;&lt;SPAN&gt;sln_flash.c and related have been relocated to&amp;nbsp;SRAM_ITC_cm7 through linkscripts and that during erase, write, etc. operations interrupts and D-Cache are disabled:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SpoonMan_0-1682669669975.png" style="width: 721px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/221228iDA50550AF12A2DE4/image-dimensions/721x564?v=v2" width="721" height="564" role="button" title="SpoonMan_0-1682669669975.png" alt="SpoonMan_0-1682669669975.png" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;SpoonMan_0-1682669669975.png&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;But then I noticed that, because this project is based on RTOS, SysTick ISR is suspended during relatively long calls (sector erase may be 300 ms long according to the datasheet):&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SpoonMan_2-1682669855570.png" style="width: 731px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/221230i685C1102E29B3E16/image-dimensions/731x181?v=v2" width="731" height="181" role="button" title="SpoonMan_2-1682669855570.png" alt="SpoonMan_2-1682669855570.png" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;SpoonMan_2-1682669855570.png&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;I know we're talking about 300 ms, which are not a lifetime but anyway are equivalent to 300 ticks skipped at every erase operation (and because of the filesystem we may have a lot of consecutive erase operation).&lt;/P&gt;&lt;P&gt;So the questions are:&lt;/P&gt;&lt;P&gt;- how this would affect RTOS scheduling?&lt;/P&gt;&lt;P&gt;- disabling &lt;STRONG&gt;ALL&amp;nbsp;&lt;/STRONG&gt;interrupts during such long operation&amp;nbsp;is good practice?&lt;/P&gt;</description>
      <pubDate>Fri, 28 Apr 2023 08:21:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Disabling-IRQ-during-FlexSPI-operations-erase-write-etc-stops/m-p/1642126#M205025</guid>
      <dc:creator>SpoonMan</dc:creator>
      <dc:date>2023-04-28T08:21:29Z</dc:date>
    </item>
    <item>
      <title>Re: Disabling IRQ during FlexSPI operations (erase, write, etc.) stops SysTick</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Disabling-IRQ-during-FlexSPI-operations-erase-write-etc-stops/m-p/1644262#M205208</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/208015"&gt;@SpoonMan&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp; Answer your questions:&lt;/P&gt;
&lt;P&gt;1 how this would affect RTOS scheduling?&lt;/P&gt;
&lt;P&gt;=&amp;gt;Answer: It won't influence the RTOS schedule, if you design your RTOS properly. Just make sure your API which use erase function can more than 300ms.&lt;/P&gt;
&lt;P&gt;2 disabling&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;ALL&amp;nbsp;&lt;/STRONG&gt;interrupts during such long operation&amp;nbsp;is good practice?&lt;/P&gt;
&lt;P&gt;=&amp;gt;Answer: To this application, which need to do the flash operation in the flash code, disable ALL interrupt just make sure no issue happens. Otherwise, the flash operation may meet issues.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Wish it helps you!&lt;/P&gt;
&lt;P&gt;Best Regards,&lt;/P&gt;
&lt;P&gt;kerry&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 04 May 2023 05:22:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Disabling-IRQ-during-FlexSPI-operations-erase-write-etc-stops/m-p/1644262#M205208</guid>
      <dc:creator>kerryzhou</dc:creator>
      <dc:date>2023-05-04T05:22:23Z</dc:date>
    </item>
    <item>
      <title>Re: Disabling IRQ during FlexSPI operations (erase, write, etc.) stops SysTick</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Disabling-IRQ-during-FlexSPI-operations-erase-write-etc-stops/m-p/1644375#M205220</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/60336"&gt;@kerryzhou&lt;/a&gt;!&amp;nbsp;&lt;SPAN&gt;Thank you very much for participating in this discussion, your contribution to this forum is very important for me.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;&lt;SPAN&gt;Just make sure your API which use erase function can more than 300ms.&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;SPAN&gt;Can more than 300ms... what? Execute? If yes, I think this is not a problem at all, because while erasing IRQs are disabled; consequently, SysTick is disabled, which means RTOS scheduling is disabled too, so there's no risk the operation is interrupted...&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;&lt;SPAN&gt;disable ALL interrupt just make sure no issue happens. Otherwise, the flash operation may meet issues.&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;SPAN&gt;Yes, I know this very well... my question was if it's good practice to disable IRQs for so long operations (not what we intend for "atomic" I say) without taking care of consequences on scheduling times due to the disabling of SysTick IRQ.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 04 May 2023 07:11:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Disabling-IRQ-during-FlexSPI-operations-erase-write-etc-stops/m-p/1644375#M205220</guid>
      <dc:creator>SpoonMan</dc:creator>
      <dc:date>2023-05-04T07:11:30Z</dc:date>
    </item>
    <item>
      <title>Re: Disabling IRQ during FlexSPI operations (erase, write, etc.) stops SysTick</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Disabling-IRQ-during-FlexSPI-operations-erase-write-etc-stops/m-p/1644474#M205232</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/208015"&gt;@SpoonMan&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;Thanks for your updated information.&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;You can check the related flash operation, whether it is the flexSPI API method, not the ROM, if yes, it needs to disable the interrupt.&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;In fact, that application you mentioned, also can make the application work, so you can refer to it.&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;For the flash operation, I think you also can try the ROM API method. ROM code will not be very sensitive like the flexSPI direct operation code.&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;About the interrupt disable, the freertos also have the related API which some code don't need to break by the interrupt, eg. taskENETER_CRITICAL_FROM_ISR();&lt;/P&gt;
&lt;P&gt;Best Regards,&lt;/P&gt;
&lt;P&gt;Kerry&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 04 May 2023 08:40:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Disabling-IRQ-during-FlexSPI-operations-erase-write-etc-stops/m-p/1644474#M205232</guid>
      <dc:creator>kerryzhou</dc:creator>
      <dc:date>2023-05-04T08:40:06Z</dc:date>
    </item>
    <item>
      <title>Re: Disabling IRQ during FlexSPI operations (erase, write, etc.) stops SysTick</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Disabling-IRQ-during-FlexSPI-operations-erase-write-etc-stops/m-p/1644571#M205240</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;P&gt;&lt;SPAN&gt;For the flash operation, I think you also can try the ROM API method. ROM code will not be very sensitive like the flexSPI direct operation code.&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;SPAN&gt;I'm on i.MX RT1052 so I think that ROM API is not available for my platform, even if I really don't know the details about which benefits would I have if using ROM API instead of FlexSPI API.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 04 May 2023 09:31:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Disabling-IRQ-during-FlexSPI-operations-erase-write-etc-stops/m-p/1644571#M205240</guid>
      <dc:creator>SpoonMan</dc:creator>
      <dc:date>2023-05-04T09:31:29Z</dc:date>
    </item>
    <item>
      <title>Re: Disabling IRQ during FlexSPI operations (erase, write, etc.) stops SysTick</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Disabling-IRQ-during-FlexSPI-operations-erase-write-etc-stops/m-p/1645224#M205300</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/208015"&gt;@SpoonMan&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; RT1050 is really not the complete ROM API.&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;But you still can refer to:&lt;/P&gt;
&lt;P&gt;SDK_2_13_0_EVKB-IMXRT1050\boards\evkbimxrt1050\driver_examples\fsl_romapi&lt;/P&gt;
&lt;P&gt;You can check it on your side.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Wish it helps you!&lt;/P&gt;
&lt;P&gt;Best Regards,&lt;/P&gt;
&lt;P&gt;Kerry&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 05 May 2023 05:12:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Disabling-IRQ-during-FlexSPI-operations-erase-write-etc-stops/m-p/1645224#M205300</guid>
      <dc:creator>kerryzhou</dc:creator>
      <dc:date>2023-05-05T05:12:02Z</dc:date>
    </item>
    <item>
      <title>Re: Disabling IRQ during FlexSPI operations (erase, write, etc.) stops SysTick</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Disabling-IRQ-during-FlexSPI-operations-erase-write-etc-stops/m-p/1645299#M205313</link>
      <description>&lt;P&gt;This sounds interesting, even if it looks like it works only on HyperFlash (some serial NOR structures and methods are missing in fsl_romapi.c/.h for 1050) while I'm oriented on QSPI Flash... am I right?&lt;/P&gt;</description>
      <pubDate>Fri, 05 May 2023 07:42:41 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Disabling-IRQ-during-FlexSPI-operations-erase-write-etc-stops/m-p/1645299#M205313</guid>
      <dc:creator>SpoonMan</dc:creator>
      <dc:date>2023-05-05T07:42:41Z</dc:date>
    </item>
    <item>
      <title>Re: Disabling IRQ during FlexSPI operations (erase, write, etc.) stops SysTick</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Disabling-IRQ-during-FlexSPI-operations-erase-write-etc-stops/m-p/1646725#M205473</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/208015"&gt;@SpoonMan&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp; So sorry for my later reply!&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;Yes, if you use the QSPI flash, you also can refer to that code, just do the&amp;nbsp;FLEXSPI_NorFlash_GetConfig modification with the QSPI flash.&lt;/P&gt;
&lt;P&gt;Maybe you don't know how to modify it, one example for you is the RT1060 flexspi polling code, that is the QSPI flash.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Wish it helps you!&lt;/P&gt;
&lt;P&gt;Best Regards,&lt;/P&gt;
&lt;P&gt;Kerry&lt;/P&gt;</description>
      <pubDate>Tue, 09 May 2023 03:14:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Disabling-IRQ-during-FlexSPI-operations-erase-write-etc-stops/m-p/1646725#M205473</guid>
      <dc:creator>kerryzhou</dc:creator>
      <dc:date>2023-05-09T03:14:47Z</dc:date>
    </item>
    <item>
      <title>Re: Disabling IRQ during FlexSPI operations (erase, write, etc.) stops SysTick</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Disabling-IRQ-during-FlexSPI-operations-erase-write-etc-stops/m-p/1646954#M205500</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/60336"&gt;@kerryzhou&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Don't worry about reply time... I'm also very busy on other topics, so it's not vital if I have no answer in minutes! &lt;LI-EMOJI id="lia_winking-face" title=":winking_face:"&gt;&lt;/LI-EMOJI&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;&lt;SPAN&gt;one example for you is the RT1060 flexspi polling code, that is the QSPI flash.&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;SPAN&gt;Yes, in fact when I said:&lt;/SPAN&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;&lt;SPAN&gt;some serial NOR structures and methods are missing in fsl_romapi.c/.h for 1050&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;SPAN&gt;I was intending that I already tried to port 1060 example on 1050, but then I noticed that&amp;nbsp;some serial NOR structures and methods was missing in fsl_romapi.c/.h for 1050. What I've done is the following:&lt;/SPAN&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;SPAN&gt;populate my workspace with "evkbimxrt1050_fsl_romapi" example&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;&lt;SPAN&gt;changed project memory details to adapt to QSPI Flash:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SpoonMan_1-1683618177433.png" style="width: 657px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/222293iBF3589588735FB32/image-dimensions/657x252?v=v2" width="657" height="252" role="button" title="SpoonMan_1-1683618177433.png" alt="SpoonMan_1-1683618177433.png" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;SpoonMan_1-1683618177433.png&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;updated BOARD_FLASH_SIZE macro in "board.h":&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;/*! @brief The board flash size */
#define BOARD_FLASH_SIZE (0x800000U)&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;(brutally) replaced XIP folder content, picking files from "&lt;SPAN&gt;evkbimxrt1060_fsl_romapi" example&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;(brutally) replaced flexspi_romapi.c (main.c), picking file from&amp;nbsp;&lt;/SPAN&gt;"&lt;SPAN&gt;evkbimxrt1060_fsl_romapi" example&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;removed "flexspi_romapi_ops.c" file&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;SPAN&gt;At this point, methods like ROM_FLEXSPI_NorFlash_GetConfig() are &lt;STRONG&gt;not&lt;/STRONG&gt; present in ROM API implementation for 1050, and i&lt;/SPAN&gt;&lt;SPAN&gt;f I also brutally replace fsl_romapi.c/.h files from "&lt;/SPAN&gt;evkbimxrt1060_fsl_romapi" example then I fall into Hard Fault runtime exception due to ROM API code incompatibility:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SpoonMan_2-1683621008747.png" style="width: 472px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/222305i10C1F28857C11AAF/image-dimensions/472x144?v=v2" width="472" height="144" role="button" title="SpoonMan_2-1683621008747.png" alt="SpoonMan_2-1683621008747.png" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;SpoonMan_2-1683621008747.png&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;&lt;SPAN&gt;just do the&amp;nbsp;FLEXSPI_NorFlash_GetConfig modification with the QSPI flash&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;Could you please better explain what do you mean I have to do when you say that?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 09 May 2023 08:36:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Disabling-IRQ-during-FlexSPI-operations-erase-write-etc-stops/m-p/1646954#M205500</guid>
      <dc:creator>SpoonMan</dc:creator>
      <dc:date>2023-05-09T08:36:30Z</dc:date>
    </item>
    <item>
      <title>Re: Disabling IRQ during FlexSPI operations (erase, write, etc.) stops SysTick</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Disabling-IRQ-during-FlexSPI-operations-erase-write-etc-stops/m-p/1646969#M205502</link>
      <description>&lt;P&gt;Basically, what I notice it's wrong when replacing ROM API implementation from 1060 to 1050, are "bootloader_api_entry_t" and "flexspi_nor_driver_interface_t" definitions which are quite different and not providing get_config() method on 1050.&lt;/P&gt;</description>
      <pubDate>Tue, 09 May 2023 08:45:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Disabling-IRQ-during-FlexSPI-operations-erase-write-etc-stops/m-p/1646969#M205502</guid>
      <dc:creator>SpoonMan</dc:creator>
      <dc:date>2023-05-09T08:45:42Z</dc:date>
    </item>
    <item>
      <title>Re: Disabling IRQ during FlexSPI operations (erase, write, etc.) stops SysTick</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Disabling-IRQ-during-FlexSPI-operations-erase-write-etc-stops/m-p/1648318#M205643</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/208015"&gt;@SpoonMan&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp; Yes, RT1050, RT1060 ROM API is not the same.&lt;/P&gt;
&lt;P&gt;&amp;nbsp; As the RT1060 ROM support the get_config, but RT1050 can't support it.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="kerryzhou_0-1683781668255.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/222649iA2FA53018A286376/image-size/medium?v=v2&amp;amp;px=400" role="button" title="kerryzhou_0-1683781668255.png" alt="kerryzhou_0-1683781668255.png" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;kerryzhou_0-1683781668255.png&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;You need to manually configure the get_config in the RT1050, just this API:&lt;/P&gt;
&lt;P&gt;void FLEXSPI_NorFlash_GetConfig(flexspi_nor_config_t *config)&lt;/P&gt;
&lt;P&gt;I mean, you need to modify the API internal related configuration, the&amp;nbsp;config-&amp;gt; LUT, etc.&lt;/P&gt;
&lt;P&gt;For the detail content, you can refer to the flexspi_polling in :&lt;/P&gt;
&lt;P&gt;SDK_2_13_0_EVKB-IMXRT1050\boards\evkbimxrt1050\driver_examples\flexspi\nor&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It's not difficult, you can try it, if you still meet issues, let me know, I may find time to help you to modify it. But for this part, it's better to create a new question post about it, as this post is a little old.&lt;/P&gt;
&lt;P&gt;Best Regards,&lt;/P&gt;
&lt;P&gt;Kerry&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 11 May 2023 05:11:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Disabling-IRQ-during-FlexSPI-operations-erase-write-etc-stops/m-p/1648318#M205643</guid>
      <dc:creator>kerryzhou</dc:creator>
      <dc:date>2023-05-11T05:11:07Z</dc:date>
    </item>
    <item>
      <title>Re: Disabling IRQ during FlexSPI operations (erase, write, etc.) stops SysTick</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Disabling-IRQ-during-FlexSPI-operations-erase-write-etc-stops/m-p/1648416#M205656</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;P&gt;You need to manually configure the get_config in the RT1050, just this API:&lt;/P&gt;&lt;P&gt;void FLEXSPI_NorFlash_GetConfig(flexspi_nor_config_t *config)&lt;/P&gt;&lt;P&gt;I mean, you need to modify the API internal related configuration, the&amp;nbsp;config-&amp;gt; LUT, etc.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;I think it's not necessary at all, we already have the correct&amp;nbsp;flexspi_nor_config_t structure defined in evkbimxrt1050_flexspi_nor_config.c! I mean this:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SpoonMan_0-1683790133048.png" style="width: 710px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/222674iE7C81480121597F7/image-dimensions/710x412?v=v2" width="710" height="412" role="button" title="SpoonMan_0-1683790133048.png" alt="SpoonMan_0-1683790133048.png" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;SpoonMan_0-1683790133048.png&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;Let me give it a try to confirm...&lt;/P&gt;</description>
      <pubDate>Thu, 11 May 2023 07:29:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Disabling-IRQ-during-FlexSPI-operations-erase-write-etc-stops/m-p/1648416#M205656</guid>
      <dc:creator>SpoonMan</dc:creator>
      <dc:date>2023-05-11T07:29:08Z</dc:date>
    </item>
    <item>
      <title>Re: Disabling IRQ during FlexSPI operations (erase, write, etc.) stops SysTick</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Disabling-IRQ-during-FlexSPI-operations-erase-write-etc-stops/m-p/1648751#M205700</link>
      <description>&lt;P&gt;Yessss! I succeeded!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt; FLEXSPI NOR example started!

 Successfully init FLEXSPI serial NOR flash

 HyperFlash Information:
 Total program flash size:      8192 KB, Hex: (0x800000)
 Program flash sector size:     4 KB, Hex: (0x1000)
 Program flash page size:       256 B, Hex: (0x100)

 Erasing serial NOR flash over FLEXSPI
 Successfully erased one sector of NOR flash device 0x7ff000 -&amp;gt; 0x800000

 Program a buffer to a page of NOR flash
 Successfully programmed and verified location FLEXSPI memory 0x607ff000 -&amp;gt; 0x607ff100

 End of FLEXSPI NOR Example!&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In the following, I'll report what I modified in 1050 ROM API example project to make it working with QSPI Flash, instead of HyperFlash. In all the screenshots I'm going to post, left side is always MODIFIED code, right side is ORIGINAL EXAMPLE code.&lt;/P&gt;&lt;P&gt;First, I adjusted BOARD_FLASH_SIZE macro in &lt;EM&gt;board.h&lt;/EM&gt; to reflect QSPI Flash total size:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SpoonMan_0-1683811229316.png" style="width: 918px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/222781iE6FE59039F5D78AA/image-dimensions/918x39?v=v2" width="918" height="39" role="button" title="SpoonMan_0-1683811229316.png" alt="SpoonMan_0-1683811229316.png" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;SpoonMan_0-1683811229316.png&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;Then I basically replaced&lt;EM&gt; evkbimxrt1050_flexspi_nor_config.h&lt;/EM&gt; and&amp;nbsp;&lt;EM&gt;evkbimxrt1050_flexspi_nor_config.c&lt;/EM&gt; content with code from&amp;nbsp;&lt;EM&gt;evkbimxrt&lt;STRONG&gt;1060&lt;/STRONG&gt;_fsl_romapi&lt;/EM&gt; example project; in&amp;nbsp;&lt;EM&gt;evkbimxrt1050_flexspi_nor_config.h &lt;/EM&gt;file, the only difference is the following:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SpoonMan_1-1683811378224.png" style="width: 893px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/222782iE0C984D38A506039/image-dimensions/893x183?v=v2" width="893" height="183" role="button" title="SpoonMan_1-1683811378224.png" alt="SpoonMan_1-1683811378224.png" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;SpoonMan_1-1683811378224.png&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;while for&amp;nbsp;&lt;EM&gt;evkbimxrt1050_flexspi_nor_config.c&amp;nbsp;&lt;/EM&gt;file basically EVERYTHING is different; in this case, let me just copy-paste modified file content:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;/*
 * Copyright 2021 NXP
 * All rights reserved.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */

#include "evkbimxrt1050_flexspi_nor_config.h"

/* Component ID definition, used by tools. */
#ifndef FSL_COMPONENT_ID
#define FSL_COMPONENT_ID "platform.drivers.xip_board"
#endif

/*******************************************************************************
 * Code
 ******************************************************************************/
#if defined(XIP_BOOT_HEADER_ENABLE) &amp;amp;&amp;amp; (XIP_BOOT_HEADER_ENABLE == 1)
#if defined(__CC_ARM) || defined(__ARMCC_VERSION) || defined(__GNUC__)
__attribute__((section(".boot_hdr.conf"), used))
#elif defined(__ICCARM__)
#pragma location = ".boot_hdr.conf"
#endif

const flexspi_nor_config_t qspiflash_config = {
    .memConfig =
        {
            .tag                  = FLEXSPI_CFG_BLK_TAG,
            .version              = FLEXSPI_CFG_BLK_VERSION,
            .readSampleClksrc=kFlexSPIReadSampleClk_LoopbackFromDqsPad,
            .csHoldTime           = 3u,
            .csSetupTime          = 3u,
            .controllerMiscOption = (1u &amp;lt;&amp;lt; kFlexSpiMiscOffset_SafeConfigFreqEnable),
            .deviceType           = kFlexSpiDeviceType_SerialNOR,
            .sflashPadType        = kSerialFlash_4Pads,
            .serialClkFreq        = kFlexSpiSerialClk_120MHz,
            .sflashA1Size         = 8u * 1024u * 1024u,
            .lookupTable =
                {
                    // Read LUTs
                    [0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xEB, RADDR_SDR, FLEXSPI_4PAD, 0x18),
                    [1] = FLEXSPI_LUT_SEQ(DUMMY_SDR, FLEXSPI_4PAD, 0x06, READ_SDR, FLEXSPI_4PAD, 0x04),

                    // Read Status LUTs
                    [4 * 1 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x05, READ_SDR, FLEXSPI_1PAD, 0x04),

                    // Write Enable LUTs
                    [4 * 3 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x06, STOP, FLEXSPI_1PAD, 0x0),

                    // Erase Sector LUTs
                    [4 * 5 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x20, RADDR_SDR, FLEXSPI_1PAD, 0x18),

                    // Erase Block LUTs
                    [4 * 8 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xD8, RADDR_SDR, FLEXSPI_1PAD, 0x18),

                    // Page Program LUTs
                    [4 * 9 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x02, RADDR_SDR, FLEXSPI_1PAD, 0x18),
                    [4 * 9 + 1] = FLEXSPI_LUT_SEQ(WRITE_SDR, FLEXSPI_1PAD, 0x04, STOP, FLEXSPI_1PAD, 0x0),

                    // Erase Chip LUTs
                    [4 * 11 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x60, STOP, FLEXSPI_1PAD, 0x0),
                },
        },
    .pageSize           = 256u,
    .sectorSize         = 4u * 1024u,
    .ipcmdSerialClkFreq = 1u,
    .blockSize          = 64u * 1024u,
    .isUniformBlockSize = false,
};
#endif /* XIP_BOOT_HEADER_ENABLE */&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In main source file (&lt;EM&gt;flexspi_romapi.c,&lt;/EM&gt; don't ask me why NXP is not simply calling it main...) I commented out&amp;nbsp;FLEXSPI_NorFlash_GetConfig()&amp;nbsp;method because, as explained in my previous post, the idea is to read FLASH configuration from qspiflash_config&amp;nbsp;instance already defined in &lt;EM&gt;evkbimxrt1050_flexspi_nor_config.c &lt;/EM&gt;file:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SpoonMan_0-1683811884162.png" style="width: 889px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/222787iD4C269742DEA7F92/image-dimensions/889x105?v=v2" width="889" height="105" role="button" title="SpoonMan_0-1683811884162.png" alt="SpoonMan_0-1683811884162.png" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;SpoonMan_0-1683811884162.png&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;[...]&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SpoonMan_1-1683811920910.png" style="width: 891px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/222788i8B7C450175A39CB1/image-dimensions/891x94?v=v2" width="891" height="94" role="button" title="SpoonMan_1-1683811920910.png" alt="SpoonMan_1-1683811920910.png" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;SpoonMan_1-1683811920910.png&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;I commented out everything related to local norConfig copy in main() method:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SpoonMan_2-1683812031791.png" style="width: 885px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/222789iE4ED76A71A9F8CBC/image-dimensions/885x104?v=v2" width="885" height="104" role="button" title="SpoonMan_2-1683812031791.png" alt="SpoonMan_2-1683812031791.png" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;SpoonMan_2-1683812031791.png&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;then, in each call involving norConfig pointer, I substituted it with&amp;nbsp;(flexspi_nor_config_t*)&amp;amp;qspiflash_config. Let me post just some examples and not the entire code, you can do it by yourself easily:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SpoonMan_3-1683812578974.png" style="width: 896px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/222791i3764D9882BA10FE2/image-dimensions/896x112?v=v2" width="896" height="112" role="button" title="SpoonMan_3-1683812578974.png" alt="SpoonMan_3-1683812578974.png" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;SpoonMan_3-1683812578974.png&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SpoonMan_4-1683812659935.png" style="width: 893px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/222793i9207F7A722782C7C/image-dimensions/893x96?v=v2" width="893" height="96" role="button" title="SpoonMan_4-1683812659935.png" alt="SpoonMan_4-1683812659935.png" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;SpoonMan_4-1683812659935.png&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;Also local variables used for total FLASH size calculation etc. should take memory geometry information from&amp;nbsp;qspiflash_config&amp;nbsp;instead of&amp;nbsp;norConfig:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SpoonMan_6-1683812829671.png" style="width: 896px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/222796i094F870CB1D89A14/image-dimensions/896x157?v=v2" width="896" height="157" role="button" title="SpoonMan_6-1683812829671.png" alt="SpoonMan_6-1683812829671.png" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;SpoonMan_6-1683812829671.png&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;and, more than this,&amp;nbsp;qspiflash_config&amp;nbsp;should be visible from main source file:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SpoonMan_7-1683812922956.png" style="width: 896px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/222797iD90F8C08E6D9E668/image-dimensions/896x112?v=v2" width="896" height="112" role="button" title="SpoonMan_7-1683812922956.png" alt="SpoonMan_7-1683812922956.png" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;SpoonMan_7-1683812922956.png&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;Last but not least, some macros related to memory geometry defined in main file (don't ask me why NXP is defining here and there macros reporting again and again always the same memory geometry information...) are no more necessary because related&amp;nbsp;to FLEXSPI_NorFlash_GetConfig()&amp;nbsp;method which we will not use anymore, but&amp;nbsp;FLASH_PAGE_SIZE&amp;nbsp;should be adapted because used by the sample code as read and write size:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SpoonMan_8-1683813153154.png" style="width: 894px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/222799i3F2EAB6B3E52E90A/image-dimensions/894x137?v=v2" width="894" height="137" role="button" title="SpoonMan_8-1683813153154.png" alt="SpoonMan_8-1683813153154.png" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;SpoonMan_8-1683813153154.png&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;That's it! Hope that my contribution will be appreciated, obviously thanks to&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/60336"&gt;@kerryzhou&lt;/a&gt;&amp;nbsp;for giving some hint!&lt;/P&gt;</description>
      <pubDate>Thu, 11 May 2023 13:54:20 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Disabling-IRQ-during-FlexSPI-operations-erase-write-etc-stops/m-p/1648751#M205700</guid>
      <dc:creator>SpoonMan</dc:creator>
      <dc:date>2023-05-11T13:54:20Z</dc:date>
    </item>
    <item>
      <title>Re: Disabling IRQ during FlexSPI operations (erase, write, etc.) stops SysTick</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Disabling-IRQ-during-FlexSPI-operations-erase-write-etc-stops/m-p/1648822#M205712</link>
      <description>&lt;P&gt;Sorry&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/60336"&gt;@kerryzhou&lt;/a&gt;&amp;nbsp;but you said:&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;&lt;SPAN&gt;You can check the related flash operation, whether it is the flexSPI API method, not the ROM, if yes, it needs to disable the interrupt.&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;SPAN&gt;But if I configure and enable GPT2 to generate a periodic interrupt (in which I toggle USER_LED state, this doesn't matter) and I loop in a while (1) erase/program/read/verify code from ROM API example, I then fall into hard fault as with FLEXSPI API if I don't disable interrupts while performing FLASH operations.........&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SpoonMan_0-1683815013622.png" style="width: 553px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/222800i98360F19BAB9D24A/image-dimensions/553x481?v=v2" width="553" height="481" role="button" title="SpoonMan_0-1683815013622.png" alt="SpoonMan_0-1683815013622.png" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;SpoonMan_0-1683815013622.png&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SpoonMan_1-1683815045390.png" style="width: 556px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/222801i19E6CB332E7C7803/image-dimensions/556x225?v=v2" width="556" height="225" role="button" title="SpoonMan_1-1683815045390.png" alt="SpoonMan_1-1683815045390.png" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;SpoonMan_1-1683815045390.png&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;This is not what you mentioned in the quoted sentence... could you please help? I'm a little bit disappointed... Here is where I'm looping forever:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SpoonMan_0-1683818304012.png" style="width: 897px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/222811i8F8B9B9931311F1A/image-dimensions/897x370?v=v2" width="897" height="370" role="button" title="SpoonMan_0-1683818304012.png" alt="SpoonMan_0-1683818304012.png" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;SpoonMan_0-1683818304012.png&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;[...]&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SpoonMan_1-1683818385394.png" style="width: 898px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/222812i749D1BAF18E9DB49/image-dimensions/898x386?v=v2" width="898" height="386" role="button" title="SpoonMan_1-1683818385394.png" alt="SpoonMan_1-1683818385394.png" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;SpoonMan_1-1683818385394.png&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 11 May 2023 15:19:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Disabling-IRQ-during-FlexSPI-operations-erase-write-etc-stops/m-p/1648822#M205712</guid>
      <dc:creator>SpoonMan</dc:creator>
      <dc:date>2023-05-11T15:19:57Z</dc:date>
    </item>
    <item>
      <title>Re: Disabling IRQ during FlexSPI operations (erase, write, etc.) stops SysTick</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Disabling-IRQ-during-FlexSPI-operations-erase-write-etc-stops/m-p/1649340#M205779</link>
      <description>&lt;P&gt;Please give me more time to check your issues, really so long.&lt;/P&gt;
&lt;P&gt;These days, really a lot of cases in the queue, we are a little overflow, please keep patient, thanks a lot for your understanding.&lt;/P&gt;
&lt;P&gt;Best Regards,&lt;/P&gt;
&lt;P&gt;kerry&lt;/P&gt;</description>
      <pubDate>Fri, 12 May 2023 10:29:48 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Disabling-IRQ-during-FlexSPI-operations-erase-write-etc-stops/m-p/1649340#M205779</guid>
      <dc:creator>kerryzhou</dc:creator>
      <dc:date>2023-05-12T10:29:48Z</dc:date>
    </item>
    <item>
      <title>Re: Disabling IRQ during FlexSPI operations (erase, write, etc.) stops SysTick</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Disabling-IRQ-during-FlexSPI-operations-erase-write-etc-stops/m-p/1649347#M205785</link>
      <description>&lt;P&gt;Don't worry for the delay, I'll wait... I have a lot of tasks waiting in my queue too, so I understand and I can can block current task in the meanwhile and schedule another one.&lt;/P&gt;&lt;P&gt;Let me know when you have some news, thanks in advance!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 12 May 2023 10:35:52 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Disabling-IRQ-during-FlexSPI-operations-erase-write-etc-stops/m-p/1649347#M205785</guid>
      <dc:creator>SpoonMan</dc:creator>
      <dc:date>2023-05-12T10:35:52Z</dc:date>
    </item>
    <item>
      <title>Re: Disabling IRQ during FlexSPI operations (erase, write, etc.) stops SysTick</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Disabling-IRQ-during-FlexSPI-operations-erase-write-etc-stops/m-p/1651003#M205930</link>
      <description>&lt;P&gt;HI&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/208015"&gt;@SpoonMan&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;Just conform with you, with the ROM API, if you don't open the GPT interrupt, the write, erase, read are all working now, right?&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;But, when enable the GPT interrupt, it is failed, whether my understanding is correct or not?&lt;/P&gt;
&lt;P&gt;Best Regards,&lt;/P&gt;
&lt;P&gt;Kerry&lt;/P&gt;</description>
      <pubDate>Tue, 16 May 2023 09:15:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Disabling-IRQ-during-FlexSPI-operations-erase-write-etc-stops/m-p/1651003#M205930</guid>
      <dc:creator>kerryzhou</dc:creator>
      <dc:date>2023-05-16T09:15:13Z</dc:date>
    </item>
    <item>
      <title>Re: Disabling IRQ during FlexSPI operations (erase, write, etc.) stops SysTick</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Disabling-IRQ-during-FlexSPI-operations-erase-write-etc-stops/m-p/1651015#M205932</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/60336"&gt;@kerryzhou&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Yes, your understanding of my behavior is 100% correct. But please check&amp;nbsp;my project, it'll help you to kickstart straight to the problem.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 16 May 2023 09:23:49 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Disabling-IRQ-during-FlexSPI-operations-erase-write-etc-stops/m-p/1651015#M205932</guid>
      <dc:creator>SpoonMan</dc:creator>
      <dc:date>2023-05-16T09:23:49Z</dc:date>
    </item>
    <item>
      <title>Re: Disabling IRQ during FlexSPI operations (erase, write, etc.) stops SysTick</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Disabling-IRQ-during-FlexSPI-operations-erase-write-etc-stops/m-p/1653465#M206139</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/208015"&gt;@SpoonMan&lt;/a&gt;&amp;nbsp;，&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;Sorry for the misleading previously.&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; I talked about your issues without an internal expert, and get the information that:&lt;/P&gt;
&lt;P&gt;1. vector table in the flash need to copy to the internal RAM, and redirect the VTOR to the internal RAM.&lt;/P&gt;
&lt;P&gt;2. copy the interrupt service function to the internal RAM. eg, your &lt;SPAN&gt;GPT2&amp;nbsp;&lt;/SPAN&gt;interrupt Handler function to the internal RAM.&lt;/P&gt;
&lt;P&gt;&amp;nbsp; Then, you will do the flash operation.&lt;/P&gt;
&lt;P&gt;Some blog from our expert may useful to you, but it is in Chinese, you can translate it, and try it on your side.&lt;/P&gt;
&lt;P&gt;If you still meet issues, I will find time, to design one MCUXPresso project for it.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://www.nxpic.org.cn/module/forum/forum.php?mod=viewthread&amp;amp;tid=622919&amp;amp;highlight=%E9%87%8D%E5%AE%9A%E5%90%91" target="_blank" rel="noopener"&gt;https://www.nxpic.org.cn/module/forum/forum.php?mod=viewthread&amp;amp;tid=622919&amp;amp;highlight=%E9%87%8D%E5%AE%9A%E5%90%91&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://www.nxpic.org.cn/module/forum/forum.php?mod=viewthread&amp;amp;tid=623079&amp;amp;highlight=%E9%87%8D%E5%AE%9A%E5%90%91" target="_blank" rel="noopener"&gt;https://www.nxpic.org.cn/module/forum/forum.php?mod=viewthread&amp;amp;tid=623079&amp;amp;highlight=%E9%87%8D%E5%AE%9A%E5%90%91&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;This post is also useful to you:&lt;/P&gt;
&lt;P&gt;&lt;A href="https://community.nxp.com/t5/i-MX-Processors/i-MXRT1021-amp-amp-MCUPresso-IDE-Interrupt-the-method-of/td-p/1542220" target="_blank"&gt;https://community.nxp.com/t5/i-MX-Processors/i-MXRT1021-amp-amp-MCUPresso-IDE-Interrupt-the-method-of/td-p/1542220&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Best Regards,&lt;/P&gt;
&lt;P&gt;Kerry&lt;/P&gt;</description>
      <pubDate>Fri, 19 May 2023 03:11:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Disabling-IRQ-during-FlexSPI-operations-erase-write-etc-stops/m-p/1653465#M206139</guid>
      <dc:creator>kerryzhou</dc:creator>
      <dc:date>2023-05-19T03:11:23Z</dc:date>
    </item>
    <item>
      <title>Re: Disabling IRQ during FlexSPI operations (erase, write, etc.) stops SysTick</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Disabling-IRQ-during-FlexSPI-operations-erase-write-etc-stops/m-p/1653759#M206172</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/60336"&gt;@kerryzhou&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks for your feedback, I have at least two questions:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;SPAN&gt;described method of moving vector table and ISRs to RAM is also valid for fsl_flexspi API, not only for ROM API, so what are the benefits of using ROM API instead of FlexSPI API?&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;described method of moving vector table and ISRs to RAM looks to be not sufficient when applied in a time-division scheduling RTOS scenario, in which SysTick ISR may schedule another task while active task is still reading/writing/erasing the FLASH, consequently &lt;STRONG&gt;all tasks&lt;/STRONG&gt; must be moved to RAM, and &lt;STRONG&gt;all functions&lt;/STRONG&gt; called by all task must be moved to RAM.... or briefly, all the code must be moved to RAM.&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;</description>
      <pubDate>Fri, 19 May 2023 09:54:43 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Disabling-IRQ-during-FlexSPI-operations-erase-write-etc-stops/m-p/1653759#M206172</guid>
      <dc:creator>SpoonMan</dc:creator>
      <dc:date>2023-05-19T09:54:43Z</dc:date>
    </item>
  </channel>
</rss>

