<?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>S12 / MagniV MicrocontrollersのトピックProblem in programming FLASH with Do_On_Stack routine</title>
    <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Problem-in-programming-FLASH-with-Do-On-Stack-routine/m-p/139960#M2977</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi, &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm using the MC9S12E128 part.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm using the Freescale LRAE (flash bootloader allowing to load a program in RAM) to load a bootloader in the RAM. My bootloader have then to erase FLASH and write a progream into it.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I've used the AN2720 and AN2153 to do this. I'm using the AN2720SW (flash.c and Do_On_Stack.asm) to erase/write to flash. But i've a problem because my program blocks in the Do_On_Stack routine. Moreover, because of my bootloader in RAM, i can't use the BDM to make step-by-step.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Do you know why my program can block in the Do_On_Stack routine ?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;;*******************************************************************&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;* MOTOROLA &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;*&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;* DESCRIPTION: S12 Flash Asm Routines&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;* SOURCE: Do_On_Stach.asm&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;* COPYRIGHT: © 04/2004 Made in the USA&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;* AUTHOR: rat579 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;* REV. HISTORY: 060304 - fixed CCR return value and optimized&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;* in SpSub routine &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;*&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;*******************************************************************/&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;*****************************************************************************&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;; Local defines&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;*****************************************************************************&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;CBEIF EQU $80&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;FSTAT EQU $105&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;FCMD EQU $106&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;CCIF EQU $40&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;PAGE_ADDR EQU $30&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; xdef DoOnStack&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;*********************************************************************&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;* DoOnStack - copy SpSub onto stack and call it (see also SpSub)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;* De-allocates the stack space used by SpSub after returning from it.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;* Allows final steps in a flash prog/erase command to execute out&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;* of RAM (on stack) while flash is out of the memory map&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;* This routine can be used for flash word-program or erase commands&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;*&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;* Calling Convention:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;* jsr DoOnStack&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;*&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;* Uses 32 bytes on stack + 3 bytes if Call instruction used&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;********************************************************************&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;DoOnStack: &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; pshb ;save B - PPAGE&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ldx #SpSubEnd-2 ;point at last word to move to stack&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;SpmoveLoop: ldd 2,x- ;read from flash&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; pshd ;move onto stack&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; cpx #SpSub-2 ;past end?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; bne SpmoveLoop ;loop till whole sub on stack&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; tfr sp,x ;point to sub on stack&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ldaa #CBEIF ;preload mask to register command&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; call 0,x,00 ;execute the sub on the stack&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; leas SpSubEnd-SpSub,sp ;de-allocate space used by sub&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; pulb ;restore B&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; rtc ;to flash where DoOnStack was called&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ; assume banked calling function&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;;*********************************************************************&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;* SpSub - register flash command and wait for Flash CCIF&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;* this subroutine is copied onto the stack before executing&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;* because you can't execute out of flash while a flash command is&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;* in progress (see DoOnStack to see how this is used)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;*&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;* Note: must be even # of bytes!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;*&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;* Uses 24 bytes on stack + 3 bytes for CALL above&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;*********************************************************************&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; EVEN ;Make code start word aliened&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;SpSub: &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ldab SpSubEnd-SpSub+3,sp ;get PPAGE back from stack&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; stab PAGE_ADDR ;Store the PPAGE address&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; tfr ccr,b ;get copy of ccr&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; orcc #$10 ;disable interrupts&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; staa FSTAT ;[PwO] register command&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; nop ;[O] wait min 4~ from w cycle to r&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; nop ;[O]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; nop ;[O]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; brclr FSTAT,CCIF,* ;[rfPPP] wait for queued commands to finish&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; tfr b,ccr ;restore ccr and int condition&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; rtc ;back into DoOnStack in flash&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;SpSubEnd:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/**********************************************************************/&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 16 Jun 2006 20:09:18 GMT</pubDate>
    <dc:creator>Gizzzmo</dc:creator>
    <dc:date>2006-06-16T20:09:18Z</dc:date>
    <item>
      <title>Problem in programming FLASH with Do_On_Stack routine</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Problem-in-programming-FLASH-with-Do-On-Stack-routine/m-p/139960#M2977</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi, &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm using the MC9S12E128 part.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm using the Freescale LRAE (flash bootloader allowing to load a program in RAM) to load a bootloader in the RAM. My bootloader have then to erase FLASH and write a progream into it.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I've used the AN2720 and AN2153 to do this. I'm using the AN2720SW (flash.c and Do_On_Stack.asm) to erase/write to flash. But i've a problem because my program blocks in the Do_On_Stack routine. Moreover, because of my bootloader in RAM, i can't use the BDM to make step-by-step.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Do you know why my program can block in the Do_On_Stack routine ?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;;*******************************************************************&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;* MOTOROLA &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;*&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;* DESCRIPTION: S12 Flash Asm Routines&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;* SOURCE: Do_On_Stach.asm&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;* COPYRIGHT: © 04/2004 Made in the USA&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;* AUTHOR: rat579 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;* REV. HISTORY: 060304 - fixed CCR return value and optimized&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;* in SpSub routine &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;*&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;*******************************************************************/&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;*****************************************************************************&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;; Local defines&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;*****************************************************************************&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;CBEIF EQU $80&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;FSTAT EQU $105&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;FCMD EQU $106&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;CCIF EQU $40&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;PAGE_ADDR EQU $30&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; xdef DoOnStack&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;*********************************************************************&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;* DoOnStack - copy SpSub onto stack and call it (see also SpSub)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;* De-allocates the stack space used by SpSub after returning from it.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;* Allows final steps in a flash prog/erase command to execute out&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;* of RAM (on stack) while flash is out of the memory map&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;* This routine can be used for flash word-program or erase commands&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;*&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;* Calling Convention:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;* jsr DoOnStack&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;*&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;* Uses 32 bytes on stack + 3 bytes if Call instruction used&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;********************************************************************&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;DoOnStack: &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; pshb ;save B - PPAGE&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ldx #SpSubEnd-2 ;point at last word to move to stack&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;SpmoveLoop: ldd 2,x- ;read from flash&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; pshd ;move onto stack&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; cpx #SpSub-2 ;past end?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; bne SpmoveLoop ;loop till whole sub on stack&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; tfr sp,x ;point to sub on stack&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ldaa #CBEIF ;preload mask to register command&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; call 0,x,00 ;execute the sub on the stack&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; leas SpSubEnd-SpSub,sp ;de-allocate space used by sub&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; pulb ;restore B&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; rtc ;to flash where DoOnStack was called&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ; assume banked calling function&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;;*********************************************************************&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;* SpSub - register flash command and wait for Flash CCIF&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;* this subroutine is copied onto the stack before executing&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;* because you can't execute out of flash while a flash command is&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;* in progress (see DoOnStack to see how this is used)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;*&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;* Note: must be even # of bytes!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;*&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;* Uses 24 bytes on stack + 3 bytes for CALL above&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;;*********************************************************************&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; EVEN ;Make code start word aliened&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;SpSub: &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ldab SpSubEnd-SpSub+3,sp ;get PPAGE back from stack&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; stab PAGE_ADDR ;Store the PPAGE address&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; tfr ccr,b ;get copy of ccr&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; orcc #$10 ;disable interrupts&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; staa FSTAT ;[PwO] register command&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; nop ;[O] wait min 4~ from w cycle to r&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; nop ;[O]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; nop ;[O]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; brclr FSTAT,CCIF,* ;[rfPPP] wait for queued commands to finish&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; tfr b,ccr ;restore ccr and int condition&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; rtc ;back into DoOnStack in flash&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;SpSubEnd:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/**********************************************************************/&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 16 Jun 2006 20:09:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Problem-in-programming-FLASH-with-Do-On-Stack-routine/m-p/139960#M2977</guid>
      <dc:creator>Gizzzmo</dc:creator>
      <dc:date>2006-06-16T20:09:18Z</dc:date>
    </item>
    <item>
      <title>Re: Problem in programming FLASH with Do_On_Stack routine</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Problem-in-programming-FLASH-with-Do-On-Stack-routine/m-p/139961#M2978</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;I have found where i'm stucked. The flash is well erased/write but i'm stucked in the loop "brclr FSTAT,CCIF,*;". Is there a problem with this line ?&lt;BR /&gt;&lt;BR /&gt;Thanks.&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Jun 2006 16:17:54 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Problem-in-programming-FLASH-with-Do-On-Stack-routine/m-p/139961#M2978</guid>
      <dc:creator>Gizzzmo</dc:creator>
      <dc:date>2006-06-19T16:17:54Z</dc:date>
    </item>
    <item>
      <title>Re: Problem in programming FLASH with Do_On_Stack routine</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Problem-in-programming-FLASH-with-Do-On-Stack-routine/m-p/139962#M2979</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;I think so. I believe that&lt;BR /&gt;&lt;PRE&gt;        brclr   FSTAT,CCIF,*&lt;/PRE&gt;&lt;BR /&gt;should be&lt;BR /&gt;&lt;PRE&gt;        brclr   6,FSTAT,*&lt;/PRE&gt;&lt;BR /&gt;Since CCIF is defined as a mask ($40), it's no good in a BRCLR instruction. I prefer to make definitions more like this:&lt;BR /&gt;&lt;PRE&gt;CCIFb:  equ     6       ;command complete flag bit
