社区
驱动程序开发区
帖子详情
mmap访问DDR,数据不能同步到物理地址
dragon_cdut
2017-09-29 04:02:59
请教一个问题,mmap访问ddr,为什么写个数据下去,不能同步到物理地址,我加了 O_RDWR| O_SYNC;按理说是同步的啊
...全文
873
回复
打赏
收藏
mmap访问DDR,数据不能同步到物理地址
请教一个问题,mmap访问ddr,为什么写个数据下去,不能同步到物理地址,我加了 O_RDWR| O_SYNC;按理说是同步的啊
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
mmap
访问
DDR
,加了 O_RDWR| O_SYNC,仍
不能
同步
请教一个问题,
mmap
访问
ddr
,为什么写个
数据
下去,
不能
同步
到
物理地址
,我加了 O_RDWR| O_SYNC;按理说是
同步
的啊? 解决办法:待研究,哪位遇到同样问题一起交流一下啊,私信我
轻松突破文件IO瓶颈:内存映射
mmap
技术
前面讲过,建立内存映射并没有实际拷贝
数据
,这时,MMU在地址映射表中是无法找到与ptr相对应的
物理地址
的,也就是MMU失败,将产生一个缺页中断,缺页中断的中断响应函数会在swap中寻找相对应的页面,如果找不到(也就是该文件从来没有被读入内存的情况),则会通过
mmap
()建立的映射关系,从硬盘上将文件读取到物理内存中,如图1中过程3所示。当进程发起读写操作时,会
访问
虚拟地址空间,通过查询页表,发现这段地址不在物理页上,因为只建立了地址映射,真正的
数据
还没有拷贝到内存,因此引发缺页异常。
ZYNQ petalinux系统使用axi_bram进行PL与PS
数据
交互
可以用BRAM,在PS和PL之间进行
数据
的交换。C, 最终sys_
mmap
调用底层驱动的
mmap
接口,并且内核将第2步创建这个对象的首地址传递给底层驱动的
mmap
接口,将来底层驱动的
mmap
接口可以通过这个对象的指针来获取到用户空闲虚拟内存的属性 (PROT_READ|PROT_WRITE,起始地址,大小,偏移量等等)本质:与其说是将一个文件映射到用户的虚拟地址上不如说是将这个文件对应的硬件的
物理地址
,映射用户的虚拟地址上,将来用户
访问
这个用户虚拟地址就是在
访问
对应的外设的
物理地址
。
ZYNQ
DDR
读写实验 与 简单的双核共享内存通信(LINUX + BARE METAL)
目录一、参考资料二、裸机下,读写
DDR
三、LINUX下,读写
DDR
一、参考资料 Zynq构建SoC系统深度学习笔记-03-PS读写
DDR
内存(1) 通过devmem
访问
物理地址
二、裸机下,读写
DDR
测试代码如下: #include <stdio.h> #include "platform.h" #include "xil_printf.h" #include "xil_io....
共享内存映射之
mmap
()函数详解
转 共享内存映射之
mmap
()函数详解 /span> ...
驱动程序开发区
1,318
社区成员
2,173
社区内容
发帖
与我相关
我的任务
驱动程序开发区
主要是开发驱动技术
复制链接
扫一扫
分享
社区描述
主要是开发驱动技术
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章