2022年12月30日金曜日

TOPPERS/ASP - AVR32版 その2

前回からの続きです。


開発環境の構築(Microchip Studio編)

早速、開発環境を構築していきます。

まずは、Microchip社の純正の統合開発環境(IDE)である「Microchip Studio」のインストールからです。

詳しい手順については、同じMicrochip社のAVRを使用した「TOPPERS/ASP Arduino Mega2560版」の時に書いた記事が参考になります。

このページ(TOPPERS/ASP - Arduino Mega2560版 その2)をそのまま参考にして作業して下さい。

ただし、インストーラーで開発ターゲットのアーキテクチャを選択する部分には要注意!

以下のような画面が表示されたら、必ず「UC3」のチェックを忘れずに!

開発ターゲットのアーキテクチャの選択


今回の「TOPPERS/ASP AVR32版」においても、「Microchip Studio」と「Eclipse」の二つのIDEを使用する方針です。


開発環境の構築(Eclipse編)

さて、デバッガを使うための「Microchip Studio」のインストールに続き、コーディングとビルドを行うための「Eclipse」をインストールします。

まずは、今回使う「AVR32」用のツールチェーンの環境変数の設定を行います。

ツールチェーンは、「Microchip Studio」のインストールにより既に以下のディレクトリにセットアップされているはずです。


C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr32\avr32-gnu-toolchain\bin


普通にGCCを含むGNUツールチェーンですね。

GNUツールチェーンのディレクトリ


環境変数の設定方法は、このページ(TOPPERS/ASPのビルドからデバッグまで~GNUツールチェーンの導入)の「環境変数の設定」の項目を御覧ください。

ただし、パスは…


C:\Program Files (x86)\GNU Tools ARM Embedded\7 2017-q4-major\bin


…となっているところを…


C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr32\avr32-gnu-toolchain\bin


に置き換えてください。

こんな感じ…。

「環境変数名の編集」ダイアログ

また、このページの「パスの確認」の項目で打ち込むコマンドも、以下のように変わります。


> avr-gcc --version

コマンドプロンプト


続きまして「Cygwin」のインストールを行います。

このページ(TOPPERS/ASPのビルドからデバッグまで~Cygwinの導入)を参考にしてください。


次に、ソースコードをゲットしちゃいましょう。

ソースコードのダウンロードはこちらからどうぞ。

TOPPERS/ASP AVR32版」というのを選んでください。

また、「Github」を使いたい方は以下のコマンドでソースコードのクローンを行います。


$ git clone https://github.com/RyutaroMorita/asp_avr32_gcc.git

Cygwinターミナル


ダウンロードとGithub、いずれの場合も「asp_avr32_gcc」というディレクトリの名前を「asp_1.9.2」などと改名すると、上記のページと同じ状況になります。


さて、コンパイラーをインストールして、ソースコードもダウンロードしました。

早速ビルドを~!って思う気持ちはわかりますが、やめておきましょう。

どうせ、必ずビルドは失敗します。

なぜならば、ソースコードに色々加えなければならないからです。

その手順も追って説明いたしますので、ここはグッと我慢。


それよりも先に「Eclipse」のインストールを行います。

例のごとく、このページ(TOPPERS/ASPのビルドからデバッグまで~Eclipseの導入)を参考にしてください。


さて、以上で開発環境のセットアップは終了です。

これで「Microchip Studio」と「Eclipse」の2つのIDEを使用する準備が整いました。

次回は、現状のソースコードに足らないものを色々コピーしたり、修正したりする作業を行っていきます。

これが結構、面倒なのですよ~。

でも、手順通りにやっていただければ大丈夫です!


<続く>

2022年12月25日日曜日

TOPPERS/ASP - RL78版 その6

前回からの続きです。

このテーマを最初からご覧になる場合はこちらからどうぞ。


サンプルプロジェクトの説明

このページ(TOPPERS/ASPのビルドからデバッグまで~サンプルプロジェクトで遊ぼう)を参照してください。

RL78


RL78版カーネルについて

以下、このカーネルにおける備考です。


●割り込み優先度

このカーネルでは、-1(優先度最低)から-3(優先度最高)の3段階の優先度設定が可能です。

RL78の仕様としては、本当はレベル0~3の4段階の割り込み優先度設定が許可されているのですが、一番優先度の高いレベル0が少々クセモノです。

このレベル0は、マスクできない割り込みなのです。

