2023年1月2日月曜日

TOPPERS/ASP - AVR32版 その3

前回からの続きです。

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


Atmel Software Framework (ASF)とは?

ASFとは、ドライバ、プロトコル、スタック、コーディングユーティリティ、ビルドシステムなどを開発者に提供するソースコードのライブラリです。

いわゆる純正のライブラリパッケージであり、これを使用するとCPUに内蔵されているペリフェラル(周辺機器)を簡単に利用することができるというものです。

今回の「TOPPERS/ASP AVR32版」のカーネル内でも、割り込み、タイマーやシリアル通信ドライバなどは、このASFのドライバを使用しています。

ところが、このASFのソースコードのライセンスの条項が不明瞭なために再配布できません。

そのため「TOPPERS/ASP AVR32版」のソースコードが不完全なものとなり、そのままではビルドが通らず、通すためには手動で不足分のソースコードをコピーしていただくという手間を強いることになってしまいました。

面目無いです…。

では、そのASFのソースコードを何処から入手すれば良いのか?

そのためには、インストールした「Microchip Studio」上で雛形となるプロジェクトを作って、そこで生成されたASFのソースコードを「TOPPERS/ASP AVR32版」のソースツリーにコピーするという方法を採ります。


雛形プロジェクトの作成

まずは「Microchip Studio」を起動して下さい。

「Microchip Studio」 - 1


画面上部の「File」、「New」、「Project...」メニューを順にクリックしていきます。

「Microchip Studio」 - 2


以下のようなダイアログが表示されます。

ここでは「GCC ASF Board Project」を選択し、ダイアログ右下の「OK」ボタンをクリックしましょう。

これで「GccBoardProject1」という名前のプロジェクトを作成したことになります。

このプロジェクト名、覚えておいてください。

「New Project」ダイアログ


続いて、以下のようなダイアログが表示されます。

まずは「Extensions」コンボボックスに注目してください。

デフォルトでは「Atmel ASF(x.xx.x)」と言った具合に、「Microchip Studio」をインストールした時点での最新版のASFを使用するように選択されています。

「Board Selection」ダイアログ - 1


今回の場合、デフォルトの最新版でも多分大丈夫なのでしょうが、検証をしていないので「Atmel ASF(3.49.1)」に設定してください。

これで動くことを確認してから、最新版を試すことをオススメします。

気持ち悪いから最新版で試したい!って方は、貴殿のご武運をお祈りします!

「Board Selection」ダイアログ - 2


使用するASFのバージョンを設定したら、そのコンボボックスのすぐ左、「Select By Board」のラジオボタンをクリックします。

「Board Selection」ダイアログ - 3


このASFのバージョンでサポートされている多くの評価ボードがリストアップされています。

その中から、今回使用する「UC3-A3 Xplained - AT32UC3A3256」を選択し、ダイアログ右下の「OK」ボタンをクリックします。

「Board Selection」ダイアログ - 4


すると、以下のようにダイアログが消えて、元の「Microchip Studio」の画面に戻ります。

ただし「ASF Wizard」というタブが表示されていますね。

このタブの左上、「Project:」という表示のコンボボックスに注目してください。

「Microchip Studio」 - 3


このコンボボックスをクリックすると、作成した「GccBoardProject1」というプロジェクト名が選択できるようになっているので、これをクリック!

「Microchip Studio」 - 4


すると「ASF Wizard」というタブは、以下のような表示に切り替わります。

この画面の見方なのですが、左側のリストには、このプロジェクトで指定したデバイスである「AT32UC3A3256」で使用できるASFのライブラリが表示されています。

右側のリストには、このプロジェクトで既に選択されている(使用する)ASFのライブラリが表示されています。

デフォルトで選択されているのは「GPIO」と「Generic board support」のみですね。

つまり、左側のリストから右側のリストに項目を移動させることにより、自由に使用するASFのライブラリをプロジェクトに付け加えることができる訳ですね。

「Microchip Studio」 - 5


今回の「TOPPERS/ASP AVR32版」に必要な最低限のASFライブラリは以下の4つです。


●GPIO - General - Purpose Input / Output (driver)

●Generic board support (driver)

