20年以上も昔になりますが、誰もが知る秋月電子さんからAKI-H8なるマイコンボードが登場しました。周辺機能やメモリが1つのチップに収まっている事と、内蔵のフラッシュROMの書き換えが12V電源とシリアルポートさえあれば出来るという事もあって徐々に流行り始めたのです。当初はアセンブラのみが提供され、しばらくしてから機能制限付きのCコンパイラが販売されました。そのCコンパイラでも十分でしたが、ある程度使えると分かった途端に制限がネックとなって来たのです。
程なくして日立製作所の海外のサイトにgnuprotoolkitが公開され、お遊びでgccを使ってコーディングする様になり、とりあえず実現したい機能をCで記述できる様になってきます。しかしながら、ちょっとだけかじってみようと思ってもまだまだ敷居が高い状態が思いの外長く続くのです。
次第に我らにも面倒が降りかかるようになってきた事もあり、とりあえずほとんど変更の必要がないものには蓋をして、頻繁に変更する部分だけを表に見せソースをコンパイルだけのツールをこさえました。公になっているツールではありませんが、それが原型となって今のGCC Developer Liteへと続いていると言った所です。
相も変わらずLiteがついている事へのツッコミは無しとして、とりあえず目新しいチップを「ひとまず」動かす事の面倒さを軽減する事が第一の目的ですので、それ以外の機能拡張は面倒な手順をボタン一つで何とかしたいという程度の考えで追加されていると考えてください。「学習」とか「教育」といった崇高な目的からではなく、全て「横着」や「タダ」、「とりあえず」さらには「無理矢理」から派生しているのです。(以上作者談)
とはいうものの現在の所かなりのユーザに使っていただいており、玄人の方はわざわざ足枷の様な環境を好んで使う事はしませんので、ひとまずの大義名分は初めて使う方の「応援グッズ」という事にしています。
なお、このドキュメントを全て読み進める必要は全くありませんし、その意味もないほどツール自体の使い方は単純です。通常は各ターゲット毎に異なる開発フローだけわかれば良いので、先に各製品のドキュメントを参照する事をお勧めします。
最新版ではできるだけ最新のOSに対応しますが、時折制限がありますので確認が必要です。
現在の所以下のOSの64bit版に対応します。
また、本ドキュメントでは64bit版Windows11を前提として記述するため、その他のバージョンや32bit版ではインストールフォルダが一部異なります。
インストールする前にインストールされるコンポーネントを確認しておきます。
Basal Packと各種ターゲットPackをインストールすると、概ね以下のフォルダツリーが作成されます。
メモ帳で全角まみれのソースに気づかずにエラーが解消しない事に業を煮やして、秀丸の様に色々表示をカスタマイズできるネタを仕込んだテキストエディタが欲しいといったとこで生まれました。他のツールを起動したりコンパイルするといった機能はオマケ以下だったものが、対応するマイコンを増やしていくうちにいつしか多種多様になってしまいました。
ちなみに、デフォルトでテキストエディタの背景が青いのは作者の悪趣味によるものなので、好きな色に変更して使ってくださいとの事です。
H8/3048FマイコンのフラッシュROMへユーザ任意のデータを書き込むツールでしたが、H8 TinyやSH、ARMやら何やらと言っている間に「FLASH」という表現は曖昧になってきています。
また、シリアルポートがPCとターゲット間の唯一のI/Fだったものが、DLLを仲介したりTELNETやFTPを経由したりとこちらも多様になっています。
シリアルターミナルクライアントです。元来Windowsにオマケでついていたハイパーターミナルを使っていたのですが、初めて起動する際にいちいち市外局番を入力させられるのがイヤで用意したそうです。
今では当然の様にTeraTermを使うのでしょうが、COMポートの動的検出やポートの再接続といった操作を横着する機能はSIMPLE TERMにしかありません。
なお、数百kbpsを超える高速なボーレートで通信するとすぐに露呈しますが、描画スピードに難があります。今後改善される事は無いそうです。
FLASH WRITERでは対応し切れていないルネサスのチップを採用した際に、hmseで提供されていた物を少し改造して同梱し始めたものです。既にメンテは放棄されていますのでオマケ程度にと思ってください。
ちなみにFLASH WRITERよりも速いボーレートで書き込めますので、大きいファイルを転送する時には重宝します。
基本的にTINY JTAG-ICE2用として更新しているファイルと同等ですが、そちらの更新頻度が激しいためにGCC Developer Liteのインストーラに収められているバージョンはどうしても古くなります。ですが、できるだけ安定して使用できるバージョンを適用する様にしていますので、単体でOpenOCDとして公開しているバージョンに置き換える事は推奨できません。入れ替えは新し物好きか、重要なパッチが当たっている時だけにしましょう。
アセンブラ、リンカ、Cコンパイラ等を含みます。現在含まれるツールチェインは以下の通りです。
ARM (ARMコアシリーズ全般)
AVR (AVRコアシリーズ全般 AVR Toolchainそのもの)
SH (SHコアシリーズ全般 gnutoolそのもの)
H8 (H8コアシリーズ全般 gnutoolそのもの)
x86 (Windows 32bit版用 mingwそのもの)
x64 (Windows 64bit版用 mingwそのもの)
適当なフォルダにまとめ、フォルダごと移動しても単体で動かせる状態で構成されてさえいれば、Windows上で動くgnuのコンパイラ全てに対応できます。よって、ユーザ自身で用意したコンパイラを含めたり、自前で構築したgccを適用させることも何ら難しくありません。
色々入っているのでごった煮と呼んでいます。対応するハードウェアが増えればGNUTOOLS同様それらに対応するファイルが必要(不要な時もあります)です。
当初からマイコンのシリアルポートを使う事としている都合、ほとんどのターゲットが持つシリアルポートをputcやgetcといった低レベルの関数で利用できるにライブラリが提供されます。最近ではそれでは事足りず、OSライクな物までターゲットファイルとして提供する事もあります。
ライブラリのせいで自分のプログラムの挙動がおかしくなる!といった時でも、マイコンや製品の略称で命名したフォルダ毎にソースとライブラリ、その他必要な諸々のファイルが収められていますので、いつでも参照できます。
同フォルダにある拡張子がDEFとあるファイルに、GCC Developer Liteのコンパイルオプションで選択出来る設定リストの雛形が記述されています。また、以下のフォルダにターゲット毎に用意されたファイルが収められています。詳細は各々のターゲットの説明に譲ります。
3048F
3052F
3067F
3069F
3664F
3694F (H8/3694Fマイコンボード)
3687F (H8/3687Fマイコンボード)
7045F (SH7045Fマイコンボード)
7047F (SH7047Fマイコンボード)
7144F
7145F (SH7145Fマイコンボード)
7125F
ATmega168 (ATmega168マイコンボード)
ATmega32 (ATmega32マイコンボード)
ATmega128 (ATmega128マイコンボード)
AT90CAN128 (AT90CAN128マイコンボード)
SAM3S4 (Digitus SAM3S)
SAM7S (AT91SAM7S256マイコンボード, AT91SAM7S32マイコンボード)
SAM7X (AT91SAM7X512マイコンボード)
STM32F2
STM32F373 (Digitus STM32F3)
LPC82x
LPC84x (DXMIO)
FREERTOS_CM0P
FREERTOS_CM3
FREERTOS_CM4F
DXLIB
win
マイコンボードを応用し機能を拡張した製品のDEFファイルにおいては、複数のフォルダを参照する設定がなされている場合もあります。
最近はUSB I/Fがマイコンに内臓されるようになってきています。現在の所AT91SAM7・SAM3S・STM32FシリーズのUDP用のみですが、弊社で販売しているターゲットをUSBケーブルでWindows PCとつないだ際に要求されるデバイスドライバを同梱しています。
なお、一部署名のないデバイスドライバがあるため、OSによっては正常にインストールできない場合がありますので、インストールの見出しに記載された注意事項をよく読んだ上でインストール作業を行ってください。
atm6119_cdc.inf (Atmel AT91SAM7S/AT91SAM7X/SAM3S Windows用仮想COMポートドライバインストール用定義ファイル)
stmcdc.inf (STMicro STM32F1/F2/F3/F4Windows用仮想COMポートドライバインストール用定義ファイル)~
「%APPDATA%\BestTech\GCC Developer Lite」配下に各アプリケーションの設定がファイルとして保存されます。
数百メガバイトのインストールファイルのダウンロードをブラウザに任せると、かなり高い頻度で失敗します。できれば専用のダウンローダ(bitsadminやwget等)を使用することを推奨します。
- 基本パック(必須)
公開日: 2024/03/31
サイズ: 16,715,027 byte
MD5ハッシュ値: 1b8724f696377304470769cebd82e88f
GCC Developer Lite・Simple Term・Flash Writer・ctags・msys2コマンドラインツール同梱- H8パック
公開日: 2022/06/09
サイズ: 18,638,370 byte
MD5ハッシュ値: 2d0ad7c10de82144081f735621ba55b4
各renesas H8マイコンボード用ターゲットファイル・FLASHSimple・H8 GCC同梱- SHパック
公開日: 2022/06/09
サイズ: 22,420,625 byte
MD5ハッシュ値: 774c8ae923c2c3be76ef12fa805ba43f
各renesas SH2マイコンボード用ターゲットファイル・FLASHSimple・SH GCC同梱- AVRパック
公開日: 2024/05/22
サイズ: 39,226,954 byte
MD5ハッシュ値: 8b89df46919a5b4508d7786e58827651
各microchip AVRマイコンボード用ターゲットファイル・AVR GCC同梱・64bit版のみ- ARMパック
公開日: 2022/06/09
サイズ: 55,433,882 byte
MD5ハッシュ値: 49cb23dee3286981cb3f6030896743db
各ARMコア内蔵マイコンボード用ターゲットファイル・CoFlash・ARM GCC同梱- WIN32パック
公開日: 2024/05/13
サイズ: 434,504,838 byte
MD5ハッシュ値: 0dc424ab97e67d09e31887d3e2a42f6b
巨大化に伴い32/64bitを分離・2024/5/13日版Windows用32bit GCC及びPython同梱・インストールサイズは3Gbyte超
※msys2の32bit版メンテ終了に伴い以後の更新を行わず- WIN64パック
公開日: 2024/11/30
サイズ: 704,902,715 byte
MD5ハッシュ値: e282a9c8d87b25b2dd4d2ab5ce81e29e
2024/11/30日版Windows用64bit GCC及びPython同梱・インストールサイズは4Gbyte超
Version 2.7.1.0 2024/3/31
Version 2.7.0.4_r2 2022/9/17
Version 2.7.0.4 2022/6/9
Version 2.7.0.3 2022/4/10
Version 2.7.0.0 2022/3/1
先のバージョンはこの更新を行うための布石のため、一部のターゲットファイルが不完全であった
Version 2.6.1.4 2022/2/7
Version 2.5.1.0 2013/09/04
Version 2.5.0.0 2012/12/19
Version 2.4.0.13r4 2011/08/08
Version 2.4.0.13r3 2011/08/03
重篤なバグがあるため使用停止
Version 2.4.0.13r2 2011/08/02
他のバージョンのGCC Developer Liteと共存させる事を想定していないため、インストール済みのGCC Developer Liteがあれば予めアンインストールしておきます。また何らかの要因で「%APPDATA%\BestTech\GCC Developer Lite」フォルダが残っていると、改めてインストールする事を阻害される場合があります。その場合は本フォルダを手動で削除しておきます。
署名の類を一切施していないので、いずれのインストーラーも実行するとスマートスクリーン・セキュリティー警告・ユーザアカウント制御等のメッセージがしつこく表示されます。ダウンロードしたファイルのサイズやハッシュ値が上記と同一であれば「実行(R)」や「はい」を選択してインストールを進めて構いませんが、気がかりな場合はインストールそのものを止めここで示す作業を諦めざるを得ません。
これらのメッセージが表示されないままインストールそのものを拒否されたり、インストーラーファイルが削除される事も考えられます。その場合はWindowsの署名に関するポリシーを変更したり、アンチウィルスの制限を緩める等の措置を講じる必要があります。
なお限定的な機能のみにもかかわらずコンパイラによってはかなりの数のファイルを内包しているため、ファイルの数とサイズは莫大になるパッケージがあります。そのためインストールが完了するまにではそれ相応の時間がかかるのと、数ギガものハードディスクの空き容量を要求されます。インストールが成功したとしても、最新のコンパイラ類が実行された際にアンチウィルスによってウィルスとして誤認識される恐れもあります。
ようやくインストールですが、まずはGDLBasalPack~.exeとあるパッケージを実行します。
インストールする言語を選びます。今後使用するツールの表示言語はここで選ぶ事になります。
もし次のメッセージが表示された場合、使用しているPCの環境が本ツールに適合していない状態を意味します。通常は「はい(Y)」を選択します。
GPL Ver.2です。本インストールパッケージに含まれるGNUツール及びターゲット毎のライブラリはGPL Ver.2の制約を受けるものとします。
何を言わんとしているか分からない時はこちらを参考にし、熟慮の上同意するか否かを決定します。
こちらにはインストールパッケージに含まれるファイルの情報が表示されます。
インストール先を選んだ後はインストールするコンポーネントの選択です。H8やSHを対象にしないのであれば「FlashWriter」のチェックは外して結構、ARMを「openOCD」でデバッグしないのであればそちらもチェックを外して構いません。「msys2」はlinuxと同等の一部のコマンドラインツール類を含み、後々各ターゲットのライブラリを再構築したりmakeを使用する際にのみ必要です。良くわからない場合は「フルインストール」を選びます。
チェックされているとインストール後にGCC Developer Liteのショートカットがデスクトップに作られます。余計なお世話ならチェックを外します。
これでインストールの準備が整いました。最後に「インストール」ボタンを押して、HDDへのコピー作業を開始します。
初めて8.3形式のファイル名に対応させた場合は、メッセージに従ってPCを再起動して基本パックのインストールは終了です。
基本パックのインストールが終わったら、一度だけGCC Developer Liteを起動してすぐに終了させてください。一度も起動していない環境には追加パッケージをインストールできないように仕掛けてあります。
続いて目的の追加パッケージをインストールします。概ねGDLBasalPack~と同様の手順です。また途中で表示されるコンポーネントの選択画面では、自身が必要とするターゲットのみを選択する事で余計なファイルがインストールされなくなります。
エディタで開けるファイルには特に制限はありませんが、拡張子が.cや.cppといった何らかの言語で記述されたプログラムのソースファイルを対象とします。
後述のコンパイル作業を一度でも行ったファイルを再度開くと、次のようなメッセージが開きます。
普通はこのまま「OK」をクリックします。一度コンパイルを行うと、開いているソースファイルと同じフォルダに、拡張子が~.btpというファイルが出来上がります。btpファイルが存在しているソースファイルを開くとこのメッセージが表示され、前回コンパイルした時の条件や設定を再現します。これは異なるターゲットを1台のPCで扱っている際に、ファイルを開くたびにコンパイルオプションを変更するのが面倒なために設けられた機能です。
また、GCC Developer Liteをバージョンアップすると、それ以前にコンパイルしたファイルを開くと「!」付きでメッセージが表示される場合があります。
つまり、親切にも古い環境でコンパイルされているファイルを開いた事を知らせており、バージョンが変わった事によりコンパイラオプションでは問題が生じる可能性を示唆しています。このメッセージを見かけたら、素直にコンパイラオプションから設定リストを選択し直してコンパイルしましょう。
玄人的な使い方をしない限り、編集操作は本ツールにオリジナルな物ではありません。選択、コピー、切り取り、削除、貼り付け、といった基本操作はもちろん、ショートカットキーも普通に使える筈です。
ちょっと特殊なのはインデントでしょうか。複数行にまたがって行頭にスペースを挿入したり削除すると言った機能です。これはあまりにも高い自由度でソースプログラムを記述されてしまった際に、インデントを入れる事を教えるために追加されています。
ちょっとした入力ミスでもコンパイルエラーとなるのは仕方ない事。でも、人間が単語を一字一句間違えずに入力出来る訳もなく、ヒューマンエラーはつきものです。
そういった際に、よく使われる単語については予め設定されているキーワードから選択したり、ソースプログラムから抽出して貼り付けできるといった機能が入力補完といわれます。
本ツールにも簡易的ながら備わっており、入力中に[CTRL]+[SPACE]キーを押すとリストが表示されます。カーソルキーで選択してエンターキーで貼り付ける事ができます。また、リストを表示されている間にある程度の文字を順次入力してゆくと、表示されているリストを絞る事もできます。さらに、既に文字が入力されている場所で[CTRL]+[SPACE]を押せば、カーソル位置の単語を検索してリストを絞る事もできます。
オマケ程度なので過度な期待は禁物なのと、つまらない所でCPUパワーを食います。
シングルソースの弊害として、プログラムソースが長大になると参照元と先で行ったり来たりする羽目になる事があります。とりあえず2画面までではありますが、編集中のソースを分割して表示する事ができます。
両ウィンドウとも同じソースが表示され、片方で編集したものはもう片方にも反映されますのでどちらで何を使用が結果は同じです。片方で関数や変数の宣言部分を表示し、もう片方でそれらを参照しならがコーディングするというスタイルを想定しています。
実はシングルソースと言いながら、内部的には複数ソースの編集とリンク機能を持っています。
その片鱗だけ垣間見る事ができるのが参照機能です。C言語等ではヘッダファイルといった形で別のファイルを参照する事が頻繁に行われ、そのファイルの中身を知らない限り自分のプログラムで参照する事はできません。そういった時に、その参照しているファイル名の場所にマウスカーソルを合わせ「CTRL」キー+マウス左ボタンの「ダブルクリック」すると、別のウィンドウが開いてそのファイルを参照してくれます。
ソース中のコメント等にURL等を記述していた場合は、そのURL部分にマウスカーソルを合わせ「CTRL」+「ダブルクリック」すると、参照ウィンドウでそのサイトを閲覧する事も出来ます。何かのデータシートがpdfで提供されていたら、ソース中にブックマーク代わりにURL書いておいていつでも参照できるようにすると便利かもしれません。
「検索(S)」メニュー内の「タグファイル自動生成(C)」と「タグ生成オプション」内の「タグ生成時にカレントフォルダを含める」をチェックします。
この状態でソースコードを一旦ファイルに保存するとバックグラウンドでタグファイルが生成し直されます。ソースファイル名に「.ctags」の拡張子を付与した名前でタグファイルが作られますが、条件によっては生成に長い時間を要したりファイルサイズが巨大化します。
準備ができたらソースコードの関数名が書かれた部分にカーソルを置き、「Ctrl」キーを押しながら「]」キーを押してから「]」キーのみを放す(「Ctrl」キーのみが押された状態)とエディタウィンドウ中央にその関数名の宣言がなされているファイルの一覧が表示されます。
その関数名の参照先が見つからなかった場合は、ファイルの一覧は表示されません。「Ctrl」キーが押されままの状態でファイルの一覧が表示されている間にカーソルキーの上下やマウスのクリックでファイル一覧から任意のファイル名を選択すると、そのファイルが別ウィンドウが開いてかつ該当するタグが記述されている場所にカーソルがジャンプします。もし編集中のソースコードが参照先の場合は、別ウィンドウは開かずにそのまま該当箇所にカーソルがジャンプします。
なおタグとソースコードとの相関はほぼ皆無なので、あくまで参考程度に考えてください。またGCC Developer Liteを閉じてもソースファイルと同じフォルダにタグファイルが残っていた場合は、削除して構いません。
ソースコードファイルはテキストファイルを対象としますが、コンパイラやツール類はそのファイルの文字コードに多分に影響を受けます。エディタ上では問題無く閲覧できているにもかかわらず、含まれる文字によっては不可解なエラーが発生するといった事が考えられるのです。
GCC Developer LiteのデフォルトエンコードであるShift_JISでは問題が生じやすいため、できる限りUTF-8もしくはBOM付きUTF-8に変更た上でソースコードファイルを保存する事を推奨します。画面最下段のステータスバーの右側に現在のエンコードと改行の状態が表示されており、右クリックして表示されるポップアップメニューより任意のエンコードと改行に変更できます。
GCC Developer Liteは最近の高DPIなPCに対応していないため、高解像度になればなるほどエディタ画面の文字サイズが小さく表示され、場合によっては普通の視力では識別できない程小さく表示されます。その場合は「Ctrl」キーを押しながらマウスホイールを回転させるかピンチイン・アウトさせると、それと連動して文字サイズが変わります。ソースコード全体の見通しを良くするために縮小したり、小さすぎて見えないから拡大するといった使い方ができます。
GCC Developer Liteの「GCC」に関係するところはココだけです。最近はGCCのみという訳では無くなりつつあるため、、旧来「GCCオプション」と称していたものを「コンパイルオプション」に改名しています。
一応説明しておきますが、細かいことは抜きにこのダイアログボックス上端にある「設定リスト」だけ見れば良く、タブで分かれた細かい設定は理解に及んでから触れるべきです。
命名がちょとややこしいだけですが、いずれも内部で行われる作業は似たような物です。
ソースプログラムは単なるテキストファイルに過ぎず、一般にそのままでは実行できる物ではありません。何かしらのツールを仲介した後に、マイコン等で実行出来るファイルに変換されます。その作業をここではコンパイルと称しています。
また、以後の作業に応じて複数のコンパイル方法が選択出来ます。これらはコンパイラオプションに依存しますので、全てのターゲットで同様の機能が提供される物ではありません。
こちらビルドと大差ありませんが、gnuのデバッガでデバッグする際の情報を付加します。
デバッグ情報付きのファイルを作成するだけで終了としますので、この後必要に応じてデバッガ等で開くなり何なりします。
GNUTOOLにデバッガ(gdbないしinsight)が含まれている場合に使用できます。 デバッグビルドを行った後、gnuのデバッガが使用できる環境であればデバッガを起動出来ます。
デバッグビルドされたファイルを指定されたデバッガで開いてデバッグを開始します。
ターゲットによってデバッガを起動する際に指定されるファイルが異なるので一概にこうなるとは言えないのですが、
といったフローでデバッガが実行されます。
GNUTOOLにエミュレータ(run)が含まれている場合に使用できます。
エミュレーションできるのはCPUのコアだけですので、LEDが点灯したりブザーが鳴ったりスイッチが押せる訳ではありません。作成したハードウェアに依存しないサブルーチン等が、予想した動きをするかどうかをテストするといった目的に使えるかもしれません。ターゲットによってはprintf等の関数を使用すると、コンソールに文字を表示させる事はできる様です。
メニューの直下にあるのはツールバーと呼ばれ、メニューをドロップダウンするまでもなく、ファイルを開いたり保存したり、コピペや検索をさせるためのボタンが配置されています。
アイコンだけで判断出来るのであれば、機能を呼び出すまでの操作がボタン1つで済むので作業効率が上がるはずです。
テキストエディタでプログラムを編集していれば全ての作業が完了する訳ではありません。ここで紹介するツール以外にも自分で用意したツールを簡単に呼び出したいといった事は良くあります。
インストールコンポーネントにもよりますが、インストール直後はFLASH WRITERやSIMPLE TERM等が既に登録されています。必要に応じて自分の好みのツールを最大10個まで追加できます。
ここでの設定はWindows7よりも前のバージョンではあまり大きな意味は持たないのですが、いくつかのファイルの拡張子とGCC Developer Liteを関連付けできます。
チェックされた拡張子を持つファイルをエクスプローラー等で右クリックすると、「プログラムから開く」のツリーにGCC Developer Liteが登録されているはずです。ダブルクリックしても勝手にGCC Developer Liteで開く様な横柄な事はしません。
また、Windows7においては拡張子の関連付けがなされていないとジャンプリストに履歴が作成されず、ジャンプリストに履歴として表示されるファイルがあったとしても開けなくなります。
新し好きであればもう使っているとは思いますが、Windows7は色々初心者には使いやすくなっているのではと思います。マウスやタッチパネルといった入力装置によって、直感的な操作を部分を訴求しようという部分ですね。Vistaを特に支障なく使っているのであればWindows7になったからと言ってその違いは微々たる物かもしれません。
Windows7(x86でもx64でも大丈夫)にインストールしても使えますし、Windows7上で動いている事が検出されると多少ならではといった機能が追加されるようになっています。はっきり言ってどうでも良い機能ですが、もしかしたら必須と考えるのが趨勢になるかもしれませんので、標準的なUIとして機能するようにしてあります。
ジャンプリストは主に今まで開いたり保存したファイルの履歴を表示します。GCC Developer Liteのファイルメニューにも履歴が表示されていますが、それとほぼ同じです。
従来からGCC Develoer Liteは同時に2つ以上起動出来ないという意図的な制約を設けていますが、このジャンプリストを使ってファイルを開こうとするとこの制約が邪魔でした。最新版ではGCC Developer Liteが起動している状態で、後から何らかの方法でファイルを別途開こうとした場合は、起動済みのGCC Developer Liteがその役割を果たすようになっています。つまり「このプログラムは複数起動できません。」とすげなく断られる事は無くなります。
ちなみに二重起動を制限しているのは、むかぁし同じソースを複数のGCC Developer Liteで開いて編集し、整合性が取れない事を理由に文句つけられたからだそうです。
もう一つ、タスクバーのアイコン上にマウスをホバーするとウィンドウのサムネイルが表示されますが、参照ウィンドウ等を開いているとそれらもサムネイルの一覧として配置されます。
FLASH WRITERのウィンドウは小さく出来ています。小さい状態では何らかのファイル名を入力する欄と「かきこみ」ボタンしかなく、それ以外の諸々の設定は一切触れなくなっています。
触らなくて良い理屈は全く無いので、どうにかして設定を変更しなくてはなりません。
そう、メニューバー左上のアイコンをクリックしてメニューを表示させ、その中からFW Propertyをクリックするだけです。すると今まで隠れて見えなかった諸設定がズルズルと見えて来ます。
他にもボタンやテキストボックスが無い所をダブルクリックしても同様に機能します。
CPU Typeがそれ以外設定全てに影響します。大抵の場合においては書き込みたいターゲットの名称になっています。
AVRシリーズにおいてはstk500互換プロトコルのブートローダも対象となりますが、V1.0以降の弊社オリジナルブートローダが搭載されたマイコンボードは対象ではありません。今後はFLASH WRITERではなくSIMPLE TERMを使う事になります。 |
大抵の場合PCに装備されるCOMポートが列挙されますので、使用するCOMポートを選択します。CPU TypeによってCOMポート以外のリストが表示される場合もあります。
PCに無いポートはリストに現れませんが、接続すれば即時リストに現れて選択出来るようになります。
OpenOCDで対象とするターゲットに応じて設定します。
FLASH WRITERと同じフォルダに置かれる.scriptファイルが列挙されますので、もし自前のターゲットをサポートさせたいのであればこのフォルダに作ればリストに載ります。
諸設定に依存する処理を開始します。
どのプロセスにおいても問題があると全てエラーとします。処理中はCPU TYPEによって異なるウィンドウが表示され、進捗が確認できます。
初期状態で真っ黒な部分の事です。ポートが開いている時にのみ接続先から送信されて来るデータが表示され、入力された文字は接続先に送信されます。
ブートローダ等では入力を促されるケースがありますが、その時SIMPLE TERM上で入力した文字がそのままターミナルウィンドウに表示されていると思うのは間違いです。SIMPLE TERM自身はデフォルトでは接続先から送信された情報しか表示しません。
では、入力した文字が表示されるのはなぜ?実は簡単な事で、入力した文字を相手が都度送り返しているからです。世の中には送り返してこない端末もある(それが普通)のですが、どうしても入力した文字も表示させたいのであればローカルエコーをONにします。
表示に関してはANSIっぽい動きをする様ですが、中途半端な実装による思った様な動きをしない事を恐れてできないフリをしている場合もあるらしいです。
SIMPLE TERMで扱うCOMポートの情報を設定します。
なお、一部の設定はポートが開いている状態であっても変更可能です。ポートを閉じなくてはボーレート等を変更できないのは、実はそういう作りになっているアプリケーションの都合だけだったという事です。
ターミナルウィンドウ上に表示される文字をファイルに保存し続ける機能です。
ターミナルウィンドウでは表示データが画面いっぱいになったり改行が行末に達すると、行頭の文字はスクロールアウトして見えなくなってしまいます。普通ならバックスクロールして以前の表示データを見る事ができるのでしょうが、どうやらあるにも関わらず見る事ができません。
そこで、ファイルに保存する事を提案して作ってもらいました。「ログファイル」がチェックされると保存するファイルを新規に作成し、「ログファイル」のチェックをOFFにするかSIMPLE TERMを終了するまで保存し続けます。
プロパティで選択したCOMポートを独占使用するには開く操作を、使用を終えて他のアプリケーションで使えるように解放するには閉じる操作をします。
通常COMポートはアプリケーションから開かれると、同じCOMポートを別のアプリケーションで開く事が出来ません。しかしながらGCC Developer Liteに含まれるツールに限り、COMポートを譲り合う機能を提供します。
ものぐさな作者は、ターゲットのリセットボタンに手を伸ばす事すら億劫な様です。FTDI社のFT232が乗った弊社マイコンボードとEVBに限りますが、SIMPLE TERMからリセットシグナルを発行できます。
ちょっと面倒な仕掛けでリセットさせているらしく、ポートが開いている時にSIMPLE TERMからリセットをかけると、ポートを閉じる→リセットLOW→しばし待つ→リセットHIGH→ポートを再度開く、といった動きになります。
プロパティのProtocolで選択した通信方式で接続先とファイルの送受信を行います。
全て試した訳ではありませんが、気のせいでなければXModem以外はちょっと微妙な気がしますが、マイコンボードのブートローダがサポートするプロトコルがXModemだけなので良しとします。
ちょっと異色なのは「スクリプト実行」で、目的はブートローダとのコミュニケーションを自動化する事にあります。
といったスクリプトを組み合わせて、マイコンへのプログラム転送にかかる一連の操作を自動的に実行します。SIMPLE TERMの単体起動では用をなさず、GCC Developer LiteのコンパイルオプションでSIMPLE TERMと連動する時に有効となります。
なお、マイコンボードによって異なっていたブートローダのコマンドモードへの遷移方法が大体統一された事もあり、最新バージョンでは出来るだけ簡単にターゲットをコマンドモードに遷移させる機能が盛り込まれています。単にスクリプト実行に「!」マークを送りつける機能が追加されただけなのですが、手が両手がふさがる事が無くなるので結構便利です。
これにより従来は、
といった訳の分からない手順の操作を強いられていたものが、
という2つの操作で終わる様になります。説明も簡単ですし、PCのキーリピートのタイミングに依存する不安定要素が軽減されてヨサゲです。
USBでCOMポートを増設している場合、USBケーブルを抜くと結構困った状態になります。一般にCOMポートを扱うプログラムは、使用しているポートが突然無くなると思っていないものです。Windows自体はポートが無くなった事を知っているにもかかわらず、プログラム側は不慮の事態に備えていないものですから、まだ通信できると思い込んでいる場合があるのです。それを扱う人間も同様に、ポートが無いのにも関わらずプログラムが無いポートを開いたままなので、ついつい操作してしまう。実に悪循環です。
ポートが使えないなら使えないとはっきり意志を示そうと言う事で、SIMPLE TERMではポートの活性状態を常時モニタして、抜かれようが挿されようが、なんとか再起動しないでも済むように努力します。大体以下の様な挙動をします。
つまり、デバイスの状態に応じてポートの開閉操作を人間が行わなくても済む様に努力してくれます。時々ミスる事もありますが、その時は再起動して下さい。
また、COMポートは大抵の場合において一つのプログラムが開いたら、他のプログラムからは同じCOMポートは開けません。これも結構な頻度で悩ましてくれるネタです。SIMPLE TERMの場合は、いくつか起動しており全て同じCOMポートを使用している時に限り、お互いにポートを譲り合う機能を持っています。
KEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION