问题列表(整理中):
1. 编译工程时报错(找不到”AgRV’):
问题原因:SDK被破坏掉。可能因为安装了360,或者platformio有重装的动作,或者安装顺序出问题。
解决方法:先确认没有360,再重装SDK(就是 AgRV_pio-1.5.x-win64-release 的那个exe)
2. 编译时报错(python报错)
问题原因:python版本冲突,电脑上可能安装了多个python,且path中指向了别的版本的python。
解决方法:将环境变量下其他python的路径拿掉。
3. 编译时报错(找不到 AgRV):
同问题1.
解决方法:先确认没有360,再重装SDK(就是 AgRV_pio-1.5.x-win64-release 的那个exe)
4. 烧录代码时报错(No valid logic):
问题原因:空板第一次烧录程序时,应该先烧录logic,再烧录code。
解决方法:先烧录一次logic
5. 烧录时报错(No jlink)
问题原因:在platformio.ini里,下载器的类型选错了。
解决方法:如果使用的dap-link,那么应该设置:protocol = cmsis-dap-openocd
6. 下载时报错(device ID does not match)
问题原因:芯片型号选错。256K的flash应该选103,1M的flash应该选407。
解决方法:修改选项 board = agrv2k_407
7. 烧录时报错(IDR 错误)
报错如:Error: Error connecting DP: cannot read IDR
这种问题,是连不上芯片了。
- 先检查:
a. 硬件是否有虚焊;
b. jtag三根连线是否有对应错误;
c. jtag连线是否有松动,换杜邦线; - 用downloader工具看是否能读到ID;
如果能读到,说明驱动到硬件是通的,跳到3。
如果读不到,回到1;(并检查供电和系统电流是否正常) - boot0拉高烧录;
boot0拉高上电后,芯片只运行rom内固化代码,并不跳转到用户程序去运行。
这种方法,可以排除程序跑飞导致的无法烧录。(一般表现是,前边可以烧录,突然烧录不了) - 重启电脑:排除USB口带来的问题;
重装SDK:排除杀毒软件删除sdk内容带来的环境问题;
8. debug仿真时跑不起来或反复报错
现象描述:有的表现为gdb报错,有的表现为调试画面出来但无法调试。
解决方法:放弃platformio自带的调试功能,改用cortex调试。
9. VScode中 Ctrl+鼠标左键 点函数不会跳转
现象描述:安装sdk后(或使用一段时间),用Ctrl+左键的方式点函数,不会跳转到定义。
排查步骤:首先确保电脑上没有360之类的杀毒软件 -> 确保安装的SDK版本是指定版本 -> 然后可以重装SDK(AgRV_pio-1.x.x-win64-release)尝试 -> 删除工程下的.vscode和.pio目录(以清除缓存)尝试。
如果以上几步做完仍有问题,先看能不能正常编译。如果可以编译,只是不能跳转,那就是VScode本身设置问题。
VScode设置问题可以百度解决。可参考:https://zhuanlan.zhihu.com/p/678541867
.