




已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
嵌入式技术概述基于HAL的NIOSII系统软件开发,硬件抽象层HAL概述,1)什么是HAL,基于HAL进行系统软件设计的优点是什么?硬件抽象层HAL是轻量级的运行环境,提供了设备驱动程序接口,应用程序使用设备驱动程序接口访问底层硬件。优点:(1)HAL将应用程序与驱动程序区别开来,使底层硬件的改变对应用程序没有影响,保证了应用程序代码的可重用性;(2)应用程序、驱动程序开发是嵌入式系统软件开发的主要组成部分,对于应用程序开发人员,HAL提供了一套初始化和访问各类设备的函数,统一的API对系统硬件是透明的,开发人员不必关心底层硬件的差异;对于驱动程序开发人员,HAL提供了一套必要的驱动函数,驱动程序调用驱动函数来访问底层硬件,加快了驱动程序的开发。,硬件抽象层HAL概述,2)基于HAL开发NIOSII软件的特殊优点是什么?NIOSII处理器系统的HAL基于一个特定的SOPCBuilder系统创建,SOPCBuilder与NiosIIEDS之间的紧密集成保证了:(1)用户在创建应用工程时,NiosIIIDE也同时创建了HAL系统库,用户不必创建、复制、编辑HAL系统库,NiosIIIDE自动为用户管理和维护HAL库;(2)若SOPCBuilder的硬件系统发生了改动,NiosIIIDE会自动地对HAL系统库进行更新,保证了底层硬件与应用程序的一致性。,硬件抽象层HAL概述,3)NIOSII处理器系统的HAL的体系结构,HAL提供的服务:1)提供newlibANSIC标准库2)提供设备驱动程序3)提供统一的HAL应用程序接口API4)提供系统初始化:main()函数执行之前,执行处理器和运行环境的初始化任务5)提供设备初始化:main()函数执行之前,例化和初始化系统中的各个设备,硬件抽象层HAL概述,3)NIOSII处理器系统的HAL的体系结构HAL系统库对设备提供的两个服务层次:通用设备模型和驱动程序、头文件和访问函数(1)通用设备模型和驱动程序:通用设备模型是HAL强大功能的核心,用户可采用统一的API编写程序访问提供通用设备模型的设备;HAL为大多数NIOSII系统外设提供驱动程序,使用户可以通过HALAPI访问硬件字符型设备:UART核、JTAGUART核、LCD16207显示控制器定时器设备:TIMER核文件子系统:基于ALTERA主机的文件系统、ALTERA压缩只读文件子系统以太网设备:Ethernet核、LAN91C111EthernetMAC/PHY控制器DMA设备:DMA控制器核、Scatter-gatherDMA控制器核FLASH存储设备:CFIFLASH接口、EPCS串口配置控制器,硬件抽象层HAL概述,3)NIOSII处理器系统的HAL的体系结构HAL系统库对设备提供的三个服务层次:通用设备模型、驱动程序、头文件和访问函数(2)头文件和访问函数:对于部分NIOSII系统外设和一些自定制外设,HAL只提供头文件和访问函数。NIOSII系统的通用IO核:PIO核用户自定制的外设此外,对于具有特殊硬件特性的外设,不能使用通用API,HAL提供了UNIX类型的ioctl()函数,基于HAL的NIOSII系统应用程序开发,1)NIOSIIIDE工程结构,HAL系统库工程包含了所有的用户程序与系统硬件接口的必要信息,HAL系统库工程紧密依赖于SOPCBuiler系统,保证了HAL与目标硬件的同步,基于HAL的NIOSII系统应用程序开发,2)系统描述文件system.hsystem.h文件提供了完整的NIOSII系统硬件的描述,包括:外设的硬件配置外设的基地址外设的中断请求优先级外设的符号名,基于HAL的NIOSII系统应用程序开发,2)系统描述文件system.h,基于HAL的NIOSII系统应用程序开发,3)数据宽度和HAL类型定义对于嵌入式处理器,准确的数据宽度和精度定义是非常重要的,而标准C的数据类型宽度取决于编译器的约定。头文件alt_types.h定义了HAL类型,基于HAL的NIOSII系统应用程序开发,4)文件系统HAL提供支持UNIX风格的文件访问机制,用户能够在基于HAL的文件系统中访问文件:(1)可以使用newlibC库中的文件I/O函数(2)可以使用HAL系统库提供的UNIX风格的文件I/O函数,基于HAL的NIOSII系统应用程序开发,4)文件系统HAL提供支持UNIX风格的文件访问机制,用户能够在基于HAL的文件系统中访问文件:(3)HAL将一个子文件系统注册为HAL文件系统的一个挂载点(mountpoint);(4)HAL文件系统没有当前目录的概念,访问文件时必须使用绝对路径;(5)HAL文件系统允许通过UNIX风格的路径名管理字符型设备,HAL将字符型设备注册为HAL文件系统的节点。,基于HAL的NIOSII系统应用程序开发,4)文件系统从只读zip文件子系统ozipfs读取字符:,使用newlibC库中的文件I/O函数,基于HAL的NIOSII系统应用程序开发,5)对字符型设备的访问(1)使用标准输入、标准输出和标准错误通道访问字符型设备用户可以通过在系统库属性设置中将标准输入、标准输出和标准错误通道与某一特定的字符型设备关联起来,发送字符到标准输出stdout相关联的设备,基于HAL的NIOSII系统应用程序开发,5)对字符型设备的访问(2)使用通用的访问文件的方式访问字符型设备,写字符到UART1,基于HAL的NIOSII系统应用程序开发,6)定时器设备的使用HALAPI提供了两种定时器设备的驱动程序:系统时钟驱动程序:支持报警功能,用于调度程序时间戳驱动程序:支持高精度时间测量使用定时器设备,系统硬件中必须包含定时器外设,某个定时器外设不能同时作为系统时钟和时间戳,基于HAL的NIOSII系统应用程序开发,6)定时器设备的使用(1)系统时钟驱动程序用户通过在NIOSIIIDE的系统库属性中设置来指定系统时钟的定时器外设。针对系统时钟,HAL提供的标准UNIX函数包括:gettimeofday():获得当前时间settimeofday():设置当前时间times():获得已经发生的ticks数目alt_nticks():获得系统时钟的当前值(系统复位后经历的时间)alt_ticks_per_second():获得系统时钟的速率,基于HAL的NIOSII系统应用程序开发,6)定时器设备的使用(1)系统时钟驱动程序基于系统时钟的报警注册:在指定的时刻执行某个函数可以通过调用alt_alarm_stop()取消一个报警。,基于HAL的NIOSII系统应用程序开发,6)定时器设备的使用(2)时间戳驱动程序时间戳测量比系统时钟精度高的时间间隔,HAL只支持一个时间戳驱动程序,用户可以在NIOSIIIDE的系统库属性中指定时间戳设备的定时器外设。时间戳驱动程序相关的函数包括:alt_timestamp_start():启动时间戳计数器alt_timestamp():返回时间戳计数器的当前值alt_timestamp_start():alt_timestamp()之后的调用,复位计数器为0alt_timestamp_freq():获得时间戳计数器的速率(一般为系统主频),基于HAL的NIOSII系统应用程序开发,7)FLASH设备的使用HAL对FLASH设备的支持包括:(1)提供写FLASH的HALAPI:FLASH存储器的存储协议一般比较特殊(2)提供读FLASH的HALAPI:大多数FLASH的读操作可将FLASH看成简单的存储器,无需调用HALAPI,但访问具有特殊读数据协议的FLASH时(如EPCSFLASH),必须调用HALAPI。HALAPI提供两种层次的FLASH访问:简单的FLASH访问和精细的FLASH访问,基于HAL的NIOSII系统应用程序开发,7)FLASH设备的使用简单FLASH访问:函数写缓冲数据到FLASH和从FLASH读数据都是以分区(block)的层次进行的,写FLASH时,若缓冲器比一个完整的分区小,函数会擦除整个分区。Alt_flash_open_dev():打开FLASH设备,获得FLASH设备的文件句柄alt_write_flash():写数据到FLASH设备(会先擦除一个分区,导致不期望的数据擦除),基于HAL的NIOSII系统应用程序开发,7)FLASH设备的使用简单FLASH访问:函数写缓冲数据到FLASH和从FLASH读数据都是以分区(block)的层次进行的,写FLASH时,若缓冲器比一个完整的分区小,函数会擦除整个分区。alt_read_flash():从FLASH设备读数据alt_flash_close_dev():关闭一个FLASH设备,基于HAL的NIOSII系统应用程序开发,7)FLASH设备的使用精细FLASH访问:函数写缓冲数据到FLASH和从FLASH读数据都是以缓冲器的层次进行的,写FLASH时,若缓冲器比一个完整的分区小,函数保留之前存在于FLASH中的新写数据单元之上和之下的数据。精细FLASH访问是将写FLASH过程自动化了:从FLASH器件的本质来说,用户是不能清除一个分区的单独地址的,用户要改变一个分区内特定位置的内容而不改变分区内其他位置的内容,只能是先读出分区的整个内容到缓冲器中,在缓冲器中改变相应的内容,将整个分区擦除,最后将整个缓冲器内容写到FLASH的整个分区中。,基于HAL的NIOSII系统应用程序开发,7)FLASH设备的使用精细FLASH访问的相关函数:alt_get_flash_info():获得擦除区域的数目、每个区域内分区的数目、每个分区的大小,基于HAL的NIOSII系统应用程序开发,7)FLASH设备的使用精细FLASH访问的相关函数:alt_erase_flash():擦除FLASH的一个单独分区alt_write_flash_block():写FLASH的一个单独分区,基于HAL的NIOSII系统应用程序开发,8)DMA设备的使用在HALDMA设备模型中,DMA传输有两种分类:发送或接收。HAL提供两个设备驱动来实现发送通道和接收通道:发送通道从数据源的缓冲器获得数据,发送数据到目的设备;接收通道接收数据,并将数据存到目的缓冲器中。,基于HAL的NIOSII系统应用程序开发,8)DMA设备的使用(1)DMA发送通道与DMA发送通道相关的HAL函数包括:alt_dma_txchan_open():获得DMA发送句柄;alt_dma_txchan_send():发送一个发送请求;,基于HAL的NIOSII系统应用程序开发,8)DMA设备的使用(1)DMA发送通道与DMA发送通道相关的HAL函数包括:alt_dma_txchan_space():返回当前还有多少个发送请求可以加入到发送队列中;alt_dma_txchan_ioctl():执行发送设备中与设备相关的操作;,基于HAL的NIOSII系统应用程序开发,8)DMA设备的使用(2)DMA接收通道与DMA接收通道相关的HAL函数包括:alt_dma_rxchan_open():获得DMA接收句柄;alt_dma_rxchan_prepare():发送一个接收请求;,基于HAL的NIOSII系统应用程序开发,8)DMA设备的使用(2)DMA接收通道与DMA接收通道相关的HAL函数包括:alt_dma_rxchan_depth():返回设备可允许的最大接收请求数;alt_dma_txchan_ioctl():执行接收设备中与设备相关的操作;(3)存储器到存储器的DMA传输存储器到存储器的DMA传输同时包括DMA接收通道和DMA发送通道。,基于HAL的NIOSII系统应用程序开发,9)程序的入口点和启动顺序程序的入口点有两个:main()、alt_main()Main():一种系统托管的应用,在main()开始时,一个托管的应用运行环境和系统服务均已准备好,HAL负责初始化系统。Alt_main():一种独立的应用,用户可以对系统初始化进行完全控制,基于HAL的NIOSII系统应用程序开发,9)程序的入口点和启动顺序main()作为入口点的系统启动顺序,基于HAL的NIOSII系统应用程序开发,9)程序的入口点和启动顺序main()作为入口点时HAL提供的默认的alt_main()的函数实现,基于HAL的NIOSII系统的异常处理,1)NIOSII异常处理概述NIOSII异常处理以经典的RISC方式实现:所有的异常类型都由一个位于异常地址(exceptionaddress)的异常处理程序处理,而没有采用中断向量表的方式。异常类型:硬件中断、软件异常(未实现指令、软件陷阱、其他异常),基于HAL的NIOSII系统的异常处理,2)NIOSII异常处理相关概念,基于HAL的NIOSII系统的异常处理,2)NIOSII异常处理相关概念,基于HAL的NIOSII系统的异常处理,3)NIOSII响应一个异常时所做的工作,基于HAL的NIOSII系统的异常处理,4)中断服务程序ISR的相关内容(1)HAL提供的硬件中断处理函数,基于HAL的NIOSII系统的异常处理,4)中断服务程序ISR的相关内容(2)编写ISR,基于HAL的NIOSII系统的异常
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中学生网络安全宣传活动方案
- 农村生活污水处理项目实施方案
- (2025年标准)电梯外购协议书
- 2025福建兵工装备有限公司校园招聘8人考试模拟试题及答案解析
- 2025年芜湖高新控股集团有限公司及其子公司招聘7人考试备考试题及答案解析
- 2025年福建省泉州市石狮一中秋季招聘编外合同教师(二)考试备考试题及答案解析
- 2025中国四维测绘技术有限公司业务副总经理招聘考试备考题库及答案解析
- 2025江苏宿迁泗阳县部分县直机关事业单位转任(选聘)工作人员24人笔试模拟试题及答案解析
- 2025四川南充阆中市中医医院招聘编外工作人员6人笔试模拟试题及答案解析
- 2025年度南平市武夷山水品牌运营管理有限公司正式员工招聘14人笔试参考题库附答案解析
- 2025年秋季学期第一次中层干部会议上校长讲话:凝心聚力明方向沉心落力干实事
- 广西2025年公需科目学习考试试题及答案4
- 代加工板材合同协议书范本
- 2025年事业单位工勤技能-湖南-湖南地质勘查员二级(技师)历年参考题库含答案解析(5卷)
- 肝炎的分型及护理
- 高中语文38篇课内文言文挖空一遍过(教师版)
- 2025年高考真题物理(四川卷)-2
- 企业负责人财税知识培训
- 【前程无忧】2025校招人才素质洞察白皮书
- 船舶制造公司管理制度
- 2025至2030年中国石油化工自动化仪表产业发展动态及未来趋势预测报告
评论
0/150
提交评论