diff options
author | Jakob Odersky <jodersky@gmail.com> | 2014-03-30 22:38:35 +0200 |
---|---|---|
committer | Jakob Odersky <jodersky@gmail.com> | 2014-03-30 22:38:35 +0200 |
commit | f93ab955074e213ad6f2bf60522cc86952d57d83 (patch) | |
tree | 65af07c02d6f0541f31cddef9cd564189395952b /kernel/sched/mcu/atmega2560/context.c | |
parent | 2500120f64db83fc682f38a83f7f9e03ed8a5123 (diff) | |
download | mux-f93ab955074e213ad6f2bf60522cc86952d57d83.tar.gz mux-f93ab955074e213ad6f2bf60522cc86952d57d83.tar.bz2 mux-f93ab955074e213ad6f2bf60522cc86952d57d83.zip |
major update
Diffstat (limited to 'kernel/sched/mcu/atmega2560/context.c')
-rw-r--r-- | kernel/sched/mcu/atmega2560/context.c | 98 |
1 files changed, 0 insertions, 98 deletions
diff --git a/kernel/sched/mcu/atmega2560/context.c b/kernel/sched/mcu/atmega2560/context.c deleted file mode 100644 index 10f16a9..0000000 --- a/kernel/sched/mcu/atmega2560/context.c +++ /dev/null @@ -1,98 +0,0 @@ -#include "mcu/sched/context.h" - -char* init_stack(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; -} |