anna
364290f192
arch: add files i fucking forgot to commit
3 years ago
anna
59db5471ed
malloc: rewrite with atomic support
3 years ago
anna
7e6dbad05f
sched: complete rework of context switching
...
The old strategy was to only do context switching
from within the PendSV handler. This worked fine
until now because all syscalls were handled either
atomically or just returned -EAGAIN if the
resource was locked or busy. However, with the
introduction of I/O wait, we need to be able to
sleep directly from within the kernel by moving
the context switching completely into the kernel.
3 years ago
anna
60f1ebea8a
arch: use CMSIS after all
...
It was inevitable, tbh. I really wanted to do
everything entirely from scratch, but all those
hardware registers are just too much to be
maintained by a single person. And since i plan
on supporting different boards at some point in
the future, it would be complete madness to redo
everything for that board.
3 years ago
anna
b122e54ec8
handle_fault: fix hex stringification algo
3 years ago
anna
e96ee14e68
sched: make sleeping actually work
3 years ago
anna
b4046795c8
list: fix shit
3 years ago
anna
c24b183c60
init: fix init array pointer dereference bullshit
3 years ago
anna
6287cb79be
stdint.h: now even less POSIX-noncompliant!
3 years ago
anna
6d886d7252
syscall: refactor names
3 years ago
anna
6e269e0217
sched: refactor and implement sleep
3 years ago
anna
0e6d0057a8
arch: call init and preinit array
3 years ago
anna
4359f43b0e
kevent: refactor callback system
3 years ago
anna
30404f60d4
kevent: initialize kevents during boot
3 years ago
anna
b053cc3279
list: fix list_for_each_entry_safe
3 years ago
anna
203c167822
kevent: add device kevent
3 years ago
anna
f89aa9dc4e
sched: add idle task
3 years ago
anna
e291a51d2f
kevent: add event system
3 years ago
anna
5ffa784b77
arch: make exclusive stores fail after interrupts
3 years ago
anna
1b1e48e54b
printf: simplify address expressions
3 years ago
anna
528785d40e
malloc: track memory usage and clarify docs
3 years ago
anna
711970ae10
README: clarify what architectures are supported
3 years ago
anna
a8295db11b
vscode: update C settings to match CMake
3 years ago
anna
c806c21936
arch: move vector table to separate file
3 years ago
anna
4f9423efbb
arch: declare registers volatile
3 years ago
anna
86c95f3fff
gitignore: ignore hidden files in .vscode
3 years ago
anna
05662bc39e
arch: add fault handlers, rename exceptions
3 years ago
anna
7fa55c8dab
mutex: return -EAGAIN if trylock fails
3 years ago
anna
33439b2e37
debug: add sam3x8e svd file
3 years ago
anna
552688b9a0
atom: fix stupid memory leak
3 years ago
anna
57fb52dc1e
syscall: fix call source detection
3 years ago
anna
aa722fc34f
serial_write_dma: prevent memory leak when busy
3 years ago
anna
7bee3f694b
add config for openocd with atmel-ice
3 years ago
anna
c36c2182d7
sched: minor refactor
3 years ago
anna
5a220eee5d
fix build (once again)
3 years ago
anna
7ef26f26e9
syscall: add config option to check syscall source
3 years ago
anna
930cbc26e1
syscall: i am so stupid it physically hurts
3 years ago
anna
8422ab0d56
debug: add breakpoint macro
3 years ago
anna
0eea347421
build: actually use linker scripts
3 years ago
anna
c81ea7e7fd
printf: don't ignore return value of last write()
3 years ago
anna
4db1702078
stdio: refactor printk to printf and friends
3 years ago
anna
474974b779
startup: rename do_bootstrap to main
3 years ago
anna
5fabe9db3f
vscode: use CMake plugin for IntelliSense
3 years ago
anna
2bb39cf1c5
update readme with new config system
3 years ago
anna
02286058d6
io: declare kstdin and kstdout in header
3 years ago
anna
abb526f655
stddef: add typeof macro
3 years ago
anna
3aa2c53893
stdint: use correct typedefs
3 years ago
anna
caefad25a8
build: parameterize serial config macros
3 years ago
anna
f54a4a0fa9
mutex: use uint8_t instead of int for lock value
3 years ago
anna
d20da423ec
fs: implement file abstraction
3 years ago