Mercurial > ecos-v2_0-branch
diff packages/hal/mips/arch/current/src/hal_misc.c @ 16:4f2df4ab82c8 ecos-sw-1999-06-18
Merge from eCos master repository on 1999-06-18-15:25:04-BST
| author | jlarmour |
|---|---|
| date | Fri, 18 Jun 1999 07:59:09 +0000 |
| parents | 4cc3eff958ab |
| children | 7253dcc42a09 |
line wrap: on
line diff
--- a/packages/hal/mips/arch/current/src/hal_misc.c +++ b/packages/hal/mips/arch/current/src/hal_misc.c @@ -111,16 +111,18 @@ externC cyg_uint32 hal_default_isr(CYG_A /*------------------------------------------------------------------------*/ /* data copy and bss zero functions */ -typedef void (CYG_ROM_ADDRESS)(void); +typedef void (CYG_SYM_ADDRESS)(void); -extern char __ram_data_start; -extern char __ram_data_end; -extern CYG_ROM_ADDRESS __rom_data_start; +// All these must use this type of address to stop them being given relocations +// relative to $gp (i.e. assuming they would be in .sdata) +extern CYG_SYM_ADDRESS __ram_data_start; +extern CYG_SYM_ADDRESS __ram_data_end; +extern CYG_SYM_ADDRESS __rom_data_start; #ifdef CYG_HAL_STARTUP_ROM void hal_copy_data(void) { - char *p = &__ram_data_start; + char *p = (char *)&__ram_data_start; char *q = (char *)&__rom_data_start; while( p != (char *)&__ram_data_end ) @@ -128,8 +130,8 @@ void hal_copy_data(void) } #endif -extern CYG_ROM_ADDRESS __bss_start; -extern CYG_ROM_ADDRESS __bss_end; +extern CYG_SYM_ADDRESS __bss_start; +extern CYG_SYM_ADDRESS __bss_end; void hal_zero_bss(void) {
