- 1、本文档共37页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《嵌入式设计技术的工程方法》第3章(续2)定制用户外设幻灯片资料.ppt
第五节 定制 Nios II Avalon用户外设 利用SOPC Builder的组件编辑器,可创建和编辑用户的Avalon外设。 一个Avalon外设(组件)的典型构成: ●硬件描述文件(HDL模块) ●软件文件(定义组件寄存器映像的C语言头文件以及相应的驱动程序) ●组件描述文件(class.ptf):由组件编辑器自动生成,定义组件的结构,为SOPC Builder提供系统集成时所需要的信息。 Quartus II仿真验证 注意:实际计数周期=count+1 占空比如何计算? 在SOPC Builder中添加用户IP 在已建立的SOPC设计中,添加用户IP。双击进入SOPC Builder 已建立的SOPC系统结构 由此进入用户逻辑编辑器 若需要,在此添加HAL有关文件。例如:寄存器映射头文件,驱动程序,demo例程等。 基于Avalon的用户逻辑(从设备)硬件结构 Avalon 接 口 Avalon 从 信 号 状态寄存器 控制寄存器 数据寄存器1 数据寄存器2 其他寄存器 任 务 逻 辑 与应用相关的接口信号 基于Avalon用户逻辑(从设备)的相关软件设计 文件(文件夹)名 描述 /pwm_hw 该文件夹包含硬件描述文件 my_pwm.v pwm的Verilog HDL代码 /pwm_sw 该文件夹包含软件接口的C文件 /inc 定义底层硬件的C语言头文件 avalon_slave_my_pwm_regs.h /HAL 包含Nios处理器的HAL驱动文件 /inc 包含HAL驱动文件的C头文件 altera_avalon_my_pwm_routines.h 声明访问硬件的函数原型 /src 包含HAL驱动文件的源代码 altera_avalon_my_pwm_routines.c 定义访问硬件的函数 /test_software 包含软、硬件测试例程 hello_altera_avalon_my_pwm.c 测试程序 请同学总结 开发Avalon用户从设备(用户IP)的基本步骤 参考1《Nios II嵌入式软核SOPC设计原理及应用》 P445 参考2《SOPC嵌入式系统基础教程》 P291 第六节 Nios II 软件开发 一、Nios II IDE为软件开发提供四个主要功能: 工程管理器 新工程向导 软件工程模板 软件组件 引导建立C/C++应用程序工程和系统库工程 软件代码实例 HAL系统库、轻量级IP TCP/IP库、uC/OS实时操作系统(RTOS)、Altera压缩文件系统。 编辑器和编译器 文本编辑器(成熟、全功能) C/C++编译器(GCC) 自动生成基于用户特定系统配置(SOPC Builder生成的PTF文件)的makefile。它自动映射Nios II IDE中的任何改变。 调试器 通过JTAG调试模块与目标硬件相连。 基本调试功能——运行控制、调用堆栈查看、软件断点、反汇编代 码查看、调试信息查看、指令集仿真器。 高级调试功能——硬件断点调试ROM或闪存中的代码、数据触发、 指令跟踪。 闪存编程器 ●烧写CFI接口的闪存器件 ●烧写主动串行配置器件EPCS 二、硬件抽象层(HAL)系统库 当用户在Nios II IDE中创建一个新的软件工程时,根据与之绑定的Nios II硬件系统(PTF文件),自动生成HAL库。 即:Nios II IDE和SOPC Builder紧密相关。 硬件配置变化→PTF文件自动变化→HAL库自动变化。 HAL提供了相关设备的驱动程序,用户只要利用HAL提供的各种函数就可以编写应用程序。 HAL应用程序接口(API)与 ANSI C 标准库综合在一起,可使用printf()、fopen()、fwrite()等类似C语言的库函数来访问硬件设备。 用户应用程序 C标准库 HAL API 设备 驱动 设备 驱动 …… 设备 驱动 Nios Ⅱ处理器系统硬件 HAL 系统库的结构 HAL系统库的服务 与标准的C函数库集成; 提供对每一个设备的驱动; 提供一致的、标准的应用程序接口; 系统初始化; 设备初始化。 _exit() open() close() opendir() closedir() read() fstat() readdir() getpid()
文档评论(0)