工具/软件:
您好:
我已根据 rfUARTbridge / nortos 示例将我的应用移植到类似的 rfUARTbridge example/freeRTOS。
这是“逻辑“工作,但我丢失了数据包。 我的数据包会进行编号、因此很容易记录当前数据包与预期数据包。
获取数据包的代码包含来自对讲机的回调例程。 我的理解是,这个例程被称为
在中断级别、因此我将以下内容包含在回调中:
xTaskNotifyFromISR (Radioprog、1、eSetbits、&HigherPriorityTaskWoken);//合理地调用 ISR “assumption"</s>“
portYIELD_FROM_ISR (pdTrue、&HigherPriorityTaskWoken); //为什么需要它??
Radioprog 任务通过唤醒
ulTaskNotifyTake (pdTRUE、PORT_MAXDELAY); //永远等待、直到 ISR 运行
然而,我似乎丢失了数据包,虽然数据包后处理相对较快,并在“ nortos“版本中工作正常。
Radioprog 的优先级是 7、这是我的任务中最高的、因此我希望 Radioprog 运行、直到它达到 ulTaskNotify、
而是在接收到数据包后立即执行。 我增加了对讲机队列大小、一个问题是如何回调
以及如何检测无线电 CPU 和主 M33 CPU 之间丢失的数据包。
数据包丢弃模式表明、当发生这种情况时、将会丢弃下一个序列中的数据包、并指向该数据包
无法使 Radioprog 在每个数据包上运行(有时)
对我的误解提出的建议和解释、令人欣然接受。
此致、
Gullik