STM32のFLASHへシリアルポート経由でUSARTを使ってデータを書き込むプログラムを作った. 書き込むデータはモトローラS形式ファイル(.mot)でなければならない. また,書き込み先はFLASHである必要はなく,RAMでもよい.
プログラム言語には,ほとんどOSに依存しないコードにするためにpythonを使った. また,シリアルポートを操作するために,pyserialモジュールを使っている.
stm32writer ディレクトリの中身が書き込みプログラム(pythonスクリプト)であり, 下記2点は便利に使うためのスクリプトである.それぞれの使い方は後述する.
STM32のF1, F2, およびF4シリーズに対応するように努めた.(2012/03/18現在)
しかし,実際に動作確認がとれているのはほんの一部の素子だけである. 当然,新しい素子には対応していない可能性がある. その場合,以下のパラメータ定義ファイルに新しい素子を追加すれば使えるかもしれない.
python環境とpyserialモジュールがインストールされている必要がある. Windowsの場合,以下の手順でセットアップする.
基本的な使い方は,オプションと書き込むファイルをコマンドライン引数にして "stm32writer/stm32writer.py" を実行すればよい. 例えば,次のように使う.
オプション | 説明 |
---|---|
--port=(PORT) | シリアルポートを指定 |
--baudrate=(RATE) | ボーレートを指定 |
--show-erase-page | 消去するページもしくはセクター番号を表示する |
--compare | 書き込み後,読み込んで元データと比較する |
--go | 書き込み後,スタートアドレスにジャンプする |
--time | STM32との接続がとれた瞬間からの経過時間を表示する |
上記「使用方法1」が基本ではあるが, 毎回オプションを指定するのはあまりに面倒なので, 各オプションをあらかじめ設定したpythonスクリプト(write_main.py, write_static.py)を準備した. 書き込み後TeraTermなどの通信ソフトを起動するようにしている.
環境と目的にあわせてスクリプト内のいくつかの項目を書き換える必要がある.
使い方は以下の通りである.
本プログラムを作成するにあたって参考にした情報を列挙する.
1, 2 ともにSTMicroelectronicsのSTM32のページ内のResourcesから入手できる.