This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

INFORMATION REGARDING PUBLIC SYMBOL

Hi to all,

I am want some information regarding public symbols used by keil compiler.

while single stepping through my code for lpc2214(arm7) I came across some public symbols like
?C?SDIV ,?C?FCAST, ?C?UDIV, ?C?CASTF etc..

Can anybody tell me
1)what is the purpose of this public symbols.
2)please suggest me the link from where to get the description of working and task of this public symbols
3)are they relocateable? can I place them into ram?

From their names I assume that they are for providing some basic services to upper level functions but

they are not giving desired results while used by functions located in ram using __ram attribute. i.e only few functions in ram and remaining code in flash.

  • ?C?SDIV ,?C?FCAST, ?C?UDIV, ?C?CASTF etc..

    Looks like library routines for signed division, some sort of floating point cast, unsigned division, and some other sort of floating point cast.

  • You are not expected to find documentation about these helper functions. If you use C, it's enough that the compiler knows what they do. If you use assembler, then you will not need C helper functions.

    Storing functions in RAM means that you loose the functions when you power off your hardware. The only time it is meaningful with functions in RAM is if you play with self-modifying code (not good) or need maximum performance and can save wait states by copying a function to RAM on program startup.