(株)グレープシステム ホームページ
トップ > 製品情報 > リアルタイムOS関連製品 > PX5 MODULES

軽量アプリケーションモジュール「PX5 MODULES」

プロの開発者向けに個別に構築された軽量アプリケーションモジュール

PX5 RTOS PX5 NET PX5 FILE

PX5 MODULES とは

PX5 MODULES により、別々にコンパイルおよびリンクされたCアプリケーションコードの動的なインプレース実行が可能になります。アプリケーションモジュールは、位置に依存しない方法(コードとデータ)で構築することも、ファームウェアメモリ内の固定アドレスにリンクすることもできます。実行時に動的にロードすることも、ファームウェアイメージ内に永続的に常駐させることもできます。モジュールを動的にロードすることは、より広範な部分更新戦略の一部にもなります。アプリケーションモジュールには少なくとも1つのスレッドがあります(さらにスレッドを動的に作成することもできます)。モジュールは非常に軽量なプロセスと考えることができます。

各アプリケーションモジュールには独自のメモリ領域があるため、PX5 MODULESは実行中にモジュールを分離して、モジュールがそのメモリ領域にのみアクセスできるようにします。メモリ領域外にアクセスすると、エラーが発生します。PX5 MODULES は、プロセッサの MPU または MMU を利用してこの保護を提供します。また、アプリケーションモジュールスレッドに最大の優先度を適用することで、時間領域の保護も提供します。

PX5 MODULESは使い方が簡単です。PX5 RTOSと同じ業界標準の POSIX pthread APIを実装しています。RTOSコードにリンクされた一般的なアプリケーションは、実装したAPIを直接呼び出します。モジュールのコンテキストでは、トラップ命令を使用して別に実装したAPIをModule Manager(RTOSソースコードに付属)に要求します。Module Managerは、モジュールを動的にロードおよびアンロードするためのAPIも提供します。

個別にコンパイルされたCアプリケーションコードの動的な実行、シンプルな統合、堅牢なメモリ分離

PX5 MODULES のコンポーネント

PX5 MODULES の特徴

 FAST AND EFFICIENT

PX5 MODULES は C (および一部のアセンブリ言語) で記述されています。モジュールからのアプリケーション API 呼び出しには、Module Manager に入るためのシステムトラップが必要です。そこから、要求が処理されます。処理が完了すると、制御は呼び出し元のアプリケーションモジュールスレッドに戻ります。この処理は、最大限の効率が得られるように最適化されています。

 SMALL

PX5 RTOSと同様に、 PX5 MODULES はサイズに重点を置いています。Module Managerは、ミニマムサイズは3KB 未満のフラッシュと 512 バイト未満の RAM となります。モジュールサポートの最小サイズ (1モジュールあたり) は、512 バイト未満のフラッシュと 2KB 未満の RAM です。アプリケーションモジュールで使用できる RTOS API を定義するのは簡単です。

 SIMPLE

Module Manager は1つのソースファイルで構成され、px5_module_manager.c です。このファイルはどのプロジェクトにも簡単に追加できます。唯一の追加要件は、プロジェクトのインクルードパスを設定することです。px5_Module Manager.hコンパイル中に見つけることができます。この時点で、Module Managerは操作の準備が整っており、複雑なプロジェクトやリンカー制御ファイルの変更は必要ありません。

PX5 MODULES には、px5_module.c そして px5_module_description.s ソースファイルとアプリケーションコードのみが必要です。インクルードファイル px5_module.h もパスで使用可能である必要があります。

Module Manager サンプルコード:

#include <pthread.h>
#include <px5_module_manager.h>
 
unsigned char   memory[1024];

int main()
{
    /* Start PX5 RTOS.  */
    px5_pthread_start(1, memory, sizeof(memory));

    /* Initialize the Module Manager.  */
    px5_module_manager_initialize();

    /* Create a module. The code for the module is already loaded at
       0x8000000 and RAM at 0x64000000.  */
    px5_module_manager_create(0, NULL, 0, 16, 31, 
    (void *) 0x8000000, 0x4000, (void *) 0x64000000, 0x400, NULL, 0);

    while(1)
    {
        sched_yield();
    }
}

PX5 MODULES サンプルコード:

#define PX5_MODULE_SOURCE
#include <px5_module.h>

/* This is the module's entry function (thread).  */
void *  module_entry(void *  argument_area,  u_long  argument_size)
{
    /* Application processing goes here!  */
    while(1)
    {
        sched_yield();
    }
}

/* This is the exit function of the module, which is called before the module is terminated.  */
void  module_exit(void)
{
    /* Application processing goes here!  */
}

 ADVANCED

PX5 MODULES は、多くの組込みRTOSクラスのソリューションでは利用できない独自の軽量プロセスです。これにより、アプリケーションはテストがあまり行われていないソフトウェアコンポーネントを分離し、部分的なシステム更新を実行できます。

 完全なソースコード

PX5 MODULES は、理解しやすいソースコードとともに提供されます。Module Managerに関連付けられた実装コードはそれに応じて名前が付けられ、px5_module_manager.c ファイルに含まれています。PX5 MODULES インフラストラクチャコードはすべて、px5_module ファイルにあります。

 ロイヤリティフリー

PX5 MODULES はロイヤリティフリーのライセンスにて提供します。
ライセンス費用の詳細につきましては、弊社営業までお問い合わせ下さい。

 プロセッサのサポート

PX5 MODULES は ANSI C で記述されているため、すべての一般的な Arm アーキテクチャ(Cortex-A/R/M)および RISC-V を含む、Cコンパイラをサポートするあらゆるプロセッサアーキテクチャに高い移植性があります。

 ツールサポート

PX5 MODULES は、IAR、ARM、GCC などの一般的な組込み開発ツールをサポートします。

 専門的なサポート

多くのオープンソースや一部の商用オプションとは異なり、PX5サポートチームが迅速に対応します。

資料ダウンロード

px5rtos.comサイトにユーザーガイドを用意しています。ダウンロードしてご確認ください。

※ px5rtos.comサイトでのユーザー登録が必要になります。

お問い合わせフォーム

フォームが表示されるまでしばらくお待ち下さい。

恐れ入りますが、しばらくお待ちいただいてもフォームが表示されない場合は、こちらまでお問い合わせください。

ページのトップへ戻る