mirror of
https://github.com/liquidraver/ZephCore.git
synced 2026-10-23 19:42:25 +00:00
doom: fix reboot, unreachable L1 demon and no exit; get mem: don't lock IRQs
- doom: each turn shrank the view vectors (cos = 1 - ROT/8, scale ~0.993, plus fixed-point truncation), so the level seemed to grow and after ~10 turns a zero wall height was divided by: usage fault, reboot. The view is renormalised to unit length after every turn; the ray step and wall height are clamped - doom: the L1 demon spawned inside a wall tile, so it could not be shot and the portal never opened; it now mirrors the imp at (11,4) - doom: the 60 s UI lock engaged mid-game, so the exit tap went to the lock screen; the Doom tick now keeps the lock and auto-off timers alive. The user button no longer also fires (joystick press does) - doom: sprites keep a brightness floor at distance (L2 boss is still hard to see; open) - get mem (MEM_STATS builds): walk threads with k_thread_foreach_unlocked; the stack scan under the thread-list spinlock held IRQs off long enough to trip the BLE controller's radio-ISR latency assert
This commit is contained in:
1 parent
38f815a0a1
commit
e6d6ecef80
3 files changed
+89
-25
No files matched your search
@@ -202,7 +202,12 @@ static void memStatsLine(int n, char *reply)
|
||||
struct mem_stats_walk w = { n, 0, reply };
|
||||
|
||||
reply[0] = '\0';
|
||||
k_thread_foreach(memStatsThread, &w);
|
||||
/* Unlocked: the callback scans a whole stack for its high-water mark,
|
||||
* and k_thread_foreach() holds the thread-list spinlock (interrupts off)
|
||||
* across it -- a few hundred us on nRF52, past the BLE controller's
|
||||
* 150 us inter-frame deadline: an advertising event asserted
|
||||
* (lll_adv.c "Radio ISR latency") and rebooted the node. */
|
||||
k_thread_foreach_unlocked(memStatsThread, &w);
|
||||
if (reply[0] != '\0') {
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user