
STM32H743对关键中断函数,使用ITCM搬至RAM运行,STM32CubeIDE仿真进入HardFault_Handler报错。其中,ITCM已查找网上多篇教程,修改了ld链接文件,CubeIDE编译能正常通过,且map文件中,对已搬至ITCM RAM区域运行的中断函数的地址是OK的。只要上电一仿真运行就会进入HardFault_Handler函数,MCU主频是480MHz,不知是否主频过高所致,请各位大神指点下。 |
stm32cubemx 创建STM32H747I工程 M7正常M4为什么不正常KEIL工程.c文件上面有减号标志
STMHAL库的USB每次插拔时识别位置在哪里是?
学习应用TouchGFX通过哪种途径比较好
STM32CubeIDE在线调试的时候如何让watch的变量实时刷新
STM32开发板一般都会配置arduino接口
官方开发板demo工程路径
实际工程应用时不使用IO口需要关闭吗?
关于外部事件(EXTI0)触发SPI读取数据
STM32F407高速USB Device模式在外部中断15响应后发送4K个数据,外部中断循环给出,会导致一部分外部中断接收不到
STM32调试内部flash时候,有个疑问?
我这边也找了相应开发板做了相关测试,的确碰到了你说的现象。
说实话,目前还没找到原因。找了个变通的方法,将整个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处还是有其他函数