0
首先提下注意事项的背景:
kgdb和printk共用一个串口
1
设置波特率:
//最高支持460800波特率
arm-eabi-gdb ./vmlinux
(gdb) set remotebaud 460800
//设置使用哪个端口,作为通讯端口
(gdb) target remote /dev/ttyUSB0
2
//使用的USB转串口
//可通过: ls /dev/tt* , 查看对应的设备名
3
//有的时候会有权限问题
sudo chmod 777 /dev/ttyUSB0
4
//有的时候gdb会收到非法包,提示如下
Ignoring packet error, continuing…
//可以做如下设置,重新设置printk的打印等级,
//不再让printk向串口输出打印信息
echo 0 > /proc/sysrq-trigger
5
//有时候会提示,watchdog的异常,然后kernel restart after 5 seconds…
//please disable the watch dog
可以在进入循环之前关闭watchdog,我用的函数如下:
mtk_wdt_disable(); //因该能猜到我用的是什么平台
6
//指定kgdb用哪个端口通讯,ttyUART 这个具体平台不一样
echo ttyUART >/sys/module/kgdboc/parameters/kgdboc