STM32デバイスをロックまたはロック解除するための最小スクリプト
システムに次のツールをインストールします。
使用済みバージョン0.10.0
sudo apt-get install openocdXPack OpenOCDインストール手順を参照するか、最新のリリースバージョンをダウンロードして、解凍して権利を変更します。
wget https://github.com/xpack-dev-tools/openocd-xpack/releases/download/v0.10.0-14/xpack-openocd-0.10.0-14-darwin-x64.tar.gz
tar -zxvf xpack-openocd-0.10.0-14-darwin-x64.tar.gz
chmod -R -w xpack-openocd-0.10.0-14-darwin-x64ファイルをアプリケーションフォルダーに移動し、Linuxと同じコマンドで使用するSymlinkを作成します
sudo ln -s /Volumes/Macintosh HD/Applications/OpenOCD/ /usr/share/openocdsudo apt-get install telnetこれを最初の端末で呼び出します
openocd -d3 -f stlink-v2.cfg -c " transport select hla_swd " -f stm32f1x.cfg2番目の端子を開きます
telnet 127.0.0.1 4444チップがロックされている場合、ロックが解除されるまでプログラムすることはできません。
プログラムを実行するためにチップをロックした後、パワーサイクルが必要です。
チップのロックを解除すると、コンテンツが完全に消去されます。
stlinkの構成ファイルは/usr/share/openocd/scripts/interface/ /usr/share/openocd/scripts/target/あります。
さまざまなSTLINKバージョンに注意してください。これは、VIDの1つのcharでのみ異なります。
sh flash.sh path/to/some/file.binデバッグレベル1でファイルをフラッシュします
sh flash.sh path/to/some/file.bin -d1STLINK V2でSTM32F1をロックします
sh lock.shSTLINK V2を使用してSTM32F1でデバッグレベル2でロックを実行します
sh lock.sh -d2 general_un_lock_st.shを使用して、一般的なSTM32デバイスのロックまたはロックを解除します。次の例は、STLINKを使用してSTM32F0のためのものです
sh un_lock_st.sh
/Applications/OpenOCD/bin/openocd
/Applications/OpenOCD/scripts
stlink
stm32f0x
lockSTLINK V2でSTM32F1のロックを解除します
sh unlock.shSTLINK V2を使用してSTM32F1でデバッグレベル1を使用してロック解除を実行します
sh unlock.sh -d1 general_un_lock_st.shを使用して、一般的なSTM32デバイスのロックまたはロックを解除します。次の例は、STLINKを使用してSTM32F0のためのものです
sh un_lock_st.sh
/Applications/OpenOCD/bin/openocd
/Applications/OpenOCD/scripts
stlink
stm32f0x
unlockRaspberry Pi Pinを使用して、ターゲットをパワーサイクルします。
トランジスタまたはMOSFETを介してデバッグインターフェイスのVCCをVCCに接続します。 MOSFETまたはトランジスタは、Raspberry Pi Pinによって制御されます。
このスクリプトを1回実行して、ピンを構成してオンにする必要があります。
python power_cycle.py