[STM32H7] 在KEIL中下载STM32H7A3程序出错与在RAM中调试的解决方法

[复制链接]
1908|3
 楼主| 纪国圣 发表于 2021-1-2 15:30 | 显示全部楼层 |阅读模式
使用STM32CubeMX V6.1.1配置Nucleo-STM32HA3ZI后,使用KEIL V5.31编译下载,结果出现如下错误:
1.PNG
一开始估计下载算法有问题,于是将pack包由V2.5升级到V2.7,结果下载还是报错。在网上搜索解决方法,降低时钟频率和改变复位方式,仍未解决。后来尝试下载官方例程,只有STM32Cube_FW_H7_V1.8.0\Projects\NUCLEO-H7A3ZI-Q\Applications\FatFs\FatFs_RAMDisk可以正常下载。比较两个工程配置的差别,发现如下方框中的差异:
2.PNG
3.PNG 按图所示修改之后,可以正常下载:
4.PNG
下载报错的问题解决后,下面开始在RAM中调试的配置。


新建工程SRAM,点击魔术棒打开工程配置。在Traget选项卡中将IROM1改为SRAM1的地址,size大小为256K,删除IRAM2的内容:
5.PNG
这表示将SRAM1内存区域作为程序存储的位置。
在C/C++选项卡中的Define处添加VECT_TAB_SRAM以指定中断向量的位置。
6.PNG
在Debug->Settings->Flash Download选项卡中勾选Do not Erase和Reset and Run,并按照之前IROM1的设置配置方框内的内容:
7.PNG
之后在Debug->Settings->Debug选项卡中勾选Download Options中所有的选项:
8.PNG
在Debug选项卡中勾选Load Aplication at Starup,选择DebugInRAM.ini:
9.PNG
DebugInRAM.ini内容如下:
10.PNG
其中0x24000000按照之前IROM1的设置填写。
编译下载后可以看到程序开始于0x24000000处:
11.PNG
先选择一个名称为FLASH的工程,将程序下载至STM32H7A3的flash内。可以看到每秒打印This is flash:
12.PNG
打开SRAM工程,点击Debug,可以看到每秒打印This is sram:
13.PNG
说明SRAM工程成功运行,上述配置正确。
按下复位或者断电重启,FLASH的工程继续运行。
FLASH和SRAM测试程序:
FLASH.zip (865.31 KB, 下载次数: 14)
SRAM.zip (871.67 KB, 下载次数: 18)
 楼主| 纪国圣 发表于 2021-1-2 15:39 | 显示全部楼层
@香水城
在STM32CubeIDE无此问题,Keil却出现这个问题。这个下载配置错误能否让官方早点修改一下?谢谢。
香水城 发表于 2021-1-2 19:54 | 显示全部楼层
你是指那个KEIL环境下的下载算法配置那个地方吧,后面应该会跟上。这个芯片比较新。
磨砂 发表于 2021-2-1 09:54 | 显示全部楼层
反馈的太及时了 楼主跟进的速度很快啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

77

主题

407

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部