はじめに anchor.png

Page Top

ちょっとだけ anchor.png

10年程昔になりますが、誰もが知る秋月電子さんからAKI-H8なるマイコンボードが登場しました。周辺機能やメモリが1つのチップに収まっている事と、内蔵のフラッシュROMの書き換えが12V電源とシリアルポートさえあれば出来るという事もあって徐々に流行り始めたのです。当初はアセンブラのみが提供され、しばらくしてから機能制限付きのCコンパイラが販売されました。そのCコンパイラでも十分でしたが、ある程度使えると分かった途端に制限がネックとなって来たのです。
程なくして日立製作所の海外のサイトにgnuprotoolkitが公開され、お遊びでgccを使ってコーディングする様になり、とりあえず実現したい機能をCで記述できる様になってきます。しかしながら、ちょっとだけかじってみようと思ってもまだまだ敷居が高い状態が思いの外長く続くのです。
次第に我らにも面倒が降りかかるようになってきた事もあり、とりあえずほとんど変更の必要がないものには蓋をして、頻繁に変更する部分だけを表に見せソースをコンパイルだけのツールをこさえました。公になっているツールではありませんが、それが原型となって今のGCC Developer Liteへと続いていると言った所です。
相も変わらずLiteがついている事へのツッコミは無しとして、とりあえず目新しいチップを「ひとまず」動かす事の面倒さを軽減する事が第一の目的ですので、それ以外の機能拡張は面倒な手順をボタン一つで何とかしたいという程度の考えで追加されていると考えてください。「学習」とか「教育」といった崇高な目的からではなく、全て「横着」や「タダ」、「とりあえず」さらには「無理矢理」から派生しているのです。(以上作者談)

とはいうものの現在の所かなりのユーザに使っていただいており、玄人の方はわざわざ足枷の様な環境を好んで使う事はしませんので、ひとまずの大義名分は初めて使う方の「応援グッズ」という事にしています。

なお、このドキュメントを全て読み進める必要は全くありませんし、その意味もないほどツール自体の使い方は単純です。通常は各ターゲット毎に異なる開発フローだけわかれば良いので、先に各製品のドキュメントを参照する事をお勧めします。

Page Top

使用する前に anchor.png

弊社マイコンボード製品にとって必須というツールではありません。商用の開発ツールを使用する事も選択肢の内です。
また、弊社の製品を対象として使用する場合にのみ無償サポートが受けられます。

Page Top

対応するOS anchor.png

最新版ではできるだけ最新のOSに対応しますが、時折制限がありますので確認が必要です。
現在の所以下のOSに対応します。

  • Windows 2000 (SP4)
  • Windows XP (SP3)
  • Windows VISTA (SP2)
  • Windows 7 (SP1)
  • Windows 8/8.1 (一部制限あり)
  • Windows 10 Technical Preview (一部制限あり)

また、本ドキュメントではx86版を標準インストール環境として記述するため、x64版では一部の機能制限があったりインストールフォルダ名が異なる場合があります。

Page Top

パッケージに含まれるコンポーネント anchor.png

インストールする前にインストールされるコンポーネントを確認しておきます。
デフォルト設定でフルインストールすると、以下のフォルダツリーが作成されます。いずれこれらのフォルダを直接参照する事もあるかと思います。

