易灵思FPGA MCU软核RiscV的试错小结-易灵思(Elitestek)论坛-FPGA CPLD-ChipDebug

易灵思FPGA MCU软核RiscV的试错小结

 


一、环境

安装软硬件调试环境,并根据用户手册步骤逐步调试编译。

1. Efinity® Software
链接: https://pan.baidu.com/s/1h0Yqm5ut-RkESAxj1Czrjg?pwd=semq 提取码: semq 复制这段内容后打开百度网盘手机App,操作更方便哦
2. Java JRE 链接 :https://www.java.com/en/download/manual.jsp
3
a. Eclipse MCU
b. xPack GNU RISC-V Embedded GCC
c. OpenOCD Debugger
d. 4 GNU MCU Eclipse Windows Build Tool (Windows Only)
链接: https://pan.baidu.com/s/1dmLpScGdsxzu91iKj8qcwQ?pwd=ygfv 提取码: ygfv 复制这段内容后打开百度网盘手机App,操作更方便哦

二、Eclipse Error

正常在建立完工程,加载完makefile后,clean&build Project ,控制台会出现以下信息:

在这里插入图片描述
在这里插入图片描述

然而很多情况因为Eclipse软件的环境变量设置的不全的问题,导致clean&build的过程会出现错误。

1. make: *** No rule to make target ‘…/…/…/bsp//include/soc.mk’. Stop.

错误现象
在这里插入图片描述
错误原因
出现这种没有找到soc.mk问题的原因是没有给此workspace 设置 BSP( Board Support Package,板级支持包);或是debug后没有关闭,再次打开会识别错误状态。
解决办法
我们需要在Windows-prefenrence-envirment里面添加此工作台内的环境变量。根据不同实际情况选择对应的efinixEfxRubySoc,efinixEfxJadeSoc,efinixEfxopalSoc;再次clean和build工程。

三、OpenOcd Error

正常配置完参数debug工程,eclipse运行完程序,控制台会打印出以下信息:

在这里插入图片描述

多数情况是因为没有配置好debug参数,或者环境变量导致没跑通。

1.timed out while waiting for target halted

错误现象
在这里插入图片描述

错误原因
此错误是原因可能有很多种,板子上的程序断电后忘了重烧了或者烧错了;板子和线连的不稳呀;SoC本身没设置对,包括是没使用正确的PLL设置SOC;甚至本身PC的性能吃不住性能跑崩(起码8G及以上),这个错误的目的是告诉你程序等了半天发现板子和软件没怼起来,是这么个意思
解决办法
检查板子和PC间的连线;确保JTAG的连接;确保程序烧对了;如果用的是T120的官方开发板,确保J10座子pin1和pin2连接,目的是使能板子的GPIOR_188_PLLIN2连接10M时钟;

2. no device found

错误现象在这里插入图片描述
错误原因
此错误是说软件没有找到设备,一种原因是板子和电脑之间的连线接触不良,一种情况是根据我们设置的FTDI设备的驱动程序,没有找到对应的器件。
解决办法
1,检查连线电脑和板子的连线是否松动;
2,我们打开Efinity Programmer下载界面,USB target 显示的就是我们当前板子的实际命名;接着找到… …bspefinixEfxRubySocopenocd目录下的ftdi.cfg文件 也就是我们之前debug设置配置的文件,将设备命名改为我们实际的板子名称。

ftdi_device_desc "Trion T120F324 Development Board" 

3. failed to reset FTDI device:LIBUSB_ERROR_IO

错误现象
在这里插入图片描述
错误原因
此报错主要是FTDI设备的驱动不对造成识别错误,只要把对应调试的设备的驱动换一下就可以了
解决办法
在网上下一个zadig软件,百度上一大堆;如果是易灵思官方板子的话,板子自带FTDI芯片,都是usb连接电脑;如果是自己的开发板的话,要么是232电缆,要么是FT2232芯片,板连接电脑和开发板;
打开zadig后,选择Options里的List All Devices;
关掉Options里的 Ignore Hubs or Composite Parents;
接着在device设备里面选择我们的开发板,无论是上述哪种方式,其USB ID都是0403 6014;
接着我们把驱动换成libusbK的即可。

4. target ‘fpga_spinal.cpu0’ init failed

错误现象
在这里插入图片描述
错误原因
此报错是说我们在debug_configutation里面设置的’fpga_spinal.cpu0’没有识别出来,一般是因为我们配置命令的路径不对或者没有不是正确表达配置的方式。
解决办法
假设我们fpga_spinal.cpu0文件在D:/Code/RiscV/sw文件夹底下,我们可以这样表示

-c  "set CPU0_YAML  D:CodeRiscVswcpu0.yaml"       或者 -c  "set CPU0_YAML  D:/Code/RiscV/sw/cpu0.yaml" 

5. Error: JTAG scan chain interrogation failed: all zeroes

错误现象在这里插入图片描述
错误原因
此报错是说没有识别到JTAG的连接,一般出现在用softdebug调试的时候;因为使用usb电缆下载并调试,本身program通过,说明连接没问题,则不会出现识别为0的情况;此情况多数是JTAG线连接错误的原因。此图下面的错误都是伴随JTAG scan chain interrogation为0的现象而生的,并且会将程序跑崩。
解决办法
仔细检查io_jtag这四个io口的管脚定义和232电缆(或其他调试路径)的连线是否对应,有没有接反,GND有没有对齐。

6.fpga_spinal.bridge: IR capture error; saw 0x01 not 0x0f

错误现象
在这里插入图片描述
错误原因
这样的错误是debug_softTap.cfg 文件中,第17行识别判断不对,此错误不影响整体的编译:

jtag newtap $_CHIPNAME bridge -irlen 4 -ircapture 0xf -irmask 0xF  

解决办法
将ircapture 0xf中的0xf改成0x1.

四、其他

1.program “g++” not found in PATH & program “gcc” not found in PATH
在这里插入图片描述
第一次用eclipse的时候,有可能系统上本身没有g++和c++的编译环境;百度上一大堆教程,我们需要下个MinGW,在里面找到我们需要的编译器,安装好后添加系统环境变量,重启软件即可。

2.make: command not found
此时的eclipse的编译环境里面没有make.exe文件,所以我们添加的工程中的makefile没办法被执行,网上一大堆教程是下载make,vim等常用命令的教程,包括修改上面安装g++和c++内一些.exe文件的操作。

3.OpenOCD error code (-1073741515)
如果系统没有安装libusb0.dll,调试器可能会失败报错,错误代码就是-1073741515,网上下一个就行了。

五、总结

在搭建环境的过程中,大多数问题是环境变量没设置好,要么是用户少做了哪些步骤,要么是电脑本身没有一些文件,或者缺少编译环境;其实多试错几次,多配置几次,新建个workspace设置个实验组和对照组很快就知道哪有问题;
万事开头难,麻烦的是对代码的调试,这个还是万里长征第一步,我亦会及时更新的;
以上。


 

请登录后发表评论

    没有回复内容