<?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のトピックFunny interrupt behavior after starting firmware via bootloader - MC9S12XDP512</title>
    <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Funny-interrupt-behavior-after-starting-firmware-via-bootloader/m-p/198820#M7979</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;P&gt;Hi&lt;BR /&gt;&lt;BR /&gt;I have been coding a CAN-bootloader for MC9S12XDP512, it seems that the firmware is downloaded as it should be at Flash, and pseudo vector table is relocated at below 0xeffe.&lt;BR /&gt;&lt;BR /&gt;The launching of firmware is executed as:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; asm JMP&amp;nbsp;&amp;nbsp;&amp;nbsp; [0xFFFE-BootBlkSize,pcr]/* Run user Program */&lt;BR /&gt;&lt;BR /&gt;The program starts fine, but if it gets a timerinterrup (for canopen heartbeat) it doesn't make that CAN-message. But it also don't crash, because I'm able to read other CAN objects, includin it's different fw versionnumber. And if I stop executing from debugger it starts automticaly again and makes that message.&lt;BR /&gt;&lt;BR /&gt;If i upload a different kind of firmware such as a babbling idiot, which only generates CAN-traffic without any timers, it works 100% right.&lt;BR /&gt;&lt;BR /&gt;Any idea what could be problem here, I'm thinkin somethin is wrong with new pseudo-table.&lt;BR /&gt;&lt;BR /&gt;Juha-Matti&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Added p/n to subject.&lt;BR /&gt;&lt;/P&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Message Edited by NLFSJ on &lt;/SPAN&gt;&lt;SPAN class="date_text"&gt;2008-03-13&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN class="time_text"&gt;04:40 PM&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 03 Mar 2008 15:39:25 GMT</pubDate>
    <dc:creator>K_p</dc:creator>
    <dc:date>2008-03-03T15:39:25Z</dc:date>
    <item>
      <title>Funny interrupt behavior after starting firmware via bootloader - MC9S12XDP512</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Funny-interrupt-behavior-after-starting-firmware-via-bootloader/m-p/198820#M7979</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;P&gt;Hi&lt;BR /&gt;&lt;BR /&gt;I have been coding a CAN-bootloader for MC9S12XDP512, it seems that the firmware is downloaded as it should be at Flash, and pseudo vector table is relocated at below 0xeffe.&lt;BR /&gt;&lt;BR /&gt;The launching of firmware is executed as:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; asm JMP&amp;nbsp;&amp;nbsp;&amp;nbsp; [0xFFFE-BootBlkSize,pcr]/* Run user Program */&lt;BR /&gt;&lt;BR /&gt;The program starts fine, but if it gets a timerinterrup (for canopen heartbeat) it doesn't make that CAN-message. But it also don't crash, because I'm able to read other CAN objects, includin it's different fw versionnumber. And if I stop executing from debugger it starts automticaly again and makes that message.&lt;BR /&gt;&lt;BR /&gt;If i upload a different kind of firmware such as a babbling idiot, which only generates CAN-traffic without any timers, it works 100% right.&lt;BR /&gt;&lt;BR /&gt;Any idea what could be problem here, I'm thinkin somethin is wrong with new pseudo-table.&lt;BR /&gt;&lt;BR /&gt;Juha-Matti&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Added p/n to subject.&lt;BR /&gt;&lt;/P&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Message Edited by NLFSJ on &lt;/SPAN&gt;&lt;SPAN class="date_text"&gt;2008-03-13&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN class="time_text"&gt;04:40 PM&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Mar 2008 15:39:25 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Funny-interrupt-behavior-after-starting-firmware-via-bootloader/m-p/198820#M7979</guid>
      <dc:creator>K_p</dc:creator>
      <dc:date>2008-03-03T15:39:25Z</dc:date>
    </item>
    <item>
      <title>Re: Funny interrupt behavior after starting firmware via bootloader</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Funny-interrupt-behavior-after-starting-firmware-via-bootloader/m-p/198821#M7980</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;This sounds like it could be a register bit that can only be written to once. Even if you can't find a suspect, I would always suggest a full reset after a bootload. If you don't have an external watchdog, or I/O pin to your RST* line, you can use the COP. These will use the original vector table and clear any one-time only registers and restart your timers, clear flags, etc. so the behavior is more predictable.&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Mar 2008 21:19:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Funny-interrupt-behavior-after-starting-firmware-via-bootloader/m-p/198821#M7980</guid>
      <dc:creator>dwhite</dc:creator>
      <dc:date>2008-03-13T21:19:35Z</dc:date>
    </item>
  </channel>
</rss>

