- 博客(35)
- 问答 (1)
- 收藏
- 关注
原创 Linux5.10 源码解析 - 内核驱动基础代码分析
字符设备的主设备号的分配是什么样的?所有的字符设备都挂到了一个数据结构上了吗?哪些主设备号的可以动态分配的?
2025-02-28 20:11:58
359
原创 业界推荐的更改 Linux defconfig 的流程
Linux 内核开发时,defconfig 应该怎么维护?直接修改 xxx_defconfig?还是直接把 .config 复制为 xxx_defconfig?都不是!!
2024-12-19 09:49:42
217
原创 Linux5.10 源码解析 - 中断
像 CPU 一样,中断控制器也会做成设备树中的一个结节。中断控制器的初始化流程是什么样的?GIC 是怎么在代码中抽象的。
2024-12-05 13:59:47
544
原创 奔跑系列代码解析
这两个宏,主要是第一个宏,他的作用是在内核里创建了一个虚拟文件,可以通过这个文件对制定变量进行访问。在命令行敲了一条命令,参数从命令行,经过系统调用,修改了指定 mod 内的指定 变量。核心是 module_param 和 MODULE_PARM_DESC 两个宏定义。mytest 变量是编译时就被分配空间的,但是原本是无法从外部进行访问的。这个结构体,如果有的话,会自动创建对应的虚拟文件。加了一个 .ko,其变量应该也在内核空间。猜测,和内核的交互,只能是系统调用。所以,才有了这两个宏。
2023-11-28 10:55:08
446
原创 Kbuild 深度解析:1. scripts_basic 的规则是如何被制定的
kbuild 的机制和流程还是比较复杂的。从某个点切入,是个比较好的办法。
2023-07-18 10:30:17
735
4
原创 《深入理解Linux内核(第三版)》笔记(十一),第八章内存管理(二)
这个和上篇是有区别的,上篇主要是关心页框的处理;这篇主要是对内存(即起始地址和长度)的管理。
2022-10-09 14:08:34
385
原创 《深入理解Linux内核(第三版)》笔记(十),第八章内存管理(一)
内存管理(一)主要分析的是对内存页框的管理。看这章得到了一个感想,内存管理不止是 mmu、页表这些内容。还有页框应该怎么分配,存储空间应该怎么分配等问题需要内核来解决。
2022-09-16 11:46:24
300
原创 《深入理解Linux内核(第三版)》笔记(九),第七章进程调度
终于看到进程调度了,估计是最期待的一章了吧,加油看。结果。。。看完之后,收获没有想象中的大,还是好多细节没有明白。
2022-01-19 18:25:01
104
原创 《深入理解Linux内核(第三版)》笔记(七),第五章内核同步(2)
进程调度的第二块拼图:内核同步。另外两块是前面学习的“中断和异常”,以及后面要学习的“定时测量”。对应《第三版》的第五章后半部分,包括:内核信号量、内核数据的同步访问、若干实例。
2022-01-12 18:46:11
121
原创 《深入理解Linux内核(第三版)》笔记(六),第五章内核同步(1)
进程调度的第二块拼图:内核同步。另外两块是前面学习的“中断和异常”,以及后面要学习的“定时测量”。该篇对应《第三版》第五章的前半部分,包括:内核同步概述、内核抢占的介绍、除信号量之外的常见同步原语。
2022-01-10 18:12:59
711
原创 《深入理解Linux内核(第三版)》笔记(五),第四章中断和异常
终于开始看第四章了。中断和异常是和硬件关系比较密切的一章,会有一些汇编代码,能略过的就略过了(不想去熟悉x86的指令集了)。并且 x86 和 ARM 的中断体系差异还挺大。所以会有从各硬件架构到统一软件接口的抽象。另外,中断和异常的处理,和调度的关系极大,是整体调度的一块拼图。
2022-01-04 15:50:22
428
原创 《深入理解Linux内核(第三版)》笔记(四),第三章进程(3)
对应《第三版》的第三章的最后一部分内容,包含内核线程,及进程0、进程1;包含进程的撤销。
2021-12-30 15:10:51
111
原创 IMX6ULL 从头开始,笔记一:获得一个烧写镜像
介绍了:硬件的选择;PC 机开发环境的搭建(主要是交叉编译工具链);编译第一个烧写,重点分析了 IMX 芯片系列的 IVT 表的原理及其与链接文件的关系。
2021-12-07 16:04:17
1709
3
原创 《嵌入式Linux系统开发:基于 Yocto Project》笔记
主要介绍 Yocto 的工作原理,工作流,Yocto 的工程结构,以及一些常见的调试方法。
2021-11-15 17:45:27
5127
2
原创 repo 测试小实例,结合 github
简单的测试了 repo 的创建和使用。只需要有基本的 git 操作经验就可以实现。现在自己也可以方便的管理一个 git 仓库群组了。
2021-11-03 17:19:46
667
原创 Makefile 札记
目标基础语法、变量、分支判断、头文件依赖、隐含规则、自动化变量、模式规则、函数一个典型的例子gcc -o hell hello_main.c hello_func/hello_func.c -I ./hello_func/使用这个例子基本上就可以编译所有的工程了,哈哈哈在依赖后面加上 -I,就可以指明被依赖的头文件的路径了散点关于 .PHONY只要我们不期待生成目标文件,就应该把它定义成伪目标定义为伪目标,可以保证目标总是会被执行,而不是先检查更新再执行比如如果代码中不写“.PHON
2021-01-20 19:34:49
697
1
原创 各种疑难 git 命令的 tips
各种疑难 git 命令分析和札记。git rebase, git rev-list, git archive, git rev-parse, git format-patch, git apply, git am, git difftool --dir--diff 配置
2020-11-11 10:41:24
247
1
原创 C++的回调函数
回调函数前提是无法直接获取对象的非静态函数。只能通过一个对象来调用,该对象的非静态函数。想想也有道理,如果函数中使用了非静态成员,那么在回调中没法体现访问的是哪个对象的成员。实现依赖一个回调函数类类中需要有一个作为函数对象的成员。需要将计划被调用的函数bind到这个函数对象上。一个用于创建对象(回调类)指针的静态函数成员每注册一个回调函数,就会创建一个回调类一个C++的全局函数它的参数是一个(void * obj)指针 + 回调函数真正需要的参数(void *)指针是待访问的对象需
2020-11-02 23:45:32
132
Embedded.Linux.Systems.with.the.Yocto.Project
2024-08-09
Linux已经(……对的,是已经)打印到终端的内容,怎么保存到文件
2021-10-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人