組み込み Linux のフラッシュ メモリの合計サイズとフラッシュ メモリ タイプについて、C プログラムからの情報が必要です。カーネルの起動時にこれらの情報を確認できますが、他の方法で取得する方法が見つかりません。これはまったく可能ですか?
4 に答える
/proc/meminfo はありますか? それはあなたに必要な情報を提供しますか?
あなたの Linux カーネルは 2.6 より新しく、/proc/mtd*** で一般的な情報を確認できると思います。
それでも不十分な場合は、mtd-tools のソース コードを確認してください: 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 サイズが表示されます。ROM サイズを grep しない場合は、他の BIOS 情報も表示されます。組み込み Linux に Dmidecode ユーティリティがない場合は、ここからソース コードを取得できます。システム コマンドを使用したくない場合や、他の BIOS 情報を掘り下げたくない場合に備えて、ROM 情報を提供している dmidecode ソース コードの部分を分析することもできます。