我需要来自我的 C 程序的有关嵌入式 Linux 上闪存总大小和闪存类型的信息。我可以在内核启动时看到这些信息,但找不到任何其他方法来获取它们。这可能吗?
问问题
1547 次
4 回答
1
你有 /proc/meminfo 吗?这会给你你需要的信息吗?
于 2012-02-01T18:32:42.393 回答
1
我假设您的 linux 内核是 2.6 更新的,您可以查看 /proc/mtd*** 以获取一般信息。
如果这还不够,请查看 mtd-tools 的源代码: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 回答