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.