Hello, sry for my bad eng
i have a problem w Uart when used a few tasks
Task_Struct task0Struct, task1Struct;
Char task0Stack[TASKSTACKSIZE], task1Stack[TASKSTACKSIZE];
Task_Handle uartTask, vmTask;
Semaphore_Struct sem0Struct;
Semaphore_Handle vmSem;
UART_Handle hUART;
UART_Params params;
Void uartFxn(UArg a0, UArg a1){
if(!hUART){
UART_Params_init(¶ms);
params.readMode = UART_MODE_BLOCKING;
params.writeDataMode= UART_DATA_BINARY;
params.readTimeout = 1000;
params.readCallback = NULL;
params.readEcho = UART_ECHO_OFF; //Not needed on CC26XX implementation as not implemented
params.baudRate = 9600;
hUART = UART_open(Board_UART0, ¶ms);
}
if (!hUART) {
System_abort("Error initializing UART\n");
}
uint32_t i = 0;
while(1){
System_flush();
System_printf(" %d", i);
i++;
if(i==5){
Semaphore_post(vmSem);
}
Task_sleep(1000000 / Clock_tickPeriod);
}
}
void vmFxn(void){
while(1){
Semaphore_pend(vmSem, BIOS_WAIT_FOREVER);
System_flush();
System_printf("asdasdasdasd");
System_flush();
System_printf("asdasdasdasd");
break;
}
}
/*
* ======== main ========
*/
int main(void)
{
Task_Params taskParams;
Semaphore_Params semParams;
/* Call board init functions */
Board_initGeneral();
/* Construct BIOS objects */
Task_Params_init(&taskParams);
taskParams.stackSize = TASKSTACKSIZE;
taskParams.stack = &task0Stack;
taskParams.priority = 2;
taskParams.instance->name = "vmFxn";
Task_construct(&task0Struct, (Task_FuncPtr)vmFxn, &taskParams, NULL);
vmTask = Task_handle(&task0Struct);
taskParams.stack = &task1Stack;
taskParams.priority = 1;
taskParams.instance->name = "uartFxn";
Task_construct(&task1Struct, (Task_FuncPtr)uartFxn, &taskParams, NULL);
uartTask = Task_handle(&task1Struct);
Semaphore_Params_init(&semParams);
semParams.mode = Semaphore_Mode_BINARY;
Semaphore_construct(&sem0Struct, 0, &semParams);
vmSem = Semaphore_handle(&sem0Struct);
/* Start BIOS */
BIOS_start();
return (0);
}
when the project starts, UART activates successfully
but when i change the task, UART crashes and doesnt work till the programm is finished