diff options
author | Christian Cunningham <cc@localhost> | 2022-01-02 17:35:52 -0800 |
---|---|---|
committer | Christian Cunningham <cc@localhost> | 2022-01-02 17:35:52 -0800 |
commit | a4a15ad39d8231c11f74f4e5c4b74b9e5547f22e (patch) | |
tree | e3131968eb1fe1a21b9bb29aad5562a2483b19e0 /src | |
parent | 58b2bf3128192e3b937d934a81dcdfc7dc199900 (diff) |
Don't lock mutex if only written by one interrupt
Diffstat (limited to 'src')
-rw-r--r-- | src/sys/core.c | 2 | ||||
-rw-r--r-- | src/sys/timer.c | 9 | ||||
-rw-r--r-- | src/util/status.c | 5 |
3 files changed, 13 insertions, 3 deletions
diff --git a/src/sys/core.c b/src/sys/core.c index 636dd64..fbe0536 100644 --- a/src/sys/core.c +++ b/src/sys/core.c @@ -49,4 +49,6 @@ void sysinit(void) // Enable IRQ & FIQ enableirq(); enablefiq(); + + // Start Scheduler } diff --git a/src/sys/timer.c b/src/sys/timer.c index 9419f80..d9c2f6b 100644 --- a/src/sys/timer.c +++ b/src/sys/timer.c @@ -24,11 +24,18 @@ void increase_counter(void) } } +inline void hard_increase_counter(void) +{ + unsigned long* counter = (unsigned long*)exe_cnt_m.addr; + *counter += 1; +} + void c_timer(void) { // Reset the counter write_cntv_tval(cntfrq/CPS); - increase_counter(); + hard_increase_counter(); + //increase_counter(); status(); } diff --git a/src/util/status.c b/src/util/status.c index 95ea0ff..c4a7c80 100644 --- a/src/util/status.c +++ b/src/util/status.c @@ -63,10 +63,11 @@ void status(void) write_cstring(&g_Drawer, " v", 0x00FFFF); write_cstring(&g_Drawer, os_info_v, 0x00FFFF); write_string(&g_Drawer, " #"); - if (lock_mutex(&exe_cnt_m, SYS_PID) == 0) { + write_10(&g_Drawer, *((unsigned long*)exe_cnt_m.addr)); + /* if (lock_mutex(&exe_cnt_m, SYS_PID) == 0) { write_10(&g_Drawer, *((unsigned long*)exe_cnt_m.addr)); release_mutex(&exe_cnt_m, SYS_PID); - } + } */ // Commands write_string(&g_Drawer, "\nMonitor: Ctrl-A m Exit: Ctrl-A x Timer: Ctrl-T"); |