- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
NiosII应用程序及其外设HAL驱动开发研讨
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 6.8 开发HAL下的设备驱动 实现设备的具体操作 上一步中,已经获得了设备的属性,也把访问函数地址填入相应的函数指针,接下来的工作就是实现这些函数。实现这些函数例子见UART的实现文件 Nios II kit安装路径 \components\altera_avalon_uart\HAL\src\altera_avalon_uart.c 6.8 开发HAL下的设备驱动 向HAL注册(Register)字符设备 方法:在设备的初始化函数中调用字符设备驱动注册函数: 注册函数返回负数表示注册失败,非负数(0和正数)表示操作成功。所以,只须检测返回值是否小于零,即可知道是否操作成功。例如: int alt_dev_reg(alt_dev* dev) #define ENODEV 50 … int func(…) { … err = -ENODEV; … return err; } 6.8 开发HAL下的设备驱动 为各类设备创建驱动程序 文件子系统 HAL已经提供了一个文件系统,当把一个新的设备挂载到HAL文件系统的某个点上时,可以用文件的方式来管理和操作它。 把文件子系统型虚拟设备具体化; 实现设备的具体操作; 向HAL注册文件子系统。 6.8 开发HAL下的设备驱动 为各类设备创建驱动程序 Flash设备 把Flash型虚拟设备具体化 6.8 开发HAL下的设备驱动 程序清单6.7 Flash型虚拟设备结构体定义 struct alt_flash_dev { alt_llist llist; const char* name; alt_flash_open open; alt_flash_close close; alt_flash_write write; alt_flash_read read; alt_flash_get_flash_info get_info; alt_flash_erase_block erase_block; alt_flash_write_block write_block; void* base_addr; //flash的基地址 int length; //flash的容量大小,单位为字节 int number_of_regions; //flash中可擦除区的数量 flash_region region_info[ALT_MAX_NUMBER_OF_FLASH_REGIONS]; }; 6.8 开发HAL下的设备驱动 程序清单6.8 具体Flash设备的数据结构定义 struct alt_flash_cfi_dev { alt_flash_dev dev; int algorithm; int mode_width; int device_width; int write_timeout; int erase_timeout; int primary_address; /* Flash type specific functions to access the flash and perform various operations */ alt_write_command_fn write_command; alt_read_query_fn read_query; alt_write_native_fn write_native; }; 6.8 开发HAL下的设备驱动 为各类设备创建驱动程序 Flash设备 实现Flash设备的具体操作 现Flash设备的具体操作。从Flash型虚拟设备结构体定义中,我们可以知道,对于Flash型设备需要实现7种访问方法,它们是: 6.8 开发HAL下的设备驱动 为各类设备创建驱动程序 Flash设备
文档评论(0)