<?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: Perform a reset in an ISR in 8-bit Microcontrollers</title>
    <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Perform-a-reset-in-an-ISR/m-p/126447#M1073</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Comic Sans MS"&gt;I actually love the idea of Rocco&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Comic Sans MS"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Comic Sans MS"&gt;In C you take either of the following code line and put only this in the ISR.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New"&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* Generate a RESET by Illegal Opcode */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;asm DCB 0x8D ;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* Generate a RESET by not feeding the COP */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while (1) {}&lt;BR /&gt;&lt;/STRONG&gt;&lt;BR /&gt;&lt;/FONT&gt; &lt;FONT face="Comic Sans MS"&gt;Of course, you need COP enabled for the COP reset.&lt;BR /&gt;The good stuff with the first is you can know why you had a reset in the &lt;EM&gt;SRSR&lt;/EM&gt; (see SIM Chapter of datasheet) and if you see an ILAD, chances are it was because of the unimplemented ISR.&lt;BR /&gt;&lt;BR /&gt;The main point to consider here is time. &lt;STRONG&gt;Can you afford to wait the COP time out or do you need immediate reaction ?&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Comic Sans MS"&gt;The answer will give you which one to take &lt;IMG alt=":smileywink:" class="emoticon emoticon-smileywink" id="smileywink" src="http://freescale.i.lithium.com/i/smilies/16x16_smiley-wink.gif" title="Smiley Wink" /&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Comic Sans MS"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Comic Sans MS"&gt;Cheers,&lt;BR /&gt;Alban.&lt;/FONT&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 17 Feb 2006 20:36:13 GMT</pubDate>
    <dc:creator>Alban</dc:creator>
    <dc:date>2006-02-17T20:36:13Z</dc:date>
    <item>
      <title>Perform a reset in an ISR</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Perform-a-reset-in-an-ISR/m-p/126440#M1066</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I'm using Codewarrior 5.0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I've installed interrupt handler for all unused vectors. I needs to force a reset (interrut 0) if any of these vectors are asserted. What instruction should I used to force a reset within the interrupt handler?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks in advance&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Barry&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 17 Feb 2006 10:30:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Perform-a-reset-in-an-ISR/m-p/126440#M1066</guid>
      <dc:creator>byteybird</dc:creator>
      <dc:date>2006-02-17T10:30:31Z</dc:date>
    </item>
    <item>
      <title>Re: Perform a reset in an ISR</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Perform-a-reset-in-an-ISR/m-p/126441#M1067</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Barry, I defined a RESET instruction using a macro, assigning it a value of an illegal instruction, $32. On any reset, my code tests the reset register, and can tell if the reset was caused by this instruction (assuming there isn't another illegal instruction somewhere).&lt;BR /&gt;&lt;BR /&gt;Here is the macro:&lt;HR /&gt;;&lt;BR /&gt;;&lt;BR /&gt;; This Macro defines an instruction to reset the CPU.&lt;BR /&gt;;&lt;BR /&gt;RESET: macro&lt;BR /&gt;dc.b $32 ; this is illegal operation code&lt;BR /&gt;endm&lt;HR /&gt;(darn, this board keeps blowing away my formatting. How do we who don't know HTML get code to format right?)&lt;P&gt;Message Edited by rocco on &lt;SPAN class="date_text"&gt;02-16-2006&lt;/SPAN&gt;&lt;SPAN class="time_text"&gt;07:35 PM&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 17 Feb 2006 11:02:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Perform-a-reset-in-an-ISR/m-p/126441#M1067</guid>
      <dc:creator>rocco</dc:creator>
      <dc:date>2006-02-17T11:02:31Z</dc:date>
    </item>
    <item>
      <title>Re: Perform a reset in an ISR</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Perform-a-reset-in-an-ISR/m-p/126442#M1068</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;I'm writing in c.&lt;BR /&gt;What I tried to do is:&lt;BR /&gt;&lt;BR /&gt;#define RESET asm(dc.b $32)&lt;BR /&gt;interrupt 1 void ISR_SWI(void) {RESET;}&lt;BR /&gt;&lt;BR /&gt;The compiler complained about an invalid opcode on the interrupt 1 line.&lt;BR /&gt;&lt;BR /&gt;What I need is "interrupt 1" to vecter into "interrupt 0", which is the reset vector.&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 17 Feb 2006 12:11:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Perform-a-reset-in-an-ISR/m-p/126442#M1068</guid>
      <dc:creator>byteybird</dc:creator>
      <dc:date>2006-02-17T12:11:01Z</dc:date>
    </item>
    <item>
      <title>Re: Perform a reset in an ISR</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Perform-a-reset-in-an-ISR/m-p/126443#M1069</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Hmm . . . I haven't used CodeWarrior's version of C yet, and I don't know about the asm() syntax in CW, but I could see how this might get tricky.&lt;BR /&gt;&lt;BR /&gt;Have you tried breaking it into pieces? Like:&lt;HR /&gt;void resetProc( void )&lt;BR /&gt;{&lt;BR /&gt;#asm&lt;BR /&gt;dc.b $32&lt;BR /&gt;#endasm&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;interrupt 1 void resetProc(void);&lt;HR /&gt;This syntax is what I use for one of my C compilers, but is probably not what CW expects.&lt;BR /&gt;&lt;BR /&gt;Having the invalid interrupt jump through the reset vector will get you to the start of your code, but it won't be the same as an actual reset. Your stack, peripherals and I/O pins will not be re-initialized.&lt;BR /&gt;&lt;BR /&gt;Here's another approach, one I used back on the HC05s. If you are using the COP watchdog, just spin in a loop with interrupts disabled. After a few milliseconds, the watchdog will force a reset.&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 17 Feb 2006 15:59:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Perform-a-reset-in-an-ISR/m-p/126443#M1069</guid>
      <dc:creator>rocco</dc:creator>
      <dc:date>2006-02-17T15:59:11Z</dc:date>
    </item>
    <item>
      <title>Re: Perform a reset in an ISR</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Perform-a-reset-in-an-ISR/m-p/126444#M1070</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;FONT size="3"&gt;Hello Barry,&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="3"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="3"&gt;If you want to generate a reset&amp;nbsp;should an unused interrupt occur, wouldn't the easiest approach be to simply point these vectors to the same location as the reset vector?&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="3"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="3"&gt;Regards,&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="3"&gt;Mac&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 17 Feb 2006 17:35:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Perform-a-reset-in-an-ISR/m-p/126444#M1070</guid>
      <dc:creator>bigmac</dc:creator>
      <dc:date>2006-02-17T17:35:42Z</dc:date>
    </item>
    <item>
      <title>Re: Perform a reset in an ISR</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Perform-a-reset-in-an-ISR/m-p/126445#M1071</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hi,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;In C, you can also write this :&lt;/DIV&gt;&lt;DIV&gt;asm&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;ldhx $FFFE&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;jmp ,x&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;You will jump directly to the same address than the power-on RESET.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Yvan&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 17 Feb 2006 17:50:40 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Perform-a-reset-in-an-ISR/m-p/126445#M1071</guid>
      <dc:creator>yb</dc:creator>
      <dc:date>2006-02-17T17:50:40Z</dc:date>
    </item>
    <item>
      <title>Re: Perform a reset in an ISR</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Perform-a-reset-in-an-ISR/m-p/126446#M1072</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;P&gt;Hey Mac!&lt;/P&gt;&lt;P&gt;Just vectoring to the same place as the reset vector will won't *GENERATE* a reset, just cause a code branch to same place you would go after a reset.&lt;/P&gt;&lt;P&gt;ditto Yvan&lt;/P&gt;&lt;P&gt;I like Rocco's ideas better. How about just putting an illegal opcode in memory then point your unused vectors there. This will generate a reset. Generating an interrupt that your not supposed to is illegal, not for the chip but for your application! It will probably be caused by the same sort of problems as well!&lt;/P&gt;&lt;P&gt;Peg&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 17 Feb 2006 18:32:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Perform-a-reset-in-an-ISR/m-p/126446#M1072</guid>
      <dc:creator>peg</dc:creator>
      <dc:date>2006-02-17T18:32:38Z</dc:date>
    </item>
    <item>
      <title>Re: Perform a reset in an ISR</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Perform-a-reset-in-an-ISR/m-p/126447#M1073</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Comic Sans MS"&gt;I actually love the idea of Rocco&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Comic Sans MS"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Comic Sans MS"&gt;In C you take either of the following code line and put only this in the ISR.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New"&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* Generate a RESET by Illegal Opcode */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;asm DCB 0x8D ;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* Generate a RESET by not feeding the COP */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while (1) {}&lt;BR /&gt;&lt;/STRONG&gt;&lt;BR /&gt;&lt;/FONT&gt; &lt;FONT face="Comic Sans MS"&gt;Of course, you need COP enabled for the COP reset.&lt;BR /&gt;The good stuff with the first is you can know why you had a reset in the &lt;EM&gt;SRSR&lt;/EM&gt; (see SIM Chapter of datasheet) and if you see an ILAD, chances are it was because of the unimplemented ISR.&lt;BR /&gt;&lt;BR /&gt;The main point to consider here is time. &lt;STRONG&gt;Can you afford to wait the COP time out or do you need immediate reaction ?&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Comic Sans MS"&gt;The answer will give you which one to take &lt;IMG alt=":smileywink:" class="emoticon emoticon-smileywink" id="smileywink" src="http://freescale.i.lithium.com/i/smilies/16x16_smiley-wink.gif" title="Smiley Wink" /&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Comic Sans MS"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Comic Sans MS"&gt;Cheers,&lt;BR /&gt;Alban.&lt;/FONT&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 17 Feb 2006 20:36:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Perform-a-reset-in-an-ISR/m-p/126447#M1073</guid>
      <dc:creator>Alban</dc:creator>
      <dc:date>2006-02-17T20:36:13Z</dc:date>
    </item>
    <item>
      <title>Re: Perform a reset in an ISR</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Perform-a-reset-in-an-ISR/m-p/126448#M1074</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;It's a good compiler if it flags you &lt;EM&gt;illegal opcode&lt;/EM&gt; !&lt;/DIV&gt;&lt;DIV&gt;Try and de-activate this check in the compiler parameters.&lt;BR /&gt;&lt;BR /&gt;Alban.&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 17 Feb 2006 20:38:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Perform-a-reset-in-an-ISR/m-p/126448#M1074</guid>
      <dc:creator>Alban</dc:creator>
      <dc:date>2006-02-17T20:38:23Z</dc:date>
    </item>
    <item>
      <title>Re: Perform a reset in an ISR</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Perform-a-reset-in-an-ISR/m-p/126449#M1075</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Thanks for the feedback. Before I posted the question here, two days earlier I asked Freescale support the same question. After the issue was reassigned a number of time and 5-days latter they came back with an answer. The following is their response:&lt;BR /&gt;&lt;BR /&gt;=================================================================&lt;BR /&gt;&lt;BR /&gt;If you'd like to perform cold reset, it's not enough to jump to Reset&lt;BR /&gt;vector.&lt;BR /&gt;I guess there is your question concerning this issue in Freescale&lt;BR /&gt;discussion forum.&lt;BR /&gt;I have to agree with Alban Rampon.&lt;BR /&gt;&lt;BR /&gt;First of all I would recommend to you to see "System Integration Module&lt;BR /&gt;(SIM) chapter - Reset and system initialization" for more details about&lt;BR /&gt;internal resets of your MCU.&lt;BR /&gt;&lt;BR /&gt;You can chose between different sources of internal reset. If the reset&lt;BR /&gt;conditions are fulfilled reset arise (device registers and modules are&lt;BR /&gt;initialized), then all of the sources call same routine placed on reset&lt;BR /&gt;vector (0xFFFE - 0xFFFF). To distinguish between different sources of&lt;BR /&gt;internal reset you could check SRSR register.&lt;BR /&gt;&lt;BR /&gt;Basically, there are three sources of internal reset which you can use&lt;BR /&gt;in your code:&lt;BR /&gt;&lt;BR /&gt;- reset caused by watchdog overflow (COP)&lt;BR /&gt;- reset caused by fetching illegal instruction&lt;BR /&gt;- reset caused by illegal address operation&lt;BR /&gt;&lt;BR /&gt;You would choose the most convenient one for you. In your C code you&lt;BR /&gt;could add :&lt;BR /&gt;&lt;BR /&gt;#define ILOP_RESET asm DCB $32 // illegal operation example&lt;BR /&gt;#define ILAD_RESET asm JMP $xxxx // illegal address example&lt;BR /&gt;($xxxx address must not be implemented)&lt;BR /&gt;#define COP_RESET asm BRA 0 // Watchdog overflow (infinite loop)&lt;BR /&gt;&lt;BR /&gt;interrupt 1 void ISR_SWI(void)&lt;BR /&gt;{&lt;BR /&gt;ILOP_RESET;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;interrupt 2 void ISR_IRQ1(void)&lt;BR /&gt;{&lt;BR /&gt;ILOP_RESET;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;Note: If you are going to use COP you have to setup and start watchdog&lt;BR /&gt;timer before (CONFIG1 register). COP is automatically disabled in&lt;BR /&gt;monitor mode.&lt;BR /&gt;&lt;BR /&gt;If you'd like to assign same interrupt routine to several interrupt&lt;BR /&gt;vectors you can use #pragma TRAP_PROC:&lt;BR /&gt;&lt;BR /&gt;#pragma TRAP_PROC&lt;BR /&gt;void isr(void)&lt;BR /&gt;{&lt;BR /&gt;ILOP_RESET;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;In your project .prm file you can just set same address of service&lt;BR /&gt;routine to several interrupt vectors.&lt;BR /&gt;&lt;BR /&gt;VECTOR 0 _Startup /* Reset vector: this is the default entry point for&lt;BR /&gt;an application. */ VECTOR 1 isr VECTOR 2 isr VECTOR 3 isr&lt;BR /&gt;&lt;BR /&gt;I hope this will help you.&lt;BR /&gt;&lt;BR /&gt;Should you need to contact us with regard to this message, please see&lt;BR /&gt;the notes below.&lt;BR /&gt;&lt;BR /&gt;Best Regards,&lt;BR /&gt;&lt;BR /&gt;Customer Engineering Support&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 26 Feb 2006 02:58:14 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Perform-a-reset-in-an-ISR/m-p/126449#M1075</guid>
      <dc:creator>byteybird</dc:creator>
      <dc:date>2006-02-26T02:58:14Z</dc:date>
    </item>
    <item>
      <title>Re: Perform a reset in an ISR</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Perform-a-reset-in-an-ISR/m-p/126450#M1076</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;BR /&gt;Hi...&lt;/DIV&gt;&lt;DIV&gt;Sorry for de question but ..what is "DBC"? is a instruction where i can find .... in the data sheet?&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 28 Dec 2006 13:10:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Perform-a-reset-in-an-ISR/m-p/126450#M1076</guid>
      <dc:creator>al303576</dc:creator>
      <dc:date>2006-12-28T13:10:37Z</dc:date>
    </item>
    <item>
      <title>Re: Perform a reset in an ISR</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Perform-a-reset-in-an-ISR/m-p/126451#M1077</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Hi al303576,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I presume you mean DCB???&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;DCB is an assembler pseudo-opcode or assembler directive otherwise known as DCB.B or FCB etc.&lt;/DIV&gt;&lt;DIV&gt;All it does is place the following value at the current address.&lt;/DIV&gt;&lt;DIV&gt;What they are doing here is putting the value $32 (which is an undefined or illegal opcode) at a location labelled as ILOP_RESET.&lt;/DIV&gt;&lt;DIV&gt;If the programme was to jump or branch to this location it would cause an illegal opcode reset.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Hope that helps&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Regards&lt;/DIV&gt;&lt;DIV&gt;Peg&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;P.S. So you won't find it in the device datasheet but in the assembler manual, just type it into CW help index.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;Message Edited by peg on &lt;SPAN class="date_text"&gt;2006-12-28&lt;/SPAN&gt;&lt;SPAN class="time_text"&gt;05:32 PM&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 28 Dec 2006 15:30:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Perform-a-reset-in-an-ISR/m-p/126451#M1077</guid>
      <dc:creator>peg</dc:creator>
      <dc:date>2006-12-28T15:30:04Z</dc:date>
    </item>
    <item>
      <title>Re: Perform a reset in an ISR</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Perform-a-reset-in-an-ISR/m-p/126452#M1078</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;AHH! ok.&lt;/DIV&gt;&lt;DIV&gt;I can't sleep with this question into my head..&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Gracias&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 30 Dec 2006 07:42:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Perform-a-reset-in-an-ISR/m-p/126452#M1078</guid>
      <dc:creator>al303576</dc:creator>
      <dc:date>2006-12-30T07:42:11Z</dc:date>
    </item>
  </channel>
</rss>

