<?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>topic Re: FRDM-KL05z: after exit from VLLS3, execution starts with Reset_Handler as expected but execution fails when reaching main() in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KL05z-after-exit-from-VLLS3-execution-starts-with-Reset/m-p/366640#M18889</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;By referring the code in KL25_SC, I have modified llwu_isr() as follows (pls check the tag CHANGE for my hack): &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if (LLWU_F3 &amp;amp; LLWU_F3_MWUF0_MASK) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\n [LLWU ISR] ****WUF3_MWUF0 IF&amp;nbsp; LPT0&amp;nbsp; *****\r\n");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_SCGC5 |= SIM_SCGC5_LPTMR_MASK;&amp;nbsp;&amp;nbsp; //CHANGE:&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPTMR0_CSR |=&amp;nbsp; LPTMR_CSR_TCF_MASK;&amp;nbsp;&amp;nbsp; // write 1 to TCF to clear the LPT timer compare flag&lt;/P&gt;&lt;P&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPTMR0_CSR = ( LPTMR_CSR_TEN_MASK | LPTMR_CSR_TIE_MASK | LPTMR_CSR_TCF_MASK&amp;nbsp; );&lt;/P&gt;&lt;P&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LLWU_F3 |= LLWU_F3_MWUF0_MASK;&amp;nbsp;&amp;nbsp; //CHANGE by comment out: write one to clear the flag&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It now seems to work now where main() could be re-executed after waking up from VLLS3.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 22 Dec 2014 17:04:53 GMT</pubDate>
    <dc:creator>mjoa</dc:creator>
    <dc:date>2014-12-22T17:04:53Z</dc:date>
    <item>
      <title>FRDM-KL05z: after exit from VLLS3, execution starts with Reset_Handler as expected but execution fails when reaching main()</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KL05z-after-exit-from-VLLS3-execution-starts-with-Reset/m-p/366639#M18888</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;When running low_power_demo from official package KL05-SC.zip as well as FRDM-KL05Z Quick Start Package to test deep sleep/wakeup on FRDM_KL05z, I found this scenario. &lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;From the following trace, after exit from VLLS3, execution starts with Reset_Handler (the instruction pointed to by the RESET vector address) as expected but execution fails when reaching main():&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;-------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt; Enter the key number to choose one mode: 9LLWU PE1&amp;nbsp;&amp;nbsp; = 0x00,&amp;nbsp;&amp;nbsp;&amp;nbsp; LLWU PE2&amp;nbsp;&amp;nbsp; = 0x00&lt;/P&gt;&lt;P&gt;LLWU ME&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x01,&amp;nbsp;&amp;nbsp;&amp;nbsp; LLWU F1&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00&lt;/P&gt;&lt;P&gt;LLWU F3&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00&lt;/P&gt;&lt;P&gt;LLWU FILT1 = 0x00,&amp;nbsp;&amp;nbsp;&amp;nbsp; LLWU FILT2 = 0x00&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; enter into VLLS3 mode--.&lt;/P&gt;&lt;P&gt;[outSRS]Wakeup bit set from low power mode exit&lt;/P&gt;&lt;P&gt;[outSRS]SMC_PMPROT&amp;nbsp;&amp;nbsp; = 0x02&lt;/P&gt;&lt;P&gt;[outSRS]SMC_PMCTRL&amp;nbsp;&amp;nbsp; = 0x04&lt;/P&gt;&lt;P&gt;[outSRS]SMC_STOPCTRL&amp;nbsp;&amp;nbsp; = 0x03&lt;/P&gt;&lt;P&gt;[outSRS]SMC_PMSTAT&amp;nbsp;&amp;nbsp; = 0x01&lt;/P&gt;&lt;P&gt;[outSRS] VLLS3 exit&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;K05&lt;/P&gt;&lt;P&gt;Unrecognized Kinetis package code.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SRAM Size:&amp;nbsp; 4 KB&lt;/P&gt;&lt;P&gt;Silicon rev 15&lt;/P&gt;&lt;P&gt; Flash size:&amp;nbsp; 32 KB program flash, 1 KB protection region&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;[LLWU ISR]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; [LLWU ISR] ****WUF3_MWUF0 IF&amp;nbsp; LPT0&amp;nbsp; *****&lt;/P&gt;&lt;P&gt;-------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;MCU just stuck there until Reset button is explicitly pressed. I would expect main() to be re-executed when running the Reset_Handler:&lt;/P&gt;&lt;P&gt;Reset_Handler&amp;nbsp;&amp;nbsp; PROC&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; EXPORT&amp;nbsp; Reset_Handler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [WEAK]&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; IMPORT&amp;nbsp; SystemInit&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; IMPORT&amp;nbsp; __main&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; LDR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; R0, =SystemInit&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; BLX&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; R0&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; LDR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; R0, =__main&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; BX&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; R0&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; ENDP&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is there anything that is needed in order to have reset flow run properly and have main() reexecute?&lt;/P&gt;&lt;P&gt;Thanks for your help. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 19 Dec 2014 23:00:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KL05z-after-exit-from-VLLS3-execution-starts-with-Reset/m-p/366639#M18888</guid>
      <dc:creator>mjoa</dc:creator>
      <dc:date>2014-12-19T23:00:11Z</dc:date>
    </item>
    <item>
      <title>Re: FRDM-KL05z: after exit from VLLS3, execution starts with Reset_Handler as expected but execution fails when reaching main()</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KL05z-after-exit-from-VLLS3-execution-starts-with-Reset/m-p/366640#M18889</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;By referring the code in KL25_SC, I have modified llwu_isr() as follows (pls check the tag CHANGE for my hack): &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if (LLWU_F3 &amp;amp; LLWU_F3_MWUF0_MASK) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\n [LLWU ISR] ****WUF3_MWUF0 IF&amp;nbsp; LPT0&amp;nbsp; *****\r\n");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_SCGC5 |= SIM_SCGC5_LPTMR_MASK;&amp;nbsp;&amp;nbsp; //CHANGE:&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPTMR0_CSR |=&amp;nbsp; LPTMR_CSR_TCF_MASK;&amp;nbsp;&amp;nbsp; // write 1 to TCF to clear the LPT timer compare flag&lt;/P&gt;&lt;P&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPTMR0_CSR = ( LPTMR_CSR_TEN_MASK | LPTMR_CSR_TIE_MASK | LPTMR_CSR_TCF_MASK&amp;nbsp; );&lt;/P&gt;&lt;P&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LLWU_F3 |= LLWU_F3_MWUF0_MASK;&amp;nbsp;&amp;nbsp; //CHANGE by comment out: write one to clear the flag&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It now seems to work now where main() could be re-executed after waking up from VLLS3.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 22 Dec 2014 17:04:53 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KL05z-after-exit-from-VLLS3-execution-starts-with-Reset/m-p/366640#M18889</guid>
      <dc:creator>mjoa</dc:creator>
      <dc:date>2014-12-22T17:04:53Z</dc:date>
    </item>
  </channel>
</rss>

