可変長メモリプールと固定長メモリプール
可変長メモリプールは、任意のサイズのメモリブロックを管理するための機能です。固定長メモリプールは、固定サイズのメモリブロックを管理するための機能です。メモリブロックのサイズが固定である以外は、基本的に可変長メモリプールと同じ機能です。
可変長メモリプールは、任意のサイズのメモリブロックを管理するための機能です。固定長メモリプールは、固定サイズのメモリブロックを管理するための機能です。メモリブロックのサイズが固定である以外は、基本的に可変長メモリプールと同じ機能です。
Cortex-M3のマニュアルを読みますと、テールチェイン、横取り、後着という言葉が出てきます。例外処理優先順位によって発生する例外処理のタイミングを現す言葉です。各々の意味を簡単に説明すると以下のようになります。
ランデブが成立すると、ランデブを呼出したタスクから受け付けたタスクへ、呼出メッセージが渡されます。具体的には、呼出側タスクがtk_cal_porで指定したmsg以下の領域のcmsgszバイトが、受付側タスクがtk_acp_porで指定したmsg以下の領域にコピーされます。
例外のタイプには、リセット、割り込み、フォールトなどがあります。例外処理は突如として発生しますので、命令の実行に対し非同期で起こります。しかし、フォールトだけは、命令の実行によってエラー条件が発生したことによる例外ですので、原因となった命令に同期して発生することが基本です。
今回はミドルウェアについて説明します。ミドルウェアとは、リアルタイムOSとアプリケーションの中間に位置するソフトウェアです。具体的にはファイルシステムやネットワークのプロトコルスタック(TCP/IP)のように、リアルタイムOSに機能を追加するモジュールのことです。
Cortex-M3には、エンディアンを設定するピンBIGEND (注意:マイコンのピンではありません。論理モジュールの外部との信号線の名前です)があります。これを使用するとリトルエンディアン、またはビッグエンディアン形式のいずれかを選択することができます。
T-Kernelではセマフォだけでなくミューテックスも提供しています。ミューテックスはセマフォと同様にタスク間の排他制御を行うための機能を提供しますが、排他制御に伴って発生する上限のない優先度逆転を防ぐ機構をサポートします。
Cortex-M3には特殊レジスタとして、「専用プログラムステータスレジスタ(PSR)」と呼ばれるプログラムの実行状態を示すレジスタがあります。専用プログラムステータスレジスタ(PSR)は、システムレベルのプロセッサステータスを表し、次の3つのカテゴリに分けられます。
T-Kernelでは、メッセージの送受信ができる機能を複数用意していますが、その一つとしてメッセージバッファがあります。メッセージバッファは、可変長のメッセージを送受信することのできる同期・通信機能の一つです。