Hello, Michiel
I compile your version (based on binutils-2.18, gcc-3.2.3) on Linux
(ubuntu) and it works, thank you!
Addressing goes well with the 20bit
Finally, there is however a problem when I defined a section in fardata
(0x10500) the compiler truncates the address (0x0500)!
10c18: d1 42 00 05 mov.b &0x0500,2(r1) ;0x0002(r1)
I have not defined this section in the linker script, but like this:
-Wl,--section-start=.fardata=0x10500 \
-Wl,--section-start=.fartext=0x10C00
I'll test it with a linker script later ...
I was not able to compile your version (innovents) under Windows (cygwin
1.7)!
I have problems with the bintutils-2.18, If you have any tips to come,
shows me please !
It's the next step ...
For Milhai I put my test files below
Bye!
---- Makefile ----
# makefile configuration
NAME = test1
OBJECTS = main.o
CPU = msp430x5418
CFLAGS = -mmcu=${CPU} -O2 -Wall -g
TOOLCHAIN_PATH="/home/thierry/mspgcc.innoventis.de/local_linux"
GCC_PATH =$(TOOLCHAIN_PATH)/bin/msp430-
CC=$(GCC_PATH)gcc
OBJDUMP=$(GCC_PATH)objdump
OBJCOPY=$(GCC_PATH)objcopy
OBJSIZE=$(GCC_PATH)size
DMWT_PATH=/home/thierry/dfw/dfw-0.19
DMWT=${DMWT_PATH}/dmwt
VPATH = ../src
.PHONY: all FORCE clean download download-jtag download-bsl dist
#all should be the first target. it's built when make is run without args
all: ${NAME}.elf ${NAME}.a43 ${NAME}.lst ${NAME}.hex
#confgigure the next line if you want to use the serial download
download: dmwt
#download: download-jtag
#download: download-bsl
#additional rules for files
${NAME}.elf: ${OBJECTS}
${CC} -mmcu=${CPU} -o $@ ${OBJECTS} \
-Wl,--section-start=.fardata=0x10500 \
-Wl,--section-start=.fartext=0x10C00
${NAME}.a43: ${NAME}.elf
${OBJCOPY} -O ihex $^ $@
${NAME}.hex: ${NAME}.elf
msp430-objcopy -O ihex $^ $@
${NAME}.lst: ${NAME}.elf
${OBJDUMP} -dSt $^ >$@
download-jtag: all
msp430-jtag -e ${NAME}.elf
download-bsl: all
msp430-bsl -e ${NAME}.elf
dmwt:all
${DMWT} -vd ${NAME}.elf
debug:all
msp430-gdbproxy msp430
clean:
rm -f ${NAME}.elf ${NAME}.a43 ${NAME}.lst ${OBJECTS}
#backup archive
dist:
tar czf dist.tgz *.c *.h *.txt makefile
----- main.c -----
#include "msp430x54xx.h"
#define fartext __attribute__((section(".fartext")))
#define fardata __attribute__((section(".fardata")))
fartext uint8_t foo(uint8_t luc_a)
{
return ++luc_a;
}
fardata uint8_t TEST_fartext[] = {0x01, 0x23, 0x45};
fartext int main(void)
{
volatile uint8_t a=0;
volatile uint8_t b;
volatile uint8_t c;
while (1)
{
b = foo(a);
c = TEST_fartext[0];
}
return 0;
}
----- Disassembly listing ----
Disassembly of section .fartext:
00010c00 <foo>:
fartext uint8_t foo(uint8_t luc_a)
{
return ++luc_a;
10c00: 5f 53 inc.b r15
10c02: 7f f3 and.b #-1, r15 ;r3 As==11
}
10c04: 10 01 reta
00010c06 <main>:
fardata uint8_t TEST_fartext[] = {0x01, 0x23, 0x45};
fartext int main(void)
{
10c06: 31 40 fc 5b mov #23548, r1 ;#0x5bfc
volatile uint8_t a=0;
10c0a: c1 43 00 00 mov.b #0, 0(r1) ;r3 As==00,
0x0000(r1)
volatile uint8_t b;
volatile uint8_t c;
while (1)
{
b = foo(a);
10c0e: 6f 41 mov.b @r1, r15
10c10: b1 13 00 0c calla #0x10c00
10c14: c1 4f 01 00 mov.b r15, 1(r1) ;0x0001(r1)
c = TEST_fartext[0];
10c18: d1 42 00 05 mov.b &0x0500,2(r1) ;0x0002(r1)
10c1c: 02 00
10c1e: f7 3f jmp $-16 ;abs 0xc0e
Disassembly of section .text:
00005c00 <__init_stack>:
5c00: 31 40 00 5c mov #23552, r1 ;#0x5c00
00005c04 <__low_level_init>:
5c04: b2 40 80 5a mov #23168, &0x015c ;#0x5a80
5c08: 5c 01
00005c0a <__do_clear_bss>:
5c0a: 3f 40 01 00 mov #1, r15 ;#0x0001
5c0e: 0f 93 tst r15
5c10: 04 24 jz $+10 ;abs 0x5c1a
5c12: 1f 83 dec r15
5c14: cf 43 00 1c mov.b #0, 7168(r15);r3 As==00,
0x1c00(r15)
5c18: fc 23 jnz $-6 ;abs 0x5c12
00005c1a <__do_copy_data>:
5c1a: 3f 40 00 00 mov #0, r15 ;#0x0000
5c1e: 0f 93 tst r15
5c20: 06 24 jz $+14 ;abs 0x5c2e
5c22: 2f 83 decd r15
5c24: 40 18 9f 4f movx 23608(r15),7168(r15);0x05c38(r15),
0x01c00(r15)
5c28: 38 5c 00 1c
5c2c: fa 23 jnz $-10 ;abs 0x5c22
00005c2e <__jump_to_main>:
5c2e: 80 01 06 0c bra #0x10c06
00005c32 <__ctors_end>:
5c32: 80 00 36 5c bra #0x05c36
00005c36 <_unexpected_>:
5c36: 00 13 reti
Disassembly of section .vectors:
0000ff80 <InterruptVectors>:
ff80: 32 5c 32 5c 32 5c 32 5c 32 5c 32 5c 32 5c 32 5c
2\2\2\2\2\2\2\2\
ff90: 32 5c 32 5c 32 5c 32 5c 32 5c 32 5c 32 5c 32 5c
2\2\2\2\2\2\2\2\
ffa0: 32 5c 32 5c 32 5c 32 5c 32 5c 32 5c 32 5c 32 5c
2\2\2\2\2\2\2\2\
ffb0: 32 5c 32 5c 32 5c 32 5c 32 5c 32 5c 32 5c 32 5c
2\2\2\2\2\2\2\2\
ffc0: 32 5c 32 5c 32 5c 32 5c 32 5c 32 5c 32 5c 32 5c
2\2\2\2\2\2\2\2\
ffd0: 32 5c 32 5c 32 5c 32 5c 32 5c 32 5c 32 5c 32 5c
2\2\2\2\2\2\2\2\
ffe0: 32 5c 32 5c 32 5c 32 5c 32 5c 32 5c 32 5c 32 5c
2\2\2\2\2\2\2\2\
fff0: 32 5c 32 5c 32 5c 32 5c 32 5c 32 5c 32 5c 00 5c
2\2\2\2\2\2\2\.\
------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
Mspgcc-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mspgcc-users