作者MaxHaru (懂得放手..才是王道)
看板ASM
标题[问题] Keil C关於WARNING L15的问题.
时间Mon Feb 2 18:03:40 2015
请教各位先辈,
在使用Keil C的时候,
若一个function会在不同interrupt中被呼叫,
又或者同时会在main和interrupt中呼叫,
则会出现*** WARNING L15: MULTIPLE CALL TO SEGMENT的警告,
这个问题可以透过加入OVERLAY描述的方式来解决,
我尝试要使用OVERLAY的方式来解决
function在不同interrupt被被呼叫而产生警告的问题,
(但同时在main与interrupt被呼叫时我希望它出现警告)
如下:
假设现在有n个interrupt function
void Interrupt_AAA_ISR(void) interrupt 0
void Interrupt_BBB_ISR(void) interrupt 1
...
我OVERLAY的描述如下,
* ! (
?PR?Interrupt_AAA_ISR?INTFUNC,
?PR?Interrupt_BBB_ISR?INTFUNC,
...
?PR?Interrupt_ZZZ_ISR?INTFUNC,
?PR?Interrupt_ADC?INTFUNC
)
看起来似乎可以达到我的要求,
但因为我不太了解OVERLAY描述的意义,
所以想请教各位我这样的描述它实际的义意是什麽呢?
看过网路上的资料这叫Creating New Root Segments
什麽是Root Segments, 不知道是否有前辈能指点迷津?
此外, OVERLAY的描述有办法直接写在source code里面吗?
谢谢.
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 218.210.106.78
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/ASM/M.1422871423.A.C4F.html
※ 编辑: MaxHaru (218.210.106.78), 02/02/2015 18:04:15
※ 编辑: MaxHaru (218.210.106.78), 02/02/2015 19:03:47