EDA(电子设计自动化)教程.pptx

上传人:封****n 文档编号:96701312 上传时间:2024-03-11 格式:PPTX 页数:120 大小:3.25MB
返回 下载 相关 举报
EDA(电子设计自动化)教程.pptx_第1页
第1页 / 共120页
EDA(电子设计自动化)教程.pptx_第2页
第2页 / 共120页
点击查看更多>>
资源描述

《EDA(电子设计自动化)教程.pptx》由会员分享,可在线阅读,更多相关《EDA(电子设计自动化)教程.pptx(120页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、计算机计算机EDAEDA设计设计教教 程程北航计算机学院北航计算机学院北航计算机学院北航计算机学院 艾明晶艾明晶艾明晶艾明晶1共共共共2 2 2 2学时学时学时学时第第7 7章章 Nios Nios 嵌入式处理器设计嵌入式处理器设计7.1 Nios 嵌入式处理器简介嵌入式处理器简介7.2 Nios 嵌入式处理器软、硬件开发流程嵌入式处理器软、硬件开发流程7.3 Nios 嵌入式处理器系统的开发嵌入式处理器系统的开发7.4 Nios 嵌入式处理器外围接口嵌入式处理器外围接口7.5 HAL系统库系统库7.6 设计实例设计实例电子钟电子钟27.1 7.1 Nios 嵌入式处理器简介嵌入式处理器简介一

2、、第一代一、第一代NiosNios嵌入式处理器嵌入式处理器二、第二代二、第二代NiosNios嵌入式处理器嵌入式处理器三、可配置的软核嵌入式处理器的优势三、可配置的软核嵌入式处理器的优势内容概要内容概要37.1 7.1 Nios 嵌入式处理器简介嵌入式处理器简介一、第一代一、第一代NiosNios嵌入式处理器嵌入式处理器2000年,年,Altera发布了发布了Nios处理器,这是第一款可处理器,这是第一款可用于可编程逻辑器件的可配置的软核处理器。用于可编程逻辑器件的可配置的软核处理器。基于基于RISC技术技术16位指令集位指令集16/32位数据通道位数据通道5级流水线级流水线在一个时钟周期内完

3、成一条指令的处理在一个时钟周期内完成一条指令的处理具有一种基于具有一种基于JTAG的的OCI(片上仪器)芯核(片上仪器)芯核47.1 7.1 Nios 嵌入式处理器简介嵌入式处理器简介2003年,年,Altera发布了发布了Nios3.0处理器,它有处理器,它有16位和位和32位两个版本,能在低成本的位两个版本,能在低成本的Cyclone和高性能的和高性能的Stratrix芯片上实现。芯片上实现。主要特性:主要特性:更多的可配置寄存器更多的可配置寄存器极大的灵活性和可扩展性极大的灵活性和可扩展性功能强大的开发工具(功能强大的开发工具(SOPC Builder)第一代第一代NiosNios处理器

4、的处理器的缺点缺点没有提供软件开发的集成环境,用户需要在没有提供软件开发的集成环境,用户需要在Nios SDK ShellNios SDK Shell中以命令行的形式执行软件的编译、运行、调试。程序的编中以命令行的形式执行软件的编译、运行、调试。程序的编辑、编译、运行都是分离的。辑、编译、运行都是分离的。不支持对项目的编译。不支持对项目的编译。57.1 7.1 Nios 嵌入式处理器简介嵌入式处理器简介二、第二代二、第二代NiosNios嵌入式处理器嵌入式处理器2004年月年月,Altera继在全球推出继在全球推出Cyclone和和Stratrix器件系列后,又推出支持这些新款芯片器件系列后,

5、又推出支持这些新款芯片的的Nios嵌入式处理器。嵌入式处理器。与第一代与第一代NiosNios相比,相比,最大处理性能提高了最大处理性能提高了3 3倍,倍,CPUCPU内核部分的面积最大可缩小内核部分的面积最大可缩小1/21/2(3232位位Nios Nios 处理处理器占用器占用15001500个个LELE,Nios II Nios II 最少只占用最少只占用600600个个LELE)。)。广泛应用于嵌入式系统的设计中。广泛应用于嵌入式系统的设计中。67.1 7.1 Nios 嵌入式处理器简介嵌入式处理器简介种类种类特性特性CPU结构结构32Bit指令集指令集32Bit数据宽度线数据宽度线3

6、2个通用寄存器个通用寄存器2G Byte寻址空间寻址空间片内调试片内调试基于边界扫描测试基于边界扫描测试(JTAG)的调试逻辑,支持的调试逻辑,支持硬件断点、数据触发以及片外和片内的调试硬件断点、数据触发以及片外和片内的调试跟踪跟踪定制指令定制指令最多达到最多达到256个用户定义的个用户定义的CPU指令指令软件开发工具软件开发工具NiosIDE(集成开发环境)(集成开发环境)基于基于GNU的编译器的编译器硬件辅助的调试模块硬件辅助的调试模块表表7-1Nios 系列处理器的特性系列处理器的特性77.1 7.1 Nios 嵌入式处理器简介嵌入式处理器简介Nios II提供提供3种种不同的内核,以满

7、足系统对不同性能和成本的需求。不同的内核,以满足系统对不同性能和成本的需求。最高性能的优化最高性能的优化平衡性能和尺寸平衡性能和尺寸最小逻辑占用的优化最小逻辑占用的优化表表7-2Nios 系列处理器的成员系列处理器的成员87.1 7.1 Nios 嵌入式处理器简介嵌入式处理器简介Nios vs Nios Nios Nios Pipelined RISC Architecture32-Bit InstructionsFlat Register File32-Bit Data Path32 Prioritized InterruptsOptional Instruction&Data CacheC

8、ustom Instructions Branch Prediction Nios NiosPipelined RISC Architecture16-Bit InstructionsWindowed Register File16-Bit or 32-Bit Data Path64 Prioritized InterruptsOptional Instruction&Data CacheCustom Instructions 97.1 7.1 Nios 嵌入式处理器简介嵌入式处理器简介Nios :Faster&Smaller(Nios /f)107.1 7.1 Nios 嵌入式处理器简介嵌入

9、式处理器简介Nios:Faster&Smaller(Nios /s)117.1 7.1 Nios 嵌入式处理器简介嵌入式处理器简介Nios:Faster&Smaller(Nios /e)127.1 7.1 Nios 嵌入式处理器简介嵌入式处理器简介High-Performance Interconnect 采用内部采用内部Avlon总线,连接总线,连接主从构件,并主从构件,并进行主从构件行主从构件间的通信。的通信。主外设主外设从外设从外设137.1 7.1 Nios 嵌入式处理器简介嵌入式处理器简介Some Important Peripherals for Nios IISystem ID

10、PeripheralUsed to Ensure Hardware/Software Version SynchronizationSimple 2 read-only register peripheral containing hardware ID tags.Register 1 contains random numberRegister 2 contains time and date when system was generated in SOPC BuilderCan be checked at runtime to ensure that the software to be

11、 downloaded matches the hardware imageMemory InterfacesEPCS Serial Flash ControllerOn-ChipRAM,ROMOff-ChipSRAMCFI Flash147.1 7.1 Nios 嵌入式处理器简介嵌入式处理器简介Other Important Peripherals for Nios IILCD DisplayJTAG UART Single JTAG Connection For:Device ConfigurationCode DownloadDebugTarget STDIO(printing)Flas

12、h ProgrammingCompact Flash Interface Mass Storage SupportTrue IDE ModeCompact Flash ModeSoftware SupportsLow-Level APIMicroC/OS-File System SupportCLinux File System157.1 7.1 Nios 嵌入式处理器简介嵌入式处理器简介New Peripherals for Nios II 5.0SSRAM ControllerCypress CY7C1380C Sync SRAM controllerProvided to support

13、 SSRAM component on Cyclone II dev kit boardNot a fully configurable general purpose controllerSupport for DDR/DDR2 in SOPC Builder GUIWith burst adapterSequential master to interleaved slave enhancementSeparate READ/Write duplex slavesAutomatically matches address of read/write slavesArbitration lo

14、gic connects read/write masters to both slavesSupport for PCI and Bursting DMA in SOPC Builder GUIHigher bandwidth transfers through PCI167.1 7.1 Nios 嵌入式处理器简介嵌入式处理器简介Example of a Nios Processor System处理器内核处理器内核内部总线内部总线定时器定时器外设接口外设接口177.1 7.1 Nios 嵌入式处理器简介嵌入式处理器简介Nios II:Hard Numbers187.1 7.1 Nios 嵌

15、入式处理器简介嵌入式处理器简介三、可配置的软核嵌入式处理器的优势三、可配置的软核嵌入式处理器的优势1.1.合理的性能组合合理的性能组合使用使用Nios嵌入式处理器和嵌入式处理器和FPGA,用户可以实现,用户可以实现在处理器、外设、存储器和在处理器、外设、存储器和I/O接口方面的合理组接口方面的合理组合。合。3种处理器内核种处理器内核6060余种余种SOPC BuilderSOPC Builder配备的配备的IP核核 无限的无限的DMADMA通道组合通道组合可配置的硬件及软件调试特性可配置的硬件及软件调试特性197.1 7.1 Nios 嵌入式处理器简介嵌入式处理器简介2.2.提升系统的性能提升

16、系统的性能NiosNios系统的性能可根据应用来裁减,与固定系统的性能可根据应用来裁减,与固定的处理器相比,在较低的时钟速率下具备更高的处理器相比,在较低的时钟速率下具备更高的性能。的性能。多多CPU内核内核:可选择最快的内核,或在一片FPGA内采用多个内核支持的支持的FPGA系列系列:Stratix,Stratix,Stratix GX,Cyclone,Cyclone,HardCopy Stratix定制指令定制指令:把用户自定义的功能直接添加到Nios处理器的ALU中,加快专项任务的执行,以提高系统的性能硬件加速硬件加速:专用的硬件加速器添加到FPGA中作为CPU的协处理器207.1 7.

17、1 Nios 嵌入式处理器简介嵌入式处理器简介3.3.降低系统成本降低系统成本 主要途径主要途径:更大规模的系统集成更大规模的系统集成优化优化FPGA/CPU的选择的选择:选择经济型内核应用于低成本、低性能系统,或者在单个FPGA上使用多个内核更好的库存管理更好的库存管理4.4.延长产品的生命周期延长产品的生命周期加快产品上市时间:加快产品上市时间:FPGA可编程、可随时验证修改 建立有竞争性的优势建立有竞争性的优势:硬件加速、定制指令、定制外设延长了产品的生存时间延长了产品的生存时间:可对硬件和软件及时进行升级在产品产量增加的情况下减少成本在产品产量增加的情况下减少成本:可将FPGA设计无缝

18、移植到Altera的HardCopy器件(一种结构化的ASIC)中217.2 7.2 Nios 嵌入式处理器软、硬件开发流程嵌入式处理器软、硬件开发流程一、硬件开发流程一、硬件开发流程二、软件开发流程二、软件开发流程内容概要内容概要227.2 7.2 Nios 嵌入式处理器软、硬件开发流程嵌入式处理器软、硬件开发流程Nios Nios Design Flow Design FlowSOPC Builder GUIConnect BlocksProcessor LibraryCustom InstructionsPeripheral LibrarySelect&Configure Periphe

19、rals,IPIP ModulesConfigure ProcessorGeneratenEDIF NetlistnHDL Source FilesnTestbenchSynthesis&Fitter nUser DesignnOther IP BlocksHardware DevelopmentQuartus IIOn-ChipDebugSoftware TraceHard BreakpointsSignalTap IIAlteraPLD JTAG,Serial,orEthernetExecutableCodeHardwareConfigurationFileVerification&Deb

20、ug(1 1)(2 2)(3 3)(4 4)nC Header filesnCustom LibrarynPeripheral DriversCompiler,Linker,DebuggerSoftware DevelopmentnUser CodenLibrariesnRTOSGNU ToolsNios II IDE237.2 7.2 Nios 嵌入式处理器软、硬件开发流程嵌入式处理器软、硬件开发流程一、硬件开发流程一、硬件开发流程下载完硬件配置文件后,软件开发者就可以把此开发板作下载完硬件配置文件后,软件开发者就可以把此开发板作为软件开发的初期硬件平台进行软件功能的开发验证了。为软件开发的

21、初期硬件平台进行软件功能的开发验证了。(1 1)定义定义Nios嵌入式处理器系统:嵌入式处理器系统:使用使用SOPC Builder系统综合软系统综合软件选取合适的件选取合适的CPU、存储器以及外围器件,并定制其功能。、存储器以及外围器件,并定制其功能。(2)指定目标器件、分配引脚、编译硬件指定目标器件、分配引脚、编译硬件:使用:使用Quartus选取选取Altera器件系列,并对器件系列,并对SOPC Builder生成的生成的HDL设计文件进行布设计文件进行布局布线;再选取目标器件,分配管脚,进行硬件编译选项或时序局布线;再选取目标器件,分配管脚,进行硬件编译选项或时序约束的设置。编译,生

22、成网表文件和配置文件。约束的设置。编译,生成网表文件和配置文件。(3)硬件下载:硬件下载:使用使用Quartus软件和下载电缆,将配置文件下载到软件和下载电缆,将配置文件下载到开发板上的开发板上的FPGA中。当校验完当前硬件设计后,还可再次将新中。当校验完当前硬件设计后,还可再次将新的配置文件下载到开发板上的非易失存储器里。的配置文件下载到开发板上的非易失存储器里。247.2 7.2 Nios 嵌入式处理器软、硬件开发流程嵌入式处理器软、硬件开发流程二、软件开发流程二、软件开发流程(1 1)在使用)在使用SOPC BuilderSOPC Builder进行硬件设计的同时,就可以开始编写独立进行

