第6 章
組み込み OS を使って高度な制御をお手軽に実現しよう

TOPPERS OS の移植とライン・トレース・カーの製作事例
ここではフリーのリアルタイム OS である「TOPPERS/JSP」を利用したライン・トレース・カーの製作事例を紹介する．プログラム開発には GCC や Binutils を使用した．スター
トアップ・ルーチンの作成や OS の移植，ハードウェア（拡張基板，センサ回路，モータ制御回路，電源回路など）の作成，アプリケーション・ソフトウェア作成について，順を追って解説する．
（編集部）

中野 俊和
赤星 博輝

本稿では，本誌 2007 年 5 月号に付属する V850 マイコン

一方，組み込みシステムとは対照的に，製品出荷段階で基板を使ったライン・トレース・カー（写真 1）の製作事例は何をするか定かではないコンピュータ・システムがありを紹介します．V850 マイコンは組み込み機器向けの CPUます．例えば，パソコンがその代表です．パソコンも CPU（Central Processing Unit）で，自動車や家電製品の制御なを搭載していますが，ワープロや表計算ソフトウェアを使

注1

どに使われています．

近年の家電製品や携帯電話，自動車，工業用ロボットは，いずれも CPU を用いて制御しているという点で共通しています．このような特定の機器に組み込まれるコンうユーザもいれば，計測機器をつないでデータを収集するユーザもいます．
パソコンと今回使用する V850 マイコン基板の違いは，いったい何でしょう？

ピュータ・システムを「組み込みシステム」，そしてその中

表 1 を見ると，CPU のクロック周波数やメモリの搭載で動作するソフトウェアを「組み込みソフトウェア」と呼び量が異なります．これは，組み込み機器では製造コストをます．

抑えるために，必要最小限のハードウェア資源を使用するからです．同じことはパソコンでも行われており，低価格のパソコンには低価格の CPU が使われています．ただしパソコンの場合，Windows XP や Windows Vista の上でワープロや表計算ソフトウェアなどのアプリケーション・ソフトウェアを動かすために，最低でも 1GHz を超える動作周波数の CPU や 512M バイトのメモリ，さらにはネッ

表 1 汎用のパソコンと V850 マイコン基板の違い
汎用のパソコンには最低限必要な性能のハードウェアや周辺装置が存在する．
Windows XP や Windows Vista などの OS が動作し，その上でアプリケーション・ソフトウェアが動作することが前提となっている．これに対して組み込み応用などで使う基板では，必要に応じて使用する周辺機器などを接続する．

最近のパソコン 今回の V850 マイコン基板
Core 2 Duo など V850ES
2400MHz20MHz
CPU の動作周波数（2.4GHz）
1024M バイト
ROM ： 256K バイト
搭載メモリ（1G バイト）RAM ： 24K バイト
ハード・ディスク
120G バイト−1280 ピクセル−
モニタ× 1024 ピクセル
CPU の種類

写真 1 製作したライン・トレース・カーの外観
注 1 ：米国の調査会社（Gartner Dataquest 社）の調べによると，2005 年の 32ビット・マイクロコントローラ世界売上金額シェアで 1 位とのこと．
http://www.necel.com/micro/ja/product/v850core.html
を参照．

132 KEYWORD ――TOPPERS，GCC，Binutils，V850，スタートアップ・ルーチン，センサ，モータ制御，ライン・トレース・カー，TA4805S，TA4803F，2SC1815-Y，TA7291SG，GP2S40J000F，フォトインタラプタ

June 2007

TOPPERS OS の移植とライン・トレース・カーの製作事例

第6章

トワーク・インターフェースや DVD ドライブが必須です．

ラム（スタートアップ・ルーチン）を作成するためにこの作組み込み応用では，これほど高機能なハードウェアが必要業を行います．その後，C 言語でプログラムを作成するたとなる用途はまれです．

めの準備を STEP2 で行います．STEP3 では，リアルタイ

さらに，組み込み制御の分野では，使用する資源（メモリやネットワーク，ハード・ディスク，ディスプレイ，セム OS を動かすために必要なタイマを動作させ，割り込みを発生させます．

ンサ，アクチュエータなど）が製品によってまったく異なる

