ソースを参照

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

SummerGift 7 年 前
コミット
336207ad31
1 ファイル変更13 行追加12 行削除
  1. 13 12
      libcpu/arm/armv6/stack.c

+ 13 - 12
libcpu/arm/armv6/stack.c

@@ -53,20 +53,21 @@ rt_uint8_t *rt_hw_stack_init(void *tentry, void *parameter,
     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)texit;          /* lr */
-    *(--stk) = 0;                           /* r12 */
-    *(--stk) = 0;                           /* r11 */
-    *(--stk) = 0;                           /* r10 */
-    *(--stk) = 0;                           /* r9 */
-    *(--stk) = 0;                           /* r8 */
-    *(--stk) = 0;                           /* r7 */
-    *(--stk) = 0;                           /* r6 */
-    *(--stk) = 0;                           /* r5 */
-    *(--stk) = 0;                           /* r4 */
-    *(--stk) = 0;                           /* r3 */
-    *(--stk) = 0;                           /* r2 */
-    *(--stk) = 0;                           /* r1 */
+    *(--stk) = 0xdeadbeef;                  /* r12 */
+    *(--stk) = 0xdeadbeef;                  /* r11 */
+    *(--stk) = 0xdeadbeef;                  /* r10 */
+    *(--stk) = 0xdeadbeef;                  /* r9 */
+    *(--stk) = 0xdeadbeef;                  /* r8 */
+    *(--stk) = 0xdeadbeef;                  /* r7 */
+    *(--stk) = 0xdeadbeef;                  /* r6 */
+    *(--stk) = 0xdeadbeef;                  /* r5 */
+    *(--stk) = 0xdeadbeef;                  /* r4 */
+    *(--stk) = 0xdeadbeef;                  /* r3 */
+    *(--stk) = 0xdeadbeef;                  /* r2 */
+    *(--stk) = 0xdeadbeef;                  /* r1 */
     *(--stk) = (rt_uint32_t)parameter;      /* r0 : argument */
 
     /* cpsr */