23、硬件设计的同时,就可以开始编写独立于器件的于器件的C/C+C/C+软件,比如算法或控制程序。用户可以使用现成软件,比如算法或控制程序。用户可以使用现成的软件库和开放的操作系统内核来加快开发过程。的软件库和开放的操作系统内核来加快开发过程。(2 2)在)在NiosIDENiosIDE中建立新的软件工程时,中建立新的软件工程时,IDEIDE会根据会根据SOPC BuilderSOPC Builder对系统的硬件配置自动生成一个定制对系统的硬件配置自动生成一个定制HAL(HAL(硬件抽象层硬件抽象层)系统库。系统库。这个库能为程序和底层硬件的通信提供接口驱动程序。这个库能为程序和底层硬件的通信提供接

24、口驱动程序。(3 3)使用)使用NiosIDENiosIDE对软件工程进行编译、调试。对软件工程进行编译、调试。(4 4)将硬件设计下载到开发板后,就可以将软件下载到开发板上并)将硬件设计下载到开发板后,就可以将软件下载到开发板上并在硬件上运行。在硬件上运行。257.3 7.3 Nios 嵌入式处理器系统的开发嵌入式处理器系统的开发一、一、Nios Nios 集成开发环境(集成开发环境(IDEIDE)介绍)介绍二、二、Nios Nios 嵌入式处理器系统设计过程嵌入式处理器系统设计过程内容概要内容概要267.3 7.3 Nios 嵌入式处理器系统的开发嵌入式处理器系统的开发Nios IDE是是

