- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SOPC技术基础教程 第6章 软件开发与流程(二)
第 6 章 软件设计流程和方法
6.4 硬件抽象层库(HAL)
6.4.1 HAL 简介
HAL是轻量级(lightweight )的运行环境,提供了简单的设备驱动程序接口,应用程序
使用设备驱动程序接口同底层硬件之间进行通信。HAL应用程序接口(application program
interface——API) 同ANSI C 标准库结合在一起。HAL API使得用户可以使用熟悉的C语言
的库函数来访问硬件设备或文件,如printf() 、fopen()、fwrite()等函数。
HAL作为Nios II处理器系统的设备驱动程序软件包,为系统中的外设提供了相匹配的接
口。SOPC Builder和Nios II 软件开发工具之间的紧密集成,使得特定硬件系统的HAL可以
自动产生。当SOPC Builder产生了硬件系统,Nios II IDE或者Nios II 软件生成工具可以生成
和硬件配置相匹配的定制的HAL系统库或者板支持包 (BSP) 。如果在底层硬件上做了改动,
则HAL设备驱动配置会自动地更新,避免了底层硬件的改动产生Bug 的可能。
HAL设备驱动抽象使得应用程序和驱动程序之间很明显地区分开来。驱动抽象促进了应
用程序代码的可重用性,应用程序和底层硬件的通信依靠统一的接口函数,底层硬件的改动
对应用程序的代码没有影响。而且,HAL标准使得和已有外设相匹配的新外设的驱动程序编
写起来更加简单。
在用户使用Nios II IDE创建新工程的时候,也同时创建了HAL系统库。用户不必创建或
拷贝HAL文件,也不必编辑任何HAL 的源代码。Nios II IDE会为用户产生和管理HAL系统库。
HAL是基于一个特定的SOPC Builder系统。SOPC Builder系统即是Nios II 处理器核和外设与
存储器集成在一起的系统( 由 SOPC Builder) 。在新建工程的时候,用户必须选择相应的硬件
系统,见图6-5 。
6.4.2 HAL 体系结构
HAL提供下面的服务:
同newlib ANSI C 标准库集成——提供用户熟悉的C标准库函数。
驱动程序——提供对系统中每个设备的访问。
HAL API——为HAL 的服务提供了一个统一的、标准的接口,如设备访问、中断处理等。
系统初始化——在main()执行之前,执行处理器和运行环境的初始化的任务。
设备初始化——在main()执行之前,例化和初始化系统中的每个设备。
图 6-22 显示了基于 HAL 系统的分层结构,从硬件层到用户程序,可以看到 HAL 将硬
件层和应用程序层联系起来。
第 6 章 软件设计流程和方法
图6-22 基于 HAL 的系统的分层结构
应用程序和驱动程序
嵌入式系统的软件开发分为两部分:应用程序开发和设备驱动程序的开发。应用程序开
发占有更大的比重,包括系统的main() 函数和其它的子程序。应用程序同系统硬件资源的
通信是通过C标准库函数或者HAL API 。驱动程序是提供给应用程序开发人员开发应用程序
之用的,驱动程序通过底层的硬件访问宏直接和硬件通信。
通用设备模型
HAL为嵌入式系统中的外设种类提供了通用设备模型。如timers 、Ethernet MAC/PHY 芯
片、 字符型I/O外设。通用设备模型是HAL强大功能的核心。通用设备模型使得用户可以使
用统一的API来编写程序,不用考虑底层的硬件。
通用设备模型的种类:
HAL 为下面种类的设备提供模型:
字符型设备(Character-mode device )—— 串行发送和/或接收字符的硬件外设,如UART 。
定时器设备(Timer devices )—— 能够对时钟脉冲计数,并且能够产生周期性的中断请
求的外设。
文件子系统(File subsystems )——提供访问存储在物理设备中的文件的一种机制。取
决于内部的实现,文件子系统驱动程序可以直接访问底层的设备,或者使用一个单独的
设备驱动程序。例如,用户可以使用Flash存储设备的HAL API来编写一个Flash 的文件
子系统来访问Flash 。
以太网设备(Ethernet devices )——对网络协议栈(如Altera 的Nios II版本
您可能关注的文档
- Pro ENGINEER Wildfire 4.0中文版机械设计 07 创建工程特征.ppt
- Pro E实用教程 第4章 特征的基本操作.ppt
- PremiereProCS3实例教程 06 字幕、字幕特技与运动设置.ppt
- ProE模具设计基础教程 第10章 模具模架设计—EMX.ppt
- ProE模具设计基础教程 第11章 侧抽芯模具设计.ppt
- Pro ENGINEER Wildfire 中文版机械设计.ppt
- ProE模具设计基础教程 第2章 模具模型预处理.ppt
- ProE模具设计基础教程 第8章 模具模架设计—装配模块.ppt
- Project2003实用培训教程 第02章 建立项目计划.ppt
- ProE模具设计基础教程 第9章 模具模架设计—MoldLib.ppt
原创力文档


文档评论(0)