<?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: How to set an interrupt to be direct? in MQX Software Solutions</title>
    <link>https://community.nxp.com/t5/MQX-Software-Solutions/How-to-set-an-interrupt-to-be-direct/m-p/158342#M956</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Okay, IRQ5 is working now but I can't get DTIM0 to work, what could I be missing?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;1.-I have GPIO register for pin configuration.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; reg_ptr-&amp;gt;GPIO.PTCPAR |= 0x01;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; reg_ptr-&amp;gt;GPIO.PTCPAR &amp;amp;= ~0x02;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;2.-DMA Timer register configuration.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #define Prescaler&amp;nbsp;&amp;nbsp; 0x00&amp;nbsp; //8bits-&lt;BR /&gt;&amp;nbsp;&amp;nbsp; #define CaptureEdge 0x2&amp;nbsp;&amp;nbsp; //2 bits&lt;BR /&gt;&amp;nbsp;&amp;nbsp; #define OutputMode&amp;nbsp; 0x0&amp;nbsp;&amp;nbsp; //1 bit&lt;BR /&gt;&amp;nbsp;&amp;nbsp; #define IntEnable&amp;nbsp;&amp;nbsp; 0x1&amp;nbsp;&amp;nbsp; //1 bit&lt;BR /&gt;&amp;nbsp;&amp;nbsp; #define Restart&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x1&amp;nbsp;&amp;nbsp; //1 bit&lt;BR /&gt;&amp;nbsp;&amp;nbsp; #define ClkSource&amp;nbsp;&amp;nbsp; 0x3&amp;nbsp;&amp;nbsp; //2bits&lt;BR /&gt;&amp;nbsp;&amp;nbsp; #define EnableTimer 0x0&amp;nbsp;&amp;nbsp; //1bit&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; reg_ptr-&amp;gt;DMA_TIMER[ 0 ].DTMR = (Prescaler &amp;lt;&amp;lt; 8 ) |&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; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; (CaptureEdge &amp;lt;&amp;lt; 6) |&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; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; (OutputMode &amp;lt;&amp;lt; 5)|&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; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; (IntEnable &amp;lt;&amp;lt; 4) |&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; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; (Restart &amp;lt;&amp;lt; 3) |&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; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; (ClkSource &amp;lt;&amp;lt; 1)|&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; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; (EnableTimer);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; reg_ptr-&amp;gt;DMA_TIMER[ 0 ].DTMR &amp;amp;= ~0x0001; //detiene el timer&lt;BR /&gt;&amp;nbsp;&amp;nbsp; reg_ptr-&amp;gt;DMA_TIMER[ 0 ].DTCN = 0x0000;&amp;nbsp; //valor inicial de la cuenta&lt;BR /&gt;&amp;nbsp;&amp;nbsp; reg_ptr-&amp;gt;DMA_TIMER[ 0 ].DTRR = 0x0001;&amp;nbsp; //valor de referencia&amp;nbsp;&amp;nbsp;&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;&amp;nbsp; reg_ptr-&amp;gt;DMA_TIMER[ 0 ].DTER = 0x03;&amp;nbsp;&amp;nbsp;&amp;nbsp; //borrar las banderas de eventos&lt;BR /&gt;&amp;nbsp;&amp;nbsp; reg_ptr-&amp;gt;DMA_TIMER[ 0 ].DTMR |= 0x0001; //inicia el timer&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;3.-DTIM0 direct ISR vector installation.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;*(unsigned int *) 0x2000014C = (unsigned int)&amp;amp;dtim0_isr;&amp;nbsp;&amp;nbsp;&amp;nbsp; //DTIM0 install direct ISR vector&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 08 Dec 2009 23:28:26 GMT</pubDate>
    <dc:creator>JaimeR</dc:creator>
    <dc:date>2009-12-08T23:28:26Z</dc:date>
    <item>
      <title>How to set an interrupt to be direct?</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/How-to-set-an-interrupt-to-be-direct/m-p/158337#M951</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Is there an example of how to do this?&lt;/P&gt;&lt;P&gt;MQXUG reads the following, but being new to MQX this is not helping me much.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;An interrupt comes at periodic intervals that my application must respond to very quickly&lt;BR /&gt;— quicker than MQX allows. What can I do?&lt;BR /&gt;Call _int_install_kernel_isr() to replace the kernel ISR (_int_kernel_isr()). Your replacement ISR must:&lt;BR /&gt;• Save all registers on entry, and restore them on exit.&lt;BR /&gt;• It must not call any MQX functions.&lt;BR /&gt;• Pass information to other tasks (if required) by an application-implemented mechanism (usually&lt;BR /&gt;ring buffers with head and tail pointers and total size fields).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any help will be appreciatted,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 01 Dec 2009 03:58:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/How-to-set-an-interrupt-to-be-direct/m-p/158337#M951</guid>
      <dc:creator>MQXuser</dc:creator>
      <dc:date>2009-12-01T03:58:08Z</dc:date>
    </item>
    <item>
      <title>Re: How to set an interrupt to be direct?</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/How-to-set-an-interrupt-to-be-direct/m-p/158338#M952</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi MQXUser,&lt;/P&gt;&lt;P&gt;Enclosed is an enhanced version of the Freescale MQX 3.4\mqx\examples\isr example.&lt;/P&gt;&lt;P&gt;In the main_task() you can choose to have a direct ISR or allow FSLMQX to handle it.&amp;nbsp; Here is that piece of code:&lt;/P&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&lt;P&gt;&lt;FONT size="2"&gt;#if 1 //DES 0=direct ISR preempts MQX, 1=kernel isr handles the exception&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;_int_install_kernel_isr(MCF5225_INT_EPORT0_EPF7, new_irq7or1_isr);&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;#else&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;*(unsigned int *) 0x2000011c = (unsigned int)&amp;amp;new_irq7or1_isr; //DES install direct ISR vector&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;#endif&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;Note I haven't updated all the comments in the file.&amp;nbsp; I've tested this with the M52259EVB and the ABORT/IRQ7 switch.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;Regards,&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;David&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&lt;A href="http://www.freescale.com/files/community_files/MQXGEN/717_isr.c" rel="nofollow" target="_self"&gt;isr.c&lt;/A&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;DIV class="message-edit-history"&gt;&lt;SPAN class="edit-author"&gt;Message Edited by t.dowe on&lt;/SPAN&gt; &lt;SPAN class="local-date"&gt;2009-12-02&lt;/SPAN&gt; &lt;SPAN class="local-time"&gt;11:09 AM&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 01 Dec 2009 23:00:14 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/How-to-set-an-interrupt-to-be-direct/m-p/158338#M952</guid>
      <dc:creator>DavidS</dc:creator>
      <dc:date>2009-12-01T23:00:14Z</dc:date>
    </item>
    <item>
      <title>Re: How to set an interrupt to be direct?</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/How-to-set-an-interrupt-to-be-direct/m-p/158339#M953</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you for your answer David, I have looked the example and I have a few doubts:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;On MQXUG I read:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;An interrupt comes at periodic intervals that my application must respond to very quickly&lt;BR /&gt;— quicker than MQX allows. What can I do?&lt;BR /&gt;Call _int_install_kernel_isr() to replace the kernel ISR (_int_kernel_isr()). Your replacement ISR must:&lt;BR /&gt;• Save all registers on entry, and restore them on exit.&lt;BR /&gt;• It must not call any MQX functions.&lt;BR /&gt;• Pass information to other tasks (if required) by an application-implemented mechanism (usually&lt;BR /&gt;ring buffers with head and tail pointers and total size fields).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In your example,#if 1&amp;nbsp; you call _int_install_kernel_isr, therefore I am asuming kernel will handle the interrupt but in the UG I read "Call _int_install_kernel_isr() to replace the kernel ISR". This is confusing, could you explain when to use _int_install_kernel_isr ?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Then, the UG states that in order to&amp;nbsp; handle an Interrupt outside MQX I must "Save all registers on entry, and restore them on exit". I don't see where is this done in the isr.c example, so is it missing?, is it not necesary to do this?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Finally, I see you are using a global variable in the example (volatile uint_32 bcnt)&amp;nbsp; to pass information from the interrupt to the main task but again, the UG suggest to use "usually ring buffers with head and tail pointers".Can I use just a global variable or should I implement a sofisticated mechanism?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 02 Dec 2009 03:14:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/How-to-set-an-interrupt-to-be-direct/m-p/158339#M953</guid>
      <dc:creator>MQXuser</dc:creator>
      <dc:date>2009-12-02T03:14:27Z</dc:date>
    </item>
    <item>
      <title>Re: How to set an interrupt to be direct?</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/How-to-set-an-interrupt-to-be-direct/m-p/158340#M954</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi...sorry for dealyed response.&lt;/P&gt;&lt;P&gt;Answers below:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff"&gt;On MQXUG I read:&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff"&gt;An interrupt comes at periodic intervals that my application must respond to very quickly&lt;BR /&gt;— quicker than MQX allows. What can I do?&amp;nbsp;&lt;/FONT&gt; &lt;FONT color="#008000"&gt;ANSWER: MQX can handle kHz's frequent interrupts but if you want you can do a direct interupt by changing the #define to a 0 rather than 1.&lt;/FONT&gt;&lt;/P&gt;&lt;FONT color="#0000ff"&gt;&lt;FONT color="#008000"&gt;ex:&lt;/FONT&gt; &lt;FONT size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#0000ff"&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;P&gt;&lt;FONT color="#0000ff"&gt;&lt;FONT size="2"&gt;&lt;FONT color="#008000"&gt;#if 1 //DES 0=direct ISR preempts MQX, 1=kernel isr handles the exception&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff"&gt;&lt;FONT size="2"&gt;&lt;FONT color="#008000"&gt;This assumes your vector table is in RAM.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff"&gt;&lt;BR /&gt;Call _int_install_kernel_isr() to replace the kernel ISR (_int_kernel_isr()). Your replacement ISR must:&lt;BR /&gt;• Save all registers on entry, and restore them on exit.&amp;nbsp; &lt;FONT color="#008000"&gt;ANSWER: The compiler handles this for you.&amp;nbsp; This note really applies to assembly coded routines.&lt;BR /&gt;&lt;/FONT&gt;• It must not call any MQX functions.&lt;BR /&gt;• Pass information to other tasks (if required) by an application-implemented mechanism (usually&lt;BR /&gt;ring buffers with head and tail pointers and total size fields).&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff"&gt;In your example,#if 1&amp;nbsp; you call _int_install_kernel_isr, therefore I am asuming kernel will handle the interrupt but in the UG I read "Call _int_install_kernel_isr() to replace the kernel ISR". This is confusing, could you explain when to use _int_install_kernel_isr ?&amp;nbsp;&lt;/FONT&gt; &lt;FONT color="#008000"&gt;ANSWER: Cool feature MQX gives you is that if an interrupt is being used by MQX, MQX lets you use it too.&amp;nbsp; The default example code shows this well as does the modified code.&amp;nbsp; At the beginning of the main_task() function the "old" vector information is added to a isr_ptr structure.&amp;nbsp; Once you place your new ISR handler into the MQX hands, your code wil be called and it is your new ISR codes responsibility to call "old/orginal" isr.&amp;nbsp; This basically creates a linked list of ISRs in this case two deep....your new isr and the old isr.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff"&gt;Then, the UG states that in order to&amp;nbsp; handle an Interrupt outside MQX I must "Save all registers on entry, and restore them on exit". I don't see where is this done in the isr.c example, so is it missing?, is it not necesary to do this?&amp;nbsp; &lt;FONT color="#008000"&gt;ANSWER: The compiler handles this for you.&amp;nbsp; This note really applies to assembly coded routines.&lt;/FONT&gt;&lt;BR /&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff"&gt;Finally, I see you are using a global variable in the example (volatile uint_32 bcnt)&amp;nbsp; to pass information from the interrupt to the main task but again, the UG suggest to use "usually ring buffers with head and tail pointers".Can I use just a global variable or should I implement a sofisticated mechanism?&amp;nbsp; &lt;FONT color="#008000"&gt;ANSWER: Its implementation specific so what works for you is fine.&amp;nbsp; In this case the global works but if I had other tasks accessing that global then not best solution.&lt;/FONT&gt;&lt;BR /&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;David&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 08 Dec 2009 00:29:40 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/How-to-set-an-interrupt-to-be-direct/m-p/158340#M954</guid>
      <dc:creator>DavidS</dc:creator>
      <dc:date>2009-12-08T00:29:40Z</dc:date>
    </item>
    <item>
      <title>Re: How to set an interrupt to be direct?</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/How-to-set-an-interrupt-to-be-direct/m-p/158341#M955</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks David,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Now I'm trying to add a new interrupt outside MQX into the ISR.c example. First I tried to set an Edge Triggered DMA interrupt but upon failure (I am using the same configuration I used in order to install the interrupt with MQX&amp;nbsp; handler, with configuration I mean all the registers required) , I tried adding ISR for IRQ5 but this isn't working either. Is there something I am missing? I am following every line you have in the MainTask from the example but still it is not workin. Here is the code I am using:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;