25、Nios系列嵌入式处理器的基本软件开系列嵌入式处理器的基本软件开发工具,包括程序的编辑、编译、调试和下载运行。发工具,包括程序的编辑、编译、调试和下载运行。Nios IDE使用方法和使用方法和Visual C+类似。在类似。在7.6节中会节中会结合示例进行讲解。结合示例进行讲解。Nios IDE为软件开发提供了为软件开发提供了4个功能:个功能:工程管理器;工程管理器;编辑器和编译器;编辑器和编译器;调试器;调试器;闪存编程器。闪存编程器。一、一、NiosNios集成开发环境(集成开发环境(IDEIDE)介绍)介绍277.3 7.3 Nios 嵌入式处理器系统的开发嵌入式处理器系统的开发(1 1

26、)新工程向导)新工程向导自动建立自动建立C/C+C/C+应用程序工程和系统库工程。应用程序工程和系统库工程。(2 2)软件工程模板)软件工程模板提供软件代码实例,帮助用户尽快推出可运行的提供软件代码实例,帮助用户尽快推出可运行的系统系统(3 3)软件组件(系统软件)软件组件(系统软件)Nios Nios 运行库(或称为硬件抽象层运行库(或称为硬件抽象层HALHAL););轻量级轻量级IP TCP/IPIP TCP/IP库;库;C/OS C/OS 实时操作系统(实时操作系统(RTOSRTOS););AlteraAltera压缩文件系统。压缩文件系统。1.1.工程管理器工程管理器287.3 7.3

