連 載
C 言語/OS/ICE を使って最先端の開発にチャレンジ

新世紀 マイコン教室〈第 2 回〉シミュレータで体験する
マルチタスク北野 優

Masaru Kitano

前回（第 1 回）は，本連載の趣旨と概要について説明しました．今回（第 2 回）と次回（第 3 回）は，本誌 2004

カーネル起動実験

年 6 月号の付録 CD − ROM に収録した Smalight OS（体験版）と E7 エミュレータなど，今後使用するツールの感触を確かめます．

■ 実験準備（インストール）

連載第 4 回からは実際の装置を設計，製作して，電子機器の開発過程を皆さんとともに体験して行きます．

2004 年 6 月号の付録 CD − ROM に収録されている
Smalight OS（体験版）を起動してみましょう．

実際の装置として，簡単な構成でありながらいろいろな要素技術があり，かつ，ある程度は役に立つものと今回は，HEW3 試用期間限定版に入っている，パソコン上で動く H8 マイコンのシミュレータを使って，して，サーミスタで温度を計測してファンの回転数をSmalight OS（体験版）を動かしてみます．

コントロールするファン・コントローラを製作する予定です．

この方法ならば，ハードウェアのセットアップや不具合などを考えずに，純粋にソフトウェアの動作を確

本連載はマイコンを主体にしているのでどうしてもソフトウェア偏重になりますが，その中でもドキュメかめることができます．

ント整備やプロジェクト管理，モデリング技術などの● Smalight OS（体験版）とは概念の一端や，C コンパイラの性能などについても解説する予定です．

Smalight OS（体験版）は，6 月号の付録 CD − ROM（図 2 − 1）の説明にあるとおり，㈱ルネサス北日本セミコンダクタから本誌読者の皆さんに向けて特別に提供していただいたものです．
製品版との違いは，6 月号の本連載のコラムに記されているとおり，若干の性能と機能に制限があるだけで組み込み OS の入門には何ら不都合のないものです．
● OS の信頼性と性能
OS といえども人間が作ったソフトウェアなので，皆さんお使いのパソコン OS に限らずバグが存在する可能性は否定できません．特定の業界には，RTOS のバグのため○○地獄（○○には RTOS の名前が入る）という言葉すらあります．
Smalight OS は，経験豊富なメーカーが限定した機能に絞り込みコンパクトに構築した OS です．したがって，連載で使用する H8/Tiny の少ない RAM でも実装でき，かつ十分信頼できる OS です．
体験版は，拡張性とスピードに若干の制限はありますが，スピードに関してはもともとが極めて高速であるため，本連載で製作する機器ではあまり問題にはな

図 2 − 1 2004 年 6 月号の付録 CD − ROM のトップ画面246らないでしょう．

2004 年 7 月号

● Smalight OS（体験版）のインストール
インストールは 6 月号の付録 CD − ROM の表紙であ（体験版）」のタイトルをる図 2 − 1 から「Smalight OS
クリックして現れる同意書に同意できる方だけがインストールできます．
インストールすると，図 2 − 2 のような三つのフォルダが現れます．これらのフォルダにはそれぞれルネ
サス テクノロジのマイコンである H8 用，M16C 用，R8C 用の Smalight OS（体験版）が収録されています．
今回は 2004 年 4 月号付録の H8/Tiny を使用するので H8 用の 300Htr_v103 をクリックして setup.EXEを起動します．あとはインストーラの指示に従ってインストールしてください．
● HEW3 のインストール
ルネサス テクノロジのマイコン開発統合環境のHEW3 試用期間限定版が 2004 年 6 月号の付録 CD −ROM に収録されています．試用期限は 2004 年 10 月 4
日 午前 9 時までです．
今回はシミュレータ・デバッガも使用するので，HEW3 のインストール時にいっしょにインストールしてください．

図 2 − 2 Smalight OS 体験版格納フォルダ

リスト 2 − 1 user.c の内容/*********************************************** User Task Sample** Copyright (c) Renesas Northern Japan
Semiconductor,Inc. 2003,2004* Licensed Material of Renesas Northern Japan
Semiconductor,Inc.
*********************************************** File:user.c* Description: user sample* Created:
Apr 5, 2004
V1.03(trial)ES***********************************************/#include "slos.h"#include "reg.h"/***********************************//*** reset process***//***********************************/
void uinit(void)
起動時にOSから呼ばれる{
イニシャライズ・ルーチン．
/* initailize */初期化の必要なI/Oなどの}処理をここに記述する．
/***********************************//*** sample tasks***//***********************************/
void tsk01(void)
タスク1，2のサンプル．
{
イニシャライズ後OSが起
while(1) {動すると，OSから実行権
slp_tsk();を渡される．
sus_tsk(2);
各タスク関数がOSなしプ
rot_rdq();
ログラムのmainに相当す
rsm_tsk(2);る．
rot_rdq();
sus_tsk(2);slp_tsk();}}void tsk02(void){
while(1) {rot_rdq();
wup_tsk(1);rot_rdq();
rot_rdq();}}/***********************************//*** sample interrupt proc***//***********************************//*
割り込み処理のサン* normalプル．
*/#pragma noregsave(intProc1) 今回は使わないので放置．
void intProc1(B *sp)
次回で使用．
{/* interrupt process */}/** return to dispatch*/#pragma noregsave(intProc2)
void intProc2(B *sp){if(cTCB != 0)
TCBsp[cTCB-1].sp = sp;/* interrupt process */disp();}

図 2 − 3 サンプル・プロジェクトを開いたようす2004 年 7 月号

247