Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 嵌入式系统中的永久内存分配_C_Memory_Embedded_Busybox - Fatal编程技术网

C 嵌入式系统中的永久内存分配

C 嵌入式系统中的永久内存分配,c,memory,embedded,busybox,C,Memory,Embedded,Busybox,我的要求很简单。 我在嵌入式平台上运行ubuntu。我想在内存中分配一些永久位置(我知道DRAM启动的地址)。我只想让操作系统不接触内存,我可以在内存上执行自定义操作(例如收集一些统计数据并写入该位置) 这些要求是: 在内存中分配一些位置(操作系统分配了内存并将地址返回给我) 在操作系统运行之前,此位置应一直存在 大小是一个参数 我想使用busybox devmem之类的命令读写这个位置 您可以将一些内存装载到文件系统,如,然后只需操作分区上的文件 例如,您可以使用bigphysarea在启动时

我的要求很简单。 我在嵌入式平台上运行ubuntu。我想在内存中分配一些永久位置(我知道DRAM启动的地址)。我只想让操作系统不接触内存,我可以在内存上执行自定义操作(例如收集一些统计数据并写入该位置)

这些要求是:

  • 在内存中分配一些位置(操作系统分配了内存并将地址返回给我)
  • 在操作系统运行之前,此位置应一直存在
  • 大小是一个参数
  • 我想使用busybox devmem之类的命令读写这个位置

  • 您可以将一些内存装载到文件系统,如,然后只需操作分区上的文件


    例如,

    您可以使用bigphysarea在启动时分配一些内存。 大小可以在linux内核参数中提供,您只需添加如下内容:

    bigphysarea=2
    
    其中2表示2页(2*4K)

    这将允许您分配连续内存供驱动程序使用


    我不确定您想做什么,但请注意,这种分配只能从内核模式访问。

    这不是答案。也许你的问题很简单,我的意思是,也许你可以使用Redis、SQLite或者一堆轻量级数据库中的一个(内存数据库)。wiki.debian.org/ramfs。。。希望这有帮助。具体的建议可能不适用,因为它们不是由“原始”内存支持的,而是由文件系统缓存代码支持的,其结果是只能通过该代码访问内容。海报似乎希望在内核启动之前使用“原始”内存。