27、 Nios 嵌入式处理器系统的开发嵌入式处理器系统的开发(1 1)文本编辑器)文本编辑器全功能源文件编辑器:全功能源文件编辑器:语法高亮显示语法高亮显示C/C+C/C+程序代码;程序代码;全面的搜索工具;全面的搜索工具;文件管理;文件管理;快速定位及自动纠错;快速定位及自动纠错;内置调试功能等内置调试功能等(2 2)C/C+C/C+编译器编译器提供图形化用户界面;提供图形化用户界面;提供按钮式流程;提供按钮式流程;自动生成一个基于特定用户配置的自动生成一个基于特定用户配置的makefilemakefile。2.2.编辑器和编译器编辑器和编译器297.3 7.3 Nios 嵌入式处理器系统的开发

28、嵌入式处理器系统的开发(1 1)基本调试功能)基本调试功能运行控制;运行控制;调用堆栈查看;调用堆栈查看;软件断点;软件断点;反汇编代码查看;反汇编代码查看;调试信息查看;调试信息查看;指令集仿真器。指令集仿真器。(2 2)高级调试功能高级调试功能硬件断点调试硬件断点调试ROMROM或闪存中的代码;或闪存中的代码;数据触发;数据触发;指令跟踪。指令跟踪。3.3.调试器调试器(3 3)调试信息查看)调试信息查看使用户可以访问本地变量、寄使用户可以访问本地变量、寄存器、存储器、断点以及表达存器、存储器、断点以及表达式赋值函数。式赋值函数。(4 4)连接多种目标连接多种目标FPGAFPGA开发板(通

29、过开发板(通过JTAGJTAG););指令集仿真器;指令集仿真器;硬件逻辑仿真器。硬件逻辑仿真器。307.3 7.3 Nios 嵌入式处理器系统的开发嵌入式处理器系统的开发4.4.闪存编程器闪存编程器闪存可用来存储闪存可用来存储FPGAFPGA配置数据和配置数据和/或或Nios Nios 编程数据。编程数据。NiosIDENiosIDE闪存编程器可对连接到闪存编程器可对连接到FPGAFPGA的兼容通用闪存接口的兼容通用闪存接口(CFICFI)的闪存器件、或)的闪存器件、或AlteraAltera串行配置器件进行编程。串行配置器件进行编程。内容类型内容类型说说 明明系统固定软件系统固定软件用于用

