私は、openOCDとGDBでOlimex ARM-USB-OCDドングルを使ってstm32f103マイクロをプログラムしてデバッグしています。私が使用しているIDEは、Olimexの開発キットCDから来て、Eclipseのガニメデを使用しています。openOCDとgdbを使ってSTM32フラッシュをプログラミングする方法
小さなプログラムをRAMにロードして問題なくコードをステップ実行できます。
私はRAMに収まらない大きなプログラム(今は20Kです)を持っていますので、フラッシュ(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を使って.textセクションと.dataセクションをフラッシュし、main()関数の先頭に.dataセクションをRAMにコピーしました。 – mksuth