<?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>OSBDM and TBDMLのトピックUSB API - how use HCS08_FCMD_BURST_PROG for flash programming?</title>
    <link>https://community.nxp.com/t5/OSBDM-and-TBDML/USB-API-how-use-HCS08-FCMD-BURST-PROG-for-flash-programming/m-p/399187#M3059</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If write to flash 1 byte, no problems (first PAGE_ERASE):&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;EM&gt;FF=HCS08_FSTAT_FPVIOL | HCS08_FSTAT_FACCERR;&lt;/EM&gt;&lt;/LI&gt;&lt;LI&gt;&lt;EM&gt;Err_=USBDM_WriteMemory (1, 1, #HCS08_FSTAT, pointer FF);&lt;/EM&gt;&lt;/LI&gt;&lt;LI&gt; &lt;EM&gt;If&lt;/EM&gt; (&lt;EM&gt;Err_!=0&lt;/EM&gt;) ... ;//&lt;SPAN data-align="0:3"&gt;code&lt;/SPAN&gt; &lt;SPAN data-align="4:14"&gt;skipped&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;EM&gt;Err_=USBDM_WriteMemory (1,&lt;STRONG&gt; 1&lt;/STRONG&gt;, 0x1A00, pointer buffer); //&lt;/EM&gt;&lt;STRONG&gt; 1 byte data for write to flash&lt;/STRONG&gt;&lt;/LI&gt;&lt;LI&gt; &lt;EM&gt;If&lt;/EM&gt; (&lt;EM&gt;Err_!=0&lt;/EM&gt;) ... ;//&lt;SPAN data-align="0:3"&gt;code&lt;/SPAN&gt; &lt;SPAN data-align="4:14"&gt;skipped&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;EM&gt;cmd=HCS08_FCMD_BURST_PROG;&lt;/EM&gt;&lt;/LI&gt;&lt;LI&gt;&lt;EM&gt;Err_=USBDM_WriteMemory (1, 1, #HCS08_FCMD, pointer cmd);&lt;/EM&gt;// Execute burst prog&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;SPAN data-align="0:5"&gt;The code&lt;/SPAN&gt; &lt;SPAN data-align="6:10"&gt;above &lt;SPAN data-align="11:19"&gt;works&lt;/SPAN&gt;. &lt;SPAN data-align="21:33"&gt;But slowly - 512 bytes 24 sec.&lt;/SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If write more bytes, FACCERR return error.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;EM&gt;FF=HCS08_FSTAT_FPVIOL | HCS08_FSTAT_FACCERR;&lt;/EM&gt;&lt;/LI&gt;&lt;LI&gt;&lt;EM&gt;Err_=USBDM_WriteMemory (1, 1, #HCS08_FSTAT, pointer FF);&lt;/EM&gt;&lt;/LI&gt;&lt;LI&gt;&lt;EM&gt; If&lt;/EM&gt; (&lt;EM&gt;Err_!=0&lt;/EM&gt;) ... ;//&lt;SPAN data-align="0:3"&gt;code&lt;/SPAN&gt; &lt;SPAN data-align="4:14"&gt;skipped&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;EM&gt;Err_=USBDM_WriteMemory (1,&lt;STRONG&gt; 64&lt;/STRONG&gt;, 0x1A00, pointer buffer); //&amp;nbsp; &lt;/EM&gt;&lt;STRONG&gt;64 bytes data for write to flash&lt;/STRONG&gt;&lt;EM&gt;&lt;BR /&gt;&lt;/EM&gt;&lt;/LI&gt;&lt;LI&gt;&lt;EM&gt; If&lt;/EM&gt; (&lt;EM&gt;Err_!=0&lt;/EM&gt;) ... ;//&lt;SPAN data-align="0:3"&gt;code&lt;/SPAN&gt; &lt;SPAN data-align="4:14"&gt;skipped&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;EM&gt;FF=HCS08_FCMD_BURST_PROG;&lt;/EM&gt;&lt;/LI&gt;&lt;LI&gt;&lt;EM&gt;Err_=USBDM_WriteMemory (1, 1, #HCS08_FCMD, pointer FF);&lt;/EM&gt;// Execute burst prog&lt;EM&gt;&lt;BR /&gt;&lt;/EM&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN data-align="0:11"&gt;What's wrong? &lt;/SPAN&gt;How use burst_prog? &lt;/P&gt;&lt;P&gt;Version DLL 4.10.6&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 21 Sep 2015 20:46:08 GMT</pubDate>
    <dc:creator>dmitriykirpika</dc:creator>
    <dc:date>2015-09-21T20:46:08Z</dc:date>
    <item>
      <title>USB API - how use HCS08_FCMD_BURST_PROG for flash programming?</title>
      <link>https://community.nxp.com/t5/OSBDM-and-TBDML/USB-API-how-use-HCS08-FCMD-BURST-PROG-for-flash-programming/m-p/399187#M3059</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If write to flash 1 byte, no problems (first PAGE_ERASE):&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;EM&gt;FF=HCS08_FSTAT_FPVIOL | HCS08_FSTAT_FACCERR;&lt;/EM&gt;&lt;/LI&gt;&lt;LI&gt;&lt;EM&gt;Err_=USBDM_WriteMemory (1, 1, #HCS08_FSTAT, pointer FF);&lt;/EM&gt;&lt;/LI&gt;&lt;LI&gt; &lt;EM&gt;If&lt;/EM&gt; (&lt;EM&gt;Err_!=0&lt;/EM&gt;) ... ;//&lt;SPAN data-align="0:3"&gt;code&lt;/SPAN&gt; &lt;SPAN data-align="4:14"&gt;skipped&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;EM&gt;Err_=USBDM_WriteMemory (1,&lt;STRONG&gt; 1&lt;/STRONG&gt;, 0x1A00, pointer buffer); //&lt;/EM&gt;&lt;STRONG&gt; 1 byte data for write to flash&lt;/STRONG&gt;&lt;/LI&gt;&lt;LI&gt; &lt;EM&gt;If&lt;/EM&gt; (&lt;EM&gt;Err_!=0&lt;/EM&gt;) ... ;//&lt;SPAN data-align="0:3"&gt;code&lt;/SPAN&gt; &lt;SPAN data-align="4:14"&gt;skipped&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;EM&gt;cmd=HCS08_FCMD_BURST_PROG;&lt;/EM&gt;&lt;/LI&gt;&lt;LI&gt;&lt;EM&gt;Err_=USBDM_WriteMemory (1, 1, #HCS08_FCMD, pointer cmd);&lt;/EM&gt;// Execute burst prog&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;SPAN data-align="0:5"&gt;The code&lt;/SPAN&gt; &lt;SPAN data-align="6:10"&gt;above &lt;SPAN data-align="11:19"&gt;works&lt;/SPAN&gt;. &lt;SPAN data-align="21:33"&gt;But slowly - 512 bytes 24 sec.&lt;/SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If write more bytes, FACCERR return error.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;EM&gt;FF=HCS08_FSTAT_FPVIOL | HCS08_FSTAT_FACCERR;&lt;/EM&gt;&lt;/LI&gt;&lt;LI&gt;&lt;EM&gt;Err_=USBDM_WriteMemory (1, 1, #HCS08_FSTAT, pointer FF);&lt;/EM&gt;&lt;/LI&gt;&lt;LI&gt;&lt;EM&gt; If&lt;/EM&gt; (&lt;EM&gt;Err_!=0&lt;/EM&gt;) ... ;//&lt;SPAN data-align="0:3"&gt;code&lt;/SPAN&gt; &lt;SPAN data-align="4:14"&gt;skipped&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;EM&gt;Err_=USBDM_WriteMemory (1,&lt;STRONG&gt; 64&lt;/STRONG&gt;, 0x1A00, pointer buffer); //&amp;nbsp; &lt;/EM&gt;&lt;STRONG&gt;64 bytes data for write to flash&lt;/STRONG&gt;&lt;EM&gt;&lt;BR /&gt;&lt;/EM&gt;&lt;/LI&gt;&lt;LI&gt;&lt;EM&gt; If&lt;/EM&gt; (&lt;EM&gt;Err_!=0&lt;/EM&gt;) ... ;//&lt;SPAN data-align="0:3"&gt;code&lt;/SPAN&gt; &lt;SPAN data-align="4:14"&gt;skipped&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;EM&gt;FF=HCS08_FCMD_BURST_PROG;&lt;/EM&gt;&lt;/LI&gt;&lt;LI&gt;&lt;EM&gt;Err_=USBDM_WriteMemory (1, 1, #HCS08_FCMD, pointer FF);&lt;/EM&gt;// Execute burst prog&lt;EM&gt;&lt;BR /&gt;&lt;/EM&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN data-align="0:11"&gt;What's wrong? &lt;/SPAN&gt;How use burst_prog? &lt;/P&gt;&lt;P&gt;Version DLL 4.10.6&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 21 Sep 2015 20:46:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/OSBDM-and-TBDML/USB-API-how-use-HCS08-FCMD-BURST-PROG-for-flash-programming/m-p/399187#M3059</guid>
      <dc:creator>dmitriykirpika</dc:creator>
      <dc:date>2015-09-21T20:46:08Z</dc:date>
    </item>
    <item>
      <title>Re: USB API - how use HCS08_FCMD_BURST_PROG for flash programming?</title>
      <link>https://community.nxp.com/t5/OSBDM-and-TBDML/USB-API-how-use-HCS08-FCMD-BURST-PROG-for-flash-programming/m-p/399188#M3060</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Dmitriy,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I do not believe the burst programming function works the way you think it does.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It does NOT allow programming of a range of memory in one operation.&amp;nbsp; All it does is it speeds up the process of programming the individual locations by implementing a 2-byte FIFO which allows the programming voltage to be left on between individual locations.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please refer to the programming flowcharts provided in the chip manual for the correct sequence.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PS.The method you are using will be very slow (as you have discovered).&lt;/P&gt;&lt;P&gt;The usual method is to download a small program to the target RAM along with a buffer of bytes to program.&amp;nbsp; The small program then programs the target including the required polling between programming each byte.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I suggest you use the USBDM programming API rather than the low-level API you are using.&lt;/P&gt;&lt;P&gt;Please see the following link:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://github.com/podonoghue/usbdm-eclipse-makefiles-build/tree/master/USBDM_Programmer_API_Example" title="https://github.com/podonoghue/usbdm-eclipse-makefiles-build/tree/master/USBDM_Programmer_API_Example"&gt;usbdm-eclipse-makefiles-build/USBDM_Programmer_API_Example at master · podonoghue/usbdm-eclipse-makefiles-build · GitHub&lt;/A&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;bye&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 22 Sep 2015 13:30:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/OSBDM-and-TBDML/USB-API-how-use-HCS08-FCMD-BURST-PROG-for-flash-programming/m-p/399188#M3060</guid>
      <dc:creator>pgo</dc:creator>
      <dc:date>2015-09-22T13:30:01Z</dc:date>
    </item>
  </channel>
</rss>