30、于Nios处理器复位时从闪存中导入启处理器复位时从闪存中导入启动程序动程序FPGA配置数据配置数据使用配置控制器,使用配置控制器,FPGA能够在上电复位时能够在上电复位时从闪存获取配置数据从闪存获取配置数据任意二进制数据任意二进制数据开发人员可以将任何二进制数据存储到闪存开发人员可以将任何二进制数据存储到闪存内,如图形、音频等内,如图形、音频等表表7-3编程到闪存中的通用内容类型编程到闪存中的通用内容类型317.3 7.3 Nios 嵌入式处理器系统的开发嵌入式处理器系统的开发1.1.硬件设计过程硬件设计过程(1 1)创建一个)创建一个Quqrtus Quqrtus 工程工程(2 2)创建)创

31、建Nios Nios 系统模块系统模块启动启动SOPC BuilderSOPC Builder添加添加CPUCPU和外围器件和外围器件指定基地址指定基地址系统设置系统设置生成系统模块生成系统模块(3 3)将)将Nios Nios 系统模块符号添加到系统模块符号添加到BDFBDF文件中文件中(4 4)编译)编译Quqrtus Quqrtus 工程工程(5 5)配置)配置FPGAFPGA二、二、Nios Nios 嵌入式处理器系统设计过程嵌入式处理器系统设计过程327.3 7.3 Nios 嵌入式处理器系统的开发嵌入式处理器系统的开发(1 1)启动)启动Nios IDENios IDE;(2 2)

32、建立新的软件工程,编写源程序;)建立新的软件工程,编写源程序;(3 3)编译工程;)编译工程;(4 4)运行程序;)运行程序;(5 5)调试程序;)调试程序;(6 6)将程序下载到开发板上的)将程序下载到开发板上的FlashFlash中。中。2.2.软件设计过程软件设计过程337.4 7.4 Nios 处理器外围接口处理器外围接口一、标准外围设备一、标准外围设备二、用户定制外围设备二、用户定制外围设备内容概要内容概要347.4 7.4 Nios 处理器外围接口处理器外围接口一、标准外围设备一、标准外围设备Nios Nios 包括一个常用外围设备及接口库,在包括一个常用外围设备及接口库,在Alt