割り込みのマスクは「プログラム・ステータス・ワード(PSW)」というレジスタで行います。

このうち「ISP1」と「ISP0」というビットに注目してください。

これらのビットの操作による効果は、以下のようになります。

PSWレジスタ


ご覧のように最高優先度のレベル0をマスクする手段がありません。

いや、マスクしようと思えばできないこともないのです。

それは「IE」というビットですべての割り込みを無効にしてしまえば良いのです。

しかしながら、これをOSに実装するにはかなりアクロバティックな記述が必要となります。

今回はGCCコンパイラを使いましたが、純正のコンパイラではレベル0用に使用させるレジスタのバンクが存在しないことから多重割り込みにも対応できず、レベル0の割り込みを使用することは半ば禁忌となっています。

このあたりの事情は、「RL78 割り込み レベル0」でググると詳しい方の解説が見つかります。

GCCコンパイラでは、これらの問題は回避できるので、この慣例に従う必要もないのですが、前述の通りアクロバティックな実装が必要なことに加え、そもそも3段階の優先度でも殆どの場合は問題になりませんので、リスクを避け、-1(レベル3)から-3(レベル1)をOS管轄の割り込みとして実装しました。

-4(レベル0)は設定できません。

面倒くさいから!とかではないです…いや、ちょっとそうかも…。


●例外ハンドラ

例外ハンドラとしては一つだけ、BRK例外「BRK命令の実行」のみに対応しています。

この動作は、サンプルプログラムで確認できます。

サンプルプログラム実行中に「z」か「Z」をターミナルで入力すると、以下の命令が実行される仕掛けになっています。

  • asm("brk")


これによりBRK例外が発生し、その様子がターミナルに表示されます。

小文字の「z」と大文字の「Z」の違いは、BRK例外が小文字の場合はカーネル管轄内で、大文字の場合はカーネル管轄外でそれぞれ実行されるということだけです。

デバッグでの用途以外、あまり使い道はないでしょう。


●一部サービスコールは未対応

性能評価用システム時刻取得のための「get_utm()」サービスコールは未実装です。


「RL78」は「H8」より優れているのか?

同じルネサスエレクトロニクスの16bitマイコンである両者。

H8の方は淘汰されてしまった一方、RL78は今も生き延びています。

実際、RTOSを移植してみて分かったことは…。


H8の方が全然使いやすいじゃん!


あくまで個人的な好みですよ?

RL78は、ニーモニックも往年の名CPU「Z80」の亜種といった感じで古臭いし、元々8bitから進化した「78K0R」の後継だけあって、16bitへの拡張がムリクリといった感じでスマートではありません。

CPUの世界においては、優れたアーキテクチャが必ずしも市場において勝利するとは限らないことは歴史が示している(「8086 vs 68000」など。インテル好きな方はごめんなさい…。)ところなのですが、それは違うメーカーの製品同士の話。

同じメーカーで、なぜRL78が勝ち残ったのかは謎ですね~。

(ルネサスエレクトロニクス社内で、旧日立と旧NECの血みどろの派閥抗争の結果?などと邪推してみる…。)

とはいえ、このRL78、Z80を使い慣れているプログラマーにとっては使い勝手は非常に良いです。

低消費電力の点でも大変優れています。

そういった特徴から、既に前身の78K0Rの時代から、H8よりも多くの固定客が付いていたということなのでしょう。

多分、大量に買ってくれる「車載」とかの分野でね…。


ライセンスについて

このカーネルは「TOPPERSライセンス」で配布しております。

無償ですが、使用に関しては自己責任です。

このカーネルを商用利用するチャレンジャーな方場合は、このリンク先の条項に従ってください。

ちなみに、商用利用ならば商用の製品をオススメしたいところなんですが…。

有名どころでは、株式会社ユビキタスAI様の「TOPPERS-Pro/ASP」という商用の実装がありました。

私は使う機会がなかった(会社はソフトウェア、特にミドルウェアやOSは絶対買ってくれない…)のですが、こちらはRL78を含む多くのアーキテクチャに対応していて、すごく良さそうだったんです。

しかし、久し振りにWebページを見てみるとこの「TOPPERS-Pro/ASP」、「当製品は、新規販売を終了しております。」って書いてありますね~。

後継の「TOPPERS-Pro/ASP3」は今でも売ってますが、こちらだとRL78版が無いんですよね。

