|
|
|
|
|
by andrewguy9
2210 days ago
|
|
I also wrote a preemptive threaded operating system for AVR atmega 128. At the start we had threads, pipes between threads, serial io, interrupts. After we finished the project, I ported the system to standard UNIX system calls. Now I can tinker on it, and get full access to GDB/prints/profilers. I use signals, timers and pipes to simulate interrupts, clock and serial ports respectively. Because I’m targeting UNIX it’s pretty easy to get started and build little toy experiments. I haven’t gotten it to compile on AVR for 10 years. But I have been maintaining it as a playground for new ideas. Some recent additions are resumable functions (like python generators), A lisp user space, and a performance regression test suite. https://github.com/andrewguy9/kernelpanic |
|