We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
I'm writing an application in which I want to obtain the code of a particular function during runtime. Obtaining the code of a function is not a problem, as I just used function pointer to obtain the start address of the function. However, I'm not able to determine the end of the function. I can solve this if I can obtain the size of the function and store it at a known memory location.
Is it possible to accomplish the above using:
1. ASSEMBLY: Use labels in assembly code to find the size of the function. 2. LINKER SCRIPT/SCATTER FILES: Use linker scripts or scatter files to find the size of the function.
Any help in this regard is highly appreciated.
I'm writing an application in which I want to obtain the code of a particular function during runtime.
And why would you want to do that? "Function size" may not be such a straightforward concept due to a number of reasons. It is not very useful in itself. Why don't you descride the problem you are actually trying to solve?
Likely copying some code to RAM, programming a FLASH memory.
Often it makes sense to express the problem that really needs solving, rather than focus on a specific solution path that may/may not be the most appropriate.
Thank you for replying.
Basically I overwrite the code of one function with the code of another.
This doesn't sound like a good idea. I hope you understand all the problems this might create.
Allocate a block of RAM. Fill with code. Call through function pointer. Ignore size of ant function in your flash.