打印
[开发工具]

STM32CubeIDE设置成下载入SRAM中运行调试

[复制链接]
628|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
1.背景:
        使用的STM32芯片型号是STM32H750,该芯片的flash只有128K,满足不了我们的程序大小需求,所以给该芯片添加一个外部FLASH,就是使用QSPI挂载一个内存芯片;

        要想下载程序到外部FLASH中,就还需要引导的下载算法,然后要启动外部FLASH中的程序,还需要一个下载在芯片内部FLASH的引导Bootloader,使得内存芯片通过QSPI映射到芯片,并引导加载在外部FLASH中的APP;

        但是在APP调试过程中,使用STM32CubeIDE的调试功能,并不能够满足我们需求,APP程序在修改为符合下载到外部FLASH中的时候,xxx_FLASH.ld文件的内存区域就被修改过,再使用STM32CubeIDE默认的调试功能,会启动失败;

2.配置过程
选用正确的链接脚本,创建工程时,会有2个ld后缀的链接脚本,分别对应于从flash启动和sram启动的脚本;
编译时要define VECT_TAB_SRAM;
debug config设置正确的程序PC;
在不影响我们正常程序编译和烧录的情况下,添加调试工具,图片步骤如下所示:

1、在项目属性中新建一个配置:





2、配置新建的“TEST”
添加 VECT_TAB_SRAM



3、选择xx.ld编译文件



4、点击“应用并关闭”后,编译一下工程,选择新建的配置文件



5、新建一个调试配置



6、设置新建的调试配置,选择刚刚新编译出来的xx.elf文件



7、修改默认起始地址



8、选择新建的调试配置进行调试,并且在main函数中,前面添加引导指针 SCB->VTOR = 0x24000000;



程序可以正常调试,而且不影响烧录进外部FLASH的配置;

3.注意事项
在第7步的修改默认起始地址中,起始地址可以参考



————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/sanyuedtaifen/article/details/141639113

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

30

主题

70

帖子

0

粉丝