找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1987|回复: 6
打印 上一主题 下一主题
收起左侧

Keil5里面报错 WARNING L15:MULTIPLE CALL TO SEGMENT

[复制链接]
跳转到指定楼层
楼主
ID:982529 发表于 2021-11-23 21:31 来自手机 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
Keil5里面报错 WARNING  L15:MULTIPLE  CALL  TO  SEGMENT,那位大佬指点一下

2021-11-23_21.31.18.jpg (771.9 KB, 下载次数: 20)

2021-11-23_21.31.18.jpg
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:96682 发表于 2021-11-23 21:41 来自手机 | 只看该作者
用屏幕截图比这清晰多了
回复

使用道具 举报

板凳
ID:624769 发表于 2021-11-23 21:42 | 只看该作者
重复调用,

原则上,中断和主程序是不能调用同一个函数的。
回复

使用道具 举报

地板
ID:982529 发表于 2021-11-23 21:49 来自手机 | 只看该作者
188610329 发表于 2021-11-23 21:42
重复调用,

原则上,中断和主程序是不能调用同一个函数的。

能说一下怎么解决吗?提供一下大至方向,谢谢
回复

使用道具 举报

5#
ID:624769 发表于 2021-11-23 22:01 | 只看该作者
wssbwssb 发表于 2021-11-23 21:49
能说一下怎么解决吗?提供一下大至方向,谢谢

最好是更改逻辑,只在一个地方调用,
实在必须都要调用的话……
再做一个内容完全一样,但是名字不同的函数,分别给中断和主程序调用。
回复

使用道具 举报

6#
ID:592807 发表于 2021-11-24 09:32 | 只看该作者
wssbwssb 发表于 2021-11-23 21:49
能说一下怎么解决吗?提供一下大至方向,谢谢

错误做法:中断调用A,A里面调用B,主函数调用B。
正确做法:主函数调用B,中断函数里面打标志Flag=1,主函数里面Flag = 1,就调用函数B同时Flag =0
第一个做法之所以错误,就是如果主函数调用了函数A,中断通过B函数调用A,那么中断调用会改变A函数的状态。

打个比B函数是你进入房间->开水龙头->洗手->关水龙头->用纸巾擦手->拿起手机->开门->离开
如果你用主函数走到   ”开水龙”   这一步然后被中断打断了。
中断进来  “关水龙头”   、  “拿走手机”然后离开
主函数回到 “开水龙头”这一步但是水龙头在中断那里已经被关了(寄存器被改变了),你还能洗手吗?手机也被拿走了(全局变量改变了)你还能拿走手机吗?
回复

使用道具 举报

7#
ID:824490 发表于 2021-11-24 09:42 | 只看该作者
函数被连续嵌套调用了。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表