本篇关键词:、、、
下载 >> 离线文档.鸿蒙内核源码分析(百篇博客分析.挖透鸿蒙内核).pdf
前因后果相关篇为:
- v101.03 鸿蒙内核源码分析(总目录) | 精雕细琢 锤炼精品
- v102.05 鸿蒙内核源码分析(源码注释) | 每天死磕一点点
- v103.05 鸿蒙内核源码分析(静态站点) | 码农都不爱写注释和文档
- v104.01 鸿蒙内核源码分析(参考手册) | 阅读内核源码必备工具
工欲善其事 必先利其器
本篇尝试去摸索下鸿蒙内核毛细血管级的脉络,跟踪以下几个问题。
- 鸿蒙有多少个结构体,结构体中每个成员变量的含义是什么?
- 鸿蒙main长啥样,其是如何初始化各个模块的?
- 鸿蒙的任意一个函数的调用和引用关系关系是怎样的?
它已成为众多鸿蒙内核阅读者必不可少的参考手册。
鸿蒙 main 函数长啥样
前往 >> 鸿蒙研究站 | 参考手册版块 点击函数跟踪。
/**
* @brief
* 内核入口函数,由汇编调用,见于reset_vector_up.S 和 reset_vector_mp.S
* up指单核CPU, mp指多核CPU bl main
* @return LITE_OS_SEC_TEXT_INIT
*/
LITE_OS_SEC_TEXT_INIT INT32 main(VOID)//由主CPU执行,默认0号CPU 为主CPU
{
UINT32 uwRet;
uwRet = OsMain();// 内核各模块初始化
if (uwRet != LOS_OK) {
return LOS_NOK;
}
CPU_MAP_SET(0, OsHwIDGet());//设置CPU映射,参数0 代表0号CPU
OsSchedStart();//调度开始
while (1) {
__asm volatile("wfi");//WFI: wait for Interrupt 等待中断,即下一次中断发生前都在此hold住不干活
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
结构体/宏/枚举类型
前往 >> 鸿蒙研究站 | 查看所有结构体索引
< 任意函数关系图 | 代码实现 | 注解说明 > 三位一体
模块之间关系图
任意头文件的关系图
百文说内核 | 抓住主脉络
- 百文相当于摸出内核的肌肉和器官系统,让人开始丰满有立体感,因是直接从注释源码起步,在加注释过程中,每每有心得处就整理,慢慢形成了以下文章。内容立足源码,常以生活场景打比方尽可能多的将内核知识点置入某种场景,具有画面感,容易理解记忆。说别人能听得懂的话很重要! 百篇博客绝不是百度教条式的在说一堆诘屈聱牙的概念,那没什么意思。更希望让内核变得栩栩如生,倍感亲切。
- 与代码需不断
debug
一样,文章内容会存在不少错漏之处,请多包涵,但会反复修正,持续更新,v**.xx
代表文章序号和修改的次数,精雕细琢,言简意赅,力求打造精品内容。 - 百文在 < 鸿蒙研究站 | 开源中国 | 博客园 | 51cto | csdn | 知乎 | 掘金 > 站点发布,百篇博客系列目录如下。
按功能模块:
百万注源码 | 处处扣细节
百万汉字注解内核目的是要看清楚其毛细血管,细胞结构,等于在拿放大镜看内核。内核并不神秘,带着问题去源码中找答案是很容易上瘾的,你会发现很多文章对一些问题的解读是错误的,或者说不深刻难以自圆其说,你会慢慢形成自己新的解读,而新的解读又会碰到新的问题,如此层层递进,滚滚向前,拿着放大镜根本不愿意放手。
关注不迷路 | 代码即人生
- 互联网从业十五年,计算机硕士,技术副总裁
- 关注我,持续更新四十年,即聊技术也聊人生
- 交有趣靠谱的人;做难而正确的事
- 不做作,不炒作,只唯真
- 不唯上,不唯书,只唯实
据说喜欢 点赞 + 分享 的,后来都成了大神。😃