This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Problems with compiling a new redboot for nec v850 sa1
- From: "R.Y. Grootkop" <R dot Y dot Grootkop at mauell dot nl>
- To: <ecos-discuss at sources dot redhat dot com>
- Date: Tue, 6 Jan 2004 11:15:28 +0100
- Subject: [ECOS] Problems with compiling a new redboot for nec v850 sa1
Hi,
We are developing software for the falcom F35-XXL-SI gsm/gprs/gps module equiped with an NEC V850 SA1 processor.
While the development package of the company FALCOM is a very old version of the ecos package we like rebuild a new redboot. But I have a lot of problems with building it.
Without the V850 compiler option -mlong-calls I get a couple of reallocation errors:
make[1]: Entering directory `/home/rygrootkop/ecos/boot2_build/redboot/current'
v850-elf-gcc -c -I/home/rygrootkop/ecos/boot2_install/include -I/opt/ecos/ecos/packages/redboot/current -I/opt/ecos/ecos/packages/redboot/current/src -I/opt/ecos/ecos/packages/redboot/current/tests -I. -mv850 -Wall -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -Woverloaded-virtual -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions -o /home/rygrootkop/ecos/boot2_install/lib/version.o /opt/ecos/ecos/packages/redboot/current/src/version.c
cc1: warning: "-Woverloaded-virtual" is valid for C++ but not for C/ObjC
v850-elf-gcc -g -nostdlib -Wl,--gc-sections -Wl,-static -L/home/rygrootkop/ecos/boot2_install/lib -Ttarget.ld -o /home/rygrootkop/ecos/boot2_install/bin/redboot.elf /home/rygrootkop/ecos/boot2_install/lib/version.o
cc1: warning: "-fno-rtti" is valid for C++ but not for C/ObjC
make[1]: Leaving directory `/home/rygrootkop/ecos/boot2_build/redboot/current'
/home/rygrootkop/ecos/boot2_install/lib/libtarget.a(devs_flash_v85x_falxxl_v85x_falxxl_flash.o)(.2ram.flash_erase_block+0x0): In function `_flash_erase_block':
make: Leaving directory `/home/rygrootkop/ecos/boot2_build'
: relocation truncated to fit: R_V850_22_PCREL __save_r26_r31
/home/rygrootkop/ecos/boot2_install/lib/libtarget.a(devs_flash_v85x_falxxl_v85x_falxxl_flash.o)(.2ram.flash_erase_block+0x13c): In function `_flash_erase_block':
: relocation truncated to fit: R_V850_22_PCREL __return_r26_r31
collect2: ld returned 1 exit status
make[1]: *** [/home/rygrootkop/ecos/boot2_install/bin/redboot.elf] Error 1
make: *** [build] Error 2
If I use the option -mlong-calls I get internal compiler error:
v850-elf-gcc -c -I/home/rygrootkop/ecos/boot2_install/include -I/opt/ecos/ecos/packages/hal/v85x/v850/current -I/opt/ecos/ecos/packages/hal/v85x/v850/current/src -I/opt/ecos/ecos/packages/hal/v85x/v850/current/tests -I. -I/opt/ecos/ecos/packages/hal/v85x/v850/current/src/ -mv850 -mlong-calls -Wall -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -Wp,-MD,src/hal_diag.tmp -o src/hal_v85x_v850_hal_diag.o /opt/ecos/ecos/packages/hal/v85x/v850/current/src/hal_diag.c
make[1]: Leaving directory `/home/rygrootkop/ecos/boot2_build/hal/v85x/v850/current'
/opt/ecos/ecos/packages/hal/v85x/v850/current/src/hal_diag.c: In function `cyg_hal_plf_serial_control':
make: Leaving directory `/home/rygrootkop/ecos/boot2_build'
/opt/ecos/ecos/packages/hal/v85x/v850/current/src/hal_diag.c:241: error: unrecognizable insn:
(insn 130 112 131 0 (nil) (parallel [
(set (mem:SI (reg/f:SI 3 sp) [0 S4 A32])
(reg:SI 6 r6))
(set (mem:SI (plus:SI (reg/f:SI 3 sp)
(const_int 4 [0x4])) [0 S4 A32])
(reg:SI 7 r7))
(set (mem:SI (plus:SI (reg/f:SI 3 sp)
(const_int 8 [0x8])) [0 S4 A32])
(reg:SI 8 r8))
(set (mem:SI (plus:SI (reg/f:SI 3 sp)
(const_int 12 [0xc])) [0 S4 A32])
(reg:SI 9 r9))
(clobber (reg:SI 10 r10))
]) -1 (nil)
(expr_list:REG_DEAD (reg:SI 9 r9)
(expr_list:REG_DEAD (reg:SI 8 r8)
(expr_list:REG_DEAD (reg:SI 6 r6)
(expr_list:REG_UNUSED (reg:SI 10 r10)
(nil))))))
/opt/ecos/ecos/packages/hal/v85x/v850/current/src/hal_diag.c:241: internal compiler error: in extract_insn, at recog.c:2175
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
make[1]: *** [src/hal_diag.o.d] Error 1
make: *** [build] Error 2
This looks like a gcc compiler failure.
The gnu tools and compiler version is the latest released versions:
v850-elf-gcc --version
v850-elf-gcc (GCC) 3.3.2
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
v850-elf-ld --version
GNU ld version 2.14 20030612
Copyright 2002 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License. This program has absolutely no warranty.
I also tried to make a hybrid version of Redboot. So some programs are compiled with the -mlong-calls option and programs with the unrecognizable insn without this option.
This version compiles but if I install this on flash and restart the falcom F35-XXL-SI I get the following error during boot
+**Warning** FLASH configuration checksum error or invalid key
Use 'fconfig -i' to [re]initialize database
RedBoot(tm) bootstrap and debug environment [ROM]
Non-certified release, version Falcom F35-XXL-SI EXTERNAL FLASH - built 16:56:53
Platform: F35-XXL-SI (V850/SA1)
Copyright (C) 2000, 2001, 2002, Red Hat, Inc.
RAM: 0x00200000-0x00300000, [0x00203f78-0x002ed000] available
FLASH: 0x00400000 - 0x00500000, 16 blocks of 0x00010000 bytes each.
If I use the fconfig -i function redboot reboots.
And all threads of application programs do not run.
Has somebody some experiance with these problems ? please help me.
Helmut Mauell B.V.
Rogier Grootkop
Tel. +31 341 411580
Fax. +31 341 411581
--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss