hi,everybody.

I am sorry to send a same email without subject for this question.^_^

 

I don't know why use the "stmia  sp, {r0, lr}" instruction rather than "stmdb 
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 "stmdb sp, 
{r0, lr}" and the SP should decrement.

 

Reply via email to