<?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>8-bit MicrocontrollersのトピックRe: EEPROM emulation for MC9S08AC128</title>
    <link>https://community.nxp.com/t5/8-bit-Microcontrollers/EEPROM-emulation-for-MC9S08AC128/m-p/155702#M8845</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;0x8000 is not only banked flash, but also PPAGE window. When you were programming 78000. you probably switched PPAGE to 7, and it made PPAGE 7 visible at 0x8000. After programming ant restore of PPAGE you should see old values at 0x8000.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 07 Feb 2013 05:11:34 GMT</pubDate>
    <dc:creator>kef</dc:creator>
    <dc:date>2013-02-07T05:11:34Z</dc:date>
    <item>
      <title>EEPROM emulation for MC9S08AC128</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/EEPROM-emulation-for-MC9S08AC128/m-p/155694#M8837</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Is there any documentation that can help me get started with this?&amp;nbsp; I tried searching but wasn't able to find much.&amp;nbsp; I am trying to port code from a MC68HC908AB32 processor into this newer MC9S08AC128 processor.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 26 Oct 2012 22:19:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/EEPROM-emulation-for-MC9S08AC128/m-p/155694#M8837</guid>
      <dc:creator>jobber</dc:creator>
      <dc:date>2012-10-26T22:19:55Z</dc:date>
    </item>
    <item>
      <title>Re: EEPROM emulation for MC9S08AC128</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/EEPROM-emulation-for-MC9S08AC128/m-p/155695#M8838</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Jobber, sorry for the delay!&lt;/P&gt;&lt;P&gt;Here are a couple of documents that may be useful&lt;/P&gt;&lt;P&gt;&lt;A href="http://cache.freescale.com/files/microcontrollers/doc/data_sheet/MC9S08AC128.pdf?fsrch=1&amp;amp;sr=2"&gt;Data Sheet&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://cache.freescale.com/files/microcontrollers/doc/ref_manual/MC9S08AC128RMAD.pdf?fsrch=1&amp;amp;sr=6"&gt;Reference Manual (Errata)&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 17 Dec 2012 18:13:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/EEPROM-emulation-for-MC9S08AC128/m-p/155695#M8838</guid>
      <dc:creator>Monica</dc:creator>
      <dc:date>2012-12-17T18:13:35Z</dc:date>
    </item>
    <item>
      <title>Re: EEPROM emulation for MC9S08AC128</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/EEPROM-emulation-for-MC9S08AC128/m-p/155696#M8839</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello jobber.&lt;/P&gt;&lt;P&gt;In order to implement EEPROM emulation using Flash memory, it is required to have a Flash driver that allows erase and write the Flash. When these actions are performed, the Flash are inaccessible, thus, it is required to copy the flash routines from Flash to RAM and executing from RAM.&lt;/P&gt;&lt;P&gt;Some considerations for this implementation are that Flash clock must be from 150 to 200 KHz for correct erase/write operations, and that Flash memory can only be erased by pages, and MC9S08AC128 has 256 pages of 512 bytes each. I have uploaded an example project for MC9S08AC128 device and CodeWarrior v6.3; hope this will be useful for you.&lt;/P&gt;&lt;P&gt;Have a nice day.&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 19 Dec 2012 16:11:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/EEPROM-emulation-for-MC9S08AC128/m-p/155696#M8839</guid>
      <dc:creator>CarlosCasillas</dc:creator>
      <dc:date>2012-12-19T16:11:23Z</dc:date>
    </item>
    <item>
      <title>Re: EEPROM emulation for MC9S08AC128</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/EEPROM-emulation-for-MC9S08AC128/m-p/155697#M8840</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you Carlos for your response.&amp;nbsp; I've used your sample code and made some modifications accordingly (I am using a 14.7 MHz clock).&amp;nbsp; The settings in the .prm file I have used is similar to the sample.&amp;nbsp; In my code, I am trying to save user data stored in RAM to the 0x78000 Flash address.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My issue seems to be that sometimes the Flash write works and sometimes it does not.&amp;nbsp; Do you have an idea of what I may be setting up improperly?&lt;/P&gt;&lt;P&gt;I have tried stepping through the code, and the error flags do not trigger (FLASH_OK is always returned), so I am not sure what the issue is.&amp;nbsp; When stepping through the u8Flash_Cmd() function, all the expected data and flags are there, but I do not see the Flash memory being set to the expected values in the Memory window of the debugger.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 05 Feb 2013 01:31:51 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/EEPROM-emulation-for-MC9S08AC128/m-p/155697#M8840</guid>
      <dc:creator>jobber</dc:creator>
      <dc:date>2013-02-05T01:31:51Z</dc:date>
    </item>
    <item>
      <title>Re: EEPROM emulation for MC9S08AC128</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/EEPROM-emulation-for-MC9S08AC128/m-p/155698#M8841</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;There are two likely causes which will yield similar behavior: either you have calculated the flash clock prescaler incorrectly, or you are running the flash programming algorithm from flash despite the advise made in this post. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 05 Feb 2013 14:31:26 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/EEPROM-emulation-for-MC9S08AC128/m-p/155698#M8841</guid>
      <dc:creator>Lundin</dc:creator>
      <dc:date>2013-02-05T14:31:26Z</dc:date>
    </item>
    <item>
      <title>Re: EEPROM emulation for MC9S08AC128</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/EEPROM-emulation-for-MC9S08AC128/m-p/155699#M8842</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I had checked the location of the flash programming function in the debugger, and it is correctly stored in RAM at 0x100.&amp;nbsp; Here's a code snippet from the PRM file:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;SEGMENTS /* Here all RAM/ROM areas of the device are listed. Used in PLACEMENT below. */&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Z_RAM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp; READ_WRITE&amp;nbsp;&amp;nbsp; 0x0080 TO 0x00FF;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RAM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp; READ_WRITE&amp;nbsp;&amp;nbsp; 0x0158 TO 0x17FF;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RAM1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp; READ_WRITE&amp;nbsp;&amp;nbsp; 0x1870 TO 0x20EF;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* unbanked FLASH ROM */&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ROM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp; READ_ONLY&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x20F0 TO 0x7FFF;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ROM1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp; READ_ONLY&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xC101 TO 0xFF9B;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt; /* INTVECTS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp; READ_ONLY&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xFF9C TO 0xFFFF; Reserved for Interrupt Vectors */&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* banked FLASH ROM */&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PPAGE_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; READ_ONLY&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x008000 TO 0x00A0EF; /* PAGE partially contained in ROM segment */&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PPAGE_2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp; READ_ONLY&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x028000 TO 0x02BFFF; &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PPAGE_4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp; READ_ONLY&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x048000 TO 0x04BFFF; &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PPAGE_5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp; READ_ONLY&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x058000 TO 0x05BFFF; &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PPAGE_6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp; READ_ONLY&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x068000 TO 0x06BFFF; &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PPAGE_7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp; READ_ONLY&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x078000 TO 0x07BFFF; &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt; /* PPAGE_1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp; READ_ONLY&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x018000 TO 0x01BFFF; PAGE already contained in segment at 0x4000-0x7FFF */&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt; /* PPAGE_3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp; READ_ONLY&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x038000 TO 0x03BFFF; PAGE already contained in segment at 0xC000-0xFFFF */&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FLASH_TO_RAM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp; READ_ONLY&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xC000 TO 0xC100 RELOCATE_TO 0x100;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;END&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I've defined the flash clock as follows:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;#define BUS_CLOCK&amp;nbsp;&amp;nbsp;&amp;nbsp; 14745600&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;#if BUS_CLOCK &amp;gt; 12800000&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;#define FLASH_CLOCK (unsigned char)((BUS_CLOCK/1600000) + 0x40)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;#else&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;#define FLASH_CLOCK (unsigned char)(BUS_CLOCK/200000)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;#endif&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The vfnFlashInit() routine that was provided by Carlos uses the FLASH_CLOCK to set the FCDIV.&amp;nbsp; So it would appear I am setting these up correctly...&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 05 Feb 2013 18:06:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/EEPROM-emulation-for-MC9S08AC128/m-p/155699#M8842</guid>
      <dc:creator>jobber</dc:creator>
      <dc:date>2013-02-05T18:06:01Z</dc:date>
    </item>
    <item>
      <title>Re: EEPROM emulation for MC9S08AC128</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/EEPROM-emulation-for-MC9S08AC128/m-p/155700#M8843</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Noticed a mistake, so I modified the code above to:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; RAM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp; READ_WRITE&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;0x0201&lt;/STRONG&gt; TO 0x17FF;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This didn't fix the problem though.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 05 Feb 2013 18:38:19 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/EEPROM-emulation-for-MC9S08AC128/m-p/155700#M8843</guid>
      <dc:creator>jobber</dc:creator>
      <dc:date>2013-02-05T18:38:19Z</dc:date>
    </item>
    <item>
      <title>Re: EEPROM emulation for MC9S08AC128</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/EEPROM-emulation-for-MC9S08AC128/m-p/155701#M8844</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;It seems like the problem now is that when I use the burst command to write to 0x78000 (during startup), the Flash data there is correctly erased and writes to the buffer there (but also unintentionally writes the same data to 0x8000 apparently).&amp;nbsp; However, subsequent Flash burst commands only seem to update the data at 0x8000, but not at 0x78000.&amp;nbsp; I need to store this data in 0x78000 which is in Banked Flash ROM so that on program reset, I will be able to retrieve it.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 06 Feb 2013 23:32:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/EEPROM-emulation-for-MC9S08AC128/m-p/155701#M8844</guid>
      <dc:creator>jobber</dc:creator>
      <dc:date>2013-02-06T23:32:36Z</dc:date>
    </item>
    <item>
      <title>Re: EEPROM emulation for MC9S08AC128</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/EEPROM-emulation-for-MC9S08AC128/m-p/155702#M8845</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;0x8000 is not only banked flash, but also PPAGE window. When you were programming 78000. you probably switched PPAGE to 7, and it made PPAGE 7 visible at 0x8000. After programming ant restore of PPAGE you should see old values at 0x8000.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 07 Feb 2013 05:11:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/EEPROM-emulation-for-MC9S08AC128/m-p/155702#M8845</guid>
      <dc:creator>kef</dc:creator>
      <dc:date>2013-02-07T05:11:34Z</dc:date>
    </item>
    <item>
      <title>Re: EEPROM emulation for MC9S08AC128</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/EEPROM-emulation-for-MC9S08AC128/m-p/155703#M8846</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Edward for that.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Yes, after I do a reset, the memory at 0x8000 gets cleared, but the memory at 0x78000 does not (which is what I intend).&amp;nbsp; It looks like my remaining problem now is trying to read from 0x78000 and store into RAM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have this defined:&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;#define Flash_ReadSetup(FAddress) *(SetupData_t*)FAddress&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;#define FLASH_ADDRESS 0x78000&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;...&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;SetupData_t SetupData;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So the idea is to call the following to store the flash data into RAM:&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;SetupData = Flash_ReadSetup(FLASH_ADDRESS);&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Unfortunately, it looks like this is reading from 0x8000 (which got cleared on a reset) instead of the intended 0x78000, so it doesn't work.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 07 Feb 2013 16:38:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/EEPROM-emulation-for-MC9S08AC128/m-p/155703#M8846</guid>
      <dc:creator>jobber</dc:creator>
      <dc:date>2013-02-07T16:38:44Z</dc:date>
    </item>
    <item>
      <title>Re: EEPROM emulation for MC9S08AC128</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/EEPROM-emulation-for-MC9S08AC128/m-p/155704#M8847</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Unfortunately CW for S08 doesn't support banked data pointers, so you can't *(type*)address to access your data. Unless CW v10.3 has improved it, you either need to switch PPAGE and get data from PPAGE window, or use Linear Address Pointer hardware to access data without PPAGE switching.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. PPAGE switching.&lt;/P&gt;&lt;P&gt;You can switch PPAGE only from routine in nonbanked memory. So your access routine shoud be made nonbaked. Also you need to restore PPAGE, else you will have problems returning to banked caller.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c++" __jive_macro_name="code" class="_jivemacro_uid_13602651603434407 jive_text_macro jive_macro_code" jivemacro_uid="_13602651603434407" modifiedtitle="true"&gt;
