
使用gdb实时调式arduino
前言
arduino ide 功能过于简单,连最基本的断点调式功能都不提供。通过串口查看调式数据实在是很不便捷,通过某种方式远程调式arduino是很有必要的。
环境
这次尝试是在64位fedora 22下进行,使用的arduino板子类型为leonardo.需要python 2 支持.
开始
配置PlatformIO
PlatformIO is a cross-platform code builder and the missing library manager.
以前我在linux开放arduino时候使用的是ino工具,PlatformIO 和它类似,只不过它功能更加强大,支持的芯片种类繁多,包括stm32,avr都有支持link.对于IDE 也有很好的配置教程link,甚至还提供库管理(没用过).
安装很简单。
配置simulavr
这是一个类似于仿真器的程序,他可以通过usb串口与单片机通信,并模拟出一个gdb server ,可以通过avr-gdb 或者其他IDE进行debug.
之后进入目录./configure,有可能报错
Could not locate libbfd.so/libbfd.a and/or bfd.h.
解决依赖。
编译有可能报错,
systemclock.cpp:70:8: note: use ‘this->resize’ instead
只需要手动修改一下这个文件,按照提示修改即可。整体安装流程如下:
配置工程
初始化工程
之后可以在src 里编辑代码,将库依赖放到lib 里。
用platformio run 上传到板子。
进行调式
启动gdb server
使用gdb进行调式(也可以在 QT Creator , eclipse中进行,配置过程相似)
说完了
好了,就到这里了,arduino从现在起调式就很美好了~
日后有机会再写写如何在ide中进行调式,争取配置出一个完美的IDE~
原文作者: heymind
