前言 自2017年AIoT这个词被不断地提及,物联网已经跨越到一个新的时代,智能成为物联网的核心需求。面对种类繁多、接口复杂的终端设备,物联网操作系统成为AIoT的基础核心。 目前市场流行的物联网操作系统有很多种,例如2000年年初开始诞生的FreeRTOS、μC/OS、RTThread,而这几个更侧重的是操作系统,并非“联网”。2015年发布的LiteOS、2017年发布的AliOS则在操作系统的基础上增加了端云互通功能,实现了真正的物联。 华为在物联网领域有得天独厚的优势,它的核心竞争力在底层硬件,因此可以快速形成一个闭环生态。由于鸿蒙操作系统的内核也是LiteOS,因此鸿蒙发布之后,LiteOS的生态市场更加宽广。 学习一门新技术最好的方式就是通过官网的资料进行学习,尽管华为的技术实力雄厚,然而在文档这一块有些不足。笔者长期致力于物联网项目研发及教学培训,本书将以PBL项目式教学模式带领读者深入了解LiteOS,期待读者可通过本书深入学习LiteOS,同时也为后期学习鸿蒙操作系统打下基础。 本书主要内容 第1章介绍LiteOS基本架构及支持的平台,搭建LiteOS开发环境,包括Windows、Ubuntu、macOS 3种系统下的LiteOS开发工具。 第2章简单介绍Qemu模拟器,包括Windows、Ubuntu、macOS下的Qemu模拟开发环境搭建。 第3章介绍LiteOS基础功能组件,包括任务、中断、内存、错误和异常处理,同时还介绍Makefile开发工具。 第4章介绍LiteOS的IPC机制,包括信号量、互斥锁、队列、事件。 第5章介绍LiteOS其他基础组件,包括时间模块、原子操作、链表等,最后介绍Git版本控制工具。 第6章介绍LiteOS支持的两种标准接口,包括POSIX接口和CMSIS接口。 第7章介绍LiteOS传感器框架,结合Kconfig工具实现传感框架移植。 第8章介绍LiteOS的GUI框架,包括LVGL基础语法、模拟器的使用及移植方法。 第9章介绍LiteOS移植方法,通过案例详细讲解如何移植LiteOS及适配Kconfig菜单。 第10章介绍华为云平台的使用,包括创建产品、定义插件、在线调试等。 第11章介绍CoAP协议,包括CoAP报文结构和LiteOS网络接口,通过内置案例详细解析CoAP如何实现上报数据和接收命令。 第12章介绍MQTT协议报文结构,以及如何在华为云平台创建和调试MQTT产品。同时解析LiteOS内置MQTT案例,最后介绍如何移植原生态MQTT协议。 第13章介绍基于微信小程序的应用开发,以及华为云平台的应用侧HTTPS接口、调试手段。最后通过微信小程序的WebSocket和华为云的IAM账户实现物联网应用App。 阅读建议 本书是一本基础入门加实战的书籍,既有基础知识,又有丰富示例,同时还加入了Qemu、Makefile、Kconfig等常用嵌入式开发工具。本书既可作为入门的学习资料,也可作为项目开发过程中的工具书。书中每个知识点都配有案例,每个案例都提供完整的代码,读者获得源码之后通过make menuconfig使能相应的案例,即可看到案例效果。与LiteOS相关的代码可在STM32L431开发板运行,Makefile、Kconfig、LVGL等工具案例运行在PC端。 建议读者在一开始先把快速入门篇通读一遍,搭建好开发环境。本书最大程度地实现知识解耦,有一定基础的读者可根据实际情况跳跃式阅读。如果没有开发板,则可按照第2章搭建Qemu模拟环境。如果读者需要使用其他开发板,则应先行阅读第9章系统移植。 内核入门篇是LiteOS内核入门知识,这一部分内容在操作系统领域具有通用性,如果读者接触过其他操作系统,则这一部分可快速阅读。此外,部分章节最后还引入了Makefile、Git等工具,掌握此类工具可帮助开发者快速进入物联网开发环节。 内核进阶篇属于LiteOS内核进阶内容,掌握GUI和传感框架才能搭建起大型的物联网项目。对于系统移植,读者可先行阅读此部分内容,以此搭建自己的开发环境。 综合项目实战篇属于实战案例部分,此部分内容基于CoAP和MQTT协议在华为云平台搭建了智能家居项目。CoAP案例和MQTT案例是相互独立的,同时读者也可选择其他云平台实现案例。由于案例中使用了网络模块和GUI模块,所以读者必须使用真实开发板才可运行所有代码。 资源下载提示 素材(源码)等资源: 扫描目录上方的二维码下载。 视频等资源: 扫描封底的文泉云盘防盗码,再扫描书中相应章节的二维码,可以在线学习。 致谢 感谢家人对我工作的支持及业内好友给予的一些珍贵建议,使我可以顺利地完成写作工作。 由于时间仓促,书中难免存在不妥之处,请读者见谅,并提出宝贵意见。 魏杰2023年8月1日