ST-Linkであらゆる種類のSWDプログラマブルチップ(ARM-MCU)をプログラムできますか?
ST-Linkであらゆる種類のSWDプログラマブルチップ(ARM-MCU)をプログラムできますか?
回答:
st-linkをフラッシュして、Black Magic Probeに変換することもできます。同じ画像で青い錠剤もBMPに変換されます。
私は両方をやった。ブルーピルには、BMPエクスポートのusb-rs232ブリッジが簡単に利用できるという利点があります。
:BMPは、これらに限定され、それだけではないために、チップの範囲をサポートする
STマイクロエレクトロニクスSTM32F0、STM32F1、STM32F3、STM32F2、STM32F4、STM32F7、STM32L0、STM32L1、STM32L4
アトメルSAM3N、SAM3X、SAM3S、SAM3U、SAM4S、SAM4L、SAM D20、D21
Nordic nRF51、nRF52(これらは私がBMPを使用する理由です)
BMPはオープンソースであり、商用プログラミングに使用でき、ハードウェアは安価です(「実際の」BMPは約60ドルで、amazonの青い錠剤5パックは20ドル未満で出荷されていました)。
既存の回答に追加するには、一部のチップは、ST-LINKおよびOpenOCDで正しく動作しないことがわかっています。
特に、ターゲットがMCUのAtmel SAMD21ファミリーからのものである場合、奇妙な問題に遭遇する可能性が高く、プロセッサーが検出されますが、フラッシュセクターを消去しようとするとエラーで失敗します。
私の知る限り、問題はNVMCTRL-> CTRLAレジスタへのハーフワード(16ビット)書き込みです。STLinkはハーフワードメモリアクセスを実装しておらず、OpenOCDは2バイト操作としてエミュレートします。残念ながら、CTRLAレジスタはキーとコマンドで構成されており、アトミックに書き込む必要があります。STLinkが2バイトを書き込む場合、NVMコントローラーはステータスにPROGEビットを設定します:「無効なコマンドまたは不正なキーワード、あるいはその両方がNVMコマンドレジスタに書き込まれた/書き込まれた」
回避策には、OpenOCDをコードパッチで再コンパイルすることが含まれます。楽しくない。
ただし、ST-Linkを(別のST-Linkを介して)フラッシュしてもかまわない場合は、それをCMSIS-DAPアダプターに変換できます。これは、SAMDで正常に機能し、STM32およびその他のCortex-Mでも機能するはずです。チップ。
はい、これは可能だと思いますが、試したことはありません。ST以外のデバイスをプログラミングしようとした場合、STライセンス契約に違反する可能性があります。
例として、Segger(デバッガーとプログラマーのマーケットリーダーの1つ)は、ST-LinkをJ-linkに変換することをサポートします(ST-LinkチップをSeggerコードで本質的に上書きします)。これは可逆的であるため、ST-linkデバイスを元の形式に復元したい場合は、これを行うことができます。
ただし、ST-Linkにはいくつかのバージョンがあります。詳細とこれを行う方法のガイドを提供する次のリンクをご覧ください。
https://www.segger.com/jlink-st-link.html
https://www.segger.com/jlink-ob.html
はい、可能です。Coocox IDEでstlink v2(オリジナル、および中国のUSBスティックタイプのクローン)を使用しています。- Coocoxは、スタンドアロンプログラマアプリ持つCoFlash、チップの多くをプログラムするために使用することができます。SWDインターフェイスを介したLPC176xとLPC175xの2つのシリーズでのみ経験があります。そして、私はそれらのチップで何の問題もありません。また、プログラマーのために特定の変更や更新を行っていません(ただし、元のstリンクでTVCC(PIN1)に高電圧レベルが必要だった場合を除き、それ以外の場合は、チップをプログラムすることができなかったため、19番ピン(3.3vcc)に直接接続しました) stlink v2のピン1に)。