问题列表(整理中):

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
这种问题,是连不上芯片了。

  1. 先检查:
    a. 硬件是否有虚焊;
    b. jtag三根连线是否有对应错误;
    c. jtag连线是否有松动,换杜邦线;
  2. 用downloader工具看是否能读到ID;
    如果能读到,说明驱动到硬件是通的,跳到3。
    如果读不到,回到1;(并检查供电和系统电流是否正常)
  3. boot0拉高烧录;
    boot0拉高上电后,芯片只运行rom内固化代码,并不跳转到用户程序去运行。
    这种方法,可以排除程序跑飞导致的无法烧录。(一般表现是,前边可以烧录,突然烧录不了)
  4. 重启电脑:排除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

.