<?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のトピックSimplified Flash Erase and Write Functions for HCS08GT32</title>
    <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Simplified-Flash-Erase-and-Write-Functions-for-HCS08GT32/m-p/128764#M1761</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hello All,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I am trying to&amp;nbsp;simplify the slfprg-s08gbgt.asm bootloader code to two basic functions: erase and write.&amp;nbsp; So far, I have not had much luck at this and the functions do not appear to change anything in memory.&amp;nbsp; I have attached what I have at the bottom of this posting.&amp;nbsp; Any help would be appreciated.&amp;nbsp; If someone has already done this, could you please post your solution.&amp;nbsp; Thank you.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;-gcoakley&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;EraseFlashPage:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LDHX&amp;nbsp;&amp;nbsp;&amp;nbsp; Address&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;STHX&amp;nbsp;&amp;nbsp;&amp;nbsp; ADRS&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lda &amp;nbsp;#(mFPVIOL+mFACCERR) ;mask&lt;BR /&gt;&amp;nbsp;&amp;nbsp;sta &amp;nbsp;FSTAT &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;;abort any command and clear errors&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;mov&amp;nbsp;&amp;nbsp;#EraseSubSize, STAT&amp;nbsp;;length of flash erase routine to STAT&lt;BR /&gt;&amp;nbsp;&amp;nbsp;tsx&lt;BR /&gt;&amp;nbsp;&amp;nbsp;sthx&amp;nbsp;STACK&lt;BR /&gt;&amp;nbsp;&amp;nbsp;ldhx &amp;nbsp;#EraseSubEnd-1 &amp;nbsp;&amp;nbsp;;point at last byte to move to stack&lt;/DIV&gt;&lt;DIV&gt;DoOnStack2:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;lda &amp;nbsp;,x &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;;read from flash&lt;BR /&gt;&amp;nbsp;&amp;nbsp;psha &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;;move onto stack&lt;BR /&gt;&amp;nbsp;&amp;nbsp;aix &amp;nbsp;#-1 &amp;nbsp;&amp;nbsp;&amp;nbsp;;next byte to move&lt;BR /&gt;&amp;nbsp;&amp;nbsp;dbnz&amp;nbsp;STAT, DoOnStack2&lt;/DIV&gt;&lt;DIV&gt;EraseSub2: &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;ldhx &amp;nbsp;ADRS&amp;nbsp;&amp;nbsp; &amp;nbsp;;get flash address&lt;BR /&gt;&amp;nbsp;&amp;nbsp;sta &amp;nbsp;0,x &amp;nbsp;&amp;nbsp;&amp;nbsp;;write to flash; latch addr and data&lt;BR /&gt;&amp;nbsp;&amp;nbsp;lda &amp;nbsp;#mPageErase &amp;nbsp;;get flash command&lt;BR /&gt;&amp;nbsp;&amp;nbsp;sta &amp;nbsp;FCMD &amp;nbsp;&amp;nbsp;&amp;nbsp;;write the flash command&lt;BR /&gt;&amp;nbsp;&amp;nbsp;lda &amp;nbsp;#mFCBEF &amp;nbsp;&amp;nbsp;;mask to initiate command&lt;BR /&gt;&amp;nbsp;&amp;nbsp;sta &amp;nbsp;FSTAT &amp;nbsp;&amp;nbsp;&amp;nbsp;;[pwpp] register command&lt;BR /&gt;&amp;nbsp;&amp;nbsp;nop &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;;[p] want min 4~ from w cycle to r&lt;BR /&gt;ChkDoneErase2:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;lda &amp;nbsp;FSTAT &amp;nbsp;&amp;nbsp;&amp;nbsp;;[prpp] so FCCF is valid&lt;BR /&gt;&amp;nbsp;&amp;nbsp;lsla &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;;FCCF now in MSB&lt;BR /&gt;&amp;nbsp;&amp;nbsp;bpl &amp;nbsp;ChkDoneErase2 &amp;nbsp;;loop if FCCF = 0&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;ldhx&amp;nbsp;STACK&lt;BR /&gt;&amp;nbsp;&amp;nbsp;txs&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;rts&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;WriteFlashPage:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LDHX&amp;nbsp; Address&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;STHX&amp;nbsp; ADRS&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LDA&amp;nbsp;&amp;nbsp; ALEN&amp;nbsp;&amp;nbsp;&amp;nbsp;&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 length&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;STA&amp;nbsp;&amp;nbsp; STAT&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;STA&amp;nbsp;&amp;nbsp; LEN&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LDHX&amp;nbsp; #Array&amp;nbsp;&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 array address&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;STHX&amp;nbsp; ADRR&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;WR_DATA_L2:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AIX&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #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; ;add 1 to index register&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DBNZ&amp;nbsp;&amp;nbsp;&amp;nbsp; STAT,WR_DATA_L2&amp;nbsp;&amp;nbsp; ;decrement &amp;amp; branch if not zero&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lda &amp;nbsp;#(mFPVIOL+mFACCERR) ;mask&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sta &amp;nbsp;FSTAT &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;abort any command and clear errors&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mov&amp;nbsp;&amp;nbsp;#ProgSubSize, STAT&amp;nbsp;;length of flash prog routine to STAT&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;tsx&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;sthx&amp;nbsp;STACK&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;ldhx &amp;nbsp;#ProgSubEnd-1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;point at last byte to move to stack&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;DoOnStack3:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;lda &amp;nbsp;,x &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;;read from flash&lt;BR /&gt;&amp;nbsp;&amp;nbsp;psha &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;;move onto stack&lt;BR /&gt;&amp;nbsp;&amp;nbsp;aix &amp;nbsp;#-1 &amp;nbsp;&amp;nbsp;&amp;nbsp;;next byte to move&lt;BR /&gt;&amp;nbsp;&amp;nbsp;dbnz&amp;nbsp;STAT, DoOnStack3&lt;/DIV&gt;&lt;DIV&gt;ProgSub2: &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;lda &amp;nbsp;FSTAT &amp;nbsp;&amp;nbsp;&amp;nbsp;;check FCBEF&lt;BR /&gt;&amp;nbsp;&amp;nbsp;and &amp;nbsp;#mFCBEF &amp;nbsp;&amp;nbsp;;mask it&lt;BR /&gt;&amp;nbsp;&amp;nbsp;beq&amp;nbsp;&amp;nbsp;ProgSub2&amp;nbsp;&amp;nbsp;&amp;nbsp;;loop if not empty&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;ldhx&amp;nbsp;ADRR&lt;BR /&gt;&amp;nbsp;&amp;nbsp;lda&amp;nbsp;&amp;nbsp;0,x&lt;BR /&gt;&amp;nbsp;&amp;nbsp;aix&amp;nbsp;&amp;nbsp;#1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;sthx&amp;nbsp;ADRR&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;ldhx &amp;nbsp;ADRS&amp;nbsp;&amp;nbsp; &amp;nbsp;;get flash address&lt;BR /&gt;&amp;nbsp;&amp;nbsp;sta &amp;nbsp;0,x &amp;nbsp;&amp;nbsp;&amp;nbsp;;write to flash; latch addr and data&lt;BR /&gt;&amp;nbsp;&amp;nbsp;aix&amp;nbsp;&amp;nbsp;#1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;sthx&amp;nbsp;ADRS&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;lda &amp;nbsp;#mBurstProg &amp;nbsp;;get flash command&lt;BR /&gt;&amp;nbsp;&amp;nbsp;sta &amp;nbsp;FCMD &amp;nbsp;&amp;nbsp;&amp;nbsp;;write the flash command&lt;BR /&gt;&amp;nbsp;&amp;nbsp;lda &amp;nbsp;#mFCBEF &amp;nbsp;&amp;nbsp;;mask to initiate command&lt;BR /&gt;&amp;nbsp;&amp;nbsp;sta &amp;nbsp;FSTAT &amp;nbsp;&amp;nbsp;&amp;nbsp;;[pwpp] register command&lt;BR /&gt;&amp;nbsp;&amp;nbsp;dbnz&amp;nbsp;LEN,ProgSub2&amp;nbsp;&amp;nbsp;;all bytes in a row?&lt;BR /&gt;ChkDoneProg2:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;lda &amp;nbsp;FSTAT &amp;nbsp;&amp;nbsp;&amp;nbsp;;[prpp] so FCCF is valid&lt;BR /&gt;&amp;nbsp;&amp;nbsp;lsla &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;;FCCF now in MSB&lt;BR /&gt;&amp;nbsp;&amp;nbsp;bpl &amp;nbsp;ChkDoneProg2 &amp;nbsp;;loop if FCCF = 0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;ldhx&amp;nbsp;STACK&lt;BR /&gt;&amp;nbsp;&amp;nbsp;txs&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;rts&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Mar 2006 05:48:42 GMT</pubDate>
    <dc:creator>Gcoakley</dc:creator>
    <dc:date>2006-03-15T05:48:42Z</dc:date>
    <item>
      <title>Simplified Flash Erase and Write Functions for HCS08GT32</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Simplified-Flash-Erase-and-Write-Functions-for-HCS08GT32/m-p/128764#M1761</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hello All,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I am trying to&amp;nbsp;simplify the slfprg-s08gbgt.asm bootloader code to two basic functions: erase and write.&amp;nbsp; So far, I have not had much luck at this and the functions do not appear to change anything in memory.&amp;nbsp; I have attached what I have at the bottom of this posting.&amp;nbsp; Any help would be appreciated.&amp;nbsp; If someone has already done this, could you please post your solution.&amp;nbsp; Thank you.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;-gcoakley&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;EraseFlashPage:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LDHX&amp;nbsp;&amp;nbsp;&amp;nbsp; Address&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;STHX&amp;nbsp;&amp;nbsp;&amp;nbsp; ADRS&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lda &amp;nbsp;#(mFPVIOL+mFACCERR) ;mask&lt;BR /&gt;&amp;nbsp;&amp;nbsp;sta &amp;nbsp;FSTAT &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;;abort any command and clear errors&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;mov&amp;nbsp;&amp;nbsp;#EraseSubSize, STAT&amp;nbsp;;length of flash erase routine to STAT&lt;BR /&gt;&amp;nbsp;&amp;nbsp;tsx&lt;BR /&gt;&amp;nbsp;&amp;nbsp;sthx&amp;nbsp;STACK&lt;BR /&gt;&amp;nbsp;&amp;nbsp;ldhx &amp;nbsp;#EraseSubEnd-1 &amp;nbsp;&amp;nbsp;;point at last byte to move to stack&lt;/DIV&gt;&lt;DIV&gt;DoOnStack2:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;lda &amp;nbsp;,x &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;;read from flash&lt;BR /&gt;&amp;nbsp;&amp;nbsp;psha &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;;move onto stack&lt;BR /&gt;&amp;nbsp;&amp;nbsp;aix &amp;nbsp;#-1 &amp;nbsp;&amp;nbsp;&amp;nbsp;;next byte to move&lt;BR /&gt;&amp;nbsp;&amp;nbsp;dbnz&amp;nbsp;STAT, DoOnStack2&lt;/DIV&gt;&lt;DIV&gt;EraseSub2: &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;ldhx &amp;nbsp;ADRS&amp;nbsp;&amp;nbsp; &amp;nbsp;;get flash address&lt;BR /&gt;&amp;nbsp;&amp;nbsp;sta &amp;nbsp;0,x &amp;nbsp;&amp;nbsp;&amp;nbsp;;write to flash; latch addr and data&lt;BR /&gt;&amp;nbsp;&amp;nbsp;lda &amp;nbsp;#mPageErase &amp;nbsp;;get flash command&lt;BR /&gt;&amp;nbsp;&amp;nbsp;sta &amp;nbsp;FCMD &amp;nbsp;&amp;nbsp;&amp;nbsp;;write the flash command&lt;BR /&gt;&amp;nbsp;&amp;nbsp;lda &amp;nbsp;#mFCBEF &amp;nbsp;&amp;nbsp;;mask to initiate command&lt;BR /&gt;&amp;nbsp;&amp;nbsp;sta &amp;nbsp;FSTAT &amp;nbsp;&amp;nbsp;&amp;nbsp;;[pwpp] register command&lt;BR /&gt;&amp;nbsp;&amp;nbsp;nop &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;;[p] want min 4~ from w cycle to r&lt;BR /&gt;ChkDoneErase2:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;lda &amp;nbsp;FSTAT &amp;nbsp;&amp;nbsp;&amp;nbsp;;[prpp] so FCCF is valid&lt;BR /&gt;&amp;nbsp;&amp;nbsp;lsla &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;;FCCF now in MSB&lt;BR /&gt;&amp;nbsp;&amp;nbsp;bpl &amp;nbsp;ChkDoneErase2 &amp;nbsp;;loop if FCCF = 0&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;ldhx&amp;nbsp;STACK&lt;BR /&gt;&amp;nbsp;&amp;nbsp;txs&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;rts&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;WriteFlashPage:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LDHX&amp;nbsp; Address&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;STHX&amp;nbsp; ADRS&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LDA&amp;nbsp;&amp;nbsp; ALEN&amp;nbsp;&amp;nbsp;&amp;nbsp;&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 length&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;STA&amp;nbsp;&amp;nbsp; STAT&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;STA&amp;nbsp;&amp;nbsp; LEN&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LDHX&amp;nbsp; #Array&amp;nbsp;&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 array address&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;STHX&amp;nbsp; ADRR&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;WR_DATA_L2:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AIX&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #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; ;add 1 to index register&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DBNZ&amp;nbsp;&amp;nbsp;&amp;nbsp; STAT,WR_DATA_L2&amp;nbsp;&amp;nbsp; ;decrement &amp;amp; branch if not zero&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lda &amp;nbsp;#(mFPVIOL+mFACCERR) ;mask&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sta &amp;nbsp;FSTAT &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;abort any command and clear errors&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mov&amp;nbsp;&amp;nbsp;#ProgSubSize, STAT&amp;nbsp;;length of flash prog routine to STAT&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;tsx&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;sthx&amp;nbsp;STACK&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;ldhx &amp;nbsp;#ProgSubEnd-1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;point at last byte to move to stack&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;DoOnStack3:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;lda &amp;nbsp;,x &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;;read from flash&lt;BR /&gt;&amp;nbsp;&amp;nbsp;psha &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;;move onto stack&lt;BR /&gt;&amp;nbsp;&amp;nbsp;aix &amp;nbsp;#-1 &amp;nbsp;&amp;nbsp;&amp;nbsp;;next byte to move&lt;BR /&gt;&amp;nbsp;&amp;nbsp;dbnz&amp;nbsp;STAT, DoOnStack3&lt;/DIV&gt;&lt;DIV&gt;ProgSub2: &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;lda &amp;nbsp;FSTAT &amp;nbsp;&amp;nbsp;&amp;nbsp;;check FCBEF&lt;BR /&gt;&amp;nbsp;&amp;nbsp;and &amp;nbsp;#mFCBEF &amp;nbsp;&amp;nbsp;;mask it&lt;BR /&gt;&amp;nbsp;&amp;nbsp;beq&amp;nbsp;&amp;nbsp;ProgSub2&amp;nbsp;&amp;nbsp;&amp;nbsp;;loop if not empty&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;ldhx&amp;nbsp;ADRR&lt;BR /&gt;&amp;nbsp;&amp;nbsp;lda&amp;nbsp;&amp;nbsp;0,x&lt;BR /&gt;&amp;nbsp;&amp;nbsp;aix&amp;nbsp;&amp;nbsp;#1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;sthx&amp;nbsp;ADRR&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;ldhx &amp;nbsp;ADRS&amp;nbsp;&amp;nbsp; &amp;nbsp;;get flash address&lt;BR /&gt;&amp;nbsp;&amp;nbsp;sta &amp;nbsp;0,x &amp;nbsp;&amp;nbsp;&amp;nbsp;;write to flash; latch addr and data&lt;BR /&gt;&amp;nbsp;&amp;nbsp;aix&amp;nbsp;&amp;nbsp;#1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;sthx&amp;nbsp;ADRS&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;lda &amp;nbsp;#mBurstProg &amp;nbsp;;get flash command&lt;BR /&gt;&amp;nbsp;&amp;nbsp;sta &amp;nbsp;FCMD &amp;nbsp;&amp;nbsp;&amp;nbsp;;write the flash command&lt;BR /&gt;&amp;nbsp;&amp;nbsp;lda &amp;nbsp;#mFCBEF &amp;nbsp;&amp;nbsp;;mask to initiate command&lt;BR /&gt;&amp;nbsp;&amp;nbsp;sta &amp;nbsp;FSTAT &amp;nbsp;&amp;nbsp;&amp;nbsp;;[pwpp] register command&lt;BR /&gt;&amp;nbsp;&amp;nbsp;dbnz&amp;nbsp;LEN,ProgSub2&amp;nbsp;&amp;nbsp;;all bytes in a row?&lt;BR /&gt;ChkDoneProg2:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;lda &amp;nbsp;FSTAT &amp;nbsp;&amp;nbsp;&amp;nbsp;;[prpp] so FCCF is valid&lt;BR /&gt;&amp;nbsp;&amp;nbsp;lsla &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;;FCCF now in MSB&lt;BR /&gt;&amp;nbsp;&amp;nbsp;bpl &amp;nbsp;ChkDoneProg2 &amp;nbsp;;loop if FCCF = 0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;ldhx&amp;nbsp;STACK&lt;BR /&gt;&amp;nbsp;&amp;nbsp;txs&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;rts&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Mar 2006 05:48:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Simplified-Flash-Erase-and-Write-Functions-for-HCS08GT32/m-p/128764#M1761</guid>
      <dc:creator>Gcoakley</dc:creator>
      <dc:date>2006-03-15T05:48:42Z</dc:date>
    </item>
    <item>
      <title>Re: Simplified Flash Erase and Write Functions for HCS08GT32</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Simplified-Flash-Erase-and-Write-Functions-for-HCS08GT32/m-p/128765#M1762</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Hallo,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;maybe one little thing overlooked - the Flash module needs (before programming) the proper clock to be programmed - writting into FCDIV register - just like what bootloader does&amp;nbsp;during its initialization:&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LDA&amp;nbsp;&amp;nbsp;&amp;nbsp; FSTAT&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ORA&amp;nbsp;&amp;nbsp; &amp;nbsp;#mFACCERR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;STA&amp;nbsp;&amp;nbsp; &amp;nbsp;FSTAT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;; clear any FACCERR flag&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&lt;FONT face="Courier New" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LDA&amp;nbsp;&amp;nbsp; &amp;nbsp;#%00001101&amp;nbsp;&amp;nbsp;; div by 13 to fit into 150-200kHz Flash clock!&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;STA&amp;nbsp;&amp;nbsp;FCDIV&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;The best (and original) source of these routines is the S08 core reference manual (HCS08RM.pdf if I remember well) available from all S08 summary pages. All details explained there.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Hope it helps,&lt;/DIV&gt;&lt;DIV&gt;regards Pavel, ok2ucx &lt;FONT size="1"&gt;(AN2295 developper &lt;IMG alt=":smileyhappy:" class="emoticon emoticon-smileyhappy" id="smileyhappy" src="http://freescale.i.lithium.com/i/smilies/16x16_smiley-happy.gif" title="Smiley Happy" /&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Freescale Roznov Labs, Czech Republic EU&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Mar 2006 20:30:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Simplified-Flash-Erase-and-Write-Functions-for-HCS08GT32/m-p/128765#M1762</guid>
      <dc:creator>ok2ucx</dc:creator>
      <dc:date>2006-03-16T20:30:03Z</dc:date>
    </item>
    <item>
      <title>Re: Simplified Flash Erase and Write Functions for HCS08GT32</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Simplified-Flash-Erase-and-Write-Functions-for-HCS08GT32/m-p/128766#M1763</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Thanks Pavel,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I did overlook the clock programming.&amp;nbsp; I will also look at the S08 core reference manual to check and possibly rewrite&amp;nbsp;the code.&amp;nbsp; Thanks again.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;-gcoakley&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 17 Mar 2006 02:06:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Simplified-Flash-Erase-and-Write-Functions-for-HCS08GT32/m-p/128766#M1763</guid>
      <dc:creator>Gcoakley</dc:creator>
      <dc:date>2006-03-17T02:06:32Z</dc:date>
    </item>
    <item>
      <title>Re: Simplified Flash Erase and Write Functions for HCS08GT32</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Simplified-Flash-Erase-and-Write-Functions-for-HCS08GT32/m-p/128767#M1764</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;P&gt;Ok, I have done a rewrite of the flash functions and the erase call seems to work perfectly.&amp;nbsp; I am having trouble with the flash writing function however.&amp;nbsp; If I step through or use breakpoints to step through one byte write at a time, the memory locations are written to correctly.&amp;nbsp; But if I execute the code without breakpoints, the memory locations are filled with the character (0x04).&amp;nbsp; This seems like a timing issue, but I am not sure.&amp;nbsp; I am using Pavel's clock setting below to set the clock correctly.&amp;nbsp; Any advice would be appreciated.&amp;nbsp; I have attached&amp;nbsp;the code below.&lt;/P&gt;&lt;P&gt;-gcoakley&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;prog64:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LDA&amp;nbsp;&amp;nbsp; #$40&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;STA&amp;nbsp;&amp;nbsp; $715&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;prog64loop:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LDA&amp;nbsp;&amp;nbsp; $1825&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;check flash status register&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AND&amp;nbsp;&amp;nbsp; #$80&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;mask for empty flag&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BEQ&amp;nbsp;&amp;nbsp; prog64loop&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LDHX&amp;nbsp; $700&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;load source address&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LDA&amp;nbsp;&amp;nbsp; 0,x&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AIX&amp;nbsp;&amp;nbsp; #1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;STHX&amp;nbsp; $700&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;store new source address+1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LDHX&amp;nbsp; $705&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;load destination address&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;STA&amp;nbsp;&amp;nbsp; 0,x&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AIX&amp;nbsp;&amp;nbsp; #1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;STHX&amp;nbsp; $705&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;store new destination address+1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LDA&amp;nbsp;&amp;nbsp; #$25&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;burst program command&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;STA&amp;nbsp;&amp;nbsp; $1826&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;write command&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LDA&amp;nbsp;&amp;nbsp; #$80&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;mask to initiate command&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;STA&amp;nbsp;&amp;nbsp; $1825&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;register command&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LDA&amp;nbsp;&amp;nbsp; $715&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;load loop counter&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DECA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;decrement counter&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;STA&amp;nbsp;&amp;nbsp; $715&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;save counter&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CMP&amp;nbsp;&amp;nbsp; #$0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BNE&amp;nbsp;&amp;nbsp; prog64loop&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;prog64chk:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LDA&amp;nbsp;&amp;nbsp; $1825&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;check flash status register&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LSLA&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BPL&amp;nbsp;&amp;nbsp; prog64chk&amp;nbsp;&amp;nbsp; ;loop if FCCF = 0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RTS&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 29 Mar 2006 10:24:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Simplified-Flash-Erase-and-Write-Functions-for-HCS08GT32/m-p/128767#M1764</guid>
      <dc:creator>Gcoakley</dc:creator>
      <dc:date>2006-03-29T10:24:27Z</dc:date>
    </item>
  </channel>
</rss>

