Nios® II 处理器裸机开发人员中心

裸机开发所使用软件运行时环境不使用操作系统 (OS) 或实时操作系统 (RTOS)。为支持裸机开发,英特尔提供了面向英特尔® FPGA 中 Nios® II 处理器的硬件抽象层 (HAL) 库。您可将该库用作 FPGA 中 Nios® II 处理器系统的设备驱动程序包,为系统中的外设提供一致接口。

下列链接将帮助您开始熟悉英特尔® FPGA 上的裸机开发。如果您是新用户,建议您充分利用每种资源。

  • 通过My Intel 页面创建您的 My Intel 账户。
  • 您可以通过My Intel 账户提交服务申请、注册培训课程、下载软件、访问资源等。

为何选择裸机开发?

  • 采用裸机方法具有以下优势:
    • 绝对控制硬件
    • 提高效率
    • 最大限度减小空间(闪存和内存空间)
    • 不依赖其他源代码或库
    • 轻松进行验证和代码覆盖分析
  • 如果存在以下情况,您还可能要考虑裸机开发:
    • 无需多任务或多线程操作
    • 正在执行开发板启动,而且需要一次支持一种外设
    • 正在复用以裸机形式开发的现有传统代码

裸机注意事项

开发 Nios® II 处理器裸机应用时,您必须熟悉如何开发运行时功能,以确保应用高效使用 CPU 子系统中的可用资源。例如,您需要具备以下条件:

  • 熟知硬件平台
  • 如果想充分利用 CPU 子系统,必须开发运行时功能以管理内核与高速缓存子系统之间的进程,因为典型的裸机应用仅使用一个内核
  • 开发管理和安排进程、处理进程间通信和同步应用内事件的功能

如果安排的项目让自己没有时间满足上述条件,建议您考虑使用商用 Linux* 或 RTOS 解决方案。

裸机替代方案

考虑到上述因素,用户通常有必要使用操作系统,以最小努力实现 Nios® II 处理器的最高性能。

下表显示了 Linux* 操作系统和 RTOS 的基本比较情况。

标准 Linux* 操作系统 RTOS

主要区别

Linux* 操作系统中的任务调度并未进行优先级划分,因此所有线程将被公平对待。这种公平策略有助于实现较高的总体计算吞吐量,但存在调度延迟不受限制的缺点。随着待调度和执行的线程增多,Linux 中的调度延迟通常会累积。 RTOS 是一种基于优先级的系统,通过抢占式任务调度确保对事件或中断进行及时、明确的响应。相比于低优先级线程,紧要的高优先级会优先执行。RTOS 中的线程具有有限延迟。进程或线程在指定时限内执行。
应用 适用于需要较高的总体计算吞吐量但不太紧要的应用。 适用于需要极快速和可预测响应的应用。
资源 需要较多 CPU 资源和大量内存空间。 轻便且需要较少的内存空间。
编码实践 通常无需遵守严格的编码策略。 遵守严格的编码策略,因为代码必须不断以一致方式实施。

Linux* 操作系统

随着面向 Nios® II 处理器的内存管理单元 (MMU) 隆重发布,您将能从广泛的 Linux* 提供商中自由选择。从商业支持、行业领导者到免费开源分发版,英特尔的嵌入式 Linux* 合作伙伴可为您的 Linux* 项目提供适当支持。

RTOS

简单的 RTOS 易于使用。类似于使用已实施的 C 函数库无需自己编写函数。一些 RTOS 全面支持所有外设,一些 RTOS 仅支持一部分外设。如果您选择的 RTOS 仅支持一部分外设,HAL 代码可提供需要的更多支持。详情请参考 Nios® II 处理器生态系统网页。

Nios® II 嵌入式设计套件 (EDS) 包括 MicroC/OS-II RTOS 和完整 ANSI C 源代码的免费评估版。详情请参考 Micrium MicroC/OS-II 实时操作系统网页。

下图展示了 Nios® II 处理器系统的总体开发流程。

Nios® II 处理器开发流程包括下列三个要素:

  • 硬件设计
  • 软件设计
  • 涉及软硬件的系统设计

