设为首页收藏本站
查看: 1114|回复: 0

【米尔瑞萨RZ/G2L开发板-创新应用】使用KGDB调试内核ko模块

[复制链接]

8

主题

12

回帖

214

积分

中级会员

积分
214
贫穷贵公子 发表于 2023-8-27 21:46:52 | 显示全部楼层 |阅读模式
本文以dmatest.ko模块为例,讲解如何使用KGDB调试内核ko模块

包括如下步骤:
1)YOCTO构建系统当中,增加dmatest内核模块

yocto/myir-renesas-yocto/layers/meta-myir-yg2lx/include/core-image-bsp.inc文件中,增加

kernel-module-dmatest
使YOCTO构建系统,打包dmatest.ko。

yocto/myir-renesas-yocto/layers/meta-myir-yg2lx/recipes-bsp/linux-kernel/linux/files/kgdb.cfg文件中,增加

CONFIG_DMATEST=m

使YOCTO构建系统,编译dmatest.ko模块。

2)测试dmatest.ko模块

关于dmatest模块,可以参考如下链接
https://www.kernel.org/doc/html/latest/driver-api/dmaengine/dmatest.html

2-1)装载dmatest模块
Snipaste_2023-08-27_21-15-36.png

2-2)调整dmatest内核模块的参数
  1. echo 800000 > /sys/module/dmatest/parameters/test_buf_size
  2. echo 2000 > /sys/module/dmatest/parameters/timeout
  3. echo 50 > /sys/module/dmatest/parameters/iterations
  4. echo 1 > /sys/module/dmatest/parameters/max_channels
  5. echo "" > /sys/module/dmatest/parameters/channel
复制代码
这里,只测试单个channel。
2-3)开启测试
  1. echo 1 > /sys/module/dmatest/parameters/run
复制代码
Snipaste_2023-08-27_21-18-28.png

从kernel的dmsg日志中,可以发现开发板的dma传输性能。
3)使用kgdb调试dmatest.ko

3-1)确定dmatest.ko装载之后的代码段.text的地址
Snipaste_2023-08-27_21-23-52.png

3-2)gdb调试窗口,加载dmatest.ko符号
add-symbol-file linux-myir-5.10.83+git999/drivers/dma/dmatest.ko 0xffff80000906e000

3-3)gdb窗口,添加breakpoint。
Snipaste_2023-08-27_21-37-24.png

3-4)minicom窗口,进入kgdb模式,等待host端的连接
  1. echo g > /proc/sysrq-trigger
复制代码
3-5)gdb窗口,连接开发板
  1. target remote /dev/pts/5
复制代码
Snipaste_2023-08-27_21-39-55.png

3-6)gdb窗口,输入c指令,让开发板继续运行
3-7)monicom窗口,开启dmatest,此时,因为kgdb已经在dmatest_run_set函数上,增加了断点。所以,会暂停dmatest.ko模块的运行,开启gdb调试。
Snipaste_2023-08-27_21-44-48.png

回复

使用道具 举报

您需要登录后才可以回帖 登录

本版积分规则

Archiver|手机版|小黑屋|米尔科技论坛   

GMT+8, 2024-11-23 16:17 , Processed in 0.054389 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表