【问题标题】:permanently allocate memory in embedded system在嵌入式系统中永久分配内存
【发布时间】:2012-11-11 14:07:59
【问题描述】:

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

要求是:

  1. 在内存中分配一些位置(操作系统分配了内存并将地址返回给我,这对我来说没问题)。
  2. 在操作系统运行之前,该位置应该一直存在。
  3. 尺寸是一个参数。
  4. 我想使用busybox devmem 类命令读取和写入此位置。

【问题讨论】:

  • 这不是答案。也许你的问题很简单,我的意思是,也许你可以使用 Redis、SQLite 或一堆轻量级数据库中的一个(在内存数据库中)。 wiki.debian.org/ramfs ... 希望对您有所帮助。

标签: c memory embedded busybox


【解决方案1】:

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

bigphysarea=2

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

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

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

【讨论】:

    【解决方案2】:

    你可以挂载一些内存到文件系统,比如tmpfs,然后只操作分区上的文件。

    例如,http://www.cyberciti.biz/faq/howto-create-linux-ram-disk-filesystem/

    【讨论】:

    • 具体建议可能不适用,因为这些不是由“原始”内存支持,而是由文件系统缓存代码支持,结果只能通过该代码访问内容。发布者似乎想要在内核启动之前可能使用的“原始”内存。
    猜你喜欢
    • 2019-05-24
    • 1970-01-01
    • 2010-09-15
    • 1970-01-01
    • 2014-04-14
    • 2021-10-16
    • 2021-07-21
    • 2017-09-24
    • 2010-09-15
    相关资源
    最近更新 更多