我的要求很简单。我在嵌入式平台上运行 ubuntu。我想在内存中分配一些永久位置(我知道 DRAM 的起始地址)。我想要的只是操作系统不应该触及内存,我可以在该内存上执行自定义操作(例如收集一些统计数据并写入该位置)。
要求是:
- 在内存中分配一些位置(操作系统分配了内存并将地址返回给我,这对我来说很好)。
- 在操作系统运行之前,该位置应该存在。
- 尺寸是一个参数。
- 我想使用busybox devmem 类型的命令来读写这个位置。
您可以使用 bigphysarea 在启动时分配一些内存。大小可以在 linux 内核参数中提供,您只需附加如下内容:
bigphysarea=2
其中 2 表示 2 页 (2*4K)
这将允许您分配一个连续的内存供您的驱动程序使用。
我不确定你想做什么,但请注意这种分配只能从内核模式访问。
您可以将一些内存挂载到文件系统,例如tmpfs,然后只操作分区上的文件。
例如,http://www.cyberciti.biz/faq/howto-create-linux-ram-disk-filesystem/