
Zephyr 支持 Efinix Titanium Ti60 F225基于 Sapphire RISC-V SoC 的 FPGA 开发板构建与烧录指南【免费下载链接】zephyrPrimary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.项目地址: https://gitcode.com/GitHub_Trending/ze/zephyr本文以 Zephyr 仓库中 titanium_ti60_f225 开发板文档 为核心介绍如何为 Efinix Titanium Ti60 F225 FPGA 开发板内含 Efinix Sapphire SoC一款基于 VexRiscv 核的可配置 RISC-V SoC配置、构建并烧录 Zephyr RTOS 应用。读完本文你将掌握该板卡的硬件资源布局、Zephyr 侧 SoC 与板级支持细节、标准west build构建流程以及通过 Efinity programmer 将固件写入 SPI NOR Flash 的完整方案。开发板概览Efinix Titanium Ti60 F225 开发套件的核心是 Ti60 FPGA采用16nm 工艺制造在较小的物理尺寸上兼顾了高性能与低功耗。更重要的是Efinix 提供了Sapphire SoC IP——一个基于 VexRiscv 软核、功能集与扩展可配置的 RISC-V SoC。用户可以通过 Efinity IP Manager 自由裁剪 SoC 中的外设只保留应用真正需要的部分从而按需定制片上系统。从 Zephyr 仓库的板级元数据可以确认该板卡的定位board.yml板名titanium_ti60_f225厂商efinix关联 SoC 为efinix_sapphiretitanium_ti60_f225.yaml架构为riscv可用 RAM 为 196608 字节192 KiB工具链为zephyr官方支持gpio与uart两类外设。开发板框图如下展示了以 Ti60 FPGA 为核心的完整硬件架构。从框图中可以看到这块板卡围绕 Ti60 FPGA 集成了以下关键模块存储与启动SPI NOR Flash存放 FPGA 配置 Bitstream 与用户程序、Micro SD 卡槽、256 Mbit HyperRAM X16 高速外部内存调试与通信USB Type-C 接口搭配 FT4232FTDI实现 USB 转 UART/I2C/SPI 调试通道另有基于 Infineon EZ-USB FX3 的 USB 3.0 控制器提供高速数据通路用户交互2 组 DIP 拨码开关、4 个用户按键、2 颗 RGB LED高速外设扩展3 组高速接口每组含 8 数据 2 时钟 6 GPIO支持 MIPI RX/TX、LVDS 与 GPIO 排针扩展时钟系统25 MHz、33.3333 MHz、74.25 MHz 三路晶振供 FPGA 内 PLL/DLL 分频派生各模块时钟。Sapphire SoC 在 Zephyr 中的软件支持Sapphire SoC 在 Zephyr 中的支持由 SoC 目录与设备树共同定义可以从源码层面印证原文档对 SoC 的描述。SoC Kconfig架构与中断配置soc/efinix/sapphire/Kconfig 定义了SOC_EFINIX_SAPPHIRE符号并强制选择了INCLUDE_RESET_VECTOR、RISCV、RISCV_PRIVILEGED、RISCV_HAS_PLIC等依赖说明该 SoC 是特权模式 RISC-V 实现并带有 PLIC 中断控制器。同时 soc/efinix/sapphire/Kconfig.defconfig 补充了关键默认值SYS_CLOCK_HW_CYCLES_PER_SEC 100000000系统时钟硬件周期为 100 MHzRISCV_SOC_INTERRUPT_INIT ySoC 中断在启动阶段初始化NUM_IRQS 36中断源数量2ND_LVL_INTR_00_OFFSET 11二级中断偏移。设备树内存与外设布局dts/riscv/efinix/sapphire_soc.dtsi 是 Sapphire SoC 的完整设备树定义与本板卡的 titanium_ti60_f225.dts 配套使用。核心资源包括资源基地址说明RAMram00xf9000000192 KiB 片上 SRAMPLIC 中断控制器0xf8c00000SiFive PLIC 兼容最多 32 个外部中断、3 级优先级CLINT0xf8b00000定时器/软中断控制器MTimer0xf8b0bff8RISC-V 机器模式定时器UART00xf8010000Sapphire 串口默认 115200GPIO00xf80150004 个 GPIO设备树中 CPU 节点声明为efinix,vexriscv-sapphireISA 基线为rv32i扩展包含i、m、a、zicsr、zifencei——与文档所述基于 VexRiscv 核完全一致。板级设备树与外设使能板级设备树 titanium_ti60_f225.dts 中chosen节点将uart0指定为控制台与 shell 串口ram0指定为系统 SRAMleds节点声明了 3 颗 GPIO LED绿gpio0引脚 3、红引脚 2、蓝引脚 1均为GPIO_ACTIVE_LOW有效其中绿色 LED 通过aliases映射为led0uart0显式使能status okay并设定波特率 115200gpio0显式使能。对应地titanium_ti60_f225_defconfig 启用了CONSOLE、SERIAL、UART_CONSOLE、GPIO并关闭了CLOCK_CONTROL、XIP非 XIP 运行、INIT_STACKS同时把堆内存池设为 16384 字节体现了一块精简 FPGA SoC 的典型配置。驱动实现外设支持由 Zephyr 驱动子系统提供可作为该板卡支持 UART 与 GPIO的底层证据uart_efinix_sapphire.c以efinix,sapphire-uart0为 compatible实现轮询式收发寄存器包含 DATA0x00、STATUS0x04、CLOCK_DIVIDER0x08、FRAME_CONFIG0x0C每波特 8 次采样、无校验、1 停止位gpio_efinix_sapphire.c以efinix,sapphire-gpio为 compatible支持输入、输出、输出初始电平以及上升/下降/高/低电平中断配置。构建 Zephyr 应用构建应用的方式与 Zephyr 其他板卡完全一致可参考仓库根目录的 README.rst 完成环境搭建安装 west、拉取依赖等。针对本板卡以经典的 hello_world 示例见 samples/hello_world为例构建命令如下west build -b titanium_ti60_f225 samples/hello_world该命令会以titanium_ti60_f225为目标板完成配置与编译。构建产物build/zephyr/zephyr.bin等随后可用于烧录。烧录到 SPI NOR Flash将构建出的二进制写入 SPI NOR Flash 需要使用Efinity programmer。具体流程为使用 Efinity IDE 生成并下载 Sapphire SoC 的 Bitstream参考 Efinix 官方提供的 Sapphire SoC 配置指南打开 Efinity programmer连接开发板选择 SPI NOR Flash 作为烧录目标将 Zephyr 构建产物写入 Flash复位开发板使 SoC 从 Flash 加载并运行 Zephyr。需要注意Zephyr RTOS 已验证可运行于Efinity IDE v2022.2.322生成的 SoC Bitstream 之上。使用其他版本的 IDE 生成 Bitstream 时建议重新验证外设地址映射与中断配置的兼容性。此外Sapphire SoC 在 FPGA 中的搭建与 Bitstream 生成步骤请遵循 Efinix 官方提供的 Zephyr 移植指南Efinix-Zephyr项目其中包含完整的 IP 配置与 SoC 集成步骤。总结Efinix Titanium Ti60 F225 通过 Sapphire SoC IP 将可配置的 VexRiscv RISC-V 内核带入 Zephyr 生态。开发者只需在 Efinity IDE 中生成 Sapphire SoC Bitstream使用west build -b titanium_ti60_f225构建 Zephyr 应用借助 Efinity programmer 将固件烧入 SPI NOR Flash即可在一颗 16nm FPGA 上运行 Zephyr RTOS并通过 UART 控制台与 GPIO LED 进行交互验证。相关的板级定义、SoC 设备树与 UART/GPIO 驱动均已在当前仓库中就位可随时作为二次开发的起点。【免费下载链接】zephyrPrimary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.项目地址: https://gitcode.com/GitHub_Trending/ze/zephyr创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考