33、era Altera FPGAFPGA中可免费使用。中可免费使用。标准外围设备标准外围设备为即用型设计模块,采用为即用型设计模块,采用Verilog HDL和和VHDL的源代码方式交付使用,其中包括简单系统集成的源代码方式交付使用,其中包括简单系统集成所需要的所有软件子程序。所需要的所有软件子程序。查看各接口的详细说明:可在查看各接口的详细说明:可在SOPC Builder的元件池的元件池中用右键点击元件,在弹出的菜单中选择中用右键点击元件,在弹出的菜单中选择“Data Sheet”选项。选项。35 7.4 7.4 Nios 处理器外围接口处理器外围接口外围设备接口外围设备接口说说 明明Com

34、pactFlash接口接口提供大容量存储支持提供大容量存储支持用户逻辑接口用户逻辑接口将片内用户逻辑或片外器件连接到将片内用户逻辑或片外器件连接到SOPC Builder生成的系统中生成的系统中UART提供通用串行接口,具有可变波特率、奇偶校验、停止和数据位及提供通用串行接口,具有可变波特率、奇偶校验、停止和数据位及可选的流量控制信号可选的流量控制信号间隔时钟间隔时钟提供提供32位时钟,可作为周期脉冲发生器或系统看门狗时钟位时钟,可作为周期脉冲发生器或系统看门狗时钟并行并行I/O接口接口提供提供1位到位到32位的并行位的并行I/O接口接口(输入、输出、边缘采样输入、输出、边缘采样)串行外围设备

35、接口串行外围设备接口(SPI)实现工业标准串行外围设备接口,支持主设备或从设备协议实现工业标准串行外围设备接口,支持主设备或从设备协议DMA控制器控制器与存储器进行批数据交换,减轻与存储器进行批数据交换,减轻CPU的负担的负担SDRAM控制器控制器提供一个简单提供一个简单Avalon接口,与片外的接口,与片外的SDRAM沟通,支持沟通,支持8、16、32和和64位数据宽度位数据宽度存储器接口存储器接口包括:片内包括:片内ROM和和RAM、SDRAM、SSRAM、SRAM和和Flash,Altera的串行配置器件的串行配置器件以太网端口以太网端口包括:包括:10/100兆比特每秒兆比特每秒SMS

36、C LAN91C111单芯片以太网控制单芯片以太网控制器,提供轻量级的器,提供轻量级的IP TCP/IP协议栈的软件支持,已经包含在协议栈的软件支持,已经包含在Nios 开发套件中开发套件中JTAG UART(仅在仅在Nios 中有中有)通过内嵌在通过内嵌在Altera FPGA内部的联合测试行动组内部的联合测试行动组(JTAG)电路,在电路,在PC主机和主机和SOPC Builder系统之间进行串行字符流通信系统之间进行串行字符流通信表表7-4 Nios&Nios 外围设备接口外围设备接口367.4 7.4 Nios 处理器外围接口处理器外围接口二、用户定制外围设备二、用户定制外围设备用户可

37、以创建自己的外围设备,并通过用户逻辑用户可以创建自己的外围设备,并通过用户逻辑接口向导集成到接口向导集成到Nios Nios 处理器系统中。处理器系统中。整个过程用户介入很少。整个过程用户介入很少。377.5 7.5 HAL系统库系统库一、一、HALHAL系统库简介系统库简介二、使用二、使用HALHAL开发程序开发程序内容概要内容概要387.5 7.5 HAL系统库系统库一、一、HAL HAL系统库简介系统库简介什么是什么是HAL系统库?系统库?用户在进行嵌入式系统的软件开发时,会涉及到与硬件的通信问题。HAL(Hardware Abstraction Layer,硬件抽象层)系统库可为与硬件

38、通信的程序提供简单的设备驱动接口。它是用户在NiosIDE中创建一个新的工程时,由IDE基于用户在SOPC Builder中创建的Nios处理器系统自动生成的。HAL应用程序接口(API)和ANSI C标准库综合在一起,它使用户用类似C语言的库函数来访问硬件设备或文件,如printf()、fopen()、fwrite()等函数。397.5 7.5 HAL系统库系统库HAL为嵌入式系统中的外围设备提供接口程序。为嵌入式系统中的外围设备提供接口程序。HAL和和SOPC Builder紧密相关,如果硬件配置紧密相关,如果硬件配置有了变化,有了变化,HAL设备驱动配置也会自动随之改动,设备驱动配置也会