まあ、こういうRTOSは製品サポートのためのリソースを相当に食いますから、少しでも需要が下がれば販売打ち切っちゃうのは仕方がないですね。

とはいえ、まだまだ使われているCPUなのだから、需要が全く無いはずもなく、RTOS無いと不便な思いをする人もいるかもだし…。

そういう意味では、今回のRL78版の記事にも少しは意義があるのかなと。

今後も頑張ってメンテナンスしていきます。


<終わり>

2022年12月22日木曜日

TOPPERS/ASP - AVR32版 その1

TOPPERS/ASP - AVR32版 概要

ちょっとしたデバイス作成に、業務に趣味にと大人気のMicrochip社の8bitマイコン「AVR」。

そのAVRマイコンに32bit版があったなんてご存知でしたか?

今回取り上げるのは、その「AVR32」です。

AVR32UC3A3


詳細は英語にはなりますが、このページを御覧ください。

かつては「AP7」と「UC3」の二種類のコアを販売していました。

「AP7」は、いわゆるアプリケーション・プロセッサーというべきもので、Linuxも動作するほどの高い性能を持っていました。

一方の「UC3」は、マイクロプロセッサー、いわゆるマイコンと呼ばれるカテゴリーに属します。

今回取り上げるのもこの「UC3」の方です。

ARMでいうところの「Cortex-A」コアが「AP7」に、「Cortex-M」コアが「UC3」に相当すると思えばイメージし易いですかね?

共にAtmel社の独自設計、8bitのAVRとは全く異なる設計思想の32bitRISCコアとなります。

このAtmel社が辿った運命、この記事でも触れましたが、PICマイコン擁するライバルのMicrochip社に買収されてしまいます。

Microchip社もPIC32(このカーネルもそのうち公開予定)などの32bitマイコンを販売しており、この統合によってこのAVR32は淘汰されてしまいました。

現在Microchip社では、新規設計非推奨の扱いとなっています。

どっかで似たような話を最近書いたような…?

結局、Microchip社のPIC32も思うように販売が伸ばせず、ARMコアの製品ラインを展開することとなります。

歴史の闇に沈んでいったAVR32。

あまり市場に受け入れられなかったのは事実ですが、実際に扱ってみると相当に優れた設計であることが分かりました。

このまま埋もれさせるのは惜しい…。

そこで、この不幸なAVR32に「μITRON4.0」準拠のRTOS(リアルタイムOS)であるTOPPERS/ASPを移植してみました。

せめてもの供養…。

もしかしたら、RTOSがあれば使ってくれる人もいるかもしれない!…そんな思いです。

新規設計非推奨の扱いではありますが、それは仕事で使う上での問題。

市場在庫分を購入して、趣味で使う分には、まだまだ有力なマイコンであると言えます。

その証拠に、秋月電子通商さんでは、AVR32は3種類も!在庫が豊富な状態で販売されています。


●AVRマイコン AT32UC3B0512

●AVRマイコン AT32UC3B064

●AVRマイコン AT32UC3L064


値段を見ていただければ分かると思いますが、高い性能に見合わずとても安いです。

もはや投げ売りです!

特に「AT32UC3B0512」の場合は、同じような性能のSTM32だったら多分1,000円くらいしちゃうと思います。

…まあ、パッケージがQFPなのでハンダ付けは難しいですが。

昨今の半導体不足で入手困難なARM系マイコンの代打として、悲劇のマイコンAVR32の無念を晴らすため(そして僕らの強い味方、秋月電子通商さんの不良在庫処分のため!)、このマイコンで電子工作はいかがですか?


必要なもの

まずは、今回のターゲットとなる「AT32UC3A3-XPLD」です。

こちらでは、まだまだ入手可能です!

6,000円くらいです。

AT32UC3A3-XPLD


次に、デバッガです。

Atmel-ICE」っていいます。

秋月電子さんで16,800円ですね。

高い!…と思われるかもしれませんが、これ一台あるとAtmel系は今回のAVR32やAVRの8bitのシリーズ、SAM(ARM)シリーズのデバッグも出来ちゃいます。

Microchip社のマイコンの中でもAtmel系のシリーズを普段お使いの方は買っておいて損はないですよ。

とはいえ、躊躇する値段ですよね…。

Atmel-ICE


ダウンロード/GitHub

ソースコードの入手は、こちらからどうぞ。

とは言っても、このソースコードをダウンロード、もしくは「git clone」しても、絶対にビルドが通りません。

