<?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>Kinetis Microcontrollers中的主题 Re: Stack Pointer / Program counter</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Stack-Pointer-Program-counter/m-p/397778#M21980</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Carlos,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: inherit;"&gt;Please also consider the ARM Thumb bit: function pointers (and vectors pointers) have the Thumb bit set in the address, to mark that they are thumb functions.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;So when using the ARM Thumb instruction, the really PC address should plus 0x1.&lt;/P&gt;&lt;P&gt;Wish it helps.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Ma Hui&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 18 Jun 2015 04:27:43 GMT</pubDate>
    <dc:creator>Hui_Ma</dc:creator>
    <dc:date>2015-06-18T04:27:43Z</dc:date>
    <item>
      <title>Stack Pointer / Program counter</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Stack-Pointer-Program-counter/m-p/397772#M21974</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;how to control the PC, to return to a function address ?.&lt;/P&gt;&lt;P&gt;funtion ( my_task, absolute addres )&lt;/P&gt;&lt;P&gt;set Stack Pointer initial value&lt;/P&gt;&lt;P&gt;set program&amp;nbsp; counter &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="Pccounter.bmp"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/27971iE9C9A6795B807CAE/image-size/large?v=v2&amp;amp;px=999" role="button" title="Pccounter.bmp" alt="Pccounter.bmp" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;goal is when there is an error in the program.&lt;/P&gt;&lt;P&gt;the ISR_timer&amp;nbsp; resets and returns the program,&amp;nbsp; to the beginning.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;hope you understand, thank you.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 12 Jun 2015 18:36:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Stack-Pointer-Program-counter/m-p/397772#M21974</guid>
      <dc:creator>CCandido</dc:creator>
      <dc:date>2015-06-12T18:36:27Z</dc:date>
    </item>
    <item>
      <title>Re: Stack Pointer / Program counter</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Stack-Pointer-Program-counter/m-p/397773#M21975</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Carlos,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please check below code about how to jumper to application code:&lt;/P&gt;&lt;P&gt;//-----------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;// FUNCTION:&amp;nbsp;&amp;nbsp;&amp;nbsp; JumpToUserApplication&lt;/P&gt;&lt;P&gt;// SCOPE:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Bootloader application system function&lt;/P&gt;&lt;P&gt;// DESCRIPTION: The function startup user application&lt;/P&gt;&lt;P&gt;//&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;/P&gt;&lt;P&gt;// PARAMETERS:&amp;nbsp; pointer on user vector table&lt;/P&gt;&lt;P&gt;//&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;/P&gt;&lt;P&gt;// RETURNS:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; function never go back&lt;/P&gt;&lt;P&gt;//-----------------------------------------------------------------------------&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void JumpToUserApplication(LWord userSP, LWord userStartup)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // set up stack pointer&lt;/P&gt;&lt;P&gt;&amp;nbsp; __asm("msr msp, r0");&lt;/P&gt;&lt;P&gt;&amp;nbsp; __asm("msr psp, r0");&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; // Jump to PC (r1)&lt;/P&gt;&lt;P&gt;&amp;nbsp; __asm("mov pc, r1"); &lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The Kinetis Initial PC located at address 0x0000_0004;&lt;/P&gt;&lt;P&gt;the initial Stack Pointer at address 0x0000_0000;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Wish it helps.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Ma Hui&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 15 Jun 2015 04:19:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Stack-Pointer-Program-counter/m-p/397773#M21975</guid>
      <dc:creator>Hui_Ma</dc:creator>
      <dc:date>2015-06-15T04:19:08Z</dc:date>
    </item>
    <item>
      <title>Re: Stack Pointer / Program counter</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Stack-Pointer-Program-counter/m-p/397774#M21976</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Ma,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;my problems it Returned from ( execute code ram ) case have error.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ISR time periodic in Flash, case error ( exit to ) flash programa monitor.&lt;/P&gt;&lt;P&gt;//---------------------------------------------------------&lt;/P&gt;&lt;P&gt;void TI1_isr (void){&amp;nbsp; my timer in flash = 100uS.&lt;/P&gt;&lt;P&gt;-----&lt;/P&gt;&lt;P&gt;-----&lt;/P&gt;&lt;P&gt;return&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _Nomals&lt;/P&gt;&lt;P&gt;or&lt;/P&gt;&lt;P&gt;return&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _exit_to_flash_address&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;//---------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; void TI1_isr (void){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;-----Disassembly ( cw10.5 )&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; push {r7}&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;lt;----- r7 = PC program counter ?&amp;nbsp; saved&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; add r7, sp, #0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&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;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov sp, r7&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pop {r7}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bx lr&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nop&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;whats register load PC ( address pointer my code flash to return )?&lt;/P&gt;&lt;P&gt;tks,&lt;/P&gt;&lt;P&gt;Carlos.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 15 Jun 2015 21:09:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Stack-Pointer-Program-counter/m-p/397774#M21976</guid>
      <dc:creator>CCandido</dc:creator>
      <dc:date>2015-06-15T21:09:08Z</dc:date>
    </item>
    <item>
      <title>Re: Stack Pointer / Program counter</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Stack-Pointer-Program-counter/m-p/397775#M21977</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Carlos,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;From &amp;lt;&amp;lt;Cortex™-M4 Devices Generic User Guide&amp;gt;&amp;gt; page16, there provides the processor core registers info below:&lt;/P&gt;&lt;P&gt;The PC at R15:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="2015-06-16_15-08-18.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/32728i33688C9142D18277/image-size/large?v=v2&amp;amp;px=999" role="button" title="2015-06-16_15-08-18.png" alt="2015-06-16_15-08-18.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Ma Hui&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 16 Jun 2015 07:10:15 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Stack-Pointer-Program-counter/m-p/397775#M21977</guid>
      <dc:creator>Hui_Ma</dc:creator>
      <dc:date>2015-06-16T07:10:15Z</dc:date>
    </item>
    <item>
      <title>Re: Stack Pointer / Program counter</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Stack-Pointer-Program-counter/m-p/397776#M21978</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Ma,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I need an equivalent way to use the HC08, but with Kinetis.&lt;/P&gt;&lt;P&gt;you can make the output of Ram program, within a timer ISR.&lt;/P&gt;&lt;P&gt;the variables does not matter anymore, go back to the task and restart it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;See example exit:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;__interrup_timer_100us_isr()&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;....&amp;nbsp; if(&amp;nbsp; exit&amp;nbsp; ) {&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; __asm ldhx&amp;nbsp; , #_my_address_task_in_flash&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 Stack&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; __asm txs;&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; // store H:X into the SP &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __asm rti;&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; // return from interrupt&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;tks,&lt;/P&gt;&lt;P&gt;Carlos.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 17 Jun 2015 17:07:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Stack-Pointer-Program-counter/m-p/397776#M21978</guid>
      <dc:creator>CCandido</dc:creator>
      <dc:date>2015-06-17T17:07:47Z</dc:date>
    </item>
    <item>
      <title>Re: Stack Pointer / Program counter</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Stack-Pointer-Program-counter/m-p/397777#M21979</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello &lt;SPAN&gt;&lt;SPAN&gt;carlos&lt;/SPAN&gt;&lt;/SPAN&gt; &lt;SPAN&gt;&lt;SPAN&gt;candido&lt;/SPAN&gt;&lt;/SPAN&gt;,&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;although I cannot catch your intention, do you &lt;SPAN&gt;wat&lt;/SPAN&gt; to change the return &lt;/SPAN&gt;&lt;SPAN&gt;addresses&lt;/SPAN&gt; of the __&lt;SPAN&gt;&lt;SPAN&gt;ISR&lt;/SPAN&gt;&lt;/SPAN&gt;_times_1oous()?&lt;/P&gt;&lt;P&gt;The __&lt;SPAN&gt;&lt;SPAN&gt;ISR&lt;/SPAN&gt;&lt;/SPAN&gt;_times_1oous should be invoked by the &lt;SPAN&gt;&lt;SPAN&gt;intermediate&lt;/SPAN&gt;&lt;/SPAN&gt; function as the following.&lt;/P&gt;&lt;PRE __default_attr="c++" __jive_macro_name="code" class="jive_macro_code jive_text_macro _jivemacro_uid_14345895382219506" data-renderedposition="71_8_1013_256" jivemacro_uid="_14345895382219506"&gt;&lt;P&gt;&lt;STRONG&gt;void __attribute__ (( naked )) __&lt;SPAN&gt;&lt;SPAN&gt;ISR&lt;/SPAN&gt;&lt;/SPAN&gt;_times_1oous(void) /* for &lt;SPAN&gt;&lt;SPAN&gt;normal&lt;/SPAN&gt;&lt;/SPAN&gt; &lt;SPAN&gt;&lt;SPAN&gt;gcc&lt;/SPAN&gt;&lt;/SPAN&gt; */&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;{&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;SPAN&gt;&lt;SPAN&gt;asm&lt;/SPAN&gt;&lt;/SPAN&gt; volatile(&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;"&lt;SPAN&gt;&lt;SPAN&gt;movs&lt;/SPAN&gt;&lt;/SPAN&gt; r0, #4¥t¥n"&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;"&lt;SPAN&gt;&lt;SPAN&gt;mov&lt;/SPAN&gt;&lt;/SPAN&gt; r1, &lt;SPAN&gt;&lt;SPAN&gt;lr¥t¥n&lt;/SPAN&gt;&lt;/SPAN&gt;"&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;"&lt;SPAN&gt;&lt;SPAN&gt;tst&lt;/SPAN&gt;&lt;/SPAN&gt; r0, r1¥t¥n" /* Check &lt;SPAN&gt;&lt;SPAN&gt;EXC&lt;/SPAN&gt;&lt;/SPAN&gt;_RETURN[2] */&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;"&lt;SPAN&gt;&lt;SPAN&gt;beq&lt;/SPAN&gt;&lt;/SPAN&gt; 1f¥t¥n"&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;"&lt;SPAN&gt;&lt;SPAN&gt;mrs&lt;/SPAN&gt;&lt;/SPAN&gt; r0, &lt;SPAN&gt;&lt;SPAN&gt;psp¥t¥n&lt;/SPAN&gt;&lt;/SPAN&gt;"&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;"&lt;SPAN&gt;&lt;SPAN&gt;ldr&lt;/SPAN&gt;&lt;/SPAN&gt; r1,=__&lt;SPAN&gt;&lt;SPAN&gt;ISR&lt;/SPAN&gt;&lt;/SPAN&gt;_times_1oous_&lt;SPAN&gt;&lt;SPAN&gt;main¥t¥n&lt;/SPAN&gt;&lt;/SPAN&gt;"&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;"&lt;SPAN&gt;&lt;SPAN&gt;bx&lt;/SPAN&gt;&lt;/SPAN&gt; r1¥t¥n"&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;"1:&lt;SPAN&gt;&lt;SPAN&gt;mrs&lt;/SPAN&gt;&lt;/SPAN&gt; r0,&lt;SPAN&gt;&lt;SPAN&gt;msp¥t¥n&lt;/SPAN&gt;&lt;/SPAN&gt;"&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;"&lt;SPAN&gt;&lt;SPAN&gt;ldr&lt;/SPAN&gt;&lt;/SPAN&gt; r1,=__&lt;SPAN&gt;&lt;SPAN&gt;ISR&lt;/SPAN&gt;&lt;/SPAN&gt;_times_1oous_&lt;SPAN&gt;&lt;SPAN&gt;main¥t¥n&lt;/SPAN&gt;&lt;/SPAN&gt;"&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;: /* no output */&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;: /* no input */&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;: "r0" /* clobber *&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;);&lt;/STRONG&gt;&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;or&lt;/P&gt;&lt;PRE __default_attr="c++" __jive_macro_name="code" class="jive_macro_code _jivemacro_uid_14345895613957281 jive_text_macro" data-renderedposition="348_8_1013_256" jivemacro_uid="_14345895613957281"&gt;&lt;P&gt;&lt;STRONG&gt;void __&lt;SPAN&gt;&lt;SPAN&gt;stackless&lt;/SPAN&gt;&lt;/SPAN&gt; __&lt;SPAN&gt;&lt;SPAN&gt;ISR&lt;/SPAN&gt;&lt;/SPAN&gt;_times_1oous(void) /* for &lt;SPAN&gt;&lt;SPAN&gt;IAR&lt;/SPAN&gt;&lt;/SPAN&gt; &lt;SPAN&gt;&lt;SPAN&gt;gcc&lt;/SPAN&gt;&lt;/SPAN&gt; */&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;{&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;SPAN&gt;&lt;SPAN&gt;asm&lt;/SPAN&gt;&lt;/SPAN&gt; volatile(&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;"&lt;SPAN&gt;&lt;SPAN&gt;movs&lt;/SPAN&gt;&lt;/SPAN&gt; r0, #4¥t¥n"&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;"&lt;SPAN&gt;&lt;SPAN&gt;mov&lt;/SPAN&gt;&lt;/SPAN&gt; r1, &lt;SPAN&gt;&lt;SPAN&gt;lr¥t¥n&lt;/SPAN&gt;&lt;/SPAN&gt;"&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;"&lt;SPAN&gt;&lt;SPAN&gt;tst&lt;/SPAN&gt;&lt;/SPAN&gt; r0, r1¥t¥n" /* Check &lt;SPAN&gt;&lt;SPAN&gt;EXC&lt;/SPAN&gt;&lt;/SPAN&gt;_RETURN[2] */&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;"&lt;SPAN&gt;&lt;SPAN&gt;beq&lt;/SPAN&gt;&lt;/SPAN&gt; 1f¥t¥n"&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;"&lt;SPAN&gt;&lt;SPAN&gt;mrs&lt;/SPAN&gt;&lt;/SPAN&gt; r0, &lt;SPAN&gt;&lt;SPAN&gt;psp¥t¥n&lt;/SPAN&gt;&lt;/SPAN&gt;"&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;"&lt;SPAN&gt;&lt;SPAN&gt;ldr&lt;/SPAN&gt;&lt;/SPAN&gt; r1,=__&lt;SPAN&gt;&lt;SPAN&gt;ISR&lt;/SPAN&gt;&lt;/SPAN&gt;_times_1oous_&lt;SPAN&gt;&lt;SPAN&gt;main¥t¥n&lt;/SPAN&gt;&lt;/SPAN&gt;"&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;"&lt;SPAN&gt;&lt;SPAN&gt;bx&lt;/SPAN&gt;&lt;/SPAN&gt; r1¥t¥n"&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;"1:&lt;SPAN&gt;&lt;SPAN&gt;mrs&lt;/SPAN&gt;&lt;/SPAN&gt; r0,&lt;SPAN&gt;&lt;SPAN&gt;msp¥t¥n&lt;/SPAN&gt;&lt;/SPAN&gt;"&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;"&lt;SPAN&gt;&lt;SPAN&gt;ldr&lt;/SPAN&gt;&lt;/SPAN&gt; r1,=__&lt;SPAN&gt;&lt;SPAN&gt;ISR&lt;/SPAN&gt;&lt;/SPAN&gt;_times_1oous_&lt;SPAN&gt;&lt;SPAN&gt;main¥t¥n&lt;/SPAN&gt;&lt;/SPAN&gt;"&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;: /* no output */&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;: /* no input */&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;: "r0" /* clobber *&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;);&lt;/STRONG&gt;&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;and, in both cases,&lt;/P&gt;&lt;PRE __default_attr="c++" __jive_macro_name="code" class="jive_macro_code _jivemacro_uid_14345895785805390 jive_text_macro" data-renderedposition="625_8_1013_64" jivemacro_uid="_14345895785805390"&gt;&lt;P&gt;&lt;STRONG&gt;void __&lt;SPAN&gt;&lt;SPAN&gt;ISR&lt;/SPAN&gt;&lt;/SPAN&gt;_times_1oous_main(unsigned &lt;SPAN&gt;&lt;SPAN&gt;int&lt;/SPAN&gt;&lt;/SPAN&gt; *&lt;SPAN&gt;&lt;SPAN&gt;intr&lt;/SPAN&gt;&lt;/SPAN&gt;_&lt;SPAN&gt;&lt;SPAN&gt;args&lt;/SPAN&gt;&lt;/SPAN&gt;)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;{&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; intr_&lt;SPAN&gt;&lt;SPAN&gt;args&lt;/SPAN&gt;&lt;/SPAN&gt;[6]="return address"&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="text-decoration: line-through;"&gt;&lt;STRONG&gt;}&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;I hope these will help you.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;Yasuhiko&lt;/SPAN&gt;&lt;/SPAN&gt; &lt;SPAN&gt;&lt;SPAN&gt;Koumoto&lt;/SPAN&gt;&lt;/SPAN&gt;.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 17 Jun 2015 23:45:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Stack-Pointer-Program-counter/m-p/397777#M21979</guid>
      <dc:creator>yasuhikokoumoto</dc:creator>
      <dc:date>2015-06-17T23:45:28Z</dc:date>
    </item>
    <item>
      <title>Re: Stack Pointer / Program counter</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Stack-Pointer-Program-counter/m-p/397778#M21980</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Carlos,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: inherit;"&gt;Please also consider the ARM Thumb bit: function pointers (and vectors pointers) have the Thumb bit set in the address, to mark that they are thumb functions.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;So when using the ARM Thumb instruction, the really PC address should plus 0x1.&lt;/P&gt;&lt;P&gt;Wish it helps.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Ma Hui&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 18 Jun 2015 04:27:43 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Stack-Pointer-Program-counter/m-p/397778#M21980</guid>
      <dc:creator>Hui_Ma</dc:creator>
      <dc:date>2015-06-18T04:27:43Z</dc:date>
    </item>
    <item>
      <title>Re: Stack Pointer / Program counter</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Stack-Pointer-Program-counter/m-p/397779#M21981</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Ma,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I tested your code, step 1 = ok.&lt;/P&gt;&lt;P&gt;lack only reset the variables and registers, to launch the application again.&lt;/P&gt;&lt;P&gt;I have to turn off the timer in return because it causes error.&lt;/P&gt;&lt;P&gt;if you can do the reset ALL, thank you.&lt;/P&gt;&lt;P&gt;see code( simulator ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;tks.&lt;/P&gt;&lt;P&gt;Carlos.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 19 Jun 2015 00:59:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Stack-Pointer-Program-counter/m-p/397779#M21981</guid>
      <dc:creator>CCandido</dc:creator>
      <dc:date>2015-06-19T00:59:02Z</dc:date>
    </item>
    <item>
      <title>Re: Stack Pointer / Program counter</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Stack-Pointer-Program-counter/m-p/397780#M21982</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;STRONG&gt;Hi&amp;nbsp; &lt;SPAN style="color: #51626f; font-family: inherit; font-style: inherit;"&gt;Yasuhiko&lt;/SPAN&gt;&lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #51626f; font-family: inherit; font-style: inherit;"&gt;Koumoto,&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style=": ; color: #51626f; font-family: inherit; font-style: inherit;"&gt;I used your code, PEX projets.&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void __ISR_times_1oous_main(unsigned int *intr_args)&amp;nbsp; &lt;/P&gt;&lt;P&gt;{&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t a=0,b=0;&lt;/P&gt;&lt;P&gt;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TI1_Enable( ); // timer off&lt;/P&gt;&lt;P&gt;&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; LED1_On();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&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; //return from ram....&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&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; // how to , clear all register to re-start ?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; for(;;) {&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // load_my_code()];&lt;/P&gt;&lt;P&gt;&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; // call_execute_code_in_ram ();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&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; a++;&lt;/P&gt;&lt;P&gt;&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; b++;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;} &lt;/P&gt;&lt;P&gt;//---------------------------------&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void TI1_OnInterrupt(void)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; timer 1 ms PE project&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; asm volatile(&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "MOVS r0, #4\t\n" &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "MOV&amp;nbsp; r1, LR\t\n"&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "TST&amp;nbsp; r0, r1\t\n"&amp;nbsp; /// Check EXC_RETURN[2]&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "BEQ&amp;nbsp; 1f\t\n" &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "MRS&amp;nbsp; r0, PSP\t\n" &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "LDR&amp;nbsp; r1,=__ISR_times_1oous_main\t\n" &lt;/P&gt;&lt;P&gt;&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;&amp;nbsp;&amp;nbsp; "BX&amp;nbsp;&amp;nbsp; r1\t\n" &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "1:&amp;nbsp;&amp;nbsp; MRS&amp;nbsp; r0, MSP\t\n"&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "LDR&amp;nbsp; r1,=__ISR_times_1oous_main\t\n" &lt;/P&gt;&lt;P&gt;&amp;nbsp; );&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;//--------------------------------------------------&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;l&lt;STRONG&gt;ack only reset the variables and registers, to launch the application again.&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;&lt;STRONG&gt;I have to turn off the timer in return because it causes error.&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;tks,&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Carlos.&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 19 Jun 2015 10:41:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Stack-Pointer-Program-counter/m-p/397780#M21982</guid>
      <dc:creator>CCandido</dc:creator>
      <dc:date>2015-06-19T10:41:05Z</dc:date>
    </item>
    <item>
      <title>Re: Stack Pointer / Program counter</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Stack-Pointer-Program-counter/m-p/397781#M21983</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Carlos,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please let us know if your issue be resolved? &lt;/P&gt;&lt;P&gt;Thank you for the attention.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Ma Hui&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Aug 2015 03:19:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Stack-Pointer-Program-counter/m-p/397781#M21983</guid>
      <dc:creator>Hui_Ma</dc:creator>
      <dc:date>2015-08-04T03:19:34Z</dc:date>
    </item>
    <item>
      <title>Re: Stack Pointer / Program counter</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Stack-Pointer-Program-counter/m-p/397782#M21984</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;you should not describe asm statement in a normal function.&lt;/P&gt;&lt;P&gt;The function will use the stack and then the asm statement will be useless.&lt;/P&gt;&lt;P&gt;Untill reach the __ISR_times_1oous_main, the stack pointer must not change.&lt;/P&gt;&lt;P&gt;So I added '__stackless__' attribute to the function.&lt;/P&gt;&lt;P&gt;The attribute will be valid for IAR's EWARM,&lt;/P&gt;&lt;P&gt;If you use GCC, the attribute would be '_attribute__((&lt;STRONG&gt;naked&lt;/STRONG&gt;))'.&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;Yasuhiko Koumoto.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Aug 2015 04:15:20 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Stack-Pointer-Program-counter/m-p/397782#M21984</guid>
      <dc:creator>yasuhikokoumoto</dc:creator>
      <dc:date>2015-08-04T04:15:20Z</dc:date>
    </item>
  </channel>
</rss>

