スタックポインタが間違ったアラインメントに設定される(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 が使用できます。
全ての製品名は、それぞれの所有者の商標または登録商標です