RTEMS官方已经发布了一个eclipse的插件,方便RTEMS的开发者方便的调试程序。
鉴于目前市面上有越来越多的仿真器开始内置标准gdb协议的gdb server,这使得基于gcc的操作系统有着越来越多的更为友善的调试界面啦。
但是作为初学者不免有些困惑,这里还是针对emboslab的mini2440 RTEMS版本,介绍一下如何应用RTEMS的eclipse plugin来调试RTEMS。
准备工作
以 -S -s 启动qemu,这样qemu会作为一个gdb server侦测 网卡的1234端口,这个方式和JLinkGDBServer的2331端口的用法一样。qemu-system-arm -S -s -M mini2440 -m 128M -kernel $1 -show-cursor -serial stdio
配置elipse的调试方式为GDB Hard Debugging方式
在Debugger页,更改GDB Command为实际用的gdb工具,比如我用arm-rtems4.10-gdb
因为,mini2440是在ram中运行的,我们要在连接好gdb server以后做一次load的动作。
所以,我在halt以后的gdb命令脚本中添加了load。
同时,为了调试方便我把_start作为第一个断点
这时候点击Debug,elipse就会连接到qemu的gdb server, 在点运行就会运行到断点_start。
接下来就和应用其他工具的方法一样了。
我们可以看反汇编和寄存器等信息。