Section 7.4.11 of the version 4.7 ARM Assembly Language Tools User's Guide says:
" - The value of symbol _c_int00 (if present). The _c_int00 symbol must be the entry point if you are linking code produced by the Compiler".
The use of "must" here is confusing to me. Can you please explain to me some of the implications of the "entry point". I would think that the linker probably does two things with the entry point - 1) makes sure the code pointed to by the entry point is not removed (since it is typically not referenced elsewhere), 2) puts it into a symbol table somewhere so any loaders (like a debugger, simulator, etc.) can start at the entry point. Are there other implications of the "entry point".
I have two different programs, both of which are executables and execute assembly code out of reset before calling _c_int00. One program contains a loader (at label ResetISR) which moves a program from Flash to RAM and then calls its _c_int00. I have another program which runs some test routines (at label ResetIsrIEC) in assembly before calling _c_int00.
In both cases I set the entry point to the reset routine (ResetISR and ResetIsrIEC). I get a warning from the linker that an entry-point other than "_c_int00" is specified.
Please help me understand what the implications of the "entry point" are so I can either feel comfortable ignoring this warning, or so I understand why it "must" be "_c_int00".
Thanks.