* [U-Boot-Users] print problem on ARM, toolchain 3.4.3
@ 2005-11-14 6:39 Shakthi Kannan
2005-11-14 9:27 ` Wolfgang Denk
0 siblings, 1 reply; 4+ messages in thread
From: Shakthi Kannan @ 2005-11-14 6:39 UTC (permalink / raw)
To: u-boot
Greetings!
This is a followup on use of printf with u-boot-1.1.2
with cross-toolchains 2.95.3 and Codesourcery's 3.4.3
on ARM.
http://sourceforge.net/mailarchive/message.php?msg_id=13329626
I am now trying to write a standalone code to be run
with u-boot. This is the simple foo.c file:
/*
* foo.c
*
*/
#include <common.h>
#include <exports.h>
int main (int argc, char *argv[])
{
/* Print the ABI version */
app_startup(argv);
putc ('c');
return (0);
}
The Makefile for cross-compilation:
# Makefile
# Tools
CROSS =
/usr/local/arm/3.4.3/bin/arm-none-linux-gnueabi-
CC = $(CROSS)gcc
AS = $(CROSS)as
LD = $(CROSS)ld
OBJCOPY = $(CROSS)objcopy
TARGET = foo
BASE = 0x04000000
CFLAGS = -fno-strict-aliasing -fno-common -ffixed-r8
-msoft-float -D__KERNEL__ -fno-builtin -ffreestanding
-nostdinc -isystem
/usr/local/arm/3.4.3/bin/../lib/gcc/arm-non-linux-gnueabi/3.4.3/include
-pipe -DCONFIG_ARM -D__ARM__ -march=armv4 -Wall
-Wstrict-prototypes
INCLUDE =
-I/home/shaks/docs/monitor/u-boot/u-boot-1.1.2/include
-I/usr -I$(LIBSTUB_INCLUDE)
LIBSTUB_INCLUDE =
/usr/local/arm/3.4.3/bin/../lib/gcc/arm-none-linux-gnueabi/3.4.3/include
LDFLAGS = -Ttext $(BASE) -e main
all:
$(CC) $(CFLAGS) $(INCLUDE) -c $(TARGET).c -o
$(TARGET).o
$(LD) $(LDFLAGS) $(TARGET).o -o $(TARGET)
objcopy:
$(OBJCOPY) -O binary $(TARGET) $(TARGET).bin
2>/dev/null
clean:
rm -f *~ *.o *.bin $(TARGET)
On running make clean; make, I get this output:
/usr/local/arm/3.4.3/bin/arm-none-linux-gnueabi-gcc
-fno-strict-aliasing -fno-common -ffixed-r8
-msoft-float -D__KERNEL__ -fno-builtin -ffreestanding
-nostdinc -isystem
/usr/local/arm/3.4.3/bin/../lib/gcc/arm-non-linux-gnueabi/3.4.3/include
-pipe -DCONFIG_ARM -D__ARM__ -march=armv4 -Wall
-Wstrict-prototypes
-I/home/shaks/docs/monitor/u-boot/u-boot-1.1.2/include
-I/usr
-I/usr/local/arm/3.4.3/bin/../lib/gcc/arm-none-linux-gnueabi/3.4.3/include
-c foo.c -o foo.o
/usr/local/arm/3.4.3/bin/arm-none-linux-gnueabi-ld
-Ttext 0x04000000 -e main foo.o -o foo
foo.c:1: warning: target CPU does not support
interworking
foo.o: In function `main':
foo.c:(.text+0x1c): undefined reference to
`app_startup'
foo.c:(.text+0x24): undefined reference to `putc'
make: *** [all] Error 1
foo.o gets created. putc is declard in common.h, but,
where is the actual definition? I'd appreciate any
input from folks who have done similar style of
firmware development with u-boot.
Thanks,
SK
--
Shakthi Kannan, MS
Software Engineer, Specsoft (Hexaware Technologies)
[E]: shakthimaan at yahoo.com [M]: (91) 98407-87007
[W]: http://www.shakthimaan.com [L]: Chennai, India
__________________________________
Yahoo! Mail - PC Magazine Editors' Choice 2005
http://mail.yahoo.com
^ permalink raw reply [flat|nested] 4+ messages in thread
* [U-Boot-Users] print problem on ARM, toolchain 3.4.3
2005-11-14 6:39 [U-Boot-Users] print problem on ARM, toolchain 3.4.3 Shakthi Kannan
@ 2005-11-14 9:27 ` Wolfgang Denk
2005-11-14 10:11 ` Shakthi Kannan
0 siblings, 1 reply; 4+ messages in thread
From: Wolfgang Denk @ 2005-11-14 9:27 UTC (permalink / raw)
To: u-boot
In message <20051114063916.10876.qmail@web30715.mail.mud.yahoo.com> you wrote:
>
> This is a followup on use of printf with u-boot-1.1.2
> with cross-toolchains 2.95.3 and Codesourcery's 3.4.3
> on ARM.
Let me remember that working toolchains have NO problems with all
this. In other works, this is not an U-Boot problem per se.
> The Makefile for cross-compilation:
Please check exactly what the U-Boot Makefiles are doing. Then fix
your Makefile.
> On running make clean; make, I get this output:
....
> /usr/local/arm/3.4.3/bin/arm-none-linux-gnueabi-ld
> -Ttext 0x04000000 -e main foo.o -o foo
> foo.c:1: warning: target CPU does not support interworking
Fix your toolchain problems.
> foo.o: In function `main':
> foo.c:(.text+0x1c): undefined reference to
> `app_startup'
> foo.c:(.text+0x24): undefined reference to `putc'
> make: *** [all] Error 1
>
> foo.o gets created. putc is declard in common.h, but,
> where is the actual definition? I'd appreciate any
> input from folks who have done similar style of
> firmware development with u-boot.
You fail to compile and link examples/stubs.c
It seems you also missed to readthe documentation (i. e.
"doc/README.standalone").
Best regards,
Wolfgang Denk
--
Software Engineering: Embedded and Realtime Systems, Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
If all you have is a hammer, everything looks like a nail.
^ permalink raw reply [flat|nested] 4+ messages in thread
* [U-Boot-Users] print problem on ARM, toolchain 3.4.3
2005-11-14 9:27 ` Wolfgang Denk
@ 2005-11-14 10:11 ` Shakthi Kannan
2005-11-14 10:45 ` Shakthi Kannan
0 siblings, 1 reply; 4+ messages in thread
From: Shakthi Kannan @ 2005-11-14 10:11 UTC (permalink / raw)
To: u-boot
Hi Wolfgang Denk,
Thanks for your inputs. Appreciate it.
--- Wolfgang Denk <wd@denx.de> wrote:
> It seems you also missed to readthe documentation
> (i. e.
> "doc/README.standalone").
Oops. Sorry about that. Will have a look at it.
SK
--
Shakthi Kannan, MS
Software Engineer, Specsoft (Hexaware Technologies)
[E]: shakthimaan at yahoo.com [M]: (91) 98407-87007
[W]: http://www.shakthimaan.com [L]: Chennai, India
__________________________________
Yahoo! Mail - PC Magazine Editors' Choice 2005
http://mail.yahoo.com
^ permalink raw reply [flat|nested] 4+ messages in thread
* [U-Boot-Users] print problem on ARM, toolchain 3.4.3
2005-11-14 10:11 ` Shakthi Kannan
@ 2005-11-14 10:45 ` Shakthi Kannan
0 siblings, 0 replies; 4+ messages in thread
From: Shakthi Kannan @ 2005-11-14 10:45 UTC (permalink / raw)
To: u-boot
Hi again,
I have got the build working. Here is a foo.c and a
simple Makefile that runs with CodeSourcery's 3.4.3
toolchain:
/*
* foo.c
*/
#include <common.h>
#include <exports.h>
int main (int argc, char *argv[])
{
app_startup(argv);
printf ("Voila! Voila!");
return (0);
}
The Makefile:
# Makefile
# Tools
CROSS =
/usr/local/arm/3.4.3/bin/arm-none-linux-gnueabi-
CC = $(CROSS)gcc
AS = $(CROSS)as
LD = $(CROSS)ld
OBJCOPY = $(CROSS)objcopy
TARGET = foo
BASE = 0x04000000
CFLAGS = -g -Os -fno-strict-aliasing -fno-common
-ffixed-r8 -msoft-float -D__KERNEL__ -fno-builtin
-ffreestanding -nostdinc -isystem
/usr/local/arm/3.4.3/bin/../lib/gcc/arm-non-linux-gnueabi/3.4.3/include
-pipe -DCONFIG_ARM -D__ARM__ -march=armv4 -Wall
-Wstrict-prototypes
INCLUDE =
-I/home/shaks/docs/monitor/u-boot/u-boot-1.1.2/include
-I/usr/local/arm/3.4.3/lib/gcc/arm-none-linux-gnueabi/3.4.3/include
LIBSTUBS =
/home/shaks/docs/monitor/u-boot/u-boot-1.1.2/examples/libstubs.a
LGCC =
-L/usr/local/arm/3.4.3/bin/../lib/gcc/arm-none-linux-gnueabi/3.4.3
-lgcc
-L/home/shaks/docs/monitor/u-boot/u-boot-1.1.2/examples
-lstubs
LIBSTUB_INCLUDE =
/usr/local/arm/3.4.3/bin/../lib/gcc/arm-none-linux-gnueabi/3.4.3/include
LDFLAGS = -g -Ttext $(BASE) -e main
all:
$(CC) $(CFLAGS) $(INCLUDE) -c $(TARGET).c -o
$(TARGET).o
$(LD) $(INCLUDE) $(LDFLAGS) $(TARGET).o -o $(TARGET)
$(LIBSTUBS) $(LGCC)
$(OBJCOPY) -O binary $(TARGET) $(TARGET).bin
2>/dev/null
clean:
rm -f *~ *.o *.bin $(TARGET)
Voila! Voila!
SK
--
Shakthi Kannan, MS
Software Engineer, Specsoft (Hexaware Technologies)
[E]: shakthimaan at yahoo.com [M]: (91) 98407-87007
[W]: http://www.shakthimaan.com [L]: Chennai, India
__________________________________
Yahoo! FareChase: Search multiple travel sites in one click.
http://farechase.yahoo.com
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2005-11-14 10:45 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-11-14 6:39 [U-Boot-Users] print problem on ARM, toolchain 3.4.3 Shakthi Kannan
2005-11-14 9:27 ` Wolfgang Denk
2005-11-14 10:11 ` Shakthi Kannan
2005-11-14 10:45 ` Shakthi Kannan
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox