comparison 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
comparison
equal deleted inserted replaced
15:c0d8793d9978 16:4f2df4ab82c8
109 } 109 }
110 110
111 /*------------------------------------------------------------------------*/ 111 /*------------------------------------------------------------------------*/
112 /* data copy and bss zero functions */ 112 /* data copy and bss zero functions */
113 113
114 typedef void (CYG_ROM_ADDRESS)(void); 114 typedef void (CYG_SYM_ADDRESS)(void);
115 115
116 extern char __ram_data_start; 116 // All these must use this type of address to stop them being given relocations
117 extern char __ram_data_end; 117 // relative to $gp (i.e. assuming they would be in .sdata)
118 extern CYG_ROM_ADDRESS __rom_data_start; 118 extern CYG_SYM_ADDRESS __ram_data_start;
119 extern CYG_SYM_ADDRESS __ram_data_end;
120 extern CYG_SYM_ADDRESS __rom_data_start;
119 121
120 #ifdef CYG_HAL_STARTUP_ROM 122 #ifdef CYG_HAL_STARTUP_ROM
121 void hal_copy_data(void) 123 void hal_copy_data(void)
122 { 124 {
123 char *p = &__ram_data_start; 125 char *p = (char *)&__ram_data_start;
124 char *q = (char *)&__rom_data_start; 126 char *q = (char *)&__rom_data_start;
125 127
126 while( p != (char *)&__ram_data_end ) 128 while( p != (char *)&__ram_data_end )
127 *p++ = *q++; 129 *p++ = *q++;
128 } 130 }
129 #endif 131 #endif
130 132
131 extern CYG_ROM_ADDRESS __bss_start; 133 extern CYG_SYM_ADDRESS __bss_start;
132 extern CYG_ROM_ADDRESS __bss_end; 134 extern CYG_SYM_ADDRESS __bss_end;
133 135
134 void hal_zero_bss(void) 136 void hal_zero_bss(void)
135 { 137 {
136 char *p = (char *)&__bss_start; 138 char *p = (char *)&__bss_start;
137 139