memory-mapping

    0热度

    2回答

    我正在研究嵌入式代码,并尝试将大量内存映射寄存器分配转换为get()/ set()函数调用。我想知道是否可以维护整个代码中分配的地址分配,但更改#define以使它们将作业作为函数参数进行分配。 老方法: #define MOTOR_REG (*(volatile unsigned char *)(0xFEE002)); //a memory-mapped register MOTOR_REG

    0热度

    1回答

    我正在将一个大的3d数组序列化为磁盘。原始数据大约为50MB,GZiped输出为 (以Kb为单位),但操作大约需要5秒。优化它的时间。我想天气它会更好地使用映射读/写,因为我已经看到它具有better performance比平常的流写作。但不知道如何使用ObjectOutputStream和GZIPOutputStream与映射写入。请建议天气是值得使用映射读/写连同对象输出流,如果任何人有相同

    0热度

    1回答

    我在CentOS 5.3 32bit到Centos 5.5 32bit之间升级操作系统。完成软件包更新后,我重新启动,检出源代码的干净副本,构建并运行单元测试。所有依赖MemMap基类的单元测试都开始失败。 当我们尝试在映射内存之后立即设置防护页的值时发生崩溃。经过四处探查,我能够将问题隔离到我们使用MAP_GROWSDOWN标志,测试运行良好,但没有它,但在设置标志时崩溃。当构建系统运行5.3时

    4热度

    1回答

    我正在做Java内存映射IO。 FileChannel类允许您将ByteBuffer映射到文件的特定部分。我正在做一个文件打开只读。 我遇到的问题是,当我尝试调用生成的ByteBuffer上的.array()方法时,出现异常。也许这是因为.array()返回一个byte []数组,我真的想要一个finalized的字节数组? 有没有办法解决这个问题?

    6热度

    5回答

    我正在使用基于x86的内核来操纵32位内存映射寄存器。只有当CPU产生32位宽的读取和写入该寄存器时,我的硬件才能正常工作。该寄存器在32位地址上对齐,并且在字节粒度上不可寻址。 我该怎么做才能保证我的C(或C99)编译器只会在所有情况下生成完整的32位宽读写? 例如,如果我不喜欢这样的读 - 修改 - 写操作: volatile uint32_t* p_reg = 0xCAFE0000; *p

    2热度

    1回答

    在solaris上,我可以在核心文件上运行pmap命令来获取崩溃进程的内存映射。不幸的是,HPUX和Linux上可用的pmap命令不提供此选项。任何指针如何我可以在这些平台上获得这些信息?

    7热度

    2回答

    我了解rwxps位的含义。 r-xp用于.text。 rw-p用于.data/.bss /堆/堆栈。什么是---p页面的使用? 例如见的cat /proc/self/maps 00400000-0040b000 r-xp 00000000 08:03 827490 /bin/cat 0060b000-0060c000 rw-p 0000b000 08:03 827490

    1热度

    3回答

    我有2GB RAM和运行内存密集型应用程序和要低可用物理存储器状态和系统不响应用户动作,如打开的任何应用程序或菜单调用等 如何触发或告诉系统将内存交换为页面文件和空闲物理内存? 我正在使用Windows XP。 如果我在4GB RAM机器上运行相同的应用程序,情况并非如此,系统响应良好。在获得可用的物理内存系统之后,系统会自动交换页面文件和空闲物理内存,这不像2GB系统那么糟糕。 为了克服这个问题

    9热度

    4回答

    在Linux中,看一个进程的存储器映射看着/proc/PID/maps最简单的方法,让这样的事情: 08048000-08056000 r-xp 00000000 03:0c 64593 /usr/sbin/gpm 08056000-08058000 rw-p 0000d000 03:0c 64593 /usr/sbin/gpm 08058000-0805b000 rwxp 00000