eCos是gnu的产物,无论采用eclipse开发环境或者其他商业的开发环境如果要单步调试eCos的代码,
都需要通过gdb,这些ide无非是把gdb做了一次包装或者是提供了图形化的gdb命令执行方式。
既然gdb盛行于linux,如果在Windows下想应用gdb必须有linux的仿真环境。或者是Cygwin或者是MingW。
(本文原创转载请注明出处http://blog.csdn.net/rickleaf)
另外一点就是运行gdb调试必须有gdb server和gdb client连接,在eCos中有可以通过redboot的eCos stub作为gdb server。
然后应用程序编译成ram方式,通过串口或者网口连接redboot的gdb server。
GNU的强大毋庸置疑,所以很多ARM硬件仿真器已经开始内置GDB server,这样调试ecos就可以直接利用仿真器了,
segger公司的JLink就是一个性价比比较高的仿真器。下面以stm32为例,分别介绍一下gdb连接redboot的调试方法。
选择eCos的STM3210e模板,指定为redboot类型
指定redboot的启动类型为ROM方式,这里会以stm32内部的flash作为启动资源
编译生成redboot.bin,烧入到芯片中,可以通过串口看到redboot的命令窗口
以ram的启动方式编译ecos的测试应用程序
设定ecos的启动方式为ram
然后参考本博客的其他帖子编译eCos的简单测试程序
关掉串口终端,打开Cygwin,按照图片上的命令连接redboot。
通过Jlink GDB server连接调是eCos 请参考另一篇文章