マニュアル(PDF)
ソフトウェア(ZIP)
- シミュレーション&トライアルパック(9MB)
- ビットマップコンバータデモパック(120KB)
- フォントコンバータデモパック(400KB)
マルチタスク環境での割り込み方式シリアル通信のサンプルプログラムです。このままあらゆるCPU上でご利用いただけます。
/*
SEROUT.C
Interrupt driven serial communication with embOS real time operating system
Sample program that can be used without changes in applications
Needs definitions similar to the following in MAIN.H :
#define INTHANDLERST interrupt [0] void IntHandlerSR(void)
#define _WriteSIO(c) U0TB = c;
Declares the following functions for other modules :
void SEROUT_Write(char c);
void SEROUT_Init(void);
*/
#include "MAIN.H" // include file for all modules, incl. RTOS.H
#include "HWDEF.H" // include for hardware definitions
#ifndef SIZEOF_SO
#define SIZEOF_SO (50)
#endif
MAILBOX MBSO; // Mailbox for transmission
char BufferSO[SIZEOF_SO];
char Sending;
//
// Defines the interrupt routine for serial transmission.
// Basic operation is as follows :
// If there is one character in Buffer it is send
// Otherwise the global variable Sending is cleared
//
INTHANDLERST
{
char c;
EnterInterrupt();
if (!GetMailCond1(&MBSO, &c)) {
_WriteSIO(c);
} else
Sending =0;
LeaveInterrupt();
}
//
// Writes one character to the SIO
// Basic operation is as follows :
//
// If transmission already in progress, put character in buffer
// Where the interrupt routine will get it
// Otherwise set global variable Sending and write into register
//
void SEROUT_Write(char c) {
SDI(); // disable interrupts
if (Sending)
PutMail1(&MBSO, &c);
else {
Sending =1;
_WriteSIO(c);
}
RI(); // restore former status of IE-flag
}
void SEROUT_Init(void) {
CREATEMB(&MBSO, 1, SIZEOF_SO, &BufferSO);
}
embOSシミュレーションは実際のハードウェア上でどのように動作するか可視化、シミュレーションができ、お客様のアプリケーション開発を楽にします。目的の試したいハードウェアの動作を忠実に再現することができます。このソフトにはVisual Studioでも使えるサンプルテンプレートが用意されており開発の取っ掛かりとしても利用することができます。
デバイスシミュレーション
embOSシミュレーションはハードウェアデバイスのシミュレートと可視化する機能があります。プログラムを動かした時のLEDの動作などを観ることができます。
このサンプルフレームプログラムはメモリがシンプルなマルチタスクプログラムを作るライブラリに関連付けてコンパイルする必要があります。
----------------------------------------------------------------------
File : Main.c
Purpose : Skeleton program for OS
-------- END-OF-HEADER ---------------------------------------------
#include "RTOS.h"
OS_STACKPTR int StackHP[128], StackLP[128]; /* Task stacks */
OS_TASK TCBHP, TCBLP; /* Task-control-blocks */static void HPTask(void) {
while (1) {
OS_Delay (10);
}
}static void LPTask(void) {
while (1) {
OS_Delay (50);
}
}/*********************************************************************
*
* main
*
*********************************************************************/int main(void) {
OS_IncDI(); /* Initially disable interrupts */
OS_InitKern(); /* initialize OS */
OS_InitHW(); /* initialize Hardware for OS */
/* You need to create at least one task here ! */
OS_CREATETASK(&TCBHP, "HP Task", HPTask, 100, StackHP);
OS_CREATETASK(&TCBLP, "LP Task", LPTask, 50, StackLP);
OS_Start(); /* Start multitasking */
return 0;
}
このプログラムはお客様のエミュレータ上でシングルタスクプログラムとして動作し確認することができます。
タスク切り替えがいかにはやいかを体験していただくことができます。このプログラムを拡張することで手軽に開発を始めることができます。今までどおりのやり方で開発することができ、自動的にアイドリング時のパワーセーブ機能がつくので消費電力にも優れます。
embOS IARプラグインはデバッグ中の動作を監視し、お客様はタスクリスト、リソースセマフォ、メールボックスやタイマーの状態を調べることができます。
embOSが対応するあらゆるCPUに対応しています。また、動作を実際に確認しているのは以下のリストにあるCPUです。
すべてのembOSダウンロードバージョンに付属しています。
1.インストール
手順は非常に簡単です。ARMのプラグインディレクトリにembOSのプラグインパケージをコピーするだけです。
2.導入
初期設定ではプラグインは有効になっていません。プロジェクトオプションのデバッガーでプラグインを有効にして下さい。
以上です。これでデバッグ中やメインメニューからプラグインが利用できるようになります。
概要
デバッグセッションの間のみIAR Embedded Workbenchのメインメニューからプラグインを選択できます。デバックセッションが動いてない時は利用できません。
メニューからembOSの情報を表示することができます。また、利用できない情報がある場合はグレー表示となり選択できません。
タスクリスト
タスクリストはembOSにある全てのタスクの情報を表示しています。緑の矢印は実行中のタスクを指し示します。
またCPUがアイドル状態の場合は最下段のidleを指し示します。このidleは常に表示されていますが、タスクではなくidle状態にあることを示すmのです。
項目 | 説明 |
---|---|
緑矢印 | CPUが処理中のタスクを指し示します |
Prio | タスクの優先度 |
Id | タスクの固有アドレス |
Name | タスク名 |
Status | タスクの状態 |
Timeout | タスクが遅延している場合Time outと表示します。また括弧内にタスクが完了するまでの時間を表示します |
Stack Info | 使用中スタック数、使用可能スタック数、現在のbottom stackの位置を表示します |
Run count | アクティブ中のタスク数 |
Time slice | 残りのタイムスライスとタイムスライスのリロード数を表示しています |
Events | イベントマスク |
タスク感知( ver3.63以降のembOSとver5.20以降のIAR Embedded Workbenchが要件となります)
以下のCPUで利用できます。
C-Spyプラグインを利用することで任意のタスクの状況を追跡、操作することができます
選択されたタスクは黄色い背景がつきます。
項目 | 説明 |
---|---|
Id | メールボックスのアドレス |
Messages | メッセージボックス内のメッセージ数と、最大収容可能メッセージ数を表示 |
Message size | それぞれのメッセージのサイズ |
pBuffer | メッセージの一時アドレス |
Waiting tasks | 待機中のタスクを表示 |
Column | Description |
---|---|
Id | タイマーのアドレス |
Hook | タイムアウトのあとに呼ばれた関数を表示 |
Time | 遅延時間などのタイマーの状況を表示 |
Period | タイマーの動作回数 |
Active | 動作中かどうかを表示 |
項目 | 説明 |
---|---|
Id | リソースセフォマのアドレス |
Owner | 使用しているタスクの名前とアドレス |
Use counter | セマフォを使用しているユーザー数 |
Waiting tasks | セマフォで待機中のタスクのリスト |
重要なシステム変数のモニタリングができます。
embOSプラグインではプラグインの動作を安定化させるために常時監視するタスク数、情報数などを制限しています。この制限をある範囲でユーザーが目的に合わせて設定することができます。
設定が完了したらOKを押して下さい。つぎのブレイクポイントで設定が適用されます。
また、プラグインが再読込されるたびにこれらの値は初期設定に書き換えられます。