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

本文详细介绍了鸿蒙系统从U-Boot启动到应用层启动的四个阶段:U-Boot启动、汇编代码引导LiteOS-a内核、内核LiteOS-a的C语言启动阶段、鸿蒙系统应用层的启动。内容包括各个阶段的关键步骤、代码位置和主要功能。通过阅读,读者可以了解鸿蒙系统启动的完整过程。
摘要由CSDN通过智能技术生成

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(

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值