使用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)
|