Atmel社のAT91SAMシリーズがほぼ標準で持っているSAM-BAという機能。
FLASH WRITERでも対応しており、USB経由であれば特に支障はないのですが、外部クロックの都合などでCOMポート経由で使おうとすると処理時間が劇的に遅くて全く使い物になりません。DBGUしか持っていないAT91SAM7S32では致命傷。
原因はAT91Boot_DLL.dllを使っているからなのですが、Atmel社のアップデートを待っているだけでは延々と解消しそうにないので、何が起こっているのか調べてみました。
結論から言うと送信するファイルを分割してパケット通信している所で、毎回3秒程度の時間待ち(タイムアウト?)が発生しているのが原因でした。
その後詳細に見ていくと、チップ内に予め備わったブートプログラムでそれにかかるコードが見つかりました。FLASH WRITEから呼んでいるAT91Boot_DLL.dllを経由して無理やりパッチをあてる事で訳の分からない時間待ちが無くなり、すっきり解消。
次期GCC Developer Liteにおいては、この辺りの対応がなされたFLASH WRITERを同梱する予定です。