スタックポインタが間違ったアラインメントに設定される(STM32)

テクニカル・ノート 82023

アーキテクチャ:

ARM

コンポーネント:

debugger

更新日:

2018/01/10 8:12

はじめに

STM32 デバイスへの書き込みが失敗し下記メッセージが出力されます。

Warning: Stack pointer is setup to incorrect alignment. Stack addr=0xAAAAAAAA

背景

STM32 デバイスはリードプロテクトが可能です。リードプロテクトが有効になるとフラッシュメモリ内のデータは0xAAとリードされます。Coretex-M デバイス がスタートアップすると スタックポインタ値を保持している0x00から0x03番地のバイトがリードされますが、その状況で値0xAAAAAAAAは不正な値です。

解決策

STM32 デバイスのフラッシュを消去する必要があります。 I-jetを使用するSTM32デバイス用アンロック・ユーティリティはC-SPYマクロとして提供され、マクロクイック起動ウィンドウから起動できます。  J-Linkを使用する場合は、arm\bin\JLinkSTM32.exe が使用できます。 

全ての製品名は、それぞれの所有者の商標または登録商標です

申し訳ございませんが、弊社サイトではInternet Explorerをサポートしていません。サイトをより快適にご利用いただくために、Chrome、Edge、Firefoxなどの最新ブラウザをお使いいただきますようお願いいたします。