Renamed _Bas_base and __BAS_VMA to __BAS_IN_RAM.
This commit is contained in:
@@ -21,10 +21,10 @@ SECTIONS {
|
|||||||
|
|
||||||
/* FastRAM */
|
/* FastRAM */
|
||||||
__FASTRAM = 0x10000000;
|
__FASTRAM = 0x10000000;
|
||||||
__FASTRAM_END = _Bas_base;
|
__FASTRAM_END = __BAS_IN_RAM;
|
||||||
|
|
||||||
/* BaS */
|
/* BaS */
|
||||||
_Bas_base = 0x1FE00000;
|
__BAS_IN_RAM = 0x1FE00000;
|
||||||
|
|
||||||
/* Flash components */
|
/* Flash components */
|
||||||
__FIRETOS = 0xe0400000;
|
__FIRETOS = 0xe0400000;
|
||||||
@@ -86,7 +86,7 @@ SECTIONS {
|
|||||||
#endif
|
#endif
|
||||||
} > flash
|
} > flash
|
||||||
|
|
||||||
.bas _Bas_base :
|
.bas __BAS_IN_RAM :
|
||||||
/* The BaS is stored in the flash, just after the init part.
|
/* The BaS is stored in the flash, just after the init part.
|
||||||
* Then it will be copied to its final location in the RAM.
|
* Then it will be copied to its final location in the RAM.
|
||||||
* This data must be aligned for optimal copy loop speed.
|
* This data must be aligned for optimal copy loop speed.
|
||||||
@@ -115,7 +115,6 @@ SECTIONS {
|
|||||||
} > ram
|
} > ram
|
||||||
|
|
||||||
__BAS_LMA = LOADADDR(.bas);
|
__BAS_LMA = LOADADDR(.bas);
|
||||||
__BAS_VMA = ADDR(.bas);
|
|
||||||
__BAS_SIZE = SIZEOF(.bas);
|
__BAS_SIZE = SIZEOF(.bas);
|
||||||
|
|
||||||
/* The following labels are BaS routines in the flash,
|
/* The following labels are BaS routines in the flash,
|
||||||
@@ -123,7 +122,7 @@ SECTIONS {
|
|||||||
* This is to allow using them before and after the actual copy.
|
* This is to allow using them before and after the actual copy.
|
||||||
* Hence they must contain only pc-relative code (compiled with -mpcrel).
|
* Hence they must contain only pc-relative code (compiled with -mpcrel).
|
||||||
*/
|
*/
|
||||||
#define BAS_LABEL_LMA(x) ((x) + (__BAS_LMA - __BAS_VMA))
|
#define BAS_LABEL_LMA(x) ((x) + (__BAS_LMA - __BAS_IN_RAM))
|
||||||
_xprintf_before_copy = BAS_LABEL_LMA(_xprintf);
|
_xprintf_before_copy = BAS_LABEL_LMA(_xprintf);
|
||||||
_display_progress_before_copy = BAS_LABEL_LMA(_display_progress);
|
_display_progress_before_copy = BAS_LABEL_LMA(_display_progress);
|
||||||
_flush_and_invalidate_caches_before_copy = BAS_LABEL_LMA(_flush_and_invalidate_caches);
|
_flush_and_invalidate_caches_before_copy = BAS_LABEL_LMA(_flush_and_invalidate_caches);
|
||||||
|
|||||||
@@ -10,8 +10,6 @@
|
|||||||
#include "cache.h"
|
#include "cache.h"
|
||||||
#include "bas_printf.h"
|
#include "bas_printf.h"
|
||||||
|
|
||||||
extern uint32_t Bas_base[];
|
|
||||||
|
|
||||||
/* imported routines */
|
/* imported routines */
|
||||||
extern int mmu_init();
|
extern int mmu_init();
|
||||||
extern int vec_init();
|
extern int vec_init();
|
||||||
@@ -28,6 +26,8 @@ extern uint8_t _STRAM_END[];
|
|||||||
#define STRAM_END ((uint32_t)_STRAM_END)
|
#define STRAM_END ((uint32_t)_STRAM_END)
|
||||||
extern uint8_t _TOS[];
|
extern uint8_t _TOS[];
|
||||||
#define TOS ((uint32_t)_TOS) /* final TOS location */
|
#define TOS ((uint32_t)_TOS) /* final TOS location */
|
||||||
|
extern uint8_t _FASTRAM_END[];
|
||||||
|
#define FASTRAM_END ((uint32_t)_FASTRAM_END)
|
||||||
extern uint8_t _EMUTOS[];
|
extern uint8_t _EMUTOS[];
|
||||||
#define EMUTOS ((uint32_t)_EMUTOS) /* where EmuTOS is stored in flash */
|
#define EMUTOS ((uint32_t)_EMUTOS) /* where EmuTOS is stored in flash */
|
||||||
extern uint8_t _EMUTOS_SIZE[];
|
extern uint8_t _EMUTOS_SIZE[];
|
||||||
@@ -171,7 +171,7 @@ void BaS(void)
|
|||||||
|
|
||||||
/* TT-RAM */
|
/* TT-RAM */
|
||||||
|
|
||||||
* (uint32_t *) 0x5a4 = (uint32_t) Bas_base; /* ramtop TOS system variable */
|
* (uint32_t *) 0x5a4 = (uint32_t) FASTRAM_END; /* ramtop TOS system variable */
|
||||||
* (uint32_t *) 0x5a8 = 0x1357bd13; /* ramvalid TOS system variable */
|
* (uint32_t *) 0x5a8 = 0x1357bd13; /* ramvalid TOS system variable */
|
||||||
|
|
||||||
xprintf("init ACIA: ");
|
xprintf("init ACIA: ");
|
||||||
|
|||||||
@@ -756,8 +756,8 @@ extern uint8_t _FIRETOS[];
|
|||||||
extern uint8_t _BAS_LMA[];
|
extern uint8_t _BAS_LMA[];
|
||||||
#define BAS_LMA ((uint32_t)_BAS_LMA) /* where the BaS is stored in flash */
|
#define BAS_LMA ((uint32_t)_BAS_LMA) /* where the BaS is stored in flash */
|
||||||
|
|
||||||
extern uint8_t _BAS_VMA[];
|
extern uint8_t _BAS_IN_RAM[];
|
||||||
#define BAS_VMA ((uint32_t)_BAS_VMA) /* where the BaS is run in RAM */
|
#define BAS_IN_RAM ((uint32_t)_BAS_IN_RAM) /* where the BaS is run in RAM */
|
||||||
|
|
||||||
extern uint8_t _BAS_SIZE[];
|
extern uint8_t _BAS_SIZE[];
|
||||||
#define BAS_SIZE ((uint32_t)_BAS_SIZE) /* size of the BaS, in bytes */
|
#define BAS_SIZE ((uint32_t)_BAS_SIZE) /* size of the BaS, in bytes */
|
||||||
@@ -808,7 +808,7 @@ void initialize_hardware(void) {
|
|||||||
/* copy the BaS code contained in flash to its final location */
|
/* copy the BaS code contained in flash to its final location */
|
||||||
src = (uint32_t *)BAS_LMA;
|
src = (uint32_t *)BAS_LMA;
|
||||||
end = (uint32_t *)(BAS_LMA + BAS_SIZE);
|
end = (uint32_t *)(BAS_LMA + BAS_SIZE);
|
||||||
dst = jmp = (uint32_t *)BAS_VMA;
|
dst = jmp = (uint32_t *)BAS_IN_RAM;
|
||||||
|
|
||||||
/* The linker script will ensure that the Bas size
|
/* The linker script will ensure that the Bas size
|
||||||
* is a multiple of the following.
|
* is a multiple of the following.
|
||||||
|
|||||||
Reference in New Issue
Block a user