TencentOs Tiny 学习日志-AT框架 2019_12_30_02

通过看TencentOs tiny github附带的API源码学习课程,竟然还有视频终于都AT框架的实现有更彻底的认识,如果要明白SAL层和AT框架如何与模组进行同步异步通信的必须学习两个知识,信号量和互斥锁。

信号量和互斥锁的原理百度千篇一律,我从视频和博客针对TencentOS tiny源码的分析,对信号量和互斥锁才是彻底掌握。

我以以下tencentOs里AT框架源码解释一下互斥锁,我们最关心的就是AT框架如何利用AT指令与模组进行通信,这里AT框架提供两个发指令API:

1) tos_at_cmd_exec 发送一条指令,取得串口所有权后,发送完即返回

2)tos_at_cmd_exec_until  发送一条指令,直到捡到期望值echo对象后才返回

先从tos_at_cmd_exec解释起,这个API只用到了互斥锁,就是在获取uart口这个临界资源时,tos_mutex_pend获取锁,当获取不到时任务则被挂起等待其他任务释放互斥uart锁,当代码能继续往下运行代码已经获取到uart锁了,当数据发送出去后,任务at_parser及时处理模组串口指令回复,赋值给echo对象,达到同步效果,通过互斥锁的挂起,实现代码看似顺序执行,无需等待即拿到模组串口指令回复。

附带tos_at_cmd_exec接口源码:

__API__ int tos_at_cmd_exec(at_echo_t *echo, uint32_t timeout, const char *cmd, ...)
{
    int ret = 0;
    va_list args;

    if (echo) {
        at_echo_attach(echo);
    }

    va_start(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
 【课程特色】从需求分析到硬件设计再到软件开发全部都是在设计本课程时候真实同步进行的。比如元器件的选型、原理图的设计、PCB的下单生产,用我自购买的贴片机进行样板贴片的操作过程,代码部分框架如何搭建,驱动怎么编写,NB-iot如何一步步连接到阿里云云端,我把在公司开发物联网产品经验常碰到的问题点都融入到了这套课程当中整个课程力求让同学们能通过一个NB-IOT项目掌握同一类的物联网项目的开发,即便你以后使用其他型号NB-IOT模组或者实现其他功能同样知道该如何把一个大的项目划分成小的功能最后实现出来针对核心的内容我们会先给大家讲实现的思路,配套画出流程图,最后再对照流程图实现代码,而不至于面对一个复杂的项目迷失在代码的海洋里找不到方向把STM32使用、Freertos的应用、阿里云物联网平台的应用的知识都贯穿在整个项目进行中在课程中产生的每一个文档,每一张流程图,以及原理图PCB等设计的源文件全部开放给学员 【建议学习计划】1、建议一到两天学习一节,整个项目学习周期大概在两个月时间 2、除了看视频一定要动手实践,这样才能有最大的收获 3、在代码环节可以先模仿我们写,之后可以再尝试自己写,直到能把它理解透彻 4、遇到疑问点要学会首先使用搜索引擎,搜索引擎找不到答案的问题及时向我提问,我会给你解答【课程内容大纲】【提供完善的文档资料】 

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值