网站大量收购独家精品文档,联系QQ:2885784924

第六章NIOSII应用程序及其外设HAL驱动开发.ppt

第六章NIOSII应用程序及其外设HAL驱动开发.ppt

  1. 1、本文档共97页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章NIOSII应用程序及其外设HAL驱动开发

第六章 Nios II应用程序及其外设HAL驱动开发 * * * * * * * * * * * * * * * * * * * * * * * 6.1 Nios II IDE简介 6.2 设置工程系统库属性和编译选项 6.3 调试/运行程序 6.4 下载程序到Flash 6.5 硬件抽象层(HAL)系统库 6.6 使用HAL开发应用程序 6.7 设备驱动概述 6.8 开发HAL下的设备驱动 6.9 MicroC/OS-II 6.10 Nios II C语言至硬件加速编译器(C2H)简介 第6章 目录 6.10 Nios II C语言至硬件加速编译器(C2H)简介 C2H是能够提升对时间性能要求较高的ANSI C函数的工具,它将这些函数转换为FPGA中的硬件加速器。 C2H支持标准ANSI C代码,可加速实现多种应用程序,提高其运行效率,包括访问片内、外部存储器和外设等。 C2H帮助Nios II用户以最少的资源占用来达到提高系统性能的目的。 Nios II C2H编译器设计流程非常简单,编写好应用程序后,用户需要做的工作首先是分析软件代码,确定出现性能瓶颈的函数,然后在Nios II IDE中高亮显示所需的函数,右键单击加速便可以生成自动链接至软件流程的硬件加速器。 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 6.8 开发HAL下的设备驱动 为各类设备创建驱动程序 字符型设备 把字符型虚拟设备具体化 实现设备的具体操作 向HAL注册字符设备 6.8 开发HAL下的设备驱动 把字符型虚拟设备具体化 程序清单6.3 字符型设备结构体定义 /* Nios II kit安装路径 \components\altera_hal\HAL\inc\sys\alt_dev.h文件中定义*/ struct alt_dev_s { alt_llist llist; /* for internal use */ const char* name; int (*open) (alt_fd* fd, const char* name, int flags, int mode); int (*close) (alt_fd* fd); int (*read) (alt_fd* fd, char* ptr, int len); int (*write) (alt_fd* fd, const char* ptr, int len); int (*lseek) (alt_fd* fd, int ptr, int dir); int (*fstat) (alt_fd* fd, struct stat* buf); int (*ioctl) (alt_fd* fd, int req, void* arg); }; typedef struct alt_dev_s alt_dev; 这个结构体表达的意思是,字符型设备有这样的共性:它们都有一个以字符串形式表达的名字(name),都支持open、close、read、write、lseek、fstat、ioctl操作中的一种或几种。 6.8 开发HAL下的设备驱动 把字符型虚拟设备具体化 程序清单6.4 alt_fd类型定义 typedef struct alt_fd_s { alt_dev* dev; alt_u8* priv; int fd_flags; } alt_fd; Dev:是指向设备类型结构体的指针; Priv:供驱动程序内部使用; Fd_flags:传递文件处理标志。 6.8 开发HAL下的设备驱动 把字符型虚拟设备具体化 程序清单6.4 描述uART设备的结构体 6.8 开发HAL下的设备驱动 把字符型虚拟设备具体化 void func(alt_dev* dev) { alt_avalon_uart_dev * uart_dev = (alt_avalon_uart_dev *) dev; } 6.8 开发HAL下的设备驱动 把字符型虚拟设备具体化 上面定义出了UART设备的数据类型,但是内存空间中还没有真正描述UART设备的数据域,接下来把UART设备实例化。 程序清单6.4 描述uART设备的结构体 见下页 6.8 开发HAL下的设备驱动 程序清单6.4 描述uART设备的结构体 6.8 开发HAL下的设备驱动 实现设备的具体操作 上一步中,已经获得了设备的属性,也把访问函数地址填入相应的函数指针,接下来的工作就是实现这些函数。实现这些函数例子见UART的实现文件 Nios II kit安装路径 \components

文档评论(0)

wyjy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档