<?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: MPC5634M  Flash_program   example</title>
    <link>https://community.nxp.com/t5/MPC5xxx/MPC5634M-Flash-program-example/m-p/586527#M4222</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 piece of code works as expected:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; CFLASH1.HLR.R = 0xB2B22222; //password&lt;BR /&gt;&amp;nbsp; CFLASH1.HLR.R = 0x0; //unlock all blocks in high address space in CFLASH1&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; //Erase&lt;BR /&gt;&amp;nbsp; CFLASH1.MCR.B.ERS = 1;&lt;BR /&gt;&amp;nbsp; CFLASH1.HSR.R = 0x00000004;&lt;BR /&gt;&amp;nbsp; *(unsigned int *)0x000C0000 = 0xFFFFFFFF;&lt;BR /&gt;&amp;nbsp; CFLASH1.MCR.B.EHV = 1;&lt;BR /&gt;&amp;nbsp; while ((CFLASH1.MCR.B.DONE == 0));&lt;BR /&gt;&amp;nbsp; CFLASH1.MCR.B.EHV = 0;&lt;BR /&gt;&amp;nbsp; CFLASH1.MCR.B.ERS = 0;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; //Program&lt;BR /&gt;&amp;nbsp; CFLASH1.MCR.B.PGM = 1;&lt;BR /&gt;&amp;nbsp; *(unsigned int *)0x000C0000 = 0x11112222;&lt;BR /&gt;&amp;nbsp; *(unsigned int *)(0x000C0000 + 0x4) = 0x33334444;&lt;BR /&gt;&amp;nbsp; CFLASH1.MCR.B.EHV = 1;&lt;BR /&gt;&amp;nbsp; while ((CFLASH1.MCR.B.DONE == 0));&lt;BR /&gt;&amp;nbsp; CFLASH1.MCR.B.EHV = 0;&lt;BR /&gt;&amp;nbsp; CFLASH1.MCR.B.PGM = 0;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Notice that we can write only one double word at a time.&lt;/P&gt;&lt;P&gt;Read-While-Write is supported between banks, so the code should be executed from RAM or from another bank.&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, 19 Sep 2016 06:04:21 GMT</pubDate>
    <dc:creator>lukaszadrapa</dc:creator>
    <dc:date>2016-09-19T06:04:21Z</dc:date>
    <item>
      <title>MPC5634M  Flash_program   example</title>
      <link>https://community.nxp.com/t5/MPC5xxx/MPC5634M-Flash-program-example/m-p/586526#M4221</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;I now learn to write a bottom drive of&amp;nbsp;MPC5634M &amp;nbsp;Flash_program,but i face a lot of problem.so l need a exapmle to reference.The follow is what i have writed .&lt;/P&gt;&lt;P&gt;&lt;A&gt;Who&lt;/A&gt; &lt;A&gt;can&lt;/A&gt; &lt;A&gt;give&lt;/A&gt; &lt;A&gt;me&lt;/A&gt; &lt;A&gt;a&lt;/A&gt; &lt;A&gt;reference&lt;/A&gt; example ?&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;#ifdef ROM_VERSION&lt;BR /&gt;#pragma push&lt;BR /&gt;#pragma section code_type ".my_ram" ".my_ram" code_mode=far_abs&lt;BR /&gt;#endif&lt;BR /&gt;void Program_FLASH(void)&lt;BR /&gt;{&lt;BR /&gt; #define FLASH_HLR_PASSWORD 0xB2B22222 &lt;BR /&gt; unsigned int status;&lt;BR /&gt; /* enable high address space */ &lt;BR /&gt; CFLASH1.HLR.R = FLASH_HLR_PASSWORD; // unlock register&lt;BR /&gt; CFLASH1.HLR.R = 0x00000000; // unlock all high blocks&lt;/P&gt;&lt;P&gt;/* step1. erase block 10 (0xC0000-0xFFFFF) */&lt;BR /&gt; CFLASH1.MCR.B.ERS = 1; // select operation (erase)&lt;BR /&gt; CFLASH1.HSR.R = 0x00000004; // select 10 block&lt;BR /&gt; *((unsigned int*) p_test) = 0xFFFFFFFF; // interlock write &lt;BR /&gt; CFLASH1.MCR.B.EHV = 1; // start the erase operation&lt;BR /&gt; while(CFLASH1.MCR.B.DONE == 0){}; // wait for DONE&lt;BR /&gt; CFLASH1.MCR.B.EHV = 0;&lt;BR /&gt; CFLASH1.MCR.B.ERS = 0;&lt;/P&gt;&lt;P&gt;/* step2. program data */&lt;BR /&gt; CFLASH1.MCR.B.PGM = 1; &lt;BR /&gt; *((unsigned int*) p_test++) = data_to_be_written[0]; // first write&lt;BR /&gt; *((unsigned int*) p_test++) = data_to_be_written[1]; // additional write&lt;BR /&gt; *((unsigned int*) p_test++) = data_to_be_written[2]; // additional write&lt;BR /&gt; *((unsigned int*) p_test) = data_to_be_written[3]; // additional write&lt;BR /&gt; CFLASH1.MCR.B.EHV = 1; //start the erase operation&lt;BR /&gt; while(CFLASH1.MCR.B.DONE == 0){}; //wait for DONE&lt;BR /&gt; status=CFLASH1.MCR.R&amp;amp;0x00000200;&lt;BR /&gt; CFLASH1.MCR.B.EHV = 0;&lt;BR /&gt; CFLASH1.MCR.B.PGM = 0;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;#ifdef ROM_VERSION&lt;BR /&gt;#pragma pop&lt;BR /&gt;&lt;A _jive_internal="true" href="https://community.nxp.com/tags/#/?tags=endif"&gt;endif&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 02 Sep 2016 04:24:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/MPC5634M-Flash-program-example/m-p/586526#M4221</guid>
      <dc:creator>sufree</dc:creator>
      <dc:date>2016-09-02T04:24:31Z</dc:date>
    </item>
    <item>
      <title>Re: MPC5634M  Flash_program   example</title>
      <link>https://community.nxp.com/t5/MPC5xxx/MPC5634M-Flash-program-example/m-p/586527#M4222</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 piece of code works as expected:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; CFLASH1.HLR.R = 0xB2B22222; //password&lt;BR /&gt;&amp;nbsp; CFLASH1.HLR.R = 0x0; //unlock all blocks in high address space in CFLASH1&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; //Erase&lt;BR /&gt;&amp;nbsp; CFLASH1.MCR.B.ERS = 1;&lt;BR /&gt;&amp;nbsp; CFLASH1.HSR.R = 0x00000004;&lt;BR /&gt;&amp;nbsp; *(unsigned int *)0x000C0000 = 0xFFFFFFFF;&lt;BR /&gt;&amp;nbsp; CFLASH1.MCR.B.EHV = 1;&lt;BR /&gt;&amp;nbsp; while ((CFLASH1.MCR.B.DONE == 0));&lt;BR /&gt;&amp;nbsp; CFLASH1.MCR.B.EHV = 0;&lt;BR /&gt;&amp;nbsp; CFLASH1.MCR.B.ERS = 0;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; //Program&lt;BR /&gt;&amp;nbsp; CFLASH1.MCR.B.PGM = 1;&lt;BR /&gt;&amp;nbsp; *(unsigned int *)0x000C0000 = 0x11112222;&lt;BR /&gt;&amp;nbsp; *(unsigned int *)(0x000C0000 + 0x4) = 0x33334444;&lt;BR /&gt;&amp;nbsp; CFLASH1.MCR.B.EHV = 1;&lt;BR /&gt;&amp;nbsp; while ((CFLASH1.MCR.B.DONE == 0));&lt;BR /&gt;&amp;nbsp; CFLASH1.MCR.B.EHV = 0;&lt;BR /&gt;&amp;nbsp; CFLASH1.MCR.B.PGM = 0;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Notice that we can write only one double word at a time.&lt;/P&gt;&lt;P&gt;Read-While-Write is supported between banks, so the code should be executed from RAM or from another bank.&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, 19 Sep 2016 06:04:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/MPC5634M-Flash-program-example/m-p/586527#M4222</guid>
      <dc:creator>lukaszadrapa</dc:creator>
      <dc:date>2016-09-19T06:04:21Z</dc:date>
    </item>
  </channel>
</rss>

