日日行,不怕千万里;时时学,不怕千万卷
分类: C/C++
2009-04-15 09:51:32
WARNING L15: MULTIPLE CALL TO SEGMENT
这个问题必须注意,可能引起程序冲突,假设你用于自动化领域,则可能导致信号产生尖峰。 产生这一警告的一个根源是:你在主循环里调用了一个函数(如aaa),而在中断服务函数里,你用调用了这个函数(如aaa)。这样当主循环运行到该函数中是,一旦产生中断,则在中断里又再次调用该函数!这时,很可能出错! 避免这种情况的方法很多:如,在进中断的时候置需调用该函数的标志,而在主循环中调用该函数
在中断函数里一般不调用函数,只处理与硬件有关的处理或者标志位的处理,然后在中断外部定义相关的函数来检测该标志位并进行相关处理
参考资料:
1)C51 的重入问题 WARNING L15: MULTIPLE CALL TO SEGMENT
http://blog.21ic.org/user1/2292/archives/2006/21351.html
2)*** WARNING L15: MULTIPLE CALL TO SEGMENT
http://lookyour.cndev.org/archive/2008/01/17/57978.aspx
3)关于“可重入函数”及c51警告信息:Multy Caller- -
4)KEILC51可重入函数及模拟栈浅析