gdl_tree.png
  • GCC Developer Lite "C:\Program Files\BestTech\GCC Developer Lite" 配下

    メモ帳で全角まみれのソースに気づかずにエラーが解消しない事に業を煮やして、秀丸の様に色々表示をカスタマイズできるネタを仕込んだテキストエディタが欲しいといったとこで生まれました。他のツールを起動したりコンパイルするといった機能はオマケ以下だったものが、対応するマイコンを増やしていくうちにいつしか多種多様になってしまいました。
    ちなみに、デフォルトでテキストエディタの背景が青いのは作者の悪趣味によるものなので、好きな色に変更して使ってくださいとの事です。

    gdl.png
  • FLASH WRITER "C:\Program Files\BestTech\GCC Developer Lite" 配下

    H8/3048FマイコンのフラッシュROMへユーザ任意のデータを書き込むツールでしたが、H8 TinyやSH、ARMやら何やらと言っている間に「FLASH」という表現は曖昧になってきています。
    また、シリアルポートがPCとターゲット間の唯一のI/Fだったものが、DLLを仲介したりTELNETやFTPを経由したりとこちらも多様になっています。

    fw.png
  • SIMPLE TERM "C:\Program Files\BestTech\GCC Developer Lite" 配下

    シリアルターミナルクライアントです。元来Windowsにオマケでついていたハイパーターミナルを使っていたのですが、初めて起動する際にいちいち市外局番を入力させられるのがイヤで用意したそうです。
    今では当然の様にTeraTermを使うのでしょうが、COMポートの動的検出やポートの再接続といった操作を横着する機能はSIMPLE TERMにしかありません。
    なお、数百kbpsを超える高速なボーレートで通信するとすぐに露呈しますが、描画スピードに難があります。今後改善される事は無いそうです。

    sterm.png
  • FLASHSimple "C:\Program Files\BestTech\FLASHSimple" 配下

    FLASH WRITERでは対応し切れていないルネサスのチップを採用した際に、hmseで提供されていた物を少し改造して同梱し始めたものです。既にメンテを放棄したので、FDTに移行すべきです。
    ちなみにFLASH WRITERよりも速いボーレートで書き込めますので、大きいファイルを転送する時には重宝します。

  • OpenOCD "C:\Program Files\BestTech\openOCD" 配下

    基本的にTINY JTAG-ICE2用として更新しているファイルと同等ですが、そちらの更新頻度が激しいためにGCC Developer Liteのインストーラに収められているバージョンはどうしても古くなります。ですが、できるだけ安定して使用できるバージョンを適用する様にしていますので、単体でOpenOCDとして公開しているバージョンに置き換える事は推奨できません。入れ替えは新し物好きか、重要なパッチが当たっている時だけにしましょう。

  • GNU TOOLS "C:\Program Files\BestTech\GCC Developer Lite\GCC" 配下

    アセンブラ、リンカ、Cコンパイラ等を含みます。現在含まれるツールチェインは以下の通りです。

    ARM (ARMコアシリーズ全般)
    AVR (AVRコアシリーズ全般 AVR Toolchainそのもの)
    SH (SHコアシリーズ全般 kpit gnutoolそのもの)
    H8 (H8コアシリーズ全般 kpit gnutoolそのもの)
    RX (RXコアシリーズ全般 kpit gnutoolそのもの)
    x86 (Windows 32bit版用 mingwそのもの)
    x64 (Windows 64bit版用 mingwそのもの)
    FPC (ARM用Free Pascal Complier)

    適当なフォルダにまとめ、フォルダごと移動しても単体で動かせる状態で構成されてさえいれば、Windows上で動くgnuのコンパイラ全てに対応できます。よって、ユーザ自身で用意したコンパイラを含めたり、自前で構築したgccを適用させることも何ら難しくありません。

  • ターゲットファイル "C:\Program Files\BestTech\GCC Developer Lite\TARGET" 配下

    色々入っているのでごった煮と呼んでいます。対応するハードウェアが増えれば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
    RX62N
    ATmega168 (ATmega168マイコンボード)
    ATmega32 (ATmega32マイコンボード)
    ATmega128 (ATmega128マイコンボード)
    AT90CAN128 (AT90CAN128マイコンボード)
    SAM3S4 (Digitus SAM3S)
    SAM3S4_TOPPERS (Digitus SAM3S)
    SAM7S (AT91SAM7S256マイコンボード, AT91SAM7S32マイコンボード, ユニバーサルドライバ3, FDIII-HC)
    SAM7S_TOPPERS (AT91SAM7S256マイコンボード, AT91SAM7S32マイコンボード, ユニバーサルドライバ3, FDIII-HC)
    SAM7X (AT91SAM7X512マイコンボード)
    SAM7XFPC (AT91SAM7X512マイコンボード)
    STR75X
    STM32F2
    STM32F2_TOPPERS
    STM32F373 (Digitus STM32F3)
    FD30 (FDIII-HC)
    UD3 (ユニバーサルドライバ3,ユニバーサルドライバ3.5)
    CM-5 (Bioloid CM-5)
    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ポートドライバインストール用定義ファイル)~

    FTDI社のドライバも含めようと考えていたのですが、FTDI社のチップを使用している製品が他にたくさんあるので、競合する可能性を避けるために汎用インストールパッケージへの同梱はひかえています。一部OEM版のパッケージにおいては含まれます。

  • その他

    「%APPDATA%\BestTech\GCC Developer Lite」配下に各アプリケーションの設定がファイルとして保存されます。アンインストール時はこれらのファイルは削除対象としていませんので、手動で削除しなくてはなりません。

Page Top

インストールパッケージの入手 anchor.png

公開日: 2013/09/04
サイズ: 176,329,165 byte
MD5チェックサム: f198f79a9803672d44c63e0ff9af0192

Page Top

更新内容 anchor.png

Version 2.6.0.0 2015/xx/xx (未公開)

  1. GCCDevL.exe
    コンポーネントの更新に伴う再構築
    ctagsを使用したタグジャンプ機能追加
    リファレンスウィンドウのタイトルに表示されていたフルパスをウィンドウサイズに応じたコンパクトパス表記に変更

Version 2.5.1.0 2013/09/04

  1. GCCDevL.exe
    コンポーネントの更新に伴う再構築
    保存ボタン活性・非活性の判定を修正
    コンパイルオプション内の記述を変更すると落ちるバグ修正
  2. STERM.exe
    コンパイラ・コンポーネントの更新に伴う再構築
    64bitネイティブ対応
    COMポート開閉時にDTRを制御(DSRは使用せず)
    新ターゲット向けの転送スクリプト追加及び修正
  3. OpenOCD
    0.8.0-dev-00391-gf4943ac適用
  4. GCC
    最新SH GCC適用
    最新RX GCC適用
    最新AVR GCC適用
  5. デバイスドライバ
    Atmel SAMシリーズ及びST32Fシリーズ向けUSB CDCエミュレーションドライバのまっとうな自動インストール対応
  6. SAM7S/Xターゲットファイル
    アセンブラによるスタートアップコードでの初期化処理を減らし、極力C言語で記述したコードに変更
    UDP(USB Device Port)ライブラリのCDCエミュレーションで、ホストによるポートの開閉を判断するのにDTRを使用する様に変更
  7. SAM3Sターゲットファイル
    UDP(USB Device Port)ライブラリのCDCエミュレーションで、ホストによるポートの開閉を判断するのにDTRを使用する様に変更
  8. UD3ターゲットファイル
    UD3.5サポート追加
    UDP(USB Device Port)ライブラリのCDCエミュレーションで、ホストによるポートの開閉を判断するのにDTRを使用する様に変更
  9. STM32F373ターゲットファイル
    新規追加
  10. その他各種ターゲットファイル
    GCC更新に伴うライブラリ再構築
    微修正等

