Stlink: STM32F030R8T6:フラッシュローダーの実行エラー

作成日 2020年05月17日  ·  9コメント  ·  ソース: stlink-org/stlink

  • プログラマー/ボードタイプ:ST-Link v2.1
  • プログラマーファームウェアバージョン:STSW-LINK007 2.37.26
  • オペレーティングシステムとバージョン:Linux、XUbuntu 18.04 LTS
  • Stlinkツールのバージョンおよび/またはgitcommit hash:1.6.0-311-ga98b094
  • Stlinkコマンドラインツール名:st-flash
  • ターゲットチップ(および該当する場合はボード):STM32F030R8T6、Nucleo-64

コマンドライン-出力:

> st-flash write dioda.bin 0x08000000
st-flash 1.6.0-311-ga98b094
2020-05-17T17:59:37 INFO common.c: F0xx: 8 KiB SRAM, 64 KiB flash in at least 1 KiB pages.
file dioda.bin md5 checksum: d3ad84699b33f431b86a77e53b16b11a, stlink checksum: 0x0000080b
2020-05-17T17:59:37 INFO common.c: Attempting to write 56 (0x38) bytes to stm32 address: 134217728 (0x8000000)
2020-05-17T17:59:37 INFO common.c: Flash page at addr: 0x08000000 erased
2020-05-17T17:59:37 INFO common.c: Finished erasing 1 pages of 1024 (0x400) bytes
2020-05-17T17:59:37 INFO common.c: Starting Flash write for VL/F0/F3/F1_XL core id
2020-05-17T17:59:37 INFO flash_loader.c: Successfully loaded flash loader in sram
2020-05-17T17:59:37 ERROR flash_loader.c: flash loader run error
2020-05-17T17:59:37 ERROR common.c: stlink_flash_loader_run(0x8000000) failed! == -1
stlink_fwrite_flash() == -1

期待/説明:

もちろんフラッシュされることを期待してください。 より詳しい情報:

  • st-infoはプログラマーを認識します
  • st-flashに--resetを追加しても役に立ちません
  • ボードのパワーサイクルは役に立ちません
  • フラッシュする前にチップを大量に消去しても効果はありません
  • STM32F103RBT6(同じST-Linkファームウェアバージョン)を備えた同様のNucleoボードは、同じソフトウェアとUSBケーブルで問題なく点滅します
bufixed componenst-flash erroflash-loader olinux programmestlinkv2-1 staturesolved targestm32f0

最も参考になるコメント

私のブランチを試してみませんか(私の考えの証拠として、すばやく汚い修正を加えて)?

私はあなたのブランチから構築しました、そして確認することができます、それは問題を修正します。

全てのコメント9件

多分私はここで何が問題なのか知っています。 私のブランチを試してみませんか(私の考えの証拠として、すばやく汚い修正を加えて)?

https://github.com/chenguokai/stlink/tree/stlink-v3_pre

私が正しければ、この問題は、flashloader.cのダーティフィックスと組み合わされた新しいフラッシュローダーの非PICコードに関連しています。

私のブランチを試してみませんか(私の考えの証拠として、すばやく汚い修正を加えて)?

私はあなたのブランチから構築しました、そして確認することができます、それは問題を修正します。

@chenguokai :ここには何がありますか?

私が述べたように、GPLライセンスのフラッシュローダーはPIC(位置に依存しないコード)ですが、新しいものはそうではありません。 そのため、ベースアドレスを指定してリンカースクリプトを作成する必要がありました。

コンパイルされたフラッシュローダーを分解することにより、アドレッシングモードがPC(プログラムカウンター)相対であることを認識しました。 それらは一種のPICだと思ったので、flashloader.cのmarcoとしてダーティハックを保持しました。 この問題から、フラッシュローダーコードは間違いなくPICではないことが確認できます。したがって、2つのnopをバイナリの前に追加するのではなく、フラッシュローダーコードに追加する必要があります。

それでは、6月のリリースのPRを提出することもできますが、最後のPRの後に削除したstlink-v3_preではなく、 developブランチを作成してください。 これが副作用を引き起こす可能性があるかどうかはわかりません。

@ grzegorz-kraszewski私のPRがこの問題を修正するかどうかを確認してください:-)

@ grzegorz-kraszewski私のPRがこの問題を修正するかどうかを確認してください:-)

別のものをトリガーするので、わかりません:

> st-flash write ~/dioda_f030.bin 0x08000000
st-flash 1.6.0-314-g273e798
2020-05-18T10:59:30 WARN common.c: unknown chip id! 0x374b
Failed to connect to target

@ grzegorz-kraszewski:これは別のトピックのように見えます。 そのための新しいチケットを開いてください。

別のものをトリガーするので、わかりません:

再起動またはプラグを抜いてプラグを差し込むと役に立ちますか?

このページは役に立ちましたか?
0 / 5 - 0 評価