腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
1
回答
Linux
:如何将一系列物理上相邻的区域映射到用户空间?
、
、
、
在我的驱动程序中,我有一定数量的物理上连续的
DMA
缓冲区(例如,每台长达4MB )来接收来自设备的数据。它们由硬件使用SG列表来处理。由于接收到的数据将受到密集处理,所以我不想关闭缓存,在每个缓冲区被
DMA
填充后,我将使用。 为了简化数据处理,我希望这些缓冲区在用户空间中显示为一个巨大的、连续的、循环的缓冲区。
浏览 3
提问于2017-02-19
得票数 4
1
回答
让用户读写物理地址的
dma
_common_
mmap
文档
、
、
我正在尝试编写一个
Linux
内核模块,以便使用
dma
_common_
mmap
()将一些地址映射回用户。然后,我希望用户映射并写入/读取地址空间。我现在的主要问题是我找不到
dma
_common_
mmap
()的文档,有吗?我已经搜索过,但没有找到如何使用它,并让用户读/写地址。
浏览 22
提问于2016-06-07
得票数 1
回答已采纳
1
回答
使用
linux
在ARM中
DMA
是如何工作的
、
、
、
有没有
Linux
DMA
专家可以帮我...来理解这个概念。如果我们使用
mmap
向驱动程序发送数据,则为b>。我们如何才能将其与
DMA
同步?d>这是什么
dma
输入输出通道? 有没有一些示例代码..作为
DMA
的新手,这对我理解这个概念很有帮助。
浏览 6
提问于2012-12-06
得票数 1
1
回答
dma
_
mmap
_coherent和remap_pfn_range有什么区别?
、
、
mmap
代码几乎是相同的,只是我允许用户管理自己请求的大小,并将内存分配建立在此基础上,以及我在/dev中自动创建char设备的事实。最终,必须有不同之处;似乎有许多不
浏览 20
提问于2015-12-29
得票数 9
1
回答
Linux
内核:可以让流式
DMA
映射无限期地打开吗?
、
、
许多关于设备驱动程序编程的指南建议,流式
DMA
映射(即那些由
dma
_map_single()和朋友创建的映射)应保持尽可能短的开放时间,因为它们消耗资源(即IOMMU映射资源,如果平台有资源,或者在需要时使用反弹缓冲区在我的例子中,我使用的是能够进行64位
DMA
的PCIe设备,所以应该不需要反弹缓冲区(在这种情况下,似乎也不需要来自IOMMU的特殊处理,对吧?)。数据来自设备(例如,它与
DMA
_TO_CPU映射),当有新数据可用时,设备通过中断通知我,此时我在访问刚通过
DMA
发送给我的数据之前触发
浏览 3
提问于2014-01-08
得票数 5
1
回答
如果使用顺序大于1的vm_area (),如何创建__get_free_pages映射?
、
、
、
我正在为
DMA
重新实现设备驱动程序中的
mmap
。我查看了图书
Linux
设备驱动程序,并注意到以下内容: 当用户空间进程调用
mmap
将设备内存映射到其地址空间时,系统响应创建一个新的VMA
浏览 11
提问于2022-03-03
得票数 1
1
回答
DMA
的快速内存缓冲器
、
、
我目前正在为
DMA
开发
linux
驱动程序。驱动程序使用
dma
_alloc_coherent分配内存区域,我使用_
dma
_
mmap
_id = (int*)
mmap
(NULL, buffer_size, PROT_READ | PROT_WRITE, MAP_SHARED, _
dma
_device_id, 0);映射到用户空间。),这比我要在单个
DMA
访问中传输的内存量要小。使用
dma
_alloc_coherent,我可以分配多达64
浏览 1
提问于2016-05-16
得票数 2
2
回答
错误编译驱动程序-初始化器中指定的未知字段
、
、
/media/videobuf-core.h/usr/src/
linux
-headers= __videobuf_
mmap
_mapper,}; 头文件中videobuf_qtype_ops的定义如下所示struct vide
浏览 0
提问于2012-09-28
得票数 3
1
回答
Linux
内核flush_cache_range()调用似乎什么也没做。
、
、
、
简介: 我们有一个应用程序,运行在ARM上的
Linux
接受来自外部处理器的数据,该处理器将数据
DMA
到ARM的存储空间中。然后,ARM需要访问用户模式代码中的数据。地址范围在物理上必须是连续的,因为外部处理器中的
DMA
引擎不支持分散/聚集。这个物理地址对于
Linux
用户模式代码来说也是已知的,它使用它(在用户模式下)调用
mmap
() API来获取指向这个内存区域的用户模式指针。然后,我们的
Linux
内核驱动程序会在驱动程序的file_operations结构中看到对其
m
浏览 6
提问于2013-06-05
得票数 3
1
回答
如何将
dma
_alloc_attr()与
DMA
_ATTR_NO_KERNEL_MAPPING结合使用?
、
、
、
、
我想使用
DMA
_ATTR_NO_KERNEL_MAPPING进行内存分配。根据,我必须使用
dma
_
mmap
_attrs(),但它需要将struct vm_area_struct作为其参数之一。
dma
_addr_t phys;void *tmp_virt; pr_debug("pmap: cma: request
DMA
_ATTR_NO_KERNEL_MAPPING |
DMA
_ATTR_FORCE
浏览 0
提问于2019-06-14
得票数 1
回答已采纳
1
回答
来自用户空间总线的
Linux
DMA
错误
、
、
、
、
我正在遵循这个框架来执行使用
DMA
的数据传输。我使用的是AXI
DMA
,没有使用scatter gather,发送流被循环回接收流。我使用的代码如下:、、。
dma
_proxy内核模块工作正常,并正确执行INTERNAL_TEST,但在将
dma
缓冲区映射到用户应用程序之后,当我尝试对它们进行读/写时,我收到以下错误:[ 397.889331level 3 address size fault (0x92000043) at 0x0000007f94d4b004 B
浏览 11
提问于2017-01-03
得票数 1
1
回答
将
DMA
缓冲区写入内存映射文件
、
、
、
我需要以嵌入式
Linux
(2.6.37)作为原始设备/dev/sda1 1,尽可能快地将传入
DMA
缓冲区写入HD分区。缓冲区按需要对齐,长度相等于512 of。工作,我需要在mmp()之前移动read()调用,因为
DMA
完成后会为我提供放置数据的地址。2.在前面的示例中,我使用
DMA
访问了实际系统。相同的循环,而不是read()调用,是等待
DMA
缓冲区就绪并提供其虚拟地址的调用。 没有错误,代码运行,但是没有记录(!)。我的想法是
Linux
没有看到该区域被更新,因此不
浏览 0
提问于2014-12-22
得票数 5
1
回答
将JPEG图像发送到AXI4流中并将其读回?
、
、
、
、
我正在Zedboard Zynq评估板上做一个图像处理项目,使用的是构建在上面的FPGA。我已经使用HLS编写了图像处理块,并创建了输入和输出均为宽度为8的AXI4流的IP。有没有现成的IP可以做到这一点?
浏览 5
提问于2017-11-10
得票数 1
2
回答
将多个内核缓冲区映射到连续的用户空间缓冲区?
、
、
我使用
dma
_alloc_coherent分配了多个内核可访问的缓冲区,每个缓冲区的大小为4MiB。目标是将这些缓冲区映射到一个连续的用户空间虚拟内存中。// in probe() function
dma
_alloc_coherent(&pcie->dev, BUF_SIZE, &bus_addr1, GFP_KERNEL); /
浏览 144
提问于2020-01-22
得票数 3
1
回答
mmap
内核中的多个缓冲区正在崩溃,请帮助(使用
dma
_
mmap
_coherent)
、
、
、
、
我正在开发一个
Linux
内核模块,它为每个字符设备分配多个缓冲区,然后用户空间应用程序将这些缓冲区映射到用户空间。我遇到的问题是当
mmap
将这些缓冲区映射到用户空间指针时。我只能映射一个缓冲区,但是当我试图分配第二个缓冲区时,它就会崩溃。我不太熟悉
dma
_
mmap
_coherent,有人能帮我解决这个问题吗?\n"); } } #define
DMA
浏览 4
提问于2020-09-30
得票数 1
回答已采纳
2
回答
如何从cdev获取设备
、
、
我将模块注册为cdev,使用
dma
_alloc_coherent()分配空间,我想使用
dma
_common_
mmap
()映射它。
dma
_common_
mmap
()需要一个指向struct device的指针:如何获取它?
浏览 0
提问于2015-11-20
得票数 5
1
回答
MMAP
故障超过4k大小。
、
这是因为我正在OMAP l138上为
DMA
设备构建一个驱动程序,以便在
DMA
设备和FPGA之间传输和接收数据。现在在
LINUX
内核中,我使用
dma
_alloc_coherent分配可变大小的缓冲区。 return 0; dmasrc_ptr = <
浏览 1
提问于2013-01-28
得票数 4
1
回答
在非
DMA
场景中,存储设备/磁盘内容是否先到CPU寄存器,然后在磁盘读取期间进入主内存?
、
、
、
、
在非
DMA
方案中,是否按照以下顺序读取所有磁盘以进入主内存: 主存-> CPU寄存器->磁盘寄存器->磁盘存储面(我知道,在
DMA
场景中,CPU只启动传输,然后磁盘的内容直接传输到主内存)。如果是的话,在
DMA
出现之前,上述序列是否是一个严重的瓶颈,因为与主内存和存储磁盘相比,总体CPU寄存器的容量要小得多?或者它是如此之快,以至于人类用户不会注意到在非
DMA
模式下??。
浏览 3
提问于2016-09-18
得票数 2
回答已采纳
3
回答
如何从软件工具向Zynq中的AXI-Stream发送数据?
、
、
、
、
就像这样send_data(data); 我在Arm部分运行
Linux
,现在我想把它连接到可编程逻辑部分。
浏览 2
提问于2015-06-02
得票数 7
1
回答
FPGA上的
DMA
不能访问用GFP_KERNEL标志分配的内核内存
、
、
、
、
此外,FPGA还配备了
DMA
引擎,通过PCIe控制器从内核存储器读取数据,并将其转发给加速器。关于加速程序: 驱动程序最初通过使用带有
dma
_alloc_coherent()标志的GFP_KERNEL ()分配4M内核内存。这一分配在CMA的范围内。然后,从我的用户空间应用程序中,使用READ_PROT/WRITE_PROT和map _SHARED/map_ load标志调用
mmap
,以映射以前分配的CMA内存,并在其中加载图像数据。加载图像数据后,我转发分配给内存的CMA的
dma
_addr_t物理
浏览 1
提问于2018-10-12
得票数 1
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
Linux内存映射mmap原理分析
零拷贝技术在 Java 中为何这么牛?
Linux 实现原理—I/O 处理流程与优化手段
深入理解 Linux的I/O 系统
【得物技术】零拷贝
热门
标签
更多标签
云服务器
ICP备案
对象存储
实时音视频
即时通信 IM
活动推荐
运营活动
广告
关闭
领券