1

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

4

4 回答 4

1

你有 /proc/meminfo 吗?这会给你你需要的信息吗?

于 2012-02-01T18:32:42.393 回答
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 偶尔会更改,因此请确保您的内核版本正确。

于 2012-02-02T02:52:36.750 回答
0

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

于 2012-02-01T18:33:39.313 回答
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 实用程序,那么您可以从这里获取源代码。您还可以分析 dmidecode 源代码中提供 ROM 信息的部分,以防您不想使用系统命令并且不想挖掘其他 BIOS 信息。

于 2012-02-01T14:15:04.853 回答