V850 マイコン基板には LED が付いていますが，LED だという特徴があります．例えばゲーム機の場合，ニンテン

けではデバッグ作業などが行いにくいので，UART

ドー DS は ARM946E-S マイコンを使っています．動作周波（Universal Asynchronous Receiver-transmitter ；非同期シ数は 67MHz で，メモリは 4M バイトです．一方，PLAYリアル通信用送受信回路）を STEP4 で動作させます．こSTATION 3 は Cell Broadband Engine と呼ばれるマルチの UART による通信は，リアルタイム OS の移植に利用しま

コア CPU を使っています．これは 3.2GHz で動作する合計

す．STEP5 でリアルタイム OS の移植を行います．STEP

9 個のプロセッサ・コアを内蔵し，256M バイトのメモリ

6 と STEP7 ではリアルタイム OS を使用してライン・トを持ちます．このように，同じゲーム機であっても，どのレース・カーとその制御プログラムを作成します．

ような商品にするかで大幅に必要な資源が変わります．

● V850 マイコンは 2 オペランド命令が基本

CPU を搭載してソフトウェアで制御するという意味では，パソコンも組み込みシステムも同じです．しかしパソついて，簡単におさらいしておきます．

コンのプログラミングと組み込み機器のプログラミングに

V850 マイコンは，プログラム・カウンタ（PC）と 31 本は異なる点がいくつかあります．今回は，ライン・トレーの汎用レジスタ（r1 〜 r31）を持ち，さらにゼロ・レジスタス・カーを作成しながら，組み込みシステム特有の開発手

r0 とシステム・レジスタを備えています．r0 は，名前の法について理解を深めていただきたいと思います．

とおり常にゼロの値をもつレジスタです．システム・レジ● LED，UART を動作させてから OS を移植

スタとしては，実行状態を示すプログラム・ステータス・

今回の作業手順を図 1 に示します．

ワード PSW，割り込み時に復帰する PC を保存する割り込

STEP1 で LED（発光ダイオード）を点滅させて，V850

み状態退避レジスタ EIPC，割り込み時の CPU の状態を保マイコン基板の動作を確認します．LED の点滅はライン・持する割り込み状態退避レジスタ EIPSW などがあります．

トレース・カーそのものとは関係ないように見えますが，

V850 マイコンの命令セットは二つのデータを使用する

V850 マイコンの起動時に初期化などを行うためのプログ

2 オペランド命令が基本となっています．例えば，加算をr8, r9 となり，実際の動作は，

r9 ＝ r9 ＋ r8 となります．減算を行うときは，r9 ＝ r8 −STEP1. V850マイコン基板の動作確認（アセンブリ言語によるLEDの点滅）

t図1
作業手順

STEP2. C言語によるLEDの点滅

いきなりライン・トレース・カー
を動かし始めてもよいが，動作確認を行いながら少しずつ作業を進めていく方がトラブルが発生した
場合に対処しやすい．

STEP3. タイマ割り込み

命令形式：add reg1, reg2
動作：GR［reg2］← GR［reg2］
命令形式：add (5ビット即値), reg2
動作：GR［reg2］← GR［reg2］+符号拡張（5ビット即値）
命令形式：addi (16ビット即値), reg1, reg2
動作：GR［reg2］← GR［reg1］+符号拡張（16ビット即値）

STEP4. UARTを使った通信（割り込み）（a）加算命令
STEP5. リアルタイムOS(μITRON)の移植

STEP6. ライン・トレース・カーの作成

STEP7. 制御プログラムの作成

June 2007

s図2
算術命令と比較命令
2 オペランド命令が基本なので，レジスタ 1 とレジスタ 2 を演算し，レジスタ 2 に入れるという動作が多い．比較の場合は，PSW 内のフラグに結果がセットされる．

2App3

ここで，V850 マイコンのレジスタ構成と命令セットに行いたい場合は add

1

命令形式：cmp reg1, reg2
動作：PSW ← GR［reg2］-GR［reg1]
命令形式：cmp (5ビット即値), reg2
動作：PSW ← GR［reg2］-符号拡張（5ビット即値）（b）比較命令133

456