因为一开始用的是FreeRTOS,因此,项目中的RTOS也是FreeRTOS,但是在项目开发过程中,发现需要解析AT指令集,
因此来移植一波RT-thread的软件包。下次就用RT-thread了,纯纯浪费时间移植。
首先捋清大概思路。
1. 串口接收中断被外界消息输入触发,中断在回调函数中将消息内容发给AT任务,并进行任务切换,将所有权转移给AT任务,
2. AT任务进行指令解码,并且相应的解码结果会发送不同的事件给APP任务,并进行任务切换,将所有权转移给APP任务。
这里解释一下为什么AT任务要将解码结果传递。因为该库保证自己良好的可移植性,
AT指令集的格式是统一的,但是指令内容并不统一,将不同的部分分离出来,让用户实现差异部分。
我们应该参考这种设计思路。
然后再由上往下分析一下运用思路,
1.初始化相应的硬件串口
2.初始化AT库,创建任务,相应的信号量,队列。
3.在任务中阻塞等待消息传来。
4.消息传来,进行处理,并发送相应的信号量,将所有权转移给app任务。回到3
改进:
AT组件似乎有一定的e_log函数调用,用来显示过程。决定将其删除,这并不在我们的规划范围之内,
其除了加大任务量,让程序更加无序,不可控,调试代码输出更加混乱之外,毫无意义。调试风格应该一致,因此,我们在RT-thread中会采用这种方式。这个项目不用。
标签:RT,thread,FreeRTOS,解码,任务,移植 From: https://www.cnblogs.com/1234----/p/17799603.html