使用jtag和gdb实时调试Linux内核 | ChangChun Master Li
0. 关键词
debug raspberry pi bcm2835 armv6 linux kernel J-Link jtag gdb
1. 摘要
gdb是一款开源debugger,调试的事实标准,gdb可以帮助开发者快速定位问题。
gdb也可以作为阅读源码的工具,可以非常方便的查看运行时上下文,跳转所见即所得。因此,在嵌入式系统或底层开发中,gdb必不可少。
linux内核作为操作系统调试起来有一定特殊性,不能直接在本地gdb调试,需要一个host和一个target远程调试。
远程调试内核主要有三种方式,一种是内置派,通过Kgdb这种内核内置的模块。一种是虚拟派,通过把内核跑在类似qemu的虚拟机上。最后一种是硬件派,这是嵌入式设备上最常用的调试方式,通过连接jtag调试。
前两种多少都会受到软件的限制,而最后一种方式由硬件来实现,最为直接。
2. rpi+jlink的优势
成本和流行的平衡,raspberry pi搭载的bcm2835是目前比较流行的soc,且资料较为完善,
armv6架构,比s3c2440要新很多,S3C2440架构是arm9,资料很丰富,但目前好像也只