Hi Jim,
On 02/07/2014 10:38 AM, Jim Chen wrote:
while(1) {
/* Wait for event from interrupt routine */
printf("====before\n");
epicsMessageQueueReceive(intMsgQId, data, sizeof(data));
printf("====queue responsed\n");
}
What does the code at the other end of the message queue look like? Does
it get called from interrupt context, or from task-level?
The problem might be that you can't use C++ code inside an ARM ISR (I
don't know whether that's true or not, but it's conceivable), and since
the libCom/osi/os/default/osdMessageQueue.cpp implementation is written
in C++ the problem is with the choice of using the epicsMessageQueue
inthe first place. As I said I don't know whether that is a restriction
but it's something you should check.
- Andrew