[U-Boot-Users] print problem on ARM, toolchain 3.4.3

Shakthi Kannan shakthimaan at yahoo.com
Mon Nov 14 07:39:16 CET 2005


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




More information about the U-Boot mailing list