Flash / 运行 带有 OpenOCD 的 Altera Cyclone IV

Flash / Run Altera Cyclone IV with OpenOCD

我想 运行 带有 OpenOCD 的 Altera Cyclone IV IP。无论我需要从 quartus 获得什么文件,但执行应该由 OpenOCD 完成。我目前正在尝试使用 sof 文件来完成它。 quartus给程序员用的那个

也欢迎您提供有关闪存的其他提示。

.sof 文件是否适合与 openbcd 一起使用?

我的板子是 "Altera Cyclone IV FPGA Learning Board EP4CE6E22C8N and USB Blaster Programmer" 品牌是[zrTech]

在 Quartus 中,此配置有时可用于执行它(sof 文件),但并非每次都有效。 但是当它开始工作时,它会继续这样做: 就是我目前收集的好像还不错的(评论除外):

altera_ep4ce6e22.cfg :

interface usb_blaster
usb_blaster_lowlevel_driver ftdi
transport select jtag
set CHIPNAME ep4ce6mb
set FPGA_TAPID 0x020f10dd

jtag newtap $CHIPNAME tap -irlen 10 -ircapture 0x01 -irmask 0x3 -expected-id $FPGA_TAPID

##no errors but not sure about those 
pld init 
init

## Some stuff I tried with the errors of the results ###
#pld load 0 project.sof  ###Error: invalid subcommand "load 0 project.sof"
#program project.sof ###Error: ** Unable to reset target **

在上面的状态下,这是我得到的输出(命令在那里等待 - 它没有 return):

###: openocd -f altera_ep4ce6e22.cfg 
Open On-Chip Debugger 0.10.0
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
Warn : Adapter driver 'usb_blaster' did not declare which transports it allows; assuming legacy JTAG-only
Info : only one transport option; autoselect 'jtag'
Warn : Transport "jtag" was already selected
Info : usb blaster interface using libftdi
Info : This adapter doesn't support configurable speed
Info : JTAG tap: ep4ce6mb.tap tap/device found: 0x020f10dd (mfg: 0x06e (Altera), part: 0x20f1, ver: 0x0)
Info : 'pld init' has already been called
Warn : gdb services need one or more targets defined

知道我必须做什么才能完成这项工作吗?

感谢您的帮助。

据我所知,OpenOCD 不支持直接编程 sof 文件(这些是专有的 Altera 格式)。

相反,从 Quartus 生成一个 SVF 文件(参见 https://www.intel.com/content/www/us/en/programmable/support/support-resources/knowledge-base/solutions/rd07222008_677.html)并使用 OpenOCD svf 命令对其进行编程。

我对所有想做同样事情的人的补充回答:

正如大卫已经回答的那样,您需要 SVF 文件: 如果你需要的话,这是我的完整文件。 目前 quartus 拒绝对其进行编程,但 openocd 对该文件的处理非常好。 它由文件菜单中的程序员对话框创建。 接下来我寻找通过 makefile 创建它的可能性,我在某个地方已经在 Makefile 中看到了它。

(来源:f32c on Github

Shell:

openocd -f altera_ep4ce6e22.cfg 

涉及的两个文件都在执行目录下。

我的新 altera_ep4ce6e22.cfg:

interface usb_blaster
usb_blaster_lowlevel_driver ftdi
set CHIPNAME ep4ce6mb
set FPGA_TAPID 0x020f10dd

jtag newtap $CHIPNAME tap -irlen 10 -ircapture 0x01 -irmask 0x3 -expected-id $FPGA_TAPID

init
scan_chain
svf -tap $CHIPNAME.tap project.svf ###<<<svf file by quartus programmer same
exit