![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
内核
文章平均质量分 91
快乐的学习
越努力、越幸运
展开
-
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 · 1225 阅读 · 0 评论 -
Linux多核CPU启动内核调试(详细)总结
1、uboot编译;2、内核相关配置打开;3、内核相关模块驱动确认;4、内核编译;5、linux系统定制;原创 2023-10-29 18:25:07 · 1088 阅读 · 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 · 7150 阅读 · 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 · 2372 阅读 · 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 · 1689 阅读 · 0 评论 -
链接脚本.lds(详细)总结附实例快速掌握
链接器:把一个或多个输入文件合并成一个输出文件,输入文件是目标文件或者链接脚本文件,输出文件是目标文件(库文件)或者可执行文件,链接器从链接脚本读完一个 section 后,将定位器符号的值增加该 section 的大小。链接脚本:链接脚本的一个主要目的是描述输入文件中的各个段(数据段,代码段,堆,栈,bss)如何被映射到输出文件中,并控制输出文件的各部分在程序地址空间内的布局,地址空间包括 ROM 和 RAM。原创 2022-10-16 15:03:00 · 9959 阅读 · 0 评论 -
Linux驱动移植USB网卡r8156驱动(详细)总结
本文主要在arm主板中移植usb网卡驱动,因为内核自带的r8152驱动有问题,因此移植了千兆网卡的usb驱动,在ubuntu下交叉编译内核模块然后在主板系统下安装,下面介绍本人移植的详细过程。系统版本:Ubuntu 22.04 LTS主板型号:armv8。原创 2022-09-17 11:54:33 · 2891 阅读 · 0 评论 -
Kconfig内容(详细)总结附示例快速掌握
Kconfig用来配置内核,它就是各种配置界面的源文件,内核的配置工具读取各个Kconfig文件,生成配置界面供开发人员配置内核,最后生成配置文件.configKconfig的语法可以参考“Documentation/kbuild/kconfig-language.txt”主要内容depends on:表示依赖于XXX,“depends on TMPFS”表示只有当TMPFS配置选项被选中时,当前配置选项的提示信息才会出现,才能设置当前配置选项。原创 2022-08-20 16:01:30 · 5580 阅读 · 0 评论 -
C语言、Makefile和shell中添加打印调试信息(详细)总结及实例
本文主要总结了在C语言、Makefile和shell中添加打印调试信息的方式,通过实例方便读者进行理解。原创 2022-08-20 09:38:50 · 2767 阅读 · 0 评论 -
SPEC2006详细参数和测试过程常见问题处理总结(附实例操作)
本文主要是使用SPEC2006在ARM平台进行测试,用的Linux系统为Debian,通过具体操作实例讲述测试过程,SPEC2006是SPEC新一代的行业标准化的CPU测试基准套件。重点测试系统的处理器,内存子系统和编译器。这个基准测试套件包括的SPECint基准和SPECfp基准。其中SPECint2006基准包含12个不同的基准测试和SPECfp2006年基准包含19个不同的基准测试。SPEC设计了这个套件提供了一个比较标准的计算密集型,高性能的跨硬件的CPU测试工具。1、搭建系统环境;子项目。...原创 2022-07-16 12:06:02 · 16871 阅读 · 1 评论 -
Linux下stream内存带宽测试参数和示例详解附源码(总结)
本文通过实例详细讲解各编译参数,方便读者快速掌握。stream是一套综合性能测试程序集,通过fortran和c两种高级且高效的语言编写完成,由于这两种语言在数学计算方面的高效率, 使得stream测试例程可以充分发挥出内存的能力。stream测试得到的是可持续运行的内存带宽最大值,而并不是一般的硬件厂商提供的理论最大值,具有如下特点:1.主要有四种数组的运算,测试到内存带宽的性能分别是:数组的复制(Copy)、数组的尺度变换(Scale)、数组的矢量求和(Add)、数组的复合矢量求和(Triad)。2.原创 2022-07-03 17:14:04 · 11949 阅读 · 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 · 10757 阅读 · 0 评论 -
ftrace命令调试内核详细总结(快速掌握附实例讲解)
文章目录一、简介二、ftrace的相关配置2.1 ftrace主要配置流程2.2 具体配置详解三、ftracing目录内容详解3.1 通用配置解析3.2 支持的跟踪器解析3.3 其他配置文件四、实例操作五、其他相关博客链接一、简介Ftrace是一个专门针对linux kernel内核空间的debug工具,用于帮助开发者弄清kernel正在发生的行为,对用户空间对内核低延时,内核性能等方面的问题进行调试分析。Ftrace最开始设计时主要是为了追踪函数的调用栈,但随着功能的增强,已经演变成一个跟踪框架,支原创 2022-05-08 16:24:41 · 4195 阅读 · 2 评论 -
crash工具分析Kdump下vmcore文件常用命令总结(三)(实例易懂)
一、简介本文主要介绍使用crash工具对kdump生成的vmcore文件进行分析,解析常见的crash命令,前面已讲述两章关于Kdump的内容,读者感兴趣可以点击下面的链接:1、Kdump调试机理总结(一)2、Kdump配置及使用详细总结(二)系统产生异常时,触发Kdump机制,启动捕获内核,用以对生产内核下的内存进行收集和转存。Kdump用于对内存镜像的转储,它不但可以转储内存镜像到本地硬盘,还可以将内存镜像通过NFS,SSH等协议转储到不同机器的设备上。本文是将生产内核的内存数据转储在/va原创 2022-05-06 19:36:46 · 9045 阅读 · 0 评论 -
Linux下反编译命令objdump快速学习总结(附实例操作)
本文主要介绍如何用objdump命令在Linux下反汇编目标文件或者可执行文件,首先介绍具体的参数,然后再通过具体的实例运用。原创 2022-05-06 15:23:18 · 13492 阅读 · 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 · 8442 阅读 · 2 评论 -
gdb调试常见命令详细总结(附示例操作)
一、简介通过gdb调试我们可以监控程序执行的每一个细节,包括变量的值、函数的调用过程、内存中数据、线程的调度等,从而发现隐藏的错误或者低效的代码,程序的调试过程主要有:单步执行,跳入函数,跳出函数,设置断点,设置观察点,查看变量。本文将主要介绍linux下的gdb调试工具常用的命令和具体的使用实例。二、调试过程介绍2.1 编译程序加参数时生成调试信息-g 和 -ggdb 都是令 gcc 生成调试信息,但是它们也是有区别的选项解析g该选项可以利用操作系统的“原生格式(nati原创 2022-05-05 00:01:48 · 34388 阅读 · 0 评论 -
Kdump调试机理详细总结(一)
一、简介本文主要讲解Kdump的运行机理,后续两个章节会详细介绍kdump的使用和如何分析coredump文件信息。Kdump 的概念出现在 2005 左右,是迄今为止最可靠的内核转存机制,已经被主要的 linux™ 厂商选用。kdump是在系统崩溃、死锁或者死机的时候用来转储内存为vmcore保存到磁盘的一个工具和服务。1、Kdump相关名词定义:(1)生产内核:第一个运行的内核(正常的系统运行内核)(2)捕获内核:第二个运行的内核(系统异常时,会启动捕获内核,用以对生产内核下的内存进行收集和转原创 2022-05-03 22:50:50 · 2398 阅读 · 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 · 15090 阅读 · 5 评论