Version 2.5.0.0 2012/12/19

  1. GCCDevL.exe
    コンポーネントの更新に伴う再構築
    諸設定ファイルの保存場所をユーザプロファイルに変更(ユーザ毎に設定を保存)
    エディタが言語毎に異なるプロファイルを保存していたものを旧来の方式に戻す(追加の色分け等が使用可)
    一部の環境で外部ツールのアイコンがおかしくなるのを修正
  2. STERM.exe
    コンポーネントの更新に伴う再構築
    諸設定ファイルの保存場所をユーザプロファイルに変更(ユーザ毎に設定を保存)
  3. FW.exe/BTFZTAT.dll
    コンポーネントの更新に伴う再構築
    諸設定ファイルの保存場所をユーザプロファイルに変更(ユーザ毎に設定を保存)
    RX62Nシリーズ対応
  4. OpenOCD
    0.7.0-dev-00775-g08ddb19適用
  5. GCC
    最新H8 GCC適用
    最新SH GCC適用
    最新RX GCC適用
    最新ARM GCC適用 (none-eabiに変更)
    最新AVR GCC適用
    最新x86/x64 GCC適用
  6. RX62Nターゲットファイル (ノンサポート)
    新規追加
    コンソールAPIのみのサポート
  7. STM32F2ターゲットファイル (ノンサポート)
    新規追加
  8. STM32F2_TOPPERSライブラリ (ノンサポート)
    新規追加
  9. 全AVRターゲットファイル
    コンパイラのバージョンアップに伴う再構築
  10. SH7045/SH7047/SH7145/SH7125ターゲットファイル
    コンパイラのバージョンアップに伴う再構築
    SetSRRegマクロのバグ修正
  11. SAM7S/Xターゲットファイル
    コンパイラのバージョンアップに伴う再構築
    コンソールAPIのボーレート設定誤差を縮小
  12. SAM7S TOPPERSライブラリ
    コンパイラのバージョンアップに伴う再構築
  13. UD3ターゲットファイル
    コンパイラのバージョンアップに伴う再構築
  14. FREEDOM IIIターゲットファイル
    コンパイラのバージョンアップに伴う再構築
    MXシリーズに対応
    KONDO KRSシリーズ(ICS3.0/3.5)に対応
    FUTABA RSシリーズに対応

Version 2.4.0.13r4 2011/08/08

  1. UD3ターゲットファイル
    設定ファイルが狂っていたのを修正
    DynamixelホストAPIをFREEDOM IIIのそれと合わせる
  2. FREEDOM IIIターゲットファイル
    Rev.E092Cに対応

Version 2.4.0.13r3 2011/08/03
重篤なバグがあるため使用停止

  1. UD3ターゲットファイル
    GPIOの初期化パラメータ追加
    コンパイルオプション修正

Version 2.4.0.13r2 2011/08/02

  1. インストーラ
    スタートメニューにツールのショートカットが作られない場合があるのを解消
  2. SAM7S/X関連ターゲットファイル
    UDPライブラリ更新
  3. FREEDOM IIIターゲットファイル
    UDPライブラリ更新に伴う修正
    一部APIでセマフォがロックしてしまう条件を解消
    fd_MMSD_ReadHomePositionが常時trueを返すのを修正
    レディーキューの強制自動回転をデフォルトでEnableに
  4. UD3ターゲットファイル
    UDPライブラリ
Page Top

インストール anchor.png

何も読まずに「OK」「次へ」「はい」を選択してフルインストールすると、ハードディスクを占有する容量が2Gバイトを超える事があります。
インストールする際はダイアログボックスに表示されるメッセージを良く読み、必要なコンポーネントだけを選択してから「次へ」ボタンを押すべきです。

インストールする言語を選びます。使用するツールのメニュー等の表示言語もここで選ぶ事になります。

gdl_inst_step1.png

この画面でのみパッケージのバージョンが表示されます。

gdl_inst_step2.png

GPL Ver.2です。本インストールパッケージに含まれるGNUツール及びターゲット毎のライブラリはGPL Ver.2の制約を受けるものとします。
何を言わんとしているか分からない時はこちらを参考にし、熟慮の上同意するか否かを決定します。

gdl_inst_step3.png

こちらにはインストールパッケージに含まれるファイルの情報が表示されます。

gdl_inst_step4.png

インストールするルートフォルダを指定します。変更した場合は今後様々な所で弊害が発生しますので、どうなるか予測がつかない場合は変更しない事です。

gdl_inst_step5.png

ここがインストーラの肝です。通常「フルインストール」を選択する意味は皆無です。なぜなら、H8マイコンでしか使うつもりが無いのに、H8やARMのコンパイラまでインストールされてしまいますし、設定リストにも使用しないターゲットの名称が列挙されてしまうからです。おまけに、インストール後のHDDの占有容量が1Gバイトにもなります。

gdl_inst_step6.png

上段のドロップダウンリストから適宜対象とするターゲットを選択すれば、下段のコンポーネントは自動選択されます。不用意にコンポーネントを手動で変更すると、不必要なファイルがインストールされたり、必要不可欠なファイルが足りない状態になりますので、訳が分からない内はリストから選ぶだけに留めておきましょう。

gdl_inst_step6_dropdownlist.png

次へ、

gdl_inst_step7.png

チェックされているとインストール後にGCC Developer Liteのショートカットがデスクトップに作られます。余計なお世話ならチェックを外します。

gdl_inst_step8.png

これでインストールの準備が整いました。最後に「インストール」ボタンを押して、HDDへのコピー作業を開始します。なお、これ以後の処理にはかなりのメモリを必要とします。とてつもなくコピー作業が遅い場合は必要とするメモリが少ない可能性があり、場合によってはインストールが正常に完了しない可能性もあります。

gdl_inst_step9.png

