<?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: Kinetis NVIC and C++ in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-NVIC-and-C/m-p/168339#M1069</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I handle this with a static member function. That is how it is done, and is 100% possible.&lt;/P&gt;&lt;P&gt;Not&amp;nbsp; sure why you need to use a Delegate in this case. Also, be very careful of using new in general with a relatively small amount of RAM. &lt;/P&gt;&lt;P&gt;You can have the static member function take a pointer to an instance of the object.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;class &lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;CSerialPort&lt;/SPAN&gt; {&lt;/P&gt;&lt;P&gt;private:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; void DoStuff();&lt;/P&gt;&lt;P&gt;public:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; static void HandleInterrupt(CSerialPort* pThis);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void CSerialPort::HandleInterrupt(CSerialPort* pThis)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pThis-&amp;gt;DoStuff();&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;CSerialPort UART0( required init parms);&lt;/P&gt;&lt;P&gt;CSerialPort UART1( required init parms);&lt;/P&gt;&lt;P&gt;void UART0InterruptHandler()&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; CSerialPort::HandleInterrupt(&amp;amp;UART0);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void UART1InterruptHandler()&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; CSerialPort::HandleInterrupt(&amp;amp;UART1);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 08 Nov 2012 21:45:58 GMT</pubDate>
    <dc:creator>JimDon</dc:creator>
    <dc:date>2012-11-08T21:45:58Z</dc:date>
    <item>
      <title>Kinetis NVIC and C++</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-NVIC-and-C/m-p/168333#M1063</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm wanting to redirect the UART IRQ handler to an instance function in a C++ class.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Does anyone have any experience of doing this in a bare-metal fashion?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As I'm wanting this to work in an interrupt driven manor, I guess the same will eventually apply to the ADC and I2C peripherals too.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks in advance,&lt;/P&gt;&lt;P&gt;Kev&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 Nov 2012 15:49:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-NVIC-and-C/m-p/168333#M1063</guid>
      <dc:creator>weblar</dc:creator>
      <dc:date>2012-11-08T15:49:57Z</dc:date>
    </item>
    <item>
      <title>Re: Kinetis NVIC and C++</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-NVIC-and-C/m-p/168334#M1064</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;static OBJ* obj;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // set this sometime.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;extern "C" uartHandler()&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; obj-&amp;gt;memberFunc();&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 Nov 2012 16:56:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-NVIC-and-C/m-p/168334#M1064</guid>
      <dc:creator>dickelbeck</dc:creator>
      <dc:date>2012-11-08T16:56:37Z</dc:date>
    </item>
    <item>
      <title>Re: Kinetis NVIC and C++</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-NVIC-and-C/m-p/168335#M1065</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You may want to look into the use of Delegates. Delegates provide a class wrapper template that links the pointer to the object with a pointer to the member function. It simplifies the calling sequence and works with the tight typcasting done in C++. They work well for interrupt and call back functions in C++. We use them extensivly in our in-house C++ based RTOS. We run our RTOS on several processors and compilers, The delegate templates helped solve some of our portability issues.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Do a search for delegates and fast delegates in C++. There's numerous examples out there. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 Nov 2012 17:56:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-NVIC-and-C/m-p/168335#M1065</guid>
      <dc:creator>ndavies</dc:creator>
      <dc:date>2012-11-08T17:56:27Z</dc:date>
    </item>
    <item>
      <title>Re: Kinetis NVIC and C++</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-NVIC-and-C/m-p/168336#M1066</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for your suggestions.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm not sure how a delegate would help me in this situation - it might be just my understanding though.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If I have the following class in C++, how would I then go about using a delegate to point to my instance method? &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;// ============================================================================&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;// CSerialPort class&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;// ============================================================================&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;// ----------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;// Declarations&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;// ----------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;class CSerialPort;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;typedef CSerialPort *PSerialPort;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;// ----------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;// Definitions&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;// ----------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;class CSerialPort {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp; public:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp; CSerialPort(UART_MemMapPtr uart);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp; private:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp; void InterruptHandler(void);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp; UART_MemMapPtr m_pUart;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;};&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;// ----------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;// Implementation&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;// ----------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;// Constructor&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;CSerialPort::CSerialPort(UART_MemMapPtr uart) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp; m_pUart = uart;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp; // Here I need to modify the NVIC so that the UARTn IRQ points to the &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp; // CSerialPort-&amp;gt;InterruptHandler function&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;// This routine should be registered in the NVIC vector table&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;void CSerialPort::InterruptHandler(void) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp; // UARTn_IRQHandler routine&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;// The usual UARTn interrupt handler which is to be replaced somehow&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;void UART0_IRQHandler(void) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;Sorry about the formatting.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Kev&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 Nov 2012 19:05:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-NVIC-and-C/m-p/168336#M1066</guid>
      <dc:creator>weblar</dc:creator>
      <dc:date>2012-11-08T19:05:30Z</dc:date>
    </item>
    <item>
      <title>Re: Kinetis NVIC and C++</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-NVIC-and-C/m-p/168337#M1067</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;It works very similar to Dick Hollenbeck's solution. Delegates just allow extra flexibility. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Delegates may be a little bit overboard for your example with one UART. They will simplify things if you have multiple interrupts calling different ISR classes chained off one ISR input, or multiple interrupts calling different instances of one class. They are needed if you dynamically load ISR vectors and you need to load two different classes at two different times. The advantage from using delegates comes about by masking some of the type casting requirements in C++.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Example, Syntax may not be completely correct but should give you the idea of what should happen:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;delegate *UartD;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;main_loop()&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CSerialPort *PSerialPort = new CSerialPort;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UartD = MakeDelegate(PSerialPort,&amp;amp;CSerialPort::InterruptHandler);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;// The usual UARTn interrupt handler which is to be replaced somehow&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;void UART0_IRQHandler(void) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *UartD(); //(if delegate Template overrides ())&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;This is a much better explanation of their use than I can come up with:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;A href="http://www.codeproject.com/Articles/7150/Member-Function-Pointers-and-the-Fastest-Possible" title="http://www.codeproject.com/Articles/7150/Member-Function-Pointers-and-the-Fastest-Possible"&gt;Member Function Pointers and the Fastest Possible C++ Delegates - CodeProject&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 Nov 2012 21:04:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-NVIC-and-C/m-p/168337#M1067</guid>
      <dc:creator>ndavies</dc:creator>
      <dc:date>2012-11-08T21:04:08Z</dc:date>
    </item>
    <item>
      <title>Re: Kinetis NVIC and C++</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-NVIC-and-C/m-p/168338#M1068</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you for the clarification. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The device I'm using has 5 uarts but I'm wanting to implement a fairly flexible class which allows me to use any of the 5 uarts, either one at a time or many at once, but for each to be interrupt driven. Ideally, uart0 (or in my sample code CSerialPort(UART0_BASE_PTR) ) would map to uart0_irq, uart1 to uart1_irq, etc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I can see how delegates can work but I'm still not certain how I can make them fit for what I'm trying to do - or even if what I'm trying to do is possible.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sorry if I'm missing something, its been a long week...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 Nov 2012 21:24:20 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-NVIC-and-C/m-p/168338#M1068</guid>
      <dc:creator>weblar</dc:creator>
      <dc:date>2012-11-08T21:24:20Z</dc:date>
    </item>
    <item>
      <title>Re: Kinetis NVIC and C++</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-NVIC-and-C/m-p/168339#M1069</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I handle this with a static member function. That is how it is done, and is 100% possible.&lt;/P&gt;&lt;P&gt;Not&amp;nbsp; sure why you need to use a Delegate in this case. Also, be very careful of using new in general with a relatively small amount of RAM. &lt;/P&gt;&lt;P&gt;You can have the static member function take a pointer to an instance of the object.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;class &lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;CSerialPort&lt;/SPAN&gt; {&lt;/P&gt;&lt;P&gt;private:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; void DoStuff();&lt;/P&gt;&lt;P&gt;public:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; static void HandleInterrupt(CSerialPort* pThis);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void CSerialPort::HandleInterrupt(CSerialPort* pThis)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pThis-&amp;gt;DoStuff();&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;CSerialPort UART0( required init parms);&lt;/P&gt;&lt;P&gt;CSerialPort UART1( required init parms);&lt;/P&gt;&lt;P&gt;void UART0InterruptHandler()&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; CSerialPort::HandleInterrupt(&amp;amp;UART0);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void UART1InterruptHandler()&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; CSerialPort::HandleInterrupt(&amp;amp;UART1);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 Nov 2012 21:45:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-NVIC-and-C/m-p/168339#M1069</guid>
      <dc:creator>JimDon</dc:creator>
      <dc:date>2012-11-08T21:45:58Z</dc:date>
    </item>
    <item>
      <title>Re: Kinetis NVIC and C++</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-NVIC-and-C/m-p/168340#M1070</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;That sounds like just the ticket.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I think the pointer to the UART passed in to the static HandleInterrupt rountine was what I was missing.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks to everyone for their suggestions.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 10 Nov 2012 16:22:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-NVIC-and-C/m-p/168340#M1070</guid>
      <dc:creator>weblar</dc:creator>
      <dc:date>2012-11-10T16:22:24Z</dc:date>
    </item>
  </channel>
</rss>