このソースコードは未完成です。

なぜなら、Microchip社のドライバを後から付け加える必要があるんです。

そのMicrochip社のドライバのライセンスの条項が理解に難しく、公開、および再配布しない方が無難と判断したためです。

ですので、今後この記事では、それらのソースコードの入手方法やコピーする場所などを事細かに書いていくつもりです。

すご~く面倒ですが、お付き合いしていただけると嬉しいです。

ビルドは、まだやっちゃダメですよ~。


このカーネルも実装からかなり時間が経っているので色々忘れてます。

思い出しながら、不足しているソースコードのコピー、開発環境の構築やビルド方法を書いていきたいと思います!


<続く>

2022年12月17日土曜日

TOPPERS/ASP - RL78版 その5

前回からの続きです。

このテーマを最初からご覧になる場合はこちらからどうぞ。


プログラムの転送とデバッグ

早速、評価ボード「RL78/G14 Fast Prototyping Board」とパソコンを繋げたいと思うのですが、一つ問題が!

こういう評価ボードの場合、USBのコネクタが付いていて、これでパソコンと繋げると給電と同時にデバッガーのファンクション、加えて仮想シリアルポートとしても認識されて、シリアル通信によるデバッグ出力がすぐに使える~って思うでしょ?

ところが、この「RL78/G14 Fast Prototyping Board」はそうなっていないんです。

この評価ボードに付いているUSBのコネクタは給電とデバッガーのファンクションだけで、パソコンと接続しても仮想シリアルポートとしては認識されません。

評価ボードのUSBコネクタ


これからTOPPERS/ASPのサンプルプログラムを動かす際には、動作確認のためにどうしてもシリアルポートが必要です。

そこで、以下のような市販のUSB/シリアル通信変換ケーブルを用意します。

市販のUSB/シリアル通信変換ケーブル


シリアル通信をするために必要なポートは、RXDとTXDとGNDの三本ですね。

以下の赤い四角で囲った端子を使いましょう。

コネクタピン配置


評価ボードからこうやってGNDRXDTXDと、それぞれの線を出してやって…

評価ボード側の配線


USB/シリアル通信変換ケーブル側の配線は、上からTXD、RXD、GND順番でこんな感じ。

これでシリアルポートの問題は解決っと。

USB/シリアル通信変換ケーブル側の配線


続いて、このUSB/シリアル通信変換ケーブルをパソコンに繋いでみましょう。

パソコン上でデバイスマネージャーを開きます。

ポート(COMとLPT)のサブカテゴリーとして「USB Serial Port」というポートが追加されているはずです。

(私のパソコンでは、「COM15」として認識されていますね。)

このポート番号、覚えておいて下さい。

デバイスマネージャー


ここで、評価ボードとパソコンもUSBケーブルで繋げちゃいましょ。

ご覧の通り、通電します。

評価ボードとパソコンの接続


次に「TeraTerm」をご用意ください。

インストールしていない方は、このページ(TOPPERS/ASPのビルドからデバッグまで~サンプルプロジェクトのデバッグ)の「TeraTermの導入」の項目を参考にしてください。

もちろん、シリアル通信のターミナルであれば、他のものもお使いいただけます。

今回のTOPPERS/ASPのサンプルプログラムは、シリアル通信のメッセージを出力しますので、先程「USB Serial Port」として認識されたシリアルポート番号でターミナルを立ち上げておきましょう。

設定は、こんな感じです。

ボーレートは「9600」です。

(私のパソコンは、USB/シリアル通信変換ケーブルをCOM15として認識していました。)

TeraTerm - シリアルポートの設定


さて、「e2 Studio」に戻りましょう。

まだサンプルプログラムをビルドしていない場合は、画面右側の「ビルド・ターゲット」タブの中、「OBJ」ディレクトリ直下の「all」をダブルクリックして、ビルドを完了させましょう。

「e2 Studio」 - 1


次にデバッガの設定を行います。

画面上部にある緑色の「虫マーク」。

その脇に「▼」ボタンがありますので、それをクリック。

そこで現れた「デバッグの構成」という項目をクリックしましょう。

「e2 Studio」 - 2


すると以下のようなダイアログが現れます。

左側のリストから「Renesas GDB Hardware Debugging」という項目をダブルクリックしてください。

「デバッグ構成」ダイアログ - 1


ダイアログ右側がガラリと変わりましたね?

「デバッグ構成」ダイアログ - 2


