皆さん御存知の通り、世界的な半導体不足とかSTフランス工場のストの影響でSTM32をなかなか入手できない状況となっています。
ステイホームの暇つぶしに基板設計をしようと思うも石が手に入らずやる気が起きない日々が続いていましたが、MouserでSTM32H755ZIT6の在庫が10個程度奇跡的に復活していたため出会って5秒で購入しました。
さて、STM32H755は480MHzのCortex-M7コア(以下CM7)と240MHzのCortex-M4コア(以下CM4)のデュアルコア仕様となっています。
プログラマ視点で言うとCM7のD-Cacheのおかげでキャッシュコヒーレンシを考慮しないとバグり散らかす素晴らしい石です。
デュアルコアマイコンでは同一バス上にあるメモリと同期用のペリフェラル(STM32ではハードウェアセマフォ:HSEM)を用いてコア間の通信を行います。
このようなコア間の通信をデバッグする場合、当然両コアを同時にデバッグする必要が出てきます。
以下ではSTM32CubeIDEで複数コアを同時にデバッグする方法を紹介します。
なおこの方法は以下のST公式動画の後半で説明されている方法と同じ内容となります。
設定方法
Cortex-M7側
- CM7、CM4共にHalt状態になるように設定します。
- CM7側のデバッグを開始する時点でCM4のプログラムも書き込みされるように設定します。
Cortex-M4側
- CM4側のデバッグ用のポート番号は61238となります。
- CM7側で両コア共にHalt状態となるためこちらではリセットは行わないようにします。
- CM4側のプログラムはCM7側のデバッグ開始時に書き込みされるように設定したため、こちらでは書き込みしないようにします。
以上の設定を行った後、CM7側のデバッグを先に開始し、プログラムのロードが終了したらCM4側のデバッグも開始することで両コアの同時デバッグが可能です。
ロボットと電子工作とプログラミング!
女の子は甘いもので出来てる?