首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Stm32f4discovery - OpenOCD - telnet上传演示程序

Stm32f4discovery - OpenOCD - telnet上传演示程序
EN

Stack Overflow用户
提问于 2013-06-08 20:27:07
回答 1查看 6.4K关注 0票数 4

我很难将演示程序上传到新的stm32f4discovery板上,这就是我要做的:

  1. 连接板与计算机
  2. openocd -f板/stm32f4 finy.cfg
  3. telnet本地主机4444 打开片上调试器>重置init目标状态:由于调试请求而停止的目标,当前模式:线程xPSR: 0x01000000 pc: 0xfffffe msp: 0xfffffffc >闪存write_image demo.hex设备id = 0x10016413闪存大小=8192 k字节闪存写入算法执行stm32x闪存写入保护闪存闪存保护闪存写入失败= 00000010错误在地址0x08000000处写入闪存 我做错什么了?我试过闪存保护,stm32f2x解锁,但响应仍然一样:‘闪存写保护’,我错过了什么?我正在使用来自st.com的预编译演示程序,来自‘STM32F4-Discovery_V1.1.0’包,来自项目/演示/二进制。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-23 16:17:00

在重写闪存之前,必须删除它。

代码语言:javascript
复制
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和十六进制文件,而是使用arm-none-eabi-gdb和ELF,并使用以下命令:

代码语言:javascript
复制
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、偏移量、堆栈地址等原则。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17003519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档