软件设计流程和方法实用教案_第1页
软件设计流程和方法实用教案_第2页
软件设计流程和方法实用教案_第3页
软件设计流程和方法实用教案_第4页
软件设计流程和方法实用教案_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

1、6.1 Nios II IDE简介(jin ji)Nios II IDE为软件开发提供4个主要功能:一、工程管理二、编辑器和编译器三、调试器四、闪存编程器统一开发平台(pngti),用于所有Nios II处理器系统。第1页/共34页第一页,共34页。n硬件抽象(chuxing)层系统库(HAL)n轻量级IP TCP/IP库nuC/OS-II实时操作系统(RTOS)nAltera压缩文件系统一 工程(gngchng)管理器二 新工程(gngchng)向导三 软件工程(gngchng)模板四 软件组件6.1 Nios II IDE简介(jin ji)新工程向导(对话框位置:对话框位置:FileNe

2、wC/C+ Application )工程模板工程命名指定硬件系统模板功能介绍第2页/共34页第二页,共34页。二 编辑器和编译器三 文本编辑器四 成熟的全功能源文件编辑器,包括:语法高亮显示C/C+程序代码、全面的搜索工具、文件管理(gunl)、在线帮助和教程、快速定位及自动纠错、内置调试等功能。五 C/C+编译器六 Nios II IDE使用GCC编译器,并为其提供了一个图形化用户界面。提供了一个易用的按钮式流程,允许开发人员手工设置高级编译选项,使得操作更简单方便。七 Nios II IDE编译环境自动地生成一个基于用户特定系统配置(SOPC Builder生成的PTF文件)的makef

3、ile。编译/链接设置的任何改变都会自动映射到这个自动生成的makefile中。6.1 Nios II IDE简介(jin ji)第3页/共34页第三页,共34页。三 调试器四 软件调试器(GDB):是强大的、在GNU调试器基础之上的软件调试器。该调试器提供许多基本调试功能以及一些在低成本处理器开发(kif)套件中不会经常用到的高级调试功能。五 基本调试功能包括:运行控制、调用堆栈查看、软件断点、反汇编代码查看、调试信息查看、指令集仿真器。六 高级调试功能包括:硬件断点调试ROM或闪存中的代码、数据触发、指令跟踪。6.1 Nios II IDE简介(jin ji)第4页/共34页第四页,共34

4、页。四 闪存编程器五 多数使用Nios II处理器的设计都需要采用闪存(Flash)来存储FPGA配置数据和/或应用程序。Nios II IDE提供了一个方便的闪存编程方法。任何连接到FPGA的兼容(jin rn)通用闪存接口(CFI)的闪存器件以及主动串行配置器件EPCS都可以通过Nios II IDE闪存编程器来烧写。6.1 Nios II IDE简介(jin ji)第5页/共34页第五页,共34页。 借助(jizh)工程的创建和配置向导,Nios II IDE使用起来很容易。 下面以电子钟的软件开发为例来介绍软件开发的过程。6.2 软件开发流程软件开发流程(lichng)第6页/共34页

5、第六页,共34页。Nios II IDE启动(qdng)第7页/共34页第七页,共34页。1. 新建IDE的工程Nios II IDE提供(tgng)新工程的向导,指导创建IDE工程。启动IDE,出现Nios II C/C+的窗口。第8页/共34页第八页,共34页。v新新Nios II工程命名工程命名 vdigi_clock。v选择目标硬件:选择目标硬件:v 电子钟硬件系统电子钟硬件系统(PTF文件文件)vIDE根据根据(gnj)该该文件来建立系统库。文件来建立系统库。v选择新工程的模选择新工程的模板板:Blank Project。第9页/共34页第九页,共34页。v 选择创建一个选择创建一个

6、(y )新系统库(缺省),或使用已有新系统库(缺省),或使用已有系统库系统库第10页/共34页第十页,共34页。!举例:若选择新工程!举例:若选择新工程(gngchng)的模板为:的模板为:Hello world第11页/共34页第十一页,共34页。系统系统(xtng)库工程库工程第12页/共34页第十二页,共34页。 点击Finish,创建(chungjin)完成工程。IDE同时创建(chungjin)系统库工程 *_syslib。 IDE工作台的C/C+ 工程视图第13页/共34页第十三页,共34页。 建立C的源文件:选中digi_clock工程(gngchng),点右键,选择NewSou

7、rce File(FileNew Source File)第14页/共34页第十四页,共34页。2. 编译工程(gngchng)和管理工程(gngchng)源程序和头文件编辑完成后,进行编译编译的方法:选中digi_clock工程(gngchng),右键,菜单中选择Build Project(或ProjectBuild Project)第15页/共34页第十五页,共34页。2. 编译工程和管理工程失败:编译的错误和警告,在console窗口给出,根据该信息修改代码。成功:出现Binaries目录,及一个可执行文件digi_clock.elf。是能在Nios II处理上运行(ynxng)的可执行

