組み込みOS適材適所 《Windows Embedded CE編》(2) ―― μITRONシステムからWindows Embedded CEシステムへの移行手順

中田 佳孝

tag: 組み込み

技術解説 2009年11月 6日

1) メイン関数の変更

 作成したサブプロジェクトと同じ名前のcppファイルがSource filesツリーの下に表示されていますので,ダブル・クリックしてソース・ファイルを開きます.

 

 
int _tmain(int argc, TCHAR *argv[], TCHAR *envp[])
{
              _tprintf(_T("Hello World!\n"));
              Return 0;
}


 リスト内にある_tmain関数がアプリケーション起動時に最初に呼ばれる関数です.

 CEのアプリケーションを作成する際ですが,文字コードは通常UNICODEが使用されるので,注意が必要です.文字を格納する変数には,char型ではなくTCHAR型やWCHAR型が使用されますが,この型はunsigned shortで定義されているため,2バイトです.

 ここでは,_tprintfの行を削除し,ITRONシステムのメイン関数での処理を移植していきます.

 なお,_tprintfという関数はprintf関数のUNICODE版です.

2) ITRONシステム・コール差異吸収処理の実装

 本題材では,以下のITRONシステム・コールを使用しています.Win32API関数を使用して,それぞれのシステム・コールと同じ動作をする処理を作成します.

  • acre_tsk(タスク自動生成)
  • sta_tsk(タスクの起動)
  • dly_tsk(タスクの休止)
  • acre_cyc(周期ハンドラの生成)
  • sta_cyc(周期ハンドラの起動)
  • acre_flg(イベントフラグの生成)
  • set_flg(イベントの発行)
  • wai_flg(イベント発行待ち処理)
  • clr_flg(イベントのクリア)

3) タスク処理の移植

 周期ハンドラ及びシリアル通信アプリケーション・タスクを移植します.本題材では,ソース・コードをそのまま流用します.そのため,システム・コールだけでなく,ITRONで定義されている変数の型や列挙型(enum)なども移植します.

 ただし,ITRON準拠OSの実装は各OSベンダに依存します.稀に変数の型などが,本来のITRONの仕様から変更されていることがありますので,注意します(例えば,システムの制約上,2バイト変数の型が1バイトで定義されている等).

 タスク処理の移植が完了したら、[ビルド]メニューからソリューションのビルドを選択し,OSイメージを作成します.以上で移行作業は完了です.

 

*                 *                  *

 

 次回は,ターゲット上で動作させたOSイメージの検証を行います.


なかた・よしたか
安川情報システム(株) ソリューション技術本部 組込ソリューション事業部 新規推進部
http://www.ysknet.co.jp/

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日