<?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>S32KのトピックS32K146 Read Collision when erasing/writing flash</title>
    <link>https://community.nxp.com/t5/S32K/S32K146-Read-Collision-when-erasing-writing-flash/m-p/1817056#M32209</link>
    <description>&lt;P&gt;&lt;SPAN&gt;when i try to erase or write to the program flash on my S32K146 i run into a Fault at the moment the FTFC should execute the command. Also the RDCOLLERR bit in the FTFC_STAT register is set.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;BusFault: A precise (synchronous) data access error has occurred.&amp;nbsp;and also instruction fetching error i got.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Strangely enough this does not happen, when i step through the program line by line. Then the flash gets programmed correctly.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;This is my routine for erasing a flash sector:&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;status_t Flash_Write(const byte* pucSrc, ulong* pucDst, ushort usLen)&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;status_t ret = STATUS_N_OK;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Return code variable */&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;/* Check CCIF to verify the previous command is completed */&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;if (0U == (FTFC-&amp;gt;FSTAT &amp;amp; FTFC_FSTAT_CCIF_MASK))&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;ret = STATUS_N_OK;&amp;nbsp; /* Returning NOK as STATUS_BUSY is not handled */&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;else /* No previous command is pending */&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;/* Clear RDCOLERR &amp;amp; ACCERR &amp;amp; FPVIOL flag in flash status register. Write 1 to clear */&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;FTFC-&amp;gt;FSTAT = CLEAR_FTFC_FSTAT_ERROR_BITS;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;/* Passing parameter to the command */&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;FTFC-&amp;gt;FCCOB[3] = FTFC_PROGRAM_PHRASE;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;FTFC-&amp;gt;FCCOB[2] = GET_BIT_16_23(pucDst);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;FTFC-&amp;gt;FCCOB[1] = GET_BIT_8_15(pucDst);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;FTFC-&amp;gt;FCCOB[0] = GET_BIT_0_7(pucDst);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;/* Calling flash command sequence function to execute the command */&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;ret = Flash_Command_Sequence();&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;return ret;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;The error happens in Flash_Command_Sequence&lt;/SPAN&gt;()&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;status_t Flash_Command_Sequence(void)&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;flash_drv_status_t Cmd_ret_Status = FTFx_N_OK;&amp;nbsp; &amp;nbsp; /* Command execution return code variable */&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;status_t ret = STATUS_OK;&amp;nbsp; &amp;nbsp; /* Return code variable, by default is OK */&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;/* Clear CCIF to launch command */&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;FTFC-&amp;gt;FSTAT |= FTFC_FSTAT_CCIF_MASK;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;while (0U == (FTFC-&amp;gt;FSTAT &amp;amp; FTFC_FSTAT_CCIF_MASK))&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;/* Wait till CCIF bit is set indicating the requested command is completed*/&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Cmd_ret_Status = (flash_drv_status_t)(FTFC-&amp;gt;FSTAT &amp;amp; (FTFC_FSTAT_MGSTAT0_MASK | FTFC_FSTAT_FPVIOL_MASK \&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;| FTFC_FSTAT_ACCERR_MASK | FTFC_FSTAT_RDCOLERR_MASK));&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;if (Cmd_ret_Status != FTFx_OK)&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;/* Some error has occured */&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;ret = STATUS_N_OK;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;return (ret);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;As mentioned earlier, this only happens when NOT debugging step by step. I suspect this has something to do with the flash being busy, but i did not find anything that would help me understand.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Wed, 28 Feb 2024 04:33:02 GMT</pubDate>
    <dc:creator>chilambarasanm</dc:creator>
    <dc:date>2024-02-28T04:33:02Z</dc:date>
    <item>
      <title>S32K146 Read Collision when erasing/writing flash</title>
      <link>https://community.nxp.com/t5/S32K/S32K146-Read-Collision-when-erasing-writing-flash/m-p/1817056#M32209</link>
      <description>&lt;P&gt;&lt;SPAN&gt;when i try to erase or write to the program flash on my S32K146 i run into a Fault at the moment the FTFC should execute the command. Also the RDCOLLERR bit in the FTFC_STAT register is set.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;BusFault: A precise (synchronous) data access error has occurred.&amp;nbsp;and also instruction fetching error i got.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Strangely enough this does not happen, when i step through the program line by line. Then the flash gets programmed correctly.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;This is my routine for erasing a flash sector:&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;status_t Flash_Write(const byte* pucSrc, ulong* pucDst, ushort usLen)&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;status_t ret = STATUS_N_OK;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Return code variable */&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;/* Check CCIF to verify the previous command is completed */&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;if (0U == (FTFC-&amp;gt;FSTAT &amp;amp; FTFC_FSTAT_CCIF_MASK))&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;ret = STATUS_N_OK;&amp;nbsp; /* Returning NOK as STATUS_BUSY is not handled */&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;else /* No previous command is pending */&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;/* Clear RDCOLERR &amp;amp; ACCERR &amp;amp; FPVIOL flag in flash status register. Write 1 to clear */&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;FTFC-&amp;gt;FSTAT = CLEAR_FTFC_FSTAT_ERROR_BITS;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;/* Passing parameter to the command */&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;FTFC-&amp;gt;FCCOB[3] = FTFC_PROGRAM_PHRASE;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;FTFC-&amp;gt;FCCOB[2] = GET_BIT_16_23(pucDst);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;FTFC-&amp;gt;FCCOB[1] = GET_BIT_8_15(pucDst);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;FTFC-&amp;gt;FCCOB[0] = GET_BIT_0_7(pucDst);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;/* Calling flash command sequence function to execute the command */&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;ret = Flash_Command_Sequence();&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;return ret;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;The error happens in Flash_Command_Sequence&lt;/SPAN&gt;()&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;status_t Flash_Command_Sequence(void)&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;flash_drv_status_t Cmd_ret_Status = FTFx_N_OK;&amp;nbsp; &amp;nbsp; /* Command execution return code variable */&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;status_t ret = STATUS_OK;&amp;nbsp; &amp;nbsp; /* Return code variable, by default is OK */&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;/* Clear CCIF to launch command */&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;FTFC-&amp;gt;FSTAT |= FTFC_FSTAT_CCIF_MASK;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;while (0U == (FTFC-&amp;gt;FSTAT &amp;amp; FTFC_FSTAT_CCIF_MASK))&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;/* Wait till CCIF bit is set indicating the requested command is completed*/&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Cmd_ret_Status = (flash_drv_status_t)(FTFC-&amp;gt;FSTAT &amp;amp; (FTFC_FSTAT_MGSTAT0_MASK | FTFC_FSTAT_FPVIOL_MASK \&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;| FTFC_FSTAT_ACCERR_MASK | FTFC_FSTAT_RDCOLERR_MASK));&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;if (Cmd_ret_Status != FTFx_OK)&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;/* Some error has occured */&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;ret = STATUS_N_OK;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;return (ret);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;As mentioned earlier, this only happens when NOT debugging step by step. I suspect this has something to do with the flash being busy, but i did not find anything that would help me understand.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 28 Feb 2024 04:33:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K146-Read-Collision-when-erasing-writing-flash/m-p/1817056#M32209</guid>
      <dc:creator>chilambarasanm</dc:creator>
      <dc:date>2024-02-28T04:33:02Z</dc:date>
    </item>
    <item>
      <title>Re: S32K146 Read Collision when erasing/writing flash</title>
      <link>https://community.nxp.com/t5/S32K/S32K146-Read-Collision-when-erasing-writing-flash/m-p/1819006#M32341</link>
      <description>&lt;P&gt;Hi &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/217355"&gt;@chilambarasanm&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;this is caused by Read While Write (RWW) error.&lt;/P&gt;
