




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
嵌入式技术概述
——基于HAL的NIOSII系统软件开发刘兰军1/27/2023硬件抽象层HAL概述
1)什么是HAL,基于HAL进行系统软件设计的优点是什么?
硬件抽象层HAL是轻量级的运行环境,提供了设备驱动程序接口,应用程序使用设备驱动程序接口访问底层硬件。 优点: (1)HAL将应用程序与驱动程序区别开来,使底层硬件的改变对应用程 序没有影响,保证了应用程序代码的可重用性; (2)应用程序、驱动程序开发是嵌入式系统软件开发的主要组成部分, 对于应用程序开发人员,HAL提供了一套初始化和访问各类设备的 函数,统一的API对系统硬件是透明的,开发人员不必关心底层硬 件的差异; 对于驱动程序开发人员,HAL提供了一套必要的驱动函数,驱动程 序调用驱动函数来访问底层硬件,加快了驱动程序的开发。1/27/20232硬件抽象层HAL概述
2)基于HAL开发NIOSII软件的特殊优点是什么?
NIOSII处理器系统的HAL基于一个特定的SOPCBuilder系统创建,SOPCBuilder与NiosIIEDS之间的紧密集成保证了:
(1)用户在创建应用工程时,NiosIIIDE也同时创建了HAL系统库,用 户不必创建、复制、编辑HAL系统库,NiosIIIDE自动为用户管理 和维护HAL库; (2)若SOPCBuilder的硬件系统发生了改动,NiosIIIDE会自动地对 HAL系统库进行更新,保证了底层硬件与应用程序的一致性。1/27/20233硬件抽象层HAL概述
3)NIOSII处理器系统的HAL的体系结构
HAL提供的服务:1)提供newlibANSIC标准库2)提供设备驱动程序3)提供统一的HAL应用程序接口API4)提供系统初始化:main()函数执行之前,执行处理器和运行环境的初始化任务5)提供设备初始化:main()函数执行之前,例化和初始化系统中的各个设备1/27/20234硬件抽象层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串口配置控制器1/27/20235硬件抽象层HAL概述
3)NIOSII处理器系统的HAL的体系结构 HAL系统库对设备提供的三个服务层次:
通用设备模型、驱动程序、头文件和访问函数
(2)头文件和访问函数:对于部分NIOSII系统外设和一些自定制外设,HAL只提供头文件和访问函数。
NIOSII系统的通用IO核:PIO核 用户自定制的外设
此外,对于具有特殊硬件特性的外设,不能使用通用API,HAL提供了UNIX类型的ioctl()函数1/27/20236基于HAL的NIOSII系统应用程序开发
1)NIOSIIIDE工程结构HAL系统库工程包含了所有的用户程序与系统硬件接口的必要信息HAL系统库工程紧密依赖于SOPCBuiler系统,保证了HAL与目标硬件的同步1/27/20237基于HAL的NIOSII系统应用程序开发
2)系统描述文件system.h
system.h文件提供了完整的NIOSII系统硬件的描述,包括:
外设的硬件配置 外设的基地址 外设的中断请求优先级 外设的符号名1/27/20238基于HAL的NIOSII系统应用程序开发
2)系统描述文件system.h1/27/20239基于HAL的的NIOSII系统应用用程序开发3)数据宽度度和HAL类类型定义对于嵌入式处处理器,准确确的数据宽度度和精度定义义是非常重要要的,而标准C的数据据类型宽度取取决于编译器器的约定。头文件alt_types.h定义了HAL类型1/7/202310基于HAL的的NIOSII系统应用用程序开发4)文件系统统HAL提供支支持UNIX风格的文件件访问机制,,用户能够在在基于HAL的文件系统统中访问文件件:(1)可以使使用newlibC库库中的文件I/O函数(2)可以使使用HAL系系统库提供的的UNIX风风格的文件I/O函数1/7/202311基于HAL的的NIOSII系统应用用程序开发4)文件系统统HAL提供支支持UNIX风格的文件件访问机制,,用户能够在在基于HAL的文件系统统中访问文件件:(3)HAL将一个子文文件系统注册册为HAL文文件系统的一一个挂载点((mountpoint);(4)HAL文件系统没没有当前目录录的概念,访访问文件时必必须使用绝对对路径径;(5)HAL文件系统允允许通过UNIX风格的的路径名管理理字符型设备备,HAL将将字符符型设设备注册为HAL文件系系统的节点。。1/7/202312基于HAL的的NIOSII系统应用用程序开发4)文件系统统从只读zip文件子系统统ozipfs读取字符::使用newlibC库库中的文件I/O函数1/7/202313基于HAL的的NIOSII系统应用用程序开发5)对字符型型设备的访问问(1)使用标准输入、标标准输出和标标准错误通道道访问字符型设设备用户可以通过过在系统库属属性设置中将将标准输入、标标准输出和标标准错误通道道与某一特定的的字符型设备备关联起来发送字符到标标准输出stdout相相关联的设备备1/7/202314基于HAL的NIOSII系系统应用用程序开开发5)对字字符型设设备的访访问(2)使使用通用的访访问文件件的方式式访问字符符型设备备写字符到到UART11/7/202315基于HAL的NIOSII系系统应用用程序开开发6)定时时器设备备的使用用HALAPI提供了了两种定定时器设设备的驱驱动程序序:系统时钟钟驱动程程序:支持报报警功能能,用于于调度程程序时间戳驱驱动程序序:支持高高精度时时间测量量使用定时时器设备备,系统统硬件中中必须包包含定时时器外设设,某个个定时器器外设不不能同时时作为系系统时钟钟和时间间戳1/7/202316基于HAL的NIOSII系系统应用用程序开开发6)定时时器设备备的使用用(1)系统时钟钟驱动程程序用户通过过在NIOSIIIDE的系统统库属性性中设置置来指定定系统时时钟的定定时器外外设。针对系统统时钟,,HAL提供的的标准UNIX函数包包括:gettimeofday():获得得当前时时间settimeofday():设置置当前时时间times():获获得已已经发生生的ticks数目alt_nticks():获获得系统统时钟的的当前值值(系统统复位后后经历的的时间))alt_ticks_per_second():获获得系系统时钟钟的速率率1/7/202317基于HAL的NIOSII系系统应用用程序开开发6)定时时器设备备的使用用(1)系统时钟钟驱动程程序基于系统统时钟的的报警注册:在在指定的的时刻执执行某个个函数可以通过过调用alt_alarm_stop()取消消一个报警。1/7/202318基于HAL的NIOSII系系统应用用程序开开发6)定时时器设备备的使用用(2)时间戳驱驱动程序序时间戳测量比系系统时钟钟精度高高的时间间间隔,,HAL只支持持一个时时间戳驱驱动程序序,用户户可以在在NIOSIIIDE的系系统库属属性中指指定时间间戳设备备的定时时器外设设。时间戳驱驱动程序序相关的的函数包包括:alt_timestamp_start():启动动时间戳戳计数器器alt_timestamp():返回回时间戳戳计数器器的当前前值alt_timestamp_start():alt_timestamp()之后的的调用,,复位计计数器为为0alt_timestamp_freq():获得时时间戳计数器器的速率(一一般为系统主主频)1/7/202319基于HAL的的NIOSII系统应用用程序开发7)FLASH设备的使使用HAL对FLASH设备备的支持包括括:(1)提供写写FLASH的HALAPI:FLASH存存储器的存储储协议一般比比较特殊(2)提供读读FLASH的HALAPI:大大多数FLASH的读操操作可将FLASH看成成简单的的存存储器,无需需调用HALAPI,,但访问具有有特殊读数据据协议的FLASH时时(如EPCSFLASH)),必须调用用HALAPI。HALAPI提供两种种层次的FLASH访问问:简单的FLASH访问和精细的FLASH访问1/7/202320基于HAL的的NIOSII系统应用用程序开发7)FLASH设备的使使用简单FLASH访问:函数写缓冲数数据到FLASH和从FLASH读读数据都是以以分区((block)的层次次进行的,写写FLASH时,若缓冲冲器比一个完完整的分分区小小,函数会擦擦除整个分区区。Alt_flash_open_dev():打开FLASH设设备,获得FLASH设设备的文件句句柄alt_write_flash():写写数据到FLASH设备备(会先擦除一个个分区,导致致不期望望的的数据擦除)1/7/202321基于HAL的的NIOSII系统应用用程序开发7)FLASH设备的使使用简单FLASH访问:函数写缓冲数数据到FLASH和从FLASH读读数据都是以以分区((block)的层次次进行的,写写FLASH时,若缓冲冲器比一个完完整的分分区小小,函数会擦擦除整个分区区。alt_read_flash():从FLASH设设备读数据alt_flash_close_dev():关闭闭一个FLASH设备1/7/202322基于HAL的的NIOSII系统应用用程序开发7)FLASH设备的使使用精细FLASH访问:函数写缓冲数数据到FLASH和从FLASH读读数据都是以以缓冲器的层层次次进行的,,写FLASH时,若缓缓冲器比一个个完整的分区区小,函数保保留之前存在在于FLASH中的新写写数据单元之之上和之下的的数据。精细FLASH访问是将将写FLASH过程自动动化了:从FLASH器件的本质质来说,用户户是不能清除除一个分区的的单独地址的的,用户要改改变一个分区区内特定位置置的内容而不不改变分区内内其他位置的的内容,只能能是先读出分分区的整个内内容到缓冲器器中,在缓冲冲器中改变相相应的内容,,将整个分区区擦除,最后后将整个缓冲冲器内容写到到FLASH的整个分区区中。1/7/202323基于HAL的NIOSII系系统应用程程序开发7)FLASH设备备的使用精细FLASH访问问的相关函数数:alt_get_flash_info():获得擦擦除区域的的数目、每每个区域内内分区的数数目目、每个个分区的大大小1/7/202324基于HAL的NIOSII系系统应用程程序开发7)FLASH设备备的使用精细FLASH访问问的相关函数数:alt_erase_flash():擦擦除FLASH的一一个单独分分区alt_write_flash_block():写FLASH的的一个单独独分区1/7/202325基于HAL的NIOSII系系统应用程程序开发8)DMA设备的使使用在HALDMA设设备模型中中,DMA传输有两两种分类:发送或接接收。HAL提供供两个设备备驱动来实实现发送通道和接收通道:发送通道道从数据源源的缓冲器器获得数据据,发送数数据到目的的设备;接接收通道接接收数据,,并将数据据存到目的的缓冲器中中。1/7/202326基于HAL的NIOSII系系统应用程程序开发8)DMA设备的使使用(1)DMA发送通通道与DMA发发送通道相相关的HAL函数包包括:alt_dma_txchan_open():获得得DMA发发送句柄;;alt_dma_txchan_send():发送送一个发送送请求;1/7/202327基于HAL的NIOSII系系统应用程程序开发8)DMA设备的使使用(1)DMA发送通通道与DMA发发送通道相相关的HAL函数包包括:alt_dma_txchan_space():返返回当前还还有多少个个发送请求求可以加入入到发送送队列中;;alt_dma_txchan_ioctl():执执行发送设设备中与设设备相关的的操作;1/7/202328基于HAL的NIOSII系系统应应用程程序开开发8)DMA设备备的使使用(2))DMA接接收通通道与DMA接接收通通道相相关的的HAL函函数包包括::alt_dma_rxchan_open():获得得DMA接接收句句柄;;alt_dma_rxchan_prepare():发发送一一个接接收请请求;;1/7/202329基于HAL的NIOSII系系统应应用程程序开开发8)DMA设备备的使使用(2))DMA接接收通通道与DMA接接收通通道相相关的的HAL函函数包包括::alt_dma_rxchan_depth():返返回设设备可可允许许的最最大接接收请请求数数;alt_dma_txchan_ioctl():执执行接接收设设备中中与设设备相相关的的操作作;(3))存储储器到到存储储器的的DMA传传输存储器到到存储器器的DMA传输输同时包包括DMA接接收通道道和DMA发发送通道道。1/7/202330基于HAL的NIOSII系系统应用用程序开开发9)程序序的入口口点和启启动顺序序程序的入入口点有有两个:main()、、alt_main()Main():一种种系统托托管的应应用,在在main())开始时时,一个个托管的的应用运运行环环境和系系统服务务均已准准备好,,HAL负责初初始化系系统。Alt_main():一一种独立立的应用用,用户户可以对对系统初初始化进进行完全全控制1/7/202331基于HAL的NIOSII系系统应用用程序开开发9)程序序的入口口点和启启动顺序序main()作作为入口口点的系系统启动动顺序1/7/202332基于HAL的NIOSII系系统应用用程序开开发9)程序序的入口口点和启启动顺序序main()作作为入口口点时HAL提提供的默默认的alt_main()的函函数实现现1/7/202333基于HAL的NIOSII系系统的异异常处理理1)NIOSII异常常处理概概述NIOSII异异常处理理以经典典的RISC方方式实现现:所有的异异常类型型都由一一个位于于异常地地址(exceptionaddress)的的异常处处理程序序处理,,而没有有采用中中断向量量表的方方式。异常类型型:硬件中断断、软件异常常(未实实现指令令、软件件陷阱、、其他异异常)1/7/202334基于H
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 纺纱生产过程中的清洁生产实践考核试卷
- 小麦加工对麸皮营养价值的影响考核试卷
- 环保工程环保产品认证与标识考核试卷
- 燃气具行业智能化服务与物联网技术考核试卷
- 印刷机智能检测与控制系统的行业发展前景考核试卷
- 海洋油气开采项目的生命周期管理考核试卷
- 内蒙古民族大学《测绘学概论》2023-2024学年第二学期期末试卷
- 江西财经大学《介入放射学》2023-2024学年第二学期期末试卷
- 山东管理学院《安装工程估价及软件应用水暖课程设计》2023-2024学年第二学期期末试卷
- 四川大学《数字特技》2023-2024学年第二学期期末试卷
- 劳动工伤起诉状
- 第4章-选区激光熔化工艺及材料课件
- 2023届高考写作指导:“寻找温暖”与“成为灯火”课件
- 2022年上海市工业技术学校招聘考试真题
- 临时用电演示文稿
- 部编版语文一年级下册第六单元大单元教学任务群设计
- JJG 646-2006移液器
- 部编小学语文六年级下册古诗词诵读(十首)课件
- 建筑业十项新技术应用示范工程申报材料
- 版式设计概述+设计原则课件
- 平面构成课件完整版本
评论
0/150
提交评论