FreeRTOS上移植RT-thread的at组件

发布时间 2023-10-31 10:07:15作者: 一只小云安

因为一开始用的是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中会采用这种方式。这个项目不用。