V850, interfacing to newlib?

Torsten Mohr tmohr@s.netic.de
Mon Jun 5 16:08:00 GMT 2006


Hi,

in newlib-1.14.0/newlib/libc/sys/sysnecv850/sbrk.c i see:

caddr_t _sbrk (int incr)
{
  extern char end;		/* Defined by the linker */
  static char *heap_end;
  char *prev_heap_end;
#if 0
  char *sp = (char *)stack_ptr;
#else
  char *sp = (char *)&sp;    // #######################
#endif

  if (heap_end == 0)
    {
      heap_end = &end;
    }
  prev_heap_end = heap_end;
  if (heap_end + incr > sp)
    {
      _write (1, "Heap and stack collision\n", 25);
      abort ();
    }
  heap_end += incr;
  return (caddr_t) prev_heap_end;
}

Does that mean that i need to supply "sp" in the linker script
to have proper stack checking?

If yes, what else do i need to supply?  Is there a list of any
other things i need to do?


Best regards,
Torsten.



More information about the Newlib mailing list