以编程方式获取有关Linux内存ROM类型和大小的信息

时间:2012-02-01 13:16:15

标签: c linux embedded flash-memory

我的C程序需要有关嵌入式Linux上闪存和闪存类型总大小的信息。我可以在内核启动时看到这些信息,但找不到任何其他方法来获取它们。这有可能吗?

4 个答案:

答案 0 :(得分:1)

你有/ proc / meminfo吗?这会为您提供所需的信息吗?

答案 1 :(得分:1)

我认为您的Linux内核是2.6更新,您可以检查/ proc / mtd ***以获取一般信息。

如果还不够,请查看mtd-tools的源代码:mtdinfo.c

http://gitorious.org/0xdroid/external_mtd_utils/blobs/e783e75e09b4a0a519665afd7bdeaf2985e7a09c/ubi-utils/src/mtdinfo.c

检查那些print_XXXX_info函数。 您还需要一些外部库来实现这一目标。

mtd接口的内核api偶尔会发生变化,所以请确保你的内核版本正确。

答案 2 :(得分:0)

是的。可以使用linux的dmidecode实用程序。这是示例代码

#include <stdio.h>  
#include <stdlib.h> 
int main()  
{  
    char str[100]  = "dmidecode | grep -i 'ROM Size'";  
    system(str);  
    return 0;  
}

它会给你ROM大小,如果你没有grep的ROM大小,那么它也提供其他BIOS信息。如果您的嵌入式Linux没有Dmidecode实用程序,那么您可以从here获取源代码。您还可以分析dmidecode源代码的一部分,该代码提供ROM信息,以防您不想使用系统命令而不想挖掘其他BIOS信息。

答案 3 :(得分:0)

查看内核和/或引导加载程序源,看看它在引导时是如何做到的。该方法可能特定于您的硬件。