
STM32H743对关键中断函数,使用ITCM搬至RAM运行,STM32CubeIDE仿真进入HardFault_Handler报错。其中,ITCM已查找网上多篇教程,修改了ld链接文件,CubeIDE编译能正常通过,且map文件中,对已搬至ITCM RAM区域运行的中断函数的地址是OK的。只要上电一仿真运行就会进入HardFault_Handler函数,MCU主频是480MHz,不知是否主频过高所致,请各位大神指点下。 |
哪里能下载ST官方展示的NUCLEO-G071RB配合X-NUCLEO-GFX01M1运行TouchGFX案例的源程序?
I2C从模式编程之STOP中断
I2C从模式编程之空闲状态
使用Cubeprogrammer无法连接、连接G431和一块H750的板子可以连上但是连另外一块H750的板子和F407的板子就直接报错,这个应该如何解决。
Stem32CubeIDE能像Keil一样指定不同文件下的代码编译到不同的FLASH地址吗?比如部分代码存放到内部FLASH,另一部分存放到外部QSPI的FLASH中
stm32cubemx 创建STM32H747I工程 M7正常M4为什么不正常KEIL工程.c文件上面有减号标志
STMHAL库的USB每次插拔时识别位置在哪里是?
学习应用TouchGFX通过哪种途径比较好
STM32CubeIDE在线调试的时候如何让watch的变量实时刷新
STM32开发板一般都会配置arduino接口
我这边也找了相应开发板做了相关测试,的确碰到了你说的现象。
说实话,目前还没找到原因。找了个变通的方法,将整个xxx_it.c文件放到ITCM去,这样操作可行。我这样修改的ld文件,
你参考试试看:
.itcm_text :
{
. = ALIGN(4);
_sITCM = .;
*stm32h7xx_it.o (.text .text*)
*stm32h7xx_it.o (.rodata .rodata*)
. = ALIGN(4);
_eITCM = .;
}>ITCMRAM AT> FLASH
对于搬至ITCM RAM区域运行的中断函数,如果不搬至此区域,上电仿真则正常,不会进入HardFault_Handler函数。这个问题,已查找两三天,FAE也无法联系上,实在是找不到人帮忙解决,请各位大神指点下。
谢谢大佬的意见,我再研究研究
查看汇编代码,我发现是一些无用的函数(代码文件中有此函数,但未调用的函数)会自动编译至0x0处,这可能是原因所在,但不好解决啊。
我尝试过MPU开启,关闭指令CAHE等都没用,奇怪的是DTCM都可以正常使用。
[md]是的。这些fault提示我也看到了。后面会继续关注这个问题。
我试了下,文件方式还是不行,用汇编代码发现在地址0x0处还是有其他函数