1.鸿蒙介绍
1.1 鸿蒙不是Linux,也不是安卓
很多人会混淆鸿蒙跟Linux的关系。
先举个例子,大家很熟悉的Windows里面含有内核,也含有UI系统,含有桌面程序,普通人可以直接使用Windows。但是Linux仅仅是一个内核(它提供进程管理、文件系统等概念),必须在Linux之上安装各种APP,普通人才可以使用。基于Linux内核制作出来的完整系统有Ubuntu、debian等等,普通人可以直接使用这些完整系统。
所以鸿蒙要对标的是Windows、安卓、IOS这类完整系统,而Linux只是鸿蒙支持的内核之一。鸿蒙支持多种内核,有Linux,也有Liteos-a。
鸿蒙的体系很庞大,看下图,内核只是其中之一:
1.2 Liteos-a是什么
Liteos-a是一个内核(也常常被叫做操作系统,反正大家都把操作系统、内核混着说)。常见的内核有freeFTOS、rt-thread、UCOS,这些都属于实时操作系统(RTOS),Linux不是实时操作系统。
有了那么多操作系统,为什么还要开发Liteos-a呢?
大多数的RTOS都是运行于MCU(单片机上),不支持MMU(内存管理单元),内核空间和APP空间不能隔离开,APP出错后整个系统就会崩溃;也不支持POSIX接口,这使得大量的开源软件无法直接在MCU上运行。
Linux的强大在于它支持的硬件非常多,但是它过于庞大,启动慢、耗电,这些缺点导致它不适合用在物联网领域。比如倒车摄像头,没人能忍受2秒钟后才看见图像:即使你能忍受,也很难把Linux优化到2秒内启动。
Liteos-a为物联网而生,支持MMU,支持内核/APP空间隔离、支持各个APP空间隔离,系统更健壮;支持POSIX接口,大量开源软件可以在Liteos-a上直接使用;启动快,省电。
Liteos-a是一个轻量级的内核,设计精巧。它要成功,就必须持更多芯片、更多外设,这也是我们把Liteos-a移植到非海思芯片,并录制教程的原因。
除了Liteos-a,还有一个Liteos-m,后者运行在没有MMU的芯片上,也就是运行在MCU上。
1.3 鸿蒙的开发环境
1.3.1 鸿蒙的IDE
鸿蒙的IDE分为南向IDE、北向IDE。上北下南,北向只APP,南向指内核。
南向IDE的下载地址:https://device.harmonyos.com/cn/ide 它的功能将会很强大,但是目前状况为:
可以在Windows/Linux下阅读源码
但是编译的话,只能在Linux下使用命令行来编译
可以使用Jlink来调试,目前只支持在Windows下调试
这个IDE已经支持IMX6ULL的调试了,后面需要的话我会介绍调试功能。
1.3.2 我们的开发环境
2.资料下载
先去https://gitforwindows.org/下载Windows版本的git工具。
安装、启动Git Bash。
然后执行命令:
git clone https://e.coding.net/weidongshan/openharmony/doc_and_source_for_openharmony.git`
如果只是使用GIT来下载代码,看后面的示例就可以了。如果要深入学习GIT,用GIT来管理你的代码、协同开发,这有一个图形化介绍GIT的网站:https://learngitbranching.js.org/?demo=&locale=zh_CN
下载源码以后,文档结构如下:
如果在你“克隆”之后,我们又更新了源码,你可以先进入该目录,然后更新。 启动git bash后,使用cd命令可以切换目录。假设要进入D:\abc\ doc_and_source_for_openharmony目录,可以执行以下命令:
$ cd /D $ cd abc $ cd doc_and_source_for_openharmony
也可以执行一个命令直接进入该目录,注意目录分隔符是“/”而非“\”。
$ cd /D/abc/doc_and_source_for_openharmony
在doc_and_source_for_openharmony目录下,执行以下命令获得最新版本。
$ git pull origin
下图是在Windows上使用git下载、查看、更新源码的操作步骤。
注意:建议下载源码后,复制到其他目录去修改;否则以后更新时可能会和你的本地修改产生冲突。
1. 第1天,下载源码
假设你要把源码下载到D盘abc目录,如下图操作:
2. 第2天,查看无更新
3. 第3天,查看有更新
注意:不执行“git remote show origin”查看状态,而是直接执行“git pull origin”也是可以的,后面这个命令会自动检查,有更新它就会下载更新部分,没有更新也会提示你,如下图:
3.鸿蒙体验
将鸿蒙烧写进入板子以后,用串口打开板子: