<?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 MCF5223X do not start watchdog in ColdFire/68K Microcontrollers and Processors</title>
    <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF5223X-do-not-start-watchdog/m-p/161809#M5198</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;same as&amp;nbsp; Paynete' s problem :&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Working with ColdFire_Lite Tcp Stack.&amp;nbsp; Having an issue with unresponsive TCP or general lockup.&amp;nbsp; Thought I would enable &lt;STRONG&gt;watchdog&lt;/STRONG&gt;.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Changed mcf5223_wtm_init in mcf5223_sysinit.c to turn on &lt;STRONG&gt;Watchdog&lt;/STRONG&gt;.&lt;/DIV&gt;&lt;DIV&gt;void mcf5223_wtm_init(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;/*&lt;BR /&gt;&amp;nbsp;* Enable Software &lt;STRONG&gt;Watchdog&lt;/STRONG&gt; Timer - Timing 2^23 * Bus Freq&lt;BR /&gt;&amp;nbsp;*/&lt;BR /&gt;&amp;nbsp;MCF_SCM_CWCR = &amp;nbsp;MCF_SCM_CWCR_CWT(5) &amp;nbsp;|&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MCF_SCM_CWCR_CWE&amp;nbsp;&amp;nbsp;|&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MCF_SCM_CWCR_CWTA&amp;nbsp;&amp;nbsp;|&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MCF_SCM_CWCR_CWTAVAL&amp;nbsp;|&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MCF_SCM_CWCR_CWTIC&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;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;MCF_INTC0_ICR8&amp;nbsp; =&amp;nbsp; MCF_INTC_ICR_IL(2);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;MCF_INTC0_IMRL&amp;nbsp;&amp;amp;=&amp;nbsp;~(MCF_INTC_IMRL_MASK8);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;MCF_SCM_CWSR = 0x55;&lt;BR /&gt;&amp;nbsp;MCF_SCM_CWSR = 0xAA;&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Tried without setting&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CWTA,&amp;nbsp; CWTAVAL,&amp;nbsp;&amp;nbsp;&amp;amp; CWTIC&amp;nbsp; also.&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Added _&lt;STRONG&gt;watchdog&lt;/STRONG&gt;_handler to mcf5223_vectors.s as .extern and to vector48:&lt;BR /&gt;&amp;nbsp;.extern _&lt;STRONG&gt;watchdog&lt;/STRONG&gt;_handler&lt;BR /&gt;vector48:&amp;nbsp;.long &amp;nbsp;_&lt;STRONG&gt;watchdog&lt;/STRONG&gt;_handler //_irq_handler&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Added&amp;nbsp; &lt;STRONG&gt;watchdog&lt;/STRONG&gt;_handler to Int_handlers.c to perform soft reset&lt;/DIV&gt;&lt;DIV&gt;__interrupt__&lt;BR /&gt;void &lt;STRONG&gt;watchdog&lt;/STRONG&gt;_handler (void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;mcf5xxx_irq_disable();&lt;BR /&gt;&amp;nbsp;MCF_CIM_RCR |= MCF_CIM_RCR_SOFTRST;&amp;nbsp; //TEP Software Reset ***********************&amp;nbsp;&lt;BR /&gt;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Purposely did not service the CWSR on a periodic basis for test.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 05 Jun 2008 14:47:29 GMT</pubDate>
    <dc:creator>gxd</dc:creator>
    <dc:date>2008-06-05T14:47:29Z</dc:date>
    <item>
      <title>MCF5223X do not start watchdog</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF5223X-do-not-start-watchdog/m-p/161809#M5198</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;same as&amp;nbsp; Paynete' s problem :&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Working with ColdFire_Lite Tcp Stack.&amp;nbsp; Having an issue with unresponsive TCP or general lockup.&amp;nbsp; Thought I would enable &lt;STRONG&gt;watchdog&lt;/STRONG&gt;.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Changed mcf5223_wtm_init in mcf5223_sysinit.c to turn on &lt;STRONG&gt;Watchdog&lt;/STRONG&gt;.&lt;/DIV&gt;&lt;DIV&gt;void mcf5223_wtm_init(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;/*&lt;BR /&gt;&amp;nbsp;* Enable Software &lt;STRONG&gt;Watchdog&lt;/STRONG&gt; Timer - Timing 2^23 * Bus Freq&lt;BR /&gt;&amp;nbsp;*/&lt;BR /&gt;&amp;nbsp;MCF_SCM_CWCR = &amp;nbsp;MCF_SCM_CWCR_CWT(5) &amp;nbsp;|&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MCF_SCM_CWCR_CWE&amp;nbsp;&amp;nbsp;|&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MCF_SCM_CWCR_CWTA&amp;nbsp;&amp;nbsp;|&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MCF_SCM_CWCR_CWTAVAL&amp;nbsp;|&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MCF_SCM_CWCR_CWTIC&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;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;MCF_INTC0_ICR8&amp;nbsp; =&amp;nbsp; MCF_INTC_ICR_IL(2);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;MCF_INTC0_IMRL&amp;nbsp;&amp;amp;=&amp;nbsp;~(MCF_INTC_IMRL_MASK8);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;MCF_SCM_CWSR = 0x55;&lt;BR /&gt;&amp;nbsp;MCF_SCM_CWSR = 0xAA;&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Tried without setting&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CWTA,&amp;nbsp; CWTAVAL,&amp;nbsp;&amp;nbsp;&amp;amp; CWTIC&amp;nbsp; also.&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Added _&lt;STRONG&gt;watchdog&lt;/STRONG&gt;_handler to mcf5223_vectors.s as .extern and to vector48:&lt;BR /&gt;&amp;nbsp;.extern _&lt;STRONG&gt;watchdog&lt;/STRONG&gt;_handler&lt;BR /&gt;vector48:&amp;nbsp;.long &amp;nbsp;_&lt;STRONG&gt;watchdog&lt;/STRONG&gt;_handler //_irq_handler&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Added&amp;nbsp; &lt;STRONG&gt;watchdog&lt;/STRONG&gt;_handler to Int_handlers.c to perform soft reset&lt;/DIV&gt;&lt;DIV&gt;__interrupt__&lt;BR /&gt;void &lt;STRONG&gt;watchdog&lt;/STRONG&gt;_handler (void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;mcf5xxx_irq_disable();&lt;BR /&gt;&amp;nbsp;MCF_CIM_RCR |= MCF_CIM_RCR_SOFTRST;&amp;nbsp; //TEP Software Reset ***********************&amp;nbsp;&lt;BR /&gt;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Purposely did not service the CWSR on a periodic basis for test.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 05 Jun 2008 14:47:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF5223X-do-not-start-watchdog/m-p/161809#M5198</guid>
      <dc:creator>gxd</dc:creator>
      <dc:date>2008-06-05T14:47:29Z</dc:date>
    </item>
    <item>
      <title>Re: MCF5223X do not start watchdog</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF5223X-do-not-start-watchdog/m-p/161810#M5199</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;Are other interrupts working OK? If not, here are a couple of suggestions:&lt;BR /&gt;&lt;BR /&gt;(a) Have you cleared the MASKALL bit in the IMRL register?&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MCF_INTC0_IMRL&amp;nbsp;&amp;amp;=&amp;nbsp;~MCF_INTC_IMRL_MASKALL;&lt;BR /&gt;&lt;BR /&gt;(b) Have you dropped the interrupt fence in the processor's main status register (SR)? The processor boots with the value 0x2700 in the SR, which means that the fence is 7 and all interrupts are masked. To set the fence to 0, try something like&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; asm_set_ipl(0);&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Hope this helps&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Simon&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 05 Jun 2008 21:41:14 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF5223X-do-not-start-watchdog/m-p/161810#M5199</guid>
      <dc:creator>SimonMarsden_de</dc:creator>
      <dc:date>2008-06-05T21:41:14Z</dc:date>
    </item>
    <item>
      <title>Re: MCF5223X do not start watchdog</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF5223X-do-not-start-watchdog/m-p/161811#M5200</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;MCF_SCM_CWCR has a "feature" that it can only be written once after each reset. So if your debugger or some init code writes a zero to it before your attempt to enable it, the enable will not work. You can check if it is enabled by (MCF_SCM_CWCR &amp;amp; MCF_SCM_CWCR_CWE).&lt;BR /&gt;&lt;BR /&gt;Here we use MCF_INTC0_ICR8 = MCF_INTC_ICR_IL(7) to make the interrupt non-maskable. While we can deliberately avoid servicing the CWSR to verify that the watchdog works under "normal" conditions, the chip can still get into states where it does not work, and we don't know why...&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 05 Jun 2008 23:37:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF5223X-do-not-start-watchdog/m-p/161811#M5200</guid>
      <dc:creator>bkatt</dc:creator>
      <dc:date>2008-06-05T23:37:24Z</dc:date>
    </item>
    <item>
      <title>Re: MCF5223X do not start watchdog</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF5223X-do-not-start-watchdog/m-p/161812#M5201</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Thank your help!&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;i solve the problem by first set the mask_all bit(clear) ,then (after do so)set the intc0_imrl_mask.&lt;/DIV&gt;&lt;DIV&gt;if i first set intc0, then set the mask_all bit(clear). it can not work.&lt;/DIV&gt;&lt;DIV&gt;i can not know why freescale do not explani it clearly. but other interrupt not need so(in this order).&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;hope it is useful for all people.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;God help us!&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;Message Edited by gxd on &lt;SPAN class="date_text"&gt;2008-06-16&lt;/SPAN&gt; &lt;SPAN class="time_text"&gt;01:58 AM&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Jun 2008 07:52:41 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF5223X-do-not-start-watchdog/m-p/161812#M5201</guid>
      <dc:creator>gxd</dc:creator>
      <dc:date>2008-06-16T07:52:41Z</dc:date>
    </item>
  </channel>
</rss>