在 Nios® II 处理器开发中,您首先需要形成系统概念,并实施系统要求分析。然后,您需要在 Platform Designer 中创建和生成系统,并生成 .sopcinfo 文件。Platform Designer 包括 Nios® II 处理器内核、标准组件、自定义指令和外设逻辑。在系统生成后,您可启动硬件和软件流程。

对于 Nios® II 处理器硬件开发,您必须:

  1. 将 Platform Designer 系统与英特尔® Quartus® Prime 软件项目进行集成。
  2. 分配引脚位置。
  3. 配置时间要求和其他设计限制。
  4. 完成硬件设计后,将 .sof 文件下载至目标开发板。

对于 Nios® II 处理器软件开发,您必须:

  1. 使用面向 Eclipse 的 Nios® II 软件构建工具 (SBT) 开发软件。Nios® II 软件包括 HAL、外设驱动程序、用户 C/C++ 应用代码和自定义库。 
  2. 在构建应用和开发板支持包(BSP)后,将 .elf 文件下载至目标开发板上的 Nios® II 处理器系统。Nios® II 处理器系统可进行测试和调试。

如果您在测试中发现软件不符合规格,返回软件流程的开始步骤,检查应用代码、驱动程序和 BSP,纠正任务错误,确保 Nios II 处理器系统正确执行。

如果硬件不符合规格,返回 Platform Designer 系统定义和生成步骤,重启硬件和软件流程。生成应用软件所需的密钥文件是 Platform Designer 信息文件 (.sopcinfo)。因为该文件描述了硬件组件和连接,所以您进行硬件更改时须再次生成该文件。当软硬件都符合规格时,系统才算完备。

我们建议您通过英特尔提供的评估或开发套件着手开发,因为多数可用示例将在这些开发板上运行。

  • Nios® II 处理器评估套件:
  • 英特尔® FPGA 开发套件:
    • 所有新套件均包括预先打包的 Nios® II 处理器设计示例(名为开发板更新门户)
    • 处理器入门设计和采用 HTML Web 服务器应用的以太网媒体访问控制 (MAC)

参考全部开发套件,查看可用开发板列表。如需查看设计商店中的开发板特定设计示例列表,请在下拉菜单中选择您需要的开发套件

如需安装 Nios® II 嵌入式设计套件 (EDS),您首先需要在下载中心下载英特尔 Quartus® Prime 软件。英特尔® FPGA 软件安装和许可提供了下载并安装英特尔® Quartus® Prime 软件的详细说明,包括 Nios® II EDS。

Nios® II EDS 是一个全面的 Nios® II 软件设计开发包。Nios® II EDS 不仅包含开发工具,还包含软件、设备驱动程序、裸机 HAL 库、商用级网络堆栈软件和评估版 RTOS。

Nios® II Gen2 硬件开发教程我的第一个 Nios® II 软件教程介绍了 Nios® II 处理器的系统开发流程。使用英特尔® Quartus® Prime 软件和 Nios® II EDS,您可构建 Nios® II 硬件系统设计,创建可在 Nios® II 系统上运行并与英特尔® 开发板上组件连接的软件程序。

Nios® II EDS 管理的项目有两大类型:

  • 基于图形用户界面(GUI)的项目
    • 面向 Eclipse 的 Nios® II SBT 是一个 GUI 薄层,在后台运行 Nios® II SBT 实用程序和脚本,提供了一个统一的开发环境。它基于流行的 Eclipse 框架和 Eclipse C/C++ 开发工具套件 (CDT) 插件。您可在 Eclipse 中完成所有 Nios® II 软件开发任务,包括创建、编辑、构建、运行、调试和分析程序。
  • 基于命令行的项目
    • Nios® II SBT 支持您使用命令行界面构建各种复杂的嵌入式软件系统。通过该界面,您可创建、修改、构建和运行 Nios® II 程序,Nios® II SBT 命令在命令行键入或嵌入脚本。

下表显示了这两个项目的区别(除 Eclipse GUI 以外)。

特性 基于 GUI 的项目 基于命令行的项目
项目源文件管理 指定指定源,例如通过拖放至项目中 使用命令参数手动指定源
调试 把项目导入 Eclipse 环境
集成自定义 shell 脚本和工具流程
  • 从您可能在开发流程中已经使用的其他工具的自定义脚本中调用命令行工具
  • 运行多个 Tcl 脚本,控制开发板支持包(BSP)的创建
  • 使用 bash 脚本同时构建多个项目

