diff options
author | Jakob Odersky <jodersky@gmail.com> | 2014-04-08 13:18:27 +0200 |
---|---|---|
committer | Jakob Odersky <jodersky@gmail.com> | 2014-04-08 14:57:10 +0200 |
commit | 350437ef4b8ba0811d285f7454d2b54ffce6b029 (patch) | |
tree | 5084c73adbb4cc3aee9d000b3816d98a57203f36 /kernel/task/mcu/atmega2560/context.c | |
parent | c4ebb91caf33ecf5a47785584a4231eb1e4dfa2a (diff) | |
download | mux-350437ef4b8ba0811d285f7454d2b54ffce6b029.tar.gz mux-350437ef4b8ba0811d285f7454d2b54ffce6b029.tar.bz2 mux-350437ef4b8ba0811d285f7454d2b54ffce6b029.zip |
change build structure
Diffstat (limited to 'kernel/task/mcu/atmega2560/context.c')
-rw-r--r-- | kernel/task/mcu/atmega2560/context.c | 98 |
1 files changed, 0 insertions, 98 deletions
diff --git a/kernel/task/mcu/atmega2560/context.c b/kernel/task/mcu/atmega2560/context.c deleted file mode 100644 index 9bb7036..0000000 --- a/kernel/task/mcu/atmega2560/context.c +++ /dev/null @@ -1,98 +0,0 @@ -#include "mcu/task/context.h" - -char* stack_init(const char* const mem_low, const char* const mem_high, void (*entry)(char), char args) { - char* sp = (char*) mem_high; - unsigned long address = (unsigned long) entry; - - // pattern for debugging purposes - *sp = (char) 0x1; - sp--; - *sp = (char) 0x2; - sp--; - *sp = (char) 0x1; - sp--; - *sp = (char) 0x2; - sp--; - - // put return address on stack - *sp = (char) ( address & (unsigned short) 0x00ff ); - sp--; - - *sp = (char) ( (address >> 8) & ( unsigned short ) 0x00ff ); - sp--; - - *sp = (char) ( (address >> 16) & ( unsigned short ) 0x00ff ); - sp--; - - // save registers - *sp = (char) 0x00; //r0 - sp--; - *sp = (char) 0x80; //SREG, enable interrupts when task starts - sp--; - *sp = ( char ) 0x00; //r1 - sp--; - *sp = ( char ) 0x00; //r2 - sp--; - *sp = ( char ) 0x00; //r3 - sp--; - *sp = ( char ) 0x00; //r4 - sp--; - *sp = ( char ) 0x00; //r5 - sp--; - *sp = ( char ) 0x00; //r6 - sp--; - *sp = ( char ) 0x00; //r7 - sp--; - *sp = ( char ) 0x00; //r8 - sp--; - *sp = ( char ) 0x00; //r9 - sp--; - *sp = ( char ) 0x00; //r10 - sp--; - *sp = ( char ) 0x00; //r11 - sp--; - *sp = ( char ) 0x00; //r12 - sp--; - *sp = ( char ) 0x00; //r13 - sp--; - *sp = ( char ) 0x00; //r14 - sp--; - *sp = ( char ) 0x00; //r15 - sp--; - *sp = ( char ) 0x00; //r16 - sp--; - *sp = ( char ) 0x00; //r17 - sp--; - *sp = ( char ) 0x00; //r18 - sp--; - *sp = ( char ) 0x00; //r19 - sp--; - *sp = ( char ) 0x00; //r20 - sp--; - *sp = ( char ) 0x00; //r21 - sp--; - *sp = ( char ) 0x00; //r22 - sp--; - *sp = ( char ) 0x00; //r23 - sp--; - - *sp = (char) ( args ); //place first argument in register 24 - sp--; - - *sp = ( char ) 0x00; //r25 - sp--; - *sp = ( char ) 0x00; //r26 - sp--; - *sp = ( char ) 0x00; //r27 - sp--; - *sp = ( char ) 0x00; //r28 - sp--; - *sp = ( char ) 0x00; //r29 - sp--; - *sp = ( char ) 0x00; //r30 - sp--; - *sp = ( char ) 0x00; //r31 - sp--; - - return sp; -} |