<?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>S12 / MagniV MicrocontrollersのトピックAccess to flash memory</title>
    <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Access-to-flash-memory/m-p/124436#M104</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;&lt;FONT color="#ff0000"&gt;This message contains an entire topic ported from a separate forum. The original message and all replies are in this single message. We have seeded this new forum with selected information that we expect will be of value to you as you search for answers to your questions&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;&lt;STRONG&gt;Posted: Thu Jan 12, 2006 4:29am &lt;NAMESPACE ns="urn:schemas-microsoft-com:office:office" prefix="o"&gt;&lt;/NAMESPACE&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;Hi,&lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;I've a problem on MSC9S12DG256 chip.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;I try to write a word in flash memory. I write the code in flash.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;I copy it into RAM and I execute it in RAM.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;My code is that : &lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="msg_source_code"&gt;&lt;SPAN class="text_smallest"&gt;&lt;FONT face="Courier New" size="2"&gt;Code:&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;FONT face="Arial" size="2"&gt;&lt;FONT face="Courier New"&gt;static bool ProgData(void)&amp;nbsp; {&amp;nbsp; unsigned short * sectAddr = (unsigned short *)0x8000;&amp;nbsp;&amp;nbsp; B = 0x34;&amp;nbsp;&amp;nbsp; PPAGE = B;&amp;nbsp;&amp;nbsp; B = B &amp;gt;&amp;gt; 2;&amp;nbsp; B = ~B;&amp;nbsp; B &amp;amp;= 0x3;&amp;nbsp;&amp;nbsp; FCNFG = B;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *sectAddr = 0xABAB;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FCMD = PROG;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FSTAT |= FSTAT_CBEIF_MASK;&amp;nbsp; if (FSTAT_ACCERR) {return 0;}&amp;nbsp;&amp;nbsp; if (FSTAT_PVIOL) {return 0;}&amp;nbsp;&amp;nbsp; asm nop;&amp;nbsp; asm nop;&amp;nbsp; asm nop;&amp;nbsp; asm nop;&amp;nbsp; asm nop;&amp;nbsp; while(FSTAT_CBEIF == 0);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(FSTAT_CCIF == 0);&amp;nbsp; }&lt;/FONT&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;The code is executed without error or crash. But the data is not written in Flash&lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;Have you got an idea about my problem.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;Thanks in advance for your help.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;SPAN style="mso-spacerun: yes;"&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;HR /&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;/SPAN&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;B style="mso-bidi-font-weight: normal;"&gt;&lt;FONT size="2"&gt;Posted: Thu Jan 12, 2006 5:17am &lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;You apparently forgot to set FCLKDIV.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;You can have a look in the "P&amp;amp;E_ICD_Erase_unsecure_hcs12.cmd" of your project.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;Here is the code I tested successfully. Note the "NON_BANKED" pragma.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="msg_source_code"&gt;&lt;SPAN class="text_smallest"&gt;&lt;FONT face="Courier New" size="2"&gt;Code:&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;FONT face="Arial" size="2"&gt;&lt;FONT face="Courier New"&gt;static volatile unsigned char B;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #pragma CODE_SEG NON_BANKED&amp;nbsp; static Bool ProgData(void)&amp;nbsp; {&amp;nbsp; unsigned short * sectAddr = (unsigned short *)0x8000;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FPROT = 0xFF;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // XTAL :&amp;nbsp; // 16 MHz $49&amp;nbsp; // 8 MHz $27&amp;nbsp; // 4 MHz $13&amp;nbsp; // 2 MHz $9&amp;nbsp; // 1 MHz $4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FCLKDIV = 0x49;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; B = 0x34;&amp;nbsp; PPAGE = B;&amp;nbsp; B = B &amp;gt;&amp;gt; 2;&amp;nbsp; B = ~B;&amp;nbsp; B &amp;amp;= 0x3;&amp;nbsp; FCNFG = B;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *sectAddr = 0xABAB;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FCMD = 0x20; //PROG;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FSTAT |= FSTAT_CBEIF_MASK;&amp;nbsp; if (FSTAT_ACCERR) {return 0;}&amp;nbsp; if (FSTAT_PVIOL) {return 0;}&amp;nbsp; asm nop;&amp;nbsp; asm nop;&amp;nbsp; asm nop;&amp;nbsp; asm nop;&amp;nbsp; asm nop;&amp;nbsp; while(FSTAT_CBEIF == 0);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(FSTAT_CCIF == 0);&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; void main(void) {&amp;nbsp; /* put your own code here */&amp;nbsp; EnableInterrupts;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ProgData();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(;;) {} /* wait forever */&amp;nbsp; /* please make sure that you never leave this function */&amp;nbsp; }&lt;/FONT&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;BR /&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;HR /&gt;&lt;B style="mso-bidi-font-weight: normal;"&gt;Posted: Thu Jan 12, 2006 7:23am &lt;P&gt;&lt;/P&gt;&lt;/B&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;Thanks a lot. Now it's working. The problem was FCLKDIV register. Now , I want to erase a page. For that, my code is: &lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="msg_source_code"&gt;&lt;SPAN class="text_smallest"&gt;&lt;FONT face="Courier New" size="2"&gt;Code:&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;FONT face="Arial" size="2"&gt;&lt;FONT face="Courier New"&gt;static void EraseFlash(void)&amp;nbsp; {&amp;nbsp; unsigned short * addr = (unsigned short *)0x8000;&amp;nbsp; FCLKDIV = 0x49;&amp;nbsp; B = 0x34;&amp;nbsp; PPAGE = B; B = B &amp;gt;&amp;gt; 2;&amp;nbsp; B = ~B;&amp;nbsp; B &amp;amp;= 0x3;&amp;nbsp; FCNFG = B;&amp;nbsp; cmd = ERASE + MASS;&amp;nbsp; asm nop;&amp;nbsp; if (EraseCmd(cmd, addr) == 0)&amp;nbsp; {&amp;nbsp; bError = 1;&amp;nbsp; }&amp;nbsp; cmd = ERVER + MASS;&amp;nbsp; if (EraseCmd(cmd, addr) == 0)&amp;nbsp; {&amp;nbsp; bError = 1;&amp;nbsp; }&amp;nbsp; if (FSTAT_BLANK)&amp;nbsp; {&amp;nbsp; bError = 1;&amp;nbsp; }&amp;nbsp; FCNFG = FSTAT_BLANK_MASK;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; static bool EraseCmd(unsigned short cmd, unsigned short * addr)&amp;nbsp; {&amp;nbsp; asm nop;&amp;nbsp; asm nop;&amp;nbsp;&amp;nbsp; *addr = 0xFFFF;&amp;nbsp; *(addr+1) = 0xFFFF;&amp;nbsp; FCMD = cmd;&amp;nbsp;&amp;nbsp; FSTAT = FSTAT_CBEIF_MASK;&amp;nbsp; if (FSTAT_ACCERR) {return 0;}&amp;nbsp; if (FSTAT_PVIOL) {return 0;}&amp;nbsp; EraseCmdOK();&amp;nbsp; return 1;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; static void EraseCmdOK(void)&amp;nbsp; {&amp;nbsp; while(FSTAT_CCIF == 0);&amp;nbsp; }&lt;/FONT&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;BR /&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;This code doesn't work.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;Any idea ???&lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;Thanks in advance.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;SPAN style="mso-spacerun: yes;"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;SPAN style="mso-spacerun: yes;"&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;HR /&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;/SPAN&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;B style="mso-bidi-font-weight: normal;"&gt;&lt;FONT size="2"&gt;Posted: Thu Jan 12, 2006 7:30am &lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;Yes,&lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;I did not try your code this time.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;But apparently you forgot to unprotect the flash.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;Check my previously sent code: &lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New';"&gt;&lt;FONT face="Arial"&gt;&lt;FONT size="2"&gt;FPROT = 0xFF; /* to unprotect all blocks */&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;Also, why do you have:&lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New';"&gt;&lt;FONT face="Arial"&gt;*addr = 0xFFFF;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New';"&gt;&lt;FONT face="Arial"&gt;*(addr+1) = 0xFFFF; ??&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;the second line is useless, to my opinion.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;Regards,&lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;HR /&gt;&amp;nbsp; &lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;B style="mso-bidi-font-weight: normal;"&gt;&lt;FONT size="2"&gt;Posted: Thu Jan 12, 2006 7:57am &lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;I add command "FPROT = 0xFF;" before doing other thing.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;And I suppressed command "*(addr+1) = 0xFFFF;"&lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;But it's not working also.&lt;/FONT&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;Message Edited by khumphri on &lt;SPAN class="date_text"&gt;01-26-2006&lt;/SPAN&gt; &lt;SPAN class="time_text"&gt;11:57 AM&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 27 Jan 2006 01:52:45 GMT</pubDate>
    <dc:creator>khumphri</dc:creator>
    <dc:date>2006-01-27T01:52:45Z</dc:date>
    <item>
      <title>Access to flash memory</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Access-to-flash-memory/m-p/124436#M104</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;&lt;FONT color="#ff0000"&gt;This message contains an entire topic ported from a separate forum. The original message and all replies are in this single message. We have seeded this new forum with selected information that we expect will be of value to you as you search for answers to your questions&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;&lt;STRONG&gt;Posted: Thu Jan 12, 2006 4:29am &lt;NAMESPACE ns="urn:schemas-microsoft-com:office:office" prefix="o"&gt;&lt;/NAMESPACE&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;Hi,&lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;I've a problem on MSC9S12DG256 chip.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;I try to write a word in flash memory. I write the code in flash.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;I copy it into RAM and I execute it in RAM.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;My code is that : &lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="msg_source_code"&gt;&lt;SPAN class="text_smallest"&gt;&lt;FONT face="Courier New" size="2"&gt;Code:&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;FONT face="Arial" size="2"&gt;&lt;FONT face="Courier New"&gt;static bool ProgData(void)&amp;nbsp; {&amp;nbsp; unsigned short * sectAddr = (unsigned short *)0x8000;&amp;nbsp;&amp;nbsp; B = 0x34;&amp;nbsp;&amp;nbsp; PPAGE = B;&amp;nbsp;&amp;nbsp; B = B &amp;gt;&amp;gt; 2;&amp;nbsp; B = ~B;&amp;nbsp; B &amp;amp;= 0x3;&amp;nbsp;&amp;nbsp; FCNFG = B;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *sectAddr = 0xABAB;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FCMD = PROG;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FSTAT |= FSTAT_CBEIF_MASK;&amp;nbsp; if (FSTAT_ACCERR) {return 0;}&amp;nbsp;&amp;nbsp; if (FSTAT_PVIOL) {return 0;}&amp;nbsp;&amp;nbsp; asm nop;&amp;nbsp; asm nop;&amp;nbsp; asm nop;&amp;nbsp; asm nop;&amp;nbsp; asm nop;&amp;nbsp; while(FSTAT_CBEIF == 0);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(FSTAT_CCIF == 0);&amp;nbsp; }&lt;/FONT&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;The code is executed without error or crash. But the data is not written in Flash&lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;Have you got an idea about my problem.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;Thanks in advance for your help.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;SPAN style="mso-spacerun: yes;"&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;HR /&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;/SPAN&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;B style="mso-bidi-font-weight: normal;"&gt;&lt;FONT size="2"&gt;Posted: Thu Jan 12, 2006 5:17am &lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;You apparently forgot to set FCLKDIV.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;You can have a look in the "P&amp;amp;E_ICD_Erase_unsecure_hcs12.cmd" of your project.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;Here is the code I tested successfully. Note the "NON_BANKED" pragma.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="msg_source_code"&gt;&lt;SPAN class="text_smallest"&gt;&lt;FONT face="Courier New" size="2"&gt;Code:&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;FONT face="Arial" size="2"&gt;&lt;FONT face="Courier New"&gt;static volatile unsigned char B;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #pragma CODE_SEG NON_BANKED&amp;nbsp; static Bool ProgData(void)&amp;nbsp; {&amp;nbsp; unsigned short * sectAddr = (unsigned short *)0x8000;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FPROT = 0xFF;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // XTAL :&amp;nbsp; // 16 MHz $49&amp;nbsp; // 8 MHz $27&amp;nbsp; // 4 MHz $13&amp;nbsp; // 2 MHz $9&amp;nbsp; // 1 MHz $4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FCLKDIV = 0x49;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; B = 0x34;&amp;nbsp; PPAGE = B;&amp;nbsp; B = B &amp;gt;&amp;gt; 2;&amp;nbsp; B = ~B;&amp;nbsp; B &amp;amp;= 0x3;&amp;nbsp; FCNFG = B;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *sectAddr = 0xABAB;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FCMD = 0x20; //PROG;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FSTAT |= FSTAT_CBEIF_MASK;&amp;nbsp; if (FSTAT_ACCERR) {return 0;}&amp;nbsp; if (FSTAT_PVIOL) {return 0;}&amp;nbsp; asm nop;&amp;nbsp; asm nop;&amp;nbsp; asm nop;&amp;nbsp; asm nop;&amp;nbsp; asm nop;&amp;nbsp; while(FSTAT_CBEIF == 0);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(FSTAT_CCIF == 0);&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; void main(void) {&amp;nbsp; /* put your own code here */&amp;nbsp; EnableInterrupts;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ProgData();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(;;) {} /* wait forever */&amp;nbsp; /* please make sure that you never leave this function */&amp;nbsp; }&lt;/FONT&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;BR /&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;HR /&gt;&lt;B style="mso-bidi-font-weight: normal;"&gt;Posted: Thu Jan 12, 2006 7:23am &lt;P&gt;&lt;/P&gt;&lt;/B&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;Thanks a lot. Now it's working. The problem was FCLKDIV register. Now , I want to erase a page. For that, my code is: &lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="msg_source_code"&gt;&lt;SPAN class="text_smallest"&gt;&lt;FONT face="Courier New" size="2"&gt;Code:&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;FONT face="Arial" size="2"&gt;&lt;FONT face="Courier New"&gt;static void EraseFlash(void)&amp;nbsp; {&amp;nbsp; unsigned short * addr = (unsigned short *)0x8000;&amp;nbsp; FCLKDIV = 0x49;&amp;nbsp; B = 0x34;&amp;nbsp; PPAGE = B; B = B &amp;gt;&amp;gt; 2;&amp;nbsp; B = ~B;&amp;nbsp; B &amp;amp;= 0x3;&amp;nbsp; FCNFG = B;&amp;nbsp; cmd = ERASE + MASS;&amp;nbsp; asm nop;&amp;nbsp; if (EraseCmd(cmd, addr) == 0)&amp;nbsp; {&amp;nbsp; bError = 1;&amp;nbsp; }&amp;nbsp; cmd = ERVER + MASS;&amp;nbsp; if (EraseCmd(cmd, addr) == 0)&amp;nbsp; {&amp;nbsp; bError = 1;&amp;nbsp; }&amp;nbsp; if (FSTAT_BLANK)&amp;nbsp; {&amp;nbsp; bError = 1;&amp;nbsp; }&amp;nbsp; FCNFG = FSTAT_BLANK_MASK;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; static bool EraseCmd(unsigned short cmd, unsigned short * addr)&amp;nbsp; {&amp;nbsp; asm nop;&amp;nbsp; asm nop;&amp;nbsp;&amp;nbsp; *addr = 0xFFFF;&amp;nbsp; *(addr+1) = 0xFFFF;&amp;nbsp; FCMD = cmd;&amp;nbsp;&amp;nbsp; FSTAT = FSTAT_CBEIF_MASK;&amp;nbsp; if (FSTAT_ACCERR) {return 0;}&amp;nbsp; if (FSTAT_PVIOL) {return 0;}&amp;nbsp; EraseCmdOK();&amp;nbsp; return 1;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; static void EraseCmdOK(void)&amp;nbsp; {&amp;nbsp; while(FSTAT_CCIF == 0);&amp;nbsp; }&lt;/FONT&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;BR /&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;This code doesn't work.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;Any idea ???&lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;Thanks in advance.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;SPAN style="mso-spacerun: yes;"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;SPAN style="mso-spacerun: yes;"&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;HR /&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;/SPAN&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;B style="mso-bidi-font-weight: normal;"&gt;&lt;FONT size="2"&gt;Posted: Thu Jan 12, 2006 7:30am &lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;Yes,&lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;I did not try your code this time.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;But apparently you forgot to unprotect the flash.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;Check my previously sent code: &lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New';"&gt;&lt;FONT face="Arial"&gt;&lt;FONT size="2"&gt;FPROT = 0xFF; /* to unprotect all blocks */&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;Also, why do you have:&lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New';"&gt;&lt;FONT face="Arial"&gt;*addr = 0xFFFF;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New';"&gt;&lt;FONT face="Arial"&gt;*(addr+1) = 0xFFFF; ??&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;the second line is useless, to my opinion.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;Regards,&lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;HR /&gt;&amp;nbsp; &lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;B style="mso-bidi-font-weight: normal;"&gt;&lt;FONT size="2"&gt;Posted: Thu Jan 12, 2006 7:57am &lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;I add command "FPROT = 0xFF;" before doing other thing.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;And I suppressed command "*(addr+1) = 0xFFFF;"&lt;/FONT&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt;"&gt;&lt;FONT size="2"&gt;But it's not working also.&lt;/FONT&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;Message Edited by khumphri on &lt;SPAN class="date_text"&gt;01-26-2006&lt;/SPAN&gt; &lt;SPAN class="time_text"&gt;11:57 AM&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 27 Jan 2006 01:52:45 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Access-to-flash-memory/m-p/124436#M104</guid>
      <dc:creator>khumphri</dc:creator>
      <dc:date>2006-01-27T01:52:45Z</dc:date>
    </item>
  </channel>
</rss>

