source: rtems/c/src/lib/libbsp/i960/i960sim/start/start.c @ 68c498f4

4.104.114.84.95
Last change on this file since 68c498f4 was 68c498f4, checked in by Joel Sherrill <joel.sherrill@…>, on 06/12/00 at 16:34:46

Added i960sim BSP which (ignoring the 3 instructions not supported
by gdb 5.0's i960 simulator) is enough to run hello world.

  • Property mode set to 100644
File size: 1.0 KB
Line 
1char *__env[1] = {0};
2char **environ = __env;
3
4#define ENABLE_TRACE_MASK 1
5#define STACK_ALIGN 64
6
7__inline static void
8init_Cregs (void)
9{
10    /* set register values gcc like */
11    register unsigned int mask0=0x3b001000;
12    register unsigned int mask1=0x00009107;
13    __asm__ volatile ("mov   %0,g14"
14                      :                      /* no output */
15                      : "I" (0));            /* gnu structure pointer */
16    __asm__ volatile ("modac %1,%0,%0"
17                      :                      /* no output */
18                      : "d" (mask0),
19                        "d" (mask1));        /* fpu control kb */
20}
21
22void _start(void)
23{
24  extern int stack_init;
25  register void *ptr = &stack_init;
26
27  /* enable tracing */
28  register int mask = ENABLE_TRACE_MASK;
29  __asm__ volatile ("modpc %0,%0,%0" : : "d" (mask));
30
31  /* SP must be 64 bytes larger than FP at start.  */
32  __asm__ volatile ("mov %0,sp" : : "d" (ptr + STACK_ALIGN));
33  __asm__ volatile ("mov %0,fp" : : "d" (ptr));
34
35
36  init_Cregs();
37  boot_card();
38  _sys_exit(0);
39}
Note: See TracBrowser for help on using the repository browser.