Page 1 of 1

pin_irq.h/cpp in NANO54415

Posted: Fri Feb 20, 2015 4:01 pm
by mstrzelczyk
Hello, I'm trying to set up IRQ7 on a NANO54415, and approached using the Netburner Runtime Libraries. In the documentation the function calls are indicated as only being for specific modules, but lots of discussions on this board seem to indicate that the MOD54415 library supports these functions. I can locate the following MACRO and function (in intcdefs.h and implemented in bsp.c) in NANO54415 folder:

#define SETUP_IRQ1_EDGEPORT1_ISR(f,l) SetIntc(0,(long)f,1,l)

but SetPinIrq() appears to only be present in MOD54415...NOT the NANO54415 folder in pin_irq.cpp/h.

Does this differ from everyone else's experience? Maybe I have an install error? I'm using release 2.6

Re: pin_irq.h/cpp in NANO54415

Posted: Fri Feb 20, 2015 4:11 pm
by dciliske
They were not available in 2.6.0. You will need to update to a newer revision. Also, IRQ7 is not supported under the pin_irq driver. This is deliberate, as there are major system implications of using IRQ7. It is an unmaskable interrupt. You need to learn how the processor works with interrupts and know exactly what you want things to do if you are going to be using IRQ7.

-Dan

Re: pin_irq.h/cpp in NANO54415

Posted: Sat Feb 21, 2015 10:27 am
by rnixon
A non-maskable interrupt means you cannot use any rtos calls inside the isr. Irq 7 is used only for the most extreme and response time critical parts of an application, because the app needs to ensure operation is such that all necessary processing is done before the next one occurs, since you can't stop the next one with the mask.

Re: pin_irq.h/cpp in NANO54415

Posted: Mon Feb 23, 2015 11:33 am
by mstrzelczyk
Thank you, gentlemen. Installing 2.6.7 was helpful.

Regarding IRQ7, The design is in CAD, but not fab, so I believe we can switch lines. We're integrating the NANO module into an instrument. Can either of you cite where the hardware designer can find this info for reference? I can't locate in /platform or the QS guide or anywhere in Netburner docs that indicate that IRQ7 is an NMI. Even the Freescale MCF55415RM.pdf refers to LEVEL7 being non-maskable without making a strong coupling to the Edge port input "IRQ7". I am new to the architecture, so I'm probably missing it...do I need to dig even deeper into M68000 documentation?

Regardless, simply for programming resources and RTOS compatibility, we'll likely swap two lines. Thank you!