<?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>CodeWarrior for MCUのトピックRe: AW60 EEPROM Emulation in assembler</title>
    <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/AW60-EEPROM-Emulation-in-assembler/m-p/203345#M7724</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Hello mingyee,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;The reason nothing is allocated&amp;nbsp;within the RAM segment is due to the fact that all your variables have been assigned to the Z_RAM segment, as you specified.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;How do you know that the erase routine is working?&amp;nbsp; If you start out with contents 0xFF the&amp;nbsp;erased state, and finish with contents 0xFF, this doesn't prove anything.&amp;nbsp; I am not clear about&amp;nbsp;your initialisation of the ICG module, and what bus frequency you actually have.&amp;nbsp; Are you making use of the FLASH_CLOCK equate within your initialisation code?&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Within my simple test code, I did not check for the occurrence of errors&amp;nbsp;at the conclusion of the erase and programming routines.&amp;nbsp; So it would be a good idea to place a break point at the termination of each subroutine, in turn, and check the state of the accumulator at this point.&amp;nbsp; A non-zero value would indicate that an error has occurred.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Perhaps you should post a .zip of the whole CW project as it currently stands.&amp;nbsp; For an assembly only project, having the compiler/assembler generate a listing file is often very useful.&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;BR /&gt;&lt;BR /&gt;Message Edited by bigmac on &lt;SPAN class="date_text"&gt;2008-03-18&lt;/SPAN&gt; &lt;SPAN class="time_text"&gt;10:03 PM&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 18 Mar 2008 17:59:22 GMT</pubDate>
    <dc:creator>bigmac</dc:creator>
    <dc:date>2008-03-18T17:59:22Z</dc:date>
    <item>
      <title>AW60 EEPROM Emulation in assembler</title>
      <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/AW60-EEPROM-Emulation-in-assembler/m-p/203338#M7717</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;DIV&gt;Hi, I've seen a lot of EEPROM emulation example in C. I'm trying to do it in assembler.&lt;BR /&gt;I'm currently using CodeWarrior 6.0 on MS Windows Vista platform &amp;amp; the MCU i am using is AW60.&lt;BR /&gt;I'm trying to write the flash emulation routine above based on the flow chart show on MC9S08AW60 reference manual page 53. I've attached my code as below.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV class="msg_source_code"&gt;&lt;DIV class="text_smallest"&gt;Code:&lt;/DIV&gt;&lt;PRE&gt;BLANKCHK&amp;nbsp;&amp;nbsp;&amp;nbsp; equ&amp;nbsp;&amp;nbsp;&amp;nbsp; $05BYTEPG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; equ&amp;nbsp;&amp;nbsp;&amp;nbsp; $20BYTEBURSTPG equ&amp;nbsp;&amp;nbsp;&amp;nbsp; $25PAGEERASE&amp;nbsp;&amp;nbsp; equ&amp;nbsp;&amp;nbsp;&amp;nbsp; $40MASSERASE&amp;nbsp;&amp;nbsp; equ&amp;nbsp;&amp;nbsp;&amp;nbsp; $41;OK&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; equ&amp;nbsp;&amp;nbsp;&amp;nbsp; $00;ERR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; equ&amp;nbsp;&amp;nbsp;&amp;nbsp; $01FADDR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; equ&amp;nbsp;&amp;nbsp;&amp;nbsp; $8000CARDADR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ds&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1FLCMD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ds&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 ;--------------------;Flash Erase/Program;--------------------;acca = adr; accx = cmdflash&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; psha&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pshx&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; brclr&amp;nbsp; FSTAT_FACCERR,FSTAT,flash1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;FACCERR = 0—&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bset&amp;nbsp;&amp;nbsp; FSTAT_FACCERR,FSTAT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;clr errorflash1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bset&amp;nbsp;&amp;nbsp; FSTAT_FCBEF,FSTAT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;set FCBEF&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lda&amp;nbsp;&amp;nbsp;&amp;nbsp; CARDADR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;load buffer adr &amp;amp; data&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sta&amp;nbsp;&amp;nbsp;&amp;nbsp; FADDR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldx&amp;nbsp;&amp;nbsp;&amp;nbsp; FLCMD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;write cmd to FCMD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sta&amp;nbsp;&amp;nbsp;&amp;nbsp; FCMD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nop&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;wait 7 cycle&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nop&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nop&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nop&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nop&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nop&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nop&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bset&amp;nbsp;&amp;nbsp; FSTAT_FCBEF,FSTAT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;set FCBEF&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nop&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;wait 7 cycle&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nop&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nop&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nop&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nop&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nop&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nop&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; brset&amp;nbsp; FSTAT_FACCERR,FSTAT,flashend&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;if FPVIOL = 1 –&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; brset&amp;nbsp; FSTAT_FPVIOL,FSTAT,flashend&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;if FACCERR = 1 ˜&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; feed_watchdog&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; brclr&amp;nbsp; FSTAT_FCCF,FSTAT,*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;if FCCF = 0 ™&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; flashend&amp;nbsp;&amp;nbsp;&amp;nbsp; pulx&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pula&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rts&lt;/PRE&gt;&lt;/DIV&gt;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;Could you please advise on my code?&lt;BR /&gt;Thanks.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Regards,&lt;BR /&gt;MY&lt;/DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 15 Mar 2008 19:24:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-for-MCU/AW60-EEPROM-Emulation-in-assembler/m-p/203338#M7717</guid>
      <dc:creator>mylim</dc:creator>
      <dc:date>2008-03-15T19:24:10Z</dc:date>
    </item>
    <item>
      <title>Re: AW60 EEPROM Emulation in assembler</title>
      <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/AW60-EEPROM-Emulation-in-assembler/m-p/203339#M7718</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;DIV&gt;Hello MY,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;There appears to be numerous issues with your posted code.&amp;nbsp; The main ones appear to be that you are attempting to use bit manipulation instructions for high page registers.&amp;nbsp; The bit manipulation instructions are applicable only to zero page registers, so alternative&amp;nbsp;"bit mask" methods will need to be used.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Additionally,&amp;nbsp;you do not appear&amp;nbsp;to be running critical code associated with erase and programming operations, from within RAM.&amp;nbsp; This is necessary because the flash array become inaccessible during the erase and programming procedure.&amp;nbsp; Two alternatives are possible - to use the stack for the special code, or to use a fixed RAM location.&amp;nbsp;&amp;nbsp;The attached code uses the latter method.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;This code has&amp;nbsp;been adapted from both the following recent&amp;nbsp;posts, but is&amp;nbsp;presented as relocatable assembler code, rather than using inline assembly within C code.&lt;/DIV&gt;&lt;DIV&gt;&lt;A href="http://forums.freescale.com/freescale/board/message?board.id=8BITCOMM&amp;amp;thread.id=9434" target="_blank"&gt;&lt;FONT color="#017BBA"&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;A href="http://forums.freescale.com/freescale/board/message?board.id=8BITCOMM&amp;amp;thread.id=9434" target="test_blank"&gt;http://forums.freescale.com/freescale/board/message?board.id=8BITCOMM&amp;amp;thread.id=9434&lt;/A&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;A href="http://forums.freescale.com/freescale/board/message?board.id=8BITCOMM&amp;amp;thread.id=9604" target="_blank"&gt;&lt;FONT color="#017BBA"&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;A href="http://forums.freescale.com/freescale/board/message?board.id=8BITCOMM&amp;amp;thread.id=9604" target="test_blank"&gt;http://forums.freescale.com/freescale/board/message?board.id=8BITCOMM&amp;amp;thread.id=9604&lt;/A&gt;&amp;nbsp;&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;DIV&gt;Note that the attached file has been updated from that originally posted.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;Message Edited by bigmac on &lt;SPAN class="date_text"&gt;2008-03-17&lt;/SPAN&gt; &lt;SPAN class="time_text"&gt;05:14 PM&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.freescale.com/files/community_files/CW816COMM/4029_S08_Flash_ASM.zip" rel="nofollow" target="_self"&gt;S08_Flash_ASM.zip&lt;/A&gt;&lt;/P&gt;&lt;DIV class="message-edit-history"&gt;&lt;SPAN class="edit-author"&gt;Message Edited by t.dowe on&lt;/SPAN&gt; &lt;SPAN class="local-date"&gt;2009-10-22&lt;/SPAN&gt; &lt;SPAN class="local-time"&gt;09:32 AM&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 17 Mar 2008 13:08:48 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-for-MCU/AW60-EEPROM-Emulation-in-assembler/m-p/203339#M7718</guid>
      <dc:creator>bigmac</dc:creator>
      <dc:date>2008-03-17T13:08:48Z</dc:date>
    </item>
    <item>
      <title>Re: AW60 EEPROM Emulation in assembler</title>
      <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/AW60-EEPROM-Emulation-in-assembler/m-p/203340#M7719</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hi Bigmac,&lt;/DIV&gt;&lt;DIV&gt;Thanks for the sample code.&lt;/DIV&gt;&lt;DIV&gt;It makes them clearer to me.&lt;/DIV&gt;&lt;DIV&gt;I have another question, I tried on my AW60 board, it seems to keep resetting.&lt;/DIV&gt;&lt;DIV&gt;Is it due to the RomStart location?&lt;/DIV&gt;&lt;DIV&gt;Am i able to reallocate another location instead of using RomStart?&lt;/DIV&gt;&lt;DIV&gt;Thanks.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Regards,&lt;/DIV&gt;&lt;DIV&gt;mingyee&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 17 Mar 2008 15:04:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-for-MCU/AW60-EEPROM-Emulation-in-assembler/m-p/203340#M7719</guid>
      <dc:creator>mylim</dc:creator>
      <dc:date>2008-03-17T15:04:13Z</dc:date>
    </item>
    <item>
      <title>Re: AW60 EEPROM Emulation in assembler</title>
      <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/AW60-EEPROM-Emulation-in-assembler/m-p/203341#M7720</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hello mingyee,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I chose the ROMStart location for the NV data storage, to keep it below the start position&amp;nbsp;for the code. This means that the data storage location can remain unprotected, while the flash above, including the program code, can be write protected.&amp;nbsp; However, another page can be used by changing the NV_DATA equate to another address, and suitably modifying the .prm file.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Did you substitute the project.prm file generated by the project wizard, with the one that I attached?&amp;nbsp; The modified one&amp;nbsp;makes allowance for the NV_DATA position, so that the code does not overlap. It also specifies a block of RAM for the RAM based sub-routine.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Check the .map file for the project to confirm that the code is suitably positioned.above the NV_DATA flash page, and that no variables overlap the RAM sub-routine.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Note that the main.asm file, used as an example, is not complete.&amp;nbsp; There is no I/O initialisation, and the ICG module will need to be initialised.&amp;nbsp; Once the bus frequency is determined, this figure will be required to correctly&amp;nbsp;setup the flash clock&amp;nbsp;frequency.&amp;nbsp; If you are using the FLASH_CLOCK equate for this purpose (as shown in the sample code), the BUS_CLOCK equate within the file S08_Flash.inc will need to be ammended for the actual bus frequency in&amp;nbsp;use.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;If resets still occur after you have checked, and if necessary made any corrections,&amp;nbsp;you will need to ascertain their cause by examining the SRS register during debug, and attempting to identify the code where the reset occurs..&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>Mon, 17 Mar 2008 20:54:54 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-for-MCU/AW60-EEPROM-Emulation-in-assembler/m-p/203341#M7720</guid>
      <dc:creator>bigmac</dc:creator>
      <dc:date>2008-03-17T20:54:54Z</dc:date>
    </item>
    <item>
      <title>Re: AW60 EEPROM Emulation in assembler</title>
      <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/AW60-EEPROM-Emulation-in-assembler/m-p/203342#M7721</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hi Bigmac,&lt;/DIV&gt;&lt;DIV&gt;I've change the project.prm file to they one attached.&lt;/DIV&gt;&lt;DIV&gt;This time i get this error message;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&lt;BLOCKQUOTE&gt;&lt;DIV class="msg_source_code"&gt;&lt;DIV class="text_smallest"&gt;Link Error : L1119: Vector allocated at absolute address 0xFFFE overlaps with sections placed in segment .absSeg2&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&lt;BR /&gt;&amp;nbsp;I've done my code as below.&lt;/P&gt;&lt;P&gt;I've gone through the help file &amp;amp; i found this example.&lt;/P&gt;&lt;DIV class="msg_source_code"&gt;&lt;DIV class="text_smallest"&gt;Code:&lt;/DIV&gt;&lt;PRE&gt; ERROR: Vector allocated at absolute address 0xFFFE overlaps with sections placed in segment ROM_2
 LINK  fibo.abs
 NAMES fibo.o startup.o END

 SEGMENTS
   MY_RAM = READ_WRITE 0x800 TO 0x80F;
   MY_ROM = READ_ONLY 0x810 TO 0xAFF;
   MY_STK = READ_WRITE 0xB00 TO 0xBFF;
   ROM_2 = READ_ONLY 0xFF00 TO 0xFFFF;
 END
 PLACEMENT
   .text  INTO MY_ROM;
   .data  INTO MY_RAM;
   .stack INTO MY_STK;
   .rodata INTO ROM_2;
 END

