Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
15 years ago

What is the difference between main() and alt_main()?

I write a very simple program, driving LED through PIO. Both function can work. If using main() , the code size is 1940 bytes. If alt_main(), the code size is 472 bytes. It seems that main() include some initialization.

Can anyone explain the difference, or recommend some documents to read? Thanks.

3 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Actually it is the default alt_main() that contains the extra code - either side of the call to main().

    Largely this is code for initialising stdio for printf() - which pulls in a lot of

    library code.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Hi sabertooth

    I copy here the comment to alt_main() definition

    /*

    * alt_main is the C entry point for the HAL. It is called by the assembler

    * startup code in the processor specific crt0.S. It is responsible for:

    * completing the C runtime configuration; configuring all the

    * devices/filesystems/components in the system; and call the entry point for

    * the users application, i.e. main().

    */

    Regards