<?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 rom rountines using hc908 jk3 PROBLEMS in 8-bit Microcontrollers</title>
    <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Flash-rom-rountines-using-hc908-jk3-PROBLEMS/m-p/125299#M566</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;DIV&gt;Hey thanks alot peg,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;But i think i need to trouble&amp;nbsp; you again sorry . I have read AN2874 and also used the code for debugging but it encountered the same message too. I am currently using Motrola Modular evaluation system(MMEVS) for dubugging.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Is it that when u debug and check the memory where it is intended to be erased, it will read all ff??&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;During this period i tried&amp;nbsp; using the method without rom routines but it encountered the same problem.&lt;/DIV&gt;&lt;DIV&gt;I think it is due to my carelessness or limited knowledge haha .Below is my code thanks!&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;*******************************************************************************************************&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;#include &amp;lt;hidef.h&amp;gt; /* for EnableInterrupts macro */&lt;BR /&gt;#include &amp;lt;MC68HC908JK3.h&amp;gt; /* include peripheral declarations */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;void initMCU(void);&lt;BR /&gt;void initTimer(void);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;unsigned char *address_flag;&lt;BR /&gt;unsigned int startadd;&lt;/DIV&gt;&lt;DIV&gt;unsigned char *addresserase_flag;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;unsigned int add;&lt;BR /&gt;unsigned char cycle;&lt;BR /&gt;unsigned char READ;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;/**********************/&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&amp;nbsp;#pragma CODE_SEG ToCopyToRAM&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;void flash_erase(void) {&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;FLBPR= 0XFF;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;FLCR=0x02;&amp;nbsp;&amp;nbsp; //set erase bit&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;READ = FLBPR;&lt;/DIV&gt;&lt;DIV&gt;//&amp;nbsp;FLCR=0x02;&amp;nbsp;&amp;nbsp; //clear mass bit&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;addresserase_flag=(unsigned char*)0xFBDF ;&lt;BR /&gt;&amp;nbsp;*addresserase_flag = 0;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;asm{&lt;BR /&gt;&amp;nbsp;ldx #7&lt;BR /&gt;loop1:&amp;nbsp;&lt;BR /&gt;&amp;nbsp;dbnzx loop1 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//(10us)&lt;BR /&gt;&amp;nbsp;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;FLCR=0x0A;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //set hven bit&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;asm {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ldx&amp;nbsp; #16400&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;tloop :&amp;nbsp;&lt;BR /&gt;&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;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dbnzx tloop&amp;nbsp;//(4ms)&lt;BR /&gt;&amp;nbsp;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;FLCR=0x08;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //clear erase&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;asm{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;ldx #4&lt;BR /&gt;&amp;nbsp;loop2:&lt;BR /&gt;&amp;nbsp;dbnzx loop2 ;&amp;nbsp;&amp;nbsp; //(5us)&lt;BR /&gt;&amp;nbsp;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;FLCR=0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //clear hven bit&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;asm{&lt;BR /&gt;&amp;nbsp;ldx #1&lt;BR /&gt;loop3:&lt;BR /&gt;&amp;nbsp;dbnzx loop3;&amp;nbsp;&amp;nbsp;&amp;nbsp;//(1us)&lt;BR /&gt;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;}&lt;BR /&gt;#pragma CODE_SEG DEFAULT&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;extern char __SEG_START_ToCopyToRAM[];&lt;BR /&gt;extern char __SEG_SIZE_ToCopyToRAM[];&lt;/DIV&gt;&lt;DIV&gt;void flash_erase(void) ;&lt;BR /&gt;#define Start_Copy_In_RAM&amp;nbsp; __SEG_START_ToCopyToRAM&lt;BR /&gt;#define Size_Copy_In_RAM&amp;nbsp; __SEG_SIZE_ToCopyToRAM&lt;/DIV&gt;&lt;DIV&gt;void CopyInRAM(void)&lt;/DIV&gt;&lt;DIV&gt;{&lt;BR /&gt;&amp;nbsp;char *srcPtr, *dstPtr;&lt;BR /&gt;&amp;nbsp;int count2;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;srcPtr = (char*)Start_Copy_In_RAM;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;dstPtr = (char*)&amp;amp;flash_erase;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;for (count2 = 0; count2&amp;lt; (int) Size_Copy_In_RAM;&lt;BR /&gt;&amp;nbsp;count2++, dstPtr++, srcPtr++) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;*dstPtr = *srcPtr;&lt;BR /&gt;&amp;nbsp;}&lt;BR /&gt;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;//**********************************************************************************************&lt;BR /&gt;//Timer Initialisation&lt;BR /&gt;//**********************************************************************************************&lt;/DIV&gt;&lt;DIV&gt;/*void initTimer(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;TSC = 0x20;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;TMODH = 0x00;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;TMODL = 0x10;&amp;nbsp; //ms&lt;BR /&gt;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*/&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;//**********************************************************************************************&lt;BR /&gt;//Main Function&lt;BR /&gt;//**********************************************************************************************&lt;/DIV&gt;&lt;DIV&gt;void main(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;initMCU();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//initTimer();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;// INTSCR|=0x06;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //BR: Clear the IRQ latch; Disable IRQ INT&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;EnableInterrupts;&lt;BR /&gt;&amp;nbsp;__RESET_WATCHDOG();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Note as of now the COP module is disabled&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;&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;TSC_TSTOP = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //active timer&lt;BR /&gt;&amp;nbsp;TSC_TOIE = 1;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;DisableInterrupts;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;CopyInRAM();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;flash_erase();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;EnableInterrupts;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;for(;&lt;IMG alt=":smileywink:" class="emoticon emoticon-smileywink" id="smileywink" src="http://freescale.i.lithium.com/i/smilies/16x16_smiley-wink.gif" title="Smiley Wink" /&gt; ;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;}&lt;BR /&gt;//**********************************************************************************************&lt;BR /&gt;//Initialisation&lt;BR /&gt;//**********************************************************************************************&lt;/DIV&gt;&lt;DIV&gt;void initMCU(void) {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;DisableInterrupts;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Disable interrupts&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;CONFIG1=0x11;//Disabled Power to LVI module, COP enabled&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;&lt;BR /&gt;&amp;nbsp;// 0x09 LVI enabled, 5V LVI;// 0x01 LVI enabled + COP disabled, 3V LVI; // 0x39 LVI disabled + COP disabled&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;// 0x00, LVI 3V, COP enabled&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;//BR: COP disabled first,&amp;nbsp; LVI is enabled (mazm)&amp;nbsp; bit7: 0011 1001 bit1&lt;BR /&gt;&amp;nbsp;// Out of stop mode bit7 - COPRS: COP rate select bit; 1: (8176) BUSCLKX4 cycle to time out; 0&lt;IMG alt=":smileysad:" class="emoticon emoticon-smileysad" id="smileysad" src="http://freescale.i.lithium.com/i/smilies/16x16_smiley-sad.gif" title="Smiley Sad" /&gt; 262128 BUSCLKX4)&lt;BR /&gt;&amp;nbsp;// bit7 - COPRS:In stop mode, Autowakeup period selection ; 1: 2^9 * INTRCOSC&amp;nbsp; ; 0: 2^14 * INTRCOSC&amp;nbsp;&lt;BR /&gt;&amp;nbsp;// bit6 LVISTOP - LVI enable in stop mode ; 0 - Disable ; 1 - Enable;&lt;BR /&gt;&amp;nbsp;// bit5 LVIRSTD -LVI Reset disable bit; 0 - Enable 1- Disable&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;// bit4 - LVIPWRD - LVI Power Disable bit ; 1- Disable ; 0 - Enable&amp;nbsp;&lt;BR /&gt;&amp;nbsp;// bit3 - LVI5OR3 - LVI 5V or 3V Operating mode ; 1 - LVI 5 v; 0 - LVI 3V&lt;BR /&gt;&amp;nbsp;// bit2 - SSREC: Short Stop RECovery bit;&lt;BR /&gt;&amp;nbsp;// bit1 - STOP: Stop instruction enable bit; 1: Enable; 0: Disable&lt;BR /&gt;&amp;nbsp;// bit0 - COPD: COP Disable bit; 1: COP Disable; 0: COP Enable&lt;BR /&gt;&amp;nbsp;// Reset value: 0x00&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;CONFIG2=0x00;&lt;BR /&gt;// Internal oscillator ; IRQ pin disabled ; Reset pin disabled ;&lt;/DIV&gt;&lt;DIV&gt;//&amp;nbsp;&amp;nbsp; Bit 7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;BR /&gt;//&amp;nbsp;&amp;nbsp; IRQPUD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IRQEN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; R&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OSCOPT1&amp;nbsp;&amp;nbsp;&amp;nbsp; OSCOPT0&amp;nbsp;&amp;nbsp;&amp;nbsp; R&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; R&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RSTEN&lt;/DIV&gt;&lt;DIV&gt;//&amp;nbsp; 0-PA2 pullup&amp;nbsp; 1-IRQ in pin&amp;nbsp;&amp;nbsp;00- internal osc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1- reset in pin&lt;BR /&gt;//&amp;nbsp; 1-NO Pullup&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;01- external osc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0- rst not active in pin&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&amp;nbsp;FLBPR=0xFF;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&amp;nbsp;//I/O port Intialization Port A&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;PTA = 0x00;&lt;BR /&gt;&amp;nbsp;PTB = 0x00;&lt;BR /&gt;&amp;nbsp;PTD = 0x00;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;DDRA = 0x01;&lt;BR /&gt;&amp;nbsp;DDRB = 0x01;&lt;BR /&gt;&amp;nbsp;DDRD&amp;nbsp; = 0x01;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;PTAPUE=0x40;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;/DIV&gt;&lt;DIV&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;&lt;/DIV&gt;&lt;DIV&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;&lt;BR /&gt;__RESET_WATCHDOG();&lt;/DIV&gt;&lt;DIV&gt;}&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;THANKS FOR ANY HELP&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 08 Mar 2007 15:13:05 GMT</pubDate>
    <dc:creator>lazycat</dc:creator>
    <dc:date>2007-03-08T15:13:05Z</dc:date>
    <item>
      <title>Flash rom rountines using hc908 jk3 PROBLEMS</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Flash-rom-rountines-using-hc908-jk3-PROBLEMS/m-p/125294#M561</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;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;Hello,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color: #000000;"&gt;i am quite new to mcu , so pardon me if i ask some obvious question haha..&amp;nbsp;&amp;nbsp;&amp;nbsp; I have been trying to write data to the flash for&amp;nbsp;some time after reading through the&amp;nbsp;flash posts in the forum. I have used both method ; the assembly and c language , both copying flash to the ram (if my code is not wrong). However, when my breakpoint reached (PRGRNGE.) or (ERARNGE). it cannot go into the rom rountines stating&lt;/SPAN&gt; &lt;SPAN style="color: #FF0033;"&gt;illegal address&amp;nbsp;.&lt;/SPAN&gt; &lt;SPAN style="color: #000000;"&gt;My codes are referenced from an2346&amp;nbsp; an1831 and one more&amp;nbsp;manual&amp;nbsp;for the copying ram in c.&amp;nbsp;I am really on my wits' end now. Hope&amp;nbsp; some one can give me some valuable advice .&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Another question that is bugging me is do we need to set some parameters in the debugger so that flash programming can be enabled?? i am using codewarrior 3.1 and i am afraid it is my hardware that is the stepping stone haha...Thanks for any help&lt;A href="http://freescale.i.lithium.com/i/smilies/16x16_smiley-happy.gif"&gt;&lt;IMG alt=":smileyhappy:" class="emoticon emoticon-smileyhappy" src="http://freescale.i.lithium.com/i/smilies/16x16_smiley-happy.gif" title="Smiley Happy" /&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #000000;"&gt;Can i confirm that my reset port need to be held high (VDD+Vhi) in the debugger&amp;nbsp;for the rom routines to work?&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #000000;"&gt;If i am not using rom routines, does i need to held it high too??&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #000000;"&gt;Thanks for any help!&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #000000;"&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;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;Message Edited by lazycat on &lt;SPAN class="date_text"&gt;2007-03-06&lt;/SPAN&gt;&lt;SPAN class="time_text"&gt;05:53 PM&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Message Edited by lazycat on &lt;SPAN class="date_text"&gt;2007-03-06&lt;/SPAN&gt;&lt;SPAN class="time_text"&gt;05:54 PM&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 07 Mar 2007 01:34:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Flash-rom-rountines-using-hc908-jk3-PROBLEMS/m-p/125294#M561</guid>
      <dc:creator>lazycat</dc:creator>
      <dc:date>2007-03-07T01:34:24Z</dc:date>
    </item>
    <item>
      <title>Re: Flash rom rountines using hc908 jk3 PROBLEMS</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Flash-rom-rountines-using-hc908-jk3-PROBLEMS/m-p/125295#M562</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Hello,&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;The ROM routines cannot be single-stepped during debug.&amp;nbsp; And there is really little point in attempting to do so, since you can't alter anything.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Even if the PRGRNGE and ERARNGE routines were to be transfered to RAM, it is stll not a good idea to single-step them.&amp;nbsp; These routines have critical timing requirements, and you could risk damaging the flash memory.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;To&amp;nbsp;call these routines from within your own code, it is not necessary to be in monitor mode, so the application of the external&amp;nbsp;high voltage is unnecessary.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Regards,&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Mac&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 07 Mar 2007 13:26:22 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Flash-rom-rountines-using-hc908-jk3-PROBLEMS/m-p/125295#M562</guid>
      <dc:creator>bigmac</dc:creator>
      <dc:date>2007-03-07T13:26:22Z</dc:date>
    </item>
    <item>
      <title>Re: Flash rom rountines using hc908 jk3 PROBLEMS</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Flash-rom-rountines-using-hc908-jk3-PROBLEMS/m-p/125296#M563</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hi lazycat,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Further to what Mac has said...&lt;/DIV&gt;&lt;DIV&gt;The high voltage on reset is purely a method to get into monitor mode with a non-blank device.&lt;/DIV&gt;&lt;DIV&gt;It is NOT (as I believe you may be confusing it with) a FLASH programming voltage.&lt;/DIV&gt;&lt;DIV&gt;Reset would just be logic high while you are programming using the ROM routines.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 07 Mar 2007 14:55:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Flash-rom-rountines-using-hc908-jk3-PROBLEMS/m-p/125296#M563</guid>
      <dc:creator>peg</dc:creator>
      <dc:date>2007-03-07T14:55:58Z</dc:date>
    </item>
    <item>
      <title>Re: Flash rom rountines using hc908 jk3 PROBLEMS</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Flash-rom-rountines-using-hc908-jk3-PROBLEMS/m-p/125297#M564</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;hey Thank you peg and BIGMAC!!!&lt;/DIV&gt;&lt;DIV&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;But i got another question haha,, do the clock need to be set at 9.8MHZ to the ROM ROUTINES?&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;I keep getting the "illegal address error caused a reset" What&amp;nbsp;are the possible&amp;nbsp;errors that may caused&amp;nbsp;it?&amp;nbsp;Even if i am not using the ROM ROUTINES to program, i still get the same message.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;and last question haha..&amp;nbsp;&amp;nbsp;&amp;nbsp; I&amp;nbsp; downloaded and use the code&amp;nbsp;of AN2504 but&amp;nbsp;still&amp;nbsp;the same&amp;nbsp;illegal message happens.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Thanks for any help and reply!&lt;/DIV&gt;&lt;P&gt;Message Edited by lazycat on &lt;SPAN class="date_text"&gt;2007-03-08&lt;/SPAN&gt;&lt;SPAN class="time_text"&gt;01:23 AM&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 Mar 2007 09:21:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Flash-rom-rountines-using-hc908-jk3-PROBLEMS/m-p/125297#M564</guid>
      <dc:creator>lazycat</dc:creator>
      <dc:date>2007-03-08T09:21:13Z</dc:date>
    </item>
    <item>
      <title>Re: Flash rom rountines using hc908 jk3 PROBLEMS</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Flash-rom-rountines-using-hc908-jk3-PROBLEMS/m-p/125298#M565</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hi lazycat,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;The CPU speed is one of the parameters passed to the ROM routine in the RAM array, so, no you don't need to programme at 9.8MHz. But you do need to tell it what the speed is.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;The illegal address reset means that your code (or the ROM code) has jumped to an address that is out of the memory map. Are you feeding the parameters to the ROM routines correctly?&lt;/DIV&gt;&lt;DIV&gt;Have you read AN2874?&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 Mar 2007 09:34:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Flash-rom-rountines-using-hc908-jk3-PROBLEMS/m-p/125298#M565</guid>
      <dc:creator>peg</dc:creator>
      <dc:date>2007-03-08T09:34:04Z</dc:date>
    </item>
    <item>
      <title>Re: Flash rom rountines using hc908 jk3 PROBLEMS</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Flash-rom-rountines-using-hc908-jk3-PROBLEMS/m-p/125299#M566</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;DIV&gt;Hey thanks alot peg,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;But i think i need to trouble&amp;nbsp; you again sorry . I have read AN2874 and also used the code for debugging but it encountered the same message too. I am currently using Motrola Modular evaluation system(MMEVS) for dubugging.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Is it that when u debug and check the memory where it is intended to be erased, it will read all ff??&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;During this period i tried&amp;nbsp; using the method without rom routines but it encountered the same problem.&lt;/DIV&gt;&lt;DIV&gt;I think it is due to my carelessness or limited knowledge haha .Below is my code thanks!&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;*******************************************************************************************************&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;#include &amp;lt;hidef.h&amp;gt; /* for EnableInterrupts macro */&lt;BR /&gt;#include &amp;lt;MC68HC908JK3.h&amp;gt; /* include peripheral declarations */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;void initMCU(void);&lt;BR /&gt;void initTimer(void);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;unsigned char *address_flag;&lt;BR /&gt;unsigned int startadd;&lt;/DIV&gt;&lt;DIV&gt;unsigned char *addresserase_flag;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;unsigned int add;&lt;BR /&gt;unsigned char cycle;&lt;BR /&gt;unsigned char READ;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;/**********************/&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&amp;nbsp;#pragma CODE_SEG ToCopyToRAM&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;void flash_erase(void) {&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;FLBPR= 0XFF;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;FLCR=0x02;&amp;nbsp;&amp;nbsp; //set erase bit&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;READ = FLBPR;&lt;/DIV&gt;&lt;DIV&gt;//&amp;nbsp;FLCR=0x02;&amp;nbsp;&amp;nbsp; //clear mass bit&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;addresserase_flag=(unsigned char*)0xFBDF ;&lt;BR /&gt;&amp;nbsp;*addresserase_flag = 0;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;asm{&lt;BR /&gt;&amp;nbsp;ldx #7&lt;BR /&gt;loop1:&amp;nbsp;&lt;BR /&gt;&amp;nbsp;dbnzx loop1 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//(10us)&lt;BR /&gt;&amp;nbsp;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;FLCR=0x0A;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //set hven bit&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;asm {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ldx&amp;nbsp; #16400&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;tloop :&amp;nbsp;&lt;BR /&gt;&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;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dbnzx tloop&amp;nbsp;//(4ms)&lt;BR /&gt;&amp;nbsp;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;FLCR=0x08;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //clear erase&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;asm{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;ldx #4&lt;BR /&gt;&amp;nbsp;loop2:&lt;BR /&gt;&amp;nbsp;dbnzx loop2 ;&amp;nbsp;&amp;nbsp; //(5us)&lt;BR /&gt;&amp;nbsp;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;FLCR=0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //clear hven bit&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;asm{&lt;BR /&gt;&amp;nbsp;ldx #1&lt;BR /&gt;loop3:&lt;BR /&gt;&amp;nbsp;dbnzx loop3;&amp;nbsp;&amp;nbsp;&amp;nbsp;//(1us)&lt;BR /&gt;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;}&lt;BR /&gt;#pragma CODE_SEG DEFAULT&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;extern char __SEG_START_ToCopyToRAM[];&lt;BR /&gt;extern char __SEG_SIZE_ToCopyToRAM[];&lt;/DIV&gt;&lt;DIV&gt;void flash_erase(void) ;&lt;BR /&gt;#define Start_Copy_In_RAM&amp;nbsp; __SEG_START_ToCopyToRAM&lt;BR /&gt;#define Size_Copy_In_RAM&amp;nbsp; __SEG_SIZE_ToCopyToRAM&lt;/DIV&gt;&lt;DIV&gt;void CopyInRAM(void)&lt;/DIV&gt;&lt;DIV&gt;{&lt;BR /&gt;&amp;nbsp;char *srcPtr, *dstPtr;&lt;BR /&gt;&amp;nbsp;int count2;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;srcPtr = (char*)Start_Copy_In_RAM;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;dstPtr = (char*)&amp;amp;flash_erase;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;for (count2 = 0; count2&amp;lt; (int) Size_Copy_In_RAM;&lt;BR /&gt;&amp;nbsp;count2++, dstPtr++, srcPtr++) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;*dstPtr = *srcPtr;&lt;BR /&gt;&amp;nbsp;}&lt;BR /&gt;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;//**********************************************************************************************&lt;BR /&gt;//Timer Initialisation&lt;BR /&gt;//**********************************************************************************************&lt;/DIV&gt;&lt;DIV&gt;/*void initTimer(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;TSC = 0x20;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;TMODH = 0x00;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;TMODL = 0x10;&amp;nbsp; //ms&lt;BR /&gt;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*/&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;//**********************************************************************************************&lt;BR /&gt;//Main Function&lt;BR /&gt;//**********************************************************************************************&lt;/DIV&gt;&lt;DIV&gt;void main(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;initMCU();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//initTimer();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;// INTSCR|=0x06;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //BR: Clear the IRQ latch; Disable IRQ INT&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;EnableInterrupts;&lt;BR /&gt;&amp;nbsp;__RESET_WATCHDOG();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Note as of now the COP module is disabled&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;&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;TSC_TSTOP = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //active timer&lt;BR /&gt;&amp;nbsp;TSC_TOIE = 1;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;DisableInterrupts;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;CopyInRAM();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;flash_erase();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;EnableInterrupts;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;for(;&lt;IMG alt=":smileywink:" class="emoticon emoticon-smileywink" id="smileywink" src="http://freescale.i.lithium.com/i/smilies/16x16_smiley-wink.gif" title="Smiley Wink" /&gt; ;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;}&lt;BR /&gt;//**********************************************************************************************&lt;BR /&gt;//Initialisation&lt;BR /&gt;//**********************************************************************************************&lt;/DIV&gt;&lt;DIV&gt;void initMCU(void) {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;DisableInterrupts;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Disable interrupts&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;CONFIG1=0x11;//Disabled Power to LVI module, COP enabled&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;&lt;BR /&gt;&amp;nbsp;// 0x09 LVI enabled, 5V LVI;// 0x01 LVI enabled + COP disabled, 3V LVI; // 0x39 LVI disabled + COP disabled&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;// 0x00, LVI 3V, COP enabled&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;//BR: COP disabled first,&amp;nbsp; LVI is enabled (mazm)&amp;nbsp; bit7: 0011 1001 bit1&lt;BR /&gt;&amp;nbsp;// Out of stop mode bit7 - COPRS: COP rate select bit; 1: (8176) BUSCLKX4 cycle to time out; 0&lt;IMG alt=":smileysad:" class="emoticon emoticon-smileysad" id="smileysad" src="http://freescale.i.lithium.com/i/smilies/16x16_smiley-sad.gif" title="Smiley Sad" /&gt; 262128 BUSCLKX4)&lt;BR /&gt;&amp;nbsp;// bit7 - COPRS:In stop mode, Autowakeup period selection ; 1: 2^9 * INTRCOSC&amp;nbsp; ; 0: 2^14 * INTRCOSC&amp;nbsp;&lt;BR /&gt;&amp;nbsp;// bit6 LVISTOP - LVI enable in stop mode ; 0 - Disable ; 1 - Enable;&lt;BR /&gt;&amp;nbsp;// bit5 LVIRSTD -LVI Reset disable bit; 0 - Enable 1- Disable&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;// bit4 - LVIPWRD - LVI Power Disable bit ; 1- Disable ; 0 - Enable&amp;nbsp;&lt;BR /&gt;&amp;nbsp;// bit3 - LVI5OR3 - LVI 5V or 3V Operating mode ; 1 - LVI 5 v; 0 - LVI 3V&lt;BR /&gt;&amp;nbsp;// bit2 - SSREC: Short Stop RECovery bit;&lt;BR /&gt;&amp;nbsp;// bit1 - STOP: Stop instruction enable bit; 1: Enable; 0: Disable&lt;BR /&gt;&amp;nbsp;// bit0 - COPD: COP Disable bit; 1: COP Disable; 0: COP Enable&lt;BR /&gt;&amp;nbsp;// Reset value: 0x00&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;CONFIG2=0x00;&lt;BR /&gt;// Internal oscillator ; IRQ pin disabled ; Reset pin disabled ;&lt;/DIV&gt;&lt;DIV&gt;//&amp;nbsp;&amp;nbsp; Bit 7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;BR /&gt;//&amp;nbsp;&amp;nbsp; IRQPUD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IRQEN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; R&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OSCOPT1&amp;nbsp;&amp;nbsp;&amp;nbsp; OSCOPT0&amp;nbsp;&amp;nbsp;&amp;nbsp; R&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; R&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RSTEN&lt;/DIV&gt;&lt;DIV&gt;//&amp;nbsp; 0-PA2 pullup&amp;nbsp; 1-IRQ in pin&amp;nbsp;&amp;nbsp;00- internal osc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1- reset in pin&lt;BR /&gt;//&amp;nbsp; 1-NO Pullup&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;01- external osc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0- rst not active in pin&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&amp;nbsp;FLBPR=0xFF;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&amp;nbsp;//I/O port Intialization Port A&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;PTA = 0x00;&lt;BR /&gt;&amp;nbsp;PTB = 0x00;&lt;BR /&gt;&amp;nbsp;PTD = 0x00;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;DDRA = 0x01;&lt;BR /&gt;&amp;nbsp;DDRB = 0x01;&lt;BR /&gt;&amp;nbsp;DDRD&amp;nbsp; = 0x01;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;PTAPUE=0x40;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;/DIV&gt;&lt;DIV&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;&lt;/DIV&gt;&lt;DIV&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;&lt;BR /&gt;__RESET_WATCHDOG();&lt;/DIV&gt;&lt;DIV&gt;}&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;THANKS FOR ANY HELP&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 Mar 2007 15:13:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Flash-rom-rountines-using-hc908-jk3-PROBLEMS/m-p/125299#M566</guid>
      <dc:creator>lazycat</dc:creator>
      <dc:date>2007-03-08T15:13:05Z</dc:date>
    </item>
    <item>
      <title>Re: Flash rom rountines using hc908 jk3 PROBLEMS</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Flash-rom-rountines-using-hc908-jk3-PROBLEMS/m-p/125300#M567</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;hello all,&lt;/DIV&gt;&lt;DIV&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;after editing the prm file of the above code, there is now&amp;nbsp;no illegal message but a new one&amp;nbsp;popped out&amp;nbsp;"write protection" haha, but i thought i had already set the flbpr to ff.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Thanks for any reply!&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 Mar 2007 15:54:41 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Flash-rom-rountines-using-hc908-jk3-PROBLEMS/m-p/125300#M567</guid>
      <dc:creator>lazycat</dc:creator>
      <dc:date>2007-03-08T15:54:41Z</dc:date>
    </item>
    <item>
      <title>Re: Flash rom rountines using hc908 jk3 PROBLEMS</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Flash-rom-rountines-using-hc908-jk3-PROBLEMS/m-p/125301#M568</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Hi, LazyCat:&lt;BR /&gt;&lt;BR /&gt;You are using an MMEVS! Well that's a horse of a different color.&lt;BR /&gt;&lt;BR /&gt;I was assuming, as Mac and Peg probably were, that you were running inside your chip. But the MMEVS does not work that way.&lt;BR /&gt;&lt;BR /&gt;When you debug with an MMEVS or MMDS, there is no flash. The code executes out of ram on the MMEVS. The MMEVS knows that the flash portion of the memory space is read-only, so if you try to write to that memory from your code, the MMEVS firmware generates a write-protect violation. There is no way around that, except to not write there.&lt;BR /&gt;&lt;BR /&gt;The MMEVS cannot emulate flash either, and I had to build a lot of hoops, and then jump through them in order to get my flash-bootstrap routines debugged. The main hoop was to use conditional assembly statements to remove the actual write to the flash address space when running the bootstrap in the emulator. This got me around the write-protect violations.&lt;BR /&gt;&lt;BR /&gt;When it comes time to run in real silicon, I don't think that there is any way that you can program the flash from an MMEVS or an MMDS. I use a separate programmer (HC08PGMR) to put my flash-bootstrap into the microcontrollers before having the boards assembled. I then download the final firmware through the serial port, once the boards are tested.&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 Mar 2007 17:07:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Flash-rom-rountines-using-hc908-jk3-PROBLEMS/m-p/125301#M568</guid>
      <dc:creator>rocco</dc:creator>
      <dc:date>2007-03-08T17:07:46Z</dc:date>
    </item>
    <item>
      <title>Re: Flash rom rountines using hc908 jk3 PROBLEMS</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Flash-rom-rountines-using-hc908-jk3-PROBLEMS/m-p/125302#M569</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hi lazycat,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Well when I saw the MMEVS I thought "well that could have something to do with it, where's rocco?"&lt;/DIV&gt;&lt;DIV&gt;Low and behold, he pops up and nails it.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;As for some other points. Erased FLASH reads as $FF.&lt;/DIV&gt;&lt;DIV&gt;Its no good simply writing to FLBPR its implemented in FLASH. While testing it would be easier just to start with unprotected FLASH anyway. When you get it going then protect it and try more.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 Mar 2007 17:31:43 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Flash-rom-rountines-using-hc908-jk3-PROBLEMS/m-p/125302#M569</guid>
      <dc:creator>peg</dc:creator>
      <dc:date>2007-03-08T17:31:43Z</dc:date>
    </item>
    <item>
      <title>Re: Flash rom rountines using hc908 jk3 PROBLEMS</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Flash-rom-rountines-using-hc908-jk3-PROBLEMS/m-p/125303#M570</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hi all,&lt;/DIV&gt;&lt;DIV&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;THANKS&amp;nbsp; pegs and rocco! now i know what is the problem. ya btw can M68ICS08jk simulator emulate the flash &amp;nbsp;fully coz i happen to find 1 &lt;IMG alt=":smileyhappy:" class="emoticon emoticon-smileyhappy" id="smileyhappy" src="http://freescale.i.lithium.com/i/smilies/16x16_smiley-happy.gif" title="Smiley Happy" /&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Thanks for any reply!&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 09 Mar 2007 15:16:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Flash-rom-rountines-using-hc908-jk3-PROBLEMS/m-p/125303#M570</guid>
      <dc:creator>lazycat</dc:creator>
      <dc:date>2007-03-09T15:16:07Z</dc:date>
    </item>
    <item>
      <title>Re: Flash rom rountines using hc908 jk3 PROBLEMS</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Flash-rom-rountines-using-hc908-jk3-PROBLEMS/m-p/125304#M571</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hi all,&lt;/DIV&gt;&lt;DIV&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;Thanks rocco peg and big mac, i finally can program and erase successfully using M68ICS08jk/jl&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;THANKS for the help!&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 12 Mar 2007 23:07:14 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Flash-rom-rountines-using-hc908-jk3-PROBLEMS/m-p/125304#M571</guid>
      <dc:creator>lazycat</dc:creator>
      <dc:date>2007-03-12T23:07:14Z</dc:date>
    </item>
  </channel>
</rss>

