C++ などの多くの言語では、多くの異なるソース ファイルを使用するのが普通ですが、PIC マイクロコントローラー プログラムではそうではないように思われます。少なくとも、私が読んだチュートリアルや本ではそうではありません。 .
main.c ファイルで使用できる一連のルーチン、グローバル変数、および定義を含むソース (.c) ファイルを作成する方法を考えています。これは可能ですか?
アドバイスありがとうございます!
C++ などの多くの言語では、多くの異なるソース ファイルを使用するのが普通ですが、PIC マイクロコントローラー プログラムではそうではないように思われます。少なくとも、私が読んだチュートリアルや本ではそうではありません。 .
main.c ファイルで使用できる一連のルーチン、グローバル変数、および定義を含むソース (.c) ファイルを作成する方法を考えています。これは可能ですか?
アドバイスありがとうございます!
これは、PIC 開発では絶対に可能です。サイズは確かにコードとデータの両方の観点から懸念事項ですが、それは依然として C コードに過ぎず、単一の出力にコンパイルおよびリンクされる複数のソース ファイル (通常は . hex ファイル)。たとえば、test.c のように、main.c とは別の C ファイルで次のようにします。
int AddNumbers(int a, int b)
{
return a + b;
}
次に、ヘッダー ファイル test.h でそれを定義できます。
int AddNumbers(int a, int b);
main.c ファイルの先頭に test.h を含めます。
#include "test.h"
その後、main.c から AddNumbers(4,5) を呼び出すことができるはずです。私はこのコードをテストしていませんが、単にプロセスの例として提供しています。
通常、PIC18 のほとんどのコードは他のファイルからインクルードされます。そのため、コンパイルしてからリンクするという高レベルの手法ではなく、すべてのコードをインクルード (およびインクルードからインクルード) して、コンパイラに単一のストリームが送られるようにする方が一般的です。PIC18でもできると思いますが、動作させるのに十分な時間を費やしたことはありません. ライブラリなどのほとんどは、個別に翻訳されたユニットとしてではなく、インクルード ファイルとして設計されています。
考え方は違いますが、それには理由があります。これは、物事をできるだけ小さく保つという歴史的な必要性によるものだと思います。そのため、チップに基づくマクロがはるかに多くなり、(リンク可能な) ライブラリ開発ははるかに少なくなります。
ライブラリのサポートに関しては、PIC32 コンパイラの方がはるかに優れています。