freertos openamp 使用vitis创建的工程,任务无法调度
Posted 为了维护世界和平_
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了freertos openamp 使用vitis创建的工程,任务无法调度相关的知识,希望对你有一定的参考价值。
freertos openamp 使用vitis创建的工程,任务无法调度。
freertos openamp 使用vitis创建的工程,任务中使用 vTaskDelay( 1000 )直接卡住了,无法调度。
vTaskDelay不能用在临界区或者中断函数中
猜测openamp中使用了这两种函数中的一种
解决方法
FreeRTOS_ClearTickInterrupt();
platform_init()
FreeRTOS_SetupTickInterrupt();
static void processing(void *unused_arg)
void *platform;
struct rpmsg_device *rpdev;
LPRINTF("Starting application...\\n");
/* Initialize platform */
FreeRTOS_ClearTickInterrupt();
if (platform_init(NULL, NULL, &platform))
LPERROR("Failed to initialize platform.\\n");
else
FreeRTOS_SetupTickInterrupt();
rpdev = platform_create_rpmsg_vdev(platform, 0,
VIRTIO_DEV_SLAVE,//
NULL, NULL);
if (!rpdev)
LPERROR("Failed to create rpmsg virtio device.\\n");
else
app(rpdev, platform);
platform_release_rpmsg_vdev(rpdev);
LPRINTF("Stopping application...\\n");
platform_cleanup(platform);
/* Terminate this task */
vTaskDelete(NULL);
以上是关于freertos openamp 使用vitis创建的工程,任务无法调度的主要内容,如果未能解决你的问题,请参考以下文章