&lt;P&gt;RWW is supported only between partitions/blocks. S32K146 has two 512KB blocks of program flash memory. When a block is being programmed or erased, the code must run from different block or from data flash or from RAM. If there are interrupts which could access the block, it's necessary to either disable all interrupts or put all the interrupt resources (vector table, ISR handlers...) to different block or to RAM.&lt;/P&gt;
&lt;P&gt;Some screenshots from the reference manual:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukaszadrapa_0-1709238990183.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/265893i74FA76D66709C8A7/image-size/medium?v=v2&amp;amp;px=400" role="button" title="lukaszadrapa_0-1709238990183.png" alt="lukaszadrapa_0-1709238990183.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukaszadrapa_1-1709238999539.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/265894i1B60D2404261DE13/image-size/medium?v=v2&amp;amp;px=400" role="button" title="lukaszadrapa_1-1709238999539.png" alt="lukaszadrapa_1-1709238999539.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Regards,&lt;/P&gt;
&lt;P&gt;Lukas&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 29 Feb 2024 20:37:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K146-Read-Collision-when-erasing-writing-flash/m-p/1819006#M32341</guid>
      <dc:creator>lukaszadrapa</dc:creator>
      <dc:date>2024-02-29T20:37:32Z</dc:date>
    </item>
    <item>
      <title>Re: S32K146 Read Collision when erasing/writing flash</title>
      <link>https://community.nxp.com/t5/S32K/S32K146-Read-Collision-when-erasing-writing-flash/m-p/1820102#M32392</link>
      <description>&lt;P&gt;Hi&amp;nbsp;lukaszadrapa,&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Thanks for the reply it worked. I have one more query related to this.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;My memory mapping order will be like this for S32K144:&lt;/P&gt;&lt;P&gt;Vector table :&amp;nbsp;0x00000000 -&amp;nbsp;0x000003FF&lt;/P&gt;&lt;P&gt;Flash Config:&amp;nbsp;0x00000400 -&amp;nbsp;0x0000040F&lt;/P&gt;&lt;P&gt;Bootloader area :&amp;nbsp;0x00000410 -&amp;nbsp;0x00003FFF&lt;/P&gt;&lt;P&gt;Parameter area :&amp;nbsp;0x00004000 -&amp;nbsp;0x00004FFF&lt;/P&gt;&lt;P&gt;Application area :&amp;nbsp;0x00006000 -&amp;nbsp;0x00023FFF&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;During Bootloader sequence my Flash_Command() will be executed from my ROM area only at that time there is no issue in the Flashing part.&lt;/P&gt;&lt;P&gt;But when i try to write the parameter in the respective area and&amp;nbsp;Flash_Command() is executing from Application area at that time i am facing issues related to BUS_Fault but during debugging i am not facing any issues.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;if&amp;nbsp;Flash_Command() has to executed from RAM area then for Bootloader how it works can you explain on this part.&lt;/P&gt;</description>
      <pubDate>Mon, 04 Mar 2024 04:18:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K146-Read-Collision-when-erasing-writing-flash/m-p/1820102#M32392</guid>
      <dc:creator>chilambarasanm</dc:creator>
      <dc:date>2024-03-04T04:18:56Z</dc:date>
    </item>
    <item>
      <title>Re: S32K146 Read Collision when erasing/writing flash</title>
      <link>https://community.nxp.com/t5/S32K/S32K146-Read-Collision-when-erasing-writing-flash/m-p/1820286#M32406</link>
      <description>&lt;P&gt;There's simple rule - whatever the situation is, you can't access a flash block which is being erased or programmed. As you can see in the source files, FLASH_DRV_CommandSequence is executed in RAM:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukaszadrapa_0-1709538933876.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/266219i5314AF5AD4B189D1/image-size/medium?v=v2&amp;amp;px=400" role="button" title="lukaszadrapa_0-1709538933876.png" alt="lukaszadrapa_0-1709538933876.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Not sure what kind of differences you did, so please check if the function is really executed from RAM.&lt;/P&gt;
