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 > >