
子类__内核调试篇
文章平均质量分 78
RK3399平台入门到精通系列之内核调试篇
内核笔记
一直从业于半导体行业,曾为Linux内核开源文档社区提交过若干文档。
主要从事Linux、Android相关系统软件开发工作,负责Soc芯片BringUp及系统软件开发,喜欢阅读内核源代码,在不断的学习和工作中深入理解内存管理,进程调度,文件系统,设备驱动等内核子系统。
展开
-
RK3399平台开发系列讲解(内核调试篇)如何使用perf进行性能优化
📢perf 可以在 CPU Usage 增高的节点上找到具体的引起 CPU 增高的函数,然后我们就可以有针对性地聚焦到那个函数做分析。原创 2023-01-12 00:44:34 · 2495 阅读 · 2 评论 -
RK3399平台开发系列讲解(内核调试篇)2.51、什么是硬件断点
在linux内核编程中,经常会遇到由于内存被篡改,例如 buffer overflow,野指针,write after free等。查找分析此类问题非常的麻烦。原创 2022-08-15 21:12:21 · 2203 阅读 · 5 评论 -
RK3399平台开发系列讲解(内核调试篇)2.50、嵌入式产品启动速度优化
启动速度是嵌入式产品一个重要的性能指标,更快的启动速度会让客户有更好的使用体验,在某些方面还会节省能耗,因为可以直接关机而不需要休眠。启动速度优化可提升产品的竞争力。对于某些系统来说,启动速度是硬性要求。......原创 2022-08-04 22:51:27 · 2016 阅读 · 8 评论 -
RK3399平台开发系列讲解(内核调试篇)常用Linux内核调试手段介绍 - 视频介绍
常用Linux内核调试手段介绍 - 视频介绍原创 2022-06-19 15:37:34 · 2110 阅读 · 16 评论 -
RK3399平台开发系列讲解(内核调试篇)2.49、内存检测共工具slub_debug
内存检测共工具slub_debug原创 2022-05-22 22:59:41 · 2101 阅读 · 6 评论 -
RK3399平台开发系列讲解(内核调试篇)2.48、ftrace跟踪器介绍
ftrace跟踪器介绍原创 2022-05-22 18:28:26 · 1831 阅读 · 23 评论 -
RK3399平台开发系列讲解(内核调试篇)2.47、Linux错误码介绍
📢错误代码由内核或用户空间应用程序(通过errno变量)解释。错误处理在软件开发中非常重要,而不仅仅是在内核开发中。幸运的是,内核提供的几种错误,几乎涵盖了可能会遇到的所有错误,有时需要把它们打印出来以帮助进行调试。原创 2022-05-15 18:57:23 · 1997 阅读 · 7 评论 -
RK3399平台开发系列讲解(内核调试篇)2.44、如何迅速分析CPU 的性能瓶颈
如何迅速分析CPU 的性能瓶颈原创 2022-03-11 00:21:21 · 2451 阅读 · 8 评论 -
RK3399平台开发系列讲解(内核调试篇)2.45、debugfs API 汇总
debugfs API 汇总原创 2022-04-11 23:46:50 · 2697 阅读 · 8 评论 -
RK3399平台开发系列讲解(内核调试篇)2.44、使用proc文件系统导出信息
使用proc文件系统导出信息原创 2019-05-12 23:30:28 · 2058 阅读 · 6 评论 -
RK3399平台开发系列讲解(内核调试篇)2.46、Linux kernel debug 方法
Linux kernel debug 方法汇总原创 2021-07-04 20:55:38 · 2801 阅读 · 11 评论 -
RK3399平台开发系列讲解(网络调试)7.28、如何分析常见的TCP问题?
如何分析常见的TCP问题?原创 2022-02-09 23:36:36 · 3423 阅读 · 9 评论 -
RK3399平台开发系列讲解(网络调试)7.27、如何分析TCP重传问题?
TCP 重传也是一个信号,我们通常会利用这个信号来判断系统是否稳定。原创 2022-02-08 23:52:44 · 2822 阅读 · 8 评论 -
RK3399平台开发系列讲解(内核调试篇)2.42、什么是动态追踪调试?
什么是动态追踪调试?原创 2022-02-08 01:09:52 · 2488 阅读 · 12 评论 -
RK3399平台开发系列讲解(内核调试篇)2.41、ptrace
ptrace原创 2022-02-04 03:47:12 · 2087 阅读 · 13 评论 -
RK3399平台开发系列讲解(内核调试篇)2.39、USB设备描述符分析工具-UsbTreeView
今天介绍USB设备描述符分析工具原创 2022-01-23 02:12:48 · 2709 阅读 · 8 评论 -
RK3399平台开发系列讲解(内核调试篇)2.38、使用Bus Hound抓USB设备数据包
今天介绍如何通过Bus Hound软件进行数据抓包原创 2022-01-23 01:48:19 · 3583 阅读 · 10 评论 -
RK3399平台开发系列讲解(内核调试篇)2.40、如何分析Page Cache产生的问题
如何分析Page Cache产生的问题原创 2022-01-15 01:47:39 · 4024 阅读 · 12 评论 -
RK3399平台开发系列讲解(内核调试篇)2.37、如何分析性能问题?
如何分析性能问题?原创 2022-01-09 01:07:40 · 2309 阅读 · 8 评论 -
RK3399平台开发系列讲解(内核调试篇)2.36、Linux 性能工具有哪些?
Linux 性能工具有哪些原创 2022-01-08 21:25:43 · 3446 阅读 · 9 评论 -
RK3399平台开发系列讲解(内核调试篇)2.35、CPU 利用率中softirq飙高情况分析
CPU 利用率是一个很笼统的概念,在遇到 CPU 利用率飙高的问题时,我们需要看看 CPU到底在忙哪类事情,比如说 CPU 是在忙着处理中断、等待I/O、执行内核函数?还是在执行用户函数?这个时候就需要我们细化 CPU 利用率的监控,因为监控这些细化的指标对我们分析问题很有帮助。原创 2021-10-27 23:41:10 · 2834 阅读 · 11 评论 -
RK3399平台开发系列讲解(内核调试篇)2.34、DRM架构下如何点亮一块屏
1.屏的基本配置及含义参考《Rockchip_DRM_Panel_Porting_Guide_V1.3_20171209.pdf》2.调试手段有哪些:(1)检查软件配置。(2)查看log,相应的显示驱动有没有绑定成功。(3)调整对应的参数。3.示例(1)点一块edp屏(2)点一块mipi屏原创 2021-10-01 02:03:11 · 3702 阅读 · 8 评论 -
RK3399平台开发系列讲解(内核调试篇)2.33、stty设置串口波特率参数
Linux设置串口波特率等参数嵌入式系统经常会通过串口打印调试信息,在Linux环境下,可以使用stty设置串口波特率等参数,然后使用cat就可以正确捕获串口输出的调试信息。原创 2018-08-23 19:25:46 · 2708 阅读 · 10 评论 -
RK3399平台开发系列讲解(内核调试篇)2.32、ALSA库的移植及测试命令
ALSA库的移植及测试命令原创 2020-07-25 02:00:31 · 3747 阅读 · 10 评论 -
RK3399平台开发系列讲解(内核调试篇)2.31、如何开启瑞芯微的I2C设备探测工具
如何开启瑞芯微的I2C设备探测工具原创 2019-01-12 19:34:49 · 3149 阅读 · 10 评论 -
RK3399平台开发系列讲解(内核调试篇)2.28、以太网PHY调试方法
阅读对应PHY的技术手册,弄清MDIO的使用条款,clause22 or clause 45测试PHY的外部供电是否正常,包含系统的电源供电和PHY 的复位管脚适配加载驱动,PHY 与 MAC要确保MDIO的通讯正常,只有通讯正常MAC才能正常识别到PHY。可以用示波器在PHY侧获取MDIO/MDC波形进行分析针对某些个性化PHY,需要通过MDIO写入相关配置参数。建议在写入前后各读取一次寄存器的值,确保配置写入成功测试数据信号线上是否有数据,即测试SGMII或RGMII信号线一般PHY均支持回环原创 2021-07-10 22:21:07 · 4498 阅读 · 12 评论 -
RK3399平台开发系列讲解(内核调试篇)2.30、如何在Linux kernel代码中获取当前进程的信息
内核代码可以引用当前进程, 通过存取全局项 current, 它在 <asm/current.h> 中定义, 它产生一个指针指向结构 task_struct, 在<linux/sched.h> 定义.current 指针指向当前在运行的进程.在一个系统调用执行期间, 例如 open 或者 read, 当前进程是发出调用的进程. 内核代码可以通过使用 current 来使用进程特定的信息, 一个设备驱动可以只包含<linux/sched.h>并且引用当前进程. 例如, 下面的语句打印了当前进程的进程 ID原创 2021-07-15 16:49:05 · 3072 阅读 · 12 评论 -
RK3399平台开发系列讲解(内核调试篇)2.29、PCIe debug方法
一、EP侧调试获取MHI状态获取所有系统log二、RC侧log查看pcie信息导出PCIe log原创 2018-08-23 19:22:52 · 6906 阅读 · 14 评论 -
RK3399平台开发系列讲解(内核调试篇)2.27、SD等存储设备驱动常用调试方法
一、简单读写测试1、写入数据2、读出数据二、查看当前系统支持文件系统三、获取SD卡/eMMC基本信息原创 2021-07-04 22:10:41 · 3273 阅读 · 11 评论 -
RK3399平台开发系列讲解(内核调试篇)2.26、EMMC 相关debug日志的打开
方法1.打开EMMC的debug log,方法2. 打开CMD的log方法3. trace 的方式查看cmd情况原创 2021-07-04 21:13:20 · 3456 阅读 · 11 评论 -
RK3399平台开发系列讲解(内核调试篇)2.25、USB设备掉口问题的定位方法汇总
一、什么是USB掉口现象二、分析手段USB掉口是指USB接口的模块,在上位机中出现断连的情况。这个断连的情况最直接的表现就是上位机/dev/ttyUSB*节点出现了从有到无,再到有的过程。二、分析手段模块端内核日志的抓取:cat /proc/kmsg & 避免log被覆盖抓取usb逻辑分析仪日志如果分析仪是LeC...原创 2021-06-26 22:21:24 · 3228 阅读 · 10 评论 -
RK3399平台开发系列讲解(内核调试篇)2.22、使用I2C tools工具调试外设
当你拿到开发板或者是从公司的硬件同事拿到一个带有I2C外设的板子,我们应该如何最快速的使用起来这个I2C设备呢?既然我们总是说这个I2C总线在嵌入式开发中被广泛的使用,那么是否有现成的测试工具帮我们完成这个快速使用板子的I2C设备呢?答案是有的,而且这个测试工具的代码还是开源的,它被广泛的应用在linux应用层来快速验证I2C外设是否可用,为我们测试I2C设备提供了很好的捷径。如何使用I2C tools测试I2C外设I2C tools概述:I2C tools包含一套用于Linux应用层测试各种各样I2原创 2021-06-07 14:50:04 · 3442 阅读 · 15 评论 -
RK3399平台开发系列讲解(内核调试篇)2.21、/sys/class/gpio调试
`Linux`开发平台实现了通用`GPIO`的驱动,用户通过`Shell`命令或系统调用即能控制`GPIO`的输出和读取其输入值。其属性文件均在`/sys/class/gpio` 目录下原创 2021-06-05 13:48:15 · 3902 阅读 · 12 评论 -
RK3399平台开发系列讲解(内核调试篇)2.20、Oops 日志分析
在内核开发的过程中,经常会碰到内核崩溃,比如空指针异常,内存访问越界。通常我们只能靠崩溃之后打印出的异常调用栈信息来定位crash的位置和原因。原创 2021-05-29 17:07:33 · 3438 阅读 · 16 评论 -
RK3399平台开发系列讲解(内核调试篇)2.19、strace跟踪器的原理及使用
strace常用来跟踪进程执行时的系统调用和所接收的信号。在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通过系统调用访问硬件设备。strace可以跟踪到一个进程产生的系统调用,就可以跟踪到一个进程产生的系统调用,包括参数、返回值、执行消耗的时间、调用次数、成功和失败的次数。原创 2021-05-29 16:50:54 · 3009 阅读 · 12 评论 -
RK3399平台开发系列讲解(内核调试篇)2.18、通过/proc/driver/rtc节点读取时间
通过/proc/driver/rtc节点读取时间原创 2021-05-23 21:40:11 · 3448 阅读 · 14 评论 -
RK3399平台开发系列讲解(内核调试篇)2.16、Linux kernel中计算代码运行时间
Linux kernel中计算代码运行时间原创 2021-04-30 20:02:54 · 2700 阅读 · 12 评论 -
RK3399平台开发系列讲解(内核调试篇)2.14、USB逻辑分析仪报文分析
控制传输由三个阶段组成,设置阶段、可选的数据阶段、状态阶段,其中设置阶段由1个SETUP事务组成,数据阶段由0个或者多个IN/OUT事务组成,状态阶段由1个IN/OUT事务组成,其中每个阶段事务包结构有所不同,下图可以直观看出控制传输的包结构组成。原创 2021-03-23 22:28:07 · 2901 阅读 · 13 评论 -
RK3399平台开发系列讲解(内核调试篇)2.15、Realtek千兆PHYRTL8211FS相关寄存器操作
Realtek千兆PHYRTL8211FS相关寄存器操作原创 2021-04-04 23:22:23 · 7972 阅读 · 13 评论 -
RK3399平台开发系列讲解(内核调试篇)2.11、SPI总线的验证方法
1. `echo 1 > /dev/spidev1.0` 2. 逻辑分析仪抓波形 3. 十六进指转化为十进制 4. `ASCII`字符代码表匹配原创 2021-02-26 22:48:31 · 3232 阅读 · 15 评论