After some minor modifications to gcc, it's possible to create an Ada Runtime System (RTS) that's compatible with bare-board processors.
Using this, it's possible to port over (or start to) my sos2 microkernel from C to Ada.
Why Ada (specifically Ada 2012) over C for a Microkernel? Generics, inhertiance with tagged types and polymorphism with interfaces. More interestingly? Pre and post condition checks at runtime.
This means that you'd be able to get close to a verified microkernel. Nice eh?
After receiving my new Raspberry Pi I got straight to it in finding a nice use for it that *wasn't* a media player.
After a bit of research, the most recent Sega emulator seems to be DGen/SDL.
Compiling on the target I had to use --disable-hqx otherwise it barfed, not a complete surprise.
Anyway, you can clone the git code and run autoconf with SDL development libraries installed prior and off you go.
Hmm so which emulator next?
EDIT: IT works!
The way to get it working is to disable OpenGL on the command line (-g 0) and now Sonic runs smoothly!
I've been doing some more work on the microkernel and have got to the point where a user-mode application can create other processes and threads, get its priority and so on and also - semaphores!
They're counting semaphores with support for priority inheritance. Unfortunately it's still a basic round-robin scheduler so it's a little harder to test it yet but hopefully soon it'll be possible to work on some more posix-like code to try and support some BSD style services or networking like Lwip.
Of course, the driver model needs to be tweaked first as the rather limited kernel mode drivers need to be updated & IPC needs to added support user mode drivers.
Largely due to work and also I just didn't have anything useful to post.
In the last few months I've re-started and re-written my microkernel. This time I re-designed the architecture and put some more thought into it. Now it supports device drivers, alarms, timers and pre-emptive scheduling. It even has a few syscalls already.
The idea is to progress it far enough to support a bit of newlib.
I'd also like to get it ported over to ARM and getting running on some hardware.
I recently purchased a new Panasonic BDT210 Bluray player. It's fantastic. It does 3D (not that I have a television to support it) and plays everything and sound great.
However. I tried to fire up the DLNA Client with my Twonky Media Server. Fail. Even setting it to the correct profile didn't seem to keep it happy. I placed the ffmpeg binaries into c:\ffmpeg and enabled transcoding on the web server. Still, nothing.
After binding it to the correct port and giving it a reset, the player saw it. Then, I set the profile to the 'Sony Bravia' and enabled transcoding on both cores.
Tada! Serviio has ffmpeg built-in and does the transcoding to MPEG2 which is what the Panasonic BDT210 supports. I imagine with enough tinkering this would also enable you to do the same with TVersity or similar but Serviio just worked straight out the box.