Linux内核学习笔记(基于IMX6ULL)
文章平均质量分 85
该专栏为本人记录Linux内核学习过程中的一些知识点和心得和理解,因为内容繁杂体系庞大,所以开专栏记录,怕以后忘记,也方便学习回顾。
乔碧萝成都分萝
主要方向:嵌入式 ( 单片机+Linux),QT ,国密算法
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
十七、Linux设备驱动模型
Linux设备驱动模型概述原创 2025-12-13 14:58:30 · 122 阅读 · 0 评论 -
十六、一个基本的GPIO驱动程序
前面学习和了解了字符设备和文件系统是怎么关联起来的,这篇文章就来实践一下,加深前面的理解。我们写一个基本的GPIO引脚驱动用于驱动板载的LED灯和蜂鸣器,并在文件系统里面创建字符设备文件节点,用于控制GPIO引脚。原创 2025-12-07 11:37:41 · 303 阅读 · 0 评论 -
十五、设备文件与设备驱动是如何关联的
在Linux下,一切皆文件,这个说法对于字符设备也是成立的。对于字符设备,我们会在/dev目录下创建一个设备文件(也叫做设备节点),然后读写这个文件就可以实现应用程序与字符设备的交互。但是字符设备文件属于文件系统的范畴,而字符设备驱动属于字符设备子系统的范畴,那么它们是如何配合从而实现从文件系统的层面访问到字符设备的呢?这篇笔记要阐明的就是应用程序如何通过/dev目录下的字符设备文件名找到对应的字符设备驱动并实现与字符设备的交互。原创 2025-12-02 14:53:06 · 131 阅读 · 0 评论 -
十四、内核模块依赖关系
有的时候,一个内核模块会依赖另一个内核模块,比如引用另一个内核模块导出的参数,调用另一个内核模块提供的函数等等。原创 2025-12-01 10:22:24 · 172 阅读 · 0 评论 -
十三、Linux内核模块开发基础
对于宏内核,由于服务直接在内核态提供,故用户应用程序的数据可以通过系统调用直接交给内核服务处理,数据拷贝少;按照现代操作系统的内核派系,Linux属于宏内核,其所有的核心功能和服务都在内核里面提供;为了解决宏内核服务功能扩展的问题,Linux引入了内核模块,我们实现了模块功能并将其编译为.ko格式的内核模块文件后,就可以进行动态加载和移除,以此实现内核服务的扩展。对于宏内核,由于其服务也集成在内核里面,故内核镜像大,不易扩展,想添加新的功能需要重新编译内核;如果想查看内核输出的所有消息,可以使用。原创 2025-11-30 16:00:32 · 209 阅读 · 0 评论 -
十二、驱动开发环境准备
由于我的主机电脑没有固定的有线网口,所以用的USB转接网口,其插拔会影响主机的网络状态,故单独组件了一个brige网络,以免其插拔影响到虚拟机上网功能或者主机与虚拟机的连接。1.由于想用clangd实现vscode + clangd的代码精确跳转,所以需要一个较高的linux内核版本,但是又不想系统占用太大的空间,因此选择操作系统镜像选择debian-12服务器版。ens37:Host-Only,用于主机连接虚拟机,实现SSH和Samba共享等功能,IP = 192.168.189.100。原创 2025-11-29 14:47:54 · 249 阅读 · 0 评论 -
十一、Linux内核的构建和编译
linux的默认配置文件位于arch/arm/configs目录中,而u-boot的默认配置文件位于根目录下的configs中。原创 2025-11-25 20:30:48 · 104 阅读 · 0 评论 -
十、UBOOT学习笔记
kbuild配置系统中已经有一套默认的配置参数,对于跟默认值不同的参数,或者需要新增的配置参数,就放在xxx_defconfig配置文件中。根据实验的结果,环境变量使用EMMC还是SD卡取决于启动设备,如果是从EMMC里启动的UBOOT,则默认的当前mmc设备为EMMC,并且从EMMC里加载环境变量;的构建都是用./scripts/Makefile.build,所以接下来探索./scripts/Makefile.build。处,也就是说我们需要烧录的是uboot.imx,而不是uboot.bin。原创 2025-11-20 09:35:39 · 849 阅读 · 0 评论 -
九、异常处理(Exception Handling)
本篇文章是《ARM Cortex-A v7》编程手册第九章—Exception Handling的学习笔记。原创 2024-03-12 21:31:25 · 2470 阅读 · 0 评论 -
八、访存顺序(Memory Ordering)
这篇文章记录了ARM架构中跟存储系统相关的学习笔记,包括存储类型,存储顺序,内存屏障等内容。原创 2024-02-02 21:20:00 · 1460 阅读 · 0 评论 -
七、内存管理单元(MMU)
本篇文章讲解了ARMv7里面的MMU知识以及MMU在操作系统里面的使用原创 2024-01-30 13:45:01 · 1238 阅读 · 0 评论 -
六、Cache — 缓存
本篇笔记为《Cortex-A(armV7)编程手册》第8章 - Caches的学习心得,总结了Cache的基本原理和Cortex-A系列处理器的Cache结构知识。原创 2023-12-09 18:25:59 · 1625 阅读 · 0 评论 -
五、汇编语言和指令集
本篇笔记记录了指令集部分的学习心得体会原创 2023-11-09 21:51:21 · 322 阅读 · 1 评论 -
四、关于LDR伪指令
该笔记探讨和验证了LDR伪指令的工作原理,PC偏移值的计算方法。原创 2023-10-24 21:47:50 · 1446 阅读 · 0 评论 -
三、CP15协处理器
本篇笔记大概介绍了协处理器的概念,以及ARMv7-A架构里面的CP15协处理器的使用,寄存器的访问方法。原创 2023-10-21 17:50:52 · 561 阅读 · 1 评论 -
二、Cortex-A系列处理器模式和内核寄存器
本文是对ARM架构的处理器模式和CPU寄存器学习后的详细总结原创 2023-10-21 15:56:53 · 674 阅读 · 1 评论 -
一、烧录代码镜像到IMX6ULL上去运行
本文详细介绍了IMX6ULL启动设备的概念,分析了IMX6ULL的几种启动模式,以及如何生成和烧录代码镜像到启动设备。原创 2023-10-08 21:52:53 · 934 阅读 · 2 评论
分享