2022年12月5日月曜日

TOPPERS/ASP - RL78版 その3

前回からの続きです。

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


開発環境の構築(IDE編)

続きまして、RL78用のIDEのインストールを行います。

IDEは、ルネサスエレクトロニクス社純正の「e2 studio」というものを使用します。

以下のページでダウンロードします。


https://www.renesas.com/jp/ja/software-tool/e-studio

統合開発環境 e2 studio 2022-10 Windows用インストーラ」という項目をクリックすると…

「e2 studio」ダウンロードページ - 1


以下のようなポップアップが表示されます。

ここでは難しく考えずに「Confirm」をクリックします。

「e2 studio」ダウンロードページ - 2


すると以下のページが開きます。

なんと!インストールのためにはユーザー登録が必要!?

マーケティング的には重要なのはわかりますが、個人情報に気を使わなければならない時代、ただ試しにチョットだけ使ってみたい人だっているのだから、もうちょっと寛大でも良いと思うのですが…。

そのスジの方なら「My Renesas」のアカウントを持っている方もいるとは思いますが、そうでない方は「登録」をクリックして、アカウントの作成とログインをお願いします。

(私は、こういう面倒な作業で心が折れるタイプ…。)

「e2 studio」ダウンロードページ - 3


はい、一度ログインしてしまえばダウンロードできます。

トップページに戻って「統合開発環境 e2 studio 2022-10 Windows用インストーラ」という項目をクリックです。

「e2 studio」ダウンロードページ - 4


以下のようなページが表示されますので「同意します」をクリック。

ダウンロードが始まります。

「e2 studio」ダウンロードページ - 5


ダウンロードが完了すると「setup_e2_studio_20xx-xx.zip」というファイルが生成されますので、これを解凍します。

解凍されて生成された「setup_e2_studio_20xx-xx.exe」というファイル、これがインストーラー本体ですので、ダブルクリック!

すぐに以下のポップアップが表示されますので、「All Users」をクリックします。
「e2 studio」インストーラー - 1


以下の表示では「Next」をクリック!

「e2 studio」インストーラー - 2


次の表示ではお目当ての「RL78」のみにチェックを入れて「Next」をクリックします。

「e2 studio」インストーラー - 3


次の表示ではニッポンジンなら「Japanese Language Support」のみにチェックを入れて「Next」をクリックします。

多分IDEの日本語表示化のオプションでしょう。

「e2 studio」インストーラー - 4


以下2つの画面では「Next」連打!

「e2 studio」インストーラー - 5


「e2 studio」インストーラー - 6


出ました!ライセンスの同意。

同意しなければ、そこで試合終了だよ…。

ソフトウェア契約の条件に同意します。」を選択した後に「Next」をクリックです。

「e2 studio」インストーラー - 7


以下の画面も「Next」をクリック…。

「e2 studio」インストーラー - 8


これで最後かな?

インストール」をクリックしてください。

「e2 studio」インストーラー - 9


インストールが始まりましたが、間髪入れずVisual C++のランタイム(だと思う…)のインストールが開始されます。

これは、放っておけば勝手に終わります。

「e2 studio」インストーラー - 10


Visual C++のランタイムが勝手に終了すると、メインのインストーラーに処理が戻りますが、その後以下のようなポップアップが3回ほど表示されます。

これは多分、デバッガーのデバイスドライバのインストール許可なので、全て「インストール」ボタンをクリックしてインストールしましょう。

「e2 studio」インストーラー - 11


しばらくすると、ルネサス純正の「RL78」コンパイラのインストールが始まります。

前回「GCC」コンパイラをインストールしたので、コチラは使わないんですけど、一応インストールしてあげましょう。

ちなみに、GCCよりも純正コンパイラの方がパフォーマンスが良いという噂があります。

そのうち純正コンパイラに対応したカーネルも作りましょうかね?

以下、赤丸の順にクリックしていって下さい。

ルネサス純正の「RL78」コンパイラのインストーラー - 1


ルネサス純正の「RL78」コンパイラのインストーラー - 2


ルネサス純正の「RL78」コンパイラのインストーラー - 3


ルネサス純正の「RL78」コンパイラのインストーラー - 4


インストール作業が始まります。

ルネサス純正の「RL78」コンパイラのインストーラー - 5


以下の画面が表示されると少なくともルネサス純正の「RL78」コンパイラのインストール作業は終了です。

完了」をクリックしましょう。

ルネサス純正の「RL78」コンパイラのインストーラー - 6


この後、ルネサス純正の「RL78」コンパイラと同様、以下のソフトウェアのインストールが始まります。


●SMSアセンブラ

●ルネサスMCUツール・ライセンスマネージャ

●LLVM「RL78」コンパイラ


要領は一緒なので、インストールを続行しましょう。

…ゆっくりとコーヒー飲んでる暇もないなぁ…。


さて、最後の「LLVM「RL78」コンパイラ」のインストールが終了すると以下の画面が表示されます。

ここでは「Launch e2 studio?」にチェックを入れてから「OK」をクリックして下さい。

これにより「OK」をクリックすると「e2 studio」が自動的に起動するはずです。

「e2 studio」インストーラー - 12


以下のようなスプラッシュスクリーンが表示されます。

初回起動には、相当な時間がかかりますのでお覚悟を。

「e2 studio」のスプラッシュスクリーン


以下の表示が現れます。

あ~これ、絶対「Eclipse」ですわ…。

前回のMSP430版で使用したTIのIDEである「Code Composer Studio」もEclipseベースでしたが、ルネサスよ、オマエもか~。

まあ、Eclipse使い慣れている人にとっては何の問題もありませんが、若干古臭いんだよなぁ…。

ここは、デフォルトのワークスペースの場所で「起動」をクリックしましょう。

e2 studioランチャー


次に、以下の表示が出たら「登録」をクリックして下さい。

「Toolchain Integration」ダイアログ


以下のポップアップも「OK」をクリック。

「コード生成COMコンポーネントの登録」ポップアップ - 1


すると、以下のポップアップが表示されます。

これも「OK」をクリック。

あとで再起動しないとダメらしい…。

「コード生成COMコンポーネントの登録」ポップアップ - 2


以下のダイアログが表示されますが、これの入力はお好みに応じて。

面倒くさかったら別に「キャンセル」でも支障はないようです。

「My Renesasログイン」ダイアログ


以下も「いいえ」で良いでしょう。

「セキュアストレージ」ポップアップ


はい、そうすると以下の画面が残ります。

これが「e2 studio」です!

「e2 studio」


以上で「e2 studio」のインストールは完了です。

「コード生成を使用するには再起動してね!」って言われているので、一旦「e2 studio」を終了させておきましょう。


たかがIDEのインストール作業の割には、面倒くさかった忙しかったですね!

次回は、実際にこの「e2 studio」を使っていきましょう!


<続く>

2022年12月1日木曜日

TOPPERS/ASP - RL78版 その2

前回からの続きです。


開発環境の構築(コンパイラ編)

コレがなくちゃ始まらない!

まずはRL78用のコンパイラのインストールを行いましょう。

以下のページでダウンロードします。


https://llvm-gcc-renesas.com/ja/rl78/rl78-download-toolchains/

上の方には「LLVM」というコンパイラが並んでいますね。

今回使用するのは「GCC」ですので下にスクロールします。

コンパイラダウンロードサイト


GCC」ありましたね?

早速ダウンロードしましょう!

GCCコンパイラのダウンロード


すると、以下のようにログインを要求されます。

すでに「Open Source Tools for Renesas」のアカウントをお持ちの方は、入力してログインしてください…って、ほとんどの方は持っていないですよね?

その場合は面倒ですけど「登録」をクリックしてアカウントを作成後にログインしてください。

アカウントを作成したからと言って、広告メールがバンバン来るようになるとか、そんなことはありません。

まあ、年に数回更新の情報がメールで来るくらいです。

ログイン要求ページ


どうにかこうにかログインに成功したら、以下の画面に戻り、もう一度ダウンロードを試みましょう。

今度はダウンロードできるはずです。

再度GCCコンパイラのダウンロード


ダウンロードが完了すると「gcc-x.x.x.20xxxx-GNURL78-ELF.exe」というファイルが生成されますので、これをダブルクリック!

程なくして、以下の表示が出ます。

「推奨」とありますので「すべてのユーザー用にインストール」をクリックしましょう。

「インストールモードの選択」ポップアップ


インストーラーが起動します。

ここは「次へ」ボタンをクリックします。

インストーラー - 1


同意せざるを得ない!

同意する」を選択して「次へ」ボタンをクリックします。

インストーラー - 2


しばらくは「次へ」ボタンを連打です。

インストーラー - 3


インストーラー - 4


インストーラー - 5


インストーラー - 6


これで最後か?

インストール」ボタンをクリックしましょう。

インストーラー - 7


やっとこさインストールが始まります。

インストーラー - 8


インストールが終了すると以下の画面になります。

これも「次へ」をクリック!

インストーラー - 9


インストールはこれで完了!

完了」ボタンをクリックしてください。

インストーラー - 10


インストールしたツールチェーンの環境変数の確認を行います。

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

「ProgramData」以下だなんて、ちょっと変わった所にインストールされますね…。

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


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

多分、最近のバージョンならインストール時に自動的に設定されていると思います。

確認して、もしパスが設定されていないようならば、上記を参考に改めて設定してあげてください。

ただし、パスは…


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


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


C:\ProgramData\GCC for Renesas RL78 4.9.2.202201-GNURL78-ELF\rl78-elf\rl78-elf\bin


に置き換えてください。

インストーラーが自動的に設定するバージョンでは、一番上に入れられちゃうんですね。

特に問題はないけど…不躾な!

こんな感じ…。

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


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


> rl78-elf-gcc --version

コマンドプロンプト


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

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


「Cygwin」がインストールできたら、ここまでの作業が上手くいっているかどうか確認しておきましょう。

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

ただし、今回使用するソースコードはこのページの冒頭の「NUCLEO-F401RE STM32 Nucleo-64」開発ボード用のTOPPERS/ASPカーネル簡易パッケージではなく、「RL78」用のものを使います。

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

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


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

Cygwinターミナル


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

また、今回は「OBJ」ディレクトリを作成する必要はありません。

これは既に用意されていますので、そのまま「OBJ」ディレクトリに移動し「make~」コマンドを実行してください。


コマンドライン環境で正しくビルドができることを確認したら、次回はルネサスエレクトロニクスのIDEである「e2 studio」のインストールを行っていきます。


<続く>

2022年11月30日水曜日

TOPPERS/ASP - MSP430版 目次

ようやく全部書き終えたので、以下MSP430版に関する記事の目次です。


■TOPPERS/ASP - MSP430版 その1

TOPPERS/ASP - MSP430版 概要

必要なもの

ダウンロード/GitHub


■TOPPERS/ASP - MSP430版 その2

開発環境の構築(コンパイラ編)


■TOPPERS/ASP - MSP430版 その3

開発環境の構築(IDE編)


■TOPPERS/ASP - MSP430版 その4

プロジェクトの作成


■TOPPERS/ASP - MSP430版 その5

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


■TOPPERS/ASP - MSP430版 その6

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

MSP430版カーネルについて

ライセンスについて


■TOPPERS/ASP - MSP430版 その7

デバッグ・シリアル出力の問題



なお、Qiitaにも上記の記事を1ページにまとめたダイジェスト版を投稿しました。

こっちの方が読み易いです。

是非参考にしてください。

Qiita

2022年11月28日月曜日

TOPPERS/ASP - MSP430版 その7

前回からの続きです。

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


デバッグ・シリアル出力の問題

さて、TOPPERS/ASPのMSP430版の説明は全て書き終えたつもりですが、どうしても納得行かない点が一つだけ残っています。

