建议使用以下浏览器,以获得最佳体验。 IE 9.0+以上版本 Chrome 31+ 谷歌浏览器 Firefox 30+ 火狐浏览器
请选择 进入手机版 | 继续访问电脑版
设置昵称

在此一键设置昵称,即可参与社区互动!

确定
我再想想
选择版块
标签
您还可以添加5个标签
  • 没有搜索到和“关键字”相关的标签
  • 云产品
  • 解决方案
  • 技术领域
  • 通用技术
  • 平台功能
取消

樊心昊

发帖: 172粉丝: 136

发消息 + 关注

发表于2020年04月19日 17:25:53 1294 2
直达本楼层的链接
楼主
显示全部楼层
[技术干货] LiteOS_Lab仓库组件详解--汇总帖

这期我想给大家做个LiteOS_Lab仓库中的各个组件的详解,源码级别的详解,这个帖子是汇总帖,我将慢慢的填补。

一、简略介绍

组件名称 作用 常见用法
OS
操作系统组件,其中包括LiteOS、Linux、novaos、macos等常用操作系统,并通过osal文件将各种不同操作系统的任务相关函数、任务同步机制函数、内存相关函数等进行了统一的接口封装,这样有利于我们更换不同的操作系统和移植,而不用更改上层代码,这就是接口抽象封装并将代码模块化编程的体现。 如果我们使用os组件中已有的操作系统,只需修改SDK配置;如果使用其他操作系统我们需要自行实现osal_imp.h中tag_os_ops结构体中要求的函数。
完成上一步后,调用os_imp_init函数初始化并安装操作系统即可。
我们就可以直接在用户代码中使用osal.h中的各种函数。
stimer 该组件用于让我们添加一些每过一段时间就需要执行一次的定时任务,例如刷新显示屏、采集温湿度等操作。
使用之前先在SDK配置中选择该组件,调用stimer_init函数初始化之后即可使用。
用stimer_create函数配置需要定时的任务。
用stimer_delete函数移除不需要的定时任务。
shell 该组件能为单片机提供一个类似于Linux下的shell接口,是我们是串口助手就可以实时执行预设好的指令,并提供[TAB]键指令补全操作。
使用之前先在SDK配置中选择该组件,并实现好printf函数与scanf函数,调用shell_init函数初始化之后即可使用。
调用OSSHELL_EXPORT_CMD宏定义并传入命令名称、命令执行函数、命令帮助即可在shell中执行该预设命令。
driver 该组件类似于Linux中设备注册,可以理解为使用该组件注册过的设备用户不用关心设备底层读写是如何实现的,举个例子:操作硬盘读写和操作串口读写的操作方法一样,极大的提升了不同设备的可移植性和接口统一化,我们的at指令框架就是采用该种方式实现的。
我们一般通过先实现driver.h中的los_driv_op_t结构体中的函数(设备初始化、读操作、写操作等等),然后去调用OSDRIV_EXPORT宏定义的方式去注册驱动,系统会在适当的时候自动加载我们注册的驱动。
注册完成后就可以调用los_dev_read函数读取设备中的数据,los_dev_write写数据到设备中等操作。
at 该组件用于让MCU给支持AT指令的一些外部网络通讯模组发送指令和接收数据。 注意:使用driver注册过的串口才能使用at框架。




二、连载帖汇总

Ubuntu下搭建LiteOS_Lab开发环境

0x00 LiteOS_Lab仓库组件详解--OS

0x01 LiteOS_Lab仓库组件详解--AT(上)

0x02 LiteOS_Lab仓库组件详解--Driver(上)

0x03 LiteOS_Lab仓库组件详解--Driver (下)

0x04 LiteOS_Lab仓库组件详解--AT(中)

0x05 LiteOS_Lab仓库组件详解--AT(下)

0x06 LiteOS_Lab仓库组件详解--AT框架总结

0x07 LiteOS_Lab仓库组件详解 cJSON(上)

0x08 LiteOS_Lab仓库组件详解 cJSON(下)

三、杂谈贴汇总

LiteOS_Lab仓库组件杂谈---ring_buffer.c

举报
分享

分享文章到朋友圈

分享文章到微博

华为IoT云服务

发帖: 251粉丝: 227

发消息 + 关注

发表于2020年04月21日 20:28:40
直达本楼层的链接
沙发
显示全部楼层

点赞 评论 引用 举报

我是卤蛋

发帖: 121粉丝: 287

发消息 + 关注

发表于2020年06月26日 11:14:41
直达本楼层的链接
板凳
显示全部楼层

感谢分享,持续学习~

点赞 评论 引用 举报

游客

富文本
Markdown
您需要登录后才可以回帖 登录 | 立即注册