1、mmap系统调用的实现过程,该系统调用直接将设备内存映射到用户进程的地址空间。2、用户空间内存如何映射到内核中(get_user_pages)。3、直接内存访问(DMA),他使得外设具有直接访问系统内存的能力。linux中地址类型:用户虚拟地址、内核虚拟地址、内核逻辑地址(与物理地址是线性关系)...
分类:
其他好文 时间:
2014-09-07 10:59:45
阅读次数:
225
需求:Uboot和系统移植好了,接下来就是把升级工具做起来,为了以后调试方便,更为了自己练手学习
期望:理解内存映射,理解mtd设备操作的框架,理解tftp的源码
计划:分三步走:
第一步:tftp源码移植:见busybox中的tftp源码移植下来,放到nandup中作为升级工具的一部分
通过执行./nandup server filename 就可以将镜像文件下载...
分类:
其他好文 时间:
2014-09-02 00:25:44
阅读次数:
270
我本机装的是64位Ubuntu, SDK 里提供的 buildroot-gcc342 是32位的,无法直接运行,需要先安装 gcc-multilib.sudo apt-get install gcc-multilib之前一直做 ARM 开发, 对这里 MIPS 首先要了解一点它的 MMU 内存映射关...
分类:
其他好文 时间:
2014-08-25 18:36:04
阅读次数:
502
linux mmap 内存映射mmap() vs read()/write()/lseek()通过strace统计系统调用的时候,常常能够看到mmap()与mmap2()。系统调用mmap()能够将某文件映射至内存(进程空间),如此能够把对文件的操作转为对内存的操作,以此避免很多其它的lseek()...
分类:
其他好文 时间:
2014-08-19 22:21:55
阅读次数:
339
最近在帮新来同事调式内存分配,起初是将config.bld 中的内存在标配的基础上减少sr1,和tiler 将dsp从9m增加到16m,然后编译通过,可是在加载的时候卡住了,init.sh 过,load.sh 加载vpss pri2 时卡住了printf ("Attached to slave pr...
分类:
其他好文 时间:
2014-08-14 20:18:49
阅读次数:
206
public abstract class MappedByteBuffer extends ByteBuffer 直接字节缓冲区,其内容是文件的内存映射区域。
映射的字节缓冲区是通过 FileChannel.map 方法创建的。此类用特定于内存映射文件区域的操作扩展 ByteBuffer 类。
映射的字节缓冲区和它所表示的文件映射关系在该缓冲区本身成为垃圾回收缓冲区之前一直保持有效。...
分类:
移动开发 时间:
2014-08-08 21:21:06
阅读次数:
417
1.概述 共享内存区是IPC中最快的,当内存区映射到共享它的进程的地址空间,进程间数据的传递就不再涉及内核。 但是这需要某种形式的同步,最常用的是信号量。 不再涉及内核:进程不再通过执行任何进入内核的系统调用来彼此传递数据。内核必须建立允许各个进程共享该内存区的内存映射关系,然后一值管理该内存区。 ...
分类:
其他好文 时间:
2014-08-01 22:48:02
阅读次数:
299
static int MapLogFile(void){ hFile = CreateFile(".\\db.bin", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_ALWAYS, ...
背景:
在多媒体和图像处理等应用中,经常用到大块内存,尤其是硬件编解码,需要内核分配大块的物理连续内存。
这里希望通过把从内核分配的连续物理内存映射到用户空间,在用户空间经过处理,又可以入队到驱动中。
前提:
Kernel Config中 根据需求配置和调整CMA的大小。
方法:
(一)
1、驱动注册misc设备;
2、驱动实现IOCTL的内存分配,使用dma_alloc_writ...
分类:
其他好文 时间:
2014-07-18 11:30:45
阅读次数:
256