Re: Startup code



"Jet Morgan" <jm@xxxxxxxxxxxxxxxxxxxxxxxxxxxxx> wrote in message
news:d9tsta$po7$1@xxxxxxxxxxxxxxxxxxxxxxx
>
> That is still startup code, even if written in C.

In my opinion, startup code is code executed from the reset of the CPU,
until the call to main().
So any function you call from main() to setup up further things, no matter
how low level and essential they are, is not called startup code.

> The compiler vendor will not typically know how the processor
> is connected to the other devices, such as memory bus widths,
> clock timings etc. That's why YOU (the designer) has to write it.

If need be, yes.

> There seems to be this perception that startup code is specifically
> assembler. It *could* be written that way but I've always
> written my startup code in a combination of C and assembler.

Again, all startup codes I have seen so far, were written in assembler.
Probably because at startup time, there is no environment set up yet to run
compiled C code at all. But this only holds true with "my" definition of
startup code, where the call to main() is not executed yet.

Meindert


.



Relevant Pages

  • Re: Startup code
    ... In my opinion, startup code is code executed from the reset of the CPU, ... things that need to be done before the main part of a program can run - setting up critical hardware, setting up the stack, clearing out bss, copying initial data segments, copying program data from flash to ram, calling C++ constructors, starting main, initializing other hardware and software. ... Code for setting up the stack, clearing bss, and copying the initial data segment is generally part of the "crt0" module that comes with your C compiler. ... It's frequently written in assembler, ...
    (comp.arch.embedded)
  • Re: mixing C and assembly
    ... The system level work like switching the contexts of the tasks, ... Do not forget the startup code ... There are small bits of the startup that must be in assembler. ...
    (comp.arch.embedded)
  • Re: mixing C and assembly
    ... The system level work like switching the contexts of the tasks, ... Do not forget the startup code ... There are small bits of the startup that must be in assembler (I use ... I've written the startup code in C on the SDCC compiler and the small ...
    (comp.arch.embedded)
  • Re: Startup code
    ... >In my opinion, startup code is code executed from the reset of the CPU, ... >> The compiler vendor will not typically know how the processor ... >Again, all startup codes I have seen so far, were written in assembler. ... there is no environment set up yet to run ...
    (comp.arch.embedded)
  • Re: No wars
    ... > assembler, because you can look at the compiler output to see how the ... > compiler is doing things, you can concentrate on learning things one at ... familiar with that has inline assembler capacity, ... and going without all of the difficult startup code. ...
    (comp.lang.asm.x86)