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
未完,后续再遇到不懂的再总结~