I have created a small timer library, in which it call the timer handler by function pointer in the interrupt.And i now found that the handler local data would be corrupted because of the data overlaying.But i created this library to let others use it, but they would be bothered about data overlaying. so is there any way to exclude a function from overlay analysis when the user add the function as a timer handler by calling my library,or at least ,disable data overlaying when anyone use my library? OVERLAY directive is a linker directive so it seems no way to use it in the source code.....
Function pointers are well known to be problematic in Keil C51.
Why deliberately create problems? Why not just avoid the problem completely by not using a function pointer?
But my implementation requires function pointers.
Maybe you should then select a processor architecture that works well with function pointers?
OK...maybe i should give up
No need to give up - I'm sure it's perfectly possible to do without function pointers...
View all questions in Keil forum