欢迎来到天天文库
浏览记录
ID:48184790
大小:1.08 MB
页数:25页
时间:2020-01-18
《HAL简介与开发应用程序.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、HAL简介与开发应用程序HAL简介与开发应用程序6.1硬件抽象层(HAL)介绍6.2使用HAL开发应用程序6.1硬件抽象层(HAL)介绍1、什么是HAL:——硬件抽象层HAL提供了一个非线程的、类似UNIX的C/C++运行环境HAL系统库为嵌入式系统中的外围设备提供接口程序HAL应用程序接口(API)和ANSIC标准库综合在一起,使用户用类似C语言的库函数来访问硬件设备或文件,如printf()2、HAL的生成:NiosⅡIDE自动创建和管理HAL文件。它是用户在NiosⅡIDE中创建一个新的工程时由
2、IDE基于用户在SOPCBuilder中创建的NiosⅡ处理器系统(PTF文件)自动生成并且管理HAL文件HAL和SOPCBuilder紧密相关,如果硬件配置有了变化,HAL设备驱动配置也会自动随之改动,从而避免了由于底层硬件的变化而产生的程序错误。3、HAL提供的服务:同newlibANSIC标准库集成——提供用户熟悉的C标准库函数驱动程序——提供对系统中每个设备的访问HALAPI——提供统一的标准的接口程序(如设备访问,中断处理)系统初始化——在main函数执行之前,执行处理器和运行环境的初始化的
3、任务设备初始化——在main()函数执行前,例化和初始化系统中的每个设备4、HAL的结构:每个设备驱动管理一个硬件设备。HAL为SOPCBuilder的每一个需要驱动程序的设备实例化一个驱动程序。在NiosII开发环境中,一个设备驱动和一个特定的SOPCBuilder设备相关联NiosIIHAL的结构5、HAL支持的通用设备模型——HAL强大功能的核心文件子系统DMA设备定时器设备Flash存储设备以太网设备字符型设备通用设备模型(UART)串行发送和/或接收字符的硬件外设(只读文档系统)提供访问存储
4、在物理设备中的文件的一种机制,其驱动程序可以直接访问底层的设备,或使用一个单独的设备驱动程序(DMA控制器核)执行大批量数据传输的外设(定时器核)对时钟脉冲计数,并且能够产生周期性的中断请求外设(通用Flash接口芯片等)使用特殊的编程协议进行存储数据的非易失存储设备(以太网MAC控制器)对网络协议栈(TCP/IP协议栈)提供以太网连接的访问我们用HAL做什么?通信桥梁SOPCBUILDERNIOSIIIDE自动更新HAL简介与开发应用程序6.1硬件抽象层(HAL)系统介绍6.2使用HAL开发应用程序
5、6.2使用HAL开发应用程序嵌入式系统的软件开发可分为2部分:应用程序开发:用户软件开发的主要部分,包括系统的主程序main()和其它子程序。驱动程序:直接和底层硬件的宏定义打交道。6.2使用HAL开发应用程序NiosIIIDE工程结构NiosIIIDE工程结构6.2使用HAL开发应用程序NiosIIIDE工程结构一个NiosIIIDE工程用户工程文件夹HAL系统库文件夹6.2使用HAL开发应用程序与目标系统相关的system.h系统描述文件System.h文件构成过程一部分描述系统库的设置信息;另一
6、部分给出了每个外围设备的相信信息;6.2使用HAL开发应用程序与目标系统相关的system.h系统描述文件程序清单6.1system.h描述的UART设备#defineUART_NAME"/dev/uart"//UART的设备名称及所在路径,open()等文件操作函数可以通//过UART_NAME开打一个UART设备#defineUART_TYPE"altera_avalon_uart"//描述了UART内核的类型,应用程序员可不关心#defineUART_BASE0x00441480//UART设备
7、的寄存器基地址,驱动程序可以根据该地址对//UART寄存器进行访问#defineUART_IRQ1//UART设备的中断号,系统据此判别中断来自UART设备#defineUART_BAUD115200//在系统生成过程中预设的串口波特率#defineUART_DATA_BITS8//描述UART数据帧长度#defineUART_FIXED_BAUD0//波特率是否软件可变的标志#defineUART_PARITY'N'//是否能奇偶校验#defineUART_STOP_BITS1//UART数据包中停
8、止位的宽度#defineUART_USE_CTS_RTS0//是否使用CTS和RTS信号#defineUART_USE_EOP_REGISTER0//是否生成了EOP(EndofPacket)寄存器#defineUART_SIM_TRUE_BAUD0//仿真时的波特率#defineUART_SIM_CHAR_STREAM""//仿真时的字符流#defineUART_FREQ48000000//Avalon总线的频率,48MHz6.2使用HAL开发应用程序
此文档下载收益归作者所有