nobody wrote on Friday, June 24, 2005:
Thanks for these hints,
I am developping under Linux and cannot apply your hints 1:1. Anyway I tried some things in the meantime without any success:
I have loaded the HEW-file into HEW on a windows-PC and had a look into the options; i found the -e _start - option and all the other options. Simply adding the option -e _start did not help.
As soon as I add the start.o to the list of OSE-objects within my (handwritten) Makefile, the Linker complains.
the important parts of the Makefile :
CC = h8300-elf-gcc
LD = h8300-elf-ld
INCLUDE = -I./ose/FreeRTOS/Source/include
OSEFLAG = -DGCC_H8S $(INCLUDE)
LIBOPT = -L "/usr/share/gnuh8300_v0501_elf-1/lib/gcc/h8300-elf/3.4-GNUH8_v0501/h8300s/" -L "/usr/share/gnuh8300_v0501_elf-1/h8300-elf/lib/h8300s/"
CFLAGS = -ms -I ./gui/Config -I ./gui/Core/ $(OSEFLAG)
all: $(GUIOBJS) $(LCDOBJS) $(OSEDEMOOBJS) $(OSEOBJS) guilib lcdlib ose demo ./ose/FreeRTOS/main.lnk
$(CC) $(CFLAGS) $(LIBOPT) -lm -lc -lgcc -e _start -T ./ose/FreeRTOS/main.lnk -o sip.elf $(GUIOBJS) $(LCDOBJS) $(OSEDEMOOBJS) $(OSEOBJS)
h8300-elf-objcopy ./sip.elf -O srec ./sip.mot
Please tell me if you think I am an idiot and did something very silly.
My basic problem is that I want to use the external RAM on the EDK2329. For this purpose, some registers must be set to another value than the default. But this has to be done in hw_initialise I guess. Just to see the background of this.
As long as I leave the linkerscript as it was (i.e. internal RAM at FF7C00) everything works fine, LED is flashing and so on.
The "start.o" is not included in the object-files in this case.
But to use the external RAM properly, the hw_initialise has to be called, so I added start.o to the list of objects and did a call to "h8300-elf-as" to assemble it, but then I get the errormessage that _start is defined twice.
Can you help me out of this ? I am getting crazy I think, cause it keeps me busy for two days now.
Thanks a lot in advance.