




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2020/6/10,嵌入式技术概述NIOS处理器系统的软件设计流程和方法,刘兰军,2020/6/10,2,NIOSII处理器系统开发平台,NiosIIEDS(EmbeddedDesignSuite,嵌入式开发包)NiosIIEDS:统一的软件开发平台,适用于所有NiosII处理器系统自动生成NIOSII系统板支持包BSP,BSP包括硬件抽象层HAL、可选的RTOS、设备驱动,2020/6/10,3,NIOSII处理器系统开发平台,NiosII处理器系统开发方法NiosIIEDS提供两种开发方法:1)基于集成开发环境NiosIIIDE完成系统软件开发2)基于命令行和脚本环境进行系统软件开发,然后将工程导入到NiosIIIDE中进行调试,2020/6/10,4,NIOSII处理器系统开发平台,命令行开发环境,集成开发环境,2020/6/10,5,NIOSIIIDE简介,NiosIIIDE:基于开放式的、可扩展的EclipseIDE以及EclipseC/C+开发工具NiosII系列嵌入式处理器的基本软件开发工具,为NiosII处理器系统软件开发提供的主要功能:工程管理器编辑器和编译器调试器闪存编程器,2020/6/10,6,NIOSIIIDE简介,NiosIIIDE工程管理器1)新建工程向导NiosIIIDE集成了一个新建工程向导,用于自动建立C/C+应用程序工程和系统库工程,2020/6/10,7,NIOSIIIDE简介,NiosIIIDE工程管理器2)软件工程模板NiosIIIDE以工程模板的形式提供了软件代码实例,软件模板,软件模板介绍,2020/6/10,8,NIOSIIIDE简介,NiosIIIDE工程管理器3)软件组件(系统软件)NiosIIIDE自动生成开发人员快速定制系统所需的软件组件(系统软件),自动生成的软件组件放在系统库中,包括:NiosII运行库(硬件抽象层HAL)轻量级TCP/IP库MicroC/OS-II实时操作系统(RTOS)Altrea压缩文件系统,2020/6/10,9,NIOSIIIDE简介,NiosIIIDE编辑器和编译器1)文本编辑器NiosIIIDE文本编辑器是一个成熟的全功能源文件编辑器:工程文件管理语法高亮显示C/C+代码辅助/代码协助完成全面的搜索工具自动纠错内置调试功能广泛的在线帮助主题和教程,2020/6/10,10,NIOSIIIDE简介,NiosIIIDE编辑器和编译器1)文本编辑器,2020/6/10,11,NIOSIIIDE简介,NiosIIIDE编辑器和编译器2)C/C+编译器NiosIIIDE为GCC编译器提供一个图形化用户界面,提供一个易用的按钮式流程,同时允许开发人员设置高级编译选项NiosIIIDE编译环境自动地生成一个基于用户特定系统配置(SOPCBuilder生成的PTF文件)的makefile,NiosIIIDE中编译/链接设置的任何改变都会自动映射到该makefile中,设置包括生成存储器初始化文件(MIF)的选项、闪存内容、仿真器初始化文件(DAT/HEX)、profile总结文件的相关选项。,2020/6/10,12,NIOSIIIDE简介,NiosIIIDE编辑器和编译器3)调试器NiosIIIDE包含一个基于GNU调试器的软件调试器GDB:基本调试功能:运行控制、调用堆栈查看、软件断点、反汇编代码查看、调试信息查看、指令集仿真器高级调试功能:硬件断点调试ROM或闪存中的代码、数据触发、指令跟踪,调试信息查看功能:用户可以访问本地变量、寄存器、存储器、断点以及表达式赋值函数等,2020/6/10,13,NIOSIIIDE简介,NiosIIIDE编辑器和编译器3)调试器NiosIIIDE包含一个基于GNU调试器的软件调试器GDB:NiosIIIDE调试器连接的目标包括,2020/6/10,14,NIOSIIIDE简介,NiosIIIDE编辑器和编译器4)闪存编程器NiosII处理器系统的闪存用于存储FPGA配置数据、NiosII编程数据、系统参数数据等。NiosIIIDE提供的闪存编程器可烧写的闪存包括:1)任何连接到FPGA的兼容通用闪存接口(CFI)闪存器件2)任何Altera串行配置器件,2020/6/10,15,NIOSIIIDE简介,NiosIIIDE编辑器和编译器4)闪存编程器利用闪存编程器可编程到闪存的通用内容类型,2020/6/10,16,基于NIOSIIIDE的NIOSII软件开发流程,NiosII程序的构成,2020/6/10,17,基于NIOSIIIDE的NIOSII软件开发流程,NiosII程序的构成-BSP工程1)硬件抽象层(HAL)HAL提供一个非线程的、类似UNIX的C/C+运行环境;HAL可以提供通用的I/O设备,允许用户采用newlibC标准库函数编程来访问硬件,如printf();使用HAL可以尽量避免通过直接访问硬件的寄存器来控制外设和与外设通信。2)NewlibC标准库Newlib是为了嵌入式系统的应用,而对C标准库进行精简的开源实现,包括一些常用的函数,如printf()、malloc()和open()等。3)设备驱动每个设备驱动管理一个硬件设备。HAL为SOPCBuilder系统中的每一个需要驱动程序的设备实例化一个驱动程序。一个设备驱动是和一个特定的SOPCBuilder设备相关联的;驱动程序有一些设置可以影响驱动程序的编译,这些设置包含在BSP的设置中。,2020/6/10,18,基于NIOSIIIDE的NIOSII软件开发流程,NiosII程序的构成-BSP工程4)可选的软件包软件包是用户可以选择加入到BSP工程中,提供附加功能的源代码。如NiosII版本的NichStackTCP/IP协议栈。NiosIIIDE和NiosIIIDE设计流程文档使用软件组件来指代软件包。软件包和特定的硬件没有关联;软件包有一些设置会影响其编译,这些设置包含在BSP的设置中。5)可选的实时操作系统(RTOS)NiosIIEDS包含了一个第三方的C/OS-II实时操作系统,用户可以选择加入到BSP中。C/OS-II基于HAL,实现了一个简单的调度程序。用户可以修改设置,这些设置包含在BSP设置中。,2020/6/10,19,基于NIOSIIIDE的NIOSII软件开发流程,NiosIIIDE软件开发步骤采用NiosIIIDE开发NiosII处理器软件:用户使用NiosIIIDE图形用户界面创建、修改、编译、运行和调试NiosII程序。IDE创建和管理用户的makefile,用户对编译进程和工程设置干预较少,而且不需要定制的脚本。,2020/6/10,20,基于NIOSIIIDE的NIOSII软件开发流程,NiosIIIDE软件开发步骤1)新建工程启动NiosIIIDE,出现NiosIIC/C+的窗口,2020/6/10,21,基于NIOSIIIDE的NIOSII软件开发流程,NiosIIIDE软件开发步骤1)新建工程,工程命名,目标系统,IDE据此创建系统库,NIOSII处理器,选择工程模板,2020/6/10,22,基于NIOSIIIDE的NIOSII软件开发流程,NiosIIIDE软件开发步骤1)新建工程,选择创建一个新系统库还是利用已有的系统库,2020/6/10,23,基于NIOSIIIDE的NIOSII软件开发流程,NiosIIIDE软件开发步骤1)新建工程,应用工程:C/C+工程,系统库工程,2020/6/10,24,基于NIOSIIIDE的NIOSII软件开发流程,NiosIIIDE软件开发步骤1)新建工程:建立C源文件,选中digi_clock工程,单击右键,在弹出菜单选择NewSourceFile,也可以选择File菜单NewSourceFile,如果在工程创建时选择特定的工程模板,则只需要对模板文件进行修改,2020/6/10,25,基于NIOSIIIDE的NIOSII软件开发流程,NiosIIIDE软件开发步骤1)新建工程:建立C源文件,选中digi_clock工程,单击右键,在弹出菜单选择NewSourceFile,也可以选择File菜单NewSourceFile,一定要加上后缀名.C,2020/6/10,26,基于NIOSIIIDE的NIOSII软件开发流程,NiosIIIDE软件开发步骤2)编译工程和管理工程:右键单击digi_clock工程,在弹出菜单中选择BuildProject,或者选择Project菜单BuildProject。,主要是管理工程和硬件以及其他工程的关联,管理硬件的特定的设置,比如通信设备、存储器的分配等,管理程序是在硬件上运行,还是在指令仿真器环境下运行,管理是在硬件上调试程序,还是在指令仿真器环境下调试,2020/6/10,27,基于NIOSIIIDE的NIOSII软件开发流程,NiosIIIDE软件开发步骤2)编译工程和管理工程:Properties设置。,主要设置C/C+Build和C/C+Indexer,2020/6/10,28,基于NIOSIIIDE的NIOSII软件开发流程,NiosIIIDE软件开发步骤2)编译工程和管理工程:Properties设置。,C/C+Build:设置工程编译针对调试模式还是发布模式,设置编译的优化、调试等级,2020/6/10,29,基于NIOSIIIDE的NIOSII软件开发流程,NiosIIIDE软件开发步骤2)编译工程和管理工程:Properties设置。,选择可用的检索器:不使用Indexer、FastC/C+Indexer、FullC/C+Indexer,借助于检索器,可以方便地找到程序文件中的相关信息,2020/6/10,30,基于NIOSIIIDE的NIOSII软件开发流程,NiosIIIDE软件开发步骤2)编译工程和管理工程:SystemLibraryProperties设置。,选择是否使用实时操作系统(RTOS),选择NiosII系统的标准输出、错误、输入设备,采用标准函数是控制I/O设备的最简单方法,选择系统时钟驱动所用的定时器,采用操作系统时,必须定义一个系统时钟,选择时间戳驱动所用的定时器,与系统时钟不能使用同一定时器,指定能够被字符设备或文件子系统打开访问的最大文件数,默认为32,2020/6/10,31,基于NIOSIIIDE的NIOSII软件开发流程,NiosIIIDE软件开发步骤2)编译工程和管理工程:SystemLibraryProperties设置。,选中,系统库中省略exit(),选中,系统库从main()返回时先清I/O缓冲区,再调用exit(),2020/6/10,32,基于NIOSIIIDE的NIOSII软件开发流程,NiosIIIDE软件开发步骤2)编译工程和管理工程:SystemLibraryProperties设置。,指定程序运行的物理存储器,指定只读数据驻留的物理存储器,指定可读/写数据驻留的物理存储器,指定堆驻留的物理存储器,用于存储全局变量,指定栈驻留的物理存储器,用于存储局部变量,选定该项,异常堆栈将驻留在一个单独的物理存储器中,指定异常堆栈驻留的物理存储器,指定异常堆栈的最大存储空间,2020/6/10,33,基于NIOSIIIDE的NIOSII软件开发流程,NiosIIIDE软件开发步骤3)运行和调试程序:运行和调试程序之前要把NIOS系统硬件下载到FPGA中。NiosII程序的调试环境:1)NiosIIHardwareNiosII硬件。2)NiosIIInstructionSetSimulatorNiosII指令集仿真器。NiosII程序的运行环境:1)NiosIIHardwareNiosII硬件。2)NiosIIInstructionSetSimulatorNiosII指令集仿真器。3)NiosIIModelSim在ModelSim软件环境下运行。,2020/6/10,34,基于NIOSIIIDE的NIOSII软件开发流程,NiosIIIDE软件开发步骤3)运行和调试程序:运行和调试程序之前要把NIOS系统硬件下载到FPGA中。,2020/6/10,35,基于NIOSIIIDE的NIOSII软件开发流程,NiosIIIDE软件开发步骤3)运行和调试程序运行和调试环境的设置:选择Run菜单Debug/Run,主要设置Targetconnection和Debugger,2020/6/10,36,基于NIOSIIIDE的NIOSII软件开发流程,NiosIIIDE软件开发步骤3)运行和调试程序,2020/6/10,37,基于NIOSIIIDE的NIOSII软件开发流程,NiosIIIDE软件开发步骤3)运行和调试程序,2020/6/10,38,基于NIOSIIIDE的NIOSII软件开发流程,NiosIIIDE软件开发步骤3)运行和调试程序进行完调试和运行环境的设置之后,只要点击Run菜单,然后选择RunAs/DebugAs,再选择相应的运行/调试环境,如NiosIIHaredware,即可开始调试和运行程序,控制台会显示调试和运行程序的信息。,2020/6/10,39,基于NIOSIIIDE的NIOSII软件开发流程,NiosIIIDE软件开发步骤4)下载程序到Flash用户可以将软件文件、FPGA配置文件、数据文件存储到flash存储器中。对flash存储器编程能够使硬件在启动的时从flash装载软件和FPGA的配置。用户可以使用NiosIIIDEflashprogrammer编程连接到FPGA的flash存储器。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医疗机构医疗废物综合管理考核试题及答案
- 2025年药物临床试验及伦理相关知识培训试题及答案
- 2024年劳务员之劳务员基础知识模考模拟试题【附答案】
- 树的速写课件
- 重症护理知识考核试题及答案
- 临床护理技术操作常见并发症预防及处理习题(有答案)
- 2025年国家网络安全宣传周知识竞赛题库(试题及答案)
- (2025)全国安全生产月《安全知识》必刷题库及答案
- 宿舍安全知识竞赛题库(含答案)
- 2025年夏季消防安全知识竞赛试题库及答案
- 广州市越秀区招聘卫生健康系统事业单位事业编制人员考试真题2024
- 2025年广西专业技术人员继续教育公需科目(三)答案
- GB/T 13912-2020金属覆盖层钢铁制件热浸镀锌层技术要求及试验方法
- 压型钢板组合楼板设计计算表格
- Q∕SY 1535-2012 海底管道混凝土配重层技术规范
- T∕CADERM 2002-2018 胸痛中心(基层版)建设与评估标准
- 项目评审检查清单(质量阀)
- 新建搅拌站策划方案样本21
- 工厂验货报告模板
- 建筑模板生产项目建议书范文
- 钢筋开料表(自动计算)
评论
0/150
提交评论