
内核
文章平均质量分 90
快乐的学习
越努力、越幸运
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Linux驱动快速加入ftrace函数示例讲解
在驱动源文件中,包含必要的头文件,例如<linux/ftrace.h>。使用DEFINE_TRACE宏来定义一个 ftrace 事件追踪点。// 定义一个ftrace事件这个宏会创建一个名为my_trace_event的 ftrace 事件,后续可以在驱动中触发这个事件来进行追踪。原创 2025-03-07 17:13:01 · 560 阅读 · 0 评论 -
Linux下进程通信原理图(详细)总结附实例代码快速掌握
每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信机制。速度慢,容量有限,只有父子进程能通讯任何进程间都能通讯,但速度慢容量受到系统限制,且要注意第一次读的时候,要考虑上一次没有读完数据的问题不能传递复杂消息,只能用来同步。原创 2024-10-21 23:03:45 · 1288 阅读 · 0 评论 -
Linux下内核空间和用户空间(32/64位)内存映射图快速掌握
本文主要介绍内核和用户空间的物理地址到虚拟地址的映射,通过详细图解方便读者快速掌握。内核空间定义内核空间是操作系统内核运行的区域,它包括了操作系统内核代码、数据结构和设备驱动程序等。内核空间通常是操作系统中的一块保护内存区域,只有操作系统内核才能够访问这个区域。用户空间定义用户空间是指用户应用程序运行的区域,包括用户应用程序代码、数据和堆栈等。内核空间、用户空间的具体划分:针对 Linux 操作系统而言,最高的 1G 字节由内核使用,称为内核空间。而较低的 3G 字节由各个进程使用,称为用户空间。原创 2024-10-15 22:40:56 · 2529 阅读 · 0 评论 -
Linux下基于AHCI controller模块实现SATA Platform驱动附代码详细流程
本文主要是针对ARM A55集成了AHSATA controller模块开发sata驱动,通过Platform的形式在linux识别到SSD,本文详细讲述整个开发过程,同时对SATA Platform驱动进行讲解。1、配置SATA Phy的初始化;2、打开SATA Platform相关编译开关;3、配置设备树;4、linux启动识盘。原创 2024-01-21 23:58:43 · 2000 阅读 · 0 评论 -
Linux多核CPU启动内核调试(详细)总结
1、uboot编译;2、内核相关配置打开;3、内核相关模块驱动确认;4、内核编译;5、linux系统定制;原创 2023-10-29 18:25:07 · 1749 阅读 · 0 评论 -
Linux内核Kernel panic常见问题(详细)总结
本文主要总结linux系统触发Kernel panic的常见报错总结。Kernel panic它表示Linux kernel走到了一个不知道该怎么走下一步的状况,一旦到这个情况,kernel就尽可能把它此时能获取的全部信息都打印出来,至于能打印出多少信息,那就看是那种情况导致它panic了。1.hard panic(也就是Aieee信息输出)2.soft panic (也就是Oops信息输出)原创 2023-04-24 23:41:28 · 14792 阅读 · 0 评论 -
Linux下spi网卡dm9051驱动移植及(具体)驱动调试分析总结
本文重点总结spi网卡在linux下的驱动移植以及根据板子的走线如何进行debug,最后定位到具体问题后正常使用的详细过程。DM9051NP SPI接口网卡芯片是为了方便互联网行业进行以太网通信而开发出的解决方案。DM9051NP芯片是带有行业标准串列外设接口(Serial Peripheral Interface,SPI)的独立以太网控制器。DM9051NP符合IEEE 802.3 规范,它还支持以DMA 模式來传输,以实现资料传送快速。原创 2022-11-06 14:19:27 · 3069 阅读 · 0 评论 -
Linux下uboot添加自定义命令(详细)实例及原理解析
本文主要讲述如何在uboot下新增自定义命令,同时解析uboot命令执行的原理。U-boot全称UniversalBootLoader,即通用bootloader.它是德国DENX小组的开发用于多种嵌入式CPU的bootloader程序,UBoot不仅仅支持嵌入式Linux系统的引导,它还支持NetBSD、VxWorks、QNX、RTEMSARTOS、LynxOS嵌入式操作系统。原创 2022-11-06 10:17:48 · 2287 阅读 · 0 评论 -
链接脚本.lds(详细)总结附实例快速掌握
链接器:把一个或多个输入文件合并成一个输出文件,输入文件是目标文件或者链接脚本文件,输出文件是目标文件(库文件)或者可执行文件,链接器从链接脚本读完一个 section 后,将定位器符号的值增加该 section 的大小。链接脚本:链接脚本的一个主要目的是描述输入文件中的各个段(数据段,代码段,堆,栈,bss)如何被映射到输出文件中,并控制输出文件的各部分在程序地址空间内的布局,地址空间包括 ROM 和 RAM。原创 2022-10-16 15:03:00 · 13270 阅读 · 0 评论 -
Linux驱动移植USB网卡r8156驱动(详细)总结
本文主要在arm主板中移植usb网卡驱动,因为内核自带的r8152驱动有问题,因此移植了千兆网卡的usb驱动,在ubuntu下交叉编译内核模块然后在主板系统下安装,下面介绍本人移植的详细过程。系统版本:Ubuntu 22.04 LTS主板型号:armv8。原创 2022-09-17 11:54:33 · 3876 阅读 · 0 评论 -
Kconfig内容(详细)总结附示例快速掌握
Kconfig用来配置内核,它就是各种配置界面的源文件,内核的配置工具读取各个Kconfig文件,生成配置界面供开发人员配置内核,最后生成配置文件.configKconfig的语法可以参考“Documentation/kbuild/kconfig-language.txt”主要内容depends on:表示依赖于XXX,“depends on TMPFS”表示只有当TMPFS配置选项被选中时,当前配置选项的提示信息才会出现,才能设置当前配置选项。原创 2022-08-20 16:01:30 · 7819 阅读 · 0 评论 -
C语言、Makefile和shell中添加打印调试信息(详细)总结及实例
本文主要总结了在C语言、Makefile和shell中添加打印调试信息的方式,通过实例方便读者进行理解。原创 2022-08-20 09:38:50 · 3335 阅读 · 0 评论 -
SPEC2006详细参数和测试过程常见问题处理总结(附实例操作)
本文主要是使用SPEC2006在ARM平台进行测试,用的Linux系统为Debian,通过具体操作实例讲述测试过程,SPEC2006是SPEC新一代的行业标准化的CPU测试基准套件。重点测试系统的处理器,内存子系统和编译器。这个基准测试套件包括的SPECint基准和SPECfp基准。其中SPECint2006基准包含12个不同的基准测试和SPECfp2006年基准包含19个不同的基准测试。SPEC设计了这个套件提供了一个比较标准的计算密集型,高性能的跨硬件的CPU测试工具。1、搭建系统环境;子项目。...原创 2022-07-16 12:06:02 · 22377 阅读 · 1 评论 -
Linux下stream内存带宽测试参数和示例详解附源码(总结)
本文通过实例详细讲解各编译参数,方便读者快速掌握。stream是一套综合性能测试程序集,通过fortran和c两种高级且高效的语言编写完成,由于这两种语言在数学计算方面的高效率, 使得stream测试例程可以充分发挥出内存的能力。stream测试得到的是可持续运行的内存带宽最大值,而并不是一般的硬件厂商提供的理论最大值,具有如下特点:1.主要有四种数组的运算,测试到内存带宽的性能分别是:数组的复制(Copy)、数组的尺度变换(Scale)、数组的矢量求和(Add)、数组的复合矢量求和(Triad)。2.原创 2022-07-03 17:14:04 · 16570 阅读 · 6 评论 -
Linux下设备树dts内容(详细)总结及示例解析
文章目录一、简介二、设备树基础内容2.1 设备树文件存放路径2.2 DTS、DTB和DTC关系2.3 传统驱动代码和使用设备树的对比三、设备树内容属性介绍3.1 节点名称3.2 compatible3.3 model 属性3.4 status 属性3.5 #address-cells 和 #size-cells 属性3.6 ranges 属性3.7 aliases 节点3.8 chosen 节点四、设备树文件内容示例解析4.1 设备树关键内容解析一、简介设备树是在PowerPC平台最先使用,后来2原创 2022-05-14 20:07:43 · 13412 阅读 · 0 评论 -
ftrace命令调试内核详细总结(快速掌握附实例讲解)
Ftrace是一个专门针对linux kernel内核空间的debug工具,用于帮助开发者弄清kernel正在发生的行为,对用户空间对内核低延时,内核性能等方面的问题进行调试分析。Ftrace最开始设计时主要是为了追踪函数的调用栈,但随着功能的增强,已经演变成一个跟踪框架,支持多种跟踪器,如function、function_graph、wakeup、irq等。原创 2022-05-08 16:24:41 · 6207 阅读 · 0 评论 -
crash工具分析Kdump下vmcore文件常用命令总结(三)(实例易懂)
1、Kdump调试机理总结(一)2、Kdump配置及使用详细总结(二)系统产生异常时,触发Kdump机制,启动捕获内核,用以对生产内核下的内存进行收集和转存。Kdump用于对内存镜像的转储,它不但可以转储内存镜像到本地硬盘,还可以将内存镜像通过NFS,SSH等协议转储到不同机器的设备上。本文是将生产内核的内存数据转储在/var/crash目录下,下面开始对其进行分析。1、明白内核崩溃的大致原因;2、对内核崩溃的原因做更细致的分析;crash是一个被广泛应用的内核奔溃转储文件分析工具。原创 2022-05-06 19:36:46 · 11793 阅读 · 0 评论 -
Linux下反编译命令objdump快速学习总结(附实例操作)
本文主要介绍如何用objdump命令在Linux下反汇编目标文件或者可执行文件,首先介绍具体的参数,然后再通过具体的实例运用。原创 2022-05-06 15:23:18 · 18217 阅读 · 0 评论 -
Kdump配置及使用(详细)总结(二)
本文主要介绍如何打开Kdump并对其相关文件进行配置。Kdump调试机理总结(一)crash工具分析vmcore文件常用命令总结(三)1、kdumpkdump 是一种先进的基于 kexec 的内核崩溃转储机制,用来捕获kernel crash(内核崩溃)的时候产生的crash dump。当内核产生错误时,kdump会将内存导出为vmcore保存到磁盘。2、 kdump流程当系统崩溃时,kdump 使用 kexec 启动到第二个内核。第二个内核通常叫做捕获内核,以很小内存启动以捕获转储镜像。原创 2022-05-05 11:13:42 · 10532 阅读 · 0 评论 -
gdb调试常见命令详细总结(附示例操作)
通过gdb调试我们可以监控程序执行的每一个细节,包括变量的值、函数的调用过程、内存中数据、线程的调度等,从而发现隐藏的错误或者低效的代码,程序的调试过程主要有:单步执行,跳入函数,跳出函数,设置断点,设置观察点,查看变量。本文将主要介绍linux下的gdb调试工具常用的命令和具体的使用实例。-g 和 -ggdb 都是令 gcc 生成调试信息,但是它们也是有区别的选项解析g该选项可以利用操作系统的“原生格式(native format)”生成调试信息。原创 2022-05-05 00:01:48 · 42958 阅读 · 0 评论 -
Kdump调试机理详细总结(一)
一、简介本文主要讲解Kdump的运行机理,后续两个章节会详细介绍kdump的使用和如何分析coredump文件信息。Kdump 的概念出现在 2005 左右,是迄今为止最可靠的内核转存机制,已经被主要的 linux™ 厂商选用。kdump是在系统崩溃、死锁或者死机的时候用来转储内存为vmcore保存到磁盘的一个工具和服务。1、Kdump相关名词定义:(1)生产内核:第一个运行的内核(正常的系统运行内核)(2)捕获内核:第二个运行的内核(系统异常时,会启动捕获内核,用以对生产内核下的内存进行收集和转原创 2022-05-03 22:50:50 · 2955 阅读 · 0 评论 -
编译linux内核常见报错(最全)总结讲解
一、简介本文主要介绍在编译内核中常见的报错问题的处理方法,编译过程中的主要报错有缺少本地依赖库、config设置、gcc版本与内核版本不匹配、内核源文件版本问题等,具体问题请看第二章。二、常见报错1、CC arch/arm/kernel/asm-offsets.scc1: error: invalid option `abi=aapcs-linux'make[1]: *** [arch/arm/kernel/asm-offsets.s] Error 1make: *** [prepar原创 2022-05-02 18:22:12 · 21786 阅读 · 8 评论