[Newlib][libgloss]ARM - semihosting use of __end__symbol in crt0.S
Wed Jul 5 18:19:00 GMT 2017
Thanks Tamar - but, what is the heap base address _used_ for in semihosting?
The heap storage is allocated starting during early start-up;
so hopefully it is not trying to use this memory...
Best Regards, Dave
On 7/5/2017 11:16 AM, Tamar Christina wrote:
> Hi Dave,
> The use of __end__ relates to the semihosting call SYS_HEAPINFO.
> Likely the link originally pointed tohttp://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0471f/Bacbefaa.html.
> Basically at the startup r0 will contain the given 4 byte structure, where the first entry is the heap_base.
> If this is 0 it means the system was unable to calculate it.
> __end__ is then used as a fall back for this.
> The reason __end__ is used instead of __bss_end___ has to do with the alignment requirements.
> The same question was asked on the bug-fix patch that introduced it:
> I am not completely certain, but this seems to indicate that not all of semihosting is supported on systems with multiple stacks.
> From: Dave Nadler<firstname.lastname@example.org>
> Sent: Wednesday, July 5, 2017 2:32:18 PM
> To: Tamar Christina;email@example.com
> Cc: nd
> Subject: [Newlib][libgloss]ARM - semihosting use of __end__symbol in crt0.S
> Hi Tamar - Perhaps as you are working on ARM crt0 and semihosting, you
> can help
> with a question regarding crt0's use of the symbol __end__ for semihosting.
> I read the code but I'm not expert at ARM assembly and do not understand
> what __end__ is being used for, and the comments do not explain the
> I am concerned that there is an assumption within semihosting about
> available memory or memory boundaries that may be incorrect in systems where
> heap and stack are not contiguous, for example embedded systems with multiple
> I asked the question on stack exchange but (surprise) didn't get any
> useful response:
> Thanks in advance for any clarification,
> Best Regards, Dave
Dave Nadler, USA East Coast voice (978) 263-0097,firstname.lastname@example.org, Skype
More information about the Newlib