Hallo,
ich versuche den sdcc dazu zu überreden das ich ein bin File für den EPAC raus bekomme.
Code
// test sdcc for epac
__sfr __at 0xa0 OUT015;
void delay()
{
unsigned char i;
for(i=0; i<200; i++)
continue;
}
main()
{
//OUT015 = 0b10100000; bedeutet schalte OUT10 an beim EPAC-80 siehe Handbuch
while(1)
{
OUT015 = 0b10100000;
delay();
OUT015 = 0b00100000;
delay();
}
}
Alles anzeigen
Handbuch vom EPAC CONITEC EPAC-80.pdf
Jetzt sitzt der ROM ab 0x0000 bis 0x1FFF und der RAM ab 0x4000 bis 0x5FFF also versucht mit folgend zu übersetzen:
sdcc -mz80 main.c -c
sdcc -mz80 --code-loc 0x0 --data-loc 0x4000 --no-std-crt0 crt0.rel main.rel -o main.ihx
Das funktioniert solange wie ich kein delay im Code habe. Ich denke das er das RAM nicht nutzt und im Eprom kann er ja kaum was ändern... die crt0.s siehe unten.
Code
.module crt0
.globl _main
.area _HEADER (ABS)
;; Reset vector
.org 0x0000
jp init
init:
;; Initialise global variables
call gsinit
call _main
ret
;; Ordering of segments for the linker.
.area _HOME
.area _CODE
.area _GSINIT
.area _GSFINAL
.area _GSINIT
gsinit::
.area _GSFINAL
ret
.area _DATA
.area _BSEG
.area _BSS
.area _HEAP
Alles anzeigen
Danke & Beste Grüße,
Ralf N.