Nios II EDS软件设计流程和方法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
调试器
Nios II IDE包含一个强大的、基于GNU调试器的软件调试器- GDB。该调试器提供了许多基本调试功能,以及一些在低成 本处理器开发套件中不会经常用到的高级调试功能。 基本调试功能——Nios II IDE调试器包含如下的基本调试功能: 运行控制 调用堆栈查看 软件断点 反汇编代码查看 调试信息查看 指令集仿真器
Nios II IDE调试器目标
目标 说明 硬件(通过JTAG) 连接至Altera的FPGA开发板, 如Nios II开发套件或其他Altera及其合作 伙伴提供的套件中的开发板。 Nios II指令集架构的软件例化; 指令集仿真器 用于硬件平台(如FPGA电路板)未搭建 好时的系统开发。 连接至ModelSim HDL仿真器; 硬件逻辑仿真器 用于验证用户创建的外设。
工程管理器
软件组件——Nios II IDE使开发人员通过使用软件组件 能够快速地定制系统。 软件组件(或者称为“系统软件”)为开发人员提供 了一个简单的方式来轻松地为特定目标硬件配置他们的 系统。在上图中点击Next,会出现下图所示的系统库 的创建/选择窗口,新建工程用到的组件会包含在系统 库中。 组件包括: Nios II运行库(或者称为硬件抽象层(HAL)) 轻量级IP TCP/IP 库 MicroC/OS-II实时操作系统(RTOS) Altera压缩文件系统
软件开发流程
Nios II程序的构成 每个Nios II程序包括: 一个应用工程, 可选的库工程 一个板支持包工程。 用户将Nios II程序编译成一个能在Nios II处理 上运行的可执行和连接的格式(Executable And Linked Format File—— .elf)的文件。
Nios II IDE软件开发步骤
采用Nios II IDE开发流程,用户使用Nios II IDE图形用 户界面来创建、修改、编译、运行和调试Nios II程序。 IDE创建和管理用户的makefile。如果用户对编译进程 和工程设置干预比较少,而且不需要定制的Hale Waihona Puke Baidu本,采用 这种流程比较好。 Nios II IDE是基于流行的Eclipse IDE框架以及Eclipse C/C++ 开发工具 (CDT) 插件。Nios II IDE在后台运行 其它的工具,对用户屏蔽了底层工具的细节,提供了一 个统一的开发环境。 借助工程的创建和配置向导,Nios II IDE使用起来很容 易,尤其是对Nios II 的初学者帮助很大。Altera公司提 供了Windows和Linux操作系统的Nios II IDE。
BSP (board support package)组成
可选的选件包
软件包是用户可以选择加入到BSP工程中,提供附加的功能 的源代码。比如Nios II 版本的Nich Stack® TCP/IP协议栈。 Nios II IDE和Nios II IDE设计流程文档使用"软件组件"来指 代软件包。 在Nios II软件开发环境中,软件包具有如下的典型特性: A软件包和特定的硬件没有关联 软件包有一些设置会影响它的编译,这些设置.包含在BSP 的设置中。 在Nios II软件开发环境中,软件包和库工程是不同的,软件 包是BSP工程的一部分,不是一个单独的库工程。 可选的实时操作系统(RTOS) Nios II EDS包含第三方的C/OS-II 实时操作系统,用户可 以选择加入到BSP中。C/OS-II基于HAL,实现了一个简单 的、well documented调度程序。用户可以修改设置,这些 设置也是包含在BSP设置中。其它的操作系统可从第三方的 软件厂商获得。
闪存编程器管理多种数据,下表显示了编程到闪存的通用内容类型。 内容类型 系统固定软件 说明 烧写到闪存中的软件, 用于Nios II处理器复位时从闪存中导入启动程序。
FPGA配置
如果使用一个配置控制器(例如用在Nios开发板中的 配置控制器),FPGA能够在上电复位时从闪存获 取配置数据。
开发人员想存储到闪存内的任何二进制数据, 例如图形、音频等。
Nios II IDE简介
Nios II集成开发环境(IDE)是Nios II系列嵌入式 处理器的基本软件开发工具。所有软件开发任 务都可以Nios II IDE下完成,包括编辑、编译 和调试程序。Nios II IDE为软件开发提供四个 主要的功能: 工程管理器 编辑器和编译器 调试器 闪存编程器
工程管理器
Nios II IDE提供多个工程管理任务,加快 嵌入式应用程序的开发进度。 新工程向导——Nios II IDE推出了一个新 工程向导,用于自动建立C/C++应用程序 工程和系统库工程。
Nios II IDE新工程向导
工程管理器
软件工程模板——除了工程创建向导,Nios II IDE还以工程模板的形式提供了软件代码实例, 帮助软件工程师尽可能快速地推出可运行的系 统。 每个模板包括一系列软件文件和工程设置。通 过覆盖工程目录下的代码或者导入工程文件的 方式,开发人员能够将他们自己的源代码添加 到工程中。 在Nios II IDE新工程向导窗口的下半部分有可 选用的模板和模板的介绍。
任意二进制数据
闪存编程器
Nios II IDE闪存编程器具有易用的接口,Nios II IDE闪 存编程器已做了预先配置,能够用于Nios II开发套件中 的所有单板,而且能够轻易地引入到用户硬件中。 除了IDE中的这些工具之外,Nios II EDS还包括如下的 部分: GNU工具系列——Nios II 编译器工具是基于标准的 GNU gcc编译器、汇编器、连接器和make工具。 指令集仿真器——Nios II 指令仿真器(ISS)使得用户在 目标硬件准备好之前就能开发程序。Nios II IDE使得用 户可以基于ISS运行开发的程序,就如同在真正的目标 硬件上运行一样简单。 设计实例——Nios_II ED提供了软件实例和硬件设计来 展示Nios II处理器和开发环境所具有的卓越的性能。
闪存编程器
许多使用Nios II处理器的设计都在单板上采用了闪 存,可以用来存储FPGA配置数据和/或Nios II编程 数据。Nios II IDE提供了一个方便的闪存编程方法。 任何连接到FPGA的兼容通用闪存接口(CFI)的闪 存器件都可以通过Nios II IDE闪存编程器来烧写。 除CFI闪存之外,Nios II IDE闪存编程器能够对连 接到FPGA的任何Altera串行配置器件进行编程。
设备驱动
每个设备驱动管理一个硬件设备。HAL为SOPC Builder系 统中的每一个需要驱动程序的设备实例化一个驱动程序。在 Nios II 软件开发环境中,设备驱动具有如下的属性: 一个设备驱动是和一个特定的SOPC Builder设备相关联的。 驱动程序可能有一些设置可以影响驱动程序的编译,这些设 置包含在BSP的设置中。
Nios II EDS 提供了两种不同的设计流程,包括很多生成 Nios II程序的软件工具,包括需要版权的和开源软件工具如, GNU C/C++ 工具集 。 Nios II EDS为基于Nios II的系统自动生成板支持包(board support package——BSP)。 BSP包括Altera硬件抽象层(hardware abstraction layer— —HAL),可选的RTOS,设备驱动。 BSP提供了C/C++运行环境,使用户避免直接和硬件打交道。 Nios II EDS 的第一种开发流程是用户在集成开发环境Nios II IDE中完成所有的工作, 第二种开发流程是在命令行和脚本环境中使用Nios II 软件 生成工具,然后将工程导入到IDE中进行调试。 本书介绍使用Nios II IDE进行软件设计的流程, Nios II IDE 基于开放式的、可扩展Eclipse IDE project工程以及 Eclipse C/C++ 开发工具(CDT)工程。
系统库工程
编辑器和编译器
Altera‘s Nios II IDE提供了一个全功能的源代 码编辑器和C/C++编译器。 包括下面的几部分: (1)文本编辑器——Nios II IDE文本编辑器是 一个成熟的全功能源文件编辑器。功能包括: 语法高亮显示C/C++,代码辅助/代码协助完成, 全面的搜索工具,文件管理,广泛的在线帮助 主题和教程,引入辅助,快速定位,自动纠错, 内置调试功能。
软件设计流程和方法
Nios II EDS(Embedded Design Suite——嵌 入式开发包)提供了一个统一的开发平台,适 用于所有Nios II处理器系统。仅仅通过一台PC 机、一片Altera的FPGA以及一根JTAG下载电 缆,软件开发人员就能够往Nios II 处理器系统 写入程序以及和Nios II处理器系统进行通讯。 Nios II处理器的JTAG 调试模块提供了使用 JTAG下载线和Nios II处理器通信唯一的、统一 的方法。无论是单处理器系统中的处理器,还 是复杂多处理器系统中的处理器,对其的访问 都是相同的。用户不必去自己建立访问嵌入式 处理器的接口。
编辑器和编译器
(2)C/C++编译器——Nios II IDE为GCC编译器提 供了一个图形化用户界面,Nios II IDE编译环境使 设计Altera的Nios II处理器软件更容易,它提供了 一个易用的按钮式流程,同时允许开发人员手工设 置高级编译选项。 (3)Nios II IDE编译环境自动地生成一个基于用户 特定系统配置(SOPC Builder生成的PTF文件)的 makefile。Nios II IDE中编译/链接设置的任何改变 都会自动映射到这个自动生成的makefile中。这些 设置可包括生成存储器初始化文件(MIF)的选项、 闪存内容、仿真器初始化文件(DAT/HEX)以及 profile总结文件的相关选项。
BSP (board support package)组成
硬件抽象层 (HAL)
HAL提供一个非线程的,类UNIX的C/C++ 运行环境。HAL 可以提供通用的I/O设备,允许用户newlib C 标准库的函数 编程来访问硬件,如printf ()。使用HAL可以最小化(或消 除)通过直接访问硬件的寄存器来控制外设和与外设通信。 Newlib C 标准库 Newlib是为了嵌入式系统的应用,而对C的标准库进行精简 的开源实现。包括一些常用的函数的集合,如printf()、 malloc()和open()等。
Nios II程序的构成
BSP工程 Nios II BSP工程是包含特定系统支持代码的特殊的库。 BSP为SOPC Builder系统的处理器提供定制的软件运行环 境。 Nios II EDS提供相应的工具可以修改设置以控制BSP的行 为。 Nios II IDE和Nios II IDE 开发流程文档中使用"system library" 来指代BSP。 BSP包括如下的组成部分: 硬件抽象层 (HAL) Newlib C 标准库 设备驱动 可选的软件包 可选的实时操作系统 (RTOS)
调试器
高级调试——除了上述基本调试功能之外,Nios II IDE调试器 还支持以下高级调试功能: 硬件断点调试ROM或闪存中的代码 数据触发 指令跟踪 Nios II IDE调试器通过JTAG调试模块和目标硬件相连。另 外,支持片外跟踪功能便于和第三方跟踪探测工具结合使用, 如FS2公司提供的用于Nios II处理器的in-target系统分析仪 (ISA-NIOS)。 调试信息查看——调试信息查看使用户可以访问本地变量、 寄存器、存储器、断点以及表达式赋值函数。 连接目标——Nios II IDE调试器能够连接多种目标。表6-1 列出了Nios II IDE中可用的目标连接。
Nios II程序的构成
应用工程 Nios II C/C++ 应用工程包括组成一个可执行的.elf 文件的源代码的集合。 一个典型的应用的特征是一个源文件包含main ()— —主函数。应用工程包括libraries和BSP中被调用 的函数的源代码。 库工程 库工程是一个库文件(.a)中的源代码的集合。 库文件中通常包含可重用的,通用的函数,这些函 数可被多个应用工程所共享。 比如,数学函数库。库工程没有main ()函数。