C / Embedded Linux中的内存映射设备访问

时间:2011-03-15 11:40:44

标签: c linux embedded-linux

我有一个运行嵌入式Linux的pxa270处理器套件,它有内存映射设备。

如何在这些设备的外部存储器中存储值(如果我知道它们的物理地址)?

2 个答案:

答案 0 :(得分:1)

当你标记这个“embedded-linux”时,我会假设你要做的是写入内存映射设备的内存。

我可以想到一些方法,但我不确定Linux中的第一种是否可行:

  1. 使用系统调用将设备的物理内存空间映射到正在运行的进程的虚拟内存空间

  2. 写入虚拟文件/dev/mem

  3. 创建一个处理设备内存的块设备驱动程序,然后针对其在/dev中的条目执行(文件)操作。

  4. (实际上#1和#2可能一起使用mmap()/dev/mem使用,这样您就可以使用普通的内存读写操作而不是文件操作)。

答案 1 :(得分:0)

您可以简单地声明所需类型的指针并为其分配内存位置。然后将您的值设置为正常。

int *pointer_to_memory = (int *)address_of_external_memory;
*pointer_to_memory = value;
相关问题