完整的S32K144的学习汇总如下:
https://github.com/GreyZhang/g_s32k144
继续学习S32K144,结合这个芯片学习一下FreeRTOS的实际应用。这一次,我想先学习一下队列的应用。
按照文档的解读,这个队列其实确实是有着一个先后关系的意思。但是,这个队列的作用更多的是一个消息传递。今天,我需要做的工作如下:
- 使能FreeRTOS中的队列功能;
- 创建一个队列信号,实现一个深度的队列信号的的收发测试;
- 创建一个多元素的队列,测试多元素队列的行为。
之后,代码生成,增加如下的代码设计。
创建一个task,接收队列信号。队列信号的发送通过1000ms的task。
队列信号在这里发送,每次增加 1。
这个任务,接收到信号之后执行任务体,每次打印一个字符。这样,软件运行的效果如下:
看的出,与我们预期的效果一致。
接下来,试试队列深度的修改。上面的字符其实一共是9个,我们直接把队列深度修改为10,然后,一次发送9个队列信号。
队列深度修改。
发送方式修改。至于接收队列的task,不需要修改。软件编译烧写之后运行效果:
依然如此,但是,这一次的字符串能够感觉得出,一下子全都打印出来了而不像之前每秒钟只有一个字符。其实,这个功能可以给我们一些启示,那就是我们可以借助于这个功能完成一个资源占用不大的printf。
增加队列的注册功能,允许最多2个队列注册。
完整的S32K144的学习汇总如下: