URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Only display areas with differences |
Details |
Blame |
View Log
Rev 207 |
Rev 520 |
|
|
extern char _start_bss;
|
extern char _start_bss;
|
extern char end;
|
extern char end;
|
extern char stack;
|
extern char stack;
|
|
|
static zeroandrun();
|
static zeroandrun();
|
#pragma noprolog
|
#pragma noprolog
|
|
|
start()
|
start()
|
{
|
{
|
asm("mov.w #%off(_stack),sp");
|
asm("mov.w #%off(_stack),sp");
|
/* asm("ldc.w #0x700,sr");*/
|
/* asm("ldc.w #0x700,sr");*/
|
asm("ldc.b #%page(_stack),tp");
|
asm("ldc.b #%page(_stack),tp");
|
asm("ldc.b #%page(_stack),dp");
|
asm("ldc.b #%page(_stack),dp");
|
asm("ldc.b #%page(_stack),ep");
|
asm("ldc.b #%page(_stack),ep");
|
/* Can't have anything else in here, since the fp won't be set up
|
/* Can't have anything else in here, since the fp won't be set up
|
so local variables won't work */
|
so local variables won't work */
|
zeroandrun();
|
zeroandrun();
|
}
|
}
|
|
|
static
|
static
|
zeroandrun()
|
zeroandrun()
|
{
|
{
|
char *p;
|
char *p;
|
p = &_start_bss;
|
p = &_start_bss;
|
while (p < &end)
|
while (p < &end)
|
{
|
{
|
*p++ = 0;
|
*p++ = 0;
|
}
|
}
|
main();
|
main();
|
_exit();
|
_exit();
|
}
|
}
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.