●TC - Timer / Counter (driver)

●USART - Serial interface (service)


このうち、上の2つは既に選択されていますので、残りのOSタイマーとして使用する「TC - Timer / Counter」と、デバッグ・シリアルに使用する「USART - Serial interface」の2つを追加しましょう。

まずは「TC - Timer / Counter」から。

左側の「Available Modules」リストから「TC - Timer / Counter (driver)」を選択して、「ASF Wizard」タブの下部にある「Add」ボタンをクリックします。

「Microchip Studio」 - 6


すると、無事、右側の「Selected Modules」リストに「TC - Timer / Counter (driver)」が追加されたでしょうか?

「Microchip Studio」 - 7


同じ要領で「USART - Serial interface」も追加しちゃいましょう。

左側の「Available Modules」リストから「USART - Serial interface (service)」を選択して、「ASF Wizard」タブの下部にある「Add」ボタンをクリックします。

「Microchip Studio」 - 8


すると、右側の「Selected Modules」リストに「USART - Serial interface (service)」が追加されるはずです。

「Microchip Studio」 - 9


以上で、必要なASFライブラリの設定は終わりました。

次は、この設定通りにASFライブラリのソースコードをプロジェクトに吐き出させる作業です。

なんてことはないです。

ただ「ASF Wizard」タブの下部にある「Apply」ボタンをクリックするだけです。

「Microchip Studio」 - 10


以下のダイアログが表示されます。

特にやることもなく「OK」ボタンをクリックします。


以下のように、派手な表示の変化もなく作業は終了します。

ちょっと不安ですね?

ちゃんとソースコードが吐き出されているかどうか、後で確認しましょう。

「Microchip Studio」 - 11


さて、必要なソースコードを雛形プロジェクトへ吐き出させたようなので「Microchip Studio」を一旦終了させましょうか。

左上のバッテン(X)をクリックすると以下のダイアログが表示されています。

この雛形プロジェクトを保存するかどうかを問われます。

保存しておいた方が良いでしょう。

(「Yes」ボタンをクリックです。)

変更の保存ダイアログ


もしこの先、無事に「TOPPERS/ASP」の起動に成功して、イザ何かを作ろう!となった場合、今回追加したASFライブラリだけでは絶対に足らなくなることでしょう。

評価ボードにセンサーを繋げて、そのセンサーとSPIで通信するとか、AD変換を使いたいだとか…。

その際には、再び今回の手順で必要になったASFライブラリを追加して、ソースコードを吐き出させて、更にそれを「TOPPERS/ASP」のソースツリーにコピーしなければなりません。

そういう意味では、この雛形プロジェクト、結構使用頻度が高くなるかもしれませんよ?

大切に取っておきましょう!


さて、一連の作業で吐き出されたASFライブラリのソースコードがどうなっているのか?確認しておきましょう。

特に変わったことをしていないのであれば、雛形プロジェクト「GccBoardProject1」は以下のディレクトリに保存されているはずです。


C:\Users\<ユーザー名>\Documents\Atmel Studio\7.0\GccBoardProject1

「GccBoardProject1」ディレクトリ - 1


さらに、このディレクトリの中にある、これまた「GccBoardProject1」というディレクトリの中は以下のようになっています。

「GccBoardProject1」ディレクトリ - 2


さらにさらに、このディレクトリの中にある「src」というディレクトリの中は以下のようになっていますでしょうか?

「src」ディレクトリ


ここで現れる「ASF」と「config」(さらに「asf.h」)こそが、欲しかったモノです!

これらが見つかれば、作業は成功です!


さて「TOPPERS/ASP AVR32版」を動かす上で足りないソースコードのゲットに成功しました。

次のステップは、これらのソースコードのコピーと配置、そして若干の修正です。

忙しいですが、一個ずつやっつけて行きましょう!


<続く>

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版は次回で最終回。

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

キリ良く年内…。


<続く>

BSD 4-Clause License

  名称:「四条項BSDライセンス」(BSD-4-clause) タイプ: ・コピーレフト…× ・ライセンス文の掲示…〇 ・コピーライト(著作権)の掲示…〇 ・その他…〇 原文: Copyright (c) <year>, <copyright holde...