avr-gcc-list
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[avr-gcc-list] Strings in ROM


From: Robert von Knobloch
Subject: [avr-gcc-list] Strings in ROM
Date: Fri, 13 Mar 2009 13:51:09 +0100
User-agent: Thunderbird 1.5.0.14 (X11/20060911)

Dear GCC-List,

I am writing an application that uses loadable portions of code (it is a
tester for embedded products, where the target code and test routines
will be sent to a remote location [the factory] and loaded into the
tester via an Intel Hex download routine]. These 'test modules' are in
pre-defined memory areas of the processor (Mega644), so no contention
occurs. Writing these loadable modules requires that I only use
resources inside these memory areas. I need to output strings to an LCD
display in these modules. Clearly printf "something" would require
entries in the base .text area which would move my main routines. I want
to use 'prog_char[] ="Something", but the compiler won't let me put this
in a section.

e.g.

#define SECTION TEST1_SECTION

SECTION prog_char press_button[]    = ">>  Press UUT button  <<";
SECTION prog_char button_timeout[]  = "*** Error - Timeout! ***";

where the linker sees:
LDFLAGS       = -Wl,-Map,$(PRG).map \
        -Wl,--section-start=.test0=0x2600 \
        -Wl,--section-start=.testparms0=0x2e80 \
        -Wl,--section-start=.test1=0x2f00 \
        -Wl,--section-start=.testparms1=0x3780

'make' results in:

avr-gcc -g -Wall -Os -mmcu=atmega644 -DF_CPU=20000000      -c -o main.o
main.c
In file included from main.c:25:
tests.c:138: error: section of 'press_button' conflicts with previous
declaration
tests.c:139: error: section of 'button_timeout' conflicts with previous
declaration

I cannot find where 'prog_char is defined and would like to know how I
can force the compiler to put these strings in my 'test1' section.

Many thanks,

Robert







reply via email to

[Prev in Thread] Current Thread [Next in Thread]