public inbox for ecos-devel@sourceware.org
 help / color / mirror / Atom feed
From: Nick Garnett <nickg@calivar.com>
To: ecos-devel@ecos.sourceware.org
Subject: Re: Thread stack alignment requirements for ARM
Date: Thu, 23 Jun 2011 09:58:00 -0000	[thread overview]
Message-ID: <4E030E46.8070700@calivar.com> (raw)
In-Reply-To: <BANLkTinA1-0RC8bVsR4Pp=z+CNKODiizbw@mail.gmail.com>

On 23/06/11 03:37, Michael Bergandi wrote:
> Hi all,
> 
> I am hoping that someone can share some knowledge on thread stack
> alignment requirements for ARM targets and how eCos is handling it.
> 
> According to the ARM site, they say that stacks should be 16 byte
> aligned. Then, they go on to say that there are a couple ways that
> stack alignment requirement can be managed. One of which was if you
> are running on an OS and the OS has taken steps to ensure the
> requirement is met, then the application need not worry about it. I
> don't think I fully understand what this means exactly.
> 
> Our particular target is the mx27 (ARM9). Out of habit, we make all
> the memory for the thread stacks in our applications 4 byte aligned.
> Is this enough? Is it really necessary?
> 
> I have found some packages in the kernel (specifically, bsd_tcpip)
> that has thread stack memory allocated with no alignment attribute
> set. This got me wondering how this all works.
> 
> I would love to here from someone with a much better grasp on this.
> 

The alignment of the pieces of memory that are used as stacks does not
really matter. It is the alignment of the stack pointer that matters.
This is handled in HAL_THREAD_INIT_CONTEXT() which ensures that the
stack pointer is 16 byte aligned regardless of the alignment of the
stack pointer passed to it.


-- 
Nick Garnett                                       eCos Kernel Architect
eCosCentric Limited    http://www.eCosCentric.com       The eCos experts
Barnwell House, Barnwell Drive, Cambridge, UK.      Tel: +44 1223 245571
Registered in England and Wales:                         Reg No: 4422071

  parent reply	other threads:[~2011-06-23  9:58 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-23  2:37 Michael Bergandi
2011-06-23  7:27 ` Stanislav Meduna
2011-06-23  9:58 ` Nick Garnett [this message]
2011-06-23 16:05   ` Michael Bergandi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4E030E46.8070700@calivar.com \
    --to=nickg@calivar.com \
    --cc=ecos-devel@ecos.sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).