<?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 FTFC Program Once command in S32K</title>
    <link>https://community.nxp.com/t5/S32K/FTFC-Program-Once-command/m-p/762399#M2187</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN class="" lang="en"&gt;&lt;SPAN class=""&gt;I'm using the S32K144 evaulation board and I don't understand the usage of the FTFC "Program Once Command".&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="" lang="en"&gt;&lt;SPAN class=""&gt;Someone has some idea of what should be programmed in the Program Once Field of 64 bytes of the program flash 0 IFR memory with the command Once?&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="" lang="en"&gt;&lt;SPAN class=""&gt;The reference manual doesn't describe the meaning of the content of the 64 bytes of the Program Once Field of the Program IFR 0.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="" lang="en"&gt;&lt;SPAN class=""&gt;After reading the contents of the 64 bytes with the Read Once command, how can I interpret their contents?&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="" lang="en"&gt;&lt;SPAN class=""&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="" lang="en"&gt;&lt;SPAN class=""&gt;Thanks in advance.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="" lang="en"&gt;&lt;SPAN class=""&gt;E.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 15 Mar 2018 11:23:05 GMT</pubDate>
    <dc:creator>enricoantonioli</dc:creator>
    <dc:date>2018-03-15T11:23:05Z</dc:date>
    <item>
      <title>FTFC Program Once command</title>
      <link>https://community.nxp.com/t5/S32K/FTFC-Program-Once-command/m-p/762399#M2187</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN class="" lang="en"&gt;&lt;SPAN class=""&gt;I'm using the S32K144 evaulation board and I don't understand the usage of the FTFC "Program Once Command".&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="" lang="en"&gt;&lt;SPAN class=""&gt;Someone has some idea of what should be programmed in the Program Once Field of 64 bytes of the program flash 0 IFR memory with the command Once?&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="" lang="en"&gt;&lt;SPAN class=""&gt;The reference manual doesn't describe the meaning of the content of the 64 bytes of the Program Once Field of the Program IFR 0.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="" lang="en"&gt;&lt;SPAN class=""&gt;After reading the contents of the 64 bytes with the Read Once command, how can I interpret their contents?&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="" lang="en"&gt;&lt;SPAN class=""&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="" lang="en"&gt;&lt;SPAN class=""&gt;Thanks in advance.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="" lang="en"&gt;&lt;SPAN class=""&gt;E.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 Mar 2018 11:23:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/FTFC-Program-Once-command/m-p/762399#M2187</guid>
      <dc:creator>enricoantonioli</dc:creator>
      <dc:date>2018-03-15T11:23:05Z</dc:date>
    </item>
    <item>
      <title>Re: FTFC Program Once command</title>
      <link>https://community.nxp.com/t5/S32K/FTFC-Program-Once-command/m-p/762400#M2188</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;BR /&gt;There are 8 phrases that can be programmed only once.&lt;BR /&gt;So it can be used for a device ID or some calibration data that are unique for each device and do not change over the lifetime of the device.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;BR /&gt;Daniel &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 Mar 2018 13:53:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/FTFC-Program-Once-command/m-p/762400#M2188</guid>
      <dc:creator>danielmartynek</dc:creator>
      <dc:date>2018-03-15T13:53:00Z</dc:date>
    </item>
    <item>
      <title>Re: FTFC Program Once command</title>
      <link>https://community.nxp.com/t5/S32K/FTFC-Program-Once-command/m-p/762401#M2189</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Daniel,&lt;/P&gt;&lt;P&gt;thank you very much.&lt;/P&gt;&lt;P&gt;I don't understand the meaning of "Margin" in the margin FTFC read-1s commands.&lt;/P&gt;&lt;P&gt;Can you help me?&lt;/P&gt;&lt;P&gt;Can you suggest me any source code examples or application notes that can be help me?&lt;/P&gt;&lt;P&gt;I'm developing a bootloader on the S32K144 microprocessor.&lt;/P&gt;&lt;P&gt;&lt;SPAN class="" lang="en"&gt;&lt;SPAN class=""&gt;I understand that if I use the Erase Flash Block command using a PFlash address (for example 0x8000) I erase all 512KBytes of the entire program flash?&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="" lang="en"&gt;&lt;SPAN class=""&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="" lang="en"&gt;&lt;SPAN class=""&gt;Regards,&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="" lang="en"&gt;&lt;SPAN class=""&gt;E.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 Mar 2018 14:16:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/FTFC-Program-Once-command/m-p/762401#M2189</guid>
      <dc:creator>enricoantonioli</dc:creator>
      <dc:date>2018-03-15T14:16:28Z</dc:date>
    </item>
    <item>
      <title>Re: FTFC Program Once command</title>
      <link>https://community.nxp.com/t5/S32K/FTFC-Program-Once-command/m-p/762402#M2190</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Enrico,&lt;/P&gt;&lt;P&gt;Erased Flash cells are read as “1” and programmed as “0” and the Margin level is basically the threshold of the reading.&lt;BR /&gt;Some of the cells might be weakly programmed or erased. To check that the Flash has been erased or programmed properly, the Margin level can be adjusted.&lt;BR /&gt;So, a read with 1s Margin will be more sensitive to weakly erased cells and 0s Margin to weakly programmed cells. &lt;BR /&gt;You can refer, for instance, to &lt;A href="https://www.nxp.com/docs/en/application-note/AN3419.pdf"&gt;AN3419 System Integrity Techniques for the S12XE&lt;/A&gt;, Chapter 3.&lt;/P&gt;&lt;P&gt;S32K has a few Flash commands that take a margin level parameter, please see Section 35.5.10 in the RM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Yes, the Erase Flash Block command will erase the whole PFlash block. &lt;BR /&gt;See&amp;nbsp;&lt;A href="https://www.nxp.com/docs/en/application-note/AN12130.pdf"&gt;AN12130, Production Flash Programming Best Practices for S32K1xx MCUs&lt;/A&gt;, Section 3.2.3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;BR /&gt;Daniel&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 Mar 2018 21:12:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/FTFC-Program-Once-command/m-p/762402#M2190</guid>
      <dc:creator>danielmartynek</dc:creator>
      <dc:date>2018-03-15T21:12:03Z</dc:date>
    </item>
    <item>
      <title>Re: FTFC Program Once command</title>
      <link>https://community.nxp.com/t5/S32K/FTFC-Program-Once-command/m-p/762403#M2191</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,Mr Enrico&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Would you pls do me some favor about " program section command".&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;I do not know how to write my date to FlexRam.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Mar 2018 06:34:53 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/FTFC-Program-Once-command/m-p/762403#M2191</guid>
      <dc:creator>zky</dc:creator>
      <dc:date>2018-03-19T06:34:53Z</dc:date>
    </item>
    <item>
      <title>Re: FTFC Program Once command</title>
      <link>https://community.nxp.com/t5/S32K/FTFC-Program-Once-command/m-p/762404#M2192</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;SPAN class="" lang="en"&gt;&lt;SPAN title="sfortunatamente non credo di aver capito bene la tua domanda. "&gt;unfortunately I do not think I understood your question well.&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN title="Quello che segue è un esempio di come ho implementato il comando &amp;quot;Program Section&amp;quot;:  "&gt;The following is an example of how I implemented the "Program Section" command:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* ========================================================================== */&lt;BR /&gt;/*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;BR /&gt;/* Execute the PGMSEC FTFC command&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;BR /&gt;/* Programs the data found in the section program buffer to previously erased */&lt;BR /&gt;/* locations in the flash memory (Address must be 128bit-aligned in PFlash&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;BR /&gt;/* or 64-bit aligned in DFlash)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;BR /&gt;/*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;BR /&gt;/* retval&amp;nbsp; WAITING, SUCCESSFUL e FAILED&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;BR /&gt;/*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;BR /&gt;/* ========================================================================== */&lt;BR /&gt;UINT8 ProgramSectionCommand(UINT32 address, UINT8 *buff, UINT16 size)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; register UINT8 res;&lt;BR /&gt;&amp;nbsp; UINT16 number;/* Number of double-phrases (128bit) for PFlash and phrases (64bit) for DFlash */&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; if ((FTFC-&amp;gt;FSTAT&amp;amp;FTFC_FSTAT_CCIF_MASK)==0)/* Waiting for previous command completed */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return WAITING;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if ((address&amp;gt;=PFLASH_START_ADDR)&amp;amp;&amp;amp;(address&amp;lt;=PFLASH_END_ADDR))&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Check if destination address is aligned or not */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((address&amp;amp;0x0000000F)!=0)/* Must be 128bit aligned */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return FAILED;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; number = size/8;/* Number of double-phrases */&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; else if ((address&amp;gt;=DFLASH_START_ADDR)&amp;amp;&amp;amp;(address&amp;lt;=DFLASH_END_ADDR))&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Check if destination address is aligned or not */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((address&amp;amp;0x00000007)!=0)/* Must be 64bit aligned */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return FAILED;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; number = size/4;/* Number of phrases */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; address |= (1&amp;lt;&amp;lt;23);/* bit 23 of the command address select between PFlash (0) and DFlash (1) */&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; else&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return FAILED;&lt;BR /&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if (size&amp;gt;((FLEXRAM_END_ADDR-FLEXRAM_START_ADDR+1)/4))/* The maxsize of the section program buffer must be less than 1/4 FlexRAM size */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return FAILED;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* Set FlexRAM function command to make the FlexRAM available As traditional RAM */&lt;BR /&gt;&amp;nbsp; do&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; res = SetFlexRamFunctionCommand(EEE_DISABLE, 0, NULL, NULL, NULL);/* Make FlexRAM available as RAM */&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; while (res==WAITING);&lt;BR /&gt;&amp;nbsp; if (res==SUCCESSFUL)&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; memcpy((void *)FLEXRAM_START_ADDR, buff, size);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Clear old errors */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTFC-&amp;gt;FSTAT = (FTFC_FSTAT_FPVIOL(1)|&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTFC_FSTAT_ACCERR(1)|&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTFC_FSTAT_RDCOLERR(1));&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Write FCCOB registers with the required command parameters */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET_FCCOB0(PGMSEC);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET_FCCOB1(GET_BIT_23_16(address));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET_FCCOB2(GET_BIT_15_08(address));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET_FCCOB3(GET_BIT_07_00(address));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET_FCCOB4(GET_BIT_15_08(number));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET_FCCOB5(GET_BIT_07_00(number));&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DISABLE_INTERRUPTS();&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;FTFC-&amp;gt;FSTAT = FTFC_FSTAT_CCIF(1); /* Clear the CCIF flag to launch the command */&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;while((FTFC-&amp;gt;FSTAT&amp;amp;FTFC_FSTAT_CCIF_MASK)==0); /* Waiting for command completed */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENABLE_INTERRUPTS();&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Check if an error is occurred */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((FTFC-&amp;gt;FSTAT&amp;amp;(FTFC_FSTAT_MGSTAT0_MASK|/* Run-time errors */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTFC_FSTAT_FPVIOL_MASK| /* Protection error */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTFC_FSTAT_ACCERR_MASK| /* Access error */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTFC_FSTAT_RDCOLERR_MASK))!=0U)/* Read Collision Error */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; res = FAILED;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; res = SUCCESSFUL;&lt;BR /&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if (emulatedEEpromEnabled==TRUE)&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; do&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; res = SetFlexRamFunctionCommand(EEE_ENABLE, 0, NULL, NULL, NULL);/* Make FlexRAM available for emulated EEPROM */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (res==WAITING);&lt;BR /&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; return res;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="" lang="en"&gt;&lt;SPAN class=""&gt;Hoping to help you&lt;/SPAN&gt;&lt;/SPAN&gt;,&lt;/P&gt;&lt;P&gt;Best regards&lt;/P&gt;&lt;P&gt;E.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Mar 2018 11:09:59 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/FTFC-Program-Once-command/m-p/762404#M2192</guid>
      <dc:creator>enricoantonioli</dc:creator>
      <dc:date>2018-03-19T11:09:59Z</dc:date>
    </item>
    <item>
      <title>Re: FTFC Program Once command</title>
      <link>https://community.nxp.com/t5/S32K/FTFC-Program-Once-command/m-p/762405#M2193</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Daniel,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thank you very much for your clear explanation.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have only a last question: can you suggest me to disable cache during reprogramming procedure or not?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can you explain me some C source code for that I can use to disable/enable the chace?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There is specific register for disable DFlash cache and Pflash cache ?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you in advance&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;E&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Mar 2018 12:20:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/FTFC-Program-Once-command/m-p/762405#M2193</guid>
      <dc:creator>enricoantonioli</dc:creator>
      <dc:date>2018-03-19T12:20:33Z</dc:date>
    </item>
    <item>
      <title>Re: FTFC Program Once command</title>
      <link>https://community.nxp.com/t5/S32K/FTFC-Program-Once-command/m-p/762406#M2194</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Thanks for your help.&lt;/P&gt;&lt;P&gt;In your code,&lt;/P&gt;&lt;P&gt;would you please tell me some value of your macro define?&lt;/P&gt;&lt;P&gt;such as below.&lt;/P&gt;&lt;P&gt;"&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;EEE_DISABLE" = 0xff ?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;"FLEXRAM_START_ADDR" = 0x14000000?&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;and in fact i am using swd interface to program the flash, i can use&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;"programme phrase command" to program the whole flash before,&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;and now i am trying to improve speed by using"Program Section command",&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 i do not know why i can not write date to flex ram.&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;Thanks again.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 20 Mar 2018 04:54:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/FTFC-Program-Once-command/m-p/762406#M2194</guid>
      <dc:creator>zky</dc:creator>
      <dc:date>2018-03-20T04:54:00Z</dc:date>
    </item>
    <item>
      <title>Re: FTFC Program Once command</title>
      <link>https://community.nxp.com/t5/S32K/FTFC-Program-Once-command/m-p/762407#M2195</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;here the definitions that I use in my source code:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* FlexRAM function control definitions */&lt;BR /&gt;#define EEE_ENABLE 0x00U /* Make FlexRAM available for emulated EEPROM */&lt;BR /&gt;#define EEE_QUICK_WRITE 0x55U /* Make FlexRAM available for EEPROM quick writes */&lt;BR /&gt;#define EEE_STATUS_QUERY 0x77U /* EEPROM quick write status query */&lt;BR /&gt;#define EEE_COMPLETE_INTERRUPT_QUICK_WRITE 0xAAU /* Complete interrupted EEPROM quick write process */&lt;BR /&gt;#define EEE_DISABLE 0xFFU /* Make FlexRAM available as RAM */&lt;/P&gt;&lt;P&gt;/* PFlash, DFlash and FlexRAM memory address definitions */&lt;BR /&gt;#define FLEXRAM_START_ADDR 0x14000000&lt;BR /&gt;#define FLEXRAM_END_ADDR 0x14000FFF&lt;/P&gt;&lt;P&gt;#define PFLASH_START_ADDR (UINT32)0x00000000&lt;BR /&gt;#define PFLASH_END_ADDR (UINT32)0x0007FFFF&lt;/P&gt;&lt;P&gt;#define DFLASH_START_ADDR (UINT32)0x10000000&lt;BR /&gt;#define DFLASH_END_ADDR (UINT32)0x1000FFFF&lt;/P&gt;&lt;P&gt;For use FTFC Program Section Command you must:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;set the FlexRAM Function Command with Function Control Code 0xFF (make FlexRam available as traditional RAM)&lt;/LI&gt;&lt;LI&gt;copy the data that you want to program in the "section program buffer" (lower quarter of FlexRAM. For example in S32K144 with 4KB of FlexRAM the section program buffer address are: 0x14000000-0x140003FF)&lt;/LI&gt;&lt;LI&gt;execute the FTFC Program Section command "PGMSEC"&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope I have helped you&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards&lt;/P&gt;&lt;P&gt;E&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 20 Mar 2018 09:11:53 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/FTFC-Program-Once-command/m-p/762407#M2195</guid>
      <dc:creator>enricoantonioli</dc:creator>
      <dc:date>2018-03-20T09:11:53Z</dc:date>
    </item>
    <item>
      <title>Re: FTFC Program Once command</title>
      <link>https://community.nxp.com/t5/S32K/FTFC-Program-Once-command/m-p/762408#M2196</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Daniel,&lt;/P&gt;&lt;P&gt;is it necessary to disable the program flash cache during reprogramming?&lt;/P&gt;&lt;P&gt;Can I use this source code?&lt;/P&gt;&lt;P&gt;MSCM-&amp;gt;OCMDR[0] |= MSCM_OCMDR_OCM1(0b11); /* OCMDR1 */&lt;BR /&gt;MSCM-&amp;gt;OCMDR[1] |= MSCM_OCMDR_OCM1(0b11); /* OCMDR2 */&lt;/P&gt;&lt;P&gt;Have you any suggestion?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;E.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 21 Mar 2018 12:30:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/FTFC-Program-Once-command/m-p/762408#M2196</guid>
      <dc:creator>enricoantonioli</dc:creator>
      <dc:date>2018-03-21T12:30:42Z</dc:date>
    </item>
    <item>
      <title>Re: FTFC Program Once command</title>
      <link>https://community.nxp.com/t5/S32K/FTFC-Program-Once-command/m-p/762409#M2197</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Enrico,&lt;BR /&gt;Sorry for the delay.&lt;BR /&gt;Yes, it is necessary and you can use this code.&lt;/P&gt;&lt;P&gt;The flash controller needs to be idle when writing to an OCMDRn register associated with Flash memory.&lt;BR /&gt;This means no read/erase/execute/etc operations from the Flash memory should be made while writing to the OCMDRn register associated with that memory.&amp;nbsp;So do not execute the code from PFlash memory when you are disabling the PFlash buffer.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;BR /&gt;Daniel&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 21 Mar 2018 14:00:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/FTFC-Program-Once-command/m-p/762409#M2197</guid>
      <dc:creator>danielmartynek</dc:creator>
      <dc:date>2018-03-21T14:00:21Z</dc:date>
    </item>
    <item>
      <title>Re: FTFC Program Once command</title>
      <link>https://community.nxp.com/t5/S32K/FTFC-Program-Once-command/m-p/762410#M2198</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Daniel,&lt;/P&gt;&lt;P&gt;thank you very much.&lt;/P&gt;&lt;P&gt;I was left with a doubt:&lt;/P&gt;&lt;P&gt;if I understand the reference manual at pag. 695 it reports that if the PCCCR[ENCACHE] bit register is clear mean "Cache Disabled". At this point what does it means write the OCM1 bits in the OCMDR0 and OCMDR1 registers?&lt;/P&gt;&lt;P&gt;A stupid question: if the PCCCR[ENCACHE] bit is 0 implies that the cache is disabled or no?&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The values of the OCM1 field in the OCMDRO and OCDMR1 registers is of two or four bits size?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;E.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 21 Mar 2018 14:31:53 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/FTFC-Program-Once-command/m-p/762410#M2198</guid>
      <dc:creator>enricoantonioli</dc:creator>
      <dc:date>2018-03-21T14:31:53Z</dc:date>
    </item>
    <item>
      <title>Re: FTFC Program Once command</title>
      <link>https://community.nxp.com/t5/S32K/FTFC-Program-Once-command/m-p/762411#M2199</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Enrico,&lt;BR /&gt;These are two different things. There is LMEM Cache and FMC prefetch buffer.&lt;BR /&gt;Please read AN4745 Optimizing Performance on Kinetis K-series MCUs&lt;BR /&gt;&lt;A href="http://cache.freescale.com/files/microcontrollers/doc/app_note/AN4745.pdf"&gt;http://cache.freescale.com/files/microcontrollers/doc/app_note/AN4745.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;OCM1 is a 2-bit field.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;BR /&gt;Daniel&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 22 Mar 2018 16:08:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/FTFC-Program-Once-command/m-p/762411#M2199</guid>
      <dc:creator>danielmartynek</dc:creator>
      <dc:date>2018-03-22T16:08:33Z</dc:date>
    </item>
  </channel>
</rss>

