Arria 10 FPGA的OpenCL内核调试问题:GDB调试板不匹配报错
Fix "Program was compiled for a different board" Error When Debugging OpenCL Emulator with GDB on Arria 10 FPGA
我刚碰到过一模一样的问题!核心原因是你在GDB里运行主机程序时,没有设置那个关键的环境变量CL_CONTEXT_EMULATOR_DEVICE_ALTERA=1——直接用gdb host后敲run,程序会默认去寻找真实的Arria 10硬件设备,而你的kernel.aocx是用模拟器模式编译出来的,自然就会报设备不匹配的错。
下面给你两种解决方法,任选一种就行:
方法1:在GDB内部设置环境变量
启动GDB后,先设置好环境变量再运行程序:
set env CL_CONTEXT_EMULATOR_DEVICE_ALTERA=1 run
方法2:启动GDB时直接带上环境变量
在终端里一次性设置环境变量并启动GDB:
env CL_CONTEXT_EMULATOR_DEVICE_ALTERA=1 gdb host
之后直接敲run就能正常调试了。
再补充一点原理:Altera的OpenCL模拟器需要这个环境变量来告诉主机程序,现在要连接的是模拟器设备而不是真实FPGA板卡。之前你直接运行env CL_CONTEXT_EMULATOR_DEVICE_ALTERA=1 ./host能成功,就是因为提前设置了这个变量,但GDB默认不会继承你终端里的临时环境变量(除非你显式传递),所以才会触发这个版本不匹配的错误。
内容的提问来源于stack exchange,提问作者juan
相关产品推荐
相关产品推荐

