首页 > 其他分享 >FreeRTOS上移植RT-thread的at组件

FreeRTOS上移植RT-thread的at组件

时间:2023-10-31 10:02:12浏览次数:24  
标签:RT thread FreeRTOS 解码 任务 移植

因为一开始用的是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

相关文章

  • 新手使用nodejs的SerialPort获取数据时需要注意的一个小点
    onData(callback:(data:Buffer)=>void):void{if(this.serialPort!=null){this.serialPort.on("data",(data:Buffer)=>{callback(data);})}}​ 上面的代码相当于当串口接收到数据之后就通知......
  • Microsoft 365:如何借助Power Virtual Agents来打造智能客服方案
    Blog链接:https://blog.51cto.com/13969817从ChatGPT问世后,微软的Microsoft365权限产品也陆续拥抱AI,比如PowerVirtualAgents就可以使用生成式AI在几分钟内创建强大的聊天机器人,不需要开发人员的帮助,开箱即用的解决方案,快速地响应客户和员工的需求,适用于相关问题客服支持、相关产......
  • 学习笔记432—VBM_DARTEL算法对灰质变化的计算
    VBM_DARTEL算法对灰质变化的计算根据一些文献得知,VBM目前比较新的算法是DARTEL算法,这一算法被集成在SPM里,这里记录一下做法。VBM是对T1像进行分割得到灰质等。所以要有结构T1加权像数据。整个流程应该是这样:1.手动调整前联合(AC)首先就是需要我们自己手动调整一下结构像,打开SPM,sp......
  • JAVA-EE手写ThreadLocal源码实现一个线程一个连接对象------Java-Web项目
    手写ThreadLocalpackagecom.bjpowernode.ThreadLocal;importjava.util.HashMap;importjava.util.Map;publicclassMyThreadLocal<T>{privateMap<Thread,T>map=newHashMap<>();publicvoidset(To){//向threadLocal中绑定......
  • Annual Report on Fall Semester in 2023
    TodoListDecidethemilestonesinthisterm.Makeamajorpiplineofthistermaccompaniedwithtimeline.PlotagraphonpiplineofmilestonesbasedonthesubjectofDataVisualization.InformalPointsOctober12,2023:ChangedthesurnametoTar......
  • To_Heart—题集——给我一瓶酒再给我一支烟
    本来上上一周就该写的,但最近没心情写题解也没心情写题。嘛。人生被困在一望无垠的荒草里咯!1.CF1305Flink&&submission本来想放在考试的T4的。没做过的同学有福辣!天才随机化第一个结论是最终操作次数不会超过n。因为你可以把所有的奇数全部+1这样gcd至少是2然后这......
  • [UOJ216] Jakarta Skyscrapers
    印尼首都雅加达市有$10^{18}$座摩天楼,它们排列成一条直线,我们从左到右依次将它们编号为$1$到$10^{18}$。除了这$10^{18}$座摩天楼外,雅加达市没有其他摩天楼。有$10^{18}$只叫做“doge”的神秘生物在雅加达市居住,它们的编号依次是$1$到$10^{18}$。编号为$i$的do......
  • .NET 反序列化 GetterSettingsPropertyValue 攻击链
    0x01 链路1 SettingsPropertyValueSettingsPropertyValue位于命名空间 System.Configuration,用于应用程序存储和检索设置的值,此类具有Name、IsDirty、Deserialized、PropertyValue、SerializedValue等多个公共成员,其中SerializedValue属性用于获取或者设置序列化的值,便于持久......
  • Virtual Box 安装CentOS虚拟机简单安装
    一:概述在日常学习中,我们想使用Linux系统时,往往都不是直接在实体物理机中直接安装Linux,而是借助一些虚拟化软件去安装虚拟机,进而达到学习的目的。常见的可以安装虚拟机的软件有:VMware家族VMwareWorstationProVMwareWorkstationPlayerVMwareFusionVirtualBoxKVMParallelsDe......
  • N1中openwrt实现不插网线就能上网,通过wifi连接路由器
    环境说明:路由器:N1盒子系统版本:openwrt前言既然想用这个功能,基本上就是没有网线连接盒子了,不仅限于N1盒子只要是openwrt系统就可以创建接口在openwrt界面上依次点击“网络”->“无线”,第一项是2.4GHz的wifi配置,第二项是5GHz的wifi设置,确定要转接的wifi的频率,点击对应项后面的“扫......