为 Nios® II 处理器编写软件与为任何其他微处理器系列编写软件类似。修改现有代码是学习如何在新环境中编写软件的常用方法,非常简单。Nios® II EDS 提供了许多供您在程序中检测、修改和使用的软件设计示例。

每个 Nios® II 处理器程序示例包括应用项目、可选用户库项目和 BSP 项目。

  • 应用项目:包括源代码集合,以及 makefile。应用的一个典型特征是一个源文件包含函数 main( )。应用包括调用库和 BSP 中函数的代码。makefile 可编译源代码,并将其与 BSP 和一个或多个可选库关联以创建 .elf 文件。
  • 用户库项目:用于创建单个库归档文件 (.a) 的源代码集合。库通常包含多个应用项目可共享的可复用通用型函数,如常见的算数函数集合。
  • BSP 项目:一种专用库,包含系统特定支持代码(如 HAL)、可选的自定义 newlib C 标准库、设备驱动程序、可选软件包以及可选实时操作系统。  

按照这些步骤使用 Nios® II SBT 创建软件项目:

  1. 获取用于运行软件的硬件设计。无论是 Nios® II 处理器设计示例还是某人开发的设计,您都需要 SOPC 信息文件(.sopcinfo)。
  2. 在确定 BSP 需要的特征后,先后生成 BSP 设置文件 (settings.bsp) 和 BSP makefile。
  3. 创建用户库(可选)。如果您需要添加自定义软件用户库,将相应的用户库源文件集中放入单个目录中,并生成库 makefile。
  4. 编写应用源代码,生成应用 makefile。
  5. 构建软件项目,以生成 .elf 文件,并在您的开发板上运行应用。

Nios® II SBT 包括用于创建 makefile 的工具,它们对于构建 Nios® II C 和 C++ 项目非常关键。如果宁愿自行编写,您无需使用生成的 makefile。然而,我们建议您使用 SBT 管理和修改 BSP makefile。

更多信息请参考 Nios® II Gen2 软件开发人员手册

英特尔的设计示例页面和设计商店为您提供了大量设计示例作为英特尔® FPGA 产品入门指导。所有示例都可用作您进行设计的起点,一些示例专为特定开发套件而定制。

设计示例页面,选择 IP 核下拉菜单中的 Nios,搜索 Nios® II 处理器设计示例。您还可使用其他搜索条件进行过滤,如设备家族、开发套件和英特尔® Quartus® 软件版本。

如需了解如何启动 Nios® II 处理器应用,请参考嵌入式设计手册中的 Nios® II 配置和启动解决方案部分。

Nios® II 处理器支持多个启动或软件执行选项。您可对 Nios® II 处理器进行专门配置,以从不同的内存位置启动和执行软件。

Nios® II processor 支持的启动内存:

  • 通用闪存接口 (CFI) 闪存
  • 英特尔® MAX® 10 FPGA 器件中的用户闪存内存 (UFM)
  • 串行闪存 EPCQ 配置设备
  • 四串行外设接口 (QSPI) 闪存
  • 片上内存 (OCRAM)

Nios® II 处理器启动选项:

  • Execute-in-place
  • 使用启动复制程序从闪存内存复制到 RAM 中

轻轻一点即可获得帮助!支持中心提供从培训课程到设计示例和论坛的各种在线技术资源在设计流程的每一步为您提供专业指导。

知识库提供大量支持解决方案、参考文章、错误消息和故障排除指南,完全可搜索。

英特尔 FPGA 论坛是支持英特尔® FPGA 用户相互合作的社区网站。查看 Nios® 论坛部分。使用搜索引擎查找相关材料。欢迎大家随时更新和提供材料。

My Intel 账户可用来提交服务申请以获得有关特定主题的帮助。还可以用于注册培训课程和访问其他资源。要求注册。

英特尔 FPGA 维基是一个对外开放的网站,旨在提供有关英特尔® FPGA 及相关技术、工具和用途的社区知识。该网站是分享文章与项目的动态媒介,也是展示宣传材料和设计示例的平台。查看嵌入式处理部分。