この「デバッグ構成」ダイアログの各項目に対し、以下の設定を入力します。


名前:<任意の構成名(ここでは「OBJ」)>

プロジェクト:<プロジェクト名(ここでは「asp_1.9.2」)>

C/C++アプリケーション:C:\cygwin64\home\<ユーザ名>\asp_1.9.2\OBJ\asp.exe

Build Configuration:Use Active

「自動ビルドを無効にする」を選択

「デバッグ構成」ダイアログ - 3


お次は現在の「メイン」タブから「Debugger」タブへクリックして切り替えます。

「デバッグ構成」ダイアログ - 4


新しく現れた各項目に対し、以下の設定を入力します。


Debug hardware:E2 Lite (RL78)

Target Device:R5F104ML

「デバッグ構成」ダイアログ - 5


さて、お次は現在の「GDB  Settings」タブから「Connection Settings」タブへクリックして切り替えます。

「デバッグ構成」ダイアログ - 6


たくさん設定項目があるんですが、ここでは「エミュレーターから電源供給」の項目だけは忘れずに「いいえ」にしておいて下さい。

「デバッグ構成」ダイアログ - 7


最後にもう一丁!

現在の「Debugger」タブから「共通」タブへクリックして切り替えます。

「デバッグ構成」ダイアログ - 8


エンコードの設定で「その他」に選択し、文字コードを「UTF-8」に設定してあげて下さい。

これをしないと、デバッガーからの日本語メッセージが文字化けしてしまいます。

これでよ~やく、ダイアログ下部の「適用」ボタンと「デバッグ」ボタンを順にクリックすることで、デバッガーが起動しプログラムの転送が開始されます。

「デバッグ構成」ダイアログ - 9


プログラムの転送が終わると、以下のようにスタートアップ・アドレスでプログラムが止まった状態になります。

「e2 Studio」 - 3


ここからプログラムを続行してみましょう。

画面上部の「」ボタンをクリックすると、プログラムが続行されます。

「e2 Studio」 - 4


はい、ここで長らく放置していた「TeraTerm」を見てみましょう。

以下のように、サンプルプログラムが動作していることが確認できます。

TeraTermの表示


プログラムを停止する場合は、画面上部の「」ボタンをクリックします。

停止させてみましょう。

「e2 Studio」 - 5


ついでに「e2 studio」の表示を「デバッグモード」から「C/C++モード」に変更します。

「e2 studio」の画面右上のボタンで切り替えができます。「C/C++」ボタンをクリックします。

「e2 Studio」 - 6


ブレークポイントを仕掛けましょう。

画面右の「プロジェクト・エクスプローラー」のソースコードリストの中から「sample1.c」をダブルクリックし、ソースコードを表示します。

このソースコードの丁度中盤くらい、メインタスクの始めに仕掛けましょうか。

ブレークポイントは、ソースコードビューの左端をダブルクリックすることにより丸が表示され、セットすることができます。

(解除したい場合もダブルクリックします。丸が消えます。)

「e2 Studio」 - 7


これで本当にブレークポイントがかかるのか、試してみましょう。

画面上部にある緑色の「虫マーク」。

その脇に「▼」ボタンがありますので、それをクリック。

すると今後は、さっき色々と入力した「OBJ」のデバッグ設定が登録されていますので、これをクリックすると、デバッガが起動します。

「e2 Studio」 - 8


しばらくして、プログラムの転送と書き込みが完了すると、前と同じようにスタートアップ・アドレスでプログラムが停止しますので、画面上部の「」ボタンをクリックして、プログラムを続行させます。

「e2 Studio」 - 9


程なくして、以下のように正しくブレークポイントを仕掛けた位置でプログラムが停止するはずです。

ここからは、「F6」キーでステップオーバー、「F5」キーでステップインなど、おなじみの操作が使用できます。

因みに、ステップオーバーやステップインなどを行っている時に命令が飛んでしまったり前後したりする場合は、最適化のせいです。

デバッグ時は、このページ(TOPPERS/ASPのビルドからデバッグまで~サンプルプロジェクトのデバッグ)の「サンプルプログラムのデバッグ」の項目を参考に最適化を解除しましょう。

「e2 Studio」 - 10


さて、RL78版は次回で最終回。

色々な仕様(使用)上の注意事項を書いていきたいと思います。

キリ良く年内…。


<続く>

2022年12月11日日曜日

TOPPERS/ASP - RL78版 その4