なお、一部のターゲットが選択されていると、インストールの最終段階でWindows用のデバイスドライバのインストールが合わせて行われます。同梱されるデバイスドライバはOSによって制約があるため、GCC Developer Liteをインストールする前にOS自体の準備をしておく必要があります。ここではWindows 8にインストールする際の手順を記載しておきます。本操作はデバイスドライバをインストールする際に1度だけ行えば結構です。

  1. コマンドプロンプトを管理者権限で起動。
  2. bcdeditコマンドにて次回起動時の設定変更を行った後にWindowsを再起動。
    bcdedit /set {current} onetimeadvancedoptions on
    shutdown /r /t 0
    win8_bcdedit.png
  3. 再起動後に表示されるスタートアップ設定画面にて、「7) ドライバー署名の強制を無効にする」を選択して起動。
    win8_startup.png
  4. ログイン後GCC Developer Liteのインストールを開始し、デバイスドライバのインストール時にWindowsセキュリティのダイアログボックスが表示されたら「このドライバーソフトウェアをインストールします(I)」を選択。
    win8_securitymessage.png
  5. デバイスドライバのインストールが正常に行われたメッセージが表示されたら終了。
Page Top

使い方 anchor.png

Page Top

GCC Developer Liteの使い方 anchor.png

Page Top

エディタ anchor.png

メモ帳よりは高機能な一般的なテキストエディタです。独特な操作はあまり無いはずです。
お節介にも、単語等の色分け、キーボードマクロ、入力補完といった機能を持っています。

Page Top
ファイル anchor.png

エディタで開けるファイルには特に制限はありませんが、拡張子が.cや.cppといった何らかの言語で記述されたプログラムのソースファイルを対象とします。
後述のコンパイル作業を一度でも行ったファイルを再度開くと、次のようなメッセージが開きます。

loadbtp_new.png

普通はこのまま「OK」をクリックします。一度コンパイルを行うと、開いているソースファイルと同じフォルダに、拡張子が~.btpというファイルが出来上がります。btpファイルが存在しているソースファイルを開くとこのメッセージが表示され、前回コンパイルした時の条件や設定を再現します。これは異なるターゲットを1台のPCで扱っている際に、ファイルを開くたびにコンパイルオプションを変更するのが面倒なために設けられた機能です。
また、GCC Developer Liteをバージョンアップすると、それ以前にコンパイルしたファイルを開くと「!」付きでメッセージが表示される場合があります。

loadbtp_old.png

つまり、親切にも古い環境でコンパイルされているファイルを開いた事を知らせており、バージョンが変わった事によりコンパイラオプションでは問題が生じる可能性を示唆しています。このメッセージを見かけたら、素直にコンパイラオプションから設定リストを選択し直してコンパイルしましょう。

Page Top
編集 anchor.png

玄人的な使い方をしない限り、編集操作は本ツールにオリジナルな物ではありません。選択、コピー、切り取り、削除、貼り付け、といった基本操作はもちろん、ショートカットキーも普通に使える筈です。
ちょっと特殊なのはインデントでしょうか。複数行にまたがって行頭にスペースを挿入したり削除すると言った機能です。これはあまりにも高い自由度でソースプログラムを記述されてしまった際に、インデントを入れる事を教えるために追加されています。

Page Top
キーボードマクロ anchor.png

単純なキー操作の繰り返しを強いられる時に、そのキー操作を記録しておいて、必要なときにそのキー操作を再生する機能です。ダイアログボックスが表示される様なキー操作は対象となりません。

Page Top
入力補完 anchor.png

ちょっとした入力ミスでもコンパイルエラーとなるのは仕方ない事。でも、人間が単語を一字一句間違えずに入力出来る訳もなく、ヒューマンエラーはつきものです。
そういった際に、よく使われる単語については予め設定されているキーワードから選択したり、ソースプログラムから抽出して貼り付けできるといった機能が入力補完といわれます。 本ツールにも簡易的ながら備わっており、入力中に[CTRL]+[SPACE]キーを押すとリストが表示されます。カーソルキーで選択してエンターキーで貼り付ける事ができます。また、リストを表示されている間にある程度の文字を順次入力してゆくと、表示されているリストを絞る事もできます。さらに、既に文字が入力されている場所で[CTRL]+[SPACE]を押せば、カーソル位置の単語を検索してリストを絞る事もできます。

gdl_autocomplete.png

オマケ程度なので過度な期待は禁物なのと、つまらない所でCPUパワーを食います。

Page Top
ウィンドウ anchor.png

シングルソースの弊害として、プログラムソースが長大になると参照元と先で行ったり来たりする羽目になる事があります。とりあえず2画面までではありますが、編集中のソースを分割して表示する事ができます。

dualwindow.png

両ウィンドウとも同じソースが表示され、片方で編集したものはもう片方にも反映されますのでどちらで何を使用が結果は同じです。片方で関数や変数の宣言部分を表示し、もう片方でそれらを参照しならがコーディングするというスタイルを想定しています。

Page Top
参照 anchor.png

実はシングルソースと言いながら、内部的には複数ソースの編集とリンク機能を持っています。
その片鱗だけ垣間見る事ができるのが参照機能です。C言語等ではヘッダファイルといった形で別のファイルを参照する事が頻繁に行われ、そのファイルの中身を知らない限り自分のプログラムで参照する事はできません。そういった時に、その参照しているファイル名の場所にマウスカーソルを合わせ「CTRL」キー+マウス左ボタンの「ダブルクリック」すると、別のウィンドウが開いてそのファイルを参照してくれます。

multiwindow.png

ソース中のコメント等にURL等を記述していた場合は、そのURL部分にマウスカーソルを合わせ「CTRL」+「ダブルクリック」すると、参照ウィンドウでそのサイトを閲覧する事も出来ます。何かのデータシートがpdfで提供されていたら、ソース中にブックマーク代わりにURL書いておいていつでも参照できるようにすると便利かもしれません。

Page Top
エディタ設定 anchor.png

フォントが小さいので見にくいとか青地はイヤだという場合に好き勝手に変更できます。その他にも色々設定ができますが、複雑なので割愛します。

editer_prop.png
Page Top

コンパイルオプション anchor.png

