主要负责创建进程、绑定进程、划分内存、唤醒核1、加载文件系统等基本工作,包括序号6~13。
首先,会生成一个初始进程 init0,后续创建的所有进程都是从该进程中产生,该进程还负责对内存和虚拟内存进行划分。
然后 vfork 出一个主核进程,绑定到核 0 上,接下来由 cpu 主核(核0)唤醒其他的核,从 init 进程 vfork 出副核进程,并将该进程绑定到核1上。
最后是基于设备管理树完成对系统中其他设备的初始化。
这一阶段主要对各类 app 应用进行初始化,如文中以通信设备为例,此处主要完成对转发芯片的初始化,会涉及一些基础转发表项的初始配置,端口和各种通信总线的初始化。
接下来会初始化中间件,中间件是作为应用程序和操作系统之间的桥梁,向下屏蔽操作系统的差异,向上为应用程序提供平台化的技术支持;最后就是各种应用程序的初始化了,包括各种特性的初始化,心跳信息,单板信息,版本信息等等。
日常工作中,最容易出问题的地方其实都是在 app 的启动阶段,这部分才是最应该做一个详尽的图出来,后续笔者有了具体的项目案例后将会补充该图例。
原文 来 源 于: 原文:https://blog.csdn.net/linus_ben/article/details/122709705
版权归原作者 或 平台 所有 ,仅供学 习参考与学术研究 ,如有侵 权,麻 烦联系 删除~感谢最 后
小哥搜集了一些嵌入式学习资料,公众号内回复【1024】即可找到下载链接!
推荐好文 点击蓝色字体即可跳转
☞ 专辑|Linux应用程序编程大全 ☞ 专辑|学点网络知识 ☞ 专辑|手撕C语言 ☞ 专辑|手撕C++语言 ☞ 专辑|经验分享 ☞ 专辑|从单片机到Linux ☞ 专辑|电能控制技术 ☞ MCU进阶专辑
☞ 经验分享