[U-Boot-Users] How to specify the starting function of a U-boot standalone application.

richardretanubun richardretanubun at ruggedcom.com
Tue Jun 24 23:45:17 CEST 2008


Hi Guys,

I am writing a u-boot standalone application and are having difficulty 
understanding how it decides the function to execute when
I used to "go <start addr>+4" command.

In my application I have something like this...

the filename is my_test.c

/* Function prototypes */
int main (int argc, char *argv[]);
void do_func_a (int argc, char *argv[]);
void do_func_info (void);

int main (int argc, char *argv[])
{
    app_startup (argv);

    ....
    do_func_info();

    do_func_a(argc, argv);

    return(0);
}

void do_func_a(int argc, char *argv[])
{
    ....
}

void do_func_info(void)
{

}

When I go go <start addr>, the execution jumps straight to 
do_func_info() and the application finishes. (which is just a bunch of 
printf).

How do I ensure that when compiled, the my_test.bin places the main 
function at the "go" point?

I have tried re-ordering the function bodies around, moving main as the 
last function and thus removing all the function prototypes.
I tried name matching the "main" function to the file name, none seems 
to help.

Thank you so much for all your help.

Richard Retanubun.




More information about the U-Boot mailing list