GCC Developer Liteの「GCC」に関係するところはココだけです。最近はGCCのみという訳では無くなりつつあるため、、旧来「GCCオプション」と称していたものを「コンパイルオプション」に改名しています。
一応説明しておきますが、細かいことは抜きにこのダイアログボックス上端にある「設定リスト」だけ見れば良く、タブで分かれた細かい設定は理解に及んでから触れるべきです。

compiler_opt_targetlist.png
Page Top
「外部コンパイル機能を使用」にチェックが入っていない場合 anchor.png
  • コンパイラ
    compiler0_opt_gcc.png
    GNUTOOLの場所、及び使用するツールの接頭語、最適化レベルを設定します。
  • スタートアップルーチン
    compiler0_opt_boot.png
    C言語のmainが実行される前に実行されるプログラムを指定します。
  • リンカ
    compiler0_opt_lnk.png
    ターゲットのメモリの都合に合わせたリンカスクリプトファイル、コンパイル時に一緒にくっつけるライブラリを指定します。
  • デバッグ
    compiler0_opt_dbg.png
    コンパイル時のデバッグレベル、gnu debuggerないしrunを実行する際に必要な情報を設定します。
  • 各種フォルダ
    compiler0_opt_path.png
    ターゲットファイルの場所を設定します。ヘッダファイルやライブラリを探させる際のパスです。
  • etc...
    compiler0_opt_etc.png
    etc...と書いてはありますが、最も重要な情報が記述されています。コンパイラを実行させる際に一緒に記述されるオプションの記述、コンパイル後のファイル変換の方法を選択します。
  • 外部ツール連動
    compiler0_opt_exttool.png
    コンパイルとファイル変換が成功しただけでは役不足なので、その後の処理を自動的に行わせる事ができます。起動するツールと起動時に指定するオプション、起動方法を設定します。
Page Top
「外部コンパイル機能を使用」にチェックが入っている場合 anchor.png
  • コンパイラ
  • 各種フォルダ
  • デバッガ
  • 外部ツール連動
Page Top

コンパイル anchor.png

命名がちょとややこしいだけですが、いずれも内部で行われる作業は似たような物です。
ソースプログラムは単なるテキストファイルに過ぎず、一般にそのままでは実行できる物ではありません。何かしらのツールを仲介した後に、マイコン等で実行出来るファイルに変換されます。その作業をここではコンパイルと称しています。
また、以後の作業に応じて複数のコンパイル方法が選択出来ます。これらはコンパイラオプションに依存しますので、全てのターゲットで同様の機能が提供される物ではありません。

Page Top
ビルド anchor.png

大抵はビルドで事が足ります。

  1. 指定されたコンパイラでソースプログラムをコンパイル
  2. ターゲットに応じたフォーマット変換
  3. 必要に応じて書き込みや転送ツールを起動

といった処理を行います。

Page Top
デバッグビルド anchor.png

こちらビルドと大差ありませんが、gnuのデバッガでデバッグする際の情報を付加します。

  1. 指定されたコンパイラでソースプログラムをコンパイル
  2. ターゲットに応じたフォーマット変換

デバッグ情報付きのファイルを作成するだけで終了としますので、この後必要に応じてデバッガ等で開くなり何なりします。

Page Top
デバッグビルド&デバッガで開く anchor.png

GNUTOOLにデバッガ(gdbないしinsight)が含まれている場合に使用できます。 デバッグビルドを行った後、gnuのデバッガが使用できる環境であればデバッガを起動出来ます。

  1. 指定されたコンパイラでソースプログラムをコンパイル
  2. ターゲットに応じたフォーマット変換
  3. gdb(insight)を起動

デバッグビルドされたファイルを指定されたデバッガで開いてデバッグを開始します。
ターゲットによってデバッガを起動する際に指定されるファイルが異なるので一概にこうなるとは言えないのですが、

  1. gdbがOpenOCDないし何らかのデバッガに接続
  2. コンパイルされたファイルをターゲットのフラッシュROMないしRAMに書き込む
  3. main文にブレークポイントを設定
  4. プログラムを実行し、main文の入り口でプログラム停止

といったフローでデバッガが実行されます。

Page Top
ビルド&エミュレータで開く anchor.png

GNUTOOLにエミュレータ(run)が含まれている場合に使用できます。

  1. 指定されたコンパイラでソースプログラムをコンパイル
  2. runを起動し、コンパイルされたプログラムをPC上で実行

エミュレーションできるのはCPUのコアだけですので、LEDが点灯したりブザーが鳴ったりスイッチが押せる訳ではありません。作成したハードウェアに依存しないサブルーチン等が、予想した動きをするかどうかをテストするといった目的に使えるかもしれません。ターゲットによってはprintf等の関数を使用すると、コンソールに文字を表示させる事はできる様です。

Page Top

ツールバー anchor.png

メニューの直下にあるのはツールバーと呼ばれ、メニューをドロップダウンするまでもなく、ファイルを開いたり保存したり、コピペや検索をさせるためのボタンが配置されています。
アイコンだけで判断出来るのであれば、機能を呼び出すまでの操作がボタン1つで済むので作業効率が上がるはずです。

gdl_toolbar.png
Page Top

外部ツールの設定 anchor.png

テキストエディタでプログラムを編集していれば全ての作業が完了する訳ではありません。ここで紹介するツール以外にも自分で用意したツールを簡単に呼び出したいといった事は良くあります。

gdl_exttool.png

インストールコンポーネントにもよりますが、インストール直後はFLASH WRITERSIMPLE TERM等が既に登録されています。必要に応じて自分の好みのツールを最大10個まで追加できます。

Page Top

拡張子の登録 anchor.png

ここでの設定はWindows7よりも前のバージョンではあまり大きな意味は持たないのですが、いくつかのファイルの拡張子とGCC Developer Liteを関連付けできます。

assosiation_fileext.png

