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

[复制链接]
812|37
hudi008 发表于 2026-2-14 11:52 | 显示全部楼层
高优先级中断频繁触发,可能打断低优先级中断的返回流程,导致逻辑混乱。
jtracy3 发表于 2026-2-14 12:36 | 显示全部楼层
单片机使用中断向量表来确定中断处理函数的地址。
cashrwood 发表于 2026-2-14 13:30 | 显示全部楼层
验证目标地址是否有有效代码              
jonas222 发表于 2026-2-14 14:38 | 显示全部楼层
跳转条件未持续满足              
earlmax 发表于 2026-2-14 15:55 | 显示全部楼层
检查主循环/状态机逻辑是否更新了状态
adolphcocker 发表于 2026-2-14 16:17 | 显示全部楼层
程序计数器未正确更新              
abotomson 发表于 2026-2-14 17:32 | 显示全部楼层
从中断返回后继续主程序?              
tifmill 发表于 2026-2-15 11:22 | 显示全部楼层
使用调试器              
zerorobert 发表于 2026-2-15 15:26 | 显示全部楼层
频繁调用子程序或中断时,若堆栈空间不足,可能导致返回地址被覆盖,跳转后返回错误位置。
bartonalfred 发表于 2026-2-15 16:02 | 显示全部楼层
合理使用无条件跳转指令或结构化编程控制流程。
geraldbetty 发表于 2026-2-15 17:51 | 显示全部楼层
相对跳转的偏移量计算错误,可能导致跳转后实际仍在原代码附近执行。
vivilyly 发表于 2026-2-15 18:35 | 显示全部楼层
中断向量表未重定向              
qiufengsd 发表于 2026-2-15 19:20 | 显示全部楼层
指向了空地址、数据区、或者根本没有代码
mickit 发表于 2026-2-15 20:31 | 显示全部楼层
跳转目标是一个有效的、有正确指令的地址。
jackcat 发表于 2026-2-23 19:24 | 显示全部楼层
可能导致程序指针PC出错,跳到不可预知的位置。
yorkbarney 发表于 2026-2-23 19:59 | 显示全部楼层
堆栈被破坏导致 RET 返回错误地址
yiyigirl2014 发表于 2026-2-25 10:25 | 显示全部楼层
通常是因为程序跳转的逻辑没有彻底 “切断” 原程序的执行上下文。
星闪动力 发表于 2026-3-3 11:28 | 显示全部楼层
可能是因为程序设计中有条件判断或定时器中断,使程序在特定情况下跳转,但仍执行原程序部分。
MintMilk 发表于 2026-3-3 21:22 | 显示全部楼层
中断处理要确保状态保存和恢复,防止时序混乱,使用中断服务程序(ISR)堆栈管理。
小熊01 发表于 2026-3-5 17:29 | 显示全部楼层
程序跳转时,若仍执行原程序可能因条件判断错误、外部干扰或硬件故障等。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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