关于freeRTOS的问题

由于通过eAI转换的模型运行慢,所以建立了一个TASK对图像进行DNN处理。通过互斥信号量在主函数和图像处理任务传递数据。但是调试时LCD卡在一帧。研究后发现在主函数中读取互斥量就会卡死。

数据结构

参数初始化

建立任务

任务内容

在simple_main的while(1)中加入下面两个就会卡死

Parents
  • 从你添加到while(1)中的程序来看,mutex使用的有点问题,应为使用wait的话就有可能获取不了mutex,这时候释放时会有问题的,你把mutex释放的程序放到if语句的括号里试试。
  • 我想通过消息队列传递数组,不知道参数怎么写。
    int work_buffer[50];
    R_OS_MessageQueuePut(image_dnn_buf.camera_buffer_queue, work_buffer);
    这个PUT函数的后一个参数是填数组名吗?
    int dnn_buf[50];
    R_OS_MessageQueueGet(image_dnn_buf.camera_buffer_queue, dnn_buf ,NFINITE_DELAY, TRUE);
    在使用GET函数接收时,也是建立同样一个数组,让后填数组名吗?
Reply
  • 我想通过消息队列传递数组,不知道参数怎么写。
    int work_buffer[50];
    R_OS_MessageQueuePut(image_dnn_buf.camera_buffer_queue, work_buffer);
    这个PUT函数的后一个参数是填数组名吗?
    int dnn_buf[50];
    R_OS_MessageQueueGet(image_dnn_buf.camera_buffer_queue, dnn_buf ,NFINITE_DELAY, TRUE);
    在使用GET函数接收时,也是建立同样一个数组,让后填数组名吗?
Children
No Data