<?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 Re: S32K ECC error in S32K</title>
    <link>https://community.nxp.com/t5/S32K/S32K-ECC-error/m-p/878735#M4022</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Hello Sherif,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Yes, it can be done by&amp;nbsp;two subsequent&amp;nbsp;writes &lt;SPAN&gt;(program phrase command)&amp;nbsp;&lt;/SPAN&gt;with different data&amp;nbsp;at one flash address (phrase).&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Normally, the phrase must be erased before the second write. The ECC error then depends on the resulting phrase value and ECC checksum value. Then, if you read the address, ECC error will be&amp;nbsp;reported.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Regards,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Daniel&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 16 Jan 2019 14:54:35 GMT</pubDate>
    <dc:creator>danielmartynek</dc:creator>
    <dc:date>2019-01-16T14:54:35Z</dc:date>
    <item>
      <title>S32K ECC error</title>
      <link>https://community.nxp.com/t5/S32K/S32K-ECC-error/m-p/878734#M4021</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;I am using S32K118 EVB. According to the safety manual, reading flash memory can detect the double-bit uncorrectable error.&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/62321i1AD265C4A6F2BC8A/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;My question: is there a way to cause a double-bit&amp;nbsp;&lt;SPAN&gt;uncorrectable error in the flash memory via SW?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Thank you for your support.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Regards,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Sherif&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 16 Jan 2019 13:51:54 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K-ECC-error/m-p/878734#M4021</guid>
      <dc:creator>sherifomar</dc:creator>
      <dc:date>2019-01-16T13:51:54Z</dc:date>
    </item>
    <item>
      <title>Re: S32K ECC error</title>
      <link>https://community.nxp.com/t5/S32K/S32K-ECC-error/m-p/878735#M4022</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Hello Sherif,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Yes, it can be done by&amp;nbsp;two subsequent&amp;nbsp;writes &lt;SPAN&gt;(program phrase command)&amp;nbsp;&lt;/SPAN&gt;with different data&amp;nbsp;at one flash address (phrase).&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Normally, the phrase must be erased before the second write. The ECC error then depends on the resulting phrase value and ECC checksum value. Then, if you read the address, ECC error will be&amp;nbsp;reported.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Regards,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Daniel&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 16 Jan 2019 14:54:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K-ECC-error/m-p/878735#M4022</guid>
      <dc:creator>danielmartynek</dc:creator>
      <dc:date>2019-01-16T14:54:35Z</dc:date>
    </item>
    <item>
      <title>Re: S32K ECC error</title>
      <link>https://community.nxp.com/t5/S32K/S32K-ECC-error/m-p/1416326#M14061</link>
      <description>&lt;P&gt;Hi&amp;nbsp; Daniel,&lt;/P&gt;&lt;P&gt;I followed your advice and yet I observe FTFC_FERSTAT remains 0 after the read to location.&lt;/P&gt;&lt;P&gt;The function below writes 8 bytes to location 0X0D2660 (0XAA,0X55,,,) which is 64bit aligned and then it erases it and writes 0x14,0x13,0x12......&lt;/P&gt;&lt;P&gt;then I read the location 0x0d2660&amp;nbsp; and look at the register I mentioned above and it still is 0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This function &lt;STRONG&gt;flsh_ecc&lt;/STRONG&gt; run out of RAM from 0x1FFE0000 which is at top of the ram also&amp;nbsp; the debugger shows me the 1st phrase is written and then erased and rewritten with a new phrase.&lt;/P&gt;&lt;P&gt;then I read the location:&lt;/P&gt;&lt;P&gt;myvar = *((unsigned long long*)0xd2660);&lt;/P&gt;&lt;P&gt;the only thing which is notable is :the code hangs up up and won't run anymore.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;void flsh_ecc(void)&lt;BR /&gt;{&lt;BR /&gt;//while((FTFC-&amp;gt;FSTAT &amp;amp; FTFC_FSTAT_CCIF_MASK) != FTFC_FSTAT_CCIF_MASK); /* Wait until any ongoing flash operation is completed */&lt;BR /&gt;#pragma asm&lt;BR /&gt;;ldr r1, =0x40020000 (0x1fff027c &amp;lt;run_ocs_volt_once..C.3A.5CFramework_ZERV_v00.2E02.5CApplications.5CZERV_Framework.5CAppl.5Cobj.5CINF_CDD.&amp;gt;)&lt;BR /&gt;movw r1,0x0000&lt;BR /&gt;movt r1,0x4002&lt;BR /&gt;movs r0, #128 ; 0x80&lt;BR /&gt;strb r0, [r1, #0]&lt;BR /&gt;L1:&lt;BR /&gt;ldrb r0, [r1, #0]&lt;BR /&gt;lsls r0, r0, #24&lt;BR /&gt;bpl L1&lt;BR /&gt;#pragma endasm&lt;BR /&gt;//FTFC-&amp;gt;FSTAT = FTFC_FSTAT_ACCERR_MASK | FTFC_FSTAT_FPVIOL_MASK;&lt;BR /&gt;&lt;BR /&gt;FTFC-&amp;gt;FCCOB[3] = 0x07;//a_cmd; //Program Phrase command (0x07)&lt;BR /&gt;FTFC-&amp;gt;FCCOB[2] = 0x0d;//v_AddrVec[0]; //Flash address [23:16]&lt;BR /&gt;FTFC-&amp;gt;FCCOB[1] =0x26; //v_AddrVec[1]; //Flash address [15:08]&lt;BR /&gt;FTFC-&amp;gt;FCCOB[0] =0x60; //v_AddrVec[2]; //Flash address [7:0]&lt;BR /&gt;&lt;BR /&gt;// if (a_pageBuffer != NULL) {&lt;BR /&gt;FTFC-&amp;gt;FCCOB[7] =0x55; //a_pageBuffer[0]; //data&lt;BR /&gt;FTFC-&amp;gt;FCCOB[6] = 0xaa;//a_pageBuffer[1];&lt;BR /&gt;FTFC-&amp;gt;FCCOB[5] = 0x55;//a_pageBuffer[2];&lt;BR /&gt;FTFC-&amp;gt;FCCOB[4] =0xaa; //a_pageBuffer[3];&lt;BR /&gt;FTFC-&amp;gt;FCCOB[11] =0x55; //a_pageBuffer[4];&lt;BR /&gt;FTFC-&amp;gt;FCCOB[10] =0xaa; //a_pageBuffer[5];&lt;BR /&gt;FTFC-&amp;gt;FCCOB[9] =0x55; //a_pageBuffer[6];&lt;BR /&gt;FTFC-&amp;gt;FCCOB[8] =0xaa; //a_pageBuffer[7];&lt;BR /&gt;// }&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;FTFC-&amp;gt;FSTAT = FTFC_FSTAT_CCIF_MASK; //launch command&lt;BR /&gt;//while((FTFC-&amp;gt;FSTAT &amp;amp; FTFC_FSTAT_CCIF_MASK) != FTFC_FSTAT_CCIF_MASK);&lt;BR /&gt;#pragma asm&lt;BR /&gt;;ldr r1, =0x40020000 (0x1fff027c &amp;lt;run_ocs_volt_once..C.3A.5CFramework_ZERV_v00.2E02.5CApplications.5CZERV_Framework.5CAppl.5Cobj.5CINF_CDD.&amp;gt;)&lt;BR /&gt;movw r1,0x0000&lt;BR /&gt;movt r1,0x4002&lt;BR /&gt;movs r0, #128 ; 0x80&lt;BR /&gt;strb r0, [r1, #0]&lt;BR /&gt;L2:&lt;BR /&gt;ldrb r0, [r1, #0]&lt;BR /&gt;lsls r0, r0, #24&lt;BR /&gt;bpl L2&lt;BR /&gt;#pragma endasm&lt;BR /&gt;&lt;BR /&gt;FTFC-&amp;gt;FCCOB[3] = 0x09;//a_cmd; //Program Phrase command (0x07)&lt;BR /&gt;FTFC-&amp;gt;FCCOB[2] = 0x0d;//v_AddrVec[0]; //Flash address [23:16]&lt;BR /&gt;FTFC-&amp;gt;FCCOB[1] =0x26; //v_AddrVec[1]; //Flash address [15:08]&lt;BR /&gt;FTFC-&amp;gt;FCCOB[0] =0x60; //v_AddrVec[2]; //Flash address [7:0]&lt;BR /&gt;FTFC-&amp;gt;FSTAT = FTFC_FSTAT_CCIF_MASK; //launch command&lt;BR /&gt;#pragma asm&lt;BR /&gt;;ldr r1, =0x40020000 (0x1fff027c &amp;lt;run_ocs_volt_once..C.3A.5CFramework_ZERV_v00.2E02.5CApplications.5CZERV_Framework.5CAppl.5Cobj.5CINF_CDD.&amp;gt;)&lt;BR /&gt;movw r1,0x0000&lt;BR /&gt;movt r1,0x4002&lt;BR /&gt;movs r0, #128 ; 0x80&lt;BR /&gt;strb r0, [r1, #0]&lt;BR /&gt;L3:&lt;BR /&gt;ldrb r0, [r1, #0]&lt;BR /&gt;lsls r0, r0, #24&lt;BR /&gt;bpl L3&lt;BR /&gt;#pragma endasm&lt;BR /&gt;FTFC-&amp;gt;FCCOB[3] = 0x07;//a_cmd; //Program Phrase command (0x07)&lt;BR /&gt;FTFC-&amp;gt;FCCOB[2] = 0x0d;//v_AddrVec[0]; //Flash address [23:16]&lt;BR /&gt;FTFC-&amp;gt;FCCOB[1] =0x26; //v_AddrVec[1]; //Flash address [15:08]&lt;BR /&gt;FTFC-&amp;gt;FCCOB[0] =0x60; //v_AddrVec[2]; //Flash address [7:0]&lt;BR /&gt;&lt;BR /&gt;// if (a_pageBuffer != NULL) {&lt;BR /&gt;FTFC-&amp;gt;FCCOB[7] =0x10; //a_pageBuffer[0]; //data&lt;BR /&gt;FTFC-&amp;gt;FCCOB[6] = 0x12;//a_pageBuffer[1];&lt;BR /&gt;FTFC-&amp;gt;FCCOB[5] = 0x13;//a_pageBuffer[2];&lt;BR /&gt;FTFC-&amp;gt;FCCOB[4] =0x14; //a_pageBuffer[3];&lt;BR /&gt;FTFC-&amp;gt;FCCOB[11] =0x15; //a_pageBuffer[4];&lt;BR /&gt;FTFC-&amp;gt;FCCOB[10] =0x16; //a_pageBuffer[5];&lt;BR /&gt;FTFC-&amp;gt;FCCOB[9] =0x17; //a_pageBuffer[6];&lt;BR /&gt;FTFC-&amp;gt;FCCOB[8] =0x18; //a_pageBuffer[7];&lt;BR /&gt;//INT_SYS_EnableIRQGlobal();&lt;BR /&gt;FTFC-&amp;gt;FSTAT = FTFC_FSTAT_CCIF_MASK; //launch command&lt;BR /&gt;#pragma asm&lt;BR /&gt;;ldr r1, =0x40020000 (0x1fff027c &amp;lt;run_ocs_volt_once..C.3A.5CFramework_ZERV_v00.2E02.5CApplications.5CZERV_Framework.5CAppl.5Cobj.5CINF_CDD.&amp;gt;)&lt;BR /&gt;movw r1,0x0000&lt;BR /&gt;movt r1,0x4002&lt;BR /&gt;movs r0, #128 ; 0x80&lt;BR /&gt;strb r0, [r1, #0]&lt;BR /&gt;L4:&lt;BR /&gt;ldrb r0, [r1, #0]&lt;BR /&gt;lsls r0, r0, #24&lt;BR /&gt;bpl L4&lt;BR /&gt;#pragma endasm&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;Just wondering beside the register FTFC-FEPRT is it some else th check.&lt;/P&gt;&lt;P&gt;BR,&lt;/P&gt;&lt;P&gt;kOOROSH&lt;/P&gt;</description>
      <pubDate>Sun, 20 Feb 2022 19:21:51 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K-ECC-error/m-p/1416326#M14061</guid>
      <dc:creator>hajianik</dc:creator>
      <dc:date>2022-02-20T19:21:51Z</dc:date>
    </item>
    <item>
      <title>Re: S32K ECC error</title>
      <link>https://community.nxp.com/t5/S32K/S32K-ECC-error/m-p/1416946#M14074</link>
      <description />
      <pubDate>Mon, 21 Feb 2022 18:01:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K-ECC-error/m-p/1416946#M14074</guid>
      <dc:creator>hajianik</dc:creator>
      <dc:date>2022-02-21T18:01:32Z</dc:date>
    </item>
    <item>
      <title>Re: S32K ECC error</title>
      <link>https://community.nxp.com/t5/S32K/S32K-ECC-error/m-p/1416948#M14075</link>
      <description>&lt;P&gt;Hi Daniel,&lt;/P&gt;&lt;P&gt;I guess it hits the Memory fault exception when It hangs up.&lt;/P&gt;&lt;P&gt;There is no reset causing mechanism for this exception handler. I did not write the code for it. it is all in assembly and good luck deciphering it.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;</description>
      <pubDate>Mon, 21 Feb 2022 18:05:54 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K-ECC-error/m-p/1416948#M14075</guid>
      <dc:creator>hajianik</dc:creator>
      <dc:date>2022-02-21T18:05:54Z</dc:date>
    </item>
    <item>
      <title>Re: S32K ECC error</title>
      <link>https://community.nxp.com/t5/S32K/S32K-ECC-error/m-p/1416992#M14077</link>
      <description>&lt;P&gt;in my last post ,I mistakenly said it is the memory fault where actually it is "BUSFAULT" exception.&lt;/P&gt;</description>
      <pubDate>Mon, 21 Feb 2022 20:50:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K-ECC-error/m-p/1416992#M14077</guid>
      <dc:creator>hajianik</dc:creator>
      <dc:date>2022-02-21T20:50:12Z</dc:date>
    </item>
  </channel>
</rss>

