arm linux内核调试,kgdb在ARM开发板上调试kernel成功
大概幾個(gè)注意點(diǎn):
1.公版的Linux需要打kgdb補(bǔ)丁的,kgdb官方那邊可能不支持新版本的內(nèi)核(我的是2.6.18),可以在下面的網(wǎng)址找到,但是ARM上調(diào)試需要打哪些補(bǔ)丁,不是很清楚,網(wǎng)上的幾篇中文教程文章都是針對(duì)x86調(diào)試的。
montavista是已經(jīng)打好補(bǔ)丁的。
2.在make menuconfig
選中這幾個(gè)items:
Kernel hacking? --->
[*] Compile the kernel with debug info
[*] KGDB: kernel debugging with remote gdb
[*] KGDB: Console messages through gdb
Method for KGDB communication (KGDB: On generic serial port (8250))? --->
[*] Simple selection of KGDB serial port (NEW)
(115200) Debug serial port baud rate (NEW)
(0) Serial port number for KGDB -->Note: 0=UART1=ttyS0 1=UART2=ttyS1 2=UART3=ttyS2
其中指定kgdb使用串口的參數(shù),大概有三種方法來(lái)指定:
a)Simple selection只能配置一下波特率和使用哪個(gè)ttyS(X)
b)config string? 和方式c的效果一樣;
c)bootargs指定,格式為:kgdb8250=,,,
范例:
setenv bootargs root=/dev/ram0 rw console=ttySAC0,115200 mem=64M ramdisk=32768 initrd=0x30800000,20M init=/linuxrc kgdbwait kgdb8250=mmap,0xfffb0000,115200,46
3.關(guān)注一下8250_kgdb.c這個(gè)文件,我發(fā)現(xiàn)我的板子上8250 for kgdb的串口信息沒(méi)有配置,所以一開(kāi)始通訊都搞不起來(lái)。查查datasheet添加進(jìn)去,比較快的方法是根據(jù)kernel的啟動(dòng)信息中8250 driver的輸出信息。
4.bootargs里面要添加參數(shù)“kgdbwait”
setenv bootargs root=/dev/ram0 rw console=ttySAC0,115200 mem=64M ramdisk=32768 initrd=0x30800000,20M init=/linuxrc kgdbwait
5.bob的kgdb x86調(diào)試(bob兄,最近可好?)
總結(jié)
以上是生活随笔為你收集整理的arm linux内核调试,kgdb在ARM开发板上调试kernel成功的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: linux samba默认端口,Linu
- 下一篇: linux mail 密码错误,linu