当前位置:   article > 正文

鸿蒙操作系统详细流程,鸿蒙系统的启动流程

进入鸿蒙系统

959a40d1851d4ceb32b159a767e402bf.png

鸿蒙系统的启动流程

Liangkz 2021.04.11 Ver1.0

目录

1. 第一阶段:U-Boot启动

2. 第二阶段:汇编代码引导LiteOS-a内核

3. 第三阶段:内核LiteOS-a的C语言启动阶段

4. 第四阶段:鸿蒙系统应用层的启动

5. 鸿蒙应用(APP)的启动

6. #task命令查看进程/线程信息(简表)

声明:

严格来说本文档并非真正原创的,这是上了朱有鹏老师的免费课《想读懂鸿蒙2.0源码,也许你需要先懂这些》之后,做的一些总结。

课程时间一个半小时,内容也很多,学习过程中我发现朱老师的ppt上部分代码/文件,在我本地的鸿蒙系统代码上找不到,或者路径不相同,所以我就做了一些整理。

这里仅摘取课程中的鸿蒙系统在HI3516DV300平台上的启动流程部分(从30:00开始讲解启动过程)进行汇总和整理,如有错误,请朱老师和各位同学指正。后继在学习过程中会继续对本文当作修正升级。

我的本地代码是基于最新发布的OpenHarmony 1.1.0 LTS(2021-04-01)版本抓取的,代码根目录OHOS1_1_0LTS:

$repo init -u https://gitee.com/openharmony/manifest.git -b refs/tags/OpenHarmony_release_v1.1.0--no-repo-verify

$repo sync

在根目录下执行:

OHOS1_1_0LTS$ hbset

[OHOS INFO] Input code path: .

OHOS Which product do you need?

->ipcamera_hispark_taurus@hisilicon

OHOS1_1_0LTS$ hb build

即可开始编译 hi3516dv300 平台代码。

输出的过程文件和最终bin,在以下路径内:

out\hispark_taurus\ipcamera_hispark_taurus

因为本人还没有开发板,无法烧录、抓取log分析以及做相关的操作去验证。

1. 第一阶段:U-Boot启动

System startup

Uncompress Ok!

U-Boot 2016.11 (......) hi3516dv300

............

............(省略)

Hit anykeytostop autoboot: 0

MMC read: dev #0, block # 2048,count16384  ...  16384 blocksread: OK

## Starting application at0x80000000...

到此为止属于U-Boot的启动。

Uboot不属于鸿蒙系统,这里不做进一步分析,代码在目录

device\hisilicon\third_party\uboot\u-boot-2020.01

2. 第二阶段:汇编代码引导LiteOS-a内核

Uboot引导liteos-a内核启动起来,需要有一个入口,在:

kernel\liteos_a\tools\build\liteos.ld

打开这个文件,可见:

ENTRY(

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/227043
推荐阅读
相关标签
  

闽ICP备14008679号