&lt;P&gt;SetupData_t mysd;
 
 #pragma CODE_SEG __NEAR_SEG NON_BANKED
void GetDataFrom78000(void)
{
char PPAGEbackup;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; PPAGEbackup = PPAGE;
&amp;nbsp;&amp;nbsp; PPAGE = 7;
&amp;nbsp;&amp;nbsp; mysd = *(SetupData_t*)0x8000;
&amp;nbsp;&amp;nbsp; PPAGE = PPAGEbackup;
}
#pragma CODE_SEG DEFAULT&lt;/P&gt;
&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;/P&gt;
&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2. LAP&lt;/P&gt;&lt;P&gt;There are 3 linear address pointer bytes LAP0-LAP2. You write address there, then read data from LB, LBP, or LWP registers.&lt;/P&gt;&lt;P&gt;Linear address is not the same like 78000, which is ppage*0x10000 + address in PPAGE window. Linear address is ppage*sizeof(page_window)+page_window_offset.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c++" __jive_macro_name="code" class="jive_text_macro jive_macro_code"&gt;
&lt;P&gt;&lt;/P&gt;
&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Oct 2020 08:59:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/EEPROM-emulation-for-MC9S08AC128/m-p/155704#M8847</guid>
      <dc:creator>kef</dc:creator>
      <dc:date>2020-10-29T08:59:32Z</dc:date>
    </item>
    <item>
      <title>Re: EEPROM emulation for MC9S08AC128</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/EEPROM-emulation-for-MC9S08AC128/m-p/155705#M8848</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;(Code insertion is broken, had to made new message)&lt;/P&gt;&lt;PRE __default_attr="c++" __jive_macro_name="code" class="jive_text_macro jive_macro_code _jivemacro_uid_1360265822781374" jivemacro_uid="_1360265822781374"&gt;
