嵌入式linux学习记录

<span style="font-family: 'Microsoft YaHei', sans-serif; font-size: 16px;">

  1. __init,__exit作用:

    1. __init:告诉编译器将该函数放入一个特殊的内存区域,在驱动初始化完成后,自动释放该函数占用的内存。
    2. __exit:如果驱动被直接编译进内核内核(Built-in),由于它永远不可能被卸载,__exit 修饰的函数甚至根本不会被编译进内核映像,从而直接省下了这部分代码的存储空间。如果编译成模块(.ko),则正常保留直到卸载时执行。
  2. make命令中M参数作用:

    1. -C 令下达:make 进程先跳转到内核源码目录 /root/project/linux

    2. 读取内核主配置:加载内核的核心编译规则、确定平台架构(如 ARM)、准备好符号表。

    3. 识别 M 参数:内核 Makefile 检测到命令行里有 M=...。它立刻意识到:"这不是要编译内核自带的驱动,而是要帮别人编译外部独立驱动。"

    4. 控制权转移:内核编译系统带着所有的编译工具链、内核头文件和特权,回过头来进入 M 指定的路径(即你的驱动目录)。

    5. 加工并就地输出:在你的驱动目录下找到 Makefilehello_drv.c,在原地编译出 hello_drv.o,并最终链接生成 hello_drv.ko

  3. make命令中的modules作用:

    modules 的作用是指定内核编译系统的"构建目标(Target)"

    因为内核源码支持编译很多种东西,比如:

    1. 编译内核核心镜像(zImage / vmlinux

    2. 编译架构相关的文件(dtbs 设备树)

    3. 编译外部驱动模块(modules

      不同的编译目标,内核会引入不同的头文件依赖、宏定义和平台规则。当你加上 modules 关键字后,内核就会明确知道:"哦,这个用户之前是用 modules 目标编译的外部驱动。现在我要套用外部驱动模块的上下文环境和清理规则,生成目标。

  4. register_chrdev作用: 仅仅是在内核里登记了名字和主设备号 ,它不会自动在 /dev/ 目录下创建文件。

  5. class_createdevice_create的作用:

    1. class_create :在 /sys/class/ 下创建分类目录。

    2. device_create :在分类目录下创建设备子目录,并写入带有主次设备号的 dev 文件。

    3. /dev/xxxx 节点 :由应用层的 mdev/udev 监测到 /sys 的变化后,在 /dev/ 目录下自动生成。

  6. /proc和/sys虚拟文件路径区别:

    1. /proc 偏向"软件与状态": 负责展示系统当前运行的软件生态(进程、内存消耗、网络连接、内核全局配置)。

    2. /sys 偏向"硬件与结构": 负责展示系统当前连接的物理世界(总线、芯片、设备类别、电源管理、拓扑树)。

</span>

相关推荐
一只小菜鸡..4 分钟前
南京大学 操作系统 (JYY) 学习笔记:导论与历史的轮回 (OS Introduction)
笔记·学习
小弥儿16 分钟前
GitHub 今日热榜 | 2026-07-24:金融 K 线基础模型上榜
学习·金融·开源·github
520拼好饭被践踏23 分钟前
JAVA+Agent学习day22
java·开发语言·后端·学习
懿路向前30 分钟前
【HarmonyOS学习笔记】2026-07-24 | textProcessing 实体识别与踩坑实录
笔记·学习·边缘计算·harmonyos
菩提树下的打坐32 分钟前
性能测试进阶:从 JMeter 基线到 SLO 驱动的压测体系
学习·jmeter
Albart5751 小时前
2026年Python入门路线图:从零到实战的30天逐日详解(三)
学习·flask·#python30 天入门·python 实战教程·pytest 单元测试·python 虚拟环境·logging 日志
caimouse2 小时前
MM 学习笔记 09:进程会话与工作集
笔记·学习·reactos
星恒随风2 小时前
C++ 继承进阶:默认成员函数、多继承、虚继承与组合设计
开发语言·c++·笔记·学习
电子云与长程纠缠2 小时前
UE中使用TGuardValue与TInlineComponentArray数据结构
开发语言·数据结构·学习·ue5·游戏引擎
caimouse3 小时前
MM 学习笔记 10:页面文件与系统加载器
笔记·学习·reactos