<?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: MCF5282 - problem with PIT (?) or exception vector (?) &amp; monitoring registers in ColdFire/68K Microcontrollers and Processors</title>
    <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF5282-problem-with-PIT-or-exception-vector-monitoring/m-p/215041#M10845</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Hi Rich!&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I am still experiencing some problems. Now that I can monitor the registers (thanks to you), I can go a little deeper, but with no joy. Apparently my PIT is set correctly and by that I mean that my registers were set properly and I have the following information on the registers, after I am running, in a given moment:&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;For the PIT0:&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;PCSR0 = 0x021F&lt;/DIV&gt;&lt;DIV&gt;PMR0 = 0x07CF /*1999*/&lt;/DIV&gt;&lt;DIV&gt;PCNTR0 = 0x0025 /* that seams ok, as we would expect something smaller than 0x07CF.*/&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;For the Int Controller 0:&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;IPRH0 = 0x00800000 /* this bothers me. It says that there is a pending int request (at least at the correct spot)&amp;nbsp;but this never goes away. Could that mean that the int handler routine is never executed and the flag is never cleared?&amp;nbsp;*/&lt;/DIV&gt;&lt;DIV&gt;IPRL0 = 0x00000000&lt;/DIV&gt;&lt;DIV&gt;IMRH0 = 0xFD7FFFFF /* Int 55 and 57 enable. Currently I am not doing anything with PIT2.&amp;nbsp;*/&lt;/DIV&gt;&lt;DIV&gt;IMRL0 = 0xFFFFFFFE /* I thought it would be safer to&amp;nbsp;set bit 0 = 0.&amp;nbsp;*/&lt;/DIV&gt;&lt;DIV&gt;both INTFRCH0 and INTFRCL0 = 0&lt;/DIV&gt;&lt;DIV&gt;I set ICR055 to 0x34&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;So, PIT is up and running and generating&amp;nbsp; int request that is never treated.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;In my exception.c file (generated by the system), I added:&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="1"&gt;/********************************************************************/&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="1"&gt;__declspec(interrupt) void irq_handler (void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;printf("irq_handler\n");&lt;BR /&gt;&amp;nbsp;/* empty */&lt;BR /&gt;}&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="1"&gt;/********************************************************************/&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="1"&gt;__interrupt__&lt;BR /&gt;void pit0_handler (void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;//Clear IRQ&lt;BR /&gt;&amp;nbsp;MCF_PIT0_PCSR |= MCF_PIT_PCSR_PIF;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;//Update all periodic counters&lt;BR /&gt;&amp;nbsp; updateRTcounters();&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;}&lt;BR /&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;and in a header file I have the declaration:&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="1"&gt;#define __interrupt__&amp;nbsp;__declspec(interrupt)&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;and them I changed the call at position /* 119 on my vector table, to go to my pit0_handler routine.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="1"&gt;typedef void (* vectorTableEntryType)(void);&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="1"&gt;#pragma define_section vectortable ".vectortable" far_absolute R&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="1"&gt;/* CF have 255 vector + SP_INIT in the vector table (256 entries) */&lt;BR /&gt;__declspec(vectortable) vectorTableEntryType _vect[256] = {&amp;nbsp;&amp;nbsp; /* Interrupt vector table */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; (vectorTableEntryType)__SP_AFTER_RESET,&amp;nbsp; /*&amp;nbsp;&amp;nbsp; 0 (0x000) Initial supervisor SP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;BR /&gt;_startup,&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; 1 (0x004) Initial PC&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;asm_exception_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; 2 (0x008) Access Error&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;asm_exception_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; 3 (0x00C) Address Error&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;asm_exception_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; 4 (0x010) Illegal Instruction&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;BR /&gt;asm_exception_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; 5 (0x014) Reserved&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;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="1"&gt;...&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="1"&gt;asm_exception_handler,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 118 (0x___) Reserved&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;pit0_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;&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; /* 119 (= 0x77)&amp;nbsp;(0x___) Reserved&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;asm_exception_handler,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 120 (0x___) Reserved&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;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;...&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;If I look in memory at the position where the vector_table is assembled, I see that it is pointing to the corret routine, but this is never executed (the pit0_handler).&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;My question is: with the debugger, can I set breakpoints inside an interrupt routine? Do I need to set any parameter in the Debugger settings differently? Do I need to change anything at the linker level (I did not touch the linker so far)?&lt;/DIV&gt;&lt;DIV&gt;Just setting breakpoints at pit0_handler tells me that the routine is never executed...&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;What am I missing?&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I appreciate any lights that you might give me.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Rgds,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Hagar&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;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;Message Edited by Hagar on &lt;SPAN class="date_text"&gt;2009-01-12&lt;/SPAN&gt; &lt;SPAN class="time_text"&gt;10:13 PM&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 13 Jan 2009 06:07:57 GMT</pubDate>
    <dc:creator>Hagar</dc:creator>
    <dc:date>2009-01-13T06:07:57Z</dc:date>
    <item>
      <title>MCF5282 - problem with PIT (?) or exception vector (?) &amp; monitoring registers</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF5282-problem-with-PIT-or-exception-vector-monitoring/m-p/215038#M10842</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: Calibri;"&gt;I am trying to make the CF generate a “RTC” that I can use for multi-purpose functions.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: Calibri;"&gt;I thought about using one of the PIT for incrementing a counter.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: Calibri;"&gt;I created a structure with multiple counter entities:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;typedef struct&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;&amp;nbsp; uint16 ledCounter;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;&amp;nbsp; uint32 secondsCounter;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;&amp;nbsp; uint16 systemCounter;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;} RTcounters;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: Calibri;"&gt;and an Update procedure&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;void updateRTcounters( void )&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;&amp;nbsp; static uint16 count = 0;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;&amp;nbsp; g_RTcounters.systemCounter++;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;&amp;nbsp; g_RTcounters.ledCounter++;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;&amp;nbsp; count++;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;&amp;nbsp; if( count &amp;gt;= ONE_SECOND_CONSTANT)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;&amp;nbsp; {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_RTcounters.secondsCounter++;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; count = 0;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;&amp;nbsp; }&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-family: Calibri;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: Calibri;"&gt;where the ONE_SECOND_CONSTANT and g_RTcounters are as follows:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;#define ONE_SECOND_CONSTANT&amp;nbsp;&amp;nbsp; 4000&amp;nbsp;&amp;nbsp; /* 4000 * 250us = 1s. */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;RTcounters g_RTcounters;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: Calibri;"&gt;That would update all counters every time this PIT0 count reaches zero, when I reload it to my constant and start over (forever).&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: Calibri;"&gt;My PIT initialization is as follows:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;/******************************&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;&amp;nbsp;* Timer 0: Ticks every 250us *&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;&amp;nbsp;******************************/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;void pit_init_0()&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;&amp;nbsp; /* Timer setup for continuous interrupts every 250us. */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;&amp;nbsp; MCF_PIT0_PCSR = 0x021E; /* RES=0, PRE=2 (64MHz/8 = 8MHz = 125ns), RES=0, DOZE=0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&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;&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;&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;&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;&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; HALT=0, OVW=1, PIE=1, PIF=1, RLD=1, EN=0. */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;&amp;nbsp; MCF_PIT0_PMR = 1999;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 125ns * 2000 = 250us. */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;&amp;nbsp; MCF_PIT0_PCSR |= MCF_PIT_PCSR_EN; /* Enable. */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: Calibri;"&gt;Using this idea I can implement for example a toggle for an LED using one of the counters (ledCounter) in the following procedure (LED would be located on PORT E, with option for another one in PORT TD):&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;void flashDebugLed2( void )&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;&amp;nbsp; if (g_RTcounters.ledCounter &amp;gt;= 4000)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt; &lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Toggle LED 2&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MCF5282_GPIO_PORTE ^= 0x01;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MCF5282_GPIO_PORTTD ^= 0x01;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt; &lt;SPAN&gt;g_RTcounters.ledCounter = 0;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;&amp;nbsp; }&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: Calibri;"&gt;So in the initialization of the system routine I unmasked this particular interruption&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;void __initialize_system(void)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;&amp;nbsp;&amp;nbsp;MCF_INTC0_IMRL = 0xFFFFFFFF;&amp;nbsp; /* int 1-31 masked. */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;&amp;nbsp; MCF_INTC0_IMRH = 0xFF7FFFFF;&amp;nbsp; /* int 55 active, all other masked. */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;&amp;nbsp; /* Other peripherals. */&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;&amp;nbsp; MCF_INTC0_ICR55 = 0x34;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Level 6, priority 4&amp;nbsp; - PIT0. */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 3; font-family: Calibri;"&gt;Then in my exception.c I added the following code:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;/********************************************************************/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;__declspec(interrupt) void irq_handler (void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;printf("irq_handler\n");&lt;BR /&gt;&amp;nbsp;/* empty */&lt;BR /&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;/********************************************************************/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 2; font-family: Calibri;"&gt;__interrupt__&lt;BR /&gt;void pit0_handler (void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;//Clear IRQ&lt;BR /&gt;&amp;nbsp;MCF_PIT0_PCSR |= MCF_PIT_PCSR_PIF;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;//Update all periodic counters&lt;BR /&gt;&amp;nbsp; updateRTcounters();&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 3; font-family: Calibri;"&gt;and finally, I changed on my vector table the call from:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-family: Calibri;"&gt;&amp;nbsp; &lt;SPAN style="font-size: 2;"&gt;asm_exception_handler,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 119 (0x___) Reserved&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;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 3;"&gt;to:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-family: Calibri;"&gt;&amp;nbsp;&lt;SPAN style="font-size: 2;"&gt;&amp;nbsp; pit0_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;&amp;nbsp; /* 119 (0x___) Reserved&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;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 3; font-family: Calibri;"&gt;And I monitor my count variable and it is not incrementing,&amp;nbsp;so my routine updateRTcounters is never called.&amp;nbsp;So, I cannot say if my PIT is not working or if my expection implementation is not properly set.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 3; font-family: Calibri;"&gt;I tried to look at the registers, but&amp;nbsp;&lt;SPAN&gt;my register windows (view-&amp;gt; registers)&amp;nbsp;only shows values for the general purpose registers, EMAC Registers and supervisor registers. All other registers appears as unavailable or &amp;nbsp;write only (when this is the case). So, I cannot see the contents of the register while I am debugging, even the register details gives me Debugger Error 104100 (unless I am missing something stupid).&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 3; font-family: Calibri;"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&lt;SPAN style=": ; color: #000000; font-size: 3; font-family: Calibri;"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=": ; color: #000000; font-size: 3; font-family: Calibri;"&gt;&lt;SPAN&gt;I am using MCF5282 on its evaluation board, CodeWarrior Development Studio 5.9.0 and I need HELP!&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 10 Jan 2009 06:14:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF5282-problem-with-PIT-or-exception-vector-monitoring/m-p/215038#M10842</guid>
      <dc:creator>Hagar</dc:creator>
      <dc:date>2009-01-10T06:14:42Z</dc:date>
    </item>
    <item>
      <title>Re: MCF5282 - problem with PIT (?) or exception vector (?) &amp; monitoring registers</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF5282-problem-with-PIT-or-exception-vector-monitoring/m-p/215039#M10843</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;If your register window doesn't show you your peripheral registers, try setting the Target Processor drop-down entry in your target settings -&amp;gt; Debugger -&amp;gt; CF Debugger Settings dialog box.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;If it helps, here is pit code, attached, that works for MCF52221/52233 (and MCF51JM128, which you can ignore) which should be very nearly identical to the pit you are using.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;-- Rich&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 10 Jan 2009 14:54:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF5282-problem-with-PIT-or-exception-vector-monitoring/m-p/215039#M10843</guid>
      <dc:creator>RichTestardi</dc:creator>
      <dc:date>2009-01-10T14:54:11Z</dc:date>
    </item>
    <item>
      <title>Re: MCF5282 - problem with PIT (?) or exception vector (?) &amp; monitoring registers</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF5282-problem-with-PIT-or-exception-vector-monitoring/m-p/215040#M10844</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hi, Rich!&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Thanks for your input. As a matter of fact, with your hint of looking at the target settings -&amp;gt; Debbuger -&amp;gt; CF Debugger Settings dialog box, &amp;nbsp;I tried to play around different settings there and one of my trials solved the problem of having most of the registers appearing as "unavailable". I had the &amp;nbsp;"Use Memory Configuration File" checked, pointing to a file {Project}cfg\MCF5282_CONSOLE_INTERNAL_RAM.mem&amp;nbsp; and I simply unchecked this option and now I have access to the contents of all my registers, including the detailed view of them. Now I can proceed and debug my PIT code. Thanks for the example code for the PIT for MCF52221/52233. I will take a look at them also, and I will let you know how things&amp;nbsp;develop from here.&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Best Rgds,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Hagar&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 12 Jan 2009 23:11:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF5282-problem-with-PIT-or-exception-vector-monitoring/m-p/215040#M10844</guid>
      <dc:creator>Hagar</dc:creator>
      <dc:date>2009-01-12T23:11:18Z</dc:date>
    </item>
    <item>
      <title>Re: MCF5282 - problem with PIT (?) or exception vector (?) &amp; monitoring registers</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF5282-problem-with-PIT-or-exception-vector-monitoring/m-p/215041#M10845</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Hi Rich!&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I am still experiencing some problems. Now that I can monitor the registers (thanks to you), I can go a little deeper, but with no joy. Apparently my PIT is set correctly and by that I mean that my registers were set properly and I have the following information on the registers, after I am running, in a given moment:&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;For the PIT0:&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;PCSR0 = 0x021F&lt;/DIV&gt;&lt;DIV&gt;PMR0 = 0x07CF /*1999*/&lt;/DIV&gt;&lt;DIV&gt;PCNTR0 = 0x0025 /* that seams ok, as we would expect something smaller than 0x07CF.*/&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;For the Int Controller 0:&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;IPRH0 = 0x00800000 /* this bothers me. It says that there is a pending int request (at least at the correct spot)&amp;nbsp;but this never goes away. Could that mean that the int handler routine is never executed and the flag is never cleared?&amp;nbsp;*/&lt;/DIV&gt;&lt;DIV&gt;IPRL0 = 0x00000000&lt;/DIV&gt;&lt;DIV&gt;IMRH0 = 0xFD7FFFFF /* Int 55 and 57 enable. Currently I am not doing anything with PIT2.&amp;nbsp;*/&lt;/DIV&gt;&lt;DIV&gt;IMRL0 = 0xFFFFFFFE /* I thought it would be safer to&amp;nbsp;set bit 0 = 0.&amp;nbsp;*/&lt;/DIV&gt;&lt;DIV&gt;both INTFRCH0 and INTFRCL0 = 0&lt;/DIV&gt;&lt;DIV&gt;I set ICR055 to 0x34&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;So, PIT is up and running and generating&amp;nbsp; int request that is never treated.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;In my exception.c file (generated by the system), I added:&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="1"&gt;/********************************************************************/&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="1"&gt;__declspec(interrupt) void irq_handler (void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;printf("irq_handler\n");&lt;BR /&gt;&amp;nbsp;/* empty */&lt;BR /&gt;}&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="1"&gt;/********************************************************************/&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="1"&gt;__interrupt__&lt;BR /&gt;void pit0_handler (void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;//Clear IRQ&lt;BR /&gt;&amp;nbsp;MCF_PIT0_PCSR |= MCF_PIT_PCSR_PIF;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;//Update all periodic counters&lt;BR /&gt;&amp;nbsp; updateRTcounters();&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;}&lt;BR /&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;and in a header file I have the declaration:&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="1"&gt;#define __interrupt__&amp;nbsp;__declspec(interrupt)&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;and them I changed the call at position /* 119 on my vector table, to go to my pit0_handler routine.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="1"&gt;typedef void (* vectorTableEntryType)(void);&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="1"&gt;#pragma define_section vectortable ".vectortable" far_absolute R&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="1"&gt;/* CF have 255 vector + SP_INIT in the vector table (256 entries) */&lt;BR /&gt;__declspec(vectortable) vectorTableEntryType _vect[256] = {&amp;nbsp;&amp;nbsp; /* Interrupt vector table */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; (vectorTableEntryType)__SP_AFTER_RESET,&amp;nbsp; /*&amp;nbsp;&amp;nbsp; 0 (0x000) Initial supervisor SP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;BR /&gt;_startup,&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; 1 (0x004) Initial PC&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;asm_exception_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; 2 (0x008) Access Error&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;asm_exception_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; 3 (0x00C) Address Error&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;asm_exception_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; 4 (0x010) Illegal Instruction&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;BR /&gt;asm_exception_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; 5 (0x014) Reserved&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;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="1"&gt;...&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="1"&gt;asm_exception_handler,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 118 (0x___) Reserved&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;pit0_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;&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; /* 119 (= 0x77)&amp;nbsp;(0x___) Reserved&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;asm_exception_handler,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 120 (0x___) Reserved&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;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;...&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;If I look in memory at the position where the vector_table is assembled, I see that it is pointing to the corret routine, but this is never executed (the pit0_handler).&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;My question is: with the debugger, can I set breakpoints inside an interrupt routine? Do I need to set any parameter in the Debugger settings differently? Do I need to change anything at the linker level (I did not touch the linker so far)?&lt;/DIV&gt;&lt;DIV&gt;Just setting breakpoints at pit0_handler tells me that the routine is never executed...&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;What am I missing?&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I appreciate any lights that you might give me.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Rgds,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Hagar&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;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;Message Edited by Hagar on &lt;SPAN class="date_text"&gt;2009-01-12&lt;/SPAN&gt; &lt;SPAN class="time_text"&gt;10:13 PM&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 13 Jan 2009 06:07:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF5282-problem-with-PIT-or-exception-vector-monitoring/m-p/215041#M10845</guid>
      <dc:creator>Hagar</dc:creator>
      <dc:date>2009-01-13T06:07:57Z</dc:date>
    </item>
    <item>
      <title>Re: MCF5282 - problem with PIT (?) or exception vector (?) &amp; monitoring registers</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF5282-problem-with-PIT-or-exception-vector-monitoring/m-p/215042#M10846</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;Do other interrupts fire OK? If not, it's possible that you've got all interrupts masked by the processor's main Status Register (SR).&lt;BR /&gt;&lt;BR /&gt;You need to make sure that the interrupt mask bits of the SR are set to a low enough level to allow the interrupt through.&lt;BR /&gt;&lt;BR /&gt;For example, to set the mask to 0 you can do:&lt;BR /&gt;&lt;BR /&gt;asm {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; move&amp;nbsp;&amp;nbsp;&amp;nbsp; #0x2000,sr&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;The value 0x2000 sets the mask to 0 whilst leaving the processor in Supervisor mode.&lt;BR /&gt;&lt;BR /&gt;With CodeWarrior's libraries, you could also achieve this by doing:&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;Just an idea.&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>Tue, 13 Jan 2009 18:32:41 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF5282-problem-with-PIT-or-exception-vector-monitoring/m-p/215042#M10846</guid>
      <dc:creator>SimonMarsden_de</dc:creator>
      <dc:date>2009-01-13T18:32:41Z</dc:date>
    </item>
    <item>
      <title>Re: MCF5282 - problem with PIT (?) or exception vector (?) &amp; monitoring registers</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF5282-problem-with-PIT-or-exception-vector-monitoring/m-p/215043#M10847</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Simon:&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Thank you so much for your input. You solved my problem.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;The first instruction on the _startup routine is&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;move.w #2700, sr&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;in order to disable interruptions, and I never worried about that (and completely forgot about that). Now, as per your suggestion, I am writting #2000 into sr just before initializing my PITs and everything is working as expected.&lt;/DIV&gt;&lt;DIV&gt;For those who are not aware, Interrupt requests are inhibited for all priority levels less than or equal to the current level, except the edge-sensitive level 7 request, which cannot be masked, and this is set at bits 10-8 @ SR register.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Thank you very much, Simon!&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Best Regards,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Hagar&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 13 Jan 2009 23:46:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF5282-problem-with-PIT-or-exception-vector-monitoring/m-p/215043#M10847</guid>
      <dc:creator>Hagar</dc:creator>
      <dc:date>2009-01-13T23:46:42Z</dc:date>
    </item>
  </channel>
</rss>

