电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

硬件抽象层ppt课件

58页
  • 卖家[上传人]:我***
  • 文档编号:149212593
  • 上传时间:2020-10-25
  • 文档格式:PPT
  • 文档大小:182.50KB
  • / 58 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、硬件抽象层,BSP的概念,BSP全称“板级支持包”(Board Support Packages),说的简单一点,就是一段启动代码,和计算机主板的BIOS差不多,但提供的功能区别就相差很大 在Windows CE中,BSP是驱动程序、OEM适应层(OEM Adaptation Layers,OAL)、硬件抽象层(HAL)以及启动设备和使外设正常工作所需BIOS文件的集合。,BSP和BIOS区别,BIOS主要是负责在电脑开启时检测、初始化系统设备(设置栈指针,中断分配,内存初始化.)、装入操作系统并调度操作系统向硬件发出的指令。 BSP是和操作系统绑在一起运行,尽管BSP的开始部分和BIOS所做的工作类似,但是 BSP还包含和系统有关的基本驱动 BIOS程序是用户不能更改,编译编程的,只能对参数进行修改设置,但是程序员还可以编程修改BSP,在BSP中任意添加一些和系统无关的驱动或程序,甚至可以把上层开发的统统放到BSP中,不同系统中的BSP,一个嵌入式操作系统针对不同的CPU,会有不同的BSP 即使同一种CPU,由于外设的一点差别BSP相应的部分也不一样,BSP的特点与功能,硬件相关性

      2、因为嵌入式实时系统的硬件环境具有应用相关性,所以,作为高层软件与硬件之间的接口,BSP必须为操作系统提供操作和控制具体硬件的方法。 操作系统相关性 不同的操作系统具有各自的软件层次结构,因此,不同的操作系统具有特定的硬件接口形式。,BSP的设计与实现,为实现上述两部分功能,设计一个完整的BSP需要完成两部分工作: (1)设计初始化过程,完成嵌入式系统的初始化; (2)设计硬件相关的设备驱动,完成操作系统及应用程序对具体硬件的操作。,嵌入式系统初始化以及BSP的功能,嵌入式系统的初始化过程是一个同时包括硬件初始化和软件初始化的过程;而操作系统启动以前的初始化操作是BSP的主要功能之一 初始化过程总可以抽象为三个主要环境,按照自底向上、从硬件到软件的次序依次为:片级初始化、板级初始化和系统级初始化。,初始化过程,片级初始化: 主要完成CPU的初始化,包括设置CPU的核心寄存器和控制寄存器,CPU核心工作模式以及CPU的局部总线模式等。片级初始化把CPU从上电时的缺省状态逐步设置成为系统所要求的工作状态。这是一个纯硬件的初始化过程。 板级初始化: 完成CPU以外的其他硬件设备的初始化。除此之

      3、外,还要设置某些软件的数据结构和参数,为随后的系统级初始化和应用程序的运行建立硬件和软件环境。这是一个同时饮食软硬件两部分在内的初始化过程。 系统级初始化: 这是一个以软件初始化为主的过程,主要进行操作系统初始化。BSP将控制转交给操作系统,由操作系统进行余下的初始化操作。包括加载和初始化与硬件无关的设备驱动程序,建立系统内存区,加载并初始化其他系统软件模块,比如网络系统、文件系统等;最后,操作系统创建应用程序环境并将控制转交给应用程序的入口。,硬件相关的设备驱动程序,BSP另一个主要功能是硬件相关的设备驱动。 与初始化过程相反,硬件相关的设备驱动程序的初始化和使用通常是一个从高层到底层的过程。 尽管BSP中包含硬件相关的设备驱动程序,但是这些设备驱动程序通常不直接由BSP使用 而是在系统初始化过程中由BSP把它们与操作系统中通用的设备驱动程序关联起来,并在随后的应用中由通用的设备驱动程序调用,实现对硬件设备的操作。,BSP开发的前提和步骤,开发的前提 : 熟悉硬件方面:使用CPU等 熟悉工具方面:电表,示波器,逻辑分析仪,硬件仿真器,仿真调试环境。 语言方面:汇编语言,C语言。 BS

      4、P开发的一般步骤如下: 硬件主板研制,测试。 操作系统的选定,BSP编程。 上层应用程序的开发。,编写函数,对板卡中每个芯片的操作都通过多个函数来完成 如果应用程序对板卡的操作都直接通过调用中的函数来完成,那将很不利于源程序的调试 ,并降低了程序的可移植性 把能完成某个特定功能的函数封装在一个库文件中,并放在应用程序与之间 对每个芯片来说,都应当有初始化函数和状态读取函数,设计实现BSP的一般方法,BSP的开发需要具备一定的硬件知识 要求掌握操作系统所定义的BSP接口 两种快捷方法 以经典BSP为参考 使用操作系统提供的BSP模板 设计实现BSP两部分功能时应采用以下两种不同方法 “自底向上”地实现BSP中的初始化操作 “自顶向下”地设计硬件相关的驱动程序,BSP设计方法的不足与改进,目前BSP的设计与实现主要是针对某些特定的文件进行修改 直接修改相关文件容易造成代码的不一致性,增加软件设计上的隐形错误,从而增加系统调试和代码维护的难度 解决这个问题的一个可行办法是:设计实现一种具有图形界面的BSP开发设计向导,由该向导指导设计者逐步完成BSP的设计和开发,并最终由向导生成相应的BSP

      5、文件,而不再由设计人员直接对源文件进行修改。,驱动程序,嵌入式Linux驱动程序开发 常用的系统支持 Linux系统网络设备驱动程序 编写Linux网络驱动程序中需要注意的问题,LINUX驱动开发,Agenda,基本原理 内核模块 设备驱动的结构 Linux 2.6内核设备模型 中断处理 各种接口设计与驱动开发实例,Linux系统驱动,Linux中设备被抽象出来,所有设备都看成文件 设备的读写和普通文件一样 设备驱动程序主要完成这些功能: 探测设备和初始化设备 从设备接收数据并提交给内核 从内核接收数据送到设备 检测和处理设备错误,Linux设备驱动程序分类,Linux系统的设备分为字符设备(char device),块设备(block device)和网络设备(network device)三种 字符设备是指存取时没有缓存的设备。 块设备的读写都有缓存来支持,并且块设备必须能够随机存取(random access) 网络设备在Linux里做专门的处理,编写驱动程序的一些基本概念,读写 几乎所有设备都有输入和输出。每个驱动程序要负责本设备的读写操作。操作系统的其他不需要知道对设备的具体

      6、读写操作怎样进行,这些都由驱动程序屏蔽掉了。操作系统定义好一些读写接口,由驱动程序完成具体的功能。在驱动程序初始化时,需要把具有这种接口的读写函数注册进操作系统。 中断 中断在现代计算机结构中有重要的地位。操作系统必须提供驱动程序响应中断的能力。一般是把一个中断处理程序注册到系统中去。操作系统在硬件中断发生后调用驱动程序的处理程序。Linux支持中断的共享,即多个设备共享一个中断。 时钟 在实现驱动程序时,很多地方会用到时钟。如某些协议里的超时处理,没有中断机制的硬件的轮询等。操作系统应为驱动程序提供定时机制。一般是在预定的时间过了以后回调注册的时钟函数。,LINUX设备的分类,字符设备 串口,终端,触摸屏 ls -l /dev/ttyS0 crw-rw-rw- 1 root uucp 4, 64 4月 1 19:56 /dev/ttyS0 块设备 FLASH,RAMDISK,硬盘 ls -l /dev/mtdblock3 brw-r-r- 1 505 505 31, 3 Feb 19 2005 /dev/mtdblock3 网络设备 ifconfig -a,设备文件与设备号,用户通过

      7、设备文件访问设备 每个设备用一个主设备号和次设备号标识,设备驱动的功能,管理I/O设备 上层软件的抽象操作与设备操作的转换,内核模块,Linux内核运行时动态扩展的一种技术 一组可以动态加载/卸载的代码 Linux驱动以内核模块的方式实现,LINUX内核模块的框架,static int init_routine (void) void cleanup_routine(void) module_init(init_routine); module_exit(cleanup_routine); MODULE_LICENSE(GPL);,内核模块的编译和加载,Kconfig Makefile,Kconfig与Makefile的关系,Kconfig,语法 config config options 类型定义 依赖性定义 帮助定义,Kconfig示例,Makefile示例,定义示例 obj-y += hello.o obj-m += hello.o obj-$(CONFIG_HELLO_MODULE) += hello.o 编译 make -C M = $PWD modules,设备驱动的结构,

      8、驱动与内核的接口 注册/卸载 VFS接口 数据交互 中断注册 硬件设备接口 硬件探测 初始化 读写访问 设备控制,设备驱动与VFS的接口,简单字符设备驱程的框架,static struct file_operations driver_fops = ; int _init init_routine (void) cdev_add(); return 0; void cleanup_routine(void) cdev_del(); ,内核与用户空间数据交换方法,copy_to_user(void _user *to, const void *from, unsigned long n); copy_from_user(void *to, const void _user *from, unsigned long n);,Linux 2.6内核设备模型,Linux 2.6内核在整个系统范围内对硬件设备进行抽象,建立了一个统一的设备模型 四个重要的数据结构 struct kobject struct kset struct kobj_type struct subsystem,什么是中断

      9、Linux中的中断处理 中断处理程序的编写 中断处理程序的注册与释放,中断处理,工作推后执行的机制,中断处理程序要求短小,处理快。 为了尽快处理中断,以免发生中断丢失,实时性要求不高的工作推后执行。 给LINUX带来实时性不好恶名的bottom half机制在2.6内核中已不再使用。,工作推后执行的机制,软中断 Tasklet 工作队列(work queue),软中断,执行频率或连续性要求很高的强实时性系统工作,一般不用。 HI_SOFTIRQ优先级高的tasklets TIMER_SOFTIRQ定时器软中断 NET_TX_SOFTIRQ网络数据包TX NET_RX_SOFTIRQ网络数据包RX SCSI_SOFTIRQSCSI软中断 TASKLET_SOFTIRQtasklets软中断,tasklets,最常用的延迟执行机制,与软中断类似 通过软中断实现,接口更简单,工作队列(work queue),将工作交给内核线程执行 允许重新调度或睡眠 通常可以用内核线程代替 与tasklet使用的区别 若推后执行的任务不需要休眠taklet/softirq,内核模块,模块是内核的一部分,但是并没有被编译到内核里去。它们被分别编译和连接成目标文件。 用命令insmod插入一个模块到内核中,用命令rmmod卸载一个模块 在Linux内核中,以下内容一般编译成模块: 大多数的驱动程序。包括SCSI设备,CD-ROM,网络设备,不常用的字符设备,如打印机,watchdog等。 大多数文件系统,理论上除了根文件系统不能是模块,其他文件系统都可以是模块。 一些内核支持的不常用的可执行文件格式,如binfmt_misc。,kmod 和高级模块化,Linux 提供了对模块自动加载和卸载的支持 要利用这一特性,在编译内核前进行的配置中,必须打开对 kmod 的支持选项。 一旦内核试图访问某种资源并发现该资源不可用时,它会对 kmod 子系统进行一次特殊的调用而不仅仅是返回一个错误 按需加载的例子 :ALSA(Advanced Linux Sound Architecture)声卡驱动程序组的实现,常用的系统支持,内存申请和释放 中断 时钟 I/O 中断打开关闭 打印信息 注册驱动程序,内存申请和释放,include/linux/

      《硬件抽象层ppt课件》由会员我***分享,可在线阅读,更多相关《硬件抽象层ppt课件》请在金锄头文库上搜索。

      点击阅读更多内容
    TA的资源
  • 2020届中考英语备考复习-作文课件

    2020届中考英语备考复习-作文课件

  • 2019年中考英语复习-专题十五-交际运用(试卷部分)课件

    2019年中考英语复习-专题十五-交际运用(试卷部分)课件

  • 2019届二轮复习-高中英语-情态动词和虚拟语气课件

    2019届二轮复习-高中英语-情态动词和虚拟语气课件

  • 2019届一轮复习苏教版物质的跨膜运输课件

    2019届一轮复习苏教版物质的跨膜运输课件

  • 2019年北师大版英语单元复习课件::Unit17Laughter课件北师大版选修6

    2019年北师大版英语单元复习课件::Unit17Laughter课件北师大版选修6

  • 2021届新中考物理冲刺备考复习-力-弹力-重力课件

    2021届新中考物理冲刺备考复习-力-弹力-重力课件

  • 2019届一轮复习人教版种群的特征和数量变化课件

    2019届一轮复习人教版种群的特征和数量变化课件

  • 2020年高考地理一轮复习--等高线地形图-课件

    2020年高考地理一轮复习--等高线地形图-课件

  • 2019版高考英语一轮复习-Unit-1-Living-well课件

    2019版高考英语一轮复习-Unit-1-Living-well课件

  • 2019届一轮复习人教版孟德尔的遗传定律——基因分离定律课件

    2019届一轮复习人教版孟德尔的遗传定律——基因分离定律课件

  • 2019届高三第二轮复习专题二万有引力定律及其应用课件

    2019届高三第二轮复习专题二万有引力定律及其应用课件

  • 2020最新部编版语文五年级上册23-鸟的天堂课件含课后练习

    2020最新部编版语文五年级上册23-鸟的天堂课件含课后练习

  • 2020版高考(浙江)一轮复习:第7讲-细胞呼吸课件

    2020版高考(浙江)一轮复习:第7讲-细胞呼吸课件

  • 2020年新教材高中英语UNIT4HISTORYANDTRADITIONSSectionⅢDiscoveringUsefulStructures课件必修第二册

    2020年新教材高中英语UNIT4HISTORYANDTRADITIONSSectionⅢDiscoveringUsefulStructures课件必修第二册

  • 2019届高考历史二轮复习阶段三专题十三罗斯福新政与当代资本主义的新变化课件2

    2019届高考历史二轮复习阶段三专题十三罗斯福新政与当代资本主义的新变化课件2

  • 2019版高考生物二轮复习-专题三-细胞的生命历程-考点9-细胞分裂过程图像和坐标曲线的识别课件

    2019版高考生物二轮复习-专题三-细胞的生命历程-考点9-细胞分裂过程图像和坐标曲线的识别课件

  • (通史版)2021版高考历史一轮复习第4部分高考讲座(三)2高考非选择题(12分开放探究题)规范答题讲练课件

    (通史版)2021版高考历史一轮复习第4部分高考讲座(三)2高考非选择题(12分开放探究题)规范答题讲练课件

  • 2019届高三地理复习第五讲--《区际联系与区域协调发展》课件

    2019届高三地理复习第五讲--《区际联系与区域协调发展》课件

  • 2021人教部编版历史九年级上册习题课件:第18课美国的独立

    2021人教部编版历史九年级上册习题课件:第18课美国的独立

  • 2020学年新教材高中英语Unit1FoodforthoughtPeriodTwoStartingout课件

    2020学年新教材高中英语Unit1FoodforthoughtPeriodTwoStartingout课件

  • 点击查看更多
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.