8、和 连接格式(Executable And Linked Format File.elf)第16页/共34页第十六页,共34页。6.3 运行(ynxng)和调试程序Run之前需把硬件系统下载到FPGA中Nios II程序的运行可以发生(fshng)在下面的环境 Nios II硬件。 指令集仿真器。 ModelSim软件环境下运行。v 运行运行(ynxng)程序程序(Run)第17页/共34页第十七页,共34页。第18页/共34页第十八页,共34页。6.4 硬件(yn jin)抽象层(HAL)系统库嵌入式系统(xtng)的软件开发可分为2部分:应用(yngyng)程序开发:用户软件开发的主要部分

9、,包括系统的主程序main()和其它子程序。驱动程序:直接和底层硬件的宏定义打交道。第19页/共34页第十九页,共34页。HALHAL系统(xtng)(xtng)库简介u 什么是什么是HALHAL系统库?系统库?u用户在进行嵌入式系统的软件开发时,会涉及到与硬件的通用户在进行嵌入式系统的软件开发时,会涉及到与硬件的通信问题。信问题。uHAL(Hardware Abstraction Layer,HAL(Hardware Abstraction Layer,硬件抽象硬件抽象(chuxing)(chuxing)层层) )系统库为与硬件通信的程序提供简单的设备驱动接口系统库为与硬件通信的程序提供简单

10、的设备驱动接口它是用户在它是用户在Nios IDE中创建中创建(chungjin)一个新的工程一个新的工程时,由时,由 IDE基于用户在基于用户在SOPC Builder中创建中创建(chungjin)的的Nios处理处理 器系统(器系统(PTF文件)自动生成。文件)自动生成。第20页/共34页第二十页,共34页。HALHAL应用程序接口(APIAPI)和ANSI CANSI C标准库综合在一起,使用户用类似C C语言的库函数(hnsh)(hnsh)来访问硬件设备或文件,如printf()printf()、fopen()fopen()、fwrite()fwrite()等函数(hnsh)(hns

11、h)。HALHAL为嵌入式系统中的外围设备提供接口程序。HALHAL和SOPC BuilderSOPC Builder紧密相关,如果硬件配置有了变化,HALHAL设备驱动配置也会自动随之改动,从而避免了由于底层硬件的变化而产生的程序错误。用户不必自己创建或拷贝HALHAL文件,也不必编辑HALHAL中的任何源代码。NiosIDE NiosIDE 自动创建和管理HALHAL文件。 第21页/共34页第二十一页,共34页。6.4 硬件(yn jin)抽象层(HAL)系统库nHAL的构成nHAL系统库为用户提供下列支持:n集成了ANSI C标准函数库,允许调用类似C标准库函数;Newlib,Newl

12、ib是为了嵌入式系统的应用,而对C的标准库进行精简的开源实现。包括一些常用的函数的集合,如printf()、malloc()和open()等。n提供访问NiosII系统每个设备的驱动程序;n提供HAL API,用于标准的函数接口如设备访问、中断处理以及ALARM等;n提供系统初始化函数,为main()函数和C库函数建立运行时环境n提供设备初始化函数,在main()函数前,分配设备空间(kngjin)并初始化所有的外围设备。第22页/共34页第二十二页,共34页。6.5 硬件抽象(chuxing)层(HAL)系统库nHAL的构成(将硬件(yn jin)层和应用层联系起来)Nios II HAL

13、的结构的结构(jigu)第23页/共34页第二十三页,共34页。6.5 硬件(yn jin)抽象层(HAL)系统库n用户程序至少有四种方法用户程序至少有四种方法(fngf)访问硬件设备:访问硬件设备:1. 调用(dioyng)C标准库函数,如printf()和fwrite();2. 调用硬件抽象的API函数,如write();3. 调用设备驱动程序,如alt_avalon_uart_write();4. 直接访问设备寄存器,如 IOWR_ALTERA_UART_RXDATA(base, data).第24页/共34页第二十四页,共34页。6.5 硬件(yn jin)抽象层(HAL)系统库nHA

14、L的构成n 大部分外围设备都提供HAL驱动,用户可通过HAL API访问硬件。HAL支持以下几种通用的设备模型:n 1. 字符(z f)型设备;n 2. 文件子系统;n 3. DMA设备:n 4. 定时器设备n 5. Flash设备;n 6. 以太网设备。第25页/共34页第二十五页,共34页。6.5 硬件(yn jin)抽象层(HAL)系统库nHAL的通用设备模型nAltera提供的完整HAL支持的外围设备:n字符型设备包括UART核、JTAG核以及LCD16207显示控制器;n文件子系统包括只读文档系统;nDMA设备包括DMA控制器核;n定时器设备包括定时器核;nFlash存储器设备包括通

