Nios-II-IDE的使用PPT课件_第1页
Nios-II-IDE的使用PPT课件_第2页
Nios-II-IDE的使用PPT课件_第3页
Nios-II-IDE的使用PPT课件_第4页
Nios-II-IDE的使用PPT课件_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 第六章软件设计流程和方法 2 第六章目录 6 1NiosIIIDE简介6 2软件开发流程6 3运行和调试程序6 4硬件抽象层库 HAL 6 5使用HAL开发应用程序6 6异常处理 3 6 1NiosIIIDE简介 NiosIIEDS EmbeddedDesignSuite 嵌入式开发包 提供了一个统一的开发平台 适用于所有NiosII处理器系统 仅仅通过一台PC机 一片Altera的FPGA以及一根JTAG下载电缆 软件开发人员就能够往NiosII处理器系统写入程序以及和NiosII处理器系统进行通讯 NiosII处理器的JTAG调试模块提供了使用JTAG下载线和NiosII处理器通信唯一的 统一的方法 无论是单处理器系统中的处理器 还是复杂多处理器系统中的处理器 对其的访问都是相同的 用户不必去自己建立访问嵌入式处理器的接口 4 6 1NiosIIIDE简介 NiosIIEDS提供了两种不同的设计流程 1 第一种开发流程是用户在集成开发环境NiosIIIDE中完成所有的工作 2 第二种开发流程是在命令行和脚本环境中使用NiosII软件生成工具 然后将工程导入到IDE中进行调试 NiosIIEDS包括很多生成NiosII程序的软件工具 还包括需要版权的软件工具和开源软件工具 如GNUC C 工具集 NiosIIEDS为基于NiosII的系统自动生成板支持包 boardsupportpackage BSP Altera的BSP包括Altera硬件抽象层 hardwareabstractionlayer HAL 可选的RTOS 设备驱动 BSP提供了C C 运行环境 使用户避免直接和硬件打交道 5 6 1NiosIIIDE简介 NiosII集成开发环境 IDE 是NiosII系列嵌入式处理器的基本软件开发工具 所有软件开发任务都可以在NiosIIIDE下完成 包括编辑 编译和调试程序 NiosIIIDE为软件开发提供四个主要的功能 1 工程管理器2 编辑器和编译器3 调试器4 闪存编程器 6 6 1NiosIIIDE简介 6 1 1工程管理器NiosIIIDE提供多个工程管理任务 加快嵌入式应用程序的开发进度 1 新工程向导 NiosIIIDE推出了一个新工程向导 用于自动建立C C 应用程序工程和系统库工程 采用新工程向导 能够轻松地在NiosIIIDE中创建新工程 如下图所示 7 8 6 1NiosIIIDE简介 2 软件工程模板除了工程创建向导 NiosIIIDE还以工程模板的形式提供了软件代码实例 帮助软件工程师尽快推出可运行的系统 每个模板包括一系列软件文件和工程设置 通过覆盖工程目录下的代码或者导入工程文件的方式 开发人员能够将自己的源代码添加到工程中 在上图中 新工程向导窗口 的下半部分分别是可选用的模板和模板的介绍 9 6 1NiosIIIDE简介 2 软件组件通过使用软件组件 开发人员能够快速地定制系统 软件组件 或者称为 系统软件 为开发人员提供了一个简单的方式来轻松地为特定目标硬件配置他们的系统 在上图中 新工程向导窗口 点击Next 会出现下图所示的系统库的创建 选择窗口 新建工程用到的组件会包含在系统库中 组件包括 1 NiosII运行库 或者称为硬件抽象层 HAL 2 轻量级IPTCP IP库3 MicroC OS II实时操作系统 RTOS 4 Altera压缩文件系统 10 11 6 1NiosIIIDE简介 6 1 2编辑器和编译器Altera sNiosIIIDE提供了一个全功能的源代码编辑器和C C 编译器 包括下面的几部分 1 文本编辑器 NiosIIIDE文本编辑器是一个成熟的全功能源文件编辑器 功能包括 语法高亮显示C C 代码辅助 代码协助完成 全面的搜索工具 文件管理 广泛的在线帮助主题和教程 引入辅助 快速定位 自动纠错 内置调试功能 12 13 6 1NiosIIIDE简介 2 C C 编译器NiosIIIDE为GCC编译器提供了一个图形化用户界面 NiosIIIDE编译环境使设计Altera的NiosII处理器软件更容易 它提供了一个易用的按钮式流程 同时允许开发人员手工设置高级编译选项 NiosIIIDE编译环境自动地生成一个基于用户特定系统配置 SOPCBuilder生成的PTF文件 的makefile NiosIIIDE中编译 链接设置的任何改变都会自动映射到这个自动生成的makefile中 这些设置可包括生成存储器初始化文件 MIF 的选项 闪存内容 仿真器初始化文件 DAT HEX 以及profile总结文件的相关选项 14 6 1NiosIIIDE简介 6 1 3调试器NiosIIIDE包含一个强大的 基于GNU调试器的软件调试器 GDB 该调试器提供了许多基本调试功能 以及一些在低成本处理器开发套件中不会经常用到的高级调试功能 1 基本调试功能 1 运行控制2 调用堆栈查看3 软件断点4 反汇编代码查看5 调试信息查看6 指令集仿真器 15 6 1NiosIIIDE简介 2 高级调试除了上述基本调试功能之外 NiosIIIDE调试器还支持以下高级调试功能 1 硬件断点调试ROM或闪存中的代码2 数据触发3 指令跟踪NiosIIIDE调试器通过JTAG调试模块和目标硬件相连 另外 支持片外跟踪功能便于和第三方跟踪探测工具结合使用 如FS2公司提供的用于NiosII处理器的in target系统分析仪 ISA NIOS 16 6 1NiosIIIDE简介 3 调试信息查看 调试信息查看使用户可以访问本地变量 寄存器 存储器 断点以及表达式赋值函数 4 连接目标 NiosIIIDE调试器能够连接多种目标 下表列出了NiosIIIDE中可用的目标连接 17 6 1NiosIIIDE简介 6 1 4闪存编程器许多使用NiosII处理器的设计都在单板上采用了闪存 可以用来存储FPGA配置数据和 或NiosII编程数据 NiosIIIDE提供了一个方便的闪存编程方法 任何连接到FPGA的兼容通用闪存接口 CFI 的闪存器件都可以通过NiosIIIDE闪存编程器来烧写 除CFI闪存之外 NiosIIIDE闪存编程器能够对连接到FPGA的任何Altera串行配置器件进行编程 NiosIIIDE闪存编程器具有易用的接口 NiosIIIDE闪存编程器已做了预先配置 能够用于NiosII开发套件中的所有单板 而且能够轻易地引入到用户硬件中 18 6 1NiosIIIDE简介 闪存编程器管理多种数据 下表显示了编程到闪存的通用内容类型 19 6 1NiosIIIDE简介 除了IDE中的这些工具之外 NiosIIEDS还包括如下的部分 1 GNU工具系列 NiosII编译器工具是基于标准的GNUgcc编译器 汇编器 连接器和make工具 2 指令集仿真器 NiosII指令仿真器 ISS 使得用户在目标硬件准备好之前就能开发程序 NiosIIIDE使得用户可以基于ISS运行开发的程序 就如同在真正的目标硬件上运行一样简单 3 设计实例 Nios IIED提供了软件实例和硬件设计来展示NiosII处理器和开发环境所具有的卓越的性能 20 6 2软件开发流程 6 2 1NiosII程序的构成每个NiosII程序包括一个应用工程 可选的库工程和一个板支持包工程 1 应用工程NiosIIC C 应用工程包括组成一个可执行的 elf文件的源代码的集合 应用工程包括libraries和BSP中被调用的函数的源代码 2 库工程库工程是一个库文件 a 中的源代码的集合 库文件中通常包含可重用的 通用的函数 这些函数可被多个应用工程所共享 21 6 2软件开发流程 3 BSP工程NiosIIBSP工程是包含特定系统支持代码的特殊的库 BSP为SOPCBuilder系统的处理器提供定制的软件运行环境 NiosIIEDS提供相应的工具修改设置以控制BSP的行为 NiosIIIDE和NiosIIIDE开发流程文档中使用 systemlibrary 来指代BSP BSP包括如下的组成部分 1 硬件抽象层 HAL 2 NewlibC标准库3 设备驱动4 可选的软件包5 可选的实时操作系统 RTOS 22 6 2软件开发流程 1 硬件抽象层 HAL HAL提供一个非线程的 类似UNIX的C C 运行环境 HAL可以提供通用的I O设备 允许用户用newlibC标准库的函数编程来访问硬件 如printf 使用HAL可以最小化 或消除 通过直接访问硬件的寄存器来控制外设和与外设通信 2 NewlibC标准库Newlib是为了嵌入式系统的应用 而对C的标准库进行精简的开源实现 包括一些常用的函数的集合 如printf malloc 和open 等 23 6 2软件开发流程 3 设备驱动每个设备驱动管理一个硬件设备 HAL为SOPCBuilder系统中的每一个需要驱动程序的设备实例化一个驱动程序 4 可选的选件包软件包是用户可以选择加入到BSP工程中 提供附加的功能的源代码 NiosIIIDE和NiosIIIDE设计流程文档使用 软件组件 来指代软件包 在NiosII软件开发环境中 软件包和库工程是不同的 软件包是BSP工程的一部分 不是一个单独的库工程 5 可选的实时操作系统 RTOS NiosIIEDS包含第三方的uC OS II实时操作系统 用户可以选择加入到BSP中 其它的操作系统可从第三方的软件厂商获得 24 6 2软件开发流程 6 2 2NiosIIIDE软件开发步骤NiosIIIDE是基于流行的EclipseIDE框架以及EclipseC C 开发工具 CDT 的插件 NiosIIIDE在后台运行其它的工具 对用户屏蔽了底层工具的细节 提供了一个统一的开发环境 借助工程的创建和配置向导 NiosIIIDE使用起来很容易 尤其是对NiosII的初学者帮助很大 Altera公司提供了Windows和Linux操作系统的NiosIIIDE 如果用户对编译进程和工程设置干预比较少 而且不需要定制的脚本 采用NiosIIIDE开发流程比较好 用户使用NiosIIIDE图形用户界面来创建 修改 编译 运行和调试NiosII程序 IDE创建和管理用户的makefile 25 6 2软件开发流程 下面以电子钟的软件开发为例来介绍软件开发的过程 1 新建IDE管理的工程NiosIIIDE提供了新工程的向导 指导用户创建IDE管理的工程 启动NiosIIIDE 出现NiosIIC C 的窗口 首先创建NiosIIC C 应用程序 在File菜单中选择newNiosIIC C Application 启动创建NiosIIC C 应用工程的向导 26 27 为新的NiosII工程命名 这里NiosII的工程名为digi clock 选择目标硬件 选择电子钟的硬件的系统的PTF文件 IDE根据该文件来建立系统库 选择新工程的模板 这里选择为BlankProject 单击 Next 28 在该窗口中 用户可以选择是创建一个新的系统库 或是利用已有的系统库 缺省的配置是新建一个系统库 点击Finish之后 NiosIIIDE创建新的工程 IDE也创建了系统库工程 syslib 29 这些工程出现在IDE工作台的NiosIIC C 工程视图中 digi clock为C C 工程 digi clock syslib SOPC 为系统库工程 30 建立C的源文件 首先选中digi clock工程 然后单击右键 在弹出菜单选择New SourceFile 用户也可以选择File菜单 New SourceFile 31 输入源程序的文件名 本例取名为digi clock c 注意一定要加上后缀名 点击Finish完成 采用同样的步骤来建立头文件 最后选择HeadFile即可 将头文件命名为digi clock h 32 6 2软件开发流程 2 编译工程和管理工程对源程序和头文件编辑完成之后 对工程进行编译 编译的方法是右键单击digi clock工程 然后在弹出菜单中选择BuildProject 如右图 或者选择Project菜单Build Project 编译成功后 在工程下面会出现一个Binaries的目录 其中有一个可执行的文件digi clock elf 编译中出现的错误和警告 IDE会在窗口给出 用户根据系统提供的信息进行修改 在菜单中 用户还可以对工程一些重要的选项进行设置 有如下的一些设置 Properties 主要是管理工程和硬件以及其它工程的关联 SystemLibraryProperties 管理硬件的特定设置 比如通信设备 存储器的分配 RunAs 管理程序是在硬件上运行 还是在指令仿真器环境下运行 DebugAs 管理是在硬件上调试程序 还是在指令仿真器环境下 33 1 Properties设置在上图中点击Properties出现下图的窗口 该窗口的为Info页 显示的该工程的一些信息 不用设置 还有其它的页也无须设置 这里重点介绍C C Build页 C C Indexer页 点击C C Build 34 在该窗口中 用户关心的选项有Configuration下拉列表框 ToolSettings选项卡 Configuration下拉列表框选择编译工程时采用调试模式 Debug 还是发布 Release 模式 不同的模式对应不同的编译器设置 优化级别和调试级别都可能不同 用户也可以自己来设置编译器的优化级别和调试级别 如下图中的ToolsSettings页中的NiosIICompiler的General栏 选用Release模式能很大程度减小程序空间并提高程序的执行性能 35 在Properties窗口中点击C C Indexer 出现如下图所示的窗口 在该窗口中 用户在AvailableIndexers下拉列表框中 可以选择可用的检索器 这里有三个选项 第一个选项是不使用Indexer 第二个选项是FastC C Indexer 第三个是FullC C Indexer 各种Indexer的特点也给出了说明 借助于检索器 用户可以方便地找到程序文件中的相关信息 36 2 SystemLibraryProperties的设置在工程的弹出菜单中点击SystemLibraryProperties 出现下图的窗口 37 6 3运行和调试程序 调试 运行程序之前要把嵌入式系统的硬件系统下载到FPGA中 程序的调试可以发生在下面的环境 NiosIIHardware NiosII硬件 NiosIIInstructionSetSimulator NiosII指令集仿真器NiosII程序的运行可以发生在下面的环境 NiosIIHardware NiosII硬件 NiosIIInstructionSetSimulator NiosII指令集仿真器 NiosIIModelSim 在ModelSim软件环境下运行 想要在哪个环境下调试和运行只要通过鼠标右键单击NiosII工程 然后在弹出的菜单中选择DebugAs RunAs 再选择相应的环境 用户还可以通过选择Run DebugAs RunAs来实现同样的功能 38 39 6 3运行和调试程序 6 3 1调试 运行环境设置但是在调试 运行程序之前 必须先对上述的调试 运行环境进行设置 方法是选择Run菜单 Debug Run 出现下图的窗口 在窗口中 选中NiosIIHardware 双击或者点击快捷图标Newlaunchconfiguration 就新建了一个硬件调试配置 对NiosII指令集仿真器有同样的方法 40 配置的首页是Main配置页 用户一般不用修改 选择TargetConnection配置页 出现相应的窗口 41 JTAGCable 进行JTAG下载电缆的选择 当只有一个下载电缆时 会自动选择 无需设置 当有多个下载电缆时 用户手动进行选择 JTAGDevice 进行连接在JTAG链上的FPGA器件的选择 本例只有一个器件 用户不用选择 当具有多个器件时 用户必须手动进行选择 NiosIITerminalcommunicationdevice 进行NiosII系统终端通信设备选择 本例选择jtag uart 42 6 3运行和调试程序 6 3 2调试 运行程序进行完调试和运行环境的设置之后 调试和运行程序只要点击Run菜单 然后选择RunAs DebugAs 再选择相应的运行 调试环境 如NiosIIHaredware 控制台会显示调试和运行程序的信息 43 6 3运行和调试程序 6 3 3下载程序到Flash用户可以将软件文件 FPGA配置文件和数据文件存储到flash存储器中 对flash存储器编程能够使硬件在启动时从flash装载软件和FPGA的配置 用户可以使用NiosIIIDEflashprogrammer编程连接到FPGA的flash存储器 用户使用flashprogrammer配置来管理flash存储器的编程 flashprogrammer配置是影响特定的目标硬件的flash编程进程的一组设置 用户可以创建多个flashprogrammer配置 每一个具有自己的编程参数 如果用户在多个目标板上开发项目时很有帮助 用户也可以建立一个flashprogrammer配置对文件的组合 包括多个文件 进行编程 44 6 3运行和调试程序 1 打开flashprogrammer 创建flashprogrammer配置在Tools菜单中 点击FlashProgrammer 出现FlashProgrammer对话窗口 在配置列表中右键单击FlashProgrammer

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论