首页 > 编程语言 >stm32cubeide 调试非 0x08000000 地址程序配置

stm32cubeide 调试非 0x08000000 地址程序配置

时间:2024-04-02 10:47:14浏览次数:36  
标签:ld 0x08000000 FLASH 地址 stm32cubeide App 调试

使用 stm32cubeide 调试非 0x08000000,我们需要一些配置

.ld链接脚本条件编译

目前如果要修改程序的启动地址需要修改两个地方

  1. system_stm32f103xx.c中的 VECT_TAB_OFFSET,可通过宏定义开启或者关闭
  2. .ld 链接脚本,可通过宏进行条件编译,也可以直接修改 ld,创建不同的链接脚本文件,创建不同配置
/* Memories definition */
MEMORY
{
  RAM    (xrw)    : ORIGIN = 0x20000000,   LENGTH = 64K
  FLASH    (rx)    : ORIGIN = 0x8000000,   LENGTH = 496K
}

#ifdef DEBUG
  FLASH = 0x8000000;
#else
  FLASH = 0x8004000;
#endif

调试非0x08000000地址的App程序时软件重启配置

参考教程:STM32CubeIDE-Workshop-2019/hands-on/09_BOOT-APP/README.md at master · ethanhuanginst/STM32CubeIDE-Workshop-2019 (github.com)

直接调试App程序,只需要修改 ld 脚本文件及向量即可,但此时无法使用软件重启,会重启失败,此时需要对软件重启参加参数,指定两个指针,设置如下:

set $sp = *(unsigned int*)0x08004000 
set $pc = *(unsigned int*)0x08004004

App 起始地址为 0x08004000

标签:ld,0x08000000,FLASH,地址,stm32cubeide,App,调试
From: https://www.cnblogs.com/ZyArdu/p/18110061

相关文章

  • vivado通过eco修改网表加快调试
    在FPGA工程中,在调试过程中需要插入ila来验证设计的准确性,但一次验证不能达到设计的初衷,需要反复修改ila来定位问题,往往一个大工程编译、布线时间较长,反复定位问题非常耗费时间。xilinx系列的vivado16.4以上版本支持了类似ic设计的ECO功能。1、dcp文件在implement成功后,/xxx.runs......
  • 通过企业微信API接口发送消息(通过postman或者企业微信开发者中心《服务端API调试工具
    如何创建一个与企业后台互动的自建应用添加自建应用登录企业微信管理后台->应用管理->自建下创建应用,填写必要的logo,应用名称,在可见范围中选择部门/成员获取应用的相关信息agentid和secret;应用里创建完毕可出现在选择了可见范围的成员的企业微信终端上。使用Postman调试api......
  • clion + EmmyLua插件实现Lua的本地调试
    安装好EmmyLua插件后,它会提供两种调试方式:1.使用mobdebug调试2.使用EmmyDebugger调试。mobdebug是用lua写的一个调试模块,基于网络通信(所以依赖luasocket),以字符形式传递调试命令和返回结果。所以使用mobdebug前先需要安装luasocket模块。由于基于网络,所以支持跨机器调试,本机调试......
  • [网络调试]如何在局域网内搭建自己的NTP服务器
    有时候有些特别的需求,比如我这个局域网内有N多设备需要用到时间同步,但这些设备无法上网,各自的时间不一致很是烦恼,原来windows自己是可以搭建自己的NTP服务器的!以下是我从别人的博客寻找的方法,转载一下:https://blog.csdn.net/hyf_forward/article/details/134570960; 1.搭建环境......
  • vscode远程连接docker容器打断点调试python项目
    vscode远程连接服务器docker容器前提:本地和远程都安装docker插件。1.安装完docker插件后点击插件图标2.如果登录的账号没有docker权限的会会报权限不足,使用以下命令把用户加到docker权限组中sudogpasswd-a<当前登陆用户名>docker#从用户组中删除:sudogpasswd-d<当前......
  • STM32之HAL开发——Keil调试工具介绍
    Debug介绍 在Keil工具中有许多常用的小工具,下面将会依次为大家介绍每个工具的用途。命令行窗口 在窗口内可以输入一些指令,来进行断点设置以及删除,一般不常用反汇编窗口可以查看当前C代码的汇编指令标志窗口寄存器窗口可以用来查看......
  • 调试逻辑及变量声明顺序
    模型功能使用ILA观察信号观察变量的转化触发信号的设立ILA调试状态机的编写VIO的手动控制模型框图ila_0u_ila_0(.clk(clk),.probe0(probe_0));实现步骤ILA调试核的使用直接调用该IP核,可以实现一个在线逻辑分析仪的功能ILA核的设置包括信号个数(对应位宽......
  • 调试远程云服务器
    最近在复现论文里面的代码,结果实验室里面的2080和论文结果相差有点多,同时我的笔记本调试显卡显存太小,因此尝试使用云服务器上面的GPU跑,下面是采用Deepln的云服务器跑的代码的一些总结,这是他们的网址https://www.deepln.com/#/设置进程保护指令sudoapt-getupdate&&sudo......
  • GDB调试指令
    GDB流程控制命令功能命令简写重新运行调试的程序runr继续运行continuec执行下一步nextn执行N次下一步nextNnN执行上次执行的命令[Enter]单步进入steps执行完当前函数返回到调用它的函数finishf指定程序直到退出当前循环体until......
  • nukkit maven 项目调试插件
    首先添加配置选择添加jar应用然后填入配置信息最后当每次重新构建重构后,手动更新plugins下的插件,当你服务器的jar包与构建出来的jar包一致时即可在idea中给插件代码打断点。......