チェックされた拡張子を持つファイルをエクスプローラー等で右クリックすると、「プログラムから開く」のツリーにGCC Developer Liteが登録されているはずです。ダブルクリックしても勝手にGCC Developer Liteで開く様な横柄な事はしません。
また、Windows7においては拡張子の関連付けがなされていないとジャンプリストに履歴が作成されず、ジャンプリストに履歴として表示されるファイルがあったとしても開けなくなります。

Page Top

その他 anchor.png

新し好きであればもう使っているとは思いますが、Windows7は色々初心者には使いやすくなっているのではと思います。マウスやタッチパネルといった入力装置によって、直感的な操作を部分を訴求しようという部分ですね。Vistaを特に支障なく使っているのであればWindows7になったからと言ってその違いは微々たる物かもしれません。
Windows7(x86でもx64でも大丈夫)にインストールしても使えますし、Windows7上で動いている事が検出されると多少ならではといった機能が追加されるようになっています。はっきり言ってどうでも良い機能ですが、もしかしたら必須と考えるのが趨勢になるかもしれませんので、標準的なUIとして機能するようにしてあります。
ジャンプリストは主に今まで開いたり保存したファイルの履歴を表示します。GCC Developer Liteのファイルメニューにも履歴が表示されていますが、それとほぼ同じです。

win7_jumplist.png

従来からGCC Develoer Liteは同時に2つ以上起動出来ないという意図的な制約を設けていますが、このジャンプリストを使ってファイルを開こうとするとこの制約が邪魔でした。最新版ではGCC Developer Liteが起動している状態で、後から何らかの方法でファイルを別途開こうとした場合は、起動済みのGCC Developer Liteがその役割を果たすようになっています。つまり「このプログラムは複数起動できません。」とすげなく断られる事は無くなります。
ちなみに二重起動を制限しているのは、むかぁし同じソースを複数のGCC Developer Liteで開いて編集し、整合性が取れない事を理由に文句つけられたからだそうです。

もう一つ、タスクバーのアイコン上にマウスをホバーするとウィンドウのサムネイルが表示されますが、参照ウィンドウ等を開いているとそれらもサムネイルの一覧として配置されます。

Page Top

FLASH WRITERの使い方 anchor.png

Page Top

詳細な設定変更 anchor.png

FLASH WRITERのウィンドウは小さく出来ています。小さい状態では何らかのファイル名を入力する欄と「かきこみ」ボタンしかなく、それ以外の諸々の設定は一切触れなくなっています。
触らなくて良い理屈は全く無いので、どうにかして設定を変更しなくてはなりません。

fw_prop.png

そう、メニューバー左上のアイコンをクリックしてメニューを表示させ、その中からFW Propertyをクリックするだけです。すると今まで隠れて見えなかった諸設定がズルズルと見えて来ます。
他にもボタンやテキストボックスが無い所をダブルクリックしても同様に機能します。

Page Top

設定ないしボタン類 anchor.png

Page Top
CPU TYPE anchor.png

CPU Typeがそれ以外設定全てに影響します。大抵の場合においては書き込みたいターゲットの名称になっています。

  • 3048
    Renesas F-ZTATベースでH8/3048Fを対象
    Portは使用するCOMポートを選択
    Baudrateは使用するCOMポートのボーレートを選択(19200bps以下を推奨)
    TimeOutはネゴシエーション成功までの繰り返し時間となる
    Write Script Fileは使用不可
  • 3664
    Renesas F-ZTATベースでH8 Tinyシリーズ全般 H8/3664F, H8/3694F, H8/3687Fを対象
    Portは使用するCOMポートを選択
    Baudrateは使用するCOMポートのボーレートを選択(19200bps以下を推奨)
    TimeOutはネゴシエーション成功までの繰り返し時間となる
    Write Script Fileは使用不可
  • 7045
    Renesas F-ZTATベースでSH7044, SH7045シリーズ全般 SH7044F, SH7045F, SH7144F, SH7145Fを対象
    Portは使用するCOMポートを選択
    Baudrateは使用するCOMポートのボーレートを選択(19200bps以下を推奨)
    TimeOutはネゴシエーション成功までの繰り返し時間となる
    Write Script Fileは使用不可
  • RX62N
    RX62Nシリーズ全般を対象
    Portは使用するCOMポートを選択
    Baudrateは使用するCOMポートのボーレートを選択
    Clockはクロック源の周波数を指定
    TimeOutはネゴシエーション成功までの繰り返し時間となる
    Write Script Fileは使用不可
  • AVR:m168
    Atmel stk500互換プロトコルでavrdudeによるサポート ATmega168を対象
    Portは使用するCOMポートを選択
    Baudrateは使用するCOMポートのボーレートを選択(大抵は115200bps)
    TimeOutは不使用
    Write Script Fileは使用不可
  • AVR:m32
    Atmel stk500互換プロトコルでavrdudeによるサポート ATmega32を対象
    Portは使用するCOMポートを選択
    Baudrateは使用するCOMポートのボーレートを選択(大抵は115200bps)
    TimeOutは不使用
    Write Script Fileは使用不可
  • AVR:m128
    Atmel stk500互換プロトコルでavrdudeによるサポート ATmega128を対象
    Portは使用するCOMポートを選択
    Baudrateは使用するCOMポートのボーレートを選択(大抵は115200bps)
    TimeOutは不使用
    Write Script Fileは使用不可
  • AVR:c128
    Atmel stk500互換プロトコルでavrdudeによるサポート AT90CAN128を対象
    Portは使用するCOMポートを選択
    Baudrateは使用するCOMポートのボーレートを選択(大抵は115200bps)
    TimeOutは不使用
    Write Script Fileは使用不可
  • SAM-BA
    Atmel AT91 In-system Programmer>のDLLを使用
    Portは使用するCOMポート,USBデバイス,CAN,J-LINK等を選択
    Baudrateは不使用
    TimeOutは不使用
    Write Script Fileは使用不可
  • OpenOCD
    OpenOCDでサポートするターゲット全般
    PortはOpenOCD(Telnet)を選択
    BaudrateはOpenOCDのtelnetポートへの接続タイムアウト時間
    TimeOutは不使用
    Write Script FileはOpenOCDで実行させるコマンドが記述されたスクリプトファイルを指定
  :idea:AVRシリーズにおいてはstk500互換プロトコルのブートローダも対象となりますが、V1.0以降の弊社オリジナルブートローダが搭載されたマイコンボードは対象ではありません。今後はFLASH WRITERではなくSIMPLE TERMを使う事になります。

