请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:LP-CC1312R7 主题中讨论的其他器件:CC1312R7
大家好!
我正在尝试使用 CC1312R7创建应用。 有两个不同的线程。 只有 rf_runcmd 命令在第一个线程上运行。 在第二个线程中、我捕获来自串行端口的数据并将其排列在一个数组中。 但经过一段时间后、系统会崩溃并出现运行时错误。 我不知道我应该如何组织我的线程结构。 有人有评论吗? 下面是我的线程配置
#define PTHREAD_CREATE_DETACHED
int main(void)
{
pthread_t thread[2];
pthread_attr_t attrs[2];
struct sched_param priParam[2];
int retc[2];
int detachState[2];
/* Call driver init functions */
Board_initGeneral();
GPIO_init();
/* Set priority and stack size attributes */
pthread_attr_init(&attrs[0]);
priParam[0].sched_priority = 1;
detachState[0] = PTHREAD_CREATE_DETACHED;
retc[0] = pthread_attr_setdetachstate(&attrs[0],detachState[0]);
if (retc[0] != 0)
{
/* pthread_attr_setdetachstate() failed */
while (1);
}
pthread_attr_setschedparam(&attrs[0], &priParam[0]);
retc[0] |= pthread_attr_setstacksize(&attrs[0], THREADSTACKSIZE);
if (retc[0] != 0)
{
/* pthread_attr_setstacksize() failed */
while (1);
}
retc[0] = pthread_create(&thread[0], &attrs[0], mainThread, NULL);
if (retc[0] != 0)
{
/* pthread_create() failed */
while (1);
}
/* Set priority and stack size attributes */
pthread_attr_init(&attrs[1]);
priParam[1].sched_priority = 2;
detachState[1] = PTHREAD_CREATE_DETACHED;
retc[1] = pthread_attr_setdetachstate(&attrs[1],detachState[1]);
if (retc[1] != 0)
{
/* pthread_attr_setdetachstate() failed */
while (1);
}
pthread_attr_setschedparam(&attrs[1], &priParam[1]);
retc[1] |= pthread_attr_setstacksize(&attrs[1], THREADSTACKSIZE);
if (retc[1] != 0)
{
/* pthread_attr_setstacksize() failed */
while (1);
}
retc[1] = pthread_create(&thread[1], &attrs[1], rf_transmitThread, NULL);
if (retc[1] != 0)
{
/* pthread_create() failed */
while (1);
}
pthread_join(thread[0], NULL);
pthread_join(thread[1], NULL);
BIOS_start();
}


辛塞莱里