/* Set reset vector on _Startup */
 VECTOR ADDRESS 0xFFFE _Startup

*********************************************************************
 LINK  fibo.abs
 NAMES fibo.o startup.o END

 SEGMENTS
   MY_RAM = READ_WRITE 0x800 TO 0x80F;
   MY_ROM = READ_ONLY 0x810 TO 0xAFF;
   MY_STK = READ_WRITE 0xB00 TO 0xBFF;
   ROM_2 = READ_ONLY 0xC00 TO 0xCFF;
 END
 PLACEMENT
   .text  INTO MY_ROM;
   .data  INTO MY_RAM;
   .stack INTO MY_STK;
   .rodata INTO ROM_2;
 END

/* Set reset vector on _Startup */
 VECTOR ADDRESS 0xFFFE _Startup


&lt;/PRE&gt;&lt;/DIV&gt;&lt;P&gt;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;I tried playing aroound with the ROM2 it still show the same error message.&lt;/P&gt;&lt;P&gt;Please advise.&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards,MY&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.freescale.com/files/community_files/CW816COMM/4038_Flash_S08.zip" rel="nofollow noopener noreferrer" target="_self"&gt;Flash_S08.zip&lt;/A&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV class="message-edit-history"&gt;&lt;SPAN class="edit-author"&gt;Message Edited by t.dowe on&lt;/SPAN&gt; &lt;SPAN class="local-date"&gt;2009-10-22&lt;/SPAN&gt; &lt;SPAN class="local-time"&gt;09:31 AM&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 18 Mar 2008 11:42:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-for-MCU/AW60-EEPROM-Emulation-in-assembler/m-p/203342#M7721</guid>
      <dc:creator>mylim</dc:creator>
      <dc:date>2008-03-18T11:42:32Z</dc:date>
    </item>
    <item>
      <title>Re: AW60 EEPROM Emulation in assembler</title>
      <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/AW60-EEPROM-Emulation-in-assembler/m-p/203343#M7722</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Hello mingyee,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;This error suggests that you have defined the contents of the reset vector somewhere&amp;nbsp;within your code.&amp;nbsp; This is OK, but you will need to remove (comment out) the similar definition from the last line of the .PRM file.&amp;nbsp; There must be only a single definition.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Additionally, the MY_ROM segment now specifies a range within RAM.&amp;nbsp; This is wrong.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Again, I would suggest that you double check the map file for the project, to verify that every subroutine and every variable is located at an appropriate address, and does not overlap either the RAM used for the RAM based sub-routine, or the flash block used for non-volatile data.&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;BR /&gt;&lt;BR /&gt;Message Edited by bigmac on &lt;SPAN class="date_text"&gt;2008-03-18&lt;/SPAN&gt; &lt;SPAN class="time_text"&gt;06:33 PM&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 18 Mar 2008 14:16:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-for-MCU/AW60-EEPROM-Emulation-in-assembler/m-p/203343#M7722</guid>
      <dc:creator>bigmac</dc:creator>
      <dc:date>2008-03-18T14:16:46Z</dc:date>
    </item>
    <item>
      <title>Re: AW60 EEPROM Emulation in assembler</title>
      <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/AW60-EEPROM-Emulation-in-assembler/m-p/203344#M7723</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hi Bigmac,&lt;/DIV&gt;&lt;DIV&gt;After I comment out the last line in the .prm file it works.&lt;/DIV&gt;&lt;DIV&gt;//VECTOR 0 _Startup&lt;/DIV&gt;&lt;DIV&gt;It's able to compile&amp;nbsp;&amp;amp; able to erase the Flash but still unable to program the Flash.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;As for the MY_ROM part, I dont quite understand.&lt;/DIV&gt;&lt;DIV&gt;You are still refering to the project.prm file?&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;$0000 - $006F direct page register&lt;/DIV&gt;&lt;DIV&gt;$0070 - $086F RAM&lt;/DIV&gt;&lt;DIV&gt;$0870 - $17FF Flash&lt;/DIV&gt;&lt;DIV&gt;$1800 - $185F High Page Register&lt;/DIV&gt;&lt;DIV&gt;$1860 - $FFFF Flash&lt;DIV class="msg_source_code"&gt;&lt;DIV class="text_smallest"&gt;Code:&lt;/DIV&gt;&lt;PRE&gt;    Z_RAM        =  READ_WRITE   0x0070 TO 0x00FF;    RAM1         =  READ_WRITE   0x0100 TO 0x010F; /* Reserve for RAM based code */    RAM          =  READ_WRITE   0x0110 TO 0x081F;    SSTACK       =  READ_WRITE   0x0820 TO 0x086F; /* Reserve for stack */    NVDATA       =  READ_ONLY    0x1860 TO 0x19FF; /* Reserve for NV data */    ROM          =  READ_ONLY    0x1A00 TO 0xFFAF;    ROM1         =  READ_ONLY    0x0870 TO 0x17FF;    ROM2         =  READ_ONLY    0xFFC0 TO 0xFFCB;&lt;/PRE&gt;&lt;/DIV&gt;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;As the given memory allocation, it seems they fall in the correct location.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;As the project.map portion,&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="msg_source_code"&gt;&lt;DIV class="text_smallest"&gt;Code:&lt;/DIV&gt;&lt;PRE&gt;*********************************************************************************************SECTION-ALLOCATION SECTIONSection Name                    Size  Type     From       To       Segment---------------------------------------------------------------------------------------------MY_ZEROPAGE                      103   R/W       0x70       0xD6   Z_RAMMCUinit.asm__ORG00001              1     R     0xFFBD     0xFFBD   .absSeg0MCUinit.asm__ORG00002              1     R     0xFFBF     0xFFBF   .absSeg1MCUinit.asm__ORG00003             52     R     0xFFCC     0xFFFF   .absSeg2.init                            101     R     0x1A00     0x1A64   ROMCODE_SECT                        372     R     0x1A65     0x1BD8   ROMDEFAULT_CODE                     103     R     0x1BD9     0x1C3F   ROM.stack                            80   R/W      0x820      0x86F   SSTACKSummary of section sizes per section type:READ_ONLY (R):         276 (dec:      630)READ_WRITE (R/W):       B7 (dec:      183)&lt;/PRE&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&amp;nbsp;There are not address fall&amp;nbsp;into the RAM section except the&amp;nbsp;ZEROPAGE.&lt;/DIV&gt;&lt;DIV&gt;I'm really confused.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Thanks.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;regards,&lt;/DIV&gt;&lt;DIV&gt;MY&lt;BR /&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 18 Mar 2008 15:22:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-for-MCU/AW60-EEPROM-Emulation-in-assembler/m-p/203344#M7723</guid>
      <dc:creator>mylim</dc:creator>
      <dc:date>2008-03-18T15:22:00Z</dc:date>
    </item>
    <item>
      <title>Re: AW60 EEPROM Emulation in assembler</title>
      <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/AW60-EEPROM-Emulation-in-assembler/m-p/203345#M7724</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Hello mingyee,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;The reason nothing is allocated&amp;nbsp;within the RAM segment is due to the fact that all your variables have been assigned to the Z_RAM segment, as you specified.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;How do you know that the erase routine is working?&amp;nbsp; If you start out with contents 0xFF the&amp;nbsp;erased state, and finish with contents 0xFF, this doesn't prove anything.&amp;nbsp; I am not clear about&amp;nbsp;your initialisation of the ICG module, and what bus frequency you actually have.&amp;nbsp; Are you making use of the FLASH_CLOCK equate within your initialisation code?&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Within my simple test code, I did not check for the occurrence of errors&amp;nbsp;at the conclusion of the erase and programming routines.&amp;nbsp; So it would be a good idea to place a break point at the termination of each subroutine, in turn, and check the state of the accumulator at this point.&amp;nbsp; A non-zero value would indicate that an error has occurred.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Perhaps you should post a .zip of the whole CW project as it currently stands.&amp;nbsp; For an assembly only project, having the compiler/assembler generate a listing file is often very useful.&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;BR /&gt;&lt;BR /&gt;Message Edited by bigmac on &lt;SPAN class="date_text"&gt;2008-03-18&lt;/SPAN&gt; &lt;SPAN class="time_text"&gt;10:03 PM&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 18 Mar 2008 17:59:22 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-for-MCU/AW60-EEPROM-Emulation-in-assembler/m-p/203345#M7724</guid>
      <dc:creator>bigmac</dc:creator>
      <dc:date>2008-03-18T17:59:22Z</dc:date>
    </item>
    <item>
      <title>Re: AW60 EEPROM Emulation in assembler</title>
      <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/AW60-EEPROM-Emulation-in-assembler/m-p/203346#M7725</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hi Bigmac,&lt;/DIV&gt;&lt;DIV&gt;The CPU clock is set to external osc 13.56MHz &amp;amp; internal bus clock at 1.695MHz.&lt;/DIV&gt;&lt;DIV&gt;My bus clock is 1695000Hz.&lt;/DIV&gt;&lt;DIV&gt;I've attached my code as a zip file.&lt;/DIV&gt;&lt;DIV&gt;Coiuld you advise wut i 've left out.&lt;/DIV&gt;&lt;DIV&gt;Thanks.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Regards,MY&lt;/DIV&gt;&lt;DIV&gt;&lt;A href="http://www.freescale.com/files/community_files/CW816COMM/4049_1_AW60_flash.zip" rel="nofollow" target="_self"&gt;AW60_flash.zip&lt;/A&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;A href="http://www.freescale.com/files/community_files/CW816COMM/4049_2_bean_CPU.jpg" rel="nofollow" target="_self"&gt;bean_CPU.jpg&lt;/A&gt;&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV class="message-edit-history"&gt;&lt;SPAN class="edit-author"&gt;Message Edited by t.dowe on&lt;/SPAN&gt; &lt;SPAN class="local-date"&gt;2009-10-22&lt;/SPAN&gt; &lt;SPAN class="local-time"&gt;09:30 AM&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 18 Mar 2008 22:34:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-for-MCU/AW60-EEPROM-Emulation-in-assembler/m-p/203346#M7725</guid>
      <dc:creator>mylim</dc:creator>
      <dc:date>2008-03-18T22:34:30Z</dc:date>
    </item>
    <item>
      <title>Re: AW60 EEPROM Emulation in assembler</title>
      <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/AW60-EEPROM-Emulation-in-assembler/m-p/203347#M7726</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hello MY,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;When I first attempted to compile your project, there were errors within the MCUInit sub-routine.&amp;nbsp; It appears that some of the register names, for the ADC module,&amp;nbsp;had been&amp;nbsp;altered to non-standard ones.&amp;nbsp; PE would have initially used the correct names.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Once this problem was corrected, I could see no specific issue with the operation of the code.&amp;nbsp; Some of the code following _Startup is now redundant, since MCUinit already has initialised the FCDIV register, and enabled interrupts.&amp;nbsp; So you now do not need to call the FLASH_INIT sub-routine.&amp;nbsp; The flash clock frequency is probably a little low (for optimum speed), but within the specified limits.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;The ICG module setup pertains to the use of an oscillator module, rather than a crystal.&amp;nbsp; Is this your situation?&amp;nbsp; When you tested the code, I assume that you&amp;nbsp;programmed the&amp;nbsp;code into the actual hardware - you cannot test the flash&amp;nbsp;programming using simulation.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;If you are still having problems, you will need to examine the error status, upon exit from&amp;nbsp;each sub-routine,&amp;nbsp;as I previously outlined.&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, 19 Mar 2008 18:22:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-for-MCU/AW60-EEPROM-Emulation-in-assembler/m-p/203347#M7726</guid>
      <dc:creator>bigmac</dc:creator>
      <dc:date>2008-03-19T18:22:00Z</dc:date>
    </item>
    <item>
      <title>Re: AW60 EEPROM Emulation in assembler</title>
      <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/AW60-EEPROM-Emulation-in-assembler/m-p/203348#M7727</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hi Bigmac,&lt;/DIV&gt;&lt;DIV&gt;i'm using an external crystal. There shouldnt be any concern i presume?&lt;/DIV&gt;&lt;DIV&gt;Previously I tested in simulation mode.&lt;/DIV&gt;&lt;DIV&gt;Meaning it will not work on simulation mode?&lt;/DIV&gt;&lt;DIV&gt;I will only be able to get my AW60 board either today or tomorrow.&lt;/DIV&gt;&lt;DIV&gt;I will be testing with them once i get them.&lt;/DIV&gt;&lt;DIV&gt;Thanks.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Regards,&lt;/DIV&gt;&lt;DIV&gt;MY&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 19 Mar 2008 23:38:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-for-MCU/AW60-EEPROM-Emulation-in-assembler/m-p/203348#M7727</guid>
      <dc:creator>mylim</dc:creator>
      <dc:date>2008-03-19T23:38:00Z</dc:date>
    </item>
    <item>
      <title>Re: AW60 EEPROM Emulation in assembler</title>
      <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/AW60-EEPROM-Emulation-in-assembler/m-p/203349#M7728</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hello MY,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Your code is currently setup for an external oscillator module (with a single clock&amp;nbsp;input pin to the MCU).&amp;nbsp; If you require to use an external crystal, the ICG initialisation code, within MCUInit sub-routine, will need to be altered.&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>Thu, 20 Mar 2008 07:29:43 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-for-MCU/AW60-EEPROM-Emulation-in-assembler/m-p/203349#M7728</guid>
      <dc:creator>bigmac</dc:creator>
      <dc:date>2008-03-20T07:29:43Z</dc:date>
    </item>
    <item>
      <title>Re: AW60 EEPROM Emulation in assembler</title>
      <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/AW60-EEPROM-Emulation-in-assembler/m-p/203350#M7729</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;DIV&gt;Hi Bigmac,&lt;/DIV&gt;&lt;DIV&gt;I've altered my MCU_init as follow.&lt;/DIV&gt;&lt;DIV class="msg_source_code"&gt;&lt;DIV class="text_smallest"&gt;MCU_init:&lt;BR /&gt;&amp;nbsp; ; ### MC9S08AW60_64 "Cpu" init code ...&lt;BR /&gt;&amp;nbsp; ; Common initialization of the write once registers&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; SOPT: COPE=0,COPT=1,STOPE=0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LDA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #$53&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SOPT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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; ; SPMSC1: LVDF=0,LVDACK=0,LVDIE=0,LVDRE=1,LVDSE=1,LVDE=1,BGBE=0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LDA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #$1C&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPMSC1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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; ; SPMSC2: LVWF=0,LVWACK=0,LVDV=0,LVWV=0,PPDF=0,PPDACK=0,PPDC=0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CLRA&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPMSC2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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; ; SMCLK: MPE=0,MCSEL=0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LDA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SMCLK&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #$E8&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SMCLK&lt;BR /&gt;&amp;nbsp; ;&amp;nbsp; System clock initialization&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; ICGC1: HGO=1,RANGE=1,REFS=1,CLKS1=1,CLKS0=1,OSCSTEN=1,LOCD=1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;MOV&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #$FE,ICGC1&lt;/STRONG&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;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; ICGC2: LOLRE=0,MFD2=0,MFD1=0,MFD0=0,LOCRE=0,RFD2=0,RFD1=1,RFD0=1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;MOV&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #$03,ICGC2&amp;nbsp;&lt;/STRONG&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;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; ICGTRM: Initialize internal clock trim from a non volatile memory&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;LDA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $FF&lt;BR /&gt;&lt;/STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ICGTRM&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;I've changed my ICGC1 &amp;amp; ICGC2 according.&lt;/DIV&gt;&lt;DIV&gt;However, I can't init my crystal to 13.56MHz in device initialisation. I'll have to configure to 10MHz.&lt;/DIV&gt;&lt;DIV&gt;I'm still able to program into my AW60.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;The code is able to copy to the RAM (0x100 - 0x10F).&lt;/DIV&gt;&lt;DIV&gt;I'm not sure hot to determine whether the SSTACK at the flash is erased.&lt;/DIV&gt;&lt;DIV&gt;I couldnt program into the flash either.&lt;/DIV&gt;&lt;DIV&gt;I've attached my lastest code for your reference.&lt;/DIV&gt;&lt;DIV&gt;Please advise.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Regards,&lt;/DIV&gt;&lt;DIV&gt;MY&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Message Edited by mingyee on &lt;SPAN class="date_text"&gt;2008-03-20&lt;/SPAN&gt; &lt;SPAN class="time_text"&gt;10:19 AM&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.freescale.com/files/community_files/CW816COMM/4074_1_RAM_Code_After1.jpg" rel="nofollow" target="_self"&gt;RAM_Code_After1.jpg&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.freescale.com/files/community_files/CW816COMM/4074_2_ICGC1_13_56MHz1.jpg" rel="nofollow" target="_self"&gt;ICGC1_13_56MHz1.jpg&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.freescale.com/files/community_files/CW816COMM/4074_3_ICGC1_10MHz1.jpg" rel="nofollow" target="_self"&gt;ICGC1_10MHz1.jpg&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.freescale.com/files/community_files/CW816COMM/4074_4_PAGE_ERASE.jpg" rel="nofollow" target="_self"&gt;PAGE_ERASE.jpg&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.freescale.com/files/community_files/CW816COMM/4074_5_PROG_BYTE_FAILED.jpg" rel="nofollow" target="_self"&gt;PROG_BYTE_FAILED.jpg&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.freescale.com/files/community_files/CW816COMM/4074_6_AW60_flash.zip" rel="nofollow" target="_self"&gt;AW60_flash.zip&lt;/A&gt;&lt;/P&gt;&lt;DIV class="message-edit-history"&gt;&lt;SPAN class="edit-author"&gt;Message Edited by t.dowe on&lt;/SPAN&gt; &lt;SPAN class="local-date"&gt;2009-10-22&lt;/SPAN&gt; &lt;SPAN class="local-time"&gt;09:27 AM&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 20 Mar 2008 17:12:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-for-MCU/AW60-EEPROM-Emulation-in-assembler/m-p/203350#M7729</guid>
      <dc:creator>mylim</dc:creator>
      <dc:date>2008-03-20T17:12:02Z</dc:date>
    </item>
    <item>
      <title>Re: AW60 EEPROM Emulation in assembler</title>
      <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/AW60-EEPROM-Emulation-in-assembler/m-p/203351#M7730</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Hello,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;You now have invalid settings for the ICG module - you are now attempting to use a 13.56 MHz crystal in FEE mode, which is outside the allowable range&amp;nbsp;for the FLL (40 MHz maximum DCO frequency).&amp;nbsp; In all probability, the flash clock&amp;nbsp;will also be&amp;nbsp;outside its allowable range for flash operations.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I would suggest that you carefully examine the data sheet for the AW60 to see how the ICGC1 and ICGC2 registers should be set up to achieve the operation that you requre.&amp;nbsp; Once you know the bus frequency that you will actually have, you can then work out the setting for the FDIV register to give a flash clock frequency somewhere between 150 and 200 kHz.&amp;nbsp; Anything outside this range will mean that the flash operations within your program will not work.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;To test whether the flash erase routine is working, you need to pre-load some data into the NV data block, to be included within the S19 file that is used for programming the device in the first instance.&amp;nbsp; Since this block has an absolute address, a suitable ORG directive can be used, followed by one or more DC.B directives and an associated&amp;nbsp;list of arbitrary byte values to represent this initial data.&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;BR /&gt;&lt;BR /&gt;Message Edited by bigmac on &lt;SPAN class="date_text"&gt;2008-03-20&lt;/SPAN&gt; &lt;SPAN class="time_text"&gt;10:54 PM&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 20 Mar 2008 18:53:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-for-MCU/AW60-EEPROM-Emulation-in-assembler/m-p/203351#M7730</guid>
      <dc:creator>bigmac</dc:creator>
      <dc:date>2008-03-20T18:53:11Z</dc:date>
    </item>
    <item>
      <title>Re: AW60 EEPROM Emulation in assembler</title>
      <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/AW60-EEPROM-Emulation-in-assembler/m-p/203352#M7731</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Hi Bigmac,&lt;/DIV&gt;&lt;DIV&gt;The AW60 board i was given has a 13.56MHz crytal on it.&lt;/DIV&gt;&lt;DIV&gt;I will be skip that &amp;amp; use internal clock instead.&lt;/DIV&gt;&lt;DIV&gt;I have initialise the system clock as follow;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV class="msg_source_code"&gt;&lt;DIV class="text_smallest"&gt;Code:&lt;/DIV&gt;&lt;PRE&gt;  ;  System clock initialization         ; ICGC1: HGO=0,RANGE=1,REFS=0,CLKS1=0,CLKS0=1,OSCSTEN=1,LOCD=0         MOV     #$4C,ICGC1                                                ; ICGC2: LOLRE=0,MFD2=1,MFD1=0,MFD0=1,LOCRE=0,RFD2=0,RFD1=1,RFD0=0         MOV     #$52,ICGC2                                                ; ICGTRM: Initialize internal clock trim from a non volatile memory         LDA     $FFBE        STA     ICGTRM&lt;/PRE&gt;&lt;PRE&gt;  ; ### Init_FLASH init code
        ; FCDIV: DIVLD=0,PRDIV8=1,DIV5=0,DIV4=0,DIV3=0,DIV2=0,DIV1=1,DIV0=0
        LDA     #$42                   ; &lt;STRONG&gt;162kHz&lt;/STRONG&gt;
        STA     FCDIV                  ; Set clock divider
  ; ###
        CLI                            ; Enable interrupts
        RTS&lt;/PRE&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;I will test it when i get the board tomorrow.&lt;/DIV&gt;&lt;DIV&gt;Thanks.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Regards,&lt;/DIV&gt;&lt;DIV&gt;mingyee&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;Message Edited by mingyee on &lt;SPAN class="date_text"&gt;2008-03-21&lt;/SPAN&gt; &lt;SPAN class="time_text"&gt;04:00 PM&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 21 Mar 2008 22:52:19 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-for-MCU/AW60-EEPROM-Emulation-in-assembler/m-p/203352#M7731</guid>
      <dc:creator>mylim</dc:creator>
      <dc:date>2008-03-21T22:52:19Z</dc:date>
    </item>
    <item>
      <title>Re: AW60 EEPROM Emulation in assembler</title>
      <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/AW60-EEPROM-Emulation-in-assembler/m-p/203353#M7732</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hi Bigmac,&lt;/DIV&gt;&lt;DIV&gt;I re-configured the ICG to internal clock (ICGC1 = 0x4c &amp;amp; ICGC2 = 0x52).&lt;/DIV&gt;&lt;DIV&gt;I&amp;nbsp;also pre-loaded&amp;nbsp;some data into address 0x1860 - 0x186F.&lt;/DIV&gt;&lt;DIV&gt;Then i tried to erase.&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;I've gone thru step by step but&amp;nbsp;still couldn't get it erased.&lt;/DIV&gt;&lt;DIV&gt;I've taken printscreen of the steps.&lt;/DIV&gt;&lt;DIV&gt;Could you please&amp;nbsp;help me to look at it see if I've done anything mistake?&lt;/DIV&gt;&lt;DIV&gt;Thanks.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Regards,MY&lt;/DIV&gt;&lt;DIV&gt;&lt;A href="http://www.freescale.com/files/community_files/CW816COMM/4079_1_AW60_flash_.zip" rel="nofollow" target="_self"&gt;AW60_flash_.zip&lt;/A&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;A href="http://www.freescale.com/files/community_files/CW816COMM/4079_2_flash_prob.zip" rel="nofollow" target="_self"&gt;flash_prob.zip&lt;/A&gt;&lt;BR /&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV class="message-edit-history"&gt;&lt;SPAN class="edit-author"&gt;Message Edited by t.dowe on&lt;/SPAN&gt; &lt;SPAN class="local-date"&gt;2009-10-22&lt;/SPAN&gt; &lt;SPAN class="local-time"&gt;09:23 AM&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 23 Mar 2008 10:45:53 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-for-MCU/AW60-EEPROM-Emulation-in-assembler/m-p/203353#M7732</guid>
      <dc:creator>mylim</dc:creator>
      <dc:date>2008-03-23T10:45:53Z</dc:date>
    </item>
    <item>
      <title>Re: AW60 EEPROM Emulation in assembler</title>
      <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/AW60-EEPROM-Emulation-in-assembler/m-p/203354#M7733</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hello MY,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I could not see any specific problem with your current code.&amp;nbsp; You appear to be getting an access error early within the erase function, and this will prevent the erase from completing.&amp;nbsp; You will need to investigate the cause of this error.&amp;nbsp; Look in the datasheet for all the causes of this error, and eliminate them one by one.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I suspect the problem may be the way you are monitoring the operation of the function, with extra register reads occuring during the&amp;nbsp;BDM process.&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, 26 Mar 2008 07:19:59 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-for-MCU/AW60-EEPROM-Emulation-in-assembler/m-p/203354#M7733</guid>
      <dc:creator>bigmac</dc:creator>
      <dc:date>2008-03-26T07:19:59Z</dc:date>
    </item>
    <item>
      <title>Re: AW60 EEPROM Emulation in assembler</title>
      <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/AW60-EEPROM-Emulation-in-assembler/m-p/203355#M7734</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hi Bigmac,&lt;/DIV&gt;&lt;DIV&gt;I've finally managed to get it work.&lt;/DIV&gt;&lt;DIV&gt;You are right about the way i monitor the operation.&lt;/DIV&gt;&lt;DIV&gt;I shouldnt place the breakpoint in the flash routine.&lt;/DIV&gt;&lt;DIV&gt;In that case, how do i monitor the operation step by step?&lt;/DIV&gt;&lt;DIV&gt;Thanks.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Regards,&lt;/DIV&gt;&lt;DIV&gt;mingyee&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 29 Mar 2008 08:40:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-for-MCU/AW60-EEPROM-Emulation-in-assembler/m-p/203355#M7734</guid>
      <dc:creator>mylim</dc:creator>
      <dc:date>2008-03-29T08:40:11Z</dc:date>
    </item>
    <item>
      <title>Re: AW60 EEPROM Emulation in assembler</title>
      <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/AW60-EEPROM-Emulation-in-assembler/m-p/203356#M7735</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hello MY,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I'm glad you were able to get the code to work.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;When dealing with MCU hardware registers, there will be instances where it is not possible to single step the code, and this is one of them.&amp;nbsp; Another instance is where a flag is cleared by the process of reading one or more registers.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;If the code works as intended, there is really no reason to single step into the function.&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>Sun, 30 Mar 2008 00:36:25 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-for-MCU/AW60-EEPROM-Emulation-in-assembler/m-p/203356#M7735</guid>
      <dc:creator>bigmac</dc:creator>
      <dc:date>2008-03-30T00:36:25Z</dc:date>
    </item>
    <item>
      <title>Re: EEPROM Emulation Driver for HCS08</title>
      <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/AW60-EEPROM-Emulation-in-assembler/m-p/203357#M7736</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hello bigmac We are developing an ECU for the seat of a car using MC9S08AC16 We are using 2 sectors of Flash (512 bytes each) as emulated EEPROM. After that, we have a 16 byte gap before the Program area. About the Problem: During sector swapping, the ECU resets due to watchdog time-out. (We did not use the callback function because we are not using internal watchdog, we use external watchdog from SBC80A6624 Atmel) (This problem was solved later on the succeeding software releases by disabling the watchdog prior to writing. Problem might be 99% solved ) When this happens, 2 resulting problems might happen: 1) EEPROM data loss 2) overwriting 1 byte at start of Program area, making the ECU non-functional. atached file is the eeprom driver source code. any suggestion would be a great help.. thank you&lt;BR /&gt;&lt;BR /&gt;Message Edited by alex1 on &lt;SPAN class="date_text"&gt;2008-05-17&lt;/SPAN&gt; &lt;SPAN class="time_text"&gt;04:38 AM&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.freescale.com/files/community_files/CW816COMM/4294_ee4.zip" rel="nofollow" target="_self"&gt;ee4.zip&lt;/A&gt;&lt;/P&gt;&lt;DIV class="message-edit-history"&gt;&lt;SPAN class="edit-author"&gt;Message Edited by t.dowe on&lt;/SPAN&gt; &lt;SPAN class="local-date"&gt;2009-10-22&lt;/SPAN&gt; &lt;SPAN class="local-time"&gt;09:33 AM&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 17 May 2008 10:33:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-for-MCU/AW60-EEPROM-Emulation-in-assembler/m-p/203357#M7736</guid>
      <dc:creator>alex1</dc:creator>
      <dc:date>2008-05-17T10:33:17Z</dc:date>
    </item>
  </channel>
</rss>

