- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Nios ii设备管理分析
Nios ii设备管理分析
Nios II设备分析?????? Altera公司是世界上可编程芯片系统(SOPC)解决方案领先者之一,Nios II是Altera公司推出的最新32位嵌入式软核处理器,具有很大的灵活性,Nios II开发包中含有一套通用外设和接口库,用户可以方便的进行系统集成。我们也需要将拥有自主知识产权的IP集成到Nios II处理器系统,通过SOPC Builder软件的用户逻辑接口向导可以方便的将IP集成到Nios II处理器系统中,同时提供设备驱动程序,本文对Nios II设备体系做一个分析,供开发人员在编写设备驱动程序时参考。
Nios设备体系总体说明????? Nios II与以往版本Nios的设备体系有了较大的改进,Nios II不再使用SDK方式提供设备驱动,而是采用了硬件抽象库(hardware abstraction layer system library, HAL),应用程序不再直接去控制硬件设备,而是调用HAL API去驱动。HAL API包含了ANSI C 标准库,应用开发人员可以用熟悉的C库函数存取(控制)设备和文件,HAL使Nios II中的设备象UNIX系统设备一样具有相对一致的开发接口,同时也提供了UNIX风格的库函数,其使用方式和习惯类似于我们熟悉的UNIX (LINUX)系统,设备使用更加一致。这种体系使应用开发人员和设备驱动开发人员可以分工合作,提高开发效率,同时降低应用开发难度。下面是基于HAL 系统逻辑层次图:?
Nios II 设备与硬件系统定义的相关性???????Nios II系统开发是一个用户可定制的高度灵活的过程,在SOPC Builder中用户定义处理器系统和外设生成相关的.ptf文件,Nios II IDE 根据此ptf文件在创建项目时为项目生成系统库,其中system.h完整的定义硬件系统参数, alt_sys_init.c完成外设系统资源的分配和设备环境的初始化,这两个文件是我们分析的入口,如图:
?Nios II项目逻辑结构示意图如下:
?
外设系统资源的分配和设备环境的初始化??????? Nios II系统中设备驱动程序、实时操作系统(ucos II)和应用程序最终被编译为同一个二进制文件,下载到目标系统FLASH中使用。所以设备资源都以全局变量的形式定义,相同种类的设备加入设备双向链表中,通过HAL API使用设备。下面以lan91c111网络外设为例说明外设系统资源的分配和设备环境的初始化。
1. 全局设备链表的定义
在系统库alt_lwip_dev.c中通过宏ALT_LLIST_HEAD(alt_lwip_device_list)定义了alt_lwip_device_list的设备双向链表。
在alt_llist.h中宏ALT_LLIST_HEAD相关定义如下:
typedef struct alt_llist_s alt_llist;
struct alt_llist_s {
alt_llist* next; /* Pointer to the next element in the list. */
alt_llist* previous; /* Pointer to the previous element in the list. */
};
#define ALT_LLIST_HEAD(head) alt_llist head = {head, head}
从定义中可知初始定义是一个指向自身的双向链表结构。
2. 全局外设系统资源分配
l Nios II IDE生成的应用项目system.h中Lan91c111外设相关部分如下:
/*
* lan91c111_0 configuration
*
*/
#define LAN91C111_0_NAME /dev/lan91c111_0
#define LAN91C111_0_TYPE altera_avalon_lan91c111
#define LAN91C111_0_BASE 0#define LAN91C111_0_IRQ 1
#define LAN91C111_0_IS_ETHERNET_MAC 1
#define LAN91C111_0_LAN91C111_REGISTERS_OFFSET 0x0300
#define LAN91C111_0_LAN91C111_DATA_BUS_WIDTH 32
l 分配外设系统资源:
在alt_sys_init.c中分配外设系统资源
/*
* Allocate the device storage
*
*/
ALTERA_AVALON_CFI_FLASH_INSTANCE( CFI_FLASH_0,
您可能关注的文档
最近下载
- 北京市西城区2025-2026学年高一上学期期末考试 物理含答案 .pdf VIP
- 微生物发酵机制.pptx VIP
- 施工场地已具备施工条件的证明.doc VIP
- 2025年福州城市建设投资集团公司治理结构组织架构和部门职能.docx
- GM_T 0027-2014 清晰版 智能密码钥匙技术规范.docx VIP
- 2025年轮机英语问答题答案全 .pdf VIP
- 微生物代谢产物发酵.pptx VIP
- 新教材-普通高中教科书物理教师用书选择性必修1 电子版.pdf VIP
- 砖厂突发环境事件应急预案.pdf VIP
- 高中政治部编版必修四《哲学与文化》全册知识点填空练习(分单元课时编排)(附参考答案)(2023秋最新版).pdf VIP
文档评论(0)