[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [avr-gcc-list] Linker script patch to handle __flashN [Was: Handling
From: |
Georg-Johann Lay |
Subject: |
Re: [avr-gcc-list] Linker script patch to handle __flashN [Was: Handling __flash1 and .trampolines] |
Date: |
Thu, 13 Dec 2012 14:26:33 +0100 |
User-agent: |
Thunderbird 2.0.0.24 (Windows/20100228) |
Erik Christiansen schrieb:
Here are two test cases based on one source code example compared with
Johann's requirements for the script behaviour.
Here is more torture. Assemble with, e.g.
$ avr-gcc flash.sx -o flash.elf -DSTUBS=10 -DP1=0x200 -DTEXT=0x20000
-mmcu=atmega2560 -Wl,-Map,flash.map
$ avr-objdump -d -j .text -j .data flash.elf > flash.lst
Following macros are recognized:
P0, P1, P2, P3 : bytes of data in respective .progmem
TEXT, LOWTEXT : bytes added to .text, .lowtext
STUBS : generate code that might need STUBS stubs
TEXT is not the complete .text site because startup code and STUBS and
more like _exit will add.
Notice that most users let the driver (avr-gcc) call the linker to
supply it with the right options and multilibs.
The driver knows how to handle -T, see the output with -v
Johann
#ifndef TEXT
#define TEXT 0
#endif
#ifndef LOWTEXT
#define LOWTEXT 0
#endif
#ifndef STUBS
#define STUBS 0
#endif
#ifndef P0
#define P0 0
#endif
#ifndef P1
#define P1 0
#endif
#ifndef P2
#define P2 0
#endif
#ifndef P3
#define P3 0
#endif
.macro Flash n num
.section .progmem\n\().data.foo\n\(),"a",@progbits
.global flash\n\()_start
.type flash\n\()_start,@object
flash\n\()_start:
.fill \num
.size flash\n\()_start, .-flash\n\()_start
.endm
Flash , P0
Flash 1, P1
Flash 2, P2
Flash 3, P3
.text
.global main
main:
.rept TEXT / 2
nop
.endr
.rept STUBS
0:
ldi r16, lo8(gs(0b))
ldi r17, hi8(gs(0b))
.endr
.size main, .-main
.section .lowtext,"ax",@progbits
.global lowfunc
lowfunc:
.rept LOWTEXT / 2
nop
.endr
.size lowfunc, .-lowfunc
- Re: [avr-gcc-list] Current patch queue against binutils upstream, (continued)
- Re: [avr-gcc-list] Current patch queue against binutils upstream, Jan Waclawek, 2012/12/10
- Re: [avr-gcc-list] .trampolines location. Was: Current patch queue against binutils upstream, Georg-Johann Lay, 2012/12/10
- Re: [avr-gcc-list] .trampolines location. Was: Current patch queue against binutils upstream, Jan Waclawek, 2012/12/10
- [avr-gcc-list] Handling __flash1 and .trampolines [Was: .trampolines location.], Erik Christiansen, 2012/12/11
- Re: [avr-gcc-list] Handling __flash1 and .trampolines [Was: .trampolines location.], Georg-Johann Lay, 2012/12/11
- Re: [avr-gcc-list] Handling __flash1 and .trampolines [Was: .trampolines location.], Erik Christiansen, 2012/12/12
- Re: [avr-gcc-list] Handling __flash1 and .trampolines [Was: .trampolines location.], Erik Christiansen, 2012/12/13
- Re: [avr-gcc-list] Handling __flash1 and .trampolines [Was: .trampolines location.], Georg-Johann Lay, 2012/12/13
- Re: [avr-gcc-list] Handling __flash1 and .trampolines [Was: .trampolines location.], Georg-Johann Lay, 2012/12/13
- [avr-gcc-list] Linker script patch to handle __flashN [Was: Handling __flash1 and .trampolines], Erik Christiansen, 2012/12/13
- Re: [avr-gcc-list] Linker script patch to handle __flashN [Was: Handling __flash1 and .trampolines],
Georg-Johann Lay <=
- Re: [avr-gcc-list] Linker script patch to handle __flashN, Erik Christiansen, 2012/12/15
Re: [avr-gcc-list] Current patch queue against binutils upstream, Bastien ROUCARIES, 2012/12/11
Re: [avr-gcc-list] Current patch queue against binutils upstream, Bastien ROUCARIES, 2012/12/11