4


デモ プログラムを新しい stm32f4discovery ボードにアップロードしようとして問題が発生しました。

  1. ボードをコンピュータに接続する
  2. openocd -f ボード/stm32f4discovery.cfg
  3. telnet ローカルホスト 4444

    Open On-Chip Debugger
    > reset init
    target state: halted
    target halted due to debug-request, current mode: Thread 
    xPSR: 0x01000000 pc: 0xfffffffe msp: 0xfffffffc
    > flash write_image demo.hex       
    device id = 0x10016413
    flash size = 8192kbytes
    flash write algorithm aborted by target
    error executing stm32x flash write algorithm
    flash memory write protected
    flash write failed = 00000010
    error writing to flash at address 0x08000000 at offset 0x00000000
    in procedure 'flash'
    

    私は何を間違っていますか?フラッシュ プロテクト、stm32f2x ロック解除を試みましたが、応答は同じです:「フラッシュ メモリの書き込みが保護されています」。「Project/Demonstration/Binary」の「STM32F4-Discovery_FW_V1.1.0」パッケージの st.com のコンパイル済みデモ プログラムを使用しています。

4

1 に答える 1

4

書き換える前に、フラッシュ メモリを削除する必要があります。

monitor flash protect 0 0 11 off
monitor flash erase_address 0x08000000 0x40000
monitor flash write_image erase *"/path/to/hex/file.hex"* 0 ihex

または、telnet および hex ファイルの代わりに、次のコマンドで arm-none-eabi-gdb および ELF を使用します。

arm-none-eabi-gdb
target remote localhost:3333
monitor reset halt
file */path/to/elf/file.elf*
load
monitor reset
continue

ELF ファイルを使用する場合は、その場所のアドレスを指定する必要がないことに注意してください (通常、ブートローダーでは 0x08000000 または 0x08008000)。

また、 OpenBLT のようなブートローダーの使用を検討してください。VTOR、オフセット、スタック アドレスなどの原則を習得するのに役立ちます。

于 2013-11-23T16:17:00.390 に答える