gpt4 book ai didi

gdb - 如何使用 openOCD 和 gdb 对 STM32 flash 进行编程

转载 作者:行者123 更新时间:2023-12-04 14:44:40 25 4
gpt4 key购买 nike

我正在使用带有 openOCD 和 GDB 的 Olimex ARM-USB-OCD 加密狗来编程和调试 stm32f103 micro。我使用的 IDE 来自 Olimex dev-kit CD,并使用了 eclipse ganymede。

我可以将一个小程序加载到 RAM 中,并且可以毫无问题地单步执行代码。

我现在有一个更大的程序,它不适合 RAM(只有 20K),所以我想从闪存(128K)运行它。

我已经修改了链接描述文件,指示程序代码应该放在 flash 部分(地址 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 微 Controller 。

 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)已经很老了,所以如果你有问题,下载最新的源代码并编译你自己的。

关于gdb - 如何使用 openOCD 和 gdb 对 STM32 flash 进行编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4649535/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com