OpenOCD配置完成并正确连接上开发板后,就会监听6666,4444,3333端口分别用于tcl, telnet, gdbserver的监听。要进行调试,我们就需要连接到OpenOCD的gdbserver上面。进行ARM的调试使用程序的是arm-none-eabi-gdb。但是现在使用apt软件包管理程序自动安装的gcc-arm-none-eabi工具链已经不是最新版并且不带有gdb调试程序。要安装arm-none-eabi-gdb则需要到ARM官网进行下载。(如果原来使用apt安装过工具链则需要先卸载)
工具链下载地址:
安装命令:
#依赖libncurses-dev安装
sudo apt install libncurses-dev
sudo ln -s /usr/lib/x86_64-linux-gnu/libncurses.so.6 /usr/lib/x86_64-linux-gnu/libncurses.so.5
sudo ln -s /usr/lib/x86_64-linux-gnu/libtinfo.so.6 /usr/lib/x86_64-linux-gnu/libtinfo.so.5
#gcc-arm-none-eabi解压安装
sudo tar xvf gcc-arm-none-eabi-xxx-x86_64-linux.tar.bz2 /usr/share/
sudo ln -s /usr/share/gcc-arm-none-eabi-your-version/bin/arm-none-eabi-gcc /usr/bin/arm-none-eabi-gcc
sudo ln -s /usr/share/gcc-arm-none-eabi-your-version/bin/arm-none-eabi-g++ /usr/bin/arm-none-eabi-g++
sudo ln -s /usr/share/gcc-arm-none-eabi-your-version/bin/arm-none-eabi-gdb /usr/bin/arm-none-eabi-gdb
sudo ln -s /usr/share/gcc-arm-none-eabi-your-version/bin/arm-none-eabi-size /usr/bin/arm-none-eabi-size
sudo ln -s /usr/share/gcc-arm-none-eabi-your-version/bin/arm-none-eabi-as /usr/bin/arm-none-eabi-as
sudo ln -s /usr/share/gcc-arm-none-eabi-your-version/bin/arm-none-eabi-objcopy /usr/bin/arm-none-eabi-objcopy
sudo ln -s /usr/share/gcc-arm-none-eabi-your-version/bin/arm-none-eabi-objdump /usr/bin/arm-none-eabi-objdump
安装完成后gdb调试器就可以使用了:
- 启动OpenOCD并连接开发板
- 打开新终端执行命令:arm-none-eabi-gdb ./test.elf
- (gdb) target remote localhost:3333
这时gdb就连接上了OpenOCD的gdbserver。具体的调试命令和我们平常使用的gdb差不多,在网上可以找到不少教程。
下面放一张效果图:
参考资料:
ask ubuntu-how-to-install-arm-none-eabi-gdb-on-ubuntu-20-04-lts-focal-fossa