前回からの続きです。

このテーマを最初からご覧になる場合はこちらからどうぞ。


プロジェクトの作成

前々回までの作業で、開発環境をインストールし、RL78版TOPPERS/ASPのソースコードをダウンロードし、それをコマンドラインでビルドするまでを行いました。

そして、前回ではルネサスエレクトロニクスのIDEである「e2 studio」のインストールを行いました。

そこで、今回はこのIDE上でビルドが行えるようにプロジェクトを作成しましょう。

前回閉じてしまった「e2 studio」を立ち上げて下さい。

そして、画面左上のメニューから「File」→「新規」→「Makefile Project with Existing Code」の順にクリックしていきましょう。

「e2 studio」 - 1


以下のダイアログが表示されたら必要事項を入力します。

ここでは、以下の通り。


プロジェクト名:<任意のプロジェクト名(ここでは「asp_1.9.2」)>

既存のコードの場所:C:\cygwin64\home\<ユーザ名>\asp_1.9.2

インデクサー設定に対するtoolchain:<なし>


入力が終わったら「終了」ボタンをクリックします。

「新規プロジェクト」ダイアログ

その後は元の画面に戻ります。

何の変化もないようですが、画面右上の「-」マーク(マウスのカーソルを置くと「最小化」と表示されます)をクリックしてみてください。

「e2 studio」 - 2

以下のように表示が変化し、そのうち左側の「プロジェクト・エクスプローラー」というタブの中には先程入力したプロジェクト名のディレクトリが表示されているはずです。

「e2 studio」 - 3


次に、画面上部のメニューから「ウィンドウ」→「ビューの表示」→「ビルドターゲット」の順にクリックしていきましょう。

「e2 studio」 - 4


これにより、画面下右側のウィンドウに「ビルドターゲット」タブが追加されたはずです。

「e2 studio」 - 5


以降の作業は、このページ(TOPPERS/ASPのビルドからデバッグまで~サンプルプロジェクトのデバッグ)の「プロジェクトのクリーンとビルド」の項目を参考に続行してください。

この「e2 studio」は、Eclipseベースなので、上記のページと同じ方法で作業を続行できます、

但し、文中の「Makeターゲット」タブは、先程表示させた「ビルドターゲット」タブに置き換えてお読みください。

名称は違いますが、これらのタブは同じ働きをするものです。

「e2 studio」の画面右側に以下のようなアイコンが表示されて、これらをダブルクリックすることによりビルドができるまでを確認してください。

「e2 studio」 - 6

「realclean」や「all」など、アイコンをダブルクリックすることにより、その操作に応じたメッセージが画面下部の「コンソール」タブ内に表示されるはずです。

「e2 studio」 - 7


次回はいよいよ実機「RL78/G14 Fast Prototyping Board」評価ボードへプログラムを転送して、実行/デバッグを行っていきますね~。


<続く>

2022年12月8日木曜日

伝説の名機!モバイルギアII(MC/R330)

今までの人生で、様々なモバイル機器を使い倒してきました。

その中で、最も使用頻度が高く長い期間愛用した製品は何か?

おそらく、それはこのNEC製の「モバイルギアII(MC/R330)」でしょう。

モバイルギアII(MC/R330) - 1


発売は1999年終わり頃。

パソコンは、Windows 98が爆発的な普及を見せていた時代です。

このモバイルギアに搭載されているOSは「Windows CE」という組み込み機器向けのWindowsです。

Windowsを名乗ってはいますが、この「Windows CE」上ではWindows 98のアプリケーションがそのまま動くわけではありませんでした。

パソコンが搭載しているIntel x86系統のCPUが搭載されているわけでもなく、モバイルギアには、MIPS系のCPUが搭載されているので、そもそもバイナリレベルで互換性はありません。

しかしながら、パソコンで専用のVisual C++やVisual Basicで作ったアプリケーションをモバイルギアIIに転送し、実行することは可能でした。

APIも本家Windowsのサブセットが実装されており、必要最低限のものは同じ使い勝手で使用できました。

この時代、この「Windows CE」を搭載した機器には2つの流れがありました。

いわゆる「PDA」と呼ばれる、今のスマートフォンのご先祖さまのような電子手帳。

そして「ハンドヘルドPC」と呼ばれる、ノートPCよりも更に小型のモバイル端末。

モバイルギアは、後者のカテゴリーに属します。

各社挙って「Windows CE」を搭載した「ハンドヘルドPC」を発売していたわけですが、とりわけNECのモバイルギアが優れていたのは、キーボードの質感の良さにあったと思います。

モバイル端末だからキーは小さいですが、さりとて実用に耐えられないほどは小さ過ぎず、メンブレンではなくパンタグラフ式を採用したことにより、適度なストロークの深さもあります。

何より、キーをストロークする度にパチパチと電子音が鳴るという小技付き。

これが小気味良く、使う者の心理に地味な高揚感を与えてくれます。

(音を鳴らすだけバッテリーの無駄じゃん!…と思って無音設定にすると、途端に得も言われぬ寂しさに襲われる。)

モバイルギアIIのキーボード


NECのモバイルギア・シリーズには多くの機種がラインナップされていました。

最初期には、そもそも「Windows CE」ではなく、MS-DOSのようなOSを搭載した機種。

フルカラーTFT液晶とバックライトを搭載した高級機種などなど…。

今回ご紹介する「モバイルギアII(MC/R330)」という機種は、その中でもエントリーモデルであり、モノクロ4階調STN液晶で単3乾電池で動作するモデルです。

このMC/R330こそ、エントリーモデルとはいえ、おそらく最も評価の高いモデルであったと思います。

その最たる要因は、電源が充電式の内蔵バッテリーではなく単3乾電池二本であり、それでいて25時間という連続駆動時間を実現していたことでしょう。

今の日本、単3乾電池は何処でも買えますよね。

また、充電式の内蔵バッテリーは部品点数が多くなり、バッテリーそのものを含めて経年劣化による不具合が発生しやすい部分ですが、乾電池駆動であれば電源回路がシンプルなので、こうして何年経とうが元気に動いてくれます。

単3乾電池二本とバックアップ用のボタン電池


組み込みOSである「Windows CE」の起動は1秒も掛かりません。

思い立ったら、蓋を開いてすぐに文書入力!

それに加え、キーボードの質の高さと、電源の取り回しの良さ、そしてハードウェアの屈強さから、特にライターさん、物書きの方に愛用者が非常に多く、私の他に今でも現役で使用している方も沢山いるほどです。

オークションサイトなどで、他の高級機種よりもエントリーモデルのはずのMC/R330に高値が付いているのは、このような理由からだと思います。

モバイルギアII(MC/R330) - 2


搭載されているアプリケーションは、当時のパソコン用のOfficeのサブセットや、NECオリジナルのエディッターなどの出来の良いソフトウェアがインストールされています。

インストールされているアプリケーション


LANは、有線/無線問わずインターフェースは内蔵していません。

その代わりモデムは内蔵していますので「Internet Explorer」といったブラウザや、メーラーは用意されています。

更に、今では全く見かけなくなったPCカードスロットを搭載していますので、イザとなれば有線LANカードや、WiFiカードを挿入して使用することができます。

(WiFiカードを使うと電池の消耗が激しいので、あまり使いません。)

PCカードスロット


さて、このモバイルギアII、近年では流石に出番は減っていました。

元々私の場合、プログラマーのクセに文書を書く時は紙と鉛筆派です。

プログラマーであるが故に、電子データの危うさを知っているからですかね?

なので、出先で報告書などの、どうせ後で電子文書にしなければならない要件を認(したた)める際には大いに活躍をしてくれましたが、それもいつしか報告書を書く立場から、それを承認する立場になってしまいました。

ところが、このブログを始めてからというもの、電子文章を書く機会が大幅に増えました。

そのために、数年ぶりにこの愛機の復活と相成りました。

この記事のテキストもモバイルギアIIで書いています。

とはいえ、かなりのロートル機。

そろそろ後継機が欲しいところですが、もはや新品で手に入るはずもなく…。

キングジムさんの「ポメラ DM250」なんて良さそうですね。

ポメラ DM250


でもこれ、乾電池じゃないんだ…。

そこが重要なのに。


部品取り用にオークションサイトなどで何台か購入しておきましょうかね。

とにかく今ある一台を大切に使いたいと思います。

TOPPERS/ASP - Arduino UNO R4版 その7

前回からの続き です。 このテーマを最初からご覧になる場合は こちら からどうぞ。 プログラムの転送とデバッグ ターゲットの「Arduino UNO R4」とデバッガの「E2 emulator Lite」を 前々回 作成したケーブルで接続します。 こんな感じ。 これからTOPPE...