Atmega168, Atmega32, Atmega32A, Atmega644, Atmega128, Atmega128A, AT90CAN128マイコンボードシリーズに対応した弊社オリジナルブートローダです。
マイコンに備わったUARTを経由してホストからマイコンボードのフラッシュROMへユーザプログラムを転送及び書き込んだり、書き込まれたユーザプログラムを実行するといった機能を持ちます。
付属のバッチファイルにてソースプログラムからコンパイルでき、ユーザ自身による改造も可能です。
ファイルの送受信にはXMODMプロトコルを使用しますが、全てのXMODEMに対応したターミナルクライアントに対応するものではありません。
弊社提供のGCC Developer Lite最新版のインストール先に「C:\Program Files\BestTech」フォルダを指定し、インストールコンポーネントとして「ATMEGAxxxでのみ使用」、もしくは「フルインストール」が選択されている必要があります。
ブートローダはフラッシュROM上で動作するプログラムですが、AVRシリーズに設けられたブートローダ領域(フラッシュROMの後半)に書き込まれています。
現在リリースしているバージョンでは占有フラッシュROM領域が2kbyte以下である前提としているため、ブートローダ領域の先頭アドレスはフラッシュROMの最終アドレスから2kバイト手前の位置に設定しています。本設定はAVRのヒューズビットにて設定されており、デバイスによって設定方法が異なるため、ブートローダをコンパイル及び書き込む方法もデバイス毎に設けています。
なお、ブートローダは全てC言語で作られているため、デバイスによっては2kバイト以下に抑えるのがとてつもなく厳しい状態です。
マイコンがリセットされるとユーザプログラムへ実行が遷移するか、ブートローダがコマンドモードになるかの2つの状態に動作が分岐します。条件は以下の通りです。
SIMPLE TERM[11]からのキー入力にて各種機能を実行します。
ホストからフラッシュROMへファイルを転送及び書き込みを行います。
>f
この状態で既に転送を待ち受ける状態となっていますので、SIMPLE TTERMから任意のファイルを選択しXMODEMプロトコルで転送を開始させます。
成功すれば<OK>、失敗するとNGと表示されます。
>f OK >
ホストからEEPROMへファイルを転送及び書き込みを行います。
>e
この状態で既に転送を待ち受ける状態となっていますので、SIMPLE TERMから任意のファイルを選択しXMODEMプロトコルで転送を開始させます。
成功すれば<OK>、失敗するとNGと表示されます。
>e OK >
フラッシュROMに書き込まれたプログラムを実行します。
付属のブートローダを書き込むバッチファイルでは、JTAGインターフェースを内蔵するターゲットに限りJTAGENビットを禁止に設定しています。これはJTAGに必要な端子がGPIOを兼用しており、許可状態では汎用的に使用できる端子が少なくなってしまうための措置となります。
なお、弊社のAVRマイコンボードシリーズでJTAGを使用するには、JTAGではなくシリアルプログラミング(ISP)でのみ本JTAGENビットを許可できます。
(This host) = http://www.besttechnology.co.jp