RE: Bare-metal: how to specify the heap size in the linker script

Tamar Christina <[email protected]>
Newsgroups gmane.comp.lib.newlib
Message-ID <AM4PR08MB07375A38489C7F1C5DC4036BFF260@AM4PR08MB0737.eurprd08.prod.outlook.com>
Forwarding to list too. Sorry for the dup.

> -----Original Message-----
> From: Tamar Christina
> Sent: Wednesday, August 8, 2018 12:09
> To: 'Nick Clifton' <[email protected]>; Claudio Scordino
> <[email protected]>; [email protected]
> Subject: RE: Bare-metal: how to specify the heap size in the linker script
> 
> Hi Claudio,
> 
> > -----Original Message-----
> > From: [email protected] <[email protected]>
> On
> > Behalf Of Nick Clifton
> > Sent: Wednesday, August 8, 2018 11:58
> > To: Claudio Scordino <[email protected]>;
> [email protected]
> > Subject: Re: Bare-metal: how to specify the heap size in the linker
> > script
> >
> > Hi Claudio,
> >
> > > However, this way there is no way of checking if the heap has
> > > reached the
> > maximum value (after which we get stack corruption).
> >
> > It sounds like you need to check the current heap top against the
> > current stack pointer.  Take a look in
> > newlib/libgloss/aarch64/syscalls.c
> > at the implementation of the _sbrk() system call.  This uses a magic
> > asm("sp") statement to get hold of the stack pointer...
> 
> You didn't say if you're using semihosting or not
> 
> If you're using semihosting you can specify the limits in the SYS_HEAPINFO
> return values
> https://developer.arm.com/docs/100863/latest/semihosting-
> operations/sys_heapinfo-0x16
> 
> if you're not, then what Nick suggests is the way to go in your _sbrk
> implementation.
> 
> Regards,
> Tamar
> 
> >
> > Cheers
> >   Nick
> >
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.