《嵌入式技术概述NIOSII处理器系统的软件设计流程和方法课件.ppt》由会员分享,可在线阅读,更多相关《嵌入式技术概述NIOSII处理器系统的软件设计流程和方法课件.ppt(43页珍藏版)》请在三一办公上搜索。
1、嵌入式技术概述 NIOS 处理器系统的软件设计流程和方法,刘兰军,9/24/2022,嵌入式技术概述 NIOS 处理器系统的软件设计流程,NIOS II 处理器系统开发平台,NiosII EDS(Embedded Design Suite,嵌入式开发包)NiosII EDS: 统一的软件开发平台,适用于所 有NiosII处理器系统 自动生成NIOSII系统板支持包BSP, BSP包括硬件抽象层HAL、可选的 RTOS、设备驱动,9/24/2022,2,NIOS II 处理器系统开发平台NiosII EDS(,NIOS II 处理器系统开发平台,NiosII 处理器系统开发方法NiosII ED
2、S提供两种开发方法:1)基于集成开发环境NiosII IDE完成系统软件开发2)基于命令行和脚本环境进行系统软件开发,然 后将工程导入到NiosII IDE中进行调试,9/24/2022,3,NIOS II 处理器系统开发平台NiosII 处理器系,NIOS II 处理器系统开发平台,命令行开发环境,集成开发环境,9/24/2022,4,NIOS II 处理器系统开发平台9/24/20224,NIOS II IDE 简介,Nios II IDE:基于开放式的、可扩展的Eclipse IDE以及Eclipse C/C+ 开发工具Nios II系列嵌入式处理器的基本软件开发工具,为Nios II处
3、理器系统软件开发提供的主要功能:工程管理器编辑器和编译器调试器闪存编程器,9/24/2022,5,NIOS II IDE 简介Nios II IDE:9/,NIOS II IDE 简介,Nios II IDE工程管理器1)新建工程向导Nios II IDE集成了一个新建工程向导,用于自动建立C/C+应用程序工程和系统库工程,9/24/2022,6,NIOS II IDE 简介Nios II IDE工,NIOS II IDE 简介,Nios II IDE工程管理器2)软件工程模板Nios II IDE以工程模板的形式提供了软件代码实例,软件模板,软件模板介绍,9/24/2022,7,NIOS I
4、I IDE 简介Nios II IDE工,NIOS II IDE 简介,Nios II IDE工程管理器3)软件组件(系统软件)Nios II IDE自动生成开发人员快速定制系统所需的软件组件(系统软件),自动生成的软件组件放在系统库中,包括:NiosII运行库(硬件抽象层HAL)轻量级TCP/IP库MicroC/OS-II实时操作系统(RTOS)Altrea压缩文件系统,9/24/2022,8,NIOS II IDE 简介Nios II IDE工,NIOS II IDE 简介,Nios II IDE编辑器和编译器1)文本编辑器NiosII IDE 文本编辑器是一个成熟的全功能源文件编辑器:工
5、程文件管理语法高亮显示C/C+代码辅助/代码协助完成全面的搜索工具自动纠错内置调试功能广泛的在线帮助主题和教程,9/24/2022,9,NIOS II IDE 简介Nios II IDE编,NIOS II IDE 简介,Nios II IDE编辑器和编译器1)文本编辑器,9/24/2022,10,NIOS II IDE 简介Nios II IDE编,NIOS II IDE 简介,Nios II IDE编辑器和编译器2)C/C+编译器 Nios II IDE为GCC编译器提供一个图形化用户界面,提供一个易用的按钮式流程,同时允许开发人员设置高级编译选项 Nios II IDE编译环境自动地生成一
6、个基于用户特定系统配置(SOPC Builder生成的PTF文件)的makefile,Nios II IDE中编译/链接设置的任何改变都会自动映射到该makefile中,设置包括生成存储器初始化文件(MIF)的选项、闪存内容、仿真器初始化文件(DAT/HEX)、Profile概况文件的相关选项。,9/24/2022,11,NIOS II IDE 简介Nios II IDE编,NIOS II IDE 简介,Nios II IDE编辑器和编译器3)调试器 Nios II IDE包含一个基于GNU调试器的软件调试器GDB:基本调试功能:运行控制、调用堆栈查看、软件断点、反汇编代 码查看、调试信息查看
7、、指令集仿真器高级调试功能:硬件断点调试ROM或闪存中的代码、数据触 发、指令跟踪,调试信息查看功能:用户可以访问本地变量、寄存器、存储器、断点以及表达式赋值函数等,9/24/2022,12,NIOS II IDE 简介Nios II IDE编,NIOS II IDE 简介,Nios II IDE编辑器和编译器3)调试器 NiosII IDE 调试器连接的目标包括,9/24/2022,13,NIOS II IDE 简介Nios II IDE编,NIOS II IDE 简介,Nios II IDE编辑器和编译器4)闪存编程器 Nios II处理器系统的闪存用于存储FPGA配置数据、Nios II
8、编程数据、系统参数数据等。Nios II IDE提供的闪存编程器可烧写的闪存包括: 1)任何连接到FPGA的兼容通用闪存接口(CFI)闪存器件2)任何Altera串行配置器件,9/24/2022,14,NIOS II IDE 简介Nios II IDE编,NIOS II IDE 简介,Nios II IDE编辑器和编译器4)闪存编程器 利用闪存编程器可编程到闪存的通用内容类型,9/24/2022,15,NIOS II IDE 简介Nios II IDE编,基于NIOS II IDE的NIOSII软件开发流程,Nios II 程序的构成,9/24/2022,16,基于NIOS II IDE的NI
9、OSII软件开发流程Ni,基于NIOS II IDE的NIOSII软件开发流程,Nios II 程序的构成-BSP工程1)硬件抽象层 (HAL)HAL提供一个非线程的、类似UNIX的C/C+ 运行环境;HAL可以提供通用的I/O设备,允许用户采用newlib C 标准库函数编程来访问硬件,如printf ();使用HAL可以尽量避免通过直接访问硬件的寄存器来控制外设和与外设通信。2)Newlib C标准库Newlib是为了嵌入式系统的应用,而对C标准库进行精简的开源实现,包括一些常用的函数,如printf()、malloc()和open()等。3)设备驱动每个设备驱动管理一个硬件设备。HAL为
10、SOPC Builder系统中的每一个需要驱动程序的设备实例化一个驱动程序。一个设备驱动是和一个特定的SOPC Builder设备相关联的;驱动程序有一些设置可以影响驱动程序的编译,这些设置包含在BSP的设置中。,9/24/2022,17,基于NIOS II IDE的NIOSII软件开发流程Ni,基于NIOS II IDE的NIOSII软件开发流程,Nios II 程序的构成-BSP工程4)可选的软件包软件包是用户可以选择加入到BSP工程中,提供附加功能的源代码。如Nios II 版本的Nich Stack TCP/IP协议栈。Nios II IDE和Nios II IDE设计流程文档使用软件
11、组件来指代软件包。软件包和特定的硬件没有关联; 软件包有一些设置会影响其编译,这些设置包含在BSP的设置中。5)可选的实时操作系统(RTOS) Nios II EDS包含了一个第三方的C/OS-II 实时操作系统,用户可以选择加入到 BSP中。C/OS-II基于HAL,实现了一个简单的调度程序。用户可以修改设 置,这些设置包含在BSP设置中。,9/24/2022,18,基于NIOS II IDE的NIOSII软件开发流程Ni,基于NIOS II IDE的NIOSII软件开发流程,Nios II IDE软件开发步骤开发人员:使用Nios II IDE图形用户界面创建、修改、编译、运行和调试Nio
12、s II程序,对编译进程和工程设置干预较少,而且不需要定制的脚本。NIOSII IDE:IDE创建和管理用户的makefile。,9/24/2022,19,基于NIOS II IDE的NIOSII软件开发流程Ni,基于NIOS II IDE的NIOSII软件开发流程,Nios II IDE软件开发步骤1)新建工程启动Nios II IDE,出现Nios II C/C+的窗口,9/24/2022,20,基于NIOS II IDE的NIOSII软件开发流程Ni,基于NIOS II IDE的NIOSII软件开发流程,Nios II IDE软件开发步骤1)新建工程,工程命名,目标系统,IDE据此创建系
13、统库,NIOSII处理器,选择工程模板,9/24/2022,21,基于NIOS II IDE的NIOSII软件开发流程Ni,基于NIOS II IDE的NIOSII软件开发流程,Nios II IDE软件开发步骤1)新建工程,选择创建一个新系统库还是利用已有的系统库,9/24/2022,22,基于NIOS II IDE的NIOSII软件开发流程Ni,基于NIOS II IDE的NIOSII软件开发流程,Nios II IDE软件开发步骤1)新建工程,应用工程:C/C+工程,系统库工程,9/24/2022,23,基于NIOS II IDE的NIOSII软件开发流程Ni,基于NIOS II IDE
14、的NIOSII软件开发流程,Nios II IDE软件开发步骤1)新建工程:建立C源文件,选中digi_clock工程,单击右键,在弹出菜单选择NewSource File,也可以选择File菜单New Source File,如果在工程创建时选择特定的工程模板,则只需要对模板文件进行修改,9/24/2022,24,基于NIOS II IDE的NIOSII软件开发流程Ni,基于NIOS II IDE的NIOSII软件开发流程,Nios II IDE软件开发步骤1)新建工程:建立C源文件,选中digi_clock工程,单击右键,在弹出菜单选择NewSource File,也可以选择File菜单N
15、ew Source File,一定要加上后缀名.C,9/24/2022,25,基于NIOS II IDE的NIOSII软件开发流程Ni,基于NIOS II IDE的NIOSII软件开发流程,Nios II IDE软件开发步骤2)编译工程和管理工程:右键单击digi_clock工程,在弹出菜单中选择Build Project,或者选择Project菜单Build Project。,管理硬件的特定设置,比如通信设备、存储器的分配等,管理是在硬件上调试程序,还是在指令仿真器环境下调试,管理工程和硬件以及其他工程的关联,管理程序是在硬件上运行,还是在指令仿真器环境下运行,9/24/2022,26,基于
16、NIOS II IDE的NIOSII软件开发流程Ni,基于NIOS II IDE的NIOSII软件开发流程,Nios II IDE软件开发步骤2)编译工程和管理工程: Properties设置。,主要设置C/C+ Build和C/C+ Indexer,9/24/2022,27,基于NIOS II IDE的NIOSII软件开发流程Ni,基于NIOS II IDE的NIOSII软件开发流程,Nios II IDE软件开发步骤2)编译工程和管理工程: Properties设置。,C/C+ Build:设置工程编译针对调试模式还是发布模式,设置编译的优化、调试等级,9/24/2022,28,基于NIO
17、S II IDE的NIOSII软件开发流程Ni,基于NIOS II IDE的NIOSII软件开发流程,Nios II IDE软件开发步骤2)编译工程和管理工程: Properties设置。,选择可用的检索器:不使用Indexer、Fast C/C+ Indexer、Full C/C+ Indexer,借助于检索器,可以方便地找到程序文件中的相关信息,9/24/2022,29,基于NIOS II IDE的NIOSII软件开发流程Ni,基于NIOS II IDE的NIOSII软件开发流程,Nios II IDE软件开发步骤2)编译工程和管理工程: System Library Properties
18、设置。,选择是否使用实时操作系统(RTOS),选择NiosII系统的标准输出、错误、输入设备,采用标准函数是控制I/O设备的最简单方法,选择系统时钟驱动所用的定时器,采用操作系统时,必须定义一个系统时钟,选择时间戳驱动所用的定时器,与系统时钟不能使用同一定时器,指定能够被字符设备或文件子系统打开访问的最大文件数,默认为32,9/24/2022,30,基于NIOS II IDE的NIOSII软件开发流程Ni,基于NIOS II IDE的NIOSII软件开发流程,Nios II IDE软件开发步骤2)编译工程和管理工程: System Library Properties设置。,选中,系统库中省略
19、exit(),选中,系统库从main()返回时先清I/O缓冲区,再调用exit(),9/24/2022,31,基于NIOS II IDE的NIOSII软件开发流程Ni,基于NIOS II IDE的NIOSII软件开发流程,Nios II IDE软件开发步骤2)编译工程和管理工程: System Library Properties设置。,指定程序运行的物理存储器,指定只读数据驻留的物理存储器,指定可读/写数据驻留的物理存储器,指定堆驻留的物理存储器,用于存储全局变量,指定栈驻留的物理存储器,用于存储局部变量,选定该项,异常堆栈将驻留在一个单独的物理存储器中,指定异常堆栈驻留的物理存储器,指定异
20、常堆栈的最大存储空间,9/24/2022,32,基于NIOS II IDE的NIOSII软件开发流程Ni,基于NIOS II IDE的NIOSII软件开发流程,Nios II IDE软件开发步骤3)运行和调试程序: 运行和调试程序之前要把NIOS II系统硬件下载到FPGA中。 Nios II程序的调试环境:1)Nios II HardwareNios II硬件。2)Nios II Instruction Set SimulatorNios II指令集仿真器。 Nios II程序的运行环境:1)Nios II HardwareNios II硬件。2)Nios II Instruction Se
21、t SimulatorNios II指令集仿真器。3)Nios II ModelSim在ModelSim软件环境下运行。,9/24/2022,33,基于NIOS II IDE的NIOSII软件开发流程Ni,基于NIOS II IDE的NIOSII软件开发流程,Nios II IDE软件开发步骤3)运行和调试程序: 运行和调试程序之前要把NIOS系统硬件下载到FPGA中。,9/24/2022,34,基于NIOS II IDE的NIOSII软件开发流程Ni,基于NIOS II IDE的NIOSII软件开发流程,Nios II IDE软件开发步骤3)运行和调试程序: 运行和调试程序之前要把NIOS系
22、统硬件下载到FPGA中。,9/24/2022,35,基于NIOS II IDE的NIOSII软件开发流程Ni,基于NIOS II IDE的NIOSII软件开发流程,Nios II IDE软件开发步骤3)运行和调试程序 运行和调试环境的设置:选择Run菜单Debug/Run,主要设置Target connection和Debugger,9/24/2022,36,基于NIOS II IDE的NIOSII软件开发流程Ni,基于NIOS II IDE的NIOSII软件开发流程,Nios II IDE软件开发步骤3)运行和调试程序,9/24/2022,37,基于NIOS II IDE的NIOSII软件开
23、发流程Ni,基于NIOS II IDE的NIOSII软件开发流程,Nios II IDE软件开发步骤3)运行和调试程序,将调试器和控制台附加到硬件中的程序的后面,9/24/2022,38,基于NIOS II IDE的NIOSII软件开发流程Ni,基于NIOS II IDE的NIOSII软件开发流程,Nios II IDE软件开发步骤3)运行和调试程序进行完调试和运行环境的设置之后,只要点击Run菜单,然后选择Run As/Debug As,再选择相应的运行/调试环境,如Nios II Haredware,即可开始调试和运行程序,控制台会显示调试和运行程序的信息。,9/24/2022,39,基于
24、NIOS II IDE的NIOSII软件开发流程Ni,基于NIOS II IDE的NIOSII软件开发流程,Nios II IDE软件开发步骤4)下载程序到Flash用户可以将软件文件、FPGA配置文件、数据文件存储到flash存储器中。对flash存储器编程能够使硬件在启动的时从flash装载软件和FPGA的配置。用户可以使用NiosII IDE flash programmer编程连接到FPGA的flash存储器。,9/24/2022,40,基于NIOS II IDE的NIOSII软件开发流程Ni,基于NIOS II IDE的NIOSII软件开发流程,Nios II IDE软件开发步骤4)
25、下载程序到Flash:在Tools菜单中,点击Flash Programmer.,出现Flash Programmer 对话窗,在配置列表中右键单击Flash Programmer,然后在弹出菜单中单击New,一个新的flash programmer 配置出现,9/24/2022,41,基于NIOS II IDE的NIOSII软件开发流程Ni,基于NIOS II IDE的NIOSII软件开发流程,Nios II IDE软件开发步骤4)下载程序到Flash,9/24/2022,42,基于NIOS II IDE的NIOSII软件开发流程Ni,基于NIOS II IDE的NIOSII软件开发流程,Nios II IDE软件开发步骤4)下载程序到Flash:,9/24/2022,43,基于NIOS II IDE的NIOSII软件开发流程Ni,