39、自动随之改动,从而避免了由于底层硬件的变化而产生的程序错从而避免了由于底层硬件的变化而产生的程序错误。误。用户不必自己创建或拷贝用户不必自己创建或拷贝HAL文件,也不必编辑文件,也不必编辑HAL中的任何源代码。中的任何源代码。NiosIDE会为用户会为用户自动自动创建和管理创建和管理HAL文件。文件。407.5 7.5 HAL系统库系统库与与ANSI C合成的标准库合成的标准库提供类似提供类似C语言的标准库函数;语言的标准库函数;设备驱动设备驱动提供访问系统中每个设备的驱动程序;提供访问系统中每个设备的驱动程序;HAL API提供标准的接口程序,如设备访问、中断处理等;提供标准的接口程序,如设

40、备访问、中断处理等;系统初始化系统初始化在在main()函数之前执行对处理器的初始化;函数之前执行对处理器的初始化;设备初始化设备初始化在在main()函数之前执行对系统中外围设备的初始化。函数之前执行对系统中外围设备的初始化。用户程序用户程序C语言标准库语言标准库HAL API硬件硬件设备设备驱动驱动设备设备驱动驱动设备设备驱动驱动图图7-1 HAL所基于的系统层次所基于的系统层次1.HAL1.HAL构成构成417.5 7.5 HAL系统库系统库应用程序开发应用程序开发是用户软件开发的主要部分,包括系统的主程序和其他子程序。应用程序与系统设备的通信主要是通过C语言标准库或HAL系统库API来

41、实现。驱动程序开发驱动程序开发指编写供应用程序访问设备的程序。驱动程序直接和底层硬件的宏定义打交道。一旦用户要访问设备的驱动程序编写好,用户的程序开发只要利用HAL提供的各种函数就可以编写各种应用程序了。2.2.应用程序和驱动应用程序和驱动427.5 7.5 HAL系统库系统库 HAL为嵌入式系统中常见的外围设备提供了通用的设备模型,为嵌入式系统中常见的外围设备提供了通用的设备模型,使用户无需考虑底层硬件,只需利用与之相一致的使用户无需考虑底层硬件,只需利用与之相一致的API编写应编写应用程序即可。用程序即可。字符模式设备字符模式设备发送和接受字符串的外围硬件设备,如发送和接受字符串的外围硬件

42、设备,如UART定时器设备定时器设备对时钟脉冲计数并能产生周期性中断请求的外围对时钟脉冲计数并能产生周期性中断请求的外围硬件设备硬件设备文件子系统文件子系统提供访问存储在物理设备中的文件的操作,如用提供访问存储在物理设备中的文件的操作,如用户可以利用有关户可以利用有关Flash存储器设备的存储器设备的HAL API编写编写Flash文件子系文件子系统驱动来访问统驱动来访问Flash。以太网设备以太网设备对对Altera提供的轻量级的提供的轻量级的IP协议提供访问以太网协议提供访问以太网的连接。的连接。DMA设备设备执行大量数据在数据源和目的地之间传输的外围设执行大量数据在数据源和目的地之间传输

43、的外围设备。数据源和目的地可以是存储器或其他设备,如以太网连接。备。数据源和目的地可以是存储器或其他设备,如以太网连接。Flash存储器设备存储器设备利用专门编程协议存储数据的非易失性存利用专门编程协议存储数据的非易失性存储设备。储设备。3.3.通用设备模型通用设备模型437.5 7.5 HAL系统库系统库5.HAL5.HAL支持的外围设备支持的外围设备Altera提供了许多在提供了许多在Nios 处理器系统中使用的外围设备,大部分外处理器系统中使用的外围设备,大部分外围设备都提供了围设备都提供了HAL驱动,使用户可通过驱动,使用户可通过HAL API访问硬件。访问硬件。字符模式设备字符模式设