CCIFm:  equ     $40     ;command complete flag mask&lt;/PRE&gt;&lt;P&gt;Message Edited by rocco on &lt;SPAN class="date_text"&gt;2006-06-19&lt;/SPAN&gt; &lt;SPAN class="time_text"&gt;12:45 PM&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Oct 2020 08:40:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Problem-in-programming-FLASH-with-Do-On-Stack-routine/m-p/139962#M2979</guid>
      <dc:creator>rocco</dc:creator>
      <dc:date>2020-10-29T08:40:07Z</dc:date>
    </item>
    <item>
      <title>Re: Problem in programming FLASH with Do_On_Stack routine</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Problem-in-programming-FLASH-with-Do-On-Stack-routine/m-p/139963#M2980</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;rocco,&lt;BR /&gt;&lt;BR /&gt;You sound like your talking about HC08 (I guess, or I do it with HC05). The HC12 CPU uses the mask (i.e. $40) instead of the bit position. Also note the addr comes first, then the mask in the HC12 instructions.&lt;BR /&gt;&lt;PRE&gt;brclr   FSTAT,CCIF,*&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Oct 2020 08:40:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Problem-in-programming-FLASH-with-Do-On-Stack-routine/m-p/139963#M2980</guid>
      <dc:creator>imajeff</dc:creator>
      <dc:date>2020-10-29T08:40:09Z</dc:date>
    </item>
    <item>
      <title>Re: Problem in programming FLASH with Do_On_Stack routine</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Problem-in-programming-FLASH-with-Do-On-Stack-routine/m-p/139964#M2981</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Oops, sorry, that was an HC08ism. I forgot what forum I was in . . .&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 20 Jun 2006 07:17:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Problem-in-programming-FLASH-with-Do-On-Stack-routine/m-p/139964#M2981</guid>
      <dc:creator>rocco</dc:creator>
      <dc:date>2006-06-20T07:17:28Z</dc:date>
    </item>
    <item>
      <title>Re: Problem in programming FLASH with Do_On_Stack routine</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Problem-in-programming-FLASH-with-Do-On-Stack-routine/m-p/139965#M2982</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;I didn't look too much, but I do not see where you are writing the data and address to the Flash???&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 20 Jun 2006 12:31:59 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Problem-in-programming-FLASH-with-Do-On-Stack-routine/m-p/139965#M2982</guid>
      <dc:creator>Sten</dc:creator>
      <dc:date>2006-06-20T12:31:59Z</dc:date>
    </item>
  </channel>
</rss>

