From f5096c2e240312b5fddfdadd165a36e5f1a3cc65 Mon Sep 17 00:00:00 2001 From: batt Date: Fri, 3 Dec 2010 14:55:28 +0000 Subject: [PATCH] Refactor in order to clarify. git-svn-id: https://src.develer.com/svnoss/bertos/trunk@4611 38d2e660-2303-0410-9eaa-f027e97ec537 --- bertos/cpu/frame.h | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/bertos/cpu/frame.h b/bertos/cpu/frame.h index 117667e4..7420dddd 100644 --- a/bertos/cpu/frame.h +++ b/bertos/cpu/frame.h @@ -174,24 +174,19 @@ } #define asm_switch_context cm3_preempt_switch_context - #define CPU_PUSH_CALL_FRAME(sp, func) \ - do { \ - CPU_PUSH_WORD((sp), 0x01000000); /* xPSR */ \ - CPU_PUSH_WORD((sp), (cpu_stack_t)(func)); /* pc */ \ - CPU_PUSH_WORD((sp), 0); /* lr */ \ - CPU_PUSH_WORD((sp), 0); /* ip */ \ - CPU_PUSH_WORD((sp), 0); /* r3 */ \ - CPU_PUSH_WORD((sp), 0); /* r2 */ \ - CPU_PUSH_WORD((sp), 0); /* r1 */ \ - CPU_PUSH_WORD((sp), 0); /* r0 */ \ - CPU_PUSH_WORD((sp), 0xfffffffd); /* lr_exc */ \ - } while (0); - #define CPU_CREATE_NEW_STACK(stack) \ do { \ size_t i; \ /* Initialize process stack frame */ \ - CPU_PUSH_CALL_FRAME(stack, proc_entry); \ + CPU_PUSH_WORD((stack), 0x01000000); /* xPSR */ \ + CPU_PUSH_WORD((stack), (cpu_stack_t)proc_entry); /* pc */ \ + CPU_PUSH_WORD((stack), 0); /* lr */ \ + CPU_PUSH_WORD((stack), 0); /* ip */ \ + CPU_PUSH_WORD((stack), 0); /* r3 */ \ + CPU_PUSH_WORD((stack), 0); /* r2 */ \ + CPU_PUSH_WORD((stack), 0); /* r1 */ \ + CPU_PUSH_WORD((stack), 0); /* r0 */ \ + CPU_PUSH_WORD((stack), 0xfffffffd); /* lr_exc */ \ /* Push a clean set of CPU registers for asm_switch_context() */ \ for (i = 0; i < CPU_SAVED_REGS_CNT; i++) \ CPU_PUSH_WORD(stack, CPU_REG_INIT_VALUE(i)); \ @@ -251,7 +246,9 @@ CPU_PUSH_WORD((sp), 0); /* CR -> 4(SP) */ \ } while (0) -#else +#endif + +#ifndef CPU_PUSH_CALL_FRAME #define CPU_PUSH_CALL_FRAME(sp, func) \ CPU_PUSH_WORD((sp), (cpu_stack_t)(func)) #endif -- 2.25.1