特价
GameBreaker

GameFlash:如何在几分钟内烧录 DMA 板

程序简介

GameFlash 是一款适用于基于 Xilinx Artix-7 芯片(型号 35T、75T 和 100T)的 DMA 板的通用烧录工具。它通过 CH347 写入 .bin 文件,自动校验结果,并在出现错误时重新写入。此外还能读取 Device DNA 并运行 DMA 速度测试。

值得一提的是:无需额外安装任何东西。OpenOCD、配置文件和驱动程序都已内置,首次启动时会自动解压。下载、打开、烧录即可。

你需要准备:

Windows 10 或 11,64 位。

已连接到电脑的 Artix-7 DMA 板(35T、75T 或 100T)。

严格为 .bin 格式的固件文件(程序不接受其他格式)。

板状态指示(右上角)

右上角有一个 DMA 状态 - 它会立即显示程序所检测到的内容:

无板(灰色)- 未检测到 DMA 板。

JTAG PORT(橙色)- USB 插在 JTAG 端口,可以烧录。

DATA PORT(绿色)- USB 插在 DATA 端口,可以运行速度测试。

黄色 - 设备可见,但驱动未安装(请查看驱动选项卡)。

方便之处:如果某项未连接,在烧录开始之前就能立即看到。

第 1 步。驱动

在烧录任何东西之前,需要确认系统能够识别适配器。这由驱动选项卡负责。打开它 - 就能立即看到缺少什么。

每个驱动旁边都有一个状态:已安装或未安装。如果显示红色,就点击旁边的安装,会打开普通的系统安装程序。需要管理员权限,所以如果 Windows 请求授权 - 这是正常的,同意即可。

列表中总共有三个驱动,它们用于不同的任务。

CH347 (JTAG) - 最主要的。没有它根本无法烧录 DMA 板,所以要首先安装。

FTDI (DATA) - 仅在你要运行 DMA 速度测试和使用作弊时才需要。对于烧录 .bin 本身则不是必需的。

DirectX Runtime - 用于辅助工具。如果状态为红色,按同样的方式安装。

安装完所有红色项后,通过 USB 重新连接板子。顶部的端口状态会自动更新,无需重启 GameFlash。一旦你在角落看到橙色的 JTAG PORT - 就说明 CH347 驱动已正确安装,可以继续。

第 2 步。烧录

烧录选项卡是主屏幕,一切都在这里进行。如果板状态指示为橙色的 JTAG PORT,就可以开始。过程本身很简单,我们按顺序来。

FPGA 芯片 - 选择你的板型号:35T、75T 或 100T。这里重要的是不要选错。

固件 (.BIN) - 点击选择文件,或直接将你的 .bin 拖入窗口。字段下方会立即显示文件大小和“准备烧录”的字样。

按下大大的烧录按钮。

接下来关注右侧输出区块中的进度和日志。写入按扇区进行,sector N took ~150-300 ms 这样的行是正常的,本应如此。进度条和百分比在左下角可见。

最后会弹出一张结果卡片。绿色的完成 - 写入和校验都通过了,板子已烧录。红色的错误 - 未成功,请在日志中查找原因。

在写入进行时,烧录按钮会变为取消,也就是说随时可以停止过程 - 要么用同一个按钮,要么直接按 Esc 键。

关于可靠性单独说一下 - 这里不用为 USB 担心。如果连接出现问题,GameFlash 会自动尝试最多 4 次:沿 10 -> 6 -> 3 MHz 的顺序降低频率并重新连接。不需要手动去重插任何东西,程序会自己处理好一切。

第 3 步。读取 Device DNA

每个 Xilinx Artix-7 芯片都有自己唯一的编号 - DNA ID。这是直接嵌入卡中的序列号,无法更改或伪造。有时需要这个 ID 用于绑定,或只是为了确认眼前的正是那块板。GameFlash 能够通过 JTAG 直接从程序中读取它。

你打开 DNA 选项卡,接下来只需三次点击。

点击读取 DNA ID。

生成的 ID 会出现在字段中,并立即自动复制到剪贴板 - 可以马上粘贴到需要的地方。

