質問

STM32F103 Microをプログラムしてデバッグするために、OpenOCDとGDBを備えたOlimex ARM-USB-OCDドングルを使用しています。私が使用しているIDEは、Olimex Dev-Kit CDから来て、Eclipse Ganymedeを利用しています。

小さなプログラムをRAMにロードして、問題なくコードを踏むことができます。

私は今、RAM(わずか20k)に収まらないはるかに大きなプログラムを持っているので、Flash(128K)から実行したいと思います。

プログラムコードがフラッシュセクション(アドレス0x8000000)に移動する必要があることを示すリンカースクリプトを変更しましたが、GDBはプログラムのロードに失敗します。

(gdb) 
20 load main.out
&"load main.out\n"
load main.out
~"Loading section .text, size 0xb0e6 lma 0x8000000\n"
Loading section .text, size 0xb0e6 lma 0x8000000
&"Load failed\n"
Load failed

GDBにプログラムをフラッシュにロードするにはどうすればよいですか?

役に立ちましたか?

解決

OpenOCDで直接点滅することを検討しましたか?同様のセットアップでこれを行っていますが、ARM7マイクロコントローラーを使用しています。

 openocd -f flash.cfg

これが私のflash.cfgです

set CHIPNAME at91sam7x512

source [find interface/olimex-arm-usb-ocd.cfg]
source [find target/at91sam7sx.cfg]

init    
halt

flash probe 0
flash probe 1

flash erase_sector 0 0 15
flash erase_sector 1 0 15

flash write_image my-image.elf

at91sam7 gpnvm 0 set
at91sam7 gpnvm 1 set
at91sam7 gpnvm 2 set
shutdown

GPNVMのものはATMEL SAM7固有ですが、このスクリプトはSTM32バージョンを作成するための適切な出発点を提供するはずです。 OpenOCDは最初は少し混乱する可能性がありますが、ドキュメントは良いと読む価値があります(http://openocd.berlios.de/)。現在の安定したバージョン(0.4.0)は非常に古いため、問題がある場合は、最新のソースコードをダウンロードして独自のコードをコンパイルしてください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top