My C code has an ISR, where a decision has to be made to execute a particular function "A". Now I know that its not good to run a function in an ISR. But in this case of my application, I do not see another way out. After calling the function "A", I noticed a sudden jump in the Data Consumed size and the sudden WARNING L15 explained in KEIL EXPLANATION OF WARNING.
I am certain that function "A" is not executed in a reentrant fashion, but it sure uses up physical memory; both function "A" as well as functions it calls. (This I believe refers to the variables declared in the functions).
Firstly, is there any way I can work around avoiding that shoot in data memory space?
Secondly, I want to apply the method 2 as shown in the keil explanation. But I do not know how & where exactly to insert the OVERLAY directive in my code. At initialization? At function Declaration? Before Function definition? Where exactly?
WARNING EXAMPLE in my Code
*** WARNING L15: MULTIPLE CALL TO FUNCTION
NAME: _IECLOC_FUN/DATA_ACCESS
CALLER1: ?C_C51STARTUP
CALLER2: TIMER_ISR/TIMER
Corrections, suggestions, Code examples and links will be appreciated. I hope this question is clear.
Thanks all.