15、用Flash接口芯片(xn pin)和主动串行配置器件EPCS控制器。n以太网设备包括LAN9111以太网MAC/PHY控制器并且需要uC/OS-II支持。n还有一些第三方提供的外围设备,用户也可以定制字节的外围设备。第26页/共34页第二十六页,共34页。 使用使用ANSI C标准库函数和标准库函数和HAL运行运行(ynxng)环境环境 使用使用HAL API通用设备模型来访问硬件通用设备模型来访问硬件6.6 使用(shyng)HAL开发应用程序 第27页/共34页第二十七页,共34页。6.6 使用(shyng)HAL开发应用程序 nNios II IDE 工程工程(gngchng)结构结构

16、基于HAL系统(xtng)库的应用程序的开发是与Nios II IDE紧密联系的软件软件硬件硬件第28页/共34页第二十八页,共34页。6.6 使用(shyng)HAL开发应用程序 nNios II IDE 工程工程(gngchng)结构结构一个一个(y )Nios II IDE工工程程用户工程文件夹HAL系统库文件夹Nios II设备驱动第29页/共34页第二十九页,共34页。system.h系统描述文件 system.h文件是HAL系统库的基础,system.h文件提供了Nios II系统硬件的软件描述,包括: (1)外围设备的硬件配置 (2)基地址 (3)中断优先级 (4)外围器件的符号

17、名称 编写任何与Nios II系统硬件外设有关的程序都需要包含system.h文件,它也是Nios II IDE根据(gnj)系统PTF文件生成的。 可以到以下目录中查看System.h文件 QuartussoftwareNios工程名_syslibDebugsystem_description6.6 使用(shyng)HAL开发应用程序 第30页/共34页第三十页,共34页。#define SYS_CLK_TIMER_NAME /dev/sys_clk_timer#define SYS_CLK_TIMER_TYPE altera_avalon_timer#define SYS_CLK_TIM

18、ER_BASE 0 x00000820#define SYS_CLK_TIMER_SPAN 32#define SYS_CLK_TIMER_IRQ 1#define SYS_CLK_TIMER_ALWAYS_RUN 0#define SYS_CLK_TIMER_FIXED_PERIOD 0#define SYS_CLK_TIMER_SNAPSHOT 1#define SYS_CLK_TIMER_PERIOD 10#define SYS_CLK_TIMER_PERIOD_UNITS ms#define SYS_CLK_TIMER_RESET_OUTPUT 0#define SYS_CLK_TIM

19、ER_TIMEOUT_PULSE_OUTPUT 0#define SYS_CLK_TIMER_MULT 0.001#define SYS_CLK_TIMER_FREQ 85000000#define ALT_MODULE_CLASS_sys_clk_timer altera_avalon_timersystem.h描述描述(mio sh)的定时器设备的定时器设备6.6 使用(shyng)HAL开发应用程序 第31页/共34页第三十一页,共34页。6.6 使用(shyng)HAL开发应用程序 system.h描述描述(mio sh)的的UART设备设备#define UART_NAME /dev

20、/uart /UART的设备名称及所在路径,的设备名称及所在路径,open()等文件操作函数可以通等文件操作函数可以通/过过UART_NAME开打一个开打一个UART设备设备#define UART_TYPE altera_avalon_uart /描述了描述了UART内核内核(ni h)的类型,应用程序员可不关心的类型,应用程序员可不关心#define UART_BASE 0 x00441480 /UART设备的寄存器基地址,驱动程序可以根据该地址对设备的寄存器基地址,驱动程序可以根据该地址对/UART寄存器进行访问寄存器进行访问#define UART_IRQ 1 / UART设备的中断号

21、设备的中断号,系统据此判别中断来自系统据此判别中断来自UART设备设备#define UART_BAUD 115200 / 在系统生成过程中预设的串口波特率在系统生成过程中预设的串口波特率#define UART_DATA_BITS 8 / 描述描述UART数据帧长度数据帧长度#define UART_FIXED_BAUD 0 /波特率是否软件可变的标志波特率是否软件可变的标志#define UART_PARITY N / 是否能奇偶校验是否能奇偶校验#define UART_STOP_BITS 1 / UART数据包中停止位的宽度数据包中停止位的宽度#define UART_USE_CTS_RTS 0 /是否使用是否使用CTS和和RTS信号信号#define UART_USE_EOP_REGISTER 0 /是否生成了是否生成了EOP(End of Packet)寄存器寄存器#define UART_SIM_TRUE_BAUD 0 /仿真时的波特率仿真时的波特率#define UART_SIM_CHAR_STREAM /仿真时的字符流仿真时的字符流#define UART_FREQ 48000000 / Avalon总线的频率,总线的频率,48MHz第32页/共34页第三十二页,共34页。数据宽度和数据宽度和HALHAL类型定义类型

温馨提示

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

评论

0/150

提交评论