[技术干货] AT框架学习——从开始到放弃

本来抱着学习源码的态度,看了几天的AT框架的代码,现在实在是泪奔了,现在给大家总结一下吧:


1、如果仅仅是使用LiteOS 的SDK快速接入平台,不建议去看AT的源码,模仿demo凭经验修改下驱动就好了

2、AT框架现在仅有简单的介绍,没有详细资料,看起来很费事

3、目前的AT框架,使用到了LiteOS ,并不算是一个独立的组件,很难剥离出来使用

4、申请了大量内存使用,开销还是比较大的,demo中的源码来看,都已经申请了15k以上了,实难理解

5、代码中几乎没有注释,大部分凭经验还是可以看懂,但有些接口,就真的很难看懂了,关键是,真的没有comment呀

     (此处省略一万字,当真无语呀,怎么可以没有注释呢?你以为你定义的变量和接口很好猜么,来给我解释下at_oob是个啥,step_callback又是个什么鬼,我只知道这大概是个回调吧,啊啊啊)


吐槽完了,还是来点干的吧:

at_api.c  at_api.h : 向上提供接口,主要供端云互通组件调用,实现数据发送和接收。 用户需要在外部文件实现 at_adaptor_api 接口。

at_main.c   at_main.h : at 命令发送和响应处理。此处算是核心了,看起来费劲。

      串口的接收是环形buffer,利用串口的空闲中断实现分帧机制;每次串口中断都把数据写入环形buffer,移动写指针;如下图:

      image.png

      串口空闲中断,用一个结构体(recv_buff)记录本次接收到的数据长度,以及数据在buffer中的索引,发送到消息队列;

     创建了一个任务,循环读取消息队列并处理

at_hal.c  实现串口的初始化。


能力确实有限,很多看不懂,还望大侠们多发帖子,教教我们呐