Page Top
PORT anchor.png

大抵の場合PCに装備されるCOMポートが列挙されますので、使用するCOMポートを選択します。CPU TypeによってCOMポート以外のリストが表示される場合もあります。
PCに無いポートはリストに現れませんが、接続すれば即時リストに現れて選択出来るようになります。

Page Top
BaudRate[bps] anchor.png

使用するCOMポートのボーレートを設定します。大きければ良いという訳でもありません。

Page Top
Clock[MHz] anchor.png

書き込む対象に供給されているクロック周波数を設定します。本設定を使用するCPU TYPEでは必ず一致させなくてはなりません。

Page Top
TimeOut[ms] anchor.png

繰り返し実行ないしタイムアウト時間を設定します。

Page Top
Find HyperTerminal anchor.png

使い道がないのと、うまく動かないケースが大半なので説明なし。

Page Top
Write Script File anchor.png

OpenOCDで対象とするターゲットに応じて設定します。
FLASH WRITERと同じフォルダに置かれる.scriptファイルが列挙されますので、もし自前のターゲットをサポートさせたいのであればこのフォルダに作ればリストに載ります。

Page Top
OK anchor.png

大きくしたウィンドウを小さくします。

Page Top
Execute anchor.png

諸設定に依存する処理を開始します。

  1. 指定されたファイルの存在確認
  2. CPU TYPEに応じたポートの内部的な再設定
  3. ポートの検索
  4. ポートの使用可能かの判定と、他のアプリケーション(SIMPLE TERMの事)へのポートの譲り渡し要求
  5. CPU TYPEに応じた書き込み処理等の実行
  6. 処理の正否の判定
  7. 使用したポートの使用終了を他のアプリケーション(SIMPLE TERMね)に告知

どのプロセスにおいても問題があると全てエラーとします。処理中はCPU TYPEによって異なるウィンドウが表示され、進捗が確認できます。

Page Top

起動オプション anchor.png

Page Top

その他 anchor.png

Page Top

SIMPLE TERMの使い方 anchor.png

Page Top

ターミナルウィンドウ anchor.png

初期状態で真っ黒な部分の事です。ポートが開いている時にのみ接続先から送信されて来るデータが表示され、入力された文字は接続先に送信されます。
ブートローダ等では入力を促されるケースがありますが、その時SIMPLE TERM上で入力した文字がそのままターミナルウィンドウに表示されていると思うのは間違いです。SIMPLE TERM自身はデフォルトでは接続先から送信された情報しか表示しません。
では、入力した文字が表示されるのはなぜ?実は簡単な事で、入力した文字を相手が都度送り返しているからです。世の中には送り返してこない端末もある(それが普通)のですが、どうしても入力した文字も表示させたいのであればローカルエコーをONにします。

表示に関してはANSIっぽい動きをする様ですが、中途半端な実装による思った様な動きをしない事を恐れてできないフリをしている場合もあるらしいです。

Page Top

プロパティ anchor.png

SIMPLE TERMで扱うCOMポートの情報を設定します。

sterm_prop.png
  • Connect to
    使用するCOMポートを選択します。PCに無いポートはリストに現れませんし、追加接続すれば即時リストに現れて選択出来るようになります。
    しかし、いい加減COM1~COM10だけとか、COM1~COM255まで列挙して選択するといったアプリケーションは止めて欲しいですね。 :-?
    なお、TELNETについては言及しません。
  • Baudrate
    通信速度です。リストから選ぶも良し、使用するCOMポートが許容するのであれば数値を入力しても構いません。
  • Databits
    1文字のデータ幅を指定します。指定がなければ通常は8を選びます。
  • Stopbits
    ストップビット幅を指定します。指定がなければ通常は1を選びます。
  • Parity
    パリティの種類を選択します。指定がなければ通常はNonを選びます。
  • Flow Control
    フロー制御の種類を選択します。指定がなければ通常はNonを選びます。
  • Protocol
    ファイルを送受信する際に使用するプロトコルを選択します。
    XModem以外は・・・。

なお、一部の設定はポートが開いている状態であっても変更可能です。ポートを閉じなくてはボーレート等を変更できないのは、実はそういう作りになっているアプリケーションの都合だけだったという事です。

Page Top

ログ anchor.png

ターミナルウィンドウ上に表示される文字をファイルに保存し続ける機能です。
ターミナルウィンドウでは表示データが画面いっぱいになったり改行が行末に達すると、行頭の文字はスクロールアウトして見えなくなってしまいます。普通ならバックスクロールして以前の表示データを見る事ができるのでしょうが、どうやらあるにも関わらず見る事ができません。
そこで、ファイルに保存する事を提案して作ってもらいました。「ログファイル」がチェックされると保存するファイルを新規に作成し、「ログファイル」のチェックをOFFにするかSIMPLE TERMを終了するまで保存し続けます。

Page Top

ポートの開閉 anchor.png

プロパティで選択したCOMポートを独占使用するには開く操作を、使用を終えて他のアプリケーションで使えるように解放するには閉じる操作をします。
通常COMポートはアプリケーションから開かれると、同じCOMポートを別のアプリケーションで開く事が出来ません。しかしながらGCC Developer Liteに含まれるツールに限り、COMポートを譲り合う機能を提供します。

