浏览代码

[libcpu]: add 8-byte alignment for armv6 architecture

SummerGift 7 年之前
父节点
当前提交
15715692d2
共有 1 个文件被更改,包括 3 次插入1 次删除
  1. 3 1
      libcpu/arm/armv6/stack.c

+ 3 - 1
libcpu/arm/armv6/stack.c

@@ -50,8 +50,10 @@ rt_uint8_t *rt_hw_stack_init(void *tentry, void *parameter,
 {
 	rt_uint32_t *stk;
 
+	stack_addr += sizeof(rt_uint32_t);
+	stack_addr  = (rt_uint8_t *)RT_ALIGN_DOWN((rt_uint32_t)stack_addr, 8);
 	stk 	 = (rt_uint32_t*)stack_addr;
-	*(stk) 	 = (rt_uint32_t)tentry;			/* entry point */
+	*(--stk) 	 = (rt_uint32_t)tentry;			/* entry point */
 	*(--stk) = (rt_uint32_t)texit;			/* lr */
 	*(--stk) = 0;							/* r12 */
 	*(--stk) = 0;							/* r11 */