Thank you for your reply!
I make a mistake before.
The "sp" should decrement before storing rather than after.
So it's should "stmdb sp, {r0, lr}"
The "stmdb" is equivalent to "stmfd".
So i am in accordance with u in this matter!
But,
How to explain the "stmia sp, {r0, lr}" of the micros "vector_stub"
defined in file "arch/arm/kernel/entry-armv.S".
Are there different comprehension in this problem?
Thax!
-----邮件原件-----
发件人: [email protected]
[mailto:[email protected]] 代表 [email protected]
发送时间: 2009年7月30日 22:01
收件人: Kernelnewbies
主题: Re: 答复: Ecartis command results: appsub kernelnewbies
[email protected] 4A71650B:26CF.1:xrearyarjovrf
On Thu, 30 Jul 2009 18:07:18 +0800, 付新荣 <[email protected]>
wrote:
> hi,everybody.
> I don't know why use the "stmia sp, {r0, lr}" instruction rather than
> "stmda sp, {r0, lr}" in the macros "vector_stub" defined in file
> "arch/arm/kernel/entry-armv.S".
>
> becaue the "sp" register is point to the kernel stack top.
> The "sp" register is initialized with "init_thread_union +
THREAD_START_SP"
>
>
> Kernel stack:
> =======================================================================
> Lower address
> higher address
> | init_thread_union| <-------stack content--------|
> sp
> |<----------------------------8K bytes--------------------------->|
> =======================================================================
>
> According to the Kernel stack mechanism,I think that it should be
"stmda
> sp, {r0, lr}" and the SP should decrement.
>
> -----邮件原件-----
> 发件人: Ecartis [mailto:[email protected]]
> 发送时间: 2009年7月30日 17:39
> 收件人: 付新荣
> 主题: Ecartis command results: appsub kernelnewbies
> [email protected] 4A71650B:26CF.1:xrearyarjovrf
>
>
> List context changed to 'kernelnewbies' by following command.
>>> appsub kernelnewbies [email protected]
>>> 4A71650B:26CF.1:xrearyarjovrf
> Subscribed.
>
> ---
> Ecartis v1.0.0 - job execution complete.
>
>
> --
> To unsubscribe from this list: send an email with
> "unsubscribe kernelnewbies" to [email protected]
> Please read the FAQ at http://kernelnewbies.org/FAQ
Hi,
I don't know the intrinsics of the kernel stack, but the stack described is
indeed a full descending stack.
If pushing on the stack, it's more common to use the stmfd instruction
though. (IOW store on a full descending stack)
I guess it depends whether the excerpt of code is aiming to push or to pop
the stack.
It should be pushing, since the sp is the destination for the storing of
all registers + link register...
B rgds
Kris
--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to [email protected]
Please read the FAQ at http://kernelnewbies.org/FAQ
--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to [email protected]
Please read the FAQ at http://kernelnewbies.org/FAQ