我的牙白 发表于 2025-5-28 20:51

在地址 “0xfffffffe” 处中断,是不是没法仿真调试

用 STM32CubeIDE 开发 STM32F407。因为项目需要我必须在 Bank 2 的扇区 0 上编写代码,而不能在 Flash Bank 1 的扇区 0 上编写。为了实现这个目的,我修改了 system_stm32F4xx.c 文件中的 VECT_TAB_OFFSET 值,如下所示#define VECT_TAB_OFFSET0x00100000UL之后,使用 STM32CubeIDE 切换到调试模式,按下 Resume 按钮,出现如下窗口。

烟雨蒙蒙520 发表于 2025-5-31 23:20

即使 Bank 2 地址是 0x08100000,启动地址仍然必须是 0x08000000,因为 MCU 上电后从该地址读取向量表和 Reset_Handler。

光辉梦境 发表于 2025-6-9 15:30

.在STM32F4微控制器中,如果在地址“0xfffffffe”处发生中断,通常意味着程序执行到了一个非法或未定义的地址。这种情况通常与硬件或软件错误有关,并且可能导致无法进行正常的仿真调试

别乱了阵脚 发表于 2025-6-9 16:00

地址“0xfffffffe”是一个非常高的地址,通常不在STM32F4的合法内存映射范围内

暖了夏天蓝了海 发表于 2025-6-9 16:44

STM32F4的内存映射通常从0x08000000(Flash起始地址)到0x2001FFFF(SRAM结束地址),具体取决于芯片型号和配置

江河千里 发表于 2025-6-9 17:00

访问超出这些范围的地址会导致硬件异常(如Hard Fault或Bus Fault)

淡漠安然 发表于 2025-6-9 18:03

栈空间不足,导致程序执行到非法地址

夜阑风雨 发表于 2025-6-9 19:00

中断向量表配置错误,导致中断处理程序指向非法地址

冰春彩落下 发表于 2025-6-9 20:12

芯片硬件故障或外部干扰导致程序执行异常

一秒落纱 发表于 2025-6-9 22:26

如果异常处理程序本身存在问题(如未正确配置或损坏),调试器可能无法捕获异常,导致程序卡在非法地址

远山寻你 发表于 2025-6-9 23:00

当程序执行到非法地址时,可能会触发硬件异常(如Hard Fault),导致程序进入异常处理流程

三生万物 发表于 2025-6-10 01:00

使用了未初始化或无效的指针,导致程序试图访问非法地址
页: [1]
查看完整版本: 在地址 “0xfffffffe” 处中断,是不是没法仿真调试