c-在Linux上用程序获取有关ROM内存类型和大小的信息



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

您有/proc/meminfo吗?这能给你所需要的信息吗?

我假设您的linux内核更新了2.6,您可以查看/proc/mtd***以获取一般信息。

如果这还不够,请查看mtd工具的源代码:mtdinfo.c

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

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

mtd接口的内核api偶尔会更改,因此请确保您的内核版本正确。

是的。使用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实用程序,那么您可以从这里获得源代码。您还可以分析dmidecode源代码中提供ROM信息的部分,以防您不想使用系统命令,也不想挖掘其他BIOS信息。

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

最新更新