[U-Boot-Users] Hello world application running problem

I have read README.standalone. My target board is smdk2440(Arm 9).
So i transfer hello_world using tftp to address 0x0c100000 and then call "go 0x0c100000 hello world"
But after that the application seems to get stuck and nothing happens. Eventually i have to reset the board.
I have some doubts:
- Which file should i send. I think it should be
hello_world and not the srec or bin format. I ran file command on all 3 and found that hello_world is the one meant for ARM.
2.Is the load and start address correct? May be its different for ARM9?
If all these are correct then what may be the problem?
__________________________________ Do you Yahoo!? Take Yahoo! Mail with you! Get it on your mobile phone. http://mobile.yahoo.com/maildemo
__________________________________ Do you Yahoo!? Yahoo! Mail Address AutoComplete - You start. We finish. http://promotions.yahoo.com/new_mail

Hi Jhavk,
I have read README.standalone. My target board is smdk2440(Arm 9).
So i transfer hello_world using tftp to address 0x0c100000 and then call "go 0x0c100000 hello world"
But after that the application seems to get stuck and nothing happens. Eventually i have to reset the board.
I have some doubts:
- Which file should i send. I think it should be
hello_world and not the srec or bin format. I ran file command on all 3 and found that hello_world is the one meant for ARM.
You should use the .bin file as tftp does not interpret ELF files so you need a binary image. file cannot tell anything about binary images because there is no magic in there anymore - its a plain memory dump.
2.Is the load and start address correct? May be its different for ARM9?
This is just a theoretical answer as I don't have an ARM board ready - but judging by the makefile it looks ok. Apart from that on PPC we have to skip the first 4 bytes because of reasons explained on this list not long ago (search mailing list - I don't have a good keyword ready) - so try a "go 0x0c100004". This is also explained in the DULG.
If all these are correct then what may be the problem?
I saw at least two problems.
Cheers Detlev

In message 20041029154109.80624.qmail@web12009.mail.yahoo.com you wrote:
I have read README.standalone. My target board is smdk2440(Arm 9).
So i transfer hello_world using tftp to address 0x0c100000 and then call "go 0x0c100000 hello world"
What makes you think that 0x0c100000 is the entry point of the standalone application?
But after that the application seems to get stuck and nothing happens. Eventually i have to reset the board.
This is because you tried to run code where none is. Pay attention to the entry point address.
I have some doubts:
- Which file should i send. I think it should be
This depends on which tool or protocol you use for the download.
hello_world and not the srec or bin format. I ran
This is wrong. hello_world is an ELF file, so it may only be used by tools / protocols that understand ELF files. The SREC file has to be used by tools / protocols that understand Motorola S-Record files. The BIN file has to be used by tools / protocols that understand raw binary images.
command on all 3 and found that hello_world is the one meant for ARM.
Wrong again. All images (hello_world, hello_world.srec, hello_world.bin etc) are all teh same images, just in different format, depnding on which protocols or tools you want to use.
2.Is the load and start address correct? May be its different for ARM9?
The load address ooks ok to me. The entry point is probably somewhere else.
Best regards,
Wolfgang Denk

Thanks for all the valuable info.
Actually i went thru the doc/README.standalone file and theres a table which tell abt load and entry point address of various architecture.
For arm load = 0x0c100000 entry pt = 0x0c100000.
I still have 2 doubts( hope it doesnt annoys u) 1.Cant i tftp my hello_world.bin to any valid address of RAM eg "tftp 0x30000000 hello_world.bin"
2.How do i find out the entry point of my binary image?
Regards, Jhavk
--- Wolfgang Denk wd@denx.de wrote:
In message 20041029154109.80624.qmail@web12009.mail.yahoo.com you wrote:
I have read README.standalone. My target board
is
smdk2440(Arm 9).
So i transfer hello_world using tftp to address 0x0c100000 and then call "go 0x0c100000 hello
world"
What makes you think that 0x0c100000 is the entry point of the standalone application?
But after that the application seems to get
stuck
and nothing happens. Eventually i have to reset the board.
This is because you tried to run code where none is. Pay attention to the entry point address.
I have some doubts:
- Which file should i send. I think it should
be
This depends on which tool or protocol you use for the download.
hello_world and not the srec or bin format. I
ran
This is wrong. hello_world is an ELF file, so it may only be used by tools / protocols that understand ELF files. The SREC file has to be used by tools / protocols that understand Motorola S-Record files. The BIN file has to be used by tools / protocols that understand raw binary images.
command on all 3 and found that hello_world is
the
one meant for ARM.
Wrong again. All images (hello_world, hello_world.srec, hello_world.bin etc) are all teh same images, just in different format, depnding on which protocols or tools you want to use.
2.Is the load and start address correct? May be
its
different for ARM9?
The load address ooks ok to me. The entry point is probably somewhere else.
Best regards,
Wolfgang Denk
-- See us @ Embedded/Electronica Munich, Nov 09 - 12, Hall A.6 Booth 513 Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de Neckties strangle clear thinking. -- Lin Yutang
__________________________________ Do you Yahoo!? Yahoo! Mail Address AutoComplete - You start. We finish. http://promotions.yahoo.com/new_mail

In message 20041101051752.7411.qmail@web12010.mail.yahoo.com you wrote:
Actually i went thru the doc/README.standalone file and theres a table which tell abt load and entry point address of various architecture.
For arm load = 0x0c100000 entry pt = 0x0c100000.
You are right.
I still have 2 doubts( hope it doesnt annoys u) 1.Cant i tftp my hello_world.bin to any valid address of RAM eg "tftp 0x30000000 hello_world.bin"
You, you can do this (but the code will not run if downloaded to a different address).
2.How do i find out the entry point of my binary image?
-> nm hello_world 0c108228 A __bss_end__ 0c108228 A __bss_start 0c108228 A __bss_start__ 0c108228 D __data_start 0c108228 A __end__ 0c108228 A _bss_end__ 0c108228 A _edata 0c108228 A _end 0c100158 T app_startup 0c10013c T do_reset 0c1000c8 t dummy 0c10011c T free 0c10010c T free_hdlr 0c10012c T get_timer 0c1000d4 T get_version 0c1000dc T getc ====>> 0c100000 T hello_world 0c10014c T i2c_read 0c100144 T i2c_write 0c100104 T install_hdlr 0c100114 T malloc 0c1000fc T printf 0c1000ec T putc 0c1000f4 T puts 0c1000e4 T tstc 0c100124 T udelay 0c100134 T vprintf
Best regards,
Wolfgang Denk
participants (3)
-
Detlev Zundel
-
Jhavk
-
Wolfgang Denk