作者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/m.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