c79fadaf06
sched: set PendSV priority, fix _leave routine
2021-08-09 19:26:49 +02:00
364290f192
arch: add files i fucking forgot to commit
2021-08-08 20:52:44 +02:00
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.
2021-08-08 20:48:55 +02:00
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.
2021-08-07 14:30:09 +02:00
b122e54ec8
handle_fault: fix hex stringification algo
2021-08-05 20:50:45 +02:00
e96ee14e68
sched: make sleeping actually work
2021-08-05 18:52:51 +02:00
c24b183c60
init: fix init array pointer dereference bullshit
2021-08-05 16:29:18 +02:00
6d886d7252
syscall: refactor names
2021-08-05 16:15:35 +02:00
6e269e0217
sched: refactor and implement sleep
2021-08-05 16:14:18 +02:00
0e6d0057a8
arch: call init and preinit array
2021-08-05 16:08:09 +02:00
4359f43b0e
kevent: refactor callback system
2021-08-04 15:46:51 +02:00
f89aa9dc4e
sched: add idle task
2021-08-04 03:25:04 +02:00
5ffa784b77
arch: make exclusive stores fail after interrupts
2021-08-03 21:19:09 +02:00
c806c21936
arch: move vector table to separate file
2021-08-03 17:33:35 +02:00
4f9423efbb
arch: declare registers volatile
2021-08-03 14:42:24 +02:00
05662bc39e
arch: add fault handlers, rename exceptions
2021-08-03 14:41:36 +02:00
33439b2e37
debug: add sam3x8e svd file
2021-08-03 00:05:23 +02:00
57fb52dc1e
syscall: fix call source detection
2021-08-02 00:37:01 +02:00
aa722fc34f
serial_write_dma: prevent memory leak when busy
2021-08-01 23:51:19 +02:00
c36c2182d7
sched: minor refactor
2021-08-01 23:32:12 +02:00
7ef26f26e9
syscall: add config option to check syscall source
2021-08-01 23:28:25 +02:00
930cbc26e1
syscall: i am so stupid it physically hurts
2021-08-01 22:54:59 +02:00
8422ab0d56
debug: add breakpoint macro
2021-08-01 22:53:47 +02:00
0eea347421
build: actually use linker scripts
2021-08-01 22:53:05 +02:00
4db1702078
stdio: refactor printk to printf and friends
2021-08-01 18:53:22 +02:00
474974b779
startup: rename do_bootstrap to main
2021-08-01 17:19:53 +02:00
f54a4a0fa9
mutex: use uint8_t instead of int for lock value
2021-08-01 16:48:19 +02:00
9ca76d71ad
mutex: add mutex imlementation
2021-08-01 03:25:28 +02:00
adce3f3ed7
arch/at91sam3x8e: update struct reg_sw_snapshot
...
With my discovery of how to actually use thumb2
instructions in assembly files, the layout of
register snapshot has changed because they are
now pushed in consecutive order.
2021-08-01 02:25:34 +02:00
c2538b4516
build: parameterize STACK_SIZE in linker script
2021-08-01 01:26:16 +02:00
8f424d49e8
asm: refactor to use thumb2 instructions
2021-08-01 01:16:13 +02:00
a78a8ba59b
atom: reimplement in pure assembly
2021-08-01 00:11:13 +02:00
3ab358310c
build: ensure all symbols are included
2021-07-31 22:07:38 +02:00
643d3ed251
build: migrate to CMake
2021-07-31 19:39:51 +02:00
f0dc3a3433
kiss capitalism goodbye for good
...
The CNPL will make sure that absolutely no corporation is going to get
anywhere near Ardix -- exactly as it should be. Fuck you, corporations!
2021-05-10 16:19:38 +02:00
dca3e716ca
serial: add zero-copy dma i/o api
2021-03-01 16:08:01 +01:00
ec3b64d232
string: move header to standard location
...
Anything that implements POSIX should also be where POSIX defines
it to be, otherwise it would be pretty useless lol
2021-02-28 18:27:43 +01:00
af8210da4a
piss off capitalism
...
Ardix is being relicensed to GPL v3 or later. I have no idea whether you
can just do this if you feel like it or if it has any consequences, but
i kinda don't really care that much about it. Any changes made after
this commit will definitely fall under the GPL though, and considering
that only few things are really working yet anyways this is good enough
for me.
2021-02-28 02:18:39 +01:00
4349420217
kent: redesign api
...
This also got the dmabuf refcount hard fault issue resolved somehow.
Don't ask how or why, i'm just glad it works now.
2021-02-28 01:28:07 +01:00
Felix Kopp
c4717d8fce
dma: add abstraction layer for dma
2021-02-03 04:30:46 +01:00
Felix Kopp
256b49b529
device: add base abstraction for all devices
2021-02-03 04:01:27 +01:00
Felix Kopp
56c76d8b4b
sched: use proper UNIX® terminology
2021-02-01 00:07:45 +01:00
Felix Kopp
50928211ca
minor fixes and improvements
2021-01-07 19:04:52 +01:00
Felix Kopp
4a3e33dc05
sycall: conform to POSIX
2021-01-07 12:29:45 +01:00
Felix Kopp
22c07fb544
syscall: use actual free register
2021-01-05 23:29:20 +01:00
Felix Kopp
5555a3d56d
cleanup and fix warnings
2021-01-05 17:50:46 +01:00
Felix Kopp
63ccd87112
arch/at91sam3x8e: finalize entry routine
2021-01-05 17:31:26 +01:00
Felix Kopp
8252f14b6b
arch/at91sam3x8e: use r0 for syscall number
2021-01-05 15:30:36 +01:00
Felix Kopp
ef25cd9fbb
arch/at91sam3x8e: clean up
2021-01-05 14:41:51 +01:00
Felix Kopp
632824e437
fs: implement basic write
2021-01-05 14:38:06 +01:00