标签: openocd

如何使用openOCD和gdb对STM32闪存进行编程

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

我可以将一个小程序加载到RAM中,并且没有任何问题地逐步执行代码.

我现在有一个更大的程序,它不适合RAM(只有20K),所以我想从flash(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
Run Code Online (Sandbox Code Playgroud)

我该怎么办才能让gdb将程序加载到flash中?

gdb stm32 openocd

3
推荐指数
1
解决办法
9841
查看次数

lma是什么意思?

使用 OpenOCD 和 GDB 将可执行文件加载到板上时,我得到类似于(摘自此处的片段)的内容:

 $ arm-none-eabi-gdb example.elf
 (gdb) target remote localhost:3333
 Remote debugging using localhost:3333
 ...
 (gdb) monitor reset halt
 ...
 (gdb) load
 Loading section .vectors, size 0x100 lma 0x20000000
 Loading section .text, size 0x5a0 lma 0x20000100
 Loading section .data, size 0x18 lma 0x200006a0
 Start address 0x2000061c, load size 1720
 Transfer rate: 22 KB/sec, 573 bytes/write.
 (gdb) continue
 Continuing.
 ...
Run Code Online (Sandbox Code Playgroud)

lma在这种情况下是什么意思?

embedded gdb openocd

2
推荐指数
1
解决办法
571
查看次数

Windows下的Eclipse GNU ARM插件 - OpenOCD无法启动调试

我在尝试在Windows中为STM32F4 Discovery板设置dev env时遇到问题.

我已经安装了所有必需的文件(用于ARM的GCC,Windows构建工具,Eclipse插件),并且在尝试启动OpenOCD调试时遇到此错误:

Missing mandatory configuration. Fill-in the 'Config options:' field in the Debugger tab.
Run Code Online (Sandbox Code Playgroud)

这是我的调试配置屏幕: 在此输入图像描述

这是我尝试启动它时产生的错误(并构建成功消息):

在此输入图像描述

gcc arm eclipse-cdt openocd stm32f4discovery

2
推荐指数
1
解决办法
1992
查看次数

未找到地址 0x00000000 的闪存组

我正在尝试将我的固件刷新到 STM32L152,但我有:

打开片上调试器 0.10.0+dev-00312-g1a3cbbf3 (2018-03-02-20:11)
根据 GNU GPL v2 授权
有关错误报告,请阅读
    http://openocd.org/doc/doxygen/bugs.html
适配器速度:300 kHz
适配器_nsrst_延迟:100
信息:选定的传输接管了低级目标控制。与普通 JTAG/SWD 相比,结果可能有所不同
没有单独的
信息:无法匹配请求的速度 300 kHz,使用 240 kHz
信息:无法匹配请求的速度 300 kHz,使用 240 kHz
信息:时钟速度 240 kHz
信息:STLINK v2 JTAG v28 API v2 SWIM v6 VID 0x0483 PID 0x3748
信息:使用 stlink api v2
信息:目标电压:1.769170
信息:stm32l1.cpu:硬件有 6 个断点,4 个观察点
信息:在端口 3333 上侦听 gdb 连接
信息:无法匹配请求的速度 300 kHz,使用 240 kHz
信息:无法匹配请求的速度 300 kHz,使用 240 kHz
适配器速度:240 kHz
目标由于调试请求而停止,当前模式:线程
xPSR:0x01000000 PC:0x0800b324 msp:0x20007ffc
STM32L:启用HSI
信息:无法匹配请求的速度 2000 kHz,使用 1800 kHz …

arm openocd stm32l152 cortex-m

2
推荐指数
1
解决办法
4653
查看次数