I am relatively new to QNX, have been working on an application using a test x86 PC w/ QNX to get up & running while I waited for some PXA270 boards to arrive. So far so good.
Now I am in a stuck state with our PXA270 (the boards from Colibri and the QNX port from Triadem).
Does anyone have an example of some very basic C code to enable interrupts on general I/O pin change & service them properly? I am new to interrupts, & I can’t seem to get an interrupt to trigger using InterruptAttach() and there’s a bug in the ethernet driver so I’m unable to use the debugger/qconn until they can fix it; testing is very very tedious.
Suggest you contact Triadem, they made the BSP. If you purchased it, you have the source code of the BSP. Somewhere in the startup code the assignment for the GPIO pins and the virtual interrupts is made (intr_init() I think). What you say looks like the pin is not configured properly. Also if you purchased the board and the BSP you are entitled to some technical support from the vendor.
Remote debugging from IDE works also over serial lines - not very fast, but maybe better than trial and error. Haven’t done it myself, though.
thanks for the sugg, I didn’t know about that.
We purchased the binary BSP, not the source; I don’t have the (human) resources to get involved in modifications of BSPs unless absolutely necessary – all I need is this one simple !@#% GPIO interrupt to happen & it would be about $3000 extra to buy the source code from Triadem/QNX. Triadem sells their BSP as a modification (base + they add ethernet support for this board, which ironically is the part not working) of QNX’s PXA270 BSP. I’ve sent a request to QNX to ask about the interrupts, haven’t heard back yet.
A PXA GPIO pin can be configured as input or output, with interrupts disabled or enabled on rising and/or falling edge etc - dozens of parameters. All these are hardcoded in the startup program. If the compiled startup program you have has configured the pin in question as input then you must write a separate library function to set it as output in software after system start-up, i.e. a small program that you run once in your IFS startscript.