268_S32K144_FreeRTOS的队列

完整的S32K144的学习汇总如下:

https://github.com/GreyZhang/g_s32k144

    继续学习S32K144,结合这个芯片学习一下FreeRTOS的实际应用。这一次,我想先学习一下队列的应用。

    按照文档的解读,这个队列其实确实是有着一个先后关系的意思。但是,这个队列的作用更多的是一个消息传递。今天,我需要做的工作如下:

  1. 使能FreeRTOS中的队列功能;
  2. 创建一个队列信号,实现一个深度的队列信号的的收发测试;
  3. 创建一个多元素的队列,测试多元素队列的行为。

268_S32K144_FreeRTOS的队列_第1张图片

    之后,代码生成,增加如下的代码设计。

268_S32K144_FreeRTOS的队列_第2张图片

    创建一个task,接收队列信号。队列信号的发送通过1000ms的task。

268_S32K144_FreeRTOS的队列_第3张图片

    队列信号在这里发送,每次增加 1。

268_S32K144_FreeRTOS的队列_第4张图片

    这个任务,接收到信号之后执行任务体,每次打印一个字符。这样,软件运行的效果如下:

268_S32K144_FreeRTOS的队列_第5张图片

    看的出,与我们预期的效果一致。

    接下来,试试队列深度的修改。上面的字符其实一共是9个,我们直接把队列深度修改为10,然后,一次发送9个队列信号。

268_S32K144_FreeRTOS的队列_第6张图片

    队列深度修改。

268_S32K144_FreeRTOS的队列_第7张图片

    发送方式修改。至于接收队列的task,不需要修改。软件编译烧写之后运行效果:

268_S32K144_FreeRTOS的队列_第8张图片

    依然如此,但是,这一次的字符串能够感觉得出,一下子全都打印出来了而不像之前每秒钟只有一个字符。其实,这个功能可以给我们一些启示,那就是我们可以借助于这个功能完成一个资源占用不大的printf。

    增加队列的注册功能,允许最多2个队列注册。

完整的S32K144的学习汇总如下:

https://github.com/GreyZhang/g_s32k144

你可能感兴趣的:(S32K,嵌入式,RTOS)