85edbc01db
Contiki now leverages that feature to place process.o, etimer.o and uip_arp.o in HIGHCODE. These files were carefully chosen as: - they are necessary for all Ethernet apps - their size doesn't depend on configuration macros - they fill the available space nicely (with a little reserve for changes in the source or the compiler)
50 lines
2.2 KiB
INI
50 lines
2.2 KiB
INI
# This file should be identical to the file '<cc65>/doc/apple2.cfg' with the
|
|
# following exceptions:
|
|
# - Reduced stacksize: Contiki is designed to use extremely little stack.
|
|
# The applications coming with Contiki run even with a $100 byte stack.
|
|
# - Expanded RAM size: Allow applications to overlay BASIC.SYSTEM if needed.
|
|
# In that case the binary must be loaded with the ProDOS 8 loader available
|
|
# at: ftp://ftp.musoftware.de/pub/uz/cc65/contrib/loader-1.3.zip
|
|
# - Expanded LC size: Allow applications to overlay the ProDOS 8 QUIT code.
|
|
# In that case the binary must reboot on exit. There's a ProDOS 8 loader
|
|
# variant available at the URL above that does just this.
|
|
|
|
FEATURES {
|
|
STARTADDRESS: default = $0803;
|
|
}
|
|
MEMORY {
|
|
ZP: start = $0080, size = $001A, define = yes;
|
|
HEADER: start = $0000, size = $0004, file = %O;
|
|
RAM: start = %S, size = $BF00 - %S, file = %O, define = yes; # $BF00 instead of $9600
|
|
MOVE: start = $0000, size = $FFFF, file = %O, define = yes;
|
|
LC: start = $D000, size = $1000, define = yes; # $D000/$1000 instead of $D400/$0C00
|
|
}
|
|
SEGMENTS {
|
|
ZEROPAGE: load = ZP, type = zp;
|
|
EXEHDR: load = HEADER, type = ro;
|
|
STARTUP: load = RAM, type = ro;
|
|
LOWCODE: load = RAM, type = ro;
|
|
CODE: load = RAM, type = ro;
|
|
RODATA: load = RAM, type = ro;
|
|
DATA: load = RAM, type = rw;
|
|
BSS: load = RAM, type = bss, define = yes;
|
|
INIT: load = MOVE, run = RAM, type = ro, define = yes;
|
|
HIGHCODE: load = MOVE, run = LC, type = ro, optional = yes;
|
|
}
|
|
FEATURES {
|
|
CONDES: segment = INIT,
|
|
type = constructor,
|
|
label = __CONSTRUCTOR_TABLE__,
|
|
count = __CONSTRUCTOR_COUNT__;
|
|
CONDES: segment = RODATA,
|
|
type = destructor,
|
|
label = __DESTRUCTOR_TABLE__,
|
|
count = __DESTRUCTOR_COUNT__;
|
|
CONDES: type = interruptor,
|
|
segment = RODATA,
|
|
label = __INTERRUPTOR_TABLE__,
|
|
count = __INTERRUPTOR_COUNT__;
|
|
}
|
|
SYMBOLS {
|
|
__STACKSIZE__ = $0200; # 1/2K instead of 2K stack
|
|
}
|