<?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: Flash 1 Programming on the MC68HC908GZ60 in 8-bit Microcontrollers</title>
    <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Flash-1-Programming-on-the-MC68HC908GZ60/m-p/147523#M7485</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In the end the solution is that when you record or erase the flash-2. code routines to perform this action program must be in the flash-1.&lt;BR /&gt;&amp;nbsp;With this in mind there is no problem with the code that I have.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 23 Jul 2012 14:37:07 GMT</pubDate>
    <dc:creator>Saaac</dc:creator>
    <dc:date>2012-07-23T14:37:07Z</dc:date>
    <item>
      <title>Flash 1 Programming on the MC68HC908GZ60</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Flash-1-Programming-on-the-MC68HC908GZ60/m-p/147519#M7481</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;hello,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I am trying to develop some in-Can programmability for the the uC MC68HC908GZ60. Basically I am loading an external RAM with bytes that represent&amp;nbsp; the updated version of the binary code that is supposed to be programmed in Flash 1.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Some functions in Flash 2 read the RAM, do an mass erase of Flash 1 and program Flash 1. The problem I am having is to write the interrupt and reset vectors. They start at address $FFCC and according to the datasheet, I am supposed to write the entire row, starting a $FFC0. However, the bytes from the address $FFC0 to $FFCC are reserved according to the datasheet and thus i am not supposed to programmed them.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Is it a problem with the datasheet or am I missing something?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Cyril&lt;/SPAN&gt;&lt;BR /&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 16 Apr 2008 15:40:45 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Flash-1-Programming-on-the-MC68HC908GZ60/m-p/147519#M7481</guid>
      <dc:creator>CyrilG_</dc:creator>
      <dc:date>2008-04-16T15:40:45Z</dc:date>
    </item>
    <item>
      <title>Re: Flash 1 Programming on the MC68HC908GZ60</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Flash-1-Programming-on-the-MC68HC908GZ60/m-p/147520#M7482</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hello Cyril, and welcome to the forum.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;It is not necessary to program every flash location within a row - just program the locations that are required by your code, and leave the others unprogrammed.&amp;nbsp; Alternatively, if it simplifies the operation of the programming code within flash2, you could program the value 0xFF into the unused locations, which is equivalent to leaving them unprogrammed.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I think the point that the datasheet is making is that the row size represents the maximum number of locations that may be programmed in a single burst.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Regards,&lt;/DIV&gt;&lt;DIV&gt;Mac&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 16 Apr 2008 23:55:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Flash-1-Programming-on-the-MC68HC908GZ60/m-p/147520#M7482</guid>
      <dc:creator>bigmac</dc:creator>
      <dc:date>2008-04-16T23:55:56Z</dc:date>
    </item>
    <item>
      <title>Re: Flash 1 Programming on the MC68HC908GZ60</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Flash-1-Programming-on-the-MC68HC908GZ60/m-p/147521#M7483</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;My question&lt;/SPAN&gt; &lt;SPAN&gt;is related to&lt;/SPAN&gt; &lt;SPAN&gt;this&lt;/SPAN&gt; &lt;SPAN&gt;issue open&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN&gt;I try to record&lt;/SPAN&gt; &lt;SPAN&gt;and delete&lt;/SPAN&gt; &lt;SPAN&gt;information&lt;/SPAN&gt; &lt;SPAN&gt;in the FLASH&lt;/SPAN&gt;&lt;SPAN&gt;-2 of&lt;/SPAN&gt; &lt;SPAN&gt;MC68HC908GZ60&lt;/SPAN&gt; &lt;SPAN&gt;the&lt;/SPAN&gt; &lt;SPAN&gt;same way&lt;/SPAN&gt; &lt;SPAN&gt;he did in&lt;/SPAN&gt; &lt;SPAN&gt;the&lt;/SPAN&gt; &lt;SPAN&gt;FLASH&lt;/SPAN&gt;&lt;SPAN&gt;-1&lt;/SPAN&gt;&lt;SPAN&gt;, with the same&lt;/SPAN&gt; &lt;SPAN&gt;instructions&lt;/SPAN&gt; &lt;SPAN&gt;but change the&lt;/SPAN&gt; &lt;SPAN&gt;1 to 2&lt;/SPAN&gt; &lt;SPAN&gt;logs&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN&gt;The&lt;/SPAN&gt; &lt;SPAN&gt;problem I encounter&lt;/SPAN&gt; &lt;SPAN&gt;is that whenever&lt;/SPAN&gt; &lt;SPAN&gt;I try to record&lt;/SPAN&gt; &lt;SPAN&gt;something in the&lt;/SPAN&gt; &lt;SPAN&gt;FLASH&lt;/SPAN&gt;&lt;SPAN&gt;-2&lt;/SPAN&gt; &lt;SPAN&gt;I get&lt;/SPAN&gt; &lt;SPAN&gt;all&lt;/SPAN&gt; &lt;SPAN&gt;the memory locations&lt;/SPAN&gt; &lt;SPAN&gt;0xAD&lt;/SPAN&gt; &lt;SPAN&gt;value&lt;/SPAN&gt; &lt;SPAN&gt;and I&lt;/SPAN&gt; &lt;SPAN&gt;try to burn&lt;/SPAN&gt; &lt;SPAN&gt;any other&lt;/SPAN&gt; &lt;SPAN&gt;value.&lt;/SPAN&gt; &lt;SPAN&gt;I put&lt;/SPAN&gt; &lt;SPAN&gt;the&lt;/SPAN&gt; &lt;SPAN&gt;code&lt;/SPAN&gt; &lt;SPAN&gt;here&lt;/SPAN&gt; &lt;SPAN&gt;as&lt;/SPAN&gt; &lt;SPAN&gt;I record&lt;/SPAN&gt; &lt;SPAN&gt;and erase&lt;/SPAN&gt; &lt;SPAN&gt;in the&lt;/SPAN&gt; &lt;SPAN&gt;FLASH&lt;/SPAN&gt;&lt;SPAN&gt;-1&lt;/SPAN&gt; &lt;SPAN&gt;that works for me&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;and how&lt;/SPAN&gt; &lt;SPAN&gt;I record&lt;/SPAN&gt; &lt;SPAN&gt;and erase&lt;/SPAN&gt; &lt;SPAN&gt;in the&lt;/SPAN&gt; &lt;SPAN&gt;FLASH&lt;/SPAN&gt;&lt;SPAN&gt;-2 that&lt;/SPAN&gt; &lt;SPAN&gt;does not work&lt;/SPAN&gt; &lt;SPAN&gt;and whenever&lt;/SPAN&gt; &lt;SPAN&gt;I try to record&lt;/SPAN&gt; &lt;SPAN&gt;in one direction&lt;/SPAN&gt;&lt;SPAN&gt;, I get&lt;/SPAN&gt; &lt;SPAN&gt;0xAD&lt;/SPAN&gt; &lt;SPAN&gt;in all positions&lt;/SPAN&gt; &lt;SPAN&gt;of that part of&lt;/SPAN&gt; &lt;SPAN&gt;the&lt;/SPAN&gt; &lt;SPAN&gt;FLASH&lt;/SPAN&gt;&lt;SPAN&gt;-2.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;FLASH&lt;/SPAN&gt;&lt;SPAN&gt;-1&lt;/SPAN&gt; &lt;SPAN&gt;Code:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;__________________________________________________________________________________&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;extern void GRABAR_FLASH(unsigned char bits);&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;extern void BORRAR_FLASH();&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;#define __DI() \&lt;BR /&gt;{ asm sei; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Disable interrupts&amp;nbsp; */ \&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;#define __EI() \&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;{ asm cli; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Enable interrupts */ \&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;UINT8 *PunteroMemoria=(UINT8*)0;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;extern UINT8 *PunteroMemoria;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;void GRABAR_FLASH(unsigned char bits)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; char VARIABLEINUTIL;&lt;BR /&gt;&amp;nbsp; char DELAY = 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; __DI();&lt;BR /&gt;&amp;nbsp; //1&lt;BR /&gt;&amp;nbsp; setReg8Bits(FL1CR,FL1CR_PGM_MASK);&lt;BR /&gt;&amp;nbsp; //2&lt;BR /&gt;&amp;nbsp; for (VARIABLEINUTIL=0;VARIABLEINUTIL&amp;lt;DELAY;++VARIABLEINUTIL){};&lt;BR /&gt;&amp;nbsp; VARIABLEINUTIL=FL1BPR;&lt;BR /&gt;&amp;nbsp; //3&lt;BR /&gt;&amp;nbsp; PunteroMemoria = 0;&lt;BR /&gt;&amp;nbsp; PunteroMemoria += 0xFFD0;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; *PunteroMemoria = 25;&lt;BR /&gt;&amp;nbsp; //4&lt;BR /&gt;&amp;nbsp; for (VARIABLEINUTIL=0;VARIABLEINUTIL&amp;lt;DELAY;++VARIABLEINUTIL){};&lt;BR /&gt;&amp;nbsp; //5&lt;BR /&gt;&amp;nbsp; setReg8Bits(FL1CR,FL1CR_HVEN_MASK);&lt;BR /&gt;&amp;nbsp; //6&lt;BR /&gt;&amp;nbsp; for (VARIABLEINUTIL=0;VARIABLEINUTIL&amp;lt;DELAY;++VARIABLEINUTIL){};&lt;BR /&gt;&amp;nbsp; //7&lt;BR /&gt;&amp;nbsp; PunteroMemoria = 0;&lt;BR /&gt;&amp;nbsp; PunteroMemoria += 0xFFD0;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; *PunteroMemoria = bits;&lt;BR /&gt;&amp;nbsp; //8&lt;BR /&gt;&amp;nbsp; for (VARIABLEINUTIL=0;VARIABLEINUTIL&amp;lt;DELAY;++VARIABLEINUTIL){};&lt;BR /&gt;&amp;nbsp; //10&lt;BR /&gt;&amp;nbsp; clrReg8Bits(FL1CR,FL1CR_PGM_MASK);&lt;BR /&gt;&amp;nbsp; //11&lt;BR /&gt;&amp;nbsp; for (VARIABLEINUTIL=0;VARIABLEINUTIL&amp;lt;DELAY;++VARIABLEINUTIL){};&lt;BR /&gt;&amp;nbsp; //12&lt;BR /&gt;&amp;nbsp; clrReg8Bits(FL1CR,FL1CR_HVEN_MASK);&lt;BR /&gt;&amp;nbsp; //13&lt;BR /&gt;&amp;nbsp; for (VARIABLEINUTIL=0;VARIABLEINUTIL&amp;lt;200;++VARIABLEINUTIL){};&lt;BR /&gt;&amp;nbsp; __EI();&amp;nbsp;&lt;BR /&gt;}&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;void BORRAR_FLASH()&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; char VARIABLEINUTIL;&lt;BR /&gt;&amp;nbsp; char DELAY = 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; __DI();&lt;BR /&gt;&amp;nbsp; //1&lt;BR /&gt;&amp;nbsp; setReg8Bits(FL1CR,FL1CR_ERASE_MASK);&amp;nbsp; //ERASE&lt;BR /&gt;&amp;nbsp; clrReg8Bits(FL1CR,FL1CR_MASS_MASK);&amp;nbsp; //MASS&lt;BR /&gt;&amp;nbsp; //2&lt;BR /&gt;&amp;nbsp; for (VARIABLEINUTIL=0;VARIABLEINUTIL&amp;lt;DELAY;++VARIABLEINUTIL){};&lt;BR /&gt;&amp;nbsp; VARIABLEINUTIL=FL1BPR;&lt;BR /&gt;&amp;nbsp; //3&lt;BR /&gt;&amp;nbsp; PunteroMemoria = 0;&lt;BR /&gt;&amp;nbsp; PunteroMemoria += 0xFFD0;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; *PunteroMemoria = 25;&lt;BR /&gt;&amp;nbsp; //4&lt;BR /&gt;&amp;nbsp; for (VARIABLEINUTIL=0;VARIABLEINUTIL&amp;lt;DELAY;++VARIABLEINUTIL){};&lt;BR /&gt;&amp;nbsp; //5&lt;BR /&gt;&amp;nbsp; setReg8Bits(FL1CR,FL1CR_HVEN_MASK);&lt;BR /&gt;&amp;nbsp; //6&lt;BR /&gt;&amp;nbsp; for (VARIABLEINUTIL=0;VARIABLEINUTIL&amp;lt;DELAY;++VARIABLEINUTIL){};&lt;BR /&gt;&amp;nbsp; //7&lt;BR /&gt;&amp;nbsp; clrReg8Bits(FL1CR,FL1CR_ERASE_MASK);&lt;BR /&gt;&amp;nbsp; //8&lt;BR /&gt;&amp;nbsp; for (VARIABLEINUTIL=0;VARIABLEINUTIL&amp;lt;DELAY;++VARIABLEINUTIL){};&lt;BR /&gt;&amp;nbsp; //9&lt;BR /&gt;&amp;nbsp; clrReg8Bits(FL1CR,FL1CR_HVEN_MASK);&lt;BR /&gt;&amp;nbsp; //10&lt;BR /&gt;&amp;nbsp; for (VARIABLEINUTIL=0;VARIABLEINUTIL&amp;lt;DELAY;++VARIABLEINUTIL){};&lt;BR /&gt;&amp;nbsp; __EI();&lt;BR /&gt;}&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;______________________END FLASH1____________________________________________&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;FLASH&lt;/SPAN&gt;&lt;SPAN&gt;-2&lt;/SPAN&gt; &lt;SPAN&gt;Code:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;_____________________________________________________________________________&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;extern void GRABAR_FLASH(unsigned char bits);&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;extern void BORRAR_FLASH();&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;#define __DI() \&lt;BR /&gt;{ asm sei; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Disable interrupts&amp;nbsp; */ \&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;#define __EI() \&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;{ asm cli; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Enable interrupts */ \&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;UINT8 *PunteroMemoria=(UINT8*)0;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;extern UINT8 *PunteroMemoria;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;void GRABAR_FLASH(unsigned char bits)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; char VARIABLEINUTIL;&lt;BR /&gt;&amp;nbsp; char DELAY = 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; __DI();&lt;BR /&gt;&amp;nbsp; //1&lt;BR /&gt;&amp;nbsp; setReg8Bits(FL2CR,FL2CR_PGM_MASK);&lt;BR /&gt;&amp;nbsp; //2&lt;BR /&gt;&amp;nbsp; for (VARIABLEINUTIL=0;VARIABLEINUTIL&amp;lt;DELAY;++VARIABLEINUTIL){};&lt;BR /&gt;&amp;nbsp; VARIABLEINUTIL=FL2BPR;&lt;BR /&gt;&amp;nbsp; //3&lt;BR /&gt;&amp;nbsp; PunteroMemoria = 0;&lt;BR /&gt;&amp;nbsp; PunteroMemoria += 0x0462;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; *PunteroMemoria = 25;&lt;BR /&gt;&amp;nbsp; //4&lt;BR /&gt;&amp;nbsp; for (VARIABLEINUTIL=0;VARIABLEINUTIL&amp;lt;DELAY;++VARIABLEINUTIL){};&lt;BR /&gt;&amp;nbsp; //5&lt;BR /&gt;&amp;nbsp; setReg8Bits(FL2CR,FL2CR_HVEN_MASK);&lt;BR /&gt;&amp;nbsp; //6&lt;BR /&gt;&amp;nbsp; for (VARIABLEINUTIL=0;VARIABLEINUTIL&amp;lt;DELAY;++VARIABLEINUTIL){};&lt;BR /&gt;&amp;nbsp; //7&lt;BR /&gt;&amp;nbsp; PunteroMemoria = 0;&lt;BR /&gt;&amp;nbsp; PunteroMemoria += 0x0462;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; *PunteroMemoria = bits;&lt;BR /&gt;&amp;nbsp; //8&lt;BR /&gt;&amp;nbsp; for (VARIABLEINUTIL=0;VARIABLEINUTIL&amp;lt;DELAY;++VARIABLEINUTIL){};&lt;BR /&gt;&amp;nbsp; //10&lt;BR /&gt;&amp;nbsp; clrReg8Bits(FL2CR,FL2CR_PGM_MASK);&lt;BR /&gt;&amp;nbsp; //11&lt;BR /&gt;&amp;nbsp; for (VARIABLEINUTIL=0;VARIABLEINUTIL&amp;lt;DELAY;++VARIABLEINUTIL){};&lt;BR /&gt;&amp;nbsp; //12&lt;BR /&gt;&amp;nbsp; clrReg8Bits(FL2CR,FL2CR_HVEN_MASK);&lt;BR /&gt;&amp;nbsp; //13&lt;BR /&gt;&amp;nbsp; for (VARIABLEINUTIL=0;VARIABLEINUTIL&amp;lt;200;++VARIABLEINUTIL){};&lt;BR /&gt;&amp;nbsp; __EI();&amp;nbsp;&lt;BR /&gt;}&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;void BORRAR_FLASH()&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; char VARIABLEINUTIL;&lt;BR /&gt;&amp;nbsp; char DELAY = 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; __DI();&lt;BR /&gt;&amp;nbsp; //1&lt;BR /&gt;&amp;nbsp; setReg8Bits(FL2CR,FL2CR_ERASE_MASK);&amp;nbsp; //ERASE&lt;BR /&gt;&amp;nbsp; clrReg8Bits(FL2CR,FL2CR_MASS_MASK);&amp;nbsp; //MASS&lt;BR /&gt;&amp;nbsp; //2&lt;BR /&gt;&amp;nbsp; for (VARIABLEINUTIL=0;VARIABLEINUTIL&amp;lt;DELAY;++VARIABLEINUTIL){};&lt;BR /&gt;&amp;nbsp; VARIABLEINUTIL=FL2BPR;&lt;BR /&gt;&amp;nbsp; //3&lt;BR /&gt;&amp;nbsp; PunteroMemoria = 0;&lt;BR /&gt;&amp;nbsp; PunteroMemoria += 0x0462;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; *PunteroMemoria = 25;&lt;BR /&gt;&amp;nbsp; //4&lt;BR /&gt;&amp;nbsp; for (VARIABLEINUTIL=0;VARIABLEINUTIL&amp;lt;DELAY;++VARIABLEINUTIL){};&lt;BR /&gt;&amp;nbsp; //5&lt;BR /&gt;&amp;nbsp; setReg8Bits(FL2CR,FL2CR_HVEN_MASK);&lt;BR /&gt;&amp;nbsp; //6&lt;BR /&gt;&amp;nbsp; for (VARIABLEINUTIL=0;VARIABLEINUTIL&amp;lt;DELAY;++VARIABLEINUTIL){};&lt;BR /&gt;&amp;nbsp; //7&lt;BR /&gt;&amp;nbsp; clrReg8Bits(FL2CR,FL2CR_ERASE_MASK);&lt;BR /&gt;&amp;nbsp; //8&lt;BR /&gt;&amp;nbsp; for (VARIABLEINUTIL=0;VARIABLEINUTIL&amp;lt;DELAY;++VARIABLEINUTIL){};&lt;BR /&gt;&amp;nbsp; //9&lt;BR /&gt;&amp;nbsp; clrReg8Bits(FL2CR,FL2CR_HVEN_MASK);&lt;BR /&gt;&amp;nbsp; //10&lt;BR /&gt;&amp;nbsp; for (VARIABLEINUTIL=0;VARIABLEINUTIL&amp;lt;DELAY;++VARIABLEINUTIL){};&lt;BR /&gt;&amp;nbsp; __EI();&lt;BR /&gt;}&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;______________________END FLASH2____________________________________________&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;THANKS.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 11 Jul 2012 22:21:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Flash-1-Programming-on-the-MC68HC908GZ60/m-p/147521#M7483</guid>
      <dc:creator>SaaacAstarc</dc:creator>
      <dc:date>2012-07-11T22:21:58Z</dc:date>
    </item>
    <item>
      <title>Re: Flash 1 Programming on the MC68HC908GZ60</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Flash-1-Programming-on-the-MC68HC908GZ60/m-p/147522#M7484</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;I keep&lt;/SPAN&gt; &lt;SPAN&gt;looking at me&lt;/SPAN&gt; &lt;SPAN&gt;the&lt;/SPAN&gt; &lt;SPAN&gt;datasheet&lt;/SPAN&gt; &lt;SPAN&gt;and the only thing&lt;/SPAN&gt; &lt;SPAN&gt;I&lt;/SPAN&gt; &lt;SPAN&gt;block is&lt;/SPAN&gt; &lt;SPAN&gt;this note:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;NOTE&lt;BR /&gt;The vector locations and the FLASH block protect registers are located in&lt;BR /&gt;the same page. FL1BPR and FL2BPR are not protected with special&lt;BR /&gt;hardware or software. Therefore, if this page is not protected by FL1BPR&lt;BR /&gt;and the vector locations are erased by either a page or a mass erase&lt;BR /&gt;operation, both FL1BPR and FL2BPR will also get erased.&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Why&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;the&lt;/SPAN&gt; &lt;SPAN&gt;rest of the process&lt;/SPAN&gt; &lt;SPAN&gt;is identical to&lt;/SPAN&gt; &lt;SPAN&gt;the algorithm of the&lt;/SPAN&gt; &lt;SPAN&gt;FLASH&lt;/SPAN&gt;&lt;SPAN&gt;-1.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;A&lt;/SPAN&gt; &lt;SPAN&gt;greeting.&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 13 Jul 2012 12:52:41 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Flash-1-Programming-on-the-MC68HC908GZ60/m-p/147522#M7484</guid>
      <dc:creator>SaaacAstarc</dc:creator>
      <dc:date>2012-07-13T12:52:41Z</dc:date>
    </item>
    <item>
      <title>Re: Flash 1 Programming on the MC68HC908GZ60</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Flash-1-Programming-on-the-MC68HC908GZ60/m-p/147523#M7485</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In the end the solution is that when you record or erase the flash-2. code routines to perform this action program must be in the flash-1.&lt;BR /&gt;&amp;nbsp;With this in mind there is no problem with the code that I have.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 23 Jul 2012 14:37:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Flash-1-Programming-on-the-MC68HC908GZ60/m-p/147523#M7485</guid>
      <dc:creator>Saaac</dc:creator>
      <dc:date>2012-07-23T14:37:07Z</dc:date>
    </item>
  </channel>
</rss>

