diff options
author | Vegard Storheil Eriksen <zyp@jvnv.net> | 2021-01-22 13:45:09 +0100 |
---|---|---|
committer | Vegard Storheil Eriksen <zyp@jvnv.net> | 2021-01-22 13:45:09 +0100 |
commit | 257c13ef064e20bfbe7330004c76a77f8a73b86b (patch) | |
tree | 8610cedea8481d8d6dbbc02edadd61e4983e758d /os | |
parent | 1a38973eb8fd0f889f7c272e9ef183687034d550 (diff) |
os: Remove old threading code.
Diffstat (limited to 'os')
-rw-r--r-- | os/thread.cpp | 4 | ||||
-rw-r--r-- | os/thread.h | 63 | ||||
-rw-r--r-- | os/time.h | 3 |
3 files changed, 1 insertions, 69 deletions
diff --git a/os/thread.cpp b/os/thread.cpp deleted file mode 100644 index 426fffd..0000000 --- a/os/thread.cpp +++ /dev/null @@ -1,4 +0,0 @@ -#include "thread.h" - -Thread Thread::main_thread __attribute__ ((init_priority (1000))); -Thread* Thread::active_thread = &Thread::main_thread; diff --git a/os/thread.h b/os/thread.h deleted file mode 100644 index 2213d6f..0000000 --- a/os/thread.h +++ /dev/null @@ -1,63 +0,0 @@ -#ifndef THREAD_H -#define THREAD_H - -#include <stdint.h> - -class Thread { - friend void switch_context(); - - private: - struct int_frame_t { - // Software saved. - uint32_t r4; - uint32_t r5; - uint32_t r6; - uint32_t r7; - uint32_t r8; - uint32_t r9; - uint32_t r10; - uint32_t r11; - uint32_t lr_ex; - - // Hardware saved. - uint32_t r0; - uint32_t r1; - uint32_t r2; - uint32_t r3; - uint32_t r12; - uint32_t lr; - uint32_t pc; - uint32_t psr; - }; - - int_frame_t* sp; - - Thread* next; - - static Thread* active_thread; - static Thread main_thread; - - Thread() : next(this) {} - - public: - Thread(void* stack, uint32_t stack_size, void (*func)()) { - sp = (int_frame_t*)((uint8_t*)stack + stack_size - sizeof(int_frame_t)); - - sp->lr_ex = 0xfffffff9; - - // frame->lr = thread exit handler - sp->pc = (uint32_t)func; - sp->psr = 0x01000000; - } - - void start() { - next = active_thread->next; - active_thread->next = this; - } - - static inline void yield() { - asm volatile("svc 0"); - } -}; - -#endif @@ -1,7 +1,7 @@ #ifndef TIME_H #define TIME_H -#include "thread.h" +#include <cstdint> struct STK_t { volatile uint32_t CTRL; @@ -28,7 +28,6 @@ class Time { inline static void sleep(uint32_t ms) { ms += systime; while(systime < ms) { - Thread::yield(); } } }; |