This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: V850, interfacing to newlib?


On Sat, Jun 03, 2006 at 08:55:13PM +0200, Torsten Mohr wrote:
>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?

I don't see why.  That just looks like sp is set to point to its own
address on the stack.

cgf


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]