《鸿蒙智能互联设备开发(微课版)》 课件 5.1.3 LiteOS-A内核态启动流程.pptx

《鸿蒙智能互联设备开发(微课版)》 课件 5.1.3 LiteOS-A内核态启动流程.pptx

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

5.1.3LiteOS-A内核态启动流程

通过本节学习,您可以:了解LiteOS-A内核态启动流程

LiteOS-A内核态启动流程内核启动流程如图所示。

LiteOS-A内核态启动流程内核启动流程包含汇编启动阶段和C语言启动阶段两部分。汇编启动阶段完成CPU初始设置,关闭dcache/icache与MMU,使能FPU及neon,设置MMU建立虚实地址映射,设置系统栈,清理bss段,调用C语言main函数等。C语言启动阶段包含OsMain函数及开始调度等。

LiteOS-A内核态启动流程OsMain函数用于内核基础初始化和架构、板级初始化等,其整体由内核启动框架主导初始化流程,如图所示。

LiteOS-A内核态启动流程①LOS_INIT_LEVEL_EARLIEST:最早期初始化。不依赖架构,单板以及后续模块会对其有依赖的纯软件模块初始,例如:内核Trace模块初始化。②LOS_INIT_LEVEL_ARCH_EARLY:架构早期初始化。与架构相关,后续模块会对其有依赖的模块初始化,如启动过程中非必需的功能,建议放到⑥LOS_INIT_LEVEL_ARCH层。

LiteOS-A内核态启动流程③LOS_INIT_LEVEL_PLATFORM_EARLY:平台早期初始化。与单板平台、驱动相关,后续模块会对其有依赖的模块初始化,如启动过程中必需的功能,建议放到⑦LOS_INIT_LEVEL_PLATFORM层。④LOS_INIT_LEVEL_KMOD_PREVM:内存初始化前的内核模块初始化。在内存初始化之前需要使能的模块初始化。

LiteOS-A内核态启动流程⑤LOS_INIT_LEVEL_VM_COMPLETE:基础内存就绪后的初始化。此时内存初始化完毕,需要进行使能且不依赖进程间通讯机制与系统进程的模块初始化。⑥LOS_INIT_LEVEL_ARCH:架构后期初始化。与架构拓展功能相关,后续模块会对其有依赖的模块初始化。

LiteOS-A内核态启动流程⑦LOS_INIT_LEVEL_PLATFORM:平台后期初始化。单板平台、驱动相关,后续模块会对其有依赖的模块初始化,例如:驱动内核抽象层初始化(mmc、mtd)。⑧LOS_INIT_LEVEL_KMOD_BASIC:内核基础模块初始化。内核可拆卸的基础模块初始化。例如:VFS初始化。

LiteOS-A内核态启动流程⑨LOS_INIT_LEVEL_KMOD_EXTENDED:内核扩展模块初始化。内核可拆卸的扩展模块初始化。例如:系统调用初始化、ProcFS初始化、Futex初始化、HiLog初始化、LiteIPC初始化。⑩LOS_INIT_LEVEL_KMOD_TASK:内核任务创建。进行内核任务的创建(内核任务,软件定时器任务)。例如:资源回收系统常驻任务的创建、SystemInit任务创建、CPU占用率统计任务创建等。

谢谢

您可能关注的文档

文档评论(0)

balala11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档