Truncated register 16 in remote ‘g’ packet
问题复现
参照网上给出的教程配置了Clion+openOCD+arm-gcc
的开发环境,但是当我想用Debug
功能的时候却给出我一个异常代码:
Truncated register 16 in remote 'g' packet
WTF?
于是乎我就百度,Google各种找,但是就没找到问题的解决办法.期间有的说把使用Mingw 32位
可以解决,我试过了无效
解决思路
当时我就在想,我能够正常的编译和烧写,那么我的编译器和openOCD
配置就没出错
那么问题只可能出在GDB
身上,但是我这个GDB
是按照官方的说法使用的是默认的GDB
,不大可能会出错的啊
想来想去想不明白,那我就只有手动GDB
调试一下,看下是哪里的问题
然后我就在网上找到了@Foresights写的GDB
的使用教程
这里有几点需要注意一下,因为Windows
环境下的openOCD
的*.cfg
文件集成了下载器和对应板子两个配置文件,所以我们只需要写一条命令就好了
openocd stm32f4discovery.cfg
注意到我们使用是arm-none-eabi-gdb
这里最好把openocd的目录和arm-gcc的目录添加进环境变量
然后我就神奇的发现,我的GDB
可以正常使用
最终解决
回到Clion
的设置里面,把默认的那个mingw64
的GDB
修改成arm-gcc
的GDB
,其余默认
因为我试过了如果说把这个MinGW
不设置成默认,然后在CMake
那里指定为这个不是默认的,问题还是会发生
我这里猜测可能是Clion
的一些兼容性的问题,就是没办法指定arm-gcc
的GDB
,好在这个IDE我平常还是用来写写嵌入式,就让他这样了吧
来源:CSDN
作者:涵墨轻笙
链接:https://blog.csdn.net/snowsolo_/article/details/104709657