I'm learning operating system fundamentals by writing baremetal code for my Raspberry Pi.
My medium term goal is to draw a cursor and move it using a mouse.
I recently got the USB host driver to the point where it could recognise port connects/disconnects. Enumerating USB devices involves some waiting, so I decided to work on concurrency support so that the USB driver wouldn't block the rest of the system. This week I got preemptively scheduled threads working (super fun stuff).
Now I'm trying to make the driver code more self-contained by keeping the driver's message queue on its stack. I'm not sure if it's a good idea. I'll play around with it for another day or two and then get back to USB enumeration.
Comments
I'm learning operating system fundamentals by writing baremetal code for my Raspberry Pi.
My medium term goal is to draw a cursor and move it using a mouse.
I recently got the USB host driver to the point where it could recognise port connects/disconnects. Enumerating USB devices involves some waiting, so I decided to work on concurrency support so that the USB driver wouldn't block the rest of the system. This week I got preemptively scheduled threads working (super fun stuff).
Now I'm trying to make the driver code more self-contained by keeping the driver's message queue on its stack. I'm not sure if it's a good idea. I'll play around with it for another day or two and then get back to USB enumeration.