Nios II Boot过程详解:EPCS与CFI Flash引导策略

需积分: 9 14 下载量 159 浏览量 更新于2024-08-02 收藏 331KB DOC 举报
Nios II的Boot过程是一个关键步骤,涉及到硬件配置和软件引导两大部分。首先,FPGA的配置过程至关重要,通常借助外部配置控制器或内置控制器来初始化FPGA内部逻辑,包括嵌入的Nios II软核CPU。一旦FPGA配置完毕,Nios II会从预设的reset地址开始执行其程序。 常见的两种Boot方式分别为从EPCS(Embedded Programmable Flash Controller)串行存贮器和外部CFI(Complementary Ferrite Interface)并行Flash中启动。在EPCS方式中,FPGA的配置数据和Nios II程序存储在同一块设备上,但程序执行实际是在EPCS控制器的片内ROM(bootloader)引导下进行,通过"程序记录"来管理程序段的加载和定位,由于EPCS是串行的,所以需要先将程序移动到RAM才能执行。 另一种是从外部CFI Flash中启动,有两种子情况:一是直接在Flash中运行,此时程序本身具有启动能力,Nios II会在复位时从Flash内部的reset地址启动;二是需要额外的bootloader,启动时bootloader负责将程序加载到RAM后再交给Nios II执行。 Bootloader在这个过程中扮演着至关重要的角色,如`boot_loader.s`、`boot_loader_epcs_bits.s` 和 `boot_loader_cfi_bits.s` 是三种不同的bootloader实现,它们根据不同的存储介质和需求负责程序的加载和定位。`Crt0.s`文件则是Nios II的初始化程序,它在系统启动时提供基本的环境设置和服务。 Nios II的Boot过程既涉及到硬件的初始化,也依赖于精心设计的软件引导逻辑,确保了系统在硬件配置完成后能正确、高效地启动并运行用户程序。理解这些细节对于开发基于Nios II的SoC(System-on-Chip)系统至关重要。