1

組み込み Linux のフラッシュ メモリの合計サイズとフラッシュ メモリ タイプについて、C プログラムからの情報が必要です。カーネルの起動時にこれらの情報を確認できますが、他の方法で取得する方法が見つかりません。これはまったく可能ですか?

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 サイズが表示されます。ROM サイズを grep しない場合は、他の BIOS 情報も表示されます。組み込み Linux に Dmidecode ユーティリティがない場合は、ここからソース コードを取得できます。システム コマンドを使用したくない場合や、他の BIOS 情報を掘り下げたくない場合に備えて、ROM 情報を提供している dmidecode ソース コードの部分を分析することもできます。

于 2012-02-01T14:15:04.853 に答える