気が付いている方は慧眼でいらっしゃる。

サンプルプログラムの実行中にTeraTermへ出力されるメッセージの出方がどうも気に入らないのです。

スムーズじゃないサンプルプログラムの出力


他のターゲットでは「task1 is running...」が一行ずつスムーズに出力されるのに対し、今回の評価ボード「MSP-EXP430F5529LP」にTOPPERSを載せた場合に、これが何故か二行ずつ出力されるのです。

ダラダラっ、ダラダラっと…。

気持ち悪いです。

最初はOSに実装したシリアル通信ドライバのバグかと思って修正を試みましたが、特に悪い点は見つからず、ドライバの問題ではないと結論付けました。

その証拠に…。

サンプルプログラムが動作している最中にプログラムを停止させます。

プログラムの停止ボタン


すると、ターゲットはリセットに入り、フラッシュROMに書き込まれたプログラム、すなわちサンプルプログラムをまた最初から実行します。

その際の出力メッセージはちゃんと「task1 is running...」が一行ずつスムーズに出力されます。


何故でしょう…?


今回の評価ボード「MSP-EXP430F5529LP」はデバッガを積んでいます。

このデバッガは「eZ-FET lite」といって、その正体はデバッガの機能をプログラミングされた「MSP430F5528」という型番の、これまたMSP430マイコンです。

ナナメに付いている石がそれです。

(メインCPUと1文字違いの型番っていうのも、なんだかなぁ…。)

eZ-FET lite


で、この「eZ-FET lite」のMSP430マイコン、デバッガのお仕事の他にUSB/シリアル通信変換機能をも司っているようです。

もしかして、出力メッセージがスムーズじゃないのは、デバッガの機能とUSB/シリアル通信変換を同時に行っているため、処理が一杯一杯になっているのでは?

であるならば、少なくともUSB/シリアル通信変換は「eZ-FET lite」にはやらせず、別の手段で代用してみよう、と思いました。

幸いにして、以下のように「eZ-FET lite」の脇にメインCPUからのシリアル信号(RXDとTXD)が出ています。

ジャンパーピン


この部分のジャンパーピンを外して「eZ-FET lite」をUSB/シリアル通信変換から開放してあげましょう。

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

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


このケーブルをジャンパーピンを外した「MSP-EXP430F5529LP」のシリアル信号(RXDとTXD)と接続します。

GNDは適当な所から引っ張ってきましょう。

「MSP-EXP430F5529LP」側の配線


シリアルの信号を横から掻っさらう感じですね。

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


こんな感じ。

評価ボードとケーブルの接続


さて、市販のUSB/シリアル通信変換ケーブルをパソコンに接続し、TeraTermの接続ポートをこのケーブルのものに変更して、サンプルプログラムを実行してみると…。

スムーズに「task1 is running...」が一行ずつ出力されるじゃありませんか!

スムーズなサンプルプログラムの出力


推測通り、評価ボード「MSP-EXP430F5529LP」に内蔵されている「eZ-FET lite」は、非力なマイコンで処理を行っているため、負荷がかかるとシリアル出力の処理落ちが発生することが分かりました。

まあ、タダで付いてくるデバッガだから文句は言えませんし、ただデバッグメッセージを表示したいだけなら何もスムーズでなくて構いません。

何より肝心のデバッグ機能に問題が出るわけではないので良しとしましょうか!

…バグだと思って、ちょっと焦ったじゃないか!


<終わり>

2022年11月26日土曜日

1chipMSXを発掘!?

こちらの記事で触れた会社のデスクのダンボール。

今日も探し物をしていると、ダンボールの一番奥底からコレを発見!

1chipMSX本体


中身は新品同様だけど箱はそれなりにボロボロ!

1chipMSXの外箱


2006年頃に発売されたMSX2相当の機能を持つ「1chipMSX」です。

そういや買った覚えがあるな~。

家でMSXを使う時は、パナソニックの「FS-A1」が現役なので、そればかりで遊んでいます。

