I am having some issues with the TI RTOS in the CC3200 program that we are making...
Background:
- We are using the TI Environment (CC Studio) Version: 6.0.1.00040
- Using the TI Compiler version 5.1.9 in all the projects.
- Using the TI-RTOS support (not the Non-OS, and not the FreeRTOS).
- Started with the WLAN_Station demo software.
Project Goals:
- Take streaming serial port data via DMA and turn around and send it out thru WiFi to the connected PC.
- The WiFi is connected via sockets, and this part of the application works...
Program summary:
- Consists of two tasks created by Main.
- Controlled by two semaphores also created in the Main before the RTOS is started (before OSI_Start).
- Semaphores are globals.
Issue:
Program starts, and the sockets are connected. All is good. Then the Ethernet / Wifi task suspends waiting for data.
When I issue the Semaphore Signal from the Interrupt caused by the UART the system sets a "Stack error" and exits...
The call looks like below:
// Flag the Semaphore...
returnValue = osi_SyncObjSignalFromISR(&g_WaitForBuffer1Full);
Things tried:
If I call this function from inside a different task (test) task, that is not an interrupt, but a peer task, then we can go all day without issue.
This leads me to believe there is some magic about signaling a Semaphore in the interrupt from hardware (I think it is actually a software interrupt call back.).
So any help about what is wrong?