Tool/software:
Hi all,
I am developing on oad-onchip example, create a new task and a queue.
static void *DataStream_Task(void *arg) { for (;;) { DataStream_appEvt_t pAppEvt; if (mq_receive(DataStream_theardEntity.queueHandle, (char*)&pAppEvt, sizeof(pAppEvt), NULL) > 0) { } } } static bStatus_t DataStream_createQueue(void) { struct mq_attr attr; attr.mq_flags = 0; attr.mq_curmsgs = 0; attr.mq_maxmsg = 8; attr.mq_msgsize = sizeof(DataStream_appEvt_t); /* Create the message queue */ DataStream_theardEntity.queueHandle = mq_open("DataStream_theardQueue", O_CREAT , 0, &attr); if (DataStream_theardEntity.queueHandle == (mqd_t)-1) { return FAILURE; } return SUCCESS; } Status_t DataStream_enqueueMsg(uint8_t event, void *pData) { int8_t status = SUCCESS; DataStream_appEvt_t msg; // Check if the queue is valid if (DataStream_theardEntity.queueHandle == (mqd_t)-1) { return FAILURE; } msg.event = event; msg.pData = pData; // Send the msg to the application queue status = mq_send(DataStream_theardEntity.queueHandle,(char*)&msg,sizeof(msg),1); return status; } int DataStream_createTask(void) { int retVal = 0; pthread_attr_t param_attribute; struct sched_param param; retVal = pthread_attr_init(¶m_attribute); param.sched_priority = 1; retVal |= pthread_attr_setschedparam(¶m_attribute, ¶m); retVal |= pthread_attr_setstack(¶m_attribute, dataStreamTaskStack, 1024); retVal |= pthread_attr_setdetachstate(¶m_attribute, PTHREAD_CREATE_DETACHED); retVal |= pthread_create(&DataStream_theardEntity.threadId, ¶m_attribute, &DataStream_Task, NULL); return retVal; }
During debug, it's stucked, then I found the stack usage window have lots yellow items. some items I never modified, why cause this, and how can I fix it and keep my codes.