180_FreeRTOS多值信号的使用

         单值信号的模型可以是只有一个元素的队列,多值信号的模型应该可以考虑为是具有多个元素的队列。从官方给的例子中可以看得到这里有一个优先级的问题,似乎触发的任务的优先级都会高一些,后面我会自己做一个对比测试。

         先分析官方的代码:

         主要工作:

  1. 创建一个最大数值10的计数信号,也就是多值信号,初始值0。
  2. 创建2个任务,第一个优先级是3,用于信号触发;第二个优先级1,周期性任务。
  3. 创建一个模拟中断。

         周期性任务的作用其实是产生中断模拟。

         运行效果:

         行为分析:中断产生,连续三次信号计数。之后,接收信号的高优先级任务激活,连续三次执行。之后,原来的周期性任务完成执行。

         做个优先,周期性任务优先级改成4。这样,三次中断之后,先把中断生成提示打印完,之后触发信号任务。

         跟分析的差不多。一般来说,中断优先级高于普通任务,因此推迟处理的中断最好是有一个高一点的优先级。

         接下来试一下,如果相应的触发数超过了限制会如何?修改如下:

         运行效果:

         从效果看,没有报错,只是有一次被忽略。不知道嵌入式的移植版本中是否会有同样的行为?

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页