下表列出了您在开始设计开发前可参加的基础培训课程。

课程 类型 培养的技能
使用 Nios® II 处理器进行设计 (IEMB112) 仅 8 小时讲师授课
  • 使用 Platform Designer 和英特尔® Quartus® Prime 软件配置和编译 Nios® II 嵌入式处理器设计
  • 使用面向 Eclipse 的 Nios® II 软件构建工具创建、编译、运行和调试 Nios® II 处理器的嵌入式软件项目 
  • 使用 System Console 和面向 Eclipse 的 Nios® II 软件构建工具验证您的 FPGA 设计功能
  • 在 ModelSim*-英特尔® FPGA 软件中模拟您基于 Nios® II 处理器的系统
  • 使用 Platform Designer 将自定义指令整合至嵌入式 Nios® II 处理器系统中
  • 使用 Nios® II 开发套件进行设计
为 Nios® II 处理器开发软件 (IEMB230) 仅 8 小时讲师授课
  • 通过硬件交付物创建软件项目
  • 使用面向 Eclipse 的 Nios® II 软件构建工具管理软件项目
  • 在开发板上下载、运行和调试软件
  • 通过 C 访问 Nios® II 处理器外设
  • 创建中断驱动 C 代码
  • 减小代码大小
  • 通过 C 访问自定义指令硬件
为 Nios® II 处理器开发软件: HAL Primer (OEMB1150) 20 分钟在线课程
  • 了解可用于应用开发的各种 HAL 资源
Nios®II处理器:开发软件简介 (ONIITOOLSDESIGN) 30 分钟在线课程
  • 了解 Nios® II EDS 附带的嵌入式工具和软件从硬件交付物创建软件项目
  • 从软件模板创建项目
  • 配置BSP编辑器软件包,设备驱动程序,链接器内存区域和部分
  • 管理Nios II软件构建工具项目源文件和构建选项
  • 启动并调试一个项目
使用 Nios® II 处理器:自定义组件和指令 (ONIICUS) 11 分钟在线课程
  • 创建自定义组件和指令,并将其导入 Platform Designer
  • 将自定义组件和指令与 Nios® II 处理器配合使用
使用 Nios® II 处理器: 硬件开发 (ONIIHW) 27 分钟在线课程
  • 使用英特尔® Quartus® Prime 软件和 Platform Designer 配置 Nios® II 嵌入式处理器
  • 从 Platform Designer 生成 Nios® II 处理器硬件描述语言 (HDL) 输出文件
使用 Nios® II 处理器:软件开发 (ONIISW) 10 分钟在线课程
  • 了解采用 Nios® II 处理器的软件设计流程
  • 适应面向 Eclipse 的 Nios® II 软件构建工具的软件开发环境

以下文档用作 Nios® II 处理器的主要参考。 

  • Nios® II Gen2 软件开发人员手册描述了为 Nios® II Gen2 处理器开发嵌入式软件所需的基础信息。本手册的相关章节描述了 Nios® II 处理器软件开发环境、可用的 Nios® II 嵌入式设计 (EDS) 工具以及软件开发流程。
  • 嵌入式设计手册是嵌入式系统开发主要文档的补充。该手册介绍了如何最有效地使用工具,推荐了使用英特尔工具开发、调试和优化嵌入式系统的设计风格和实践。这份手册还向英特尔嵌入式解决方案的新用户介绍了相关概念,可帮助经验丰富的用户提高设计效率。
  • Nios® II Gen2 处理器参考指南介绍了 Nios® II Gen2 处理器的相关信息,包括概念的详细说明和实施的简述。该手册的相关章节描述了 Nios® II 处理器架构、编程模型和指令集。
  • 嵌入式外设 IP 用户指南描述了可与 Nios® II 处理器无缝协同且包含在英特尔® Quartus® Prime 设计软件中的英特尔 IP 核。这些 IP 核针对英特尔® 设备进行了优化,通过简单的实施便可缩短设计和测试时间。

如需查看 Nios® II 处理器相关文档的完整列表,请访问 Nios® II 处理器支持页面。

 

观看英特尔® 工程师为您带来的大量操作视频。工程师对话 (E2E) 视频播放列表包括帮助您开发 FPGA 项目的操作视频。