From ff96d3e6f9c390275a2f49d725dfd52c098a2a76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20Fr=C3=B6schle?= Date: Mon, 22 Oct 2012 11:08:26 +0000 Subject: [PATCH] moved .data where it belongs (to RAM) --- BaS_GNU/BaS_GNU/bas.lk.in | 6 ++++-- BaS_GNU/BaS_GNU/sources/BaS.c | 1 + BaS_GNU/BaS_GNU/sources/exceptions.S | 7 ++++++- BaS_GNU/BaS_GNU/sources/sysinit.c | 2 +- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/BaS_GNU/BaS_GNU/bas.lk.in b/BaS_GNU/BaS_GNU/bas.lk.in index 23d3ca4..a65cee5 100644 --- a/BaS_GNU/BaS_GNU/bas.lk.in +++ b/BaS_GNU/BaS_GNU/bas.lk.in @@ -69,14 +69,16 @@ SECTIONS { .bas _Bas_base : AT (ADDR(.text) + SIZEOF(.text)) { objs/BaS.o(.text) - # put other routines into the same segment (RAM) as BaS.o + /* put other routines into the same segment (RAM) as BaS.o */ objs/sd_card.o(.text) objs/mmu.o(.text) objs/exceptions.o(.text) objs/supervisor.o(.text) objs/ewf.o(.text) objs/illegal_instruction.o(.text) - + + *(.data) + _bas_end = ABSOLUTE(.); } > ram diff --git a/BaS_GNU/BaS_GNU/sources/BaS.c b/BaS_GNU/BaS_GNU/sources/BaS.c index 158dd14..cca2d15 100644 --- a/BaS_GNU/BaS_GNU/sources/BaS.c +++ b/BaS_GNU/BaS_GNU/sources/BaS.c @@ -51,6 +51,7 @@ void BaS(void) MCF_PSC0_PSCTB_8BIT = MCF_PSC3_PSCRB_8BIT; MCF_PSC0_PSCTB_8BIT = MCF_PSC3_PSCRB_8BIT; MCF_PSC0_PSCTB_8BIT = 0x0d0a; + MCF_PSC3_PSCTB_8BIT = 0x01; /* request RTC data */ if (MCF_PSC3_PSCRB_8BIT == 0x81) diff --git a/BaS_GNU/BaS_GNU/sources/exceptions.S b/BaS_GNU/BaS_GNU/sources/exceptions.S index a03698b..1e3ad21 100644 --- a/BaS_GNU/BaS_GNU/sources/exceptions.S +++ b/BaS_GNU/BaS_GNU/sources/exceptions.S @@ -551,7 +551,7 @@ non_acsi_dma: irq6_1: lea MCF_GPIO_PODR_FEC1L,a5 bclr.b #4,(a5) // led on - lea blinker(pc),a5 + lea blinker,a5 addq.l #1,(a5) // +1 move.l (a5),d0 and.l #0x80,d0 @@ -612,8 +612,13 @@ sev_sup6: move.l (a5),12(a7) // hier gehts weiter movem.l (a7),d0/a5 // register zur�ck rts + + .data blinker:.long 0 + + .text + /* * pseudo dma */ */ diff --git a/BaS_GNU/BaS_GNU/sources/sysinit.c b/BaS_GNU/BaS_GNU/sources/sysinit.c index 4d0c849..4d2d7c7 100644 --- a/BaS_GNU/BaS_GNU/sources/sysinit.c +++ b/BaS_GNU/BaS_GNU/sources/sysinit.c @@ -356,7 +356,7 @@ void init_PCI(void) { MCF_PCI_PCICR2 = MCF_PCI_PCICR2_MINGNT(16) + MCF_PCI_PCICR2_MAXLAT(16); // Turn on error signaling - MCF_PCI_PCIICR = MCF_PCI_PCIICR_TAE + MCF_PCI_PCIICR_TAE * MCF_PCI_PCIICR_REE + 32; + MCF_PCI_PCIICR = MCF_PCI_PCIICR_TAE + MCF_PCI_PCIICR_TAE + MCF_PCI_PCIICR_REE + 32; MCF_PCI_PCIGSCR |= MCF_PCI_PCIGSCR_SEE; /* Configure Initiator Windows */