前 言
我开始研究物联网(IoT)是在2014年初,当时我已算得上是一名经验丰富的单片机和嵌入式Linux软件开发工程师,也参与过大大小小十来个产品和项目的研发。但是与物联网的相遇,那种久违的、得遇新技术的兴奋与躁动让我“寝食难安”。尤其是共享单车的火爆,让“高大上”“不食人间烟火”的物联网瞬间接了地气儿,让资本圈和技术圈都惊叹:物联网技术潜力无限,“造化”无穷。
近几年,随着5G、人工智能、大数据等技术的发展和逐步商用,物联网技术和产业飞速发展,各行各业涌现出一批世界级的优秀物联网解决方案厂商,这其中又以华为技术有限公司(简称华为)为杰出代表。大多数消费者只知道华为手机好用,华为5G世界领先,实际上,华为在物联网领域也有一套成体系的解决方案,其核心产品有物联网平台华为云IoT、物联网操作系统LiteOS、华为海思NB-IoT芯片等,分别覆盖物联网的平台层和感知层。这套解决方案已经广泛应用在智能仪表、智慧路灯、智能家居等产品中,可以极大助力传统电子产品厂商的物联网化转型。
本书的主要目标是向读者全面介绍LiteOS,读完本书,你可对LiteOS有深度和广度两方面的全新认知,并且有一定能力利用LiteOS快速开发自己的物联网解决方案和产品。为了实现这一目标,本书为大家带来逐步递进的讲解。
本书可供零基础起步的读者阅读。第1章和第2章讲解物联网的概念和典型案例、物联网的技术架构及产品开发流程等,希望加深读者对物联网的认识和理解。第3章全面介绍华为全套物联网解决方案的主要产品,目的是让读者对华为物联网解决方案有整体性和框架性认识,从而能对物联网的特点有更深刻的认识,对物联网系统开发中的重点和难点有所了解。第4章和第5章是本书的重点和特色,融合了我多年的一线研发经验与在线教学经验,深入浅出地讲解了操作系统的原理,以及物联网操作系统的发展历程、特征特点。这两章会解决大部分读者一直以来面临的“操作系统究竟是什么”“操作系统有什么用”“为什么要使用操作系统”“什么是物联网操作系统”等疑问,拉近读者与物联网操作系统技术之间的距离。
以上是本书的上半部分,占了全书超过1/3的篇幅,讲明了物联网和物联网操作系统这两个概念。而本书的下半部分将聚焦LiteOS,“条分缕析”。
第6章是LiteOS的框架性讲解,我的理念是“画人先画骨”,本章就是LiteOS的“骨架”解析,让读者建立对LiteOS的整体性认识,站在更高层次了解整个LiteOS,加深理解。这种有高度的视角非常关键,如人对城市的认识,即使是你生活了几十年的城市,你也无法整体把握,而当你用无人机航拍、在更高的高度俯视整座城市时,你才能建立一种“整体把握”。LiteOS这样一个物联网操作系统,对新手开发者来说就像是一座城市。
第7章和第8章分别细致地解读LiteOS的内核源代码和外围组件源代码,这两章内容技术性比较强。限于篇幅,我们不能带读者逐字逐句分析源代码,所以本书选择了这些源代码中的难点和设计的关键处(如任务管理、内存管理、组件使用和挂接等)。Linux的创始人林纳斯·托瓦兹(Linus Torvalds)有一句名言“Talk is cheap, show me the code”,这两章践行“源代码至上”的原则,带领读者从源代码级别深度地理解LiteOS。
第9~11章为LiteOS的实战篇。其中,第9章简要介绍本书所使用的硬件平台和开发板。第10章是移植专题,贴心地为大家准备了LiteOS在传统单片机开发者喜欢的Keil MDK软件中的移植案例,以及在华为向物联网开发者提供的专用IDE软件IoT Studio中的移植案例。这两个开发环境中的移植案例和重点解析内容足以让读者完全掌握LiteOS的移植技术。第11章以温湿度传感器和断电监测报警器项目为大家演示一个典型的基于LiteOS和华为云IoT的物联网解决方案的开发过程,并详细分析其中细节和技术点。通过本章读者可以更加直观和深刻地理解如何基于LiteOS和华为云IoT快速搭建自己的物联网产品和解决方案。
第12章简单介绍了LiteOS的后续发展方向,展示一些未来的更新计划。物联网是当前科技最前沿的阵地之一,每年都会有很大变化,以及出现很多新功能、新特性。在华为强大的资源和技术团队支持下,LiteOS与华为云IoT也在不断进化、快速发展和更新。未来我们将为大家带来这些新技术进展的讲解。
朱有鹏
2021年6月