说明:收录25万 73个行业的国家标准 支持批量下载
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210991658.8 (22)申请日 2022.08.18 (71)申请人 天津津航计算 技术研究所 地址 300000 天津市东 丽区空港经济区保 税路357号 (72)发明人 牛德森 范润泊 王克文 姚伟  马强  (74)专利代理 机构 天津市鼎拓知识产权代理有 限公司 12 233 专利代理师 朱丽丽 (51)Int.Cl. G06F 9/50(2006.01) G06F 12/02(2006.01) G06F 13/28(2006.01) (54)发明名称 Linux用户态下DMA连续物理内存的申请方 法、 装置及存 储介质 (57)摘要 本申请提供一种Linux用户态下DMA连续物 理内存的申请方法, 所述方法包括如下步骤: S1、 创建字符设备文件节点; 所述字符设备文件节点 用于作为系统资源访问的媒介; S2、 基于所述字 符设备文件节点, 向系统申请一段连续内存空 间, 并将该段连续内存空间转换为连续物理内存 地址; S3、 定义访 问步骤S2中连续物理内存地址 的接口。 本申请在系统为Linux的应用场景下, 使 用者在用户态下编程, 针对系统平台特点, 根据 内存申请要求, 结合内核底层操作库和内存映射 技术, 设计实现了一种Linux用户态下的DMA连续 物理内存申请方法; 本发明解决了Linux用户态 下编程时无法直接申请DMA连续物理内存的问 题。 权利要求书1页 说明书7页 附图2页 CN 115357385 A 2022.11.18 CN 115357385 A 1.一种Linux用户态下DMA连续物理内存的申请方法, 其特征在于, 所述方法包括如下 步骤: S1、 创建字符设备文件节点; 所述字符设备文件节点用于作为系统资源访问的媒介; S2、 基于所述字符设备文件节点, 向系统申请一段连续内存空间, 并将该段连续内存空 间转换为连续物理内存地址; S3、 定义访问步骤S2中连续物理内存地址的接口。 2.根据权利 要求1所述的Linux用户态下DMA连续物理内存的申请方法, 其特征在于, 步 骤S1中, 创建字符设备文件节点具体包括: S11、 动态分配主设备号; S12、 初始化主设备, 获得主设备号; S13、 将主设备号注 册为字符设备; S14、 创建字符设备关联类; S15、 动态创建字符设备文件节点。 3.根据权利 要求1所述的Linux用户态下DMA连续物理内存的申请方法, 其特征在于, 步 骤S2中, 基于所述字 符设备文件节点, 向系统申请一段连续内存空间, 并将该段连续内存空 间转换为连续物理内存地址, 具体包括: S21、 申请连续物理内存接口; S22、 向系统申请一段 连续内存空间; S23、 将步骤S2 2中的一段 连续内存空间转换为连续物理内存地址; S24、 释放所述连续物理内存接口。 4.根据权利 要求1所述的Linux用户态下DMA连续物理内存的申请方法, 其特征在于, 步 骤S3中, 基于内存映射机制定义访问步骤S2中连续物理内存地址的接口。 5.根据权利 要求3所述的Linux用户态下DMA连续物理内存的申请方法, 其特征在于, 在 ioctl接口中实现申请和释放所述连续物理内存接口。 6.一种Linux用户态下DMA连续物理内存的申请装置, 其特 征在于, 所述申请装置包括: 存储器、 处理器及存 储在所述存 储器上并可在所述处 理器上运行的计算机程序; 所述计算机程序被所述处理器执行时实现如权利要求1至5中任一项所述的Linux用户 态下DMA连续物理内存的申请方法的步骤。 7.一种计算机可读存储介质, 其特征在于, 所述计算机可读存储介质上存储有Linux用 户态下DMA连续物理内存的申请程序, 所述Linux用户态下DMA连续物理内存的申请程序被 处理器执行时实现如权利要求1至5中任一项所述的Linux用户态下DMA连续物理内存的申 请方法的步骤。权 利 要 求 书 1/1 页 2 CN 115357385 A 2Linux用户态下DMA连续物理内存的申请方 法、 装置及存储 介质 技术领域 [0001]本申请涉及DMA连续物理内存申请技术领域, 尤其涉及一种Linux用户态下DMA连 续物理内存的申请方法、 装置及存 储介质。 背景技术 [0002]Linux操作系统是一种免费使用和自由传播的类UNIX操作系统, 是一个基于POS IX 的多用户、 多任务、 支持多线程和多CPU的操作系统, 用户生态丰富。 中 国出现的多个国产化 操作系统, 如中标麒麟(NeoKylin)操作系统、 银河麒麟(Kylin)操作系统、 优麒麟 (UbuntuKylin)操作系统均属于类Linux操作系统。 本文应用的系统平台采用Linux操作系 统, 可实施在中标麒 麟、 银河麒 麟和优麒 麟国产化操作系统上。 [0003]编程人员 在Linux操作系统上进行程序开发, 常使用Qt、 PyCharm等编程工具进行 C/C++/Python语音程序开发, 属于用户态编程。 这种编程方式借助编程工具的代码校验功 能、 调试功能, 能十 分方便地进 行程序的代码编写、 编译、 调试、 运行, 对程序员十分友好。 但 是由于Linux对用户态编程的 限制, 使得用户态下程序人员无法直接操作系统资源, 一个典 型问题场景是: 访问PCIE外设时, 常需要进行DMA相关操作, 如DMA连续物理内存申请, 这些 系统资源的操作 均无法进行, 限制了用户态编程的程序开发。 [0004]为了解决Linux用户态下编程时无法直接申请DMA 连续物理内存的问题, 本文基于 内核底层操作库和内存映射技术, 提出了一种Linux用户态下DMA连续物理内存的申请方 法、 装置及存 储介质。 发明内容 [0005]本申请的目的是针对以上问题, 提供一种Linux用户态 下DMA连续物理内存的申请 方法、 装置及存 储介质。 具体技 术方案如下: [0006]第一方面, 本申请提供一种Linux用户态下DMA连续物理内存的申请方法, 所述方 法包括如下步骤: [0007]S1、 创建字符设备文件节点; 所述字符设备文件节点用于作为系统资源访问的媒 介; [0008]S2、 基于所述字符设备文件节点, 向系统申请一段连续内存空间, 并将该段连续内 存空间转换为连续物理内存地址; [0009]S3、 定义访问步骤S2中连续物理内存地址的接口。 [0010]根据本申请某些实施例提供的技术方案, 步骤S1中, 创建字符设备文件节点具体 包括: [0011]S11、 动态分配主设备号; [0012]S12、 初始化主设备, 获得主设备号; [0013]S13、 将主设备号注 册为字符设备;说 明 书 1/7 页 3 CN 115357385 A 3

.PDF文档 专利 Linux用户态下DMA连续物理内存的申请方法、装置及存储介质

文档预览
中文文档 11 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共11页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 Linux用户态下DMA连续物理内存的申请方法、装置及存储介质 第 1 页 专利 Linux用户态下DMA连续物理内存的申请方法、装置及存储介质 第 2 页 专利 Linux用户态下DMA连续物理内存的申请方法、装置及存储介质 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2024-03-18 13:06:58上传分享
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。