在网上收到片老外的文章,貌似可以,原文网址http://coding.derkeiler.com/Archive/General/comp.arch.embedded/2008-09/msg00120.html:
1. Enable internal ram (if possible) and set the stack pointer.
2. Jump to C (note - at this stage, static variables are not initialised or zeroed, and probably not even accessible. Stick to local variables, preferably register-only. If there is no internal ram for a stack, use inlined functions only).
3. Set up the clock.
4. Initialise the SDRAM and other critical bus setup.
5. Initialise the MMU and/or cache.
6. Copy the code into SDRAM and jump to this copy.
7. Clear the BSS, and perhaps other block initialisation (small data blocks, etc.). Set up the real stack(s). Now you are in a "real" C environment.
8... as in the quoted post.