なので、この1chipMSX、最近家で見ないなぁ~と思っていたら、まさか会社に置いてあるとは!

なにか仕事で使おうとしていたのでしょうか?

というのも、この1chipMSXは全てFPGAでMSX2相当の機能を実装しており、優れたFPGAの評価ボードとしての利用価値も持ち合わせています。

当時のツワモノは、独学でこれにロジックを付け加えて本来の「MSX2」より上位の「MSX2+」の機能を実装した方も居たとか居ないとか。

私がこれを会社に持ってきた理由は、おそらくこれを使ってVerilogやらVHDLやらの言語を学習したかったのでしょうかね。

さて内容物は以下の通り。


●本体

●ACアダプター

●取扱説明書

●CD-ROM

1chipMSXの内容物


付属のCD-ROMの中にはFPGAのソースを含む技術情報が満載。

これは貴重なデータ!

良い機会なので、CD-Rが劣化して読めなくなる前に中身をバックアップしましたよ…。

さて、本体のインターフェースは…?

先ずは前面。

左から…


●USBホスト(確か使えない)

●PORT A/B(コントローラーを接続して使えます!)

●SD/MMCスロット(仮想FDドライブ)

1chipMSXのインターフェース - 前面


次に背面のインターフェース。

左から…


●PS/2ポート(キーボードを接続)

●VGA15ピン(モニターを接続)

●S端子

●ビデオ・サウンド同軸コネクタ

●電源(5V)

1chipMSXのインターフェース - 背面


PS/2ポートとVGA15ピンというのが、時代を感じますなぁ。

問題は、コイツはまだ生きているのか?

動作確認をしてみましょう。

昔の私が変な改造をして、壊れてなければ良いけれど…。

電源ON!

おお!ノスタルジックなロゴ!!

1chipMSX起動画面


やった!BASIC動いた!

よしよし、壊れてはいないみたい。

念のため持ち帰って、スロットにゲームを刺して検証してみましょうか。

1chipMSXのBASIC


この1chipMSX、当時の価格が20790円、そして現在はプレミアが付いてヤフオクなどでは5万円から、箱付きであれば10万円くらいで取引されているようです。

(私は売らないよ?食べるものが無くなったら考えますが…)

ただねぇ…よっぽどのマニアでもない限りは手を出すのは止めておいたほうが良いでしょうね。

というのも、以前このブログで書いた「MSX DEVCON 1 Tokyo」の記事の中にあるように、西さん、これとよく似た筐体を「MSX3」としてツイートしてるんですよね。

ということは、この1chipMSXよりも遥かに高性能で完成度が高い新型が今後出てくることは間違いないです。

守秘義務の関係で詳しくは言えませんが、更に本来のMSXの形に近い製品の発売も予定されています。

なので、そういった物に備えてお金を取っておいたほうが良いですよ。

それでも落札するって人は尊敬します!

真の「」だからです。


さてさて、私の不思議なダンボール。

今度は何が出てくるかな?

いいかげんに整理整頓しろ!って言わないで。

2022年11月23日水曜日

TOPPERS/ASP - RL78版 その1

TOPPERS/ASP - RL78版 概要

半導体メーカー大手、ルネサスエレクトロニクスの16Bitマイコン「RL78」です。

ルネサスエレクトロニクスの16Bitマイコン「RL78」


ルネサスエレクトロニクスは、いくつかの種類の16Bitマイコンを販売していますが、新規の採用を推奨されているものは、このシリーズと「R8C」だけです。

むか~しむかし、日立製作所は「H8」という16Bitマイコンを売っていました。

一方同じ頃、三菱電機が「M16C」という16Bitマイコンを売っていました。

ある時、この2社それぞれの半導体部門が分社、その半導体部門同士が合併し「ルネサステクノロジ」という会社ができました。

ルネサステクノロジは「M16C」の後継として、新たに「R8C」という16Bitマイコンを作りました。

しばらくして、そこへNECエレクトロニクスがやってきました。