44、备定时器设备定时器设备文件子系统文件子系统以太网设备以太网设备DMA设备设备Flash存储器设备存储器设备一些第三方外围设备一些第三方外围设备4.C4.C标准库标准库NewlibNewlibHAL系统库与系统库与ANSI C标准库一起构成标准库一起构成HAL的运行环境的运行环境(Runtime Environment)。HAL使用的使用的Newlib是是C语言标准库的一种开放语言标准库的一种开放源代码的实现,是在嵌入式系统上使用的源代码的实现,是在嵌入式系统上使用的C语言程序库,正好与语言程序库,正好与HAL和和Nios 处理器相匹配。处理器相匹配。447.5 7.5 HAL系统库系统库二、使

45、用二、使用HALHAL开发程序开发程序HAL和和SOPC Builder紧密相关,如果硬件配置有了变紧密相关,如果硬件配置有了变化,化,HAL设备驱动配置也会自动随之改动,从而避免了设备驱动配置也会自动随之改动,从而避免了由于底层硬件的变化而产生的程序错误。由于底层硬件的变化而产生的程序错误。用户不用自己创建或拷贝用户不用自己创建或拷贝HAL文件,而且用户也不用编文件,而且用户也不用编辑辑HAL中的任何源代码。中的任何源代码。NiosIDE会为用户自动创建会为用户自动创建和管理和管理HAL文件。文件。457.5 7.5 HAL系统库系统库1.Nios IDE1.Nios IDE工程结构工程结构

46、软件软件硬件硬件467.5 7.5 HAL系统库系统库2.System.h 2.System.h 系统描述文件系统描述文件 System.hSystem.h文件是文件是HALHAL系统库的基础,它提供了关于系统库的基础,它提供了关于Nios Nios 系统硬件的软件描述。它描述了系统中的每个外围设备,系统硬件的软件描述。它描述了系统中的每个外围设备,并给出以下一些详细信息:并给出以下一些详细信息:外围设备的硬件配置;外围设备的硬件配置;基地址;基地址;中断优先级;中断优先级;外围器件的符号名称。外围器件的符号名称。用户无须编辑用户无须编辑System.hSystem.h文件,它是由文件,它是由

47、Nios IDENios IDE自动生成自动生成的。的。可以到以下目录中查看可以到以下目录中查看System.hSystem.h文件,:文件,:QuartusQuartus工程工程softwareNiossoftwareNios工程名工程名 _syslibDebugsystem_description_syslibDebugsystem_description477.5 7.5 HAL系统库系统库3.3.数据宽度和数据宽度和HALHAL类型定义类型定义 alt_types.halt_types.h头文件定义了头文件定义了HALHAL的数据类型。在以下路径的数据类型。在以下路径可以查看该文件:可

48、以查看该文件:Nios 安装路径安装路径componentsaltera_nios2HALinc部分代码摘抄如下:部分代码摘抄如下:typedef signed char alt_8;typedef unsigned char alt_u8;typedef signed short alt_16;typedef unsigned short alt_u16;typedef signed long alt_32;typedef unsigned long alt_u32;类型类型说明说明alt_8有符号有符号8位整数位整数alt_u8无符号无符号8位整数位整数alt_16有符号有符号16位整数位

49、整数alt_u16无符号无符号16位整数位整数alt_32有符号有符号32位整数位整数alt_u32无符号无符号32位整数位整数487.5 7.5 HAL系统库系统库4.4.文件系统文件系统 HALHAL提出了文件系统的概念,可以使用户操作提出了文件系统的概念,可以使用户操作字符模式字符模式的的设备和文件。设备和文件。在整个在整个HALHAL文件系统中将文件子系统注册为载入点,要访文件系统中将文件子系统注册为载入点,要访问这个载入店下的文件就要由这个文件子系统管理。问这个载入店下的文件就要由这个文件子系统管理。字符模式的设备寄存器常作为字符模式的设备寄存器常作为HALHAL文件系统中的节点。通

50、文件系统中的节点。通常情况下,常情况下,system.hsystem.h文件中将设备节点的名字定义为前缀文件中将设备节点的名字定义为前缀/dev/dev/+在在SOPC BuilderSOPC Builder中指定给硬件元件的名称。中指定给硬件元件的名称。以下例子完成了从一个只读文件的文件子系统以下例子完成了从一个只读文件的文件子系统rozipfsrozipfs中中读取字符的功能。读取字符的功能。497.5 7.5 HAL系统库系统库 例例 从文件子系统中读取字符。从文件子系统中读取字符。#include#include#include#include#include#include#defi

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 期刊短文 > 信息管理

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com