电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

Linux中关于MMAPandDMA的知识总结

Linux中关于MMAPandDMA的知识总结_第1页
1/17
Linux中关于MMAPandDMA的知识总结_第2页
2/17
Linux中关于MMAPandDMA的知识总结_第3页
3/17
下载后可任意编辑3 项技术:1,mmap 系统调用可以实现将设备内存映射到用户进程的地址空间。2,使用 get_user_pages,可以把用户空间内存映射到内核中。3,DMA 的 I/O 操作,使得外设具有直接访问系统内存的能力。-------------内存管理内核用来管理内存的数据结构---------地址内型Linux 是一个虚拟内存系统,即用户程序使用的地址与硬件使用的物理地址是不等同的。虚拟内存引入了一个间接层,使得许多操作成为可能:*有了虚拟内存,系统中运行的程序可以分配比物理内存更多的内存。*虚拟地址还能让程序在进程的地址空间内使用更多的技巧,包括将程序的内存映射到设备内存上。地址内型列表*用户虚拟地址 每个进程都有自己的虚拟地址空间。*物理地址 处理器访问系统内存时使用的地址。*总线地址 在外围总线和内存之间使用。MMU 可以实现总线和主内存之间的重新映射。 当设置 DMA 操作时,编写 MMU 相关的代码是一个必需的步骤。*内核逻辑地址 内核逻辑地址组成了内核的常规地址空间,该地址映射了部分(或全部)内存, 并常常被视为物理地址。在大多数体系架构中,逻辑地址与其相关联的物理地址 的不同,仅仅在于它们之间存在一个固定的偏移量。kmalloc 返回的内存就是 内核逻辑地址。*内核虚拟地址 内核虚拟地址与逻辑地址相同之处在于,都将内核空间的地址映射到物理地址上。 不同之处在于,内核虚拟地址与物理地址的映射不是线性的和一对一的。 vmalloc 返回一个虚拟地址,kmap 函数也返回一个虚拟地址。------------------物理地址和页下载后可任意编辑物理地址被分为离散的单元,称之为页。系统内部许多对内存的操作都是基于单个页的。大多数系统都使用每页 4096 个字节,PAGE_SIZE 给出指定体系架构下的页大小。观察内存地址,无论是虚拟的还是物理的,它们都被分为页号和一个页内的偏移量。假如每页 4096 个字节,那么最后的 12 位就是偏移量,剩余的高位则指定页号。页帧数:将除去偏移量的剩余位移到右端,称该结果为页帧数。-------------------高端与低端内存内核(在 x86 架构中)将 4GB 的虚拟地址空间分割为用户空间和内核空间。一个典型的分割是将 3GB 分配给用户空间,1GB 分配给内核空间。占用内核地址空间最大的部分是物理内存的虚拟映射,内核无法直接操作没有映射到内核地址空间的内存。低端内存: 只有内存的低端部分拥有逻辑地址。内核的数据结构必须放置在低端内存中。高端...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

Linux中关于MMAPandDMA的知识总结

人从众+ 关注
实名认证
内容提供者

欢迎光临小店,本店以公文和教育为主,希望符合您的需求。

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部