[技术问答] 【M2L31】为什么多程序跳转后还在执行原来的程序?

[复制链接]
416|4
spicy 发表于 2025-11-13 16:23 | 显示全部楼层 |阅读模式
为什么多程序跳转后还在执行原来的程序?
夏眠毁灭者 发表于 2025-11-13 17:33 | 显示全部楼层
M2L31 多程序跳转后仍执行原程序,常见原因:跳转地址错误(如地址未映射、超出 Flash 范围);未清除中断标志,中断返回覆盖跳转;栈溢出 / 栈指针异常,跳转后栈回退到原地址;编译器优化导致跳转代码被忽略。需检查跳转地址、中断标志、栈配置,关闭不必要优化,通过仿真跟踪 PC 指针定位问题。
樱花树维纳斯 发表于 2025-11-17 15:24 | 显示全部楼层
M2L31 多程序跳转后仍执行原程序,可能因跳转地址错误(如未指向正确入口)、栈配置不当导致返回地址异常,或程序未禁用中断引发冲突。也可能是跳转前未正确初始化目标程序环境(如时钟、外设状态),导致实际未进入新程序,需检查跳转指令及内存映射。
世纪女孩 发表于 2025-11-18 15:43 | 显示全部楼层
M2L31 多程序跳转后仍执行原程序,可能因跳转地址错误(未指向新程序入口)、中断向量表未重映射(新程序中断仍指向原地址)、Flash 分区冲突(程序区重叠被覆盖),或跳转前未关闭中断 / 清除缓存导致异常。需检查地址配置、向量表映射及内存保护设置。
世纪女孩 发表于 2025-11-18 15:43 | 显示全部楼层
M2L31 多程序跳转后仍执行原程序,可能因跳转地址错误(未指向新程序入口)、中断向量表未重映射(新程序中断仍指向原地址)、Flash 分区冲突(程序区重叠被覆盖),或跳转前未关闭中断 / 清除缓存导致异常。需检查地址配置、向量表映射及内存保护设置。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

30

主题

103

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部