腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
视频
沙龙
2
回答
什么是linux内核上下文中的DMA映射和DMA引擎?
、
、
、
、
什么是linux内核上下文中的DMA映射和DMA引擎?什么时候DMA映射API和DMA引擎API可以在Linux设备驱动程序中使用?任何真正的Linux设备驱动程序示例作为参考都是很好的。
浏览 10
提问于2015-12-25
得票数 10
1
回答
如何在Linux中使用memmap内核选项启动?
、
、
、
使用各种带有UEFI支持的Linux发行版,它们似乎都不适用于memmap内核参数(在MacBook Air A1370上试用)。我使用以下参数: memmap=100M$200M 同样的安装媒体和参数在非UEFI笔记本电脑中运行良好(测试联想Thinkpad X220的工作原理完美,报告内存大小减少)。
浏览 8
提问于2015-01-15
得票数 0
回答已采纳
1
回答
linux端口是软件抽象还是真正的硬件端口?
、
、
、
、
我正在学习linux设备驱动程序。我知道港口的事了。我感到困惑的是,linux中的端口是软件抽象,还是真正的硬件端口。 在下面的设备驱动程序中,我编写了一个代码来分配端口并进行读写。 即使没有新的硬件连接,端口也会被分配。原因是什么? 另一个问题是,当我使用oub()写入端口时,当我使用inb()从端口读取时,无论写入端口的是什么,我总是得到值255。 #include<linux/init.h> #include<linux/module.h> #include<linux/kernel.h> #include<linux/ioport.h>
浏览 3
提问于2016-01-09
得票数 4
1
回答
为时间戳IP创建Linux驱动程序
、
我有一个运行Linux的嵌入式主板。我想使用PTP (IEEE 1588)将电路板同步到网络主控器。主板使用Xilinx Zynq设备,该设备具有ARM处理器和FPGA。我已经开发了一些IP来做时间戳和实时时钟。我现在需要将这两个I连接到Linux。所以我需要创建一些驱动程序,但由于我不是Linux专家,我真的不知道该怎么做。 我对驱动程序开发有一个基本的了解,但问题是如何接口时间戳。我计划使用Linux PTP程序来做PTP。从我通过查看其他这样做的驱动程序可以得出的结论是,有一个启用硬件时间戳的SO_TIMESTAMPING标志。然后在skb (套接字缓冲区)文件中有一些函数来设置它。谁能
浏览 14
提问于2018-10-16
得票数 0
1
回答
从用户空间访问或存储
、
、
、
在我的Compulab cm-x270linux内核中,将CoM放在NOR中。这个内核没有MTD支持,并且在启动后我无法访问或作为MTD分区。我的目标是从用户空间更新这个内核。是的,通过tftp从bootloader更新最简单,但是我不能在这个任务中使用它。是否可以在/dev/mem或任何其他方式中进行映射?
浏览 2
提问于2012-07-16
得票数 1
回答已采纳
3
回答
从用户空间访问寄存器物理地址
、
、
我是Linux世界的新手,想在这个论坛上问一个问题: 如果我想从用户空间访问物理地址,并且没有任何针对此特定硬件设备的内核驱动程序实现,我能做到吗? 我知道这不是“正确”的做法,只是想知道有没有办法。 在进阶时谢谢!
浏览 2
提问于2014-05-03
得票数 1
1
回答
Linux中的所有驱动程序都在相同的上下文或不同的上下文中工作?
、
、
、
、
Linux中的所有驱动程序都运行在相同的上下文中(内核空间的地址空间),或者每个驱动程序在不同的(类似于不同进程在用户空间的不同地址空间中工作)中运行?
浏览 4
提问于2013-11-22
得票数 5
回答已采纳
4
回答
在Linux中将物理地址转换为虚拟地址并读取其内容
、
、
、
、
我有Linux,我有一个物理地址:(即0x60000000)。 我想从用户空间的Linux程序中读取这个地址。 此地址可能位于内核空间。
浏览 9
提问于2013-10-21
得票数 25
回答已采纳
2
回答
64位13.10显示1GB内存比64位13.04少
、
、
、
、
多个64位版本(Kubuntu、Lubuntu和Xubuntu)一旦安装在我的ThinkPad R60上,就会显示3GB的内存,而不是正确的4GB内存。上周,我拥有了4GB的RAM (与BIOS相匹配),本周我有3GB的可用内存。好奇的人想知道。详情如下: Linux R60 3.11.0-12-泛型#19-Ubuntu 10月9日16:20:46 UTC 2013 x86_64 GNU/Linux r60 free -m报告: _ total used free shared buffers cached Mem:
浏览 0
提问于2013-10-24
得票数 2
回答已采纳
1
回答
从内核模块到用户空间进程的共享内存
、
、
、
、
我是linux内核模块开发中的新手,我正在寻找从内核模块到用户空间进程共享内存段,以避免复制数据的延迟。 我正在使用sys共享内存api,当我在两个进程之间共享内存时,它可以很好地工作,但是我不能在进程和内核模块之间共享内存。 bellow是我的内核模块和用户空间应用程序的代码。 服务器端:模块 #include <linux/module.h> // init_module, cleanup_module // #include <linux/kernel.h> // KERN_INFO // #include <linux/types.h> // uin
浏览 7
提问于2016-06-07
得票数 0
回答已采纳
1
回答
Linux USB内核驱动程序如何与USB Wi卡内的EEPROM进行交互?
、
、
、
、
我试图理解使用RTL8187 Wi芯片与Wi卡相关的Linux驱动程序源代码。具体来说,我试图在USB协议层跟踪Linux与ALFA AWUS036H USB Wi卡的交互。到目前为止,我一直在使用两种方法来完成这个任务,1)将printk()语句放入源代码中,2)查看usbmon的十六进制输出。使用这两种方法,我可以跟踪低层次正在发生的事情,但不了解为什么会发生在较高级别上。 在这一点上,我特别注意到的是,似乎rtl8187驱动程序首先做的事情之一就是在USB设备内对EEPROM进行大量的读/写,而我对EEPROM是如何在USB设备中工作的(或者是外部的)没有很好的理解。举个例子,我在/us
浏览 4
提问于2012-08-06
得票数 2
回答已采纳
2
回答
将文件映射到ram中
、
、
、
Platofrm - Linux,Arch - ARM编程lang - C/C++ 目标-将常规(例如文本)文件映射到ram中已知的位置(物理地址),并将该物理地址传递给其他应用程序。我一次映射的块的大小是128 K。 我尝试的方式是--用户空间进程发出ioctl调用,要求设备驱动程序获取内存块(ram),计算物理地址并将其返回用户空间。 用户空间进程需要将文件映射到物理地址空间,我不知道如何处理它。任何帮助都很感激。? 使用mmap调用文件,然后计算物理地址的问题是,除非有人访问,否则内存中不会有页,并且分配的物理内存页可能不是连续的。 另一个将实际访问该文件的进程来自第三方供应商应用程序。
浏览 5
提问于2009-12-21
得票数 0
1
回答
什么是指内存Linux中的漏洞?
、
、
我在Linux的内存中遇到了一个术语漏洞。我相信这就是我所记忆的。我的理解正确吗?
浏览 3
提问于2014-05-13
得票数 3
回答已采纳
1
回答
Linux下如何测量/采样GPIO脉冲宽度
、
、
、
我的主板运行的是ARM Linux。它将有一个GPIO连接到输入信号,该输入信号以不同的脉冲宽度但相同的周期对信息进行编码。假设周期为10ms,2ms (高)脉冲将呈现0,5ms脉冲将呈现1。 在Linux、用户空间或内核空间,如何对这种连续的脉宽移位信号进行采样?如果它是一个裸露的MCU,我知道我可以使用具有脉冲宽度测量模式的硬件时钟。但是我没有在Linux上找到相关的信息。 请给我一些建议。
浏览 11
提问于2020-10-10
得票数 0
1
回答
访问IO设备的设备驱动程序能在用户模式下直接运行吗?
、
我读过Linux中的设备驱动程序可以在用户模式下运行,也可以在内核模式下运行。 我还知道,IO设备的访问方式有两种:使用端口映射的IO或使用内存映射的IO。 在端口映射的IO中,我们使用指令IN和OUT访问IO设备,在内存映射的IO中,IO设备的寄存器被映射到内核空间内存(因此我们可以使用访问内存的常规CPU指令来访问它们,比如mov)。 现在,如果设备驱动程序不是直接访问IO设备,而是通过与IO设备插入的IO端口的设备驱动程序交谈(例如:如果IO设备插入了串行端口,则可以通过与串行端口设备驱动程序交谈),您可以让设备驱动程序以用户模式运行。 但是,如果IO设备使用的是端口映射的IO,则IN和
浏览 0
提问于2019-03-08
得票数 0
3
回答
Linux上PCIe重新扫描后未分配的BAR区域
、
、
、
在Linux系统上,我有一个连接到PCIe的FPGA卡。我可以对FPGA重新编程,然后echo 1 > /sys/bus/pci/rescan,我的卡就会出现在lspci中。 但是,不会为条形区分配任何内存: Region 0: Memory at <unassigned> (64-bit, prefetchable) [disabled] [size=32M] Region 2: Memory at <unassigned> (64-bit, prefetchable) [disabled] [size=64M] 我已经在Linux启动命令行上尝试了各种pci=
浏览 17
提问于2014-06-23
得票数 2
1
回答
LInux设备驱动程序分层混乱
、
、
我最近一直在阅读关于Linux驱动程序和设备模型的文章。我想了解下面的驱动程序子系统在linux中是如何工作的。假设我的设备树如下所示 ? 具体地说,假设Bus1是PCI总线,Bus2是ISA,Bus3是USB.总线使用网桥相互连接。 Linux将通过枚举过程识别这棵设备树,并通过枚举和探测机制识别出适合终端设备的usb驱动程序。 现在,让我们假设对该终端设备执行一次Tx操作。终端设备usb驱动程序最终将执行urb_submit(dev,write_buffer)。 我的问题是,为了让市建局到达终端设备,理论上它必须用Bus2和Bus1信封封住。因此,从理论上讲,传出的数据包必须如下
浏览 19
提问于2020-04-15
得票数 0
1
回答
它们是一样的吗:Linux的帧缓冲区和GPU的内存
、
、
据我所知,它们是不同的。Linux帧缓冲区是一个软件对象,GPU的内存是映射到GPU设备的物理内存。 我的问题如下: 1)我的理解正确吗? 2)如果是这样的话,以某种方式将两个东西合并为一个看起来可能会提高性能(我猜这不可能的原因有更多的技术细节,等等) 3)如果没有,你能解释一下Linux帧缓冲区和GPU是如何协同工作的吗?
浏览 0
提问于2014-04-02
得票数 5
2
回答
C/ Embedded Linux中内存映射设备的访问
、
、
我有一个运行嵌入式Linux的pxa270处理器工具包,其中包含内存映射设备。 如何在这些设备的外部存储器中存储值(如果我知道它们的物理地址)?
浏览 0
提问于2011-03-15
得票数 0
1
回答
内存映射linux内核中的设备文件
、
在linux内核中,当我这样做时 cat /proc/pid/map 我得到了一些映射/dev/XXX中文件的条目。我知道这是设备文件,它对应于硬件设备,而不是实际的文件。linux内核中的内存管理是如何处理这种映射的?如果我读取或写入/dev/XXX,会发生什么情况?
浏览 0
提问于2014-03-09
得票数 2
2
回答
如何将kmalloc()地址转换为物理地址
、
、
我有一个PCI设备,它暴露了一个条和条中的几个偏移量,用于访问该设备。在其中一个条形偏移量上,我需要对64KB分配的内存进行编程。在我的Linux驱动程序中,我使用kmalloc()分配了64KB的内存,据我所知,它返回虚拟地址。如果将其编程到偏移量中,HW将不能看到相同的结果。如何将此虚拟地址转换为物理地址?当我在谷歌上搜索时,我看到很少有指向virt_to_phys()的链接,但很少有回复说这不适合使用kmalloc()。你知道该怎么做吗?
浏览 6
提问于2013-05-18
得票数 2
3
回答
linux内核中的mmap()访问未映射内存
、
、
、
、
我正在尝试使用linux内核中提供的mamp()功能。当我们在用户空间中调用mmap()时,我们尝试将用户空间进程的虚拟内存区域映射到内核空间中的内存。 内核中mamp()的定义是在我的内核模块中完成的,它试图在页面中分配一些内存&在mmap系统调用期间映射它。这个内核空间内存的内存内容可以由这个模块来填充。 我想问的问题是,在内存映射之后,用户空间进程可以通过-out任何额外的内核重载来直接访问映射的内存,这样就不会出现像read() 这样的系统调用,但是如果内存(分配在内核空间内并映射在内核空间中)包含指向内核空间内分配的其他内存(而不是映射的)的指针,那么用户空间进程可以通过映射
浏览 6
提问于2013-01-24
得票数 0
1
回答
带有Yocto的外部xilinx PCie驱动程序
、
、
、
我以此为起点编译了xilinx pcie驱动程序。fs@fs:/opt/PHYTEC_BSPs/yocto_imx7/build/tmp/work/cortexa7hf-neon-poky-linux-gnueabi/met/0.1-r0$ scp @172.17.100.101:/ MACHINE_EXTRA_RRECOMMENDS /modules然后当我插入这个连接了硬件的内核模块时:MACHINE_EXTRA_RRECOMMENDS@ += -+=-zeta-001:/lib/ .ko # insmod /lib/ xpcie.ko /xpcie.ko Base hw val 0
浏览 6
提问于2018-03-20
得票数 0
1
回答
如何在Linux用户空间访问NVRAM和DPRAM?
、
、
我们将在我们的自定义板中添加NVRAM和DPRAM,它们都将被映射到系统内存映射中。我不知道这些设备是否在Linux内核中有一些通用驱动程序,以便它们作为设备出现在dev目录中(例如,/dev/nvram或/dev/dpram),还是需要使用mmap通过/dev/mem访问它们?
浏览 0
提问于2018-09-11
得票数 1
2
回答
UART(8250)驱动程序中pci_iomap()和ioremap_nocache()函数的使用
、
、
、
、
我正在理解来自Linux的uart-8250.c和8250_pci.c的驱动程序代码。 我在理解、pci_iomap、和pci_iomap函数调用的使用方面遇到了问题。 ( 1)指为什么在代码中使用它们? ( 2)这两种功能的地址返回有何意义? 需要help.Thanks。
浏览 23
提问于2015-03-11
得票数 1
1
回答
UIO设备(uio_pci_generic)的mmap()错误
我正在尝试在Linux中与一个自定义的PCIe设备通信。我没有使用系统调用编程和编写linux设备驱动程序的经验。 我加载了设备的uio_pci_generic驱动程序,并将/dev/uio0生成为字符设备。然后我编写了下面的C程序,将128K的数据从设备转储到一个文件中。该设备只有大小为128K的BAR0。 #include <sys/stat.h> #include <fcntl.h> #include <sys/mman.h> #include <stdio.h> #define MMBLOCK_SIZE (1024*128) #defi
浏览 2
提问于2018-04-12
得票数 0
2
回答
在页面错误上,Unix如何确定故障地址是否位于交换空间中?
、
、
当任何进程的虚拟地址发生页错误时,linux/unix操作系统如何确定该页(该虚拟地址)是否已被交换到内存中并交换到磁盘(即该页当前处于交换空间中),还是该页以前从未加载到内存(即该页不存在于交换空间中)?
浏览 0
提问于2015-09-02
得票数 0
回答已采纳
1
回答
将linux /dev/fb0映射到DDR以显示
、
、
、
、
我想编写一个linux驱动程序,它将我指定的内存地址空间映射到/dev/fb0。 驱动程序应该由linux的哪个部分指定?drm或帧缓冲区或服务器X或其他什么?我的司机应该有哪些财产?
浏览 0
提问于2018-09-11
得票数 2
回答已采纳
1
回答
在自定义硬件上映射内存
、
、
、
我刚开始使用mmap和映射硬件寄存器,可能问题很简单。所以,我的问题是我们有一些定制的硬件,它有32位寄存器。其中一个要求是我必须使用mmap来确保快速的IO操作。 我在示例中看到,人们将dev/mem用作通用文件。这是一个好主意吗?或者我应该创建自己的开发/定制并将映射的内存放在其中?这样做有什么好处吗? 其次,有没有什么工具可以让我创建一个映射文件,比如dev/custom,或者是怎么做的? 第三,如何确保偏移量始终是页面大小的倍数?在我的例子中,这是4096字节。 我使用的是c++和Linux。
浏览 2
提问于2014-09-18
得票数 0
2
回答
Linux IOMMU页表
、
我一直在阅读关于Linux中的支持的文章,并对IOMMU中的页表提出了一些问题: IOMMU是否使用CPU页表来存储VA、→、更高级的PA映射? 如果没有,即虚拟地址是不同的,那么每个设备还是每个IOMMU单元都创建了映射? 我还没有看过任何驱动程序代码,所以如果有人能告诉我一些示例驱动代码,那就太好了。
浏览 2
提问于2016-05-30
得票数 5
1
回答
在Linux上用C++实现用户空间网卡的总线控制
、
、
、
、
我对在Linux上的C++应用程序中通过“总线控制”访问网络数据包感兴趣。我有几个关于这个整体主题的问题: 1)我如何知道“总线控制”-enabled网卡正在向哪个内存地址范围写入数据,这是内核空间还是用户空间? 2)如果#2是“内核空间”,我如何才能更改卡片,使它在用户空间中写入内存? 如何从C++访问这个特定的用户空间内存区域? 3b)我知道你不能仅仅从一个应用程序访问其他进程的内存区域,只有那些显式“共享”的进程--那么我如何确保网卡直接写入的内存区域是明确用于共享的? 4)如何知道网卡是否实现“总线控制”? 我遇到了PACKET_MMAP这个词--这就是我所需要的吗?
浏览 1
提问于2013-08-17
得票数 2
回答已采纳
2
回答
快速的'C‘库可以透明地管理非常大的文件
、
、
我需要保存大量数据(>500 PC ),这些数据是从连接到我的PC的另一台设备流式传输的(800Mb/s)。速度排除了数据库的使用,例如MySQl/ISAM,我正在寻找一个快速,轻量级的库,它位于'C‘stdio文件库(即fopen/fclose/fwrite)之上,它将允许我读/写一个非常大的文件(最多可用磁盘空间)。 在幕后,大文件可以被分解成更小的文件,例如1 1GB,我希望API来处理这些细节。 数据以压缩的二进制格式到达PC,在将其写入硬盘之前不需要进一步处理。 这个库应该可以在Windows和Linux上运行。
浏览 3
提问于2010-01-19
得票数 0
2
回答
内核读/写用户空间内存
、
首先,从用户空间malloc一个缓冲区,并用全'A‘填充缓冲区 然后,使用netlink套接字将缓冲区的指针传递给内核, 最后,我可以使用直接从用户空间传递的原始指针来读写缓冲区。 为什么? 为什么允许从内核直接访问用户空间内存? Linux设备驱动程序,第三版,第415页,说内核不能直接操作没有映射到内核地址空间的内存。
浏览 2
提问于2012-01-17
得票数 1
回答已采纳
1
回答
组策略驱动器映射不映射某些网络驱动器
、
在我们的Windows 2012域控制器上,我们有一个名为"IT映射网络驱动器“的GPO。"IT映射网络驱动器“包含两个驱动器地图,V:驱动器和Z:驱动器。 📷 "IT映射网络驱动器“位于我们的software.eng.apl域中,IT组的成员应该能够访问IT映射的网络驱动器。 📷 杰里米·坎菲尔德是IT组的成员。 📷 当Jeremy登录到已加入software.eng.apl域的Windows10PC中时,文件资源管理器中只显示了两个映射的网络驱动器中的一个。我不知道为什么两个映射的网络驱动器中只有一个出现,我也不确定需要做什么才能使两个映射的网络驱动器在客户端PC上
浏览 0
提问于2017-05-28
得票数 1
回答已采纳
1
回答
Linux Iomem保护
、
、
我想保护对我的一个外设寄存器空间的访问。 因此,我希望映射外围存储器并在其上创建写保护。 因此,任何想要访问的人都必须调用一个公共函数,它将提供对该内存的访问权限。 在linux内核中该如何实现呢? 没有人会从用户空间访问该内存,只有不同的驱动程序才会访问该寄存器空间。所以所有的驱动程序都应该调用这个公共函数。如果他们试图直接访问内存,它应该陷阱吗? 致敬,卡尔佩什·巴夫纳
浏览 1
提问于2014-03-14
得票数 0
1
回答
Linux read()延迟
、
、
、
在Linux (4.8)中,有没有办法改善串口数据处理的延迟?特别是,线路上的实际数据与此端口上的select()和read read()函数返回之间的时间。 现在,我的测量结果是350微秒。该进程以SCHED_RR优先级90运行。有没有办法缩短这段时间,否则我得换个司机?我使用的是PERICOM (PI7C9X7954)的16C550兼容芯片。
浏览 23
提问于2017-03-04
得票数 3
回答已采纳
2
回答
我们可以使用java访问(开放-读/写)驱动文件/dev/aaa吗?
、
、
、
亲切的请解释一下,我们是否可以访问linux中的驱动文件(开放读/写),例如:使用用户空间java应用程序的/dev/aaa。
浏览 3
提问于2013-07-04
得票数 0
回答已采纳
1
回答
ioread32后面跟着iowrite32没有给出相同的值
、
、
、
我已经开始学习linux设备驱动程序。作为我学习的一部分,我正在做一些样本程序。为了理解内存映射的IO,我编写了以下代码(这里只显示了init )。基址上没有映射的硬件。 static unsigned long base = 0xfed00000; unsigned long device_base=0; unsigned long virtual_base=0; static int __init sharedirqmodule_init(void) { u32 register1=0; u32 value=0x23456789; device_base=base; void *addr
浏览 2
提问于2014-11-09
得票数 1
回答已采纳
1
回答
结合` `mmap`‘和UVM特性
、
、
、
、
是否有一个同时提供这些功能的函数?我正在寻找一个分配内存的函数,它具有“内存映射”(如用mmap分配)和UVM (从主机和GPU设备都可以访问)的特性。我看到cudaHostAlloc在设备可以访问的主机内存上分配了一个内存,但是没有明显的方式将分配的内存范围声明为内存映射! 我的问题是:是否有一个API函数来分配具有上述特征的内存? 如果上述问题的答案是“否”,那么,是否有一组API函数可以被我调用,从而导致相同的行为? 例如,我们首先使用cudaMallocManaged分配一个基于UVM的内存,然后使用一个特定的API ( POSIX或CUDA )将以前分配的内存声明为“内存映射”(就像
浏览 1
提问于2018-12-12
得票数 1
回答已采纳
1
回答
如果使用顺序大于1的vm_area (),如何创建__get_free_pages映射?
、
、
、
我正在为DMA重新实现设备驱动程序中的mmap。 我看到了这个问题:有一个答案,它使用vm_insert_page()一次映射一个页面;因此,对于多个页面,需要在一个循环中执行。还有另一个API来处理这个问题吗? 在此之前,我使用dma_alloc_coherent为DMA分配一块内存,并使用remap_pfn_range构建将进程的虚拟内存与物理内存相关联的页表。 现在,我想使用订单大于1的__get_free_pages分配更大的内存块,在这种情况下,我不知道如何构建页面表。原因如下: 我查看了图书Linux设备驱动程序,并注意到以下内容: 背景: 当用户空间进程调用mmap将设备内存映
浏览 11
提问于2022-03-03
得票数 1
2
回答
基地址寄存器如何获取地址?
、
、
、
、
我已经完成了linux发行版下FPGA的pcie驱动程序的开发。一切都很好。但是我想知道FPGA的PCI端点中的基址寄存器从哪里获得基址。当我生成PCIe端点时,我能够设置条形图的长度,但不能更多。 在PCIe驱动程序中,我执行像pci_enable_device这样的标准函数,但我没有专门设置基地址。 那么,操作系统是否在启动时设置了基址?或者它是如何工作的?另外,我想知道如果连接了pcie pcie设备,操作系统会执行哪些初始化操作。因为即使卸载了驱动程序,我也会在lspci中看到我的pci设备。 亲切地问候托马斯
浏览 12
提问于2014-06-05
得票数 3
2
回答
如何在linux设备驱动程序中实现内存映射功能?
、
、
、
我正在尝试学习设备驱动程序,我从char设备驱动程序开始。我实现了一个小程序,它能够对内核缓冲区进行读写。此外,我试图实现内存映射,但这不能正常工作。当我试图通过映射我的内核模块来读取一个简单的进程时,它给了我无用的值。有人能帮上忙吗? #include<linux/init.h> #include<linux/module.h> #include<linux/kernel.h> //printk() #include<linux/errno.h> #include<linux/types.h> #include<linux/
浏览 0
提问于2014-02-12
得票数 3
2
回答
嵌入式板卡写入设备驱动程序
、
、
、
、
我是嵌入式世界的新手。我试图在使用Yocto项目构建的嵌入式Linux系统上编写设备驱动程序。我不知道linux驱动程序是如何工作的,也不知道如何编写新的驱动程序来测试外围设备。 在我的产品中,在第569-1199页中有一个叫做"Linux内核驱动程序“的部分。它描述感兴趣的硬件(PCIE,SPI.)驱动程序的设备树源和变量。我现在所理解的是,产品负责人已经编写了一些函数来访问外围硬件,我所要做的就是通过使用它的.c文件调用一些特殊的函数来达到它们。 我在这里是问堆叠溢出的专业人士,我的想法是正确的还是我在正确的道路上?还有关于为特殊产品编写设备驱动程序的建议吗?
浏览 5
提问于2019-11-08
得票数 0
回答已采纳
3
回答
使用mmap()了解OpenGL上下文和可视ID访问视频RAM
、
、
是否有可能了解OpenGL上下文的分配内存范围?据推测,应该使用mmap()从另一个进程访问这个内存范围。这种技术能起作用吗,还是有根本的问题? 更新我们使用的是具有现代X11安装的GNU/Linux系统,并且可以选择其驱动程序支持这种技巧的显卡制造商。
浏览 15
提问于2012-01-03
得票数 2
回答已采纳
1
回答
/dev/mem或用户空间突发传输;如何获得更快的/dev/mem访问
、
、
设置 我在zync-7000芯片的PL (可编程逻辑/ FPGA)侧有一堆RAM。这个内存可以通过PL和PS (处理系统/ CPU)端访问。该计划是由CPU加载一个大型GiB缓冲区并将其传递给PL。 当设备树被修改时,Linux从到。 当我修改设备树以便linux能够看到内存时,我观察到了快速的读写速度;硬件/固件能够实现突发读写。 memory { device_type = "memory"; // The 512 MiB memory at 0x60000000 reg = <0x0 0x40000000 0x
浏览 9
提问于2020-11-01
得票数 2
4
回答
linux中的整个系统空间地址空间不使用请求分页,这是真的吗?
、
、
、
我目前正在研究windows,我发现windows在系统空间地址空间中使用了两部分内存,它们被命名为分页池和非分页池。因此,只有窗口的关键部分保存在非分页池(不使用请求分页)中。虽然我被教导说,在linux中,所有的系统空间地址空间都不使用请求分页的概念?如果所有信息都是正确的,那么我是否应该得出结论,windows运行时需要的RAM比linux少?
浏览 0
提问于2013-09-23
得票数 1
2
回答
linux上的虚拟内存
、
、
、
在VM机制中,虚拟页被映射到物理页。一旦必须调入新的页面,物理页面就会被逐出。 我总是假设页面调入/页面调出要么指向交换区,要么指向实际映射到虚拟机的文件区域。 我读到过Linux在启动时将所有物理页面映射到虚拟页面(这就是为什么监控工具显示内核保留了大量内存)。 所以我的问题是,这种方法的好处是什么?在物理页面被逐出之前,虚拟页面并不物理地存在于磁盘上,并且代价高昂的部分是将页面换入和换出页面,这是无法避免的。此外,在我看来,将所有这些原本为内核保留的页面传递给请求它们的各种进程似乎更加复杂。 我在这里误解了什么?
浏览 3
提问于2014-09-21
得票数 0
1
回答
关于设备驱动程序的一个问题&内核
、
目前,我的操作系统从软盘启动。由于软盘驱动是过时的,我计划改变引导媒体。 当我试图找出使用什么引导媒体时,我意识到无论我选择什么,我都需要为它编写设备驱动程序。虽然真正的模式BIOS可能会为我提供一些中断来与该设备交互,但一旦进入受保护模式,我将独自一人。因此,我开始阅读< Linux设备驱动程序第三版>以获得一些指导。但这本书是关于为Linux 编写设备驱动程序的。因此,这意味着设备驱动程序是特定于操作系统的。 现在我有了以下问题: 设备驱动程序在哪些方面依赖于操作系统?操作系统和设备驱动程序在内存中的布局如何?操作系统和设备驱动程序如何相互交互?如果我在设备中进行热插拔,操作系
浏览 7
提问于2011-05-01
得票数 0
回答已采纳
1
回答
显卡内存和进程的虚拟地址空间
、
、
、
假设我有一个游戏,在openGL方面做很多图形,我有一个带有Linux32位的桌面,安装了4GB的内存和1G的Nvidia图形卡。我的游戏应用虚拟地址空间是什么样子的?显卡内存是否映射在这个虚拟地址空间中? 另外,RAM和显卡内存之间是否有某种关系?linux是否为任何进程不能使用的显卡分配相同的RAM?也就是说,它的结果只有3GB的内存,可用于我的游戏过程?
浏览 5
提问于2016-01-22
得票数 1
回答已采纳
1
回答
无法理解linux内核开发的几个概念
、
、
、
、
嗨,我对Linux内核开发很感兴趣,但是我很难理解一些大概念。 首先,设备驱动程序员和嵌入式程序员是两个完全不同的网络作业吗?? 我的意思是,我知道嵌入式程序员会进入固件和电路之类的领域。 但是设备驱动程序程序员也会做同样的事情吗? 其次,我听说通过编写设备驱动程序启动linux内核开发是很好的。 这是否意味着你必须掌握设备驱动程序? 坦白地说,我想知道这些程序员到底是做什么的 我真正想要的是了解基于ARM和x86的linux内核,并进入开发阶段。 我只是好奇,我真的必须知道所有的电路和诸如此类的东西。 系统程序员也是不同的网络工作吗??
浏览 3
提问于2013-11-13
得票数 1
回答已采纳
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
Linux内存映射mmap原理分析
“领域驱动设计”领域驱动设计中的上下文映射
Linux驱动系列-PWM驱动
领域驱动设计中的上下文映射
图解|Linux内存碎片整理
热门
标签
更多标签
云服务器
ICP备案
对象存储
腾讯会议
实时音视频
活动推荐
运营活动
广告
关闭
领券