kconfigをの簡単な例

https://cloud.tencent.com/developer/article/1431908

 

kconfigをを使用する場合は、注意を払う必要があります

  • 1.は、kconfigの設定定義されたマクロ、接頭辞がありません「CONFIG_」、唯一のカーネルをコンパイル、の自動生成をautoconf.hは接頭辞の前に表示されます。
  • 2.場合XX_defconfig kconfigを中としながら、ボード・コンフィギュレーション・ファイルは、新しいマクロ= Yを定義することを宣言していないアウトをautoconf.h内のカーネルをコンパイルした後は、それを定義しないだろうに。
  • 3.場合XX_defconfigボード構成ファイルが設定されていないCONFIG_MODULES = Yを、コンパイラがモジュールする時間が失敗し make menuconfigを、トライステートkconfigをパラメータはブールパラメータ(すなわち、設定されていないM)として読み取られている間、

CONFIGマクロ変数パラメータ

  • BOOL: mは、(モジュールとして)選択することができない、マクロはCONFIG yを(コンパイルされたカーネル)またはN(コンパイルされていない)を選択することができることを示しています
  • トライステートは:マクロはCONFIGのY / M / Nの3つのモードが提供され得ることを示している(トライステート)
  • ストリング:など、CONFIGマクロは文字の文字列に設定することができることを示すの#define CONFIG_XXX「設定テスト」
  • ヘキサン: CONFIGマクロのような16進数に設定することができることを示します。#define CONFIG_XXX 0x1234の
  • INT:など、CONFIGマクロが整数に設定することができることを示すの#define CONFIG_XXX 1234

一般的なパラメータ

  • デフォルトyは:もちろん、デフォルトmまたはデフォルトnとして書くことができる、フック上にあるデフォルトを表します
  • ヘルプ:ヘルプ情報を
  • 依存:依存関係、XXXは、現在のマクロを表しに依存し、それを設定するために、前提CONFIG_ XXXマクロのオープンを要求するなど(ノートの依存関係の設定パラメータが有効な唯一のブール値またはトライステートです)
  • 選択:抗依存性を、そして反対に依存する、そのようなselecton XXXは、現在のマクロ又は場合のY、M、自動的に設定又はXXX = Y mを表す(パラメータのみ有効BOOLまたはトライステートであることに注意)
  • 選択:生成単一のボックス設定パラメータのみ選択BOOLまたはトライステートに注意して、マルチ設定によってモード選択から選択され、
  • プロンプト:プロンプトの情報を、選択のために、ボックスはシングルとして使用する場合は、エントリ・ポイント・ラベル
  • 範囲:など、ユーザによって入力されたデータの範囲を設定する範囲0 100のみ0〜100でデータを表します
  • menuconfigの: menuconfigのコンフィグXXX XXXなど、唯一の違いは、オプション提供Y / M / N、効果も達成することができるメニューに加えていることである(内部に入ることができます)

例1 -チェックボックス(複数選択およびそれ以上)の作成-マクロ変数のパラメータを探るその後、我々は別のマクロの異なるパラメータを設定する方法をしようとするでしょうMY_SYMBOL1〜MY_SYMBOL5例設定MY_SYMBOL3を〜MY_SYMBOL5 に依存 MY_SYMBOL2 カーネルトップkconfigをファイルを変更し、コンテンツを追加します。

menuconfigをMY_SYMBOL_TEST#生成一个菜单宏项
ブール値「MY_SYMBOL_TEST」
 デフォルトyを

設定MY_SYMBOL1の
ブール値は、「私のシンボルがブール値である」
 デフォルトのyは MY_SYMBOL_TESTに依存 コンフィグMY_SYMBOL2  トライステート「私のsymbo2はトライステートである」 デフォルトのmはMY_SYMBOL_TEST設定MY_SYMBOL3文字列に依存して私のsymbo3が文字列です「 " デフォルト"の試験symbo3は" MY_SYMBOL2に依存&& MY_SYMBOL_TEST設定MY_SYMBOL4進私のsymbo4ヘクスである""レンジ0 0x2000で#设置進区间デフォルト0x1234のMY_SYMBOL2に依存&& MY_SYMBOL_TESTコンフィグMY_SYMBOL5 int型"私symbo5は、」範囲のintである02000#が設定された間隔のint型のデフォルト1234ザ・がMY_SYMBOL2に依存&& MY_SYMBOL_TEST

下記に示すように、結果:

上記のように、我々は設定見ることができる私のsymbol5を間隔を超えて[0,2000] データを直接与えられています

次のように自動的に生成されたビューをautoconf.hコンパイルされたカーネルは、定義されています。

上記のマクロCONFIG_MY_SYMBOL2_MODULE我々はデフォルトメートルkconfigをに設定し、そのためCONFIG_MY_SYMBOL2_MODULEマクロモジュールを。

例2 - 単一のボックス(多くの1)を作成することで選択

choice
prompt "choice example"    #作为该单选框入口点的标签
default y
default MY_SYMBOL3         #默认选择MY_SYMBOL3配置项

config MY_SYMBOL1
bool "my symbol1 is bool"
help
MY_SYMBOL1 example

config MY_SYMBOL2
bool "my symbo2 is bool"
help
MY_SYMBOL2 example

config MY_SYMBOL3
tristate "my symbo3 is tristate" help MY_SYMBOL3 example endchoice

编译内核后,查看autoconf.h,如下图所示,可以看到对于choice单选框来说,tristate属性其实并没有module功能,只有y/n

未完,后续再遇到不懂的再总结~

おすすめ

転載: www.cnblogs.com/idyllcheung/p/11369319.html