TITLE:GCC Developer Liteって? #norelated #contents *はじめに [#e3c09230] **ちょっとだけ [#f0949ad4] 20年程昔になりますが、誰もが知る[[秋月電子さん:https://akizukidenshi.com]]からAKI-H8なるマイコンボードが登場しました。周辺機能やメモリが1つのチップに収まっている事と、内蔵のフラッシュROMの書き換えが12V電源とシリアルポートさえあれば出来るという事もあって徐々に流行り始めたのです。当初はアセンブラのみが提供され、しばらくしてから機能制限付きのCコンパイラが販売されました。そのCコンパイラでも十分でしたが、ある程度使えると分かった途端に制限がネックとなって来たのです。~ 程なくして日立製作所の海外のサイトにgnuprotoolkitが公開され、お遊びでgccを使ってコーディングする様になり、とりあえず実現したい機能をCで記述できる様になってきます。しかしながら、ちょっとだけかじってみようと思ってもまだまだ敷居が高い状態が思いの外長く続くのです。~ 次第に我らにも面倒が降りかかるようになってきた事もあり、とりあえずほとんど変更の必要がないものには蓋をして、頻繁に変更する部分だけを表に見せソースをコンパイルだけのツールをこさえました。公になっているツールではありませんが、それが原型となって今のGCC Developer Liteへと続いていると言った所です。~ 相も変わらずLiteがついている事へのツッコミは無しとして、とりあえず目新しいチップを「ひとまず」動かす事の面倒さを軽減する事が第一の目的ですので、それ以外の機能拡張は面倒な手順をボタン一つで何とかしたいという程度の考えで追加されていると考えてください。「学習」とか「教育」といった崇高な目的からではなく、全て「横着」や「タダ」、「とりあえず」さらには「無理矢理」から派生しているのです。(以上作者談)~ とはいうものの現在の所かなりのユーザに使っていただいており、玄人の方はわざわざ足枷の様な環境を好んで使う事はしませんので、ひとまずの大義名分は初めて使う方の「応援グッズ」という事にしています。~ なお、このドキュメントを全て読み進める必要は全くありませんし、その意味もないほどツール自体の使い方は単純です。通常は各ターゲット毎に異なる開発フローだけわかれば良いので、先に各製品のドキュメントを参照する事をお勧めします。 *使用する前に [#w94489bf] 弊社マイコンボード製品にとって必須というツールではありません。商用の開発ツールを使用する事も選択肢の内です。~ また、弊社の製品を対象として使用する場合にのみ無償サポートが受けられます。 **対応するOS [#x09d349e] 最新版ではできるだけ最新のOSに対応しますが、時折制限がありますので確認が必要です。~ 現在の所以下のOSの64bit版に対応します。 -Windows 7 -Windows 8/8.1 -Windows 10 -Windows 11 また、本ドキュメントでは64bit版Windows11を前提として記述するため、その他のバージョンや32bit版ではインストールフォルダが一部異なります。 **パッケージに含まれるコンポーネント [#j86fbc39] インストールする前にインストールされるコンポーネントを確認しておきます。~ Basal Packと各種ターゲットPackをインストールすると、概ね以下のフォルダツリーが作成されます。~ #ref(gdl_new_tree.png,100%) - [[GCC Developer Lite>#GCCDevL]] "C:\Program Files (x86)\BestTech\GCC Developer Lite" 配下 ~メモ帳で全角まみれのソースに気づかずにエラーが解消しない事に業を煮やして、秀丸の様に色々表示をカスタマイズできるネタを仕込んだテキストエディタが欲しいといったとこで生まれました。他のツールを起動したりコンパイルするといった機能はオマケ以下だったものが、対応するマイコンを増やしていくうちにいつしか多種多様になってしまいました。~ ちなみに、デフォルトでテキストエディタの背景が青いのは作者の悪趣味によるものなので、好きな色に変更して使ってくださいとの事です。~ #ref(GDL.png,50%) - [[FLASH WRITER>#FW]] "C:\Program Files (x86)\BestTech\GCC Developer Lite" 配下 ~H8/3048FマイコンのフラッシュROMへユーザ任意のデータを書き込むツールでしたが、H8 TinyやSH、ARMやら何やらと言っている間に「FLASH」という表現は曖昧になってきています。~ また、シリアルポートがPCとターゲット間の唯一のI/Fだったものが、DLLを仲介したりTELNETやFTPを経由したりとこちらも多様になっています。 #ref(FW.png,80%) - [[SIMPLE TERM>#STERM]] "C:\Program Files (x86)\BestTech\GCC Developer Lite" 配下 ~シリアルターミナルクライアントです。元来Windowsにオマケでついていたハイパーターミナルを使っていたのですが、初めて起動する際にいちいち市外局番を入力させられるのがイヤで用意したそうです。~ 今では当然の様に[[TeraTerm:https://ja.osdn.net/projects/ttssh2/]]を使うのでしょうが、COMポートの動的検出やポートの再接続といった操作を横着する機能はSIMPLE TERMにしかありません。~ なお、数百kbpsを超える高速なボーレートで通信するとすぐに露呈しますが、描画スピードに難があります。今後改善される事は無いそうです。~ #ref(sterm.png,70%) -[[FLASHSimple>#FLASHSimple]] "C:\Program Files (x86)\BestTech\FLASHSimple" 配下 ~[[FLASH WRITER>#FW]]では対応し切れていないルネサスのチップを採用した際に、hmseで提供されていた物を少し改造して同梱し始めたものです。既にメンテは放棄されていますのでオマケ程度にと思ってください。~ ちなみに[[FLASH WRITER>#FW]]よりも速いボーレートで書き込めますので、大きいファイルを転送する時には重宝します。 -[[OpenOCD]] "C:\Program Files (x86)\BestTech\openOCD" 配下 ~基本的に[[TINY JTAG-ICE2]]用として更新しているファイルと同等ですが、そちらの更新頻度が激しいためにGCC Developer Liteのインストーラに収められているバージョンはどうしても古くなります。ですが、できるだけ安定して使用できるバージョンを適用する様にしていますので、単体で[[OpenOCD]]として公開しているバージョンに置き換える事は推奨できません。入れ替えは新し物好きか、重要なパッチが当たっている時だけにしましょう。 - 各GCC "C:\ProgramData\BestTech\GCC Developer Lite\GCC" 配下 ~アセンブラ、リンカ、Cコンパイラ等を含みます。現在含まれるツールチェインは以下の通りです。 ~'''ARM''' (ARMコアシリーズ全般)~ '''AVR''' (AVRコアシリーズ全般 AVR Toolchainそのもの)~ '''SH''' (SHコアシリーズ全般 gnutoolそのもの)~ '''H8''' (H8コアシリーズ全般 gnutoolそのもの)~ '''x86''' (Windows 32bit版用 mingwそのもの)~ '''x64''' (Windows 64bit版用 mingwそのもの)~ ~適当なフォルダにまとめ、フォルダごと移動しても単体で動かせる状態で構成されてさえいれば、Windows上で動くgnuのコンパイラ全てに対応できます。よって、ユーザ自身で用意したコンパイラを含めたり、自前で構築したgccを適用させることも何ら難しくありません。 - ターゲットファイル "C:\ProgramData\BestTech\GCC Developer Lite\TARGET" 配下 ~色々入っているのでごった煮と呼んでいます。対応するハードウェアが増えればGNUTOOLS同様それらに対応するファイルが必要(不要な時もあります)です。~ 当初からマイコンのシリアルポートを使う事としている都合、ほとんどのターゲットが持つシリアルポートをputcやgetcといった低レベルの関数で利用できるにライブラリが提供されます。最近ではそれでは事足りず、OSライクな物までターゲットファイルとして提供する事もあります。~ ライブラリのせいで自分のプログラムの挙動がおかしくなる!といった時でも、マイコンや製品の略称で命名したフォルダ毎にソースとライブラリ、その他必要な諸々のファイルが収められていますので、いつでも参照できます。~ 同フォルダにある拡張子がDEFとあるファイルに、GCC Developer Liteのコンパイルオプションで選択出来る設定リストの雛形が記述されています。また、以下のフォルダにターゲット毎に用意されたファイルが収められています。詳細は各々のターゲットの説明に譲ります。 ~'''3048F'''~ '''3052F'''~ '''3067F'''~ '''3069F'''~ '''3664F'''~ '''3694F''' ([[H8/3694Fマイコンボード>BTC064B]])~ '''3687F''' ([[H8/3687Fマイコンボード>BTC065]])~ '''7045F''' (SH7045Fマイコンボード)~ '''7047F''' (SH7047Fマイコンボード)~ '''7144F'''~ '''7145F''' ([[SH7145Fマイコンボード>BTC080]])~ '''7125F'''~ '''ATmega168''' ([[ATmega168マイコンボード>BTC066]])~ '''ATmega32''' ([[ATmega32マイコンボード>BTC067B]])~ '''ATmega128''' ([[ATmega128マイコンボード>BTC068]])~ '''AT90CAN128''' (AT90CAN128マイコンボード)~ '''SAM3S4''' ([[Digitus SAM3S>BTC096]])~ '''SAM7S''' ([[AT91SAM7S256マイコンボード>BTC091]], [[AT91SAM7S32マイコンボード>BTC092]])~ '''SAM7X''' ([[AT91SAM7X512マイコンボード>BTC095]])~ '''STM32F2'''~ '''STM32F373''' ([[Digitus STM32F3>BTC097]])~ '''LPC82x'''~ '''LPC84x''' ([[DXMIO]])~ '''FREERTOS_CM0P'''~ '''FREERTOS_CM3'''~ '''FREERTOS_CM4F'''~ '''DXLIB'''~ '''win''' ~マイコンボードを応用し機能を拡張した製品のDEFファイルにおいては、複数のフォルダを参照する設定がなされている場合もあります。 - デバイスドライバ ~最近はUSB I/Fがマイコンに内臓されるようになってきています。現在の所AT91SAM7・SAM3S・STM32FシリーズのUDP用のみですが、弊社で販売しているターゲットをUSBケーブルでWindows PCとつないだ際に要求されるデバイスドライバを同梱しています。~ なお、一部署名のないデバイスドライバがあるため、OSによっては正常にインストールできない場合がありますので、[[インストール>#t1d1c731]]の見出しに記載された注意事項をよく読んだ上でインストール作業を行ってください。 ~'''atm6119_cdc.inf''' (Atmel AT91SAM7S/AT91SAM7X/SAM3S Windows用仮想COMポートドライバインストール用定義ファイル)~ ~'''stmcdc.inf''' (STMicro STM32F1/F2/F3/F4Windows用仮想COMポートドライバインストール用定義ファイル)~ - その他 ~「%APPDATA%\BestTech\GCC Developer Lite」配下に各アプリケーションの設定がファイルとして保存されます。 **インストールパッケージの入手 [#DOWNLOAD] 数百メガバイトのインストールファイルのダウンロードをブラウザに任せると、かなり高い頻度で失敗します。できれば専用のダウンローダ([[bitsadmin>https://learn.microsoft.com/ja-jp/windows-server/administration/windows-commands/bitsadmin-transfer]]やwget等)を使用することを推奨します。 > -''基本パック''(必須) ~[[GDLBasalPack2.7.1.0.exe>https://www.besttechnology.co.jp/download/GDLBasalPack2.7.1.0.exe]] ~公開日: 2024/03/31~ サイズ: 16,715,027 byte~ MD5ハッシュ値: 1b8724f696377304470769cebd82e88f~ GCC Developer Lite・Simple Term・Flash Writer・ctags・msys2コマンドラインツール同梱 -''H8パック'' ~[[GDLH8Pack202206.exe>https://www.besttechnology.co.jp/download/GDLH8Pack202206.exe]] ~公開日: 2022/06/09~ サイズ: 18,638,370 byte~ MD5ハッシュ値: 2d0ad7c10de82144081f735621ba55b4~ 各renesas H8マイコンボード用ターゲットファイル・FLASHSimple・H8 GCC同梱 -''SHパック'' ~[[GDLShPack202206.exe>https://www.besttechnology.co.jp/download/GDLShPack202206.exe]] ~公開日: 2022/06/09~ サイズ: 22,420,625 byte~ MD5ハッシュ値: 774c8ae923c2c3be76ef12fa805ba43f~ 各renesas SH2マイコンボード用ターゲットファイル・FLASHSimple・SH GCC同梱 -''AVRパック'' ~[[GDLAvrPack202209.exe>https://www.besttechnology.co.jp/download/GDLAvrPack202209.exe]] ~公開日: 2022/09/23~ サイズ: 17,167,850 byte~ MD5ハッシュ値: bea84c49fdf355ba61d3985739ee1d23~ 各microchip AVRマイコンボード用ターゲットファイル・AVR GCC同梱 -''ARMパック'' ~[[GDLArmPack202206.exe>https://www.besttechnology.co.jp/download/GDLArmPack202206.exe]] ~公開日: 2022/06/09~ サイズ: 55,433,882 byte~ MD5ハッシュ値: 49cb23dee3286981cb3f6030896743db~ 各ARMコア内蔵マイコンボード用ターゲットファイル・CoFlash・ARM GCC同梱 -''WIN32パック'' ~[[GDLWin32Pack202405.exe>https://www.besttechnology.co.jp/download/GDLWin32Pack202405.exe]] ~公開日: 2024/05/13~ サイズ: 434,504,838 byte~ MD5ハッシュ値: 0dc424ab97e67d09e31887d3e2a42f6b~ 巨大化に伴い32/64bitを分離・2024/5/13日版Windows用32bit GCC及びPython同梱・インストールサイズは3Gbyte超~ ※msys2の32bit版メンテ終了に伴い以後の更新を行わず -''WIN64パック'' ~[[GDLWin64Pack202405.exe>https://www.besttechnology.co.jp/download/GDLWin64Pack202405.exe]] ~公開日: 2024/05/13~ サイズ: 676,158,599 byte~ MD5ハッシュ値: 0dc424ab97e67d09e31887d3e2a42f6b~ 巨大化に伴い32/64bitを分離・2024/5/13日版Windows用64bit GCC及びPython同梱・インストールサイズは4Gbyte超 ***更新内容 [#id47fd9a] ''Version 2.7.1.0 2024/3/31''~ +基本パック ++GCCDevL.exeで開いたソースの文字コードおよび改行コードの判別をマトモに ++GCCDevL.exeの新規作成時の文字コードおよび改行コードをUN(LF)に固定 ++パッケージからopenocdを削除 ++ctagsを最新版に Version 2.7.0.4_r2 2022/9/17~ +基本パック ++STERM.exeの受信イベント過多で操作不能になる事を多少軽減 ++STERM.exeのDTR制御設定を表面化 ++openocd・ctagsを最新版に +WINパック~ ++9/17現在の最新バイナリ適用 +AVRパック 2022/9/23~ ++最新のAVR 8-bit Toolchainではポインタを引き回した際に挙動がおかしくなるためVer.3.6.2.1778へバックデート ++ターゲットライブラリの再構築のみ Version 2.7.0.4 2022/6/9~ +基本パック ++GCCDevL.exeのエディタフォントサイズ変更用ショートカットキー(Ctrl+ +/-)追加 ++GCCDevL.exeのエディタにおいて対応する括弧へジャンプするショートカットキー(Ctrl+ [)追加 ++GCCDevL.exeのDEFファイル(各ターゲットの設定ファイル)中の文字列中にダブルクォーテーションを多用するようになったのでフェンスをカギ括弧に変更&br; それに伴い全ターゲットのDEFファイルを変更する羽目に ++STERM.exeのUSB挿抜イベント検出遅延を削除、コンポーネント更新に伴う再構築~ 転送スクリプトが二重に励起される事がある原因は相変わらず不明 ++FW.exeのUSB挿抜イベント検出遅延を削除、avrdudeのコマンドラインオプションを変更できるよう変更 ++最新版msys2・OpenOCD・ctags適用 +AVRパック~ ++思うところあってArduinoをターゲットに含める ++全ターゲットのUARTルーチンを共通化 ++最新版AVR TOOLCHAINを適用したのに合わせてAVRDUDE 7.0を同梱 ++FreePascal用のターゲットファイルを同梱(コンパイラと設定リストは別パック) +ARMパック~ ++根強い希望によりDX2LIBのclient機能にsync_read・sync_write・bulk_read・bulk_writeの各インストラクションへの応答を追加 ++DX2LIBの一部の追加APIの名称がWindows版を継承したままで使用できなかったのを修正 ++STM32F373用のターゲットファイルに含まれるST社のペリフェラルライブラリをV1.1に更新 +FreePascalパック(後日公開) ++新たにAVRとARM向けにFreePascalへの対応を始めたが、問題が噴出し始める気配を感じたので中途半端な状態で締める ++インストールに関しては一部のターゲットにおいて依存関係等少々煩雑なところがあるのは致し方なく Version 2.7.0.3 2022/4/10~ +基本パック ++コンポーネント更新に伴うGCC Developer Liteの再構築 ++最新版msys2・OpenOCD・ctags適用 +Winパック ++4/10現在の最新バイナリ適用 +ARMパック~ ++GDLArmPack202204版のパッケージに含まれるDXLIBの更新が不完全のままだった&br;申し訳ないがGDLArmPack202204_1をダウンロードし直していただきたく ++簡易printfに浮動小数亭表示を正式に追加(それでも簡易版)~ ++DXLIB/DX2LIBにRebootコマンド追加 ++LPC84x用DMA版USARTルーチン内で個別に用意していたDMA Descriptorを全廃し、LPC Open内で定義されているChip_DMA_Tableを使用するように変更 Version 2.7.0.0 2022/3/1~ 先のバージョンはこの更新を行うための布石のため、一部のターゲットファイルが不完全であった +GCCDevL.exe~ ++ターゲットファイルの配置場所としてProgramDataを対象に追加 ++コンパイラ動作ログへの書き出しを高速化 ++ショートパス名を強いるのはこのバージョンで終わりにする予定 ++高DPIに対応するつもりは今後一切無い +msys2 ++最新版適用 ++一部のコマンドが/tmp絡みで煩いのでインストール時に生成しておく事に +STERM.exe~ ++コンポーネント更新に伴う再構築 +openOCD~ ++最新版適用 +ctags~ ++最新版適用 +CoFlash ++デバイスにLPC8xxを追加したものを適用 +全ターゲットファイル~ ++同梱の再構築用のバッチ及びmakefileを全面改修~ ショートパス名の生成を要求しないための布石として相対パスで記述 +インストーラ~ ++事前にレジストリの変更や再起動を必要とする操作をインストーラ内で行うように変更 ++インストール時の条件を厳格化 ++STERM用に不足していたファイルを追加 ++各ターゲットファイルのソース及びライブラリ、さらにコンパイラ本体の配置先をProgramDataに変更しパーミッションをフルアクセス化~ これによりユーザ自らによる修正や更新が容易に ++インストール先を内部固定としユーザが変更できないように構成 ++アンインストール時の残骸が残りにくいように構成 Version 2.6.1.4 2022/2/7~ +あまりにも肥大化しすぎてインストーラの生成すらままならなくなったので、IDE部分とターゲットファイルにインストーラーを分離~ ファイルサイズが小さくなったのでダウンロードが成功しやすくなったかも +色々手を入れたので何を修正したか失念~ 多分改悪にはなってないと信じる +Toppersを使ったライブラリを削除~ それに伴いFDIII-HCやUD3はサポート対象外とする +SH・H8・AVR用のパッケージはこれ以後メンテしない +RX用のGCCが異常とも思えるほど程肥大化しているので対策がなされるまで対象外とする +現状ARMコアを搭載した製品しか新規リリースしていないこともあり、それら製品向けのメンテナンスとしての位置付けが強い Version 2.5.1.0 2013/09/04~ +GCCDevL.exe~ コンポーネントの更新に伴う再構築~ 保存ボタン活性・非活性の判定を修正~ コンパイルオプション内の記述を変更すると落ちるバグ修正 +STERM.exe~ コンパイラ・コンポーネントの更新に伴う再構築~ 64bitネイティブ対応~ COMポート開閉時にDTRを制御(DSRは使用せず)~ 新ターゲット向けの転送スクリプト追加及び修正 +OpenOCD~ 0.8.0-dev-00391-gf4943ac適用 +GCC~ 最新SH GCC適用~ 最新RX GCC適用~ 最新AVR GCC適用 +デバイスドライバ~ Atmel SAMシリーズ及びST32Fシリーズ向けUSB CDCエミュレーションドライバのまっとうな自動インストール対応 +SAM7S/Xターゲットファイル~ アセンブラによるスタートアップコードでの初期化処理を減らし、極力C言語で記述したコードに変更~ UDP(USB Device Port)ライブラリのCDCエミュレーションで、ホストによるポートの開閉を判断するのにDTRを使用する様に変更 +SAM3Sターゲットファイル~ UDP(USB Device Port)ライブラリのCDCエミュレーションで、ホストによるポートの開閉を判断するのにDTRを使用する様に変更 +UD3ターゲットファイル~ UD3.5サポート追加~ UDP(USB Device Port)ライブラリのCDCエミュレーションで、ホストによるポートの開閉を判断するのにDTRを使用する様に変更 +STM32F373ターゲットファイル~ 新規追加 +その他各種ターゲットファイル~ GCC更新に伴うライブラリ再構築~ 微修正等 Version 2.5.0.0 2012/12/19 +GCCDevL.exe~ コンポーネントの更新に伴う再構築~ 諸設定ファイルの保存場所をユーザプロファイルに変更(ユーザ毎に設定を保存)~ エディタが言語毎に異なるプロファイルを保存していたものを旧来の方式に戻す(追加の色分け等が使用可)~ 一部の環境で外部ツールのアイコンがおかしくなるのを修正 +STERM.exe~ コンポーネントの更新に伴う再構築~ 諸設定ファイルの保存場所をユーザプロファイルに変更(ユーザ毎に設定を保存) +FW.exe/BTFZTAT.dll~ コンポーネントの更新に伴う再構築~ 諸設定ファイルの保存場所をユーザプロファイルに変更(ユーザ毎に設定を保存)~ RX62Nシリーズ対応 +OpenOCD~ 0.7.0-dev-00775-g08ddb19適用 +GCC~ 最新H8 GCC適用~ 最新SH GCC適用~ 最新RX GCC適用~ 最新ARM GCC適用 (none-eabiに変更)~ 最新AVR GCC適用~ 最新x86/x64 GCC適用~ +RX62Nターゲットファイル (ノンサポート)~ 新規追加~ コンソールAPIのみのサポート +STM32F2ターゲットファイル (ノンサポート)~ 新規追加 +STM32F2_TOPPERSライブラリ (ノンサポート)~ 新規追加 +全AVRターゲットファイル~ コンパイラのバージョンアップに伴う再構築~ +SH7045/SH7047/SH7145/SH7125ターゲットファイル~ コンパイラのバージョンアップに伴う再構築~ SetSRRegマクロのバグ修正 +SAM7S/Xターゲットファイル~ コンパイラのバージョンアップに伴う再構築~ コンソールAPIのボーレート設定誤差を縮小 +SAM7S TOPPERSライブラリ~ コンパイラのバージョンアップに伴う再構築 +UD3ターゲットファイル~ コンパイラのバージョンアップに伴う再構築 +FREEDOM IIIターゲットファイル~ コンパイラのバージョンアップに伴う再構築~ MXシリーズに対応~ KONDO KRSシリーズ(ICS3.0/3.5)に対応~ FUTABA RSシリーズに対応~ Version 2.4.0.13r4 2011/08/08 +UD3ターゲットファイル~ 設定ファイルが狂っていたのを修正~ DynamixelホストAPIをFREEDOM IIIのそれと合わせる +FREEDOM IIIターゲットファイル~ Rev.E092Cに対応 Version 2.4.0.13r3 2011/08/03~ &color(red){重篤なバグがあるため使用停止};~ +UD3ターゲットファイル~ GPIOの初期化パラメータ追加~ コンパイルオプション修正 Version 2.4.0.13r2 2011/08/02 +インストーラ~ スタートメニューにツールのショートカットが作られない場合があるのを解消 +SAM7S/X関連ターゲットファイル~ UDPライブラリ更新 +FREEDOM IIIターゲットファイル~ UDPライブラリ更新に伴う修正~ 一部APIでセマフォがロックしてしまう条件を解消~ fd_MMSD_ReadHomePositionが常時trueを返すのを修正~ レディーキューの強制自動回転をデフォルトでEnableに +UD3ターゲットファイル~ UDPライブラリ **インストール [#t1d1c731] 他のバージョンのGCC Developer Liteと共存させる事を想定していないため、インストール済みのGCC Developer Liteがあれば予めアンインストールしておきます。また何らかの要因で「%APPDATA%\BestTech\GCC Developer Lite」フォルダが残っていると、改めてインストールする事を阻害される場合があります。その場合は本フォルダを手動で削除しておきます。~ 署名の類を一切施していないので、いずれのインストーラーも実行するとスマートスクリーン・セキュリティー警告・ユーザアカウント制御等のメッセージがしつこく表示されます。ダウンロードしたファイルのサイズやハッシュ値が上記と同一であれば「実行(%%%R%%%)」や「はい」を選択してインストールを進めて構いませんが、気がかりな場合はインストールそのものを止めここで示す作業を諦めざるを得ません。~ #ref(GDL_CAmess0.png,40%) #ref(GDL_CAmess1.png,70%) #ref(GDL_CAmess2.png,70%) これらのメッセージが表示されないままインストールそのものを拒否されたり、インストーラーファイルが削除される事も考えられます。その場合はWindowsの署名に関するポリシーを変更したり、アンチウィルスの制限を緩める等の措置を講じる必要があります。~ なお限定的な機能のみにもかかわらずコンパイラによってはかなりの数のファイルを内包しているため、ファイルの数とサイズは莫大になるパッケージがあります。そのためインストールが完了するまにではそれ相応の時間がかかるのと、数ギガものハードディスクの空き容量を要求されます。インストールが成功したとしても、最新のコンパイラ類が実行された際にアンチウィルスによってウィルスとして誤認識される恐れもあります。 ようやくインストールですが、まずはGDLBasalPack~.exeとあるパッケージを実行します。 インストールする言語を選びます。今後使用するツールの表示言語はここで選ぶ事になります。 #ref(gdl_inst_step1.png,100%) もし次のメッセージが表示された場合、使用しているPCの環境が本ツールに適合していない状態を意味します。通常は「はい(Y)」を選択します。 #ref(gdl_inst_step0.png,100%) GPL Ver.2です。本インストールパッケージに含まれるGNUツール及びターゲット毎のライブラリはGPL Ver.2の制約を受けるものとします。~ 何を言わんとしているか分からない時は[[こちら>https://ja.wikipedia.org/wiki/GNU_General_Public_License]]を参考にし、熟慮の上同意するか否かを決定します。 #ref(gdl_inst_step2.png,100%) こちらにはインストールパッケージに含まれるファイルの情報が表示されます。 #ref(gdl_inst_step3.png,100%) インストール先を選んだ後はインストールするコンポーネントの選択です。H8やSHを対象にしないのであれば「FlashWriter」のチェックは外して結構、ARMを「openOCD」でデバッグしないのであればそちらもチェックを外して構いません。「msys2」はlinuxと同等の一部のコマンドラインツール類を含み、後々各ターゲットのライブラリを再構築したりmakeを使用する際にのみ必要です。良くわからない場合は「フルインストール」を選びます。 ~ #ref(gdl_inst_step4.png,100%) チェックされているとインストール後にGCC Developer Liteのショートカットがデスクトップに作られます。余計なお世話ならチェックを外します。 #ref(gdl_inst_step5.png,100%) これでインストールの準備が整いました。最後に「インストール」ボタンを押して、HDDへのコピー作業を開始します。 #ref(gdl_inst_step6.png,100%) 初めて8.3形式のファイル名に対応させた場合は、メッセージに従ってPCを再起動して基本パックのインストールは終了です。~ ''基本パックのインストールが終わったら、一度だけGCC Developer Liteを起動してすぐに終了させてください''。一度も起動していない環境には追加パッケージをインストールできないように仕掛けてあります。 ---- 続いて目的の追加パッケージをインストールします。概ねGDLBasalPack~と同様の手順です。また途中で表示されるコンポーネントの選択画面では、自身が必要とするターゲットのみを選択する事で余計なファイルがインストールされなくなります。 *使い方 [#d0ab4bff] **GCC Developer Liteの使い方 [#GCCDevL] ***エディタ [#GCCDevL_EDITOR] メモ帳よりは高機能な一般的なテキストエディタです。独特な操作はあまり無いはずです。~ お節介にも、単語等の色分け、キーボードマクロ、入力補完といった機能を持っています。 ****ファイル [#GCCDevL_FILE] エディタで開けるファイルには特に制限はありませんが、拡張子が.cや.cppといった何らかの言語で記述されたプログラムのソースファイルを対象とします。~ 後述のコンパイル作業を一度でも行ったファイルを再度開くと、次のようなメッセージが開きます。 #ref(loadbtp_new.png,80%) 普通はこのまま「OK」をクリックします。一度コンパイルを行うと、開いているソースファイルと同じフォルダに、拡張子が~.btpというファイルが出来上がります。btpファイルが存在しているソースファイルを開くとこのメッセージが表示され、前回コンパイルした時の条件や設定を再現します。これは異なるターゲットを1台のPCで扱っている際に、ファイルを開くたびにコンパイルオプションを変更するのが面倒なために設けられた機能です。~ また、GCC Developer Liteをバージョンアップすると、それ以前にコンパイルしたファイルを開くと「!」付きでメッセージが表示される場合があります。~ #ref(loadbtp_old.png,80%) つまり、親切にも古い環境でコンパイルされているファイルを開いた事を知らせており、バージョンが変わった事によりコンパイラオプションでは問題が生じる可能性を示唆しています。このメッセージを見かけたら、素直にコンパイラオプションから設定リストを選択し直してコンパイルしましょう。 ****編集 [#GCCDevL_EDIT] 玄人的な使い方をしない限り、編集操作は本ツールにオリジナルな物ではありません。選択、コピー、切り取り、削除、貼り付け、といった基本操作はもちろん、ショートカットキーも普通に使える筈です。~ ちょっと特殊なのはインデントでしょうか。複数行にまたがって行頭にスペースを挿入したり削除すると言った機能です。これはあまりにも高い自由度でソースプログラムを記述されてしまった際に、インデントを入れる事を教えるために追加されています。 ****検索 [#GCCDevL_SEARCH] こちらも敢えて説明するまでもありませんが、検索・置換といった機能です。 ****キーボードマクロ [#id31c0a3] 単純なキー操作の繰り返しを強いられる時に、そのキー操作を記録しておいて、必要なときにそのキー操作を再生する機能です。ダイアログボックスが表示される様なキー操作は対象となりません。 ****入力補完 [#f5ee2461] ちょっとした入力ミスでもコンパイルエラーとなるのは仕方ない事。でも、人間が単語を一字一句間違えずに入力出来る訳もなく、ヒューマンエラーはつきものです。~ そういった際に、よく使われる単語については予め設定されているキーワードから選択したり、ソースプログラムから抽出して貼り付けできるといった機能が入力補完といわれます。 本ツールにも簡易的ながら備わっており、入力中に[CTRL]+[SPACE]キーを押すとリストが表示されます。カーソルキーで選択してエンターキーで貼り付ける事ができます。また、リストを表示されている間にある程度の文字を順次入力してゆくと、表示されているリストを絞る事もできます。さらに、既に文字が入力されている場所で[CTRL]+[SPACE]を押せば、カーソル位置の単語を検索してリストを絞る事もできます。~ #ref(gdl_autocomplete.png,100%) オマケ程度なので過度な期待は禁物なのと、つまらない所でCPUパワーを食います。 ****ウィンドウ [#GCCDevL_WINDOW] シングルソースの弊害として、プログラムソースが長大になると参照元と先で行ったり来たりする羽目になる事があります。とりあえず2画面までではありますが、編集中のソースを分割して表示する事ができます。~ #ref(dualwindow.png,70%) 両ウィンドウとも同じソースが表示され、片方で編集したものはもう片方にも反映されますのでどちらで何を使用が結果は同じです。片方で関数や変数の宣言部分を表示し、もう片方でそれらを参照しならがコーディングするというスタイルを想定しています。 ****参照 [#GCCDevL_REF] 実はシングルソースと言いながら、内部的には複数ソースの編集とリンク機能を持っています。~ その片鱗だけ垣間見る事ができるのが参照機能です。C言語等ではヘッダファイルといった形で別のファイルを参照する事が頻繁に行われ、そのファイルの中身を知らない限り自分のプログラムで参照する事はできません。そういった時に、その参照しているファイル名の場所にマウスカーソルを合わせ「CTRL」キー+マウス左ボタンの「ダブルクリック」すると、別のウィンドウが開いてそのファイルを参照してくれます。~ #ref(multiwindow.png,70%) ソース中のコメント等にURL等を記述していた場合は、そのURL部分にマウスカーソルを合わせ「CTRL」+「ダブルクリック」すると、参照ウィンドウでそのサイトを閲覧する事も出来ます。何かのデータシートがpdfで提供されていたら、ソース中にブックマーク代わりにURL書いておいていつでも参照できるようにすると便利かもしれません。 ****タグジャンプ [#n55e8954] 「検索(S)」メニュー内の「タグファイル自動生成(C)」と「タグ生成オプション」内の「タグ生成時にカレントフォルダを含める」をチェックします。 #ref(GDL_EnableTagJump.png,100%) この状態でソースコードを一旦ファイルに保存するとバックグラウンドでタグファイルが生成し直されます。ソースファイル名に「.ctags」の拡張子を付与した名前でタグファイルが作られますが、条件によっては生成に長い時間を要したりファイルサイズが巨大化します。~ 準備ができたらソースコードの関数名が書かれた部分にカーソルを置き、「Ctrl」キーを押しながら「]」キーを押してから「]」キーのみを放す(「Ctrl」キーのみが押された状態)とエディタウィンドウ中央にその関数名の宣言がなされているファイルの一覧が表示されます。 #ref(GDL_TagJump.png,80%) その関数名の参照先が見つからなかった場合は、ファイルの一覧は表示されません。「Ctrl」キーが押されままの状態でファイルの一覧が表示されている間にカーソルキーの上下やマウスのクリックでファイル一覧から任意のファイル名を選択すると、そのファイルが別ウィンドウが開いてかつ該当するタグが記述されている場所にカーソルがジャンプします。もし編集中のソースコードが参照先の場合は、別ウィンドウは開かずにそのまま該当箇所にカーソルがジャンプします。~ なおタグとソースコードとの相関はほぼ皆無なので、あくまで参考程度に考えてください。またGCC Developer Liteを閉じてもソースファイルと同じフォルダにタグファイルが残っていた場合は、削除して構いません。 ****エンコード [#v7b69968] ソースコードファイルはテキストファイルを対象としますが、コンパイラやツール類はそのファイルの文字コードに多分に影響を受けます。エディタ上では問題無く閲覧できているにもかかわらず、含まれる文字によっては不可解なエラーが発生するといった事が考えられるのです。~ GCC Developer LiteのデフォルトエンコードであるShift_JISでは問題が生じやすいため、できる限りUTF-8もしくはBOM付きUTF-8に変更た上でソースコードファイルを保存する事を推奨します。画面最下段のステータスバーの右側に現在のエンコードと改行の状態が表示されており、右クリックして表示されるポップアップメニューより任意のエンコードと改行に変更できます。 #ref(GDL_Encode.png,80%) ****文字サイズ [#q5e79f02] GCC Developer Liteは最近の高DPIなPCに対応していないため、高解像度になればなるほどエディタ画面の文字サイズが小さく表示され、場合によっては普通の視力では識別できない程小さく表示されます。その場合は「Ctrl」キーを押しながらマウスホイールを回転させるかピンチイン・アウトさせると、それと連動して文字サイズが変わります。ソースコード全体の見通しを良くするために縮小したり、小さすぎて見えないから拡大するといった使い方ができます。 #ref(GDL_Zoom.png,55%) ****エディタ設定 [#t28b92dd] デフォルトのフォントが小さいので見にくいとか青地はイヤだという場合に好き勝手に変更できます。その他にも色々設定ができますが、複雑なので割愛します。 #ref(editer_prop.png,100%) ***コンパイルオプション [#GCCDevL_COMPLEOPT] GCC Developer Liteの「GCC」に関係するところはココだけです。最近はGCCのみという訳では無くなりつつあるため、、旧来「GCCオプション」と称していたものを「コンパイルオプション」に改名しています。~ 一応説明しておきますが、細かいことは抜きにこのダイアログボックス上端にある「設定リスト」だけ見れば良く、タブで分かれた細かい設定は理解に及んでから触れるべきです。~ #ref(compiler_opt_targetlist.png,100%) ****「外部コンパイル機能を使用」にチェックが入っていない場合 [#n95c3dd8] -コンパイラ~ #ref(compiler0_opt_gcc.png,70%) GNUTOOLの場所、及び使用するツールの接頭語、最適化レベルを設定します。 -スタートアップルーチン~ #ref(compiler0_opt_boot.png,70%) C言語のmainが実行される前に実行されるプログラムを指定します。 -リンカ~ #ref(compiler0_opt_lnk.png,70%) ターゲットのメモリの都合に合わせたリンカスクリプトファイル、コンパイル時に一緒にくっつけるライブラリを指定します。 -デバッグ #ref(compiler0_opt_dbg.png,70%) コンパイル時のデバッグレベル、gnu debuggerないしrunを実行する際に必要な情報を設定します。 -各種フォルダ~ #ref(compiler0_opt_path.png,70%) ターゲットファイルの場所を設定します。ヘッダファイルやライブラリを探させる際のパスです。 -etc...~ #ref(compiler0_opt_etc.png,70%) etc...と書いてはありますが、最も重要な情報が記述されています。コンパイラを実行させる際に一緒に記述されるオプションの記述、コンパイル後のファイル変換の方法を選択します。 -外部ツール連動~ #ref(compiler0_opt_exttool.png,70%) コンパイルとファイル変換が成功しただけでは役不足なので、その後の処理を自動的に行わせる事ができます。起動するツールと起動時に指定するオプション、起動方法を設定します。 ****「外部コンパイル機能を使用」にチェックが入っている場合 [#ge57077b] -コンパイラ -各種フォルダ -デバッガ -外部ツール連動~ ***コンパイル [#GCCDevL_COMPILE] 命名がちょとややこしいだけですが、いずれも内部で行われる作業は似たような物です。~ ソースプログラムは単なるテキストファイルに過ぎず、一般にそのままでは実行できる物ではありません。何かしらのツールを仲介した後に、マイコン等で実行出来るファイルに変換されます。その作業をここではコンパイルと称しています。~ また、以後の作業に応じて複数のコンパイル方法が選択出来ます。これらはコンパイラオプションに依存しますので、全てのターゲットで同様の機能が提供される物ではありません。 ****ビルド [#zc7ee1bb] 大抵はビルドで事が足ります。 +指定されたコンパイラでソースプログラムをコンパイル +ターゲットに応じたフォーマット変換 +必要に応じて書き込みや転送ツールを起動 といった処理を行います。 ****デバッグビルド [#mbf5852d] こちらビルドと大差ありませんが、gnuのデバッガでデバッグする際の情報を付加します。 +指定されたコンパイラでソースプログラムをコンパイル +ターゲットに応じたフォーマット変換 デバッグ情報付きのファイルを作成するだけで終了としますので、この後必要に応じてデバッガ等で開くなり何なりします。 ****デバッグビルド&デバッガで開く [#ua0f9c03] GNUTOOLにデバッガ(gdbないしinsight)が含まれている場合に使用できます。 デバッグビルドを行った後、gnuのデバッガが使用できる環境であればデバッガを起動出来ます。 +指定されたコンパイラでソースプログラムをコンパイル +ターゲットに応じたフォーマット変換 +gdb(insight)を起動 デバッグビルドされたファイルを指定されたデバッガで開いてデバッグを開始します。~ ターゲットによってデバッガを起動する際に指定されるファイルが異なるので一概にこうなるとは言えないのですが、 +gdbがOpenOCDないし何らかのデバッガに接続 +コンパイルされたファイルをターゲットのフラッシュROMないしRAMに書き込む +main文にブレークポイントを設定 +プログラムを実行し、main文の入り口でプログラム停止 といったフローでデバッガが実行されます。 ****ビルド&エミュレータで開く [#i73f772a] GNUTOOLにエミュレータ(run)が含まれている場合に使用できます。 +指定されたコンパイラでソースプログラムをコンパイル +runを起動し、コンパイルされたプログラムをPC上で実行 エミュレーションできるのはCPUのコアだけですので、LEDが点灯したりブザーが鳴ったりスイッチが押せる訳ではありません。作成したハードウェアに依存しないサブルーチン等が、予想した動きをするかどうかをテストするといった目的に使えるかもしれません。ターゲットによってはprintf等の関数を使用すると、コンソールに文字を表示させる事はできる様です。 ***ツールバー [#GCCDevL_TOOLBAR] メニューの直下にあるのはツールバーと呼ばれ、メニューをドロップダウンするまでもなく、ファイルを開いたり保存したり、コピペや検索をさせるためのボタンが配置されています。~ アイコンだけで判断出来るのであれば、機能を呼び出すまでの操作がボタン1つで済むので作業効率が上がるはずです。 #ref(gdl_toolbar.png,100%) ***外部ツールの設定 [#b7ce9679] テキストエディタでプログラムを編集していれば全ての作業が完了する訳ではありません。ここで紹介するツール以外にも自分で用意したツールを簡単に呼び出したいといった事は良くあります。 #ref(gdl_exttool.png,100%) インストールコンポーネントにもよりますが、インストール直後は[[FLASH WRITER>#FW]]や[[SIMPLE TERM>#STERM]]等が既に登録されています。必要に応じて自分の好みのツールを最大10個まで追加できます。 ***拡張子の登録 [#hbd987a9] ここでの設定はWindows7よりも前のバージョンではあまり大きな意味は持たないのですが、いくつかのファイルの拡張子とGCC Developer Liteを関連付けできます。 #ref(assosiation_fileext.png,100%) チェックされた拡張子を持つファイルをエクスプローラー等で右クリックすると、「プログラムから開く」のツリーにGCC Developer Liteが登録されているはずです。ダブルクリックしても勝手にGCC Developer Liteで開く様な横柄な事はしません。~ また、Windows7においては拡張子の関連付けがなされていないとジャンプリストに履歴が作成されず、ジャンプリストに履歴として表示されるファイルがあったとしても開けなくなります。 ***その他 [#GCCDevL_ETC] 新し好きであればもう使っているとは思いますが、Windows7は色々初心者には使いやすくなっているのではと思います。マウスやタッチパネルといった入力装置によって、直感的な操作を部分を訴求しようという部分ですね。Vistaを特に支障なく使っているのであればWindows7になったからと言ってその違いは微々たる物かもしれません。~ Windows7(x86でもx64でも大丈夫)にインストールしても使えますし、Windows7上で動いている事が検出されると多少ならではといった機能が追加されるようになっています。はっきり言ってどうでも良い機能ですが、もしかしたら必須と考えるのが趨勢になるかもしれませんので、標準的なUIとして機能するようにしてあります。~ ジャンプリストは主に今まで開いたり保存したファイルの履歴を表示します。GCC Developer Liteのファイルメニューにも履歴が表示されていますが、それとほぼ同じです。 #ref(win7_jumplist.png,100%) 従来からGCC Develoer Liteは同時に2つ以上起動出来ないという意図的な制約を設けていますが、このジャンプリストを使ってファイルを開こうとするとこの制約が邪魔でした。最新版ではGCC Developer Liteが起動している状態で、後から何らかの方法でファイルを別途開こうとした場合は、起動済みのGCC Developer Liteがその役割を果たすようになっています。つまり「このプログラムは複数起動できません。」とすげなく断られる事は無くなります。~ ちなみに二重起動を制限しているのは、むかぁし同じソースを複数のGCC Developer Liteで開いて編集し、整合性が取れない事を理由に文句つけられたからだそうです。 ~もう一つ、タスクバーのアイコン上にマウスをホバーするとウィンドウのサムネイルが表示されますが、参照ウィンドウ等を開いているとそれらもサムネイルの一覧として配置されます。 **FLASH WRITERの使い方 [#FW] ***詳細な設定変更 [#rdaafea4] FLASH WRITERのウィンドウは小さく出来ています。小さい状態では何らかのファイル名を入力する欄と「かきこみ」ボタンしかなく、それ以外の諸々の設定は一切触れなくなっています。~ 触らなくて良い理屈は全く無いので、どうにかして設定を変更しなくてはなりません。 #ref(fw_prop.png,100%) そう、メニューバー左上のアイコンをクリックしてメニューを表示させ、その中からFW Propertyをクリックするだけです。すると今まで隠れて見えなかった諸設定がズルズルと見えて来ます。~ 他にもボタンやテキストボックスが無い所をダブルクリックしても同様に機能します。 ***設定ないしボタン類 [#r0972d50] ****CPU TYPE [#jcce8261] CPU Typeがそれ以外設定全てに影響します。大抵の場合においては書き込みたいターゲットの名称になっています。~ -''3048''~ [[Renesas F-ZTAT>http://japan.renesas.com/products/tools/flash_programming/f_ztat/index.jsp]]ベースでH8/3048Fを対象~ Portは使用するCOMポートを選択~ Baudrateは使用するCOMポートのボーレートを選択(19200bps以下を推奨)~ TimeOutはネゴシエーション成功までの繰り返し時間となる~ Write Script Fileは使用不可 -''3664''~ [[Renesas F-ZTAT>http://japan.renesas.com/products/tools/flash_programming/f_ztat/index.jsp]]ベースでH8 Tinyシリーズ全般 H8/3664F, H8/3694F, H8/3687Fを対象~ Portは使用するCOMポートを選択~ Baudrateは使用するCOMポートのボーレートを選択(19200bps以下を推奨)~ TimeOutはネゴシエーション成功までの繰り返し時間となる~ Write Script Fileは使用不可 -''7045''~ [[Renesas F-ZTAT>http://japan.renesas.com/products/tools/flash_programming/f_ztat/index.jsp]]ベースで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>http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2735]]互換プロトコルでavrdudeによるサポート ATmega168を対象~ Portは使用するCOMポートを選択~ Baudrateは使用するCOMポートのボーレートを選択(大抵は115200bps)~ TimeOutは不使用~ Write Script Fileは使用不可 -''AVR:m32''~ [[Atmel stk500>http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2735]]互換プロトコルでavrdudeによるサポート ATmega32を対象~ Portは使用するCOMポートを選択~ Baudrateは使用するCOMポートのボーレートを選択(大抵は115200bps)~ TimeOutは不使用~ Write Script Fileは使用不可 -''AVR:m128''~ [[Atmel stk500>http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2735]]互換プロトコルでavrdudeによるサポート ATmega128を対象~ Portは使用するCOMポートを選択~ Baudrateは使用するCOMポートのボーレートを選択(大抵は115200bps)~ TimeOutは不使用~ Write Script Fileは使用不可 -''AVR:c128''~ [[Atmel stk500>http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2735]]互換プロトコルでavrdudeによるサポート AT90CAN128を対象~ Portは使用するCOMポートを選択~ Baudrateは使用するCOMポートのボーレートを選択(大抵は115200bps)~ TimeOutは不使用~ Write Script Fileは使用不可 -''SAM-BA''~ [[Atmel AT91 In-system Programmer>>http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3883]]の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で実行させるコマンドが記述されたスクリプトファイルを指定 |CENTER:BGCOLOR(red):|LEFT:BGCOLOR(#dcdcef):|c | :idea:|AVRシリーズにおいてはstk500互換プロトコルのブートローダも対象となりますが、V1.0以降の弊社オリジナルブートローダが搭載されたマイコンボードは対象ではありません。今後はFLASH WRITERではなく[[SIMPLE TERM>#STERM]]を使う事になります。| ****PORT [#uefc706f] 大抵の場合PCに装備されるCOMポートが列挙されますので、使用するCOMポートを選択します。CPU TypeによってCOMポート以外のリストが表示される場合もあります。~ PCに無いポートはリストに現れませんが、接続すれば即時リストに現れて選択出来るようになります。 ****BaudRate[bps] [#i510bdb9] 使用するCOMポートのボーレートを設定します。大きければ良いという訳でもありません。 ****Clock[MHz] [#eff6d822] 書き込む対象に供給されているクロック周波数を設定します。本設定を使用するCPU TYPEでは必ず一致させなくてはなりません。 ****TimeOut[ms] [#h6057b7e] 繰り返し実行ないしタイムアウト時間を設定します。 ****Find HyperTerminal [#m567baf7] 使い道がないのと、うまく動かないケースが大半なので説明なし。 ****Write Script File [#g36ce84f] OpenOCDで対象とするターゲットに応じて設定します。~ FLASH WRITERと同じフォルダに置かれる.scriptファイルが列挙されますので、もし自前のターゲットをサポートさせたいのであればこのフォルダに作ればリストに載ります。 ****OK [#z9ec6090] 大きくしたウィンドウを小さくします。 ****Execute [#y2bc4a8f] 諸設定に依存する処理を開始します。~ +指定されたファイルの存在確認 +CPU TYPEに応じたポートの内部的な再設定 +ポートの検索 +ポートの使用可能かの判定と、他のアプリケーション(SIMPLE TERMの事)へのポートの譲り渡し要求 +CPU TYPEに応じた書き込み処理等の実行 +処理の正否の判定 +使用したポートの使用終了を他のアプリケーション(SIMPLE TERMね)に告知 どのプロセスにおいても問題があると全てエラーとします。処理中はCPU TYPEによって異なるウィンドウが表示され、進捗が確認できます。 ***起動オプション [#mbf68aff] ***その他 [#s092408f] **SIMPLE TERMの使い方 [#STERM] ***ターミナルウィンドウ [#g41166f6] 初期状態で真っ黒な部分の事です。ポートが開いている時にのみ接続先から送信されて来るデータが表示され、入力された文字は接続先に送信されます。~ ブートローダ等では入力を促されるケースがありますが、その時SIMPLE TERM上で入力した文字がそのままターミナルウィンドウに表示されていると思うのは間違いです。SIMPLE TERM自身はデフォルトでは接続先から送信された情報しか表示しません。~ では、入力した文字が表示されるのはなぜ?実は簡単な事で、入力した文字を相手が都度送り返しているからです。世の中には送り返してこない端末もある(それが普通)のですが、どうしても入力した文字も表示させたいのであればローカルエコーをONにします。 表示に関してはANSIっぽい動きをする様ですが、中途半端な実装による思った様な動きをしない事を恐れてできないフリをしている場合もあるらしいです。 ***プロパティ [#c1f40140] SIMPLE TERMで扱うCOMポートの情報を設定します。 #ref(sterm_prop,100%) -''Connect to''~ 使用するCOMポートを選択します。PCに無いポートはリストに現れませんし、追加接続すれば即時リストに現れて選択出来るようになります。~ しかし、いい加減COM1~COM10だけとか、COM1~COM255まで列挙して選択するといったアプリケーションは止めて欲しいですね。 :-? ~ なお、TELNETについては言及しません。 -''Baudrate''~ 通信速度です。リストから選ぶも良し、使用するCOMポートが許容するのであれば数値を入力しても構いません。 -''Databits''~ 1文字のデータ幅を指定します。指定がなければ通常は8を選びます。 -''Stopbits''~ ストップビット幅を指定します。指定がなければ通常は1を選びます。 -''Parity''~ パリティの種類を選択します。指定がなければ通常はNonを選びます。 -''Flow Control''~ フロー制御の種類を選択します。指定がなければ通常はNonを選びます。 -''Protocol''~ ファイルを送受信する際に使用するプロトコルを選択します。~ XModem以外は・・・。 なお、一部の設定はポートが開いている状態であっても変更可能です。ポートを閉じなくてはボーレート等を変更できないのは、実はそういう作りになっているアプリケーションの都合だけだったという事です。 ***ログ [#h8d26d44] ターミナルウィンドウ上に表示される文字をファイルに保存し続ける機能です。~ ターミナルウィンドウでは表示データが画面いっぱいになったり改行が行末に達すると、行頭の文字はスクロールアウトして見えなくなってしまいます。普通ならバックスクロールして以前の表示データを見る事ができるのでしょうが、どうやらあるにも関わらず見る事ができません。~ そこで、ファイルに保存する事を提案して作ってもらいました。「ログファイル」がチェックされると保存するファイルを新規に作成し、「ログファイル」のチェックをOFFにするかSIMPLE TERMを終了するまで保存し続けます。 ***ポートの開閉 [#c255633b] プロパティで選択したCOMポートを独占使用するには開く操作を、使用を終えて他のアプリケーションで使えるように解放するには閉じる操作をします。~ 通常COMポートはアプリケーションから開かれると、同じCOMポートを別のアプリケーションで開く事が出来ません。しかしながらGCC Developer Liteに含まれるツールに限り、COMポートを譲り合う機能を提供します。 ***FTDIチップ絡み [#vfcf50a9] ものぐさな作者は、ターゲットのリセットボタンに手を伸ばす事すら億劫な様です。FTDI社のFT232が乗った弊社マイコンボードとEVBに限りますが、SIMPLE TERMからリセットシグナルを発行できます。~ ちょっと面倒な仕掛けでリセットさせているらしく、ポートが開いている時にSIMPLE TERMからリセットをかけると、ポートを閉じる→リセットLOW→しばし待つ→リセットHIGH→ポートを再度開く、といった動きになります。 ***転送 [#n1b605af] プロパティのProtocolで選択した通信方式で接続先とファイルの送受信を行います。~ 全て試した訳ではありませんが、気のせいでなければXModem以外はちょっと微妙な気がしますが、マイコンボードのブートローダがサポートするプロトコルがXModemだけなので良しとします。 ちょっと異色なのは「スクリプト実行」で、目的はブートローダとのコミュニケーションを自動化する事にあります。 -ターゲットへのリセット発行 -ブートローダのコマンドモードへのエントリー -諸々のキー操作の再現 -指定された文字列の検出 -予め指定されたファイルの転送 といったスクリプトを組み合わせて、マイコンへのプログラム転送にかかる一連の操作を自動的に実行します。SIMPLE TERMの単体起動では用をなさず、GCC Developer LiteのコンパイルオプションでSIMPLE TERMと連動する時に有効となります。 なお、マイコンボードによって異なっていたブートローダのコマンドモードへの遷移方法が大体統一された事もあり、最新バージョンでは出来るだけ簡単にターゲットをコマンドモードに遷移させる機能が盛り込まれています。単にスクリプト実行に「!」マークを送りつける機能が追加されただけなのですが、手が両手がふさがる事が無くなるので結構便利です。~ これにより従来は、 +ターミナルウィンドウ上で'!'([SHIFT]+[1])キーを押しっぱなしにする。 +ターゲットをリブート +ブートローダの起動メッセージが表示されたら'1'キーを離す。 +メニューから「スクリプト実行」をクリックしてプログラムのダウンロード といった訳の分からない手順の操作を強いられていたものが、 +メニューから「スクリプト実行」をクリック +ターゲットをリブート という2つの操作で終わる様になります。説明も簡単ですし、PCのキーリピートのタイミングに依存する不安定要素が軽減されてヨサゲです。 #ref(STERM_resetwait.png,100%) ***起動オプション [#jabba450] ***その他 [#bd344c52] USBでCOMポートを増設している場合、USBケーブルを抜くと結構困った状態になります。一般にCOMポートを扱うプログラムは、使用しているポートが突然無くなると思っていないものです。Windows自体はポートが無くなった事を知っているにもかかわらず、プログラム側は不慮の事態に備えていないものですから、まだ通信できると思い込んでいる場合があるのです。それを扱う人間も同様に、ポートが無いのにも関わらずプログラムが無いポートを開いたままなので、ついつい操作してしまう。実に悪循環です。~ ポートが使えないなら使えないとはっきり意志を示そうと言う事で、SIMPLE TERMではポートの活性状態を常時モニタして、抜かれようが挿されようが、なんとか再起動しないでも済むように努力します。大体以下の様な挙動をします。 -開いているCOMポートが無くなるとポートを閉じる -開いていたCOMポートが無くなり自ら自動的に閉じた後、再度そのポートが活性化したら自動的に開く つまり、デバイスの状態に応じてポートの開閉操作を人間が行わなくても済む様に努力してくれます。時々ミスる事もありますが、その時は再起動して下さい。 ~また、COMポートは大抵の場合において一つのプログラムが開いたら、他のプログラムからは同じCOMポートは開けません。これも結構な頻度で悩ましてくれるネタです。SIMPLE TERMの場合は、いくつか起動しており全て同じCOMポートを使用している時に限り、お互いにポートを譲り合う機能を持っています。 *FAQ [#FAQ] -''Q:''メッセージ等が何も記載されない状態で一部のダイアログボックスが表示される~ ''A:''管理権限でログインしていないか、Windows Vista以降であれば[[UACをOFF:http://technet.microsoft.com/ja-jp/library/cc709691(v=WS.10).aspx]]にして使う。 -''Q:''昔のバージョンでコンパイルしたソースがバージョンアップしたらコンパイルできない~ ''A:''ライブラリが変わってコンパイルできないという事でなければ、コンパイルオプションを再設定する。 -''Q:''H8/3048FやSH7047Fで使えない~ ''A:''廃盤やサポート終了製品向けのターゲットファイルはバージョンアップ時に順次削除されるので、サポートしていたバージョンを使う事。 -''Q:''旧バージョンの提供をしてほしい~ ''A:''常時最新のツール及び販売中の製品向けにアップデートされるツールとしての位置付けのため、原則として廃盤およびサポートを終了した製品向けの提供は行わない。 -''Q:''組み込みブラウザの挙動がおかしい~ ''A:''デフォルトでIEの古いバージョンを前提に動作するため。~ レジストリエディタで以下のキーに'GCCDevL.exe'の名前でDWORD(32bit)値を作り、[[任意の値>https://www.google.com/search?q=FEATURE_BROWSER_EMULATION]]を設定する事で多少改善する可能性がある。 KEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION *転載・転用・その他 [#wde6d7b4] -パブリックな用途での二次転載は[[許諾を得て>https://www.besttechnology.co.jp/modules/formmail/]]下さい。 -転載を目的としてホームページ等で公開する場合は弊社サーバへのリンクでは無く、貴サーバにコピーを置いた上で公開して下さい。 -基本的に旧バージョンの転載は認めていません。 -個人のホームページ等でリンクする場合は[[本wiki>https://www.besttechnology.co.jp/modules/knowledge/?GCC%20Developer%20Lite]]とし、インストールファイルへの直リンクは許容しません。 -転載ないし転用されたツールの二次的な問い合わせは一切受けません。 -現時点で弊社で販売しているマイコンボードないし製品を除くターゲットのサポートは一切受けません。有償サポートを希望される場合は[[技術サポート>https://www.besttechnology.co.jp/modules/formmail/]]へ相談下さい。 -公開バージョンに含まれるターゲット以外のサポートも行っています(有償)。
(This host) = http://www.besttechnology.co.jp