Frame 固件和 RTL 代码库
欢迎来到 Frame 硬件的完整代码库。如需常规使用说明,请查看这里的文档。
系统架构
代码库分为三个部分:nRF52 应用程序、nRF52 引导加载程序和 FPGA RTL。
nRF52 设计用于处理整体系统操作。它运行 Lua,并处理蓝牙网络、AI 任务和电源管理。同时,FPGA 只负责加速图形和摄像头处理。
nRF52 固件开发入门
-
确保已安装 ARM GCC 工具链。
-
确保已安装 nRF 命令行工具。
-
确保已安装 nRF Util,以及
device
和nrf5sdk-tools
子命令。./nrfutil install device ./nrfutil install nrf5sdk-tools
-
克隆此仓库并初始化所有子模块:
git clone https://github.com/brilliantlabsAR/frame-codebase.git cd frame-codebase git submodule update --init
-
现在您应该能够通过在
frame-codebase
文件夹中执行以下命令来构建项目并将其刷写到 nRF52840 DK 上。make release make erase-jlink # 如有需要,解锁闪存保护 make flash-jlink
调试
-
在 VSCode 中打开项目。
.vscode/tasks.json
中已配置了一些构建任务。通过按Ctrl-Shift-P
(MacOS 上为Cmd-Shift-P
)→Tasks: Run Task
来访问它们。尝试运行
Build
任务。项目应该正常构建。在编程或调试之前,您可能需要使用
Erase
任务解锁设备。 -
要启用 IntelliSense,请确保在 VSCode 中选择正确的编译器。
Ctrl-Shift-P
(MacOS 上为Cmd-Shift-P
)→C/C++: Select IntelliSense Configuration
→Use arm-none-eabi-gcc
。 -
安装 VSCode 的 Cortex-Debug 扩展以启用调试功能。
-
.vscode/launch.json
中已配置了调试启动。从运行和调试
面板运行Application (J-Link)
启动配置,或按F5
。项目将在启动前自动构建和刷写。 -
要监控日志,请运行
RTT Console (J-Link)
任务,并确保Application (J-Link)
启动配置正在运行。 -
要使用 Black Magic Probes 进行调试,请按照此处的说明操作。
FPGA 开发入门
为了快速上手,在 FPGA 上运行的加速器已经预先构建并打包在此仓库中。如果您想修改 FPGA RTL,您需要重新构建包含整个 FPGA 应用程序的 fpga_application.h
文件。
-
确保已安装 Yosys。
-
确保已安装 Project Oxide。
-
确保已安装 nextpnr。
-
MacOS 用户可以使用 Homebrew 一次性完成上述三个步骤。
brew install --HEAD siliconwitchery/oss-fpga/nextpnr-nexus
-
现在您应该能够通过调用
make
来重新构建项目:make fpga/fpga_application.h
要更深入地了解 FPGA RTL 的工作原理,请查看此处的文档。