<?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: About Flash Program on Internal Flash (MPC5674F)</title>
    <link>https://community.nxp.com/t5/MPC5xxx/About-Flash-Program-on-Internal-Flash-MPC5674F/m-p/686004#M8380</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;from the reference manual:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/19217iC120D6E26EA9912B/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_1.png" alt="pastedImage_1.png" /&gt;&lt;/span&gt; &lt;/P&gt;&lt;P&gt;You can't program two 32bit words within one double word (64bits) separately. It is necessary to write the data at once. Something like:&lt;/P&gt;&lt;P&gt;&amp;nbsp; FLASH_B.MCR.B.PGM = 1; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; *(unsigned int *)0x000C0000 = 0xAABBCCDD;&lt;/P&gt;&lt;P&gt;&amp;nbsp; *(unsigned int *)0x000C0004 = 0x11223344;&lt;BR /&gt;&amp;nbsp; FLASH_B.MCR.B.EHV = 1;&lt;BR /&gt;&amp;nbsp; while(FLASH_B.MCR.B.DONE == 0){};&lt;BR /&gt;&amp;nbsp; FLASH_B.MCR.B.EHV = 0;&lt;BR /&gt;&amp;nbsp; FLASH_B.MCR.B.PGM = 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>Mon, 22 May 2017 11:31:27 GMT</pubDate>
    <dc:creator>lukaszadrapa</dc:creator>
    <dc:date>2017-05-22T11:31:27Z</dc:date>
    <item>
      <title>About Flash Program on Internal Flash (MPC5674F)</title>
      <link>https://community.nxp.com/t5/MPC5xxx/About-Flash-Program-on-Internal-Flash-MPC5674F/m-p/686003#M8379</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;I have a problem with the flash program.&lt;BR /&gt;When writing data to multiple addresses, it is shown as below.&lt;BR /&gt;I also attached my code. The code proceeded in the order of the datasheet.&lt;BR /&gt;What's wrong with my code?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/20855iF2169D3E17477029/image-size/large?v=v2&amp;amp;px=999" title="FLASH_ERROR.png" alt="FLASH_ERROR.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;main&lt;/STRONG&gt;()&lt;/P&gt;&lt;P&gt;{&lt;BR /&gt; uint32_t ulDATA[10], i;&lt;BR /&gt; for(i=0;i&amp;lt;10;i++)&lt;BR /&gt;&amp;nbsp; &amp;nbsp; ulDATA[i] = 0x11111111*(i+1);&lt;/P&gt;&lt;P&gt;ulErrCode = &lt;STRONG&gt;DRV_Flash_Write&lt;/STRONG&gt;(0x10000, &amp;amp;ulDATA[0], 10);&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;uint32_t &lt;STRONG&gt;DRV_Flash_Write&lt;/STRONG&gt;(uint32_t _u32Addr, uint32_t *_pData, uint32_t _u32WLen)&lt;BR /&gt;{&lt;BR /&gt; uint32_t i, errCode;&lt;BR /&gt; &lt;BR /&gt; /* unlock L4~L9 in flash array A */&lt;BR /&gt; FLASH_A.LMLR.R = FLASH_LMLR_PASSWORD;&lt;BR /&gt; FLASH_A.LMLR.R = 0x0013000F;&lt;BR /&gt; FLASH_A.SLMLR.R = FLASH_SLMLR_PASSWORD;&lt;BR /&gt; FLASH_A.SLMLR.R = 0x0013000F;&lt;BR /&gt; &lt;BR /&gt; // Step 1&lt;BR /&gt; FLASH_A.MCR.B.PGM = 1;&lt;BR /&gt; // Step 2 &amp;amp; 3&lt;BR /&gt; &lt;STRONG&gt;for(i=0;i&amp;lt;_u32WLen;i++)&lt;/STRONG&gt;&lt;BR /&gt; {&lt;BR /&gt;&amp;nbsp; &amp;nbsp; *(vuint32_t *)(_u32Addr+i*4) = *_pData+i; /* interlock write */&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;// Step 4&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;FLASH_A.MCR.B.EHV = 1; /* start programming */&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;// Step 5&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;while(FLASH_A.MCR.B.DONE == 0){}; /* wait for done */&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;// Step 6&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;if(FLASH_A.MCR.B.PGM != 1)&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;{&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;// Error&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;errCode = 7;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;// Step 7&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;FLASH_A.MCR.B.EHV = 0;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;// Step 8 // to do : go to step 2&lt;BR /&gt;}&lt;BR /&gt; // Step 9&lt;BR /&gt; FLASH_A.MCR.B.PGM = 0;&lt;BR /&gt; if(FLASH_A.MCR.B.PEG == 0)&lt;BR /&gt; return 2; /* return error if PEG was not set */&lt;BR /&gt; &lt;BR /&gt; return errCode;&lt;BR /&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 19 May 2017 08:48:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/About-Flash-Program-on-Internal-Flash-MPC5674F/m-p/686003#M8379</guid>
      <dc:creator>hyenongijeong</dc:creator>
      <dc:date>2017-05-19T08:48:47Z</dc:date>
    </item>
    <item>
      <title>Re: About Flash Program on Internal Flash (MPC5674F)</title>
      <link>https://community.nxp.com/t5/MPC5xxx/About-Flash-Program-on-Internal-Flash-MPC5674F/m-p/686004#M8380</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;from the reference manual:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/19217iC120D6E26EA9912B/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_1.png" alt="pastedImage_1.png" /&gt;&lt;/span&gt; &lt;/P&gt;&lt;P&gt;You can't program two 32bit words within one double word (64bits) separately. It is necessary to write the data at once. Something like:&lt;/P&gt;&lt;P&gt;&amp;nbsp; FLASH_B.MCR.B.PGM = 1; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; *(unsigned int *)0x000C0000 = 0xAABBCCDD;&lt;/P&gt;&lt;P&gt;&amp;nbsp; *(unsigned int *)0x000C0004 = 0x11223344;&lt;BR /&gt;&amp;nbsp; FLASH_B.MCR.B.EHV = 1;&lt;BR /&gt;&amp;nbsp; while(FLASH_B.MCR.B.DONE == 0){};&lt;BR /&gt;&amp;nbsp; FLASH_B.MCR.B.EHV = 0;&lt;BR /&gt;&amp;nbsp; FLASH_B.MCR.B.PGM = 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>Mon, 22 May 2017 11:31:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/About-Flash-Program-on-Internal-Flash-MPC5674F/m-p/686004#M8380</guid>
      <dc:creator>lukaszadrapa</dc:creator>
      <dc:date>2017-05-22T11:31:27Z</dc:date>
    </item>
    <item>
      <title>Re: About Flash Program on Internal Flash (MPC5674F)</title>
      <link>https://community.nxp.com/t5/MPC5xxx/About-Flash-Program-on-Internal-Flash-MPC5674F/m-p/686005#M8381</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;Thank you. The code has some error. my mistake.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you for your response.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Henk&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 23 May 2017 04:04:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/About-Flash-Program-on-Internal-Flash-MPC5674F/m-p/686005#M8381</guid>
      <dc:creator>hyenongijeong</dc:creator>
      <dc:date>2017-05-23T04:04:10Z</dc:date>
    </item>
  </channel>
</rss>

