<?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>MPC5xxxのトピックRe: MPC5554 Flash Erase Problem</title>
    <link>https://community.nxp.com/t5/MPC5xxx/MPC5554-Flash-Erase-Problem/m-p/998039#M15022</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;this looks like some performance issue. When the cache is invalidated, physical memory needs to be read now to fill the cache again. This will slow down the operation, of course. If you have a lot of other interrupts, you may see some performance degradation. This must be solved on application level. You can try to change the priorities, for example.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Lukas&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 08 Nov 2019 08:43:46 GMT</pubDate>
    <dc:creator>lukaszadrapa</dc:creator>
    <dc:date>2019-11-08T08:43:46Z</dc:date>
    <item>
      <title>MPC5554 Flash Erase Problem</title>
      <link>https://community.nxp.com/t5/MPC5xxx/MPC5554-Flash-Erase-Problem/m-p/998034#M15017</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;P&gt;I am working on MPC5554. And I use eeprom emulation functions. I fill all of the flash block. Then I want to erase block(address: 0x60000) on flash, but after erase, some other datas (except 0xFFFFFFFF) can be random in block. After erase, yes most of the flash area are &lt;SPAN&gt;0xFFFFFFFF but some area can be random data.&amp;nbsp;&lt;/SPAN&gt;And&amp;nbsp;FSL_FlashCheckStatus() functions return&amp;nbsp;EE_OK after erasing.&amp;nbsp;how that happens? And why some area don't erase?&lt;/P&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;P&gt;&lt;/P&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;P&gt;The following images are taken after deleting the flash block.&lt;/P&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;P&gt;&lt;/P&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="erase_1.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/92087iAE74226587528620/image-size/large?v=v2&amp;amp;px=999" role="button" title="erase_1.png" alt="erase_1.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="erase_2.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/92011iDAF86E93BAA5CC76/image-size/large?v=v2&amp;amp;px=999" role="button" title="erase_2.png" alt="erase_2.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;P&gt;&lt;/P&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;P&gt;and I use&amp;nbsp;&lt;SPAN&gt;FSL_FlashCheckStatus which is below. that function return&amp;nbsp;EE_OK.&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;P&gt;&lt;/P&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;P&gt;UINT32 FSL_FlashCheckStatus(UINT32 flashRegBase)&lt;BR /&gt;{&lt;BR /&gt; UINT32 returnCode; /* return code */&lt;BR /&gt; /* Initialize return code */&lt;BR /&gt; returnCode = EE_OK;&lt;BR /&gt; /* Check if MCR DONE is set */&lt;BR /&gt; if (READ32(flashRegBase + FLASH_MCR) &amp;amp; FLASH_MCR_DONE)&lt;BR /&gt; {&lt;BR /&gt; /* Check the operation status */&lt;BR /&gt; if (!(READ32(flashRegBase + FLASH_MCR) &amp;amp; FLASH_MCR_PEG))&lt;BR /&gt; {&lt;BR /&gt; /* high voltage operation failed */&lt;BR /&gt; returnCode = EE_ERROR_PE_OPT;&lt;BR /&gt; }&lt;BR /&gt; /* End the high voltage operation */&lt;BR /&gt; CLEAR32(flashRegBase + FLASH_MCR, FLASH_MCR_EHV);&lt;BR /&gt; /* Check for program operation */&lt;BR /&gt; if (READ32(flashRegBase + FLASH_MCR) &amp;amp; FLASH_MCR_PGM)&lt;BR /&gt; {&lt;BR /&gt; /* Finish the program operation */&lt;BR /&gt; CLEAR32(flashRegBase + FLASH_MCR, FLASH_MCR_PGM);&lt;BR /&gt; }&lt;BR /&gt; else&lt;BR /&gt; {&lt;BR /&gt; /* Finish the erase operation */&lt;BR /&gt; CLEAR32(flashRegBase + FLASH_MCR, FLASH_MCR_ERS);&lt;BR /&gt; }&lt;BR /&gt; return (returnCode);&lt;BR /&gt; }&lt;BR /&gt; return (EE_INFO_HVOP_INPROGRESS);&lt;BR /&gt;}&lt;/P&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;P&gt;&lt;/P&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;P&gt;&lt;/P&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Best Regards.&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 01 Nov 2019 14:41:15 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/MPC5554-Flash-Erase-Problem/m-p/998034#M15017</guid>
      <dc:creator>mehmet_karadeni</dc:creator>
      <dc:date>2019-11-01T14:41:15Z</dc:date>
    </item>
    <item>
      <title>Re: MPC5554 Flash Erase Problem</title>
      <link>https://community.nxp.com/t5/MPC5xxx/MPC5554-Flash-Erase-Problem/m-p/998035#M15018</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;P&gt;&lt;/P&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;P&gt;the most common reason for such behavior is cache memory. The cache memory should be disabled or the areas used for EEE should be configured as cache inhibited (using MMU) or it's necessary to invalidate the cache after erase operation.&lt;/P&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;P&gt;The fastest way to confirm that it is caused by cache is to set CINV bit in core register L1CSR0 via debugger. This will invalidate the cache and you should see that erased blocks are '0xFFFF' only...&lt;/P&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;P&gt;&lt;/P&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;P&gt;Lukas&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 05 Nov 2019 12:15:26 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/MPC5554-Flash-Erase-Problem/m-p/998035#M15018</guid>
      <dc:creator>lukaszadrapa</dc:creator>
      <dc:date>2019-11-05T12:15:26Z</dc:date>
    </item>
    <item>
      <title>Re: MPC5554 Flash Erase Problem</title>
      <link>https://community.nxp.com/t5/MPC5xxx/MPC5554-Flash-Erase-Problem/m-p/998036#M15019</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you Lukas,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I could not set&amp;nbsp;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;CINV bit. I dont know why am I could not set CINV bit via debugger?&amp;nbsp;&lt;SPAN&gt;but I set/clear CE bit in the same register. And it works. Thank you your interest.&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 06 Nov 2019 08:16:52 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/MPC5554-Flash-Erase-Problem/m-p/998036#M15019</guid>
      <dc:creator>mehmet_karadeni</dc:creator>
      <dc:date>2019-11-06T08:16:52Z</dc:date>
    </item>
    <item>
      <title>Re: MPC5554 Flash Erase Problem</title>
      <link>https://community.nxp.com/t5/MPC5xxx/MPC5554-Flash-Erase-Problem/m-p/998037#M15020</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;this is expected behavior:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_1.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/93086iBB71CCB35D7088AE/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_1.png" alt="pastedImage_1.png" /&gt;&lt;/span&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Because the invalidation takes about 134 cycles, it looks like the bit is still 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Lukas&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 07 Nov 2019 05:59:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/MPC5554-Flash-Erase-Problem/m-p/998037#M15020</guid>
      <dc:creator>lukaszadrapa</dc:creator>
      <dc:date>2019-11-07T05:59:35Z</dc:date>
    </item>
    <item>
      <title>Re: MPC5554 Flash Erase Problem</title>
      <link>https://community.nxp.com/t5/MPC5xxx/MPC5554-Flash-Erase-Problem/m-p/998038#M15021</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Lukas,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;I set CINV&lt;SPAN&gt;&amp;nbsp; with&amp;nbsp;mtspr,&amp;nbsp;mfspr in assemly code and I called that function in my c code. I couldn't see CINV value at 1 but yes it is works and after erasing, all of my flash block area is 0xFFFF. (Also I checks&amp;nbsp;CABT bit, and there is no abort.)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;But in this situtaion I have a new problem. When I set&amp;nbsp;&lt;SPAN style="background-color: #ffffff;"&gt;CINV&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;, my CAN interrupt doesn't work for a little time and my can messages don't transmit in that time.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;&lt;SPAN&gt;Why this situation is occurs? And How can I fix this problem? I don't want to any latency or interrupt in my interrupts when&amp;nbsp;doing flash invalidate.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;&lt;SPAN&gt;Thank you for your interest.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;&lt;SPAN&gt;Regards.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 07 Nov 2019 15:03:16 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/MPC5554-Flash-Erase-Problem/m-p/998038#M15021</guid>
      <dc:creator>mehmet_karadeni</dc:creator>
      <dc:date>2019-11-07T15:03:16Z</dc:date>
    </item>
    <item>
      <title>Re: MPC5554 Flash Erase Problem</title>
      <link>https://community.nxp.com/t5/MPC5xxx/MPC5554-Flash-Erase-Problem/m-p/998039#M15022</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;this looks like some performance issue. When the cache is invalidated, physical memory needs to be read now to fill the cache again. This will slow down the operation, of course. If you have a lot of other interrupts, you may see some performance degradation. This must be solved on application level. You can try to change the priorities, for example.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Lukas&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 Nov 2019 08:43:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/MPC5554-Flash-Erase-Problem/m-p/998039#M15022</guid>
      <dc:creator>lukaszadrapa</dc:creator>
      <dc:date>2019-11-08T08:43:46Z</dc:date>
    </item>
  </channel>
</rss>