Page Top

FTDIチップ絡み anchor.png

ものぐさな作者は、ターゲットのリセットボタンに手を伸ばす事すら億劫な様です。FTDI社のFT232が乗った弊社マイコンボードとEVBに限りますが、SIMPLE TERMからリセットシグナルを発行できます。
ちょっと面倒な仕掛けでリセットさせているらしく、ポートが開いている時にSIMPLE TERMからリセットをかけると、ポートを閉じる→リセットLOW→しばし待つ→リセットHIGH→ポートを再度開く、といった動きになります。

Page Top

転送 anchor.png

プロパティのProtocolで選択した通信方式で接続先とファイルの送受信を行います。
全て試した訳ではありませんが、気のせいでなければXModem以外はちょっと微妙な気がしますが、マイコンボードのブートローダがサポートするプロトコルがXModemだけなので良しとします。

ちょっと異色なのは「スクリプト実行」で、目的はブートローダとのコミュニケーションを自動化する事にあります。

  • ターゲットへのリセット発行
  • ブートローダのコマンドモードへのエントリー
  • 諸々のキー操作の再現
  • 指定された文字列の検出
  • 予め指定されたファイルの転送

といったスクリプトを組み合わせて、マイコンへのプログラム転送にかかる一連の操作を自動的に実行します。SIMPLE TERMの単体起動では用をなさず、GCC Developer LiteのコンパイルオプションでSIMPLE TERMと連動する時に有効となります。

なお、マイコンボードによって異なっていたブートローダのコマンドモードへの遷移方法が大体統一された事もあり、最新バージョンでは出来るだけ簡単にターゲットをコマンドモードに遷移させる機能が盛り込まれています。単にスクリプト実行に「!」マークを送りつける機能が追加されただけなのですが、手が両手がふさがる事が無くなるので結構便利です。
これにより従来は、

  1. ターミナルウィンドウ上で'!'([SHIFT]+[1])キーを押しっぱなしにする。
  2. ターゲットをリブート
  3. ブートローダの起動メッセージが表示されたら'1'キーを離す。
  4. メニューから「スクリプト実行」をクリックしてプログラムのダウンロード

といった訳の分からない手順の操作を強いられていたものが、

  1. メニューから「スクリプト実行」をクリック
  2. ターゲットをリブート

という2つの操作で終わる様になります。説明も簡単ですし、PCのキーリピートのタイミングに依存する不安定要素が軽減されてヨサゲです。

STERM_resetwait.png
Page Top

起動オプション anchor.png

Page Top

その他 anchor.png

USBでCOMポートを増設している場合、USBケーブルを抜くと結構困った状態になります。一般にCOMポートを扱うプログラムは、使用しているポートが突然無くなると思っていないものです。Windows自体はポートが無くなった事を知っているにもかかわらず、プログラム側は不慮の事態に備えていないものですから、まだ通信できると思い込んでいる場合があるのです。それを扱う人間も同様に、ポートが無いのにも関わらずプログラムが無いポートを開いたままなので、ついつい操作してしまう。実に悪循環です。
ポートが使えないなら使えないとはっきり意志を示そうと言う事で、SIMPLE TERMではポートの活性状態を常時モニタして、抜かれようが挿されようが、なんとか再起動しないでも済むように努力します。大体以下の様な挙動をします。

  • 開いているCOMポートが無くなるとポートを閉じる
  • 開いていたCOMポートが無くなり自ら自動的に閉じた後、再度そのポートが活性化したら自動的に開く

つまり、デバイスの状態に応じてポートの開閉操作を人間が行わなくても済む様に努力してくれます。時々ミスる事もありますが、その時は再起動して下さい。

また、COMポートは大抵の場合において一つのプログラムが開いたら、他のプログラムからは同じCOMポートは開けません。これも結構な頻度で悩ましてくれるネタです。SIMPLE TERMの場合は、いくつか起動しており全て同じCOMポートを使用している時に限り、お互いにポートを譲り合う機能を持っています。

Page Top

FAQ anchor.png

  • Q:メッセージ等が何も記載されない状態で一部のダイアログボックスが表示される
    A:管理権限でログインしていないか、Windows Vista以降であればUACをOFFにして使う。
  • Q:昔のバージョンでコンパイルしたソースがバージョンアップしたらコンパイルできない
    A:ライブラリが変わってコンパイルできないという事でなければ、コンパイルオプションを再設定する。
  • Q:H8/3048FやSH7047Fで使えない
    A:廃盤やサポート終了製品向けのターゲットファイルはバージョンアップ時に順次削除されるので、サポートしていたバージョンを使う事。
  • Q:旧バージョンの提供をしてほしい
    A:常時最新のツール及び販売中の製品向けにアップデートされるツールとしての位置付けのため、原則として廃盤およびサポートを終了した製品向けの提供は行わない。
Page Top

転載・転用・その他 anchor.png

  • パブリックな用途での二次転載は許諾を得て下さい。
  • 転載を目的としてホームページ等で公開する場合は弊社サーバへのリンクでは無く、貴サーバにコピーを置いた上で公開して下さい。
  • 基本的に旧バージョンの転載は認めていません。
  • 個人のホームページ等でリンクする場合は本wikiとし、インストールファイルへの直リンクは許容しません。
  • 転載ないし転用されたツールの二次的な問い合わせは一切受けません。
  • 現時点で弊社で販売しているマイコンボードないし製品を除くターゲットのサポートは一切受けません。有償サポートを希望される場合は技術サポートへ相談下さい。
  • 公開バージョンに含まれるターゲット以外のサポートも行っています(有償)。

トップ   差分 リロード印刷に適した表示   全ページ一覧 単語検索 最新ページの一覧   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom
最終更新: 2014-10-10 (金) 22:41:36 (JST) (869d)