NECエレクトロニクスは「78K0R」という16Bitマイコンを売っていました。

NECエレクトロニクスは仲間になりたそうにルネサステクノロジを見ています。


な なんと 半導体メーカーたちが・・・!

半導体メーカーたちが どんどん がったいしていく!


なんと ルネサスエレクトロニクスに なってしまった!


ルネサステクノロジとNECエレクトロニクスが合併、「ルネサスエレクトロニクス」という会社ができました。

ルネサスエレクトロニクスは「78K0R」の後継として、新たに「RL78」という16Bitマイコンを作りました。

さて、合併を繰り返して成立したルネサスエレクトロニクスは、この時点で多くの16Bitマイコンのシリーズを抱えていることになりました。

当然、同じようなカテゴリーの製品が重複するのは経営効率が悪いのでシリーズの淘汰が始まります。

まず「M16C」と「78K0R」に関しては、それぞれの後継機種が出ているので収束。

「R8C」は低コスト化、コンパクト化を推し進めて、さながら8Bitマイコンとしての立ち位置に移行。

残るは「H8」と「RL78」です。

この頃、私は「H8」を仕事に趣味にとジャンジャン愛用しており、性能、入手性の良さ、ラインナップの豊富さやペリフェラルの使い易さを気に入っていたので、「H8」だけ後継機種が出ていなくとも今後もメーカーで開発が続けられるものと信じていました。

が…!

2010年代初頭、ルネサスエレクトロニクスは「H8」シリーズの開発を収束、16Bitマイコンの開発リソースを「RL78」シリーズに集中する…というアナウンスを出しました。

なんてこった。

一般論として「RL78」が「H8」よりも優れているから、こういう結論になったはず。

ならば「RL78」とは一体!?

そういや「RL78」って地球連邦軍のMSみたいだな。

見せてもらおうか…「H8」を倒した「RL78」の性能とやらを!

…というわけで「μITRON4.0」準拠のRTOS(リアルタイムOS)であるTOPPERS/ASPを移植してみました。

(なんでやねん!)


必要なもの

今回は、RL78の中でも比較的ハイエンドな「RL78/G14」を搭載した「RL78/G14 Fast Prototyping Board」という評価ボードを使います。

こちらで買うと、3,300円くらいです。

「RL78/G14 Fast Prototyping Board」評価ボード


他の型番への移植も可能ですが、TOPPERS/ASPを搭載して動作させるならROM:128KB/RAM:8KB以上の容量を持つ型番を選びましょう。

また「RL78/G14 Fast Prototyping Board」を使用する場合、デバッガーは必要ありません。

この評価ボードには既にデバッガーも実装されています。

「RL78/G14 Fast Prototyping Board」を使用しない場合は「E2 emulator Lite」というRL78に対応したデバッガを使用する必要があります。

こちらで買うと、12,000円くらいですね。

「E2 emulator Lite」デバッガ


デバッガーとしては良心的な価格ですが、それを搭載している「RL78/G14 Fast Prototyping Board」がそれより遥かに安価なので、如何にお買い得かが分かりますね。

このブログでは「RL78/G14 Fast Prototyping Board」を使用した場合の例を説明していきたいと思います。


ダウンロード/GitHub

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

なるべく定期的にメンテナンスするようにしています。

記事を書きながら再検証もしていますので、ちょこちょこ修正が入るかもしれません。

動きがおかしいな?という場合は最新版に更新をお願いします。

一連の記事が完結する頃には安定したバージョンができるかな~?


このカーネルは、かなり昔に実装したので色々忘れてます。

なんとか思い出しながら、次回以降、開発環境の構築やビルド方法を書いていきます!


<続く>

MLAA License

 名称:「MLAAライセンス」(MLAA) タイプ: ・コピーレフト…× ・ライセンス文の掲示…〇(ソースコード頒布のみ) ・コピーライト(著作権)…〇(ソースコード頒布のみ) ・その他…〇(バイナリ頒布のみ) 原文: Copyright: 2010 Jorge Jimenez ...