WCH沁恒单片机
直播中

唯爱萌meng

9年用户 1017经验值
擅长:可编程逻辑
私信 关注
[问答]

CH573中断函数修改后,发现程序无法运行是什么原因?怎么避免?

有个问题,有时候中断函数修改后,发现程序无法运行。经过研究发现,原来正常的程序,只是在中断程序的任意位置加上nop()语句,就不正常。
而且,更奇葩的是,加上nop()的个数为偶数,就正常,而奇数就不能运行。
然后我试试使用__attribute__((aligned(x))))将中断函数进行地址对齐,发现也能影响MCU的运行。
这个不能运行是指MCU上电后,不断复位。
请问下技术人员,这个问题是怎么回事,怎么避免?
  

回帖(2)

刘华湘

2022-8-25 09:58:56

我测了,编译运行没什么区别。
举报

陈利妮

2022-8-25 09:59:03
这个跟量多量少没什么必然的联系,理论上翻译到底层都是指令。
中断代码长,建议可以整理一下中断的执行逻辑,看看是不是有漏洞。还有如果使用Tmos,也要考虑中断对于Tmos任务的影响。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分