&lt;P&gt;And try to disable interrupt when programming the flash. This is the most common issue.&lt;/P&gt;
&lt;P&gt;Regards,&lt;/P&gt;
&lt;P&gt;Lukas&lt;/P&gt;</description>
      <pubDate>Mon, 04 Mar 2024 07:57:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K146-Read-Collision-when-erasing-writing-flash/m-p/1820286#M32406</guid>
      <dc:creator>lukaszadrapa</dc:creator>
      <dc:date>2024-03-04T07:57:04Z</dc:date>
    </item>
    <item>
      <title>Re: S32K146 Read Collision when erasing/writing flash</title>
      <link>https://community.nxp.com/t5/S32K/S32K146-Read-Collision-when-erasing-writing-flash/m-p/1969095#M41794</link>
      <description>&lt;P&gt;Hi Chilambarasanm,&lt;/P&gt;&lt;P&gt;How did you fix the read collision error? Would you mind sharing the code?&lt;/P&gt;</description>
      <pubDate>Tue, 08 Oct 2024 16:34:22 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K146-Read-Collision-when-erasing-writing-flash/m-p/1969095#M41794</guid>
      <dc:creator>Kive</dc:creator>
      <dc:date>2024-10-08T16:34:22Z</dc:date>
    </item>
  </channel>
</rss>