&lt;P&gt;#define BANKED_TO_LINEAR(x) (((x) / 0x10000) * 0x4000 + (x) % 0x4000)&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;int i;
char *ptr;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; LAP2 = BANKED_TO_LINEAR(0x78000) / 0x10000;
&amp;nbsp;&amp;nbsp; LAP1 = BANKED_TO_LINEAR(0x78000) / 0x100;
&amp;nbsp;&amp;nbsp; LAP0 = BANKED_TO_LINEAR(0x78000) / 0x1;
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; ptr = &amp;amp;mysd;
&amp;nbsp;&amp;nbsp; for(i = 0; i&amp;lt;sizeof(SetupData_t); i++)
&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *ptr++ = LBP;
&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;

&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;/P&gt;

&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Oct 2020 08:59:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/EEPROM-emulation-for-MC9S08AC128/m-p/155705#M8848</guid>
      <dc:creator>kef</dc:creator>
      <dc:date>2020-10-29T08:59:34Z</dc:date>
    </item>
    <item>
      <title>Re: EEPROM emulation for MC9S08AC128</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/EEPROM-emulation-for-MC9S08AC128/m-p/155706#M8849</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Jobber,&lt;/P&gt;&lt;P&gt;I attached some code for the AC128 for doing some simple EERPOM emulation.&amp;nbsp; It does not require any modifications to the .prm file.&lt;/P&gt;&lt;P&gt;1.&amp;nbsp; Create a new CW10.3 project, copy this main.c into the project, compile and run.&lt;/P&gt;&lt;P&gt;2.&amp;nbsp; Open a hyper term, baud 38400, no hardware, no flow control.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The GUI will give the option to read, write and erase.&amp;nbsp; This is a very simple program, but gets the idea on how to use the flash commands in the S08s.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope this helps-&lt;/P&gt;&lt;P&gt;Mike&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 20 Feb 2013 03:23:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/EEPROM-emulation-for-MC9S08AC128/m-p/155706#M8849</guid>
      <dc:creator>michaelsteffenf</dc:creator>
      <dc:date>2013-02-20T03:23:24Z</dc:date>
    </item>
    <item>
      <title>Re: EEPROM emulation for MC9S08AC128</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/EEPROM-emulation-for-MC9S08AC128/m-p/155707#M8850</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Nice example, michaelsteffenfae. It will be very useful.&lt;/P&gt;&lt;P&gt;As far i could see, you aren't using external xtal? I'm correct?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Egidio&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 22 Feb 2013 14:08:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/EEPROM-emulation-for-MC9S08AC128/m-p/155707#M8850</guid>
      <dc:creator>OneBitBrain</dc:creator>
      <dc:date>2013-02-22T14:08:01Z</dc:date>
    </item>
    <item>
      <title>Re: EEPROM emulation for MC9S08AC128</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/EEPROM-emulation-for-MC9S08AC128/m-p/155708#M8851</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Yes. You are correct.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Michael Steffen&lt;/P&gt;&lt;P&gt;Cell 815-519-1567&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 23 Feb 2013 03:38:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/EEPROM-emulation-for-MC9S08AC128/m-p/155708#M8851</guid>
      <dc:creator>michaelsteffenf</dc:creator>
      <dc:date>2013-02-23T03:38:32Z</dc:date>
    </item>
  </channel>
</rss>

