6

2 ~ 3 種類のマイクロ コントローラー ファミリで実行する組み込みソフトウェアを開発しています。今のところ、構成スイッチを読み取り、コンパイルを行うメイクファイルがあります。

開発者と非開発者の両方にとって、コンパイル スイッチとビルド構成を最新の状態に保つプロセスはますます面倒になっています。Linux カーネルがコンパイル構成の生成に ncurses を使用していることは知っています。同様のツールを探していますが、クロスプラットフォームです。Windows および Linux で実行する必要があります。これでも問題が解決しないことはわかっていますが、開発者以外にとってはより魅力的であり、.config ファイルをすばやく共有したり、既存のファイルと比較したりできます。構成は特定の順序で行われ、ここの差分ツールが役立ちます。

誰でも、同様のプロジェクトのメンテナンスまたは参照プロジェクト (複数のマイクロの組み込みおよび共通のコード ベース) で自分の経験を共有できますか。ベストプラクティスを知りたいだけです。

PS : 使用言語 C、8/16 ビット micros、OS なし、タイマー ベースのバッチ スケジューラのみ (ベアメタル)

4

3 に答える 3

1

マルチプラットフォーム開発を行っていたとき、私はここでの回答のようなソリューションを使用しました。 プラットフォームごとに特定の「platform_XXX.h」を用意し、条件付きコンパイルを、適切なサブファイルを選択する単一のマスター「platform.h」ファイルに制限します。

于 2012-01-20T19:53:24.943 に答える
1

マイクロコントローラーは 1 つですが、同じソース コードからコンパイルされるプロジェクトがいくつかあります。私のシナリオは、少なくともある程度はあなたのシナリオと似ていると思います。私のソリューションも Linux カーネルに触発されました。

config.h

構成パラメーターにアクセスする必要があるすべてのソース コードには、単に というヘッダー ファイルが含まれていますconfig.h

config.h次の 1 行だけで構成されます。

#include <config/project.h>

project.h

プロジェクトごとに 1 つずつ、いくつかの構成ヘッダー ファイルがあります。は、 、、または定数などの値を持つproject.hマクロ定義で構成されます。truefalse

#define CONFIG_FOO true
#define CONFIG_BAR false
#define CONFIG_TIME 100

check.c

このファイルは、構成パラメーターの正確性をチェックします。 -そのプロジェクトで使用されていない、または意味がない場合でも、すべてのパラメーターを定義する必要があります。 - 不要なパラメーターの組み合わせが通知されます。 - パラメーター値が制限されています。

#if !defined(CONFIG_FOO)
        #error CONFIG_FOO not defined
#endif

#if !defined(CONFIG_BAR)
        #error CONFIG_BAR not defined
#endif

#if !defined(CONFIG_TIME)
        #error CONFIG_TIME not defined
#endif

#if !(CONFIG_FOO ^ CONFIG_BAR)
       #error either CONFIG_FOO or CONFIG_BAR should be se
#endif

#if CONFIG_TIME > 250
        #error CONFIG_TIME too big
#endif

Makefile

プリプロセッサ マクロを出力するようにコンパイラに指示することで、特定のプロジェクトに提供されたのと同じパラメータ値を(少しsed式を使用して) に供給することができます。Makefile

于 2012-01-04T22:38:53.200 に答える
1

他に何も見つからない場合は、GNU autotoolsを使用すると作業が少し簡単になります。

于 2012-01-04T08:52:09.383 に答える