__declspec(interrupt:0) void dtim0_isr( pointer user_isr_ptr ){    //reg_ptr-&amp;gt;EPORT-&amp;gt;EPFR = MCF522XX_EPORT_EPFR_EPF7; //DES Clear IRQ7 interrupt flag bcnt++;}__declspec(interrupt:0) void test_irq5( pointer user_isr_ptr ){    //reg_ptr-&amp;gt;EPORT-&amp;gt;EPFR = MCF522XX_EPORT_EPFR_EPF7; //DES Clear IRQ7 interrupt flag bcnt++;}/*TASK*----------------------------------------------------------** Task Name : main_task* Comments  : *   This task installs a new ISR to replace the timer ISR.*   It then waits for some time, finally printing out the*   number of times the ISR ran.*END*-----------------------------------------------------------*/   #define Prescaler   0x00  //8bits-   #define CaptureEdge 0x2   //2 bits   #define OutputMode  0x0   //1 bit   #define IntEnable   0x1   //1 bit   #define Restart     0x1   //1 bit   #define ClkSource   0x3   //2bits   #define EnableTimer 0x0   //1bit   void main_task( uint_32 initial_data ){   MY_ISR_STRUCT_PTR  isr_ptr;   VMCF5225_STRUCT_PTR reg_ptr = (VMCF5225_STRUCT_PTR)BSP_IPSBAR;  //DES   isr_ptr = _mem_alloc_zero((_mem_size)sizeof(MY_ISR_STRUCT));   isr_ptr-&amp;gt;TICK_COUNT   = 0;   isr_ptr-&amp;gt;OLD_ISR_DATA =  _int_get_isr_data(BSP_TIMER_INTERRUPT_VECTOR);   isr_ptr-&amp;gt;OLD_ISR      =  _int_get_isr(BSP_TIMER_INTERRUPT_VECTOR);   _int_install_isr(BSP_TIMER_INTERRUPT_VECTOR, new_tick_isr, isr_ptr);#ifdef BSP_M52259EVB reg_ptr-&amp;gt;EPORT[0].EPIER |= (MCF522XX_EPORT_EPFR_EPF7); //DES #if 0 //DES 0=direct ISR preempts MQX, 1=kernel isr handles the exception    _int_install_kernel_isr(MCF5225_INT_EPORT0_EPF7, new_irq7or1_isr); #else       *(unsigned int *) 0x20000114 = (unsigned int)&amp;amp;test_irq5; //DES install direct ISR vector    *(unsigned int *) 0x2000011c = (unsigned int)&amp;amp;new_irq7or1_isr; //DES install direct ISR vector #endif      _interrupt_controller_unmask(MCF5225_INT_EPORT0_EPF7); //DES unmask IRQ7   _interrupt_controller_unmask(MCF5225_INT_EPORT0_EPF5); //DES unmask IRQ7         reg_ptr-&amp;gt;GPIO.PTCPAR |= 0x01;   reg_ptr-&amp;gt;GPIO.PTCPAR &amp;amp;= ~0x02;   //reg_ptr-&amp;gt;DMA_TIMER[ 0 ]-&amp;gt; DTMR = (pointer)(&amp;amp;((VMCF5225_STRUCT_PTR)_PSP_GET_IPSBAR())-&amp;gt;DMA_TIMER[ 0 ]);   reg_ptr-&amp;gt;DMA_TIMER[ 0 ].DTMR = (Prescaler &amp;lt;&amp;lt; 8 ) |              (CaptureEdge &amp;lt;&amp;lt; 6) |             (OutputMode &amp;lt;&amp;lt; 5)|              (IntEnable &amp;lt;&amp;lt; 4) |              (Restart &amp;lt;&amp;lt; 3) |              (ClkSource &amp;lt;&amp;lt; 1)|             (EnableTimer);   reg_ptr-&amp;gt;DMA_TIMER[ 0 ].DTMR &amp;amp;= ~0x0001; //detiene el timer   reg_ptr-&amp;gt;DMA_TIMER[ 0 ].DTCN = 0x0000;  //valor inicial de la cuenta   reg_ptr-&amp;gt;DMA_TIMER[ 0 ].DTRR = 0x0001;  //valor de referencia                  reg_ptr-&amp;gt;DMA_TIMER[ 0 ].DTER = 0x03;    //borrar las banderas de eventos   reg_ptr-&amp;gt;DMA_TIMER[ 0 ].DTMR |= 0x0001; //inicia el timer   *(unsigned int *) 0x2000014C = (unsigned int)&amp;amp;dtim0_isr; //DTIM0 install direct ISR vector   _interrupt_controller_unmask(MCF5225_INT_DTIM0); //DES unmask IRQ7#elif BSP_M52259DEMO   _int_install_kernel_isr(MCF5225_INT_EPORT0_EPF1, new_irq7or1_isr);   _interrupt_controller_unmask(MCF5225_INT_EPORT0_EPF1); //DES unmask IRQ1#else #error BSP_M52259EVB or BSP_M52259DEMO#endif   for(initial_data=0;initial_data&amp;lt;20;initial_data++)   {     _time_delay_ticks(200); //DES was 200     printf("\nTick count = %d   bcnt = %d\n", isr_ptr-&amp;gt;TICK_COUNT, bcnt);   }   _mqx_exit(0);}&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&amp;nbsp;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Oct 2020 09:03:16 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/How-to-set-an-interrupt-to-be-direct/m-p/158341#M955</guid>
      <dc:creator>JaimeR</dc:creator>
      <dc:date>2020-10-29T09:03:16Z</dc:date>
    </item>
    <item>
      <title>Re: How to set an interrupt to be direct?</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/How-to-set-an-interrupt-to-be-direct/m-p/158342#M956</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Okay, IRQ5 is working now but I can't get DTIM0 to work, what could I be missing?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;1.-I have GPIO register for pin configuration.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; reg_ptr-&amp;gt;GPIO.PTCPAR |= 0x01;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; reg_ptr-&amp;gt;GPIO.PTCPAR &amp;amp;= ~0x02;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;2.-DMA Timer register configuration.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; #define Prescaler&amp;nbsp;&amp;nbsp; 0x00&amp;nbsp; //8bits-&lt;BR /&gt;&amp;nbsp;&amp;nbsp; #define CaptureEdge 0x2&amp;nbsp;&amp;nbsp; //2 bits&lt;BR /&gt;&amp;nbsp;&amp;nbsp; #define OutputMode&amp;nbsp; 0x0&amp;nbsp;&amp;nbsp; //1 bit&lt;BR /&gt;&amp;nbsp;&amp;nbsp; #define IntEnable&amp;nbsp;&amp;nbsp; 0x1&amp;nbsp;&amp;nbsp; //1 bit&lt;BR /&gt;&amp;nbsp;&amp;nbsp; #define Restart&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x1&amp;nbsp;&amp;nbsp; //1 bit&lt;BR /&gt;&amp;nbsp;&amp;nbsp; #define ClkSource&amp;nbsp;&amp;nbsp; 0x3&amp;nbsp;&amp;nbsp; //2bits&lt;BR /&gt;&amp;nbsp;&amp;nbsp; #define EnableTimer 0x0&amp;nbsp;&amp;nbsp; //1bit&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; reg_ptr-&amp;gt;DMA_TIMER[ 0 ].DTMR = (Prescaler &amp;lt;&amp;lt; 8 ) |&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; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; (CaptureEdge &amp;lt;&amp;lt; 6) |&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; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; (OutputMode &amp;lt;&amp;lt; 5)|&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; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; (IntEnable &amp;lt;&amp;lt; 4) |&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; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; (Restart &amp;lt;&amp;lt; 3) |&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; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; (ClkSource &amp;lt;&amp;lt; 1)|&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; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; (EnableTimer);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; reg_ptr-&amp;gt;DMA_TIMER[ 0 ].DTMR &amp;amp;= ~0x0001; //detiene el timer&lt;BR /&gt;&amp;nbsp;&amp;nbsp; reg_ptr-&amp;gt;DMA_TIMER[ 0 ].DTCN = 0x0000;&amp;nbsp; //valor inicial de la cuenta&lt;BR /&gt;&amp;nbsp;&amp;nbsp; reg_ptr-&amp;gt;DMA_TIMER[ 0 ].DTRR = 0x0001;&amp;nbsp; //valor de referencia&amp;nbsp;&amp;nbsp;&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;&amp;nbsp; reg_ptr-&amp;gt;DMA_TIMER[ 0 ].DTER = 0x03;&amp;nbsp;&amp;nbsp;&amp;nbsp; //borrar las banderas de eventos&lt;BR /&gt;&amp;nbsp;&amp;nbsp; reg_ptr-&amp;gt;DMA_TIMER[ 0 ].DTMR |= 0x0001; //inicia el timer&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;3.-DTIM0 direct ISR vector installation.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;*(unsigned int *) 0x2000014C = (unsigned int)&amp;amp;dtim0_isr;&amp;nbsp;&amp;nbsp;&amp;nbsp; //DTIM0 install direct ISR vector&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 08 Dec 2009 23:28:26 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/How-to-set-an-interrupt-to-be-direct/m-p/158342#M956</guid>
      <dc:creator>JaimeR</dc:creator>
      <dc:date>2009-12-08T23:28:26Z</dc:date>
    </item>
    <item>
      <title>Re: How to set an interrupt to be direct?</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/How-to-set-an-interrupt-to-be-direct/m-p/158343#M957</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;In your user_config.h header file do you have the following #define?&lt;/P&gt;&lt;P&gt;#define MQX_ROM_VECTORS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;//DES was 1&amp;nbsp;&amp;nbsp;1=ROM, 0=RAM vector table&lt;/P&gt;&lt;P&gt;Setting to 0 has the VBR in RAM so you can add your direct vector during run-time.&amp;nbsp; If you leave VBR in ROM, then add your direct vector to the vector table (in bps vector.c).&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;David&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 09 Dec 2009 05:09:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/How-to-set-an-interrupt-to-be-direct/m-p/158343#M957</guid>
      <dc:creator>DavidS</dc:creator>
      <dc:date>2009-12-09T05:09:17Z</dc:date>
    </item>
    <item>
      <title>Re: How to set an interrupt to be direct?</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/How-to-set-an-interrupt-to-be-direct/m-p/158344#M958</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Yes, I have it #define MQX_ROM_VECTORS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp; .&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 09 Dec 2009 06:15:22 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/How-to-set-an-interrupt-to-be-direct/m-p/158344#M958</guid>
      <dc:creator>JaimeR</dc:creator>
      <dc:date>2009-12-09T06:15:22Z</dc:date>
    </item>
    <item>
      <title>Re: How to set an interrupt to be direct?</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/How-to-set-an-interrupt-to-be-direct/m-p/158345#M959</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV align="left" dir="ltr"&gt;&lt;SPAN class="263043318-11122009"&gt;&lt;FONT color="#0000ff" face="Arial" size="2"&gt;Hi Jaime,&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV align="left" dir="ltr"&gt;&lt;SPAN class="263043318-11122009"&gt;&lt;FONT color="#0000ff" face="Arial" size="2"&gt;Enclosed is the updated file.&amp;nbsp; I got the DTIM working and figure you can give the GPT a try.&amp;nbsp; Hope that is OK.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV align="left" dir="ltr"&gt;&lt;SPAN class="263043318-11122009"&gt;&lt;FONT color="#0000ff" face="Arial" size="2"&gt;Issues I found:&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV align="left" dir="ltr"&gt;&lt;SPAN class="263043318-11122009"&gt;&lt;FONT color="#0000ff" face="Arial" size="2"&gt;1) DTIM0 is being used/touched by RTOS so switched to using DTIM3&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV align="left" dir="ltr"&gt;&lt;SPAN class="263043318-11122009"&gt;&lt;FONT color="#0000ff" face="Arial" size="2"&gt;2) Changed the DTMR FRR bit to 0 from 1.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV align="left" dir="ltr"&gt;&lt;SPAN class="263043318-11122009"&gt;&lt;FONT color="#0000ff" face="Arial" size="2"&gt;3) Added code to initialize the ICR22 register.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV align="left" dir="ltr"&gt;&lt;SPAN class="263043318-11122009"&gt;&lt;FONT color="#0000ff" face="Arial" size="2"&gt;4) updated DTIM ISR to clear interrupt flag.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV align="left" dir="ltr"&gt;&lt;SPAN class="263043318-11122009"&gt;&lt;FONT color="#0000ff" face="Arial" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV align="left" dir="ltr"&gt;&lt;SPAN class="263043318-11122009"&gt;&lt;FONT color="#0000ff" face="Arial" size="2"&gt;My testing was not extensive.&amp;nbsp; On the EVB I used a jumper from J1 pin 40/TIN3 to BDM pin 25/VDD for high and BDM pin 23/GND for low.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV align="left" dir="ltr"&gt;&lt;SPAN class="263043318-11122009"&gt;&lt;FONT color="#0000ff" face="Arial" size="2"&gt;If not connected, the pin floats and interrupt is generated often.&amp;nbsp; Note that when halted and swap jumper locations this float state causes a capture interrupt to be registered.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;SPAN class="263043318-11122009"&gt;&lt;FONT color="#0000ff" face="Arial" size="2"&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;DIV align="left" dir="ltr"&gt;&lt;FONT color="#0000ff" face="Arial" size="2"&gt;&lt;SPAN class="263043318-11122009"&gt;&lt;FONT color="#0000ff" face="Arial" size="2"&gt;If connected to high no interrupt until you disconnect and connect to low (I do this while HALTed).&amp;nbsp; Then only one interrupt generated.&amp;nbsp; If not HALTed then lots of interrupts because of the float state.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;DIV align="left" dir="ltr"&gt;&lt;FONT color="#0000ff" face="Arial" size="2"&gt;&lt;FONT color="#0000ff" face="Arial" size="2"&gt;&lt;SPAN class="263043318-11122009"&gt;&lt;FONT color="#0000ff" face="Arial" size="2"&gt;If connected to&amp;nbsp;low no interrupt until you disconnect and connect to low (I do this while HALTed).&amp;nbsp; Then only one interrupt generated.&amp;nbsp; If not HALTed then lots of interrupts because of the float state.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV align="left" dir="ltr"&gt;&lt;FONT color="#0000ff" face="Arial" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;BR /&gt;&lt;SPAN class="263043318-11122009"&gt;&lt;FONT color="#0000ff" face="Arial" size="2"&gt;Regards,&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV align="left" dir="ltr"&gt;&lt;SPAN class="263043318-11122009"&gt;&lt;FONT color="#0000ff" face="Arial" size="2"&gt;David&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 12 Dec 2009 02:50:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/How-to-set-an-interrupt-to-be-direct/m-p/158345#M959</guid>
      <dc:creator>DavidS</dc:creator>
      <dc:date>2009-12-12T02:50:35Z</dc:date>
    </item>
    <item>
      <title>Re: How to set an interrupt to be direct?</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/How-to-set-an-interrupt-to-be-direct/m-p/158346#M960</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I followed the example to direct IRQ7 to my own isr handler.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;However, there is no problem if the port is configured as Edge triggered. ( bcnt increased 1if there is interrupt&amp;nbsp; ---- I am using s "ABORT" switch in 52259EVB ).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;But if the port is configured as Level triggered, it will keep triggering the interrupt if ABORT button is pressed.So the isr handler is called numerous times................ Is this right?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;eGuy&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 03 Jun 2010 00:22:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/How-to-set-an-interrupt-to-be-direct/m-p/158346#M960</guid>
      <dc:creator>eGuy</dc:creator>
      <dc:date>2010-06-03T00:22:57Z</dc:date>
    </item>
    <item>
      <title>Re: How to set an interrupt to be direct?</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/How-to-set-an-interrupt-to-be-direct/m-p/158347#M961</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi eGUY,&lt;/P&gt;&lt;P&gt;Edge sensitive IRQs latch the edge and generate one interrupt to the core.&amp;nbsp; It will not generate another interrupt until it has negated and then again gone low (i.e. generates an edge).&lt;/P&gt;&lt;P&gt;Level sensitive IRQs will generate interrupt as long as the IRQ signal is low.&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;David&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 03 Jun 2010 01:10:39 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/How-to-set-an-interrupt-to-be-direct/m-p/158347#M961</guid>
      <dc:creator>DavidS</dc:creator>
      <dc:date>2010-06-03T01:10:39Z</dc:date>
    </item>
    <item>
      <title>Re: How to set an interrupt to be direct?</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/How-to-set-an-interrupt-to-be-direct/m-p/158348#M962</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I use edge sensitive interrupt solved the problem.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 17 Jun 2010 20:43:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/How-to-set-an-interrupt-to-be-direct/m-p/158348#M962</guid>
      <dc:creator>eGuy</dc:creator>
      <dc:date>2010-06-17T20:43:04Z</dc:date>
    </item>
    <item>
      <title>Re: How to set an interrupt to be direct?</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/How-to-set-an-interrupt-to-be-direct/m-p/158349#M963</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; font-size: 10pt; background-color: #f5f5f5; font-family: Arial, Helvetica, sans-serif;"&gt;I followed this post to set&amp;nbsp; up PIT0 timer, but I got errors! Here is my code:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; font-family: Arial, Helvetica, sans-serif; font-size: 10pt; background-color: #f5f5f5;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; font-family: Arial, Helvetica, sans-serif; font-size: 10pt; background-color: #f5f5f5;"&gt;extern void PIT0_isr( pointer ); &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; font-family: Arial, Helvetica, sans-serif; font-size: 10pt; background-color: #f5f5f5;"&gt;_int_install_kernel_isr(INT_PIT0, PIT0_isr);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // got error: &lt;SPAN style="color: #51626f; font-family: Arial, Helvetica, sans-serif; background-color: #f5f5f5;"&gt;illegal implicit conversion from 'void (void *)' to 'void (*)()'&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; font-size: 10pt; background-color: #f5f5f5; font-family: Arial, Helvetica, sans-serif;"&gt;__declspec(interrupt:0) void PIT0_isr( pointer user_isr)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; got error: &lt;SPAN style="color: #51626f; font-family: Arial, Helvetica, sans-serif; background-color: #f5f5f5;"&gt;declaration syntax error&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; font-family: Arial, Helvetica, sans-serif; font-size: 10pt; background-color: #f5f5f5;"&gt;{ &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; font-family: Arial, Helvetica, sans-serif; font-size: 10pt; background-color: #f5f5f5;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PIT_TFLG0 |= PIT_TFLG_TIF_MASK; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; font-family: Arial, Helvetica, sans-serif; font-size: 10pt; background-color: #f5f5f5;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _lwevent_set(&amp;amp;lwevent_cali, LWEVENT_BIT_CALI); &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; font-family: Arial, Helvetica, sans-serif; font-size: 10pt; background-color: #f5f5f5;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; font-family: Arial, Helvetica, sans-serif; font-size: 10pt; background-color: #f5f5f5;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 Dec 2013 18:16:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/How-to-set-an-interrupt-to-be-direct/m-p/158349#M963</guid>
      <dc:creator>wne</dc:creator>
      <dc:date>2013-12-03T18:16:30Z</dc:date>
    </item>
    <item>
      <title>Re: How to set an interrupt to be direct?</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/How-to-set-an-interrupt-to-be-direct/m-p/158350#M964</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Bing Hao: Your question may be best handled in a new thread, since this one has been answered.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However, _lwevent_set() is an MQX service, but you cannot called MQX services from a kernel ISR. I believe this is your problem.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 09 Nov 2015 22:33:43 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/How-to-set-an-interrupt-to-be-direct/m-p/158350#M964</guid>
      <dc:creator>brianwilloughby</dc:creator>
      <dc:date>2015-11-09T22:33:43Z</dc:date>
    </item>
  </channel>
</rss>

