<?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: MC9HCS08QE64 Bootloader</title>
    <link>https://community.nxp.com/t5/8-bit-Microcontrollers/MC9HCS08QE64-Bootloader/m-p/239859#M19563</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Madhu,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We have a Serial Bootloader AN2295 example for the S08QE128.&amp;nbsp; This has Assembly commands to erase and program the flash, using the PPAGE register for the paged flash.&amp;nbsp; This code uses our older Classic CodeWarrior, and the project is located at \an2295sw\src\S08QE128\hc08sprg-s08qe128.mcp, and the bootloader source file is at \an2295sw\src\S08QE128\sources\slfprg-s08qe128.asm.&amp;nbsp; The Appnote AN2295 below has more details on using this bootloader.&amp;nbsp; The S08QE64 device has the same memory map for the flash as the QE128, except PPAGE is limited to 0-3 since it has half the flash.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So that can be used as an example for loading the PPAGE register before issuing the flash command to erase or program paged flash.&amp;nbsp; Otherwise, yes the understanding is correct.&amp;nbsp; As documented in the Reference Manual, the address range 0x8000 - 0xBFFF is the Paging Window for accessing Paged Flash, and the PPAGE register specifies which page is being accessed.&amp;nbsp; Thanks&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="g" style="margin-bottom: 2px; color: #51626f; font-family: arial, sans-serif; font-size: 12px;"&gt;&lt;A href="http://cache.freescale.com/files/microcontrollers/doc/app_note/AN2295.pdf" style="color: #017bba;"&gt;&lt;SPAN class="l" style="color: #008ecb; font-weight: bold;"&gt;&lt;SPAN class="goog-trans-section l" style="padding-bottom: 5px;"&gt;Developer's Serial Bootloader&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;&lt;TABLE border="0" cellpadding="0" cellspacing="0" jive-data-cell="{&amp;quot;color&amp;quot;:&amp;quot;#51626F&amp;quot;,&amp;quot;textAlign&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;padding&amp;quot;:&amp;quot;NaN&amp;quot;,&amp;quot;backgroundColor&amp;quot;:&amp;quot;#EBF2FC&amp;quot;,&amp;quot;fontFamily&amp;quot;:&amp;quot;arial,sans-serif&amp;quot;,&amp;quot;verticalAlign&amp;quot;:&amp;quot;baseline&amp;quot;}" jive-data-header="{&amp;quot;color&amp;quot;:&amp;quot;#FFFFFF&amp;quot;,&amp;quot;backgroundColor&amp;quot;:&amp;quot;#6690BC&amp;quot;,&amp;quot;textAlign&amp;quot;:&amp;quot;center&amp;quot;,&amp;quot;padding&amp;quot;:&amp;quot;2&amp;quot;}" style="color: #51626f; font-family: arial, sans-serif; font-size: 12px;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD class="s" style="border: 1px solid #ffffff; background-color: #ebf2fc !important;"&gt;&lt;SPAN class="goog-trans-section"&gt;Application Note Document Number: &lt;STRONG&gt;AN2295&lt;/STRONG&gt; &lt;STRONG&gt;...&lt;/STRONG&gt; Quick guide: How to&amp;nbsp; prepare the user Kinetis application for&lt;STRONG&gt;AN2295&lt;/STRONG&gt; bootloader &lt;STRONG&gt;...&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="s" style="border: 1px solid #ffffff; background-color: #ebf2fc !important;"&gt;&lt;P&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="s" style="border: 1px solid #ffffff; background-color: #ebf2fc !important;"&gt;&lt;SPAN style="color: #afafaf;"&gt;Associated File: &lt;A href="http://cache.freescale.com/files/microcontrollers/doc/app_note/AN2295SW.zip" style="color: #017bba;"&gt;AN2295SW&lt;/A&gt; &lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 20 Feb 2014 13:52:40 GMT</pubDate>
    <dc:creator>dereksnell</dc:creator>
    <dc:date>2014-02-20T13:52:40Z</dc:date>
    <item>
      <title>MC9HCS08QE64 Bootloader</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/MC9HCS08QE64-Bootloader/m-p/239858#M19562</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I’m working on porting some boot-loader code from the QE32 microcontroller to the QE64 microcontroller. It looks like the FLASH memory map is a little more complex (with some paging needed). I’m struggling a bit with the “Project.prm” file and the actual code to&amp;nbsp; copy over to FLASH. Can you help me how to write to the FLASH in a boot-loader scenario using the “doonstack.asm” file? I’m wondering if I’m going down the right path by setting the PAGE (0 – 3) and the writing to address 0x8000 – 0xBFFF? I’ve copied in a code snippet below from my boot-loader. Is there a specific example for the QE64 chip?&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // only pages one and two&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(index=1; index&amp;lt;3; index++)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PPAGE_XA_14 = index; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //erase old program here&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ProgramAddress = 0x8000;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(ProgramAddress &amp;lt; 0xBFFF) &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //reset watchdog for each erase cycle&lt;/P&gt;&lt;P&gt; __RESET_WATCHDOG();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FlashErase((unsigned char*)ProgramAddress);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ProgramAddress += 512;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // only pages one and two&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(index=1; index&amp;lt;3; index++)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PPAGE_XA_14 = index; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ProgramAddress = 0x8000;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(ProgramAddress &amp;lt; 0xBFFF)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //reset watchdog for each erase cycle&lt;/P&gt;&lt;P&gt; __RESET_WATCHDOG();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FlashProg((unsigned char*)ProgramAddress, value);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ProgramAddress++;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; value++;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;Madhu&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 17 Feb 2014 20:54:15 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/MC9HCS08QE64-Bootloader/m-p/239858#M19562</guid>
      <dc:creator>madhuvatte</dc:creator>
      <dc:date>2014-02-17T20:54:15Z</dc:date>
    </item>
    <item>
      <title>Re: MC9HCS08QE64 Bootloader</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/MC9HCS08QE64-Bootloader/m-p/239859#M19563</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Madhu,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We have a Serial Bootloader AN2295 example for the S08QE128.&amp;nbsp; This has Assembly commands to erase and program the flash, using the PPAGE register for the paged flash.&amp;nbsp; This code uses our older Classic CodeWarrior, and the project is located at \an2295sw\src\S08QE128\hc08sprg-s08qe128.mcp, and the bootloader source file is at \an2295sw\src\S08QE128\sources\slfprg-s08qe128.asm.&amp;nbsp; The Appnote AN2295 below has more details on using this bootloader.&amp;nbsp; The S08QE64 device has the same memory map for the flash as the QE128, except PPAGE is limited to 0-3 since it has half the flash.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So that can be used as an example for loading the PPAGE register before issuing the flash command to erase or program paged flash.&amp;nbsp; Otherwise, yes the understanding is correct.&amp;nbsp; As documented in the Reference Manual, the address range 0x8000 - 0xBFFF is the Paging Window for accessing Paged Flash, and the PPAGE register specifies which page is being accessed.&amp;nbsp; Thanks&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="g" style="margin-bottom: 2px; color: #51626f; font-family: arial, sans-serif; font-size: 12px;"&gt;&lt;A href="http://cache.freescale.com/files/microcontrollers/doc/app_note/AN2295.pdf" style="color: #017bba;"&gt;&lt;SPAN class="l" style="color: #008ecb; font-weight: bold;"&gt;&lt;SPAN class="goog-trans-section l" style="padding-bottom: 5px;"&gt;Developer's Serial Bootloader&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;&lt;TABLE border="0" cellpadding="0" cellspacing="0" jive-data-cell="{&amp;quot;color&amp;quot;:&amp;quot;#51626F&amp;quot;,&amp;quot;textAlign&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;padding&amp;quot;:&amp;quot;NaN&amp;quot;,&amp;quot;backgroundColor&amp;quot;:&amp;quot;#EBF2FC&amp;quot;,&amp;quot;fontFamily&amp;quot;:&amp;quot;arial,sans-serif&amp;quot;,&amp;quot;verticalAlign&amp;quot;:&amp;quot;baseline&amp;quot;}" jive-data-header="{&amp;quot;color&amp;quot;:&amp;quot;#FFFFFF&amp;quot;,&amp;quot;backgroundColor&amp;quot;:&amp;quot;#6690BC&amp;quot;,&amp;quot;textAlign&amp;quot;:&amp;quot;center&amp;quot;,&amp;quot;padding&amp;quot;:&amp;quot;2&amp;quot;}" style="color: #51626f; font-family: arial, sans-serif; font-size: 12px;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD class="s" style="border: 1px solid #ffffff; background-color: #ebf2fc !important;"&gt;&lt;SPAN class="goog-trans-section"&gt;Application Note Document Number: &lt;STRONG&gt;AN2295&lt;/STRONG&gt; &lt;STRONG&gt;...&lt;/STRONG&gt; Quick guide: How to&amp;nbsp; prepare the user Kinetis application for&lt;STRONG&gt;AN2295&lt;/STRONG&gt; bootloader &lt;STRONG&gt;...&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="s" style="border: 1px solid #ffffff; background-color: #ebf2fc !important;"&gt;&lt;P&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="s" style="border: 1px solid #ffffff; background-color: #ebf2fc !important;"&gt;&lt;SPAN style="color: #afafaf;"&gt;Associated File: &lt;A href="http://cache.freescale.com/files/microcontrollers/doc/app_note/AN2295SW.zip" style="color: #017bba;"&gt;AN2295SW&lt;/A&gt; &lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 20 Feb 2014 13:52:40 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/MC9HCS08QE64-Bootloader/m-p/239859#M19563</guid>
      <dc:creator>dereksnell</dc:creator>
      <dc:date>2014-02-20T13:52:40Z</dc:date>
    </item>
  </channel>
</rss>

