I am pulling my hair out on this one. There are a couple of unexpected things.
The first is that when sitting at main() and ready to start debugging, NDK StackThread has priority 5 and is READY. The function is ti_ndk_config_Global_stackThread. It is not weird but the idle thread is sitting READY as well and these are the only tasks in the system.
I have several tasks that get created with priorities at 3. I set the UDP task set at 7. The NDK is configured with priorities of 10, 8, 6, and 4 in the config file.
I hit F8 to run the system and all of my code runs. The UDP task is stopped at a semaphore (probably in a call to select() ). The NDK Stack Thread now has a priority of 8 and is blocked at a semaphore. My task that communicates with the UDP task is stopped at its input Mailbox_pend(). I have sent a message to the UDP task from its computer but it appears that the NDK did not receive the packet.
Another weirdness is that the ROV data in the Detailed tab is all red when I pause the system.
If I comment out the call to create my communication task that pends on the mailbox, the system runs more or less correctly (except the part where it should be getting a message from the UDP task). The communication task pends on a mailbox from my NDK task communicating via UDP and then sends a message back through another mailbox to the UDP task.
Anyone have any ideas why adding a task that pends on a mailbox would interfere with network communications?
I must admit that I have not followed the NDK rules just yet and used the NDK TaskCreate() call rather than the SYS/BIOS call. It didn't seem like it would be necessary since the system runs until I add a task using mailboxes. That is the next step, but I don't hold out much hope.