打印
[STM32H7]

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

[复制链接]
1419|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
使用STM32CubeMX V6.1.1配置Nucleo-STM32HA3ZI后,使用KEIL V5.31编译下载,结果出现如下错误:

一开始估计下载算法有问题,于是将pack包由V2.5升级到V2.7,结果下载还是报错。在网上搜索解决方法,降低时钟频率和改变复位方式,仍未解决。后来尝试下载官方例程,只有STM32Cube_FW_H7_V1.8.0\Projects\NUCLEO-H7A3ZI-Q\Applications\FatFs\FatFs_RAMDisk可以正常下载。比较两个工程配置的差别,发现如下方框中的差异:

按图所示修改之后,可以正常下载:

下载报错的问题解决后,下面开始在RAM中调试的配置。


新建工程SRAM,点击魔术棒打开工程配置。在Traget选项卡中将IROM1改为SRAM1的地址,size大小为256K,删除IRAM2的内容:

这表示将SRAM1内存区域作为程序存储的位置。
在C/C++选项卡中的Define处添加VECT_TAB_SRAM以指定中断向量的位置。

在Debug->Settings->Flash Download选项卡中勾选Do not Erase和Reset and Run,并按照之前IROM1的设置配置方框内的内容:

之后在Debug->Settings->Debug选项卡中勾选Download Options中所有的选项:

在Debug选项卡中勾选Load Aplication at Starup,选择DebugInRAM.ini:

DebugInRAM.ini内容如下:

其中0x24000000按照之前IROM1的设置填写。
编译下载后可以看到程序开始于0x24000000处:

先选择一个名称为FLASH的工程,将程序下载至STM32H7A3的flash内。可以看到每秒打印This is flash:

打开SRAM工程,点击Debug,可以看到每秒打印This is sram:

说明SRAM工程成功运行,上述配置正确。
按下复位或者断电重启,FLASH的工程继续运行。
FLASH和SRAM测试程序:
FLASH.zip (865.31 KB)
SRAM.zip (871.67 KB)

使用特权

评论回复
沙发
纪国圣|  楼主 | 2021-1-2 15:39 | 只看该作者
@香水城
在STM32CubeIDE无此问题,Keil却出现这个问题。这个下载配置错误能否让官方早点修改一下?谢谢。

使用特权

评论回复
板凳
香水城| | 2021-1-2 19:54 | 只看该作者
你是指那个KEIL环境下的下载算法配置那个地方吧,后面应该会跟上。这个芯片比较新。

使用特权

评论回复
地板
磨砂| | 2021-2-1 09:54 | 只看该作者
反馈的太及时了 楼主跟进的速度很快啊

使用特权

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

本版积分规则

77

主题

407

帖子

5

粉丝