如果剪贴板在某处被覆盖,复制 DNA 按钮会再次将 ID 放到那里。

要让读取生效,板子必须通过 JTAG 可见 - 就是角落那个橙色的 JTAG PORT 标记。如果指示为灰色或黄色,请先处理好连接和 CH347 适配器驱动,然后再回来读取 DNA。

Step 4. DMA speed test

The Test tab comes in handy if you want to make sure the board is fine, or compare it with another one.

For the test to run at all, the board must be connected via USB to the DATA PORT, and the FTD3XX driver must be installed in the system. If the indicator is green (DATA PORT), then everything is in place and you can run the speed test.

After that it is simple. First you choose the type of test - there are four of them, for different tasks.

Full - both latency and throughput at once, and at the end a general verdict PASS or FAIL. It runs for 5 plus 5 seconds, convenient when you want to quickly understand whether the board is good or not.

Latency - small 4 KB reads. It shows the minimum, maximum and average delay plus how many reads per second the board pulls.

Throughput - large 16 MB reads. Here we look at the sustained speed in MB/s, that is how much the board holds in a stream.

Stress - 16 MB reads in 8 threads, and so on until you stop it yourself. A good check of stability under load.

You set the test time yourself. You click the field and type the number of seconds manually, or adjust it with the minus and plus buttons. For the Full test the time is fixed, there is nothing to change there.

It is launched like this.

Choose the test type.

If needed, enter the time in seconds (for the Full test we skip this step).

Press Start and watch the log.

During the test the metrics scroll by in the log, and at the end - the result. If FAIL came up, the program writes directly what exactly is wrong: many read errors, low speed and the like. You will not have to guess and look for the reason blindly, it is all spelled out on the spot.

语言、指南和关于程序

这个区块讲的是窗口最底部那些不会立即注意到但却很有用的小细节。界面语言、指南按钮,以及带有程序本身信息的选项卡。

左下角有一个语言切换器 - RU、EN 和 CN。默认情况下 GameFlash 会自动从系统读取语言,所以通常无需动。但如果想手动切换,只需点击你需要的选项,该选择会被记住 - 下次会以它打开。

旁边是指南按钮。点击 - 会在浏览器中打开在线手册。当你忘记了某些东西或想不中断过程核对步骤时很方便。

还有一个关于选项卡 - 那里有版本、GameFlash 功能的简短描述以及网站链接。

如果出了问题

烧录并不总是顺利 - 有时会在中途出点状况。这里没什么好害怕的:GameFlash 会老实地在日志中写明到底发生了什么。查找带有 [!] 或 [x] 标记及原因的那一行。下面我们梳理最常见的情况以及应对办法。

USB/JTAG 故障,数据未写入(扇区少于 10 毫秒)- USB 通道出现问题,数据没有写入芯片。检查线缆,重新连接 CH347,不要通过 USB 集线器连接,直接插到机箱后面的端口。

Verify 不匹配(contents differ)- 写入的内容与你的文件不一致。检查板子供电和 JTAG 接触,然后重新烧录。

适配器无响应(USB 卡死)- CH347 在 USB 上卡住了。重新连接适配器,尝试另一个 USB 端口,并再次运行烧录。

OpenOCD 以错误退出,代码:N - 未能打开适配器或芯片。查看驱动选项卡上的 CH347 驱动,并检查板子的连接方式。

顶部显示无板 - 适配器根本不可见。检查 USB 线缆和驱动,重新连接 CH347。

几点能大大省心的总体观察。健康的写入是按大约 150-300 毫秒的扇区进行的 - 这是正常的节奏。但如果日志中闪现 took 少于 10 ms,那就已经是故障了,数据没写入。程序会自己发现这种情况并重新写入,所以通常无需介入。

最重要的规则:如果烧录连续四次都没成功,问题几乎总是出在周边的硬件上,而不是板子本身。线缆、USB 端口、驱动或 JTAG 接触不良。换根线缆或端口,把板子更牢地插入插槽 - 通常这样之后一切就正常了。