2

カーネル全体とアプリケーションソフトウェアをコンパイル/リンクせずにソフトウェアを更新する機能をサポートする組み込みRTOSを探しています。概念は、WindowsまたはUnixデスクトップシステムの場合のようになります。カーネル(カーネルから切り離された)に触れることなく、アプリケーションモジュール(コンパイル/リンクされたバイナリ)をターゲットにダウンロードします。このようなメモリ保護されたダウンロード可能なアプリケーションモジュール(DAM)をサポートするRTOSの1つは、ExpressLogic(www.rtos.com/products/threadx/)のThreadXです。

そのようなDAMコンセプトをサポートする他のRTOS(フットプリントが小さく、ターゲットCPU Cortex-M3)を知っている人はいますか?

ThreadXのDAMの経験はありますか?いくつかの承認された文献?

前もって感謝します!

4

3 に答える 3

1

QNXNeutrinoはそれを行うことができます。これは単なるカーネルではなく完全なRTOSであり、UnixライクなインターフェイスとPOSIXAPIを備えています。デフォルトではKornシェルを使用しますが、代替シェルまたはウィンドウGUIインターフェイスを使用できます。真のRTOSでありながら、LinuxやWindowsEmbeddedよりもはるかに小型でスケーラブルです。


WindowsCEはリアルタイム対応です(ただし、通常のRTOSほど柔軟でも高速でもありませんが、決定論的で、真の優先度ベースのプリエンプティブスケジューラを備えています)。


VxWorksは、オブジェクトモジュールを動的にロードして、すでにロードされ実行中のカーネルにリンクできます。

WindowsやLinuxとはまったく同じではなく、開発ホストでの部分的なリンクによって機能し、ターゲットで実行時にリンクが完了します。ロードされるオブジェクトファイル内の未解決のリンク依存関係は、カーネルまたは以前にロードされたオブジェクトファイルのいずれかでターゲットに存在する必要があります。

結果として得られるランタイムは、開発ホスト上で完全にリンクされているかのようにモノリシックアプリケーションとして動作するため、各モジュールには一意の外部シンボルが必要であり、main()関数は必要ありません。ランタイムローダー/リンカーはロードされたモジュールを実行しませんが、VxWorksシェルは関数名でパブリック関数を直接実行できるため、コマンドラインまたはスクリプトからロードされたモジュールのエントリポイントを呼び出すだけです。


于 2012-01-07T20:45:16.477 に答える
0

フットプリントは非常に小さいです。カーネル、モジュール マネージャー、メモリ保護とモジュール サポートを備えた小さなデモ アプリは 15kB 未満です。

threadx を使用すると、mpu を使用できるため、cortex m3 でこれを実行できます。mmu は必要ありません。私の知る限り、他のOSには問題があります。

于 2015-03-03T13:37:40.497 に答える