CS32

(2019.4.9 作成)

 このページでは中科芯杯(CKS)製のSTM32クローンであるCS32について紹介したいと思います。STM32のクローンとしては別途GigaDevice社のGD32というものもあるのですが、機能追加されているGD32と違いCS32は単なるクローンのようです。クロックがあげられないという話があるようで、もしかしたらSTM32の劣化版かもしれません。

 さて、なぜここでCS32の紹介をするかというと、単に管理人が間違えて買ってしまっただけなのですが、動かすのにひと手間必要だったため紹介しておこうと思ったまでです。

 なおAliexpressで探すと本家STM32に対して数十円しか変わらないので、わざわざ敢えて怪しげなCS32を購入するほどのものではないと思います。

課題

 課題というほどの内容ではありませんが、SW4STM32という開発環境でOpenOCDを用いてCS32をデバッグ実行しようとすると左のようなエラーメッセージが表示されてデバッグができません。

 内容としてはマイコンのIDとして 0x1ba01477を期待しているのに対して、 0x2ba01477という返事が来たという内容になります。

対策

 当然クローンなので正式なサポートはありませんので、自分でこの問題に対処する必要があります。このページにヒントがあったので、自分なりに対処してみましたので、ここで紹介しようと思います。

 ただし管理人はOpenOCDなどについてさっぱりわかっていませんので、もしかしたらもう少しエレガントなやり方があるかもしれません。

1. "cs32f1x.cfg"ファイルの作成

 まずCS32用にCPUIDを書き換えたcfgファイルを作成します。STM32用のファイルは"stm32f1x.cfg"という名前で保存されています。Ac6のフォルダから該当のファイルを探して見つけます。

 管理人の環境では以下のフォルダにありました。バージョン番号微妙に違うかもしれませんが、似たような名前のフォルダに入っていると思います。

"C:\Ac6\SystemWorkbench\plugins\fr.ac6.mcu.debug_2.4.0.201902141520\resources\openocd\st_scripts\target"

 このファイルを見つけたら"cs32f1x.cfg"などわかりやすい名前にして同じフォルダーに保存します。

 保存したらファイルの中身を開き

set _CPUTAPID 0x1ba01477

の文字を

set _CPUTAPID 0x2ba01477

に変更して保存します。

2. "xx_Debug.cfg"ファイルの作成

 次にプロジェクトのフォルダにあるcfgファイルを編集します。"<プロジェクト名>_Debug.cfg"というファイルがあるので、これを同じフォルダーにコピーして"<プロジェクト名>_DebugCS32.cfg"などわかりやすい名前に変更します。

 そしてこのファイルを開き、一番下の行の

source [find target/stm32f1x.cfg]

の文字を

source [find target/cs32f1x.cfg]

として変更します。

3. デバッガの設定変更

 最後にメニューからRun -> "Debug configuration"を選んで右のウィンドウを出します。

 このDebuggerタブにあるConfiguration Script をUser Definedに変更し、先ほど作成したプロジェクトフォルダのxx_DebugCS32.cfgにスクリプトを変更します。

 これを行わないとデバッグ実行毎にcfgファイルが上書きされるのでうまく動かないです。

 

 SW4STM32のバージョンアップやプロジェクトごとにこれらを行う必要がありますので、結構面倒です。このためクローンであるCS32を購入するのではなく、本家のSTM32を使用することをお勧めします。値段もあまり変わりませんので。

コメント: 0