3

これが可能であると確信していますが、どうすればよいかわかりません。私は一般的に GCC を使用して構築するのは非常に初めてで、FreeRTOS を使用したことはありませんが、OS を起動して TI ARM Cortex MCU で実行してみたいと思っていますが、少しひねりがあります。 Pascal で起動して実行します。私は興味がある:

  • これでも就職できるのでしょうか?そうでない場合、次の問題は一種の論点です。
  • Delphi 時代から、C ライブラリの関数にアクセスする機能を漠然と思い出しました。FreeRTOS で C ルーチンにアクセスできるかどうか疑問に思っています。
  • GCC バージョン (推奨) を使用すると、ターゲットで OpenOCD を使用してデバッグできますか? デバッグ シンボルがどのように機能するのか、多かれ少なかれ言語に依存しないのかどうかはよくわかりません (この場合はうまくいけば)。
  • 元のクエリの範囲外のボーナス質問として、x86 プロセッサ (開発用 PC など) で FreeRTOS をシミュレートして、開発中のデバッグを容易にすることはできますか? (もちろん、Pascal プログラムで..)

これを達成するためのドキュメントが見つからないので、ここの誰かが光を当てることができることを願っています! どのリソースも最も役に立ちます。私が言ったように、私はこの種の開発に非常に慣れていません。より良い代替案があると思われる場合は、提案も受け付けています。

参考までに、私の好みのホスト構成は次のようなものです。

  • Linux (Ubuntu/Debian)
  • 開発、単体テスト、できればシミュレーション / デバッグ用の Eclipse IDE
  • ターゲットデバッグ用の OpenOCD
  • ターゲット上の GNU Pascal + FreeRTOS
4

3 に答える 3

3

FreeRTOS は C ソース コードであるため、C を Pascal プログラムとリンクするための何らかのメカニズムが必要であると言われています。また、FreeRTOS は、パラメーターをタスクに渡すなどの目的で使用される特定のレジスターに依存しているため (仮想的な例として、タスクは常にパラメーターがレジスター R0 にあると想定している可能性があります)、C コンパイラーの ABI を確認する必要があります。 Pascalコンパイラも同じでした-または、Cでタスクエントリを作成してから、Pascal関数を呼び出します(非常に厄介です)。次に、割り込み、インライン マクロの呼び出しなどの問題があります。これを達成するのは非常に難しいと思います。

于 2010-08-22T05:36:40.623 に答える
2

GNUPascalとFreePascalはどちらも、C(gcc)とARMへのリンク、およびCからのpascalコードの呼び出しなどをサポートしています。ヘッダーを記述し、cdeclを使用してプロトタイプを宣言するだけです。

マクロは少し大きな問題です。通常、私はそれらをインライン関数に書き直します(とにかくそれらがどうあるべきか)。マクロ/ヘッダーの問題を除いて、問題はよりコンパイラー固有の機能です(これは、あるCコンパイラーから次のコンパイラーに移植するときにも問題が発生します)。

TP / Delphi方言を好む場合は、FreePascalの方が適しています。

私は古いDelphiコードをsheevaplugでうまく実行しています。

于 2010-08-22T10:02:07.003 に答える
2

TI Cortex-M3 (以前は Luminary Micro Cortex-M3) での FreeRTOS/GCC/OpenOCD の例が既にあります。ただし、これは非常に古い例であり、使用されている Eclipse と OpenOCD の両方のバージョンが古くなっていることに注意してください。

Eclipse プロジェクトが提供されていますが、このプロジェクトは (マネージド make ではなく) 標準の make プロジェクトとして構成されているため、Eclipse 内からと同じようにコマンド ラインからも簡単に実行できる標準の makefile があります。

http://www.freertos.org/portLM3Sxxxx_Eclipse.html

于 2011-02-20T10:01:57.087 に答える