What exactly is multitasking, scheduling, and context switching? This is a great question for those interested in understanding how operating systems work, even small real-time operating systems (RTOS). [Jeffrey] had the same question, so he built a multitasking scheduler for the MSP430F5529 LaunchPad.
These topics are some of the most difficult to wrap your head around in the embedded world. Choosing a project that helps you understand tough topics is a great way to learn, plus it can be very rewarding. In his post, [Jeffrey] goes over the basics of how all of these things work, and how they can be implemented on the MSP430. Overall, it is a great read and very informative. For more information on RTOS, check out a few sections in the FreeRTOS book. Be sure to see his code in action after the break.
[Jeffery] was nice enough to release all of his code as open source, so be sure to check out his repository on GitHub. “Feel free to use it and learn more. I have made the code self explanatory. Enjoy!”
Continue reading “Multitasking on the MSP430F5529 LaunchPad”
Those of us have been dual booting Linux, Windows, and OS X operating systems for a while will be familiar with bootloaders such as GRUB and its ilk. Surprisingly, though, we haven’t seen a bootloader for the most popular computer of the last year – the Raspberry Pi. It makes sense to have a bootloader for the Raspberry Pi; with dozens of different distributions from Raspbian, Occidentalis, and a bunch of more esoteric distros, we’re surprised we’re only just now seeing a proper bootloader for the Raspi.
Berryboot is extremely simple to install – just copy it onto a FAT formatted SD card and you can install multiple OSes on your Raspberry Pi. On booting, Berryboot shows a dialog box of all the installed operating systems, with new ones able to be installed over the internet from a Berryboot menu.
You can grab Berryboot over on the gits. Berryboot also works with those Allwinner A10 single board computers, but the Hackaday tip line hasn’t seen hide nor hair of those boards.
For all the interesting DSP functions locked away in the Raspberry Pi, it’s still hard to imagine using the Raspberry Pi as an eminently capable software synthesizer, tracker, or sequencer. Running any of the usual Linux digital audio programs means – surprise – running Linux, and the performance penalty associated with that.
It would be much better if all these audio programs could run directly on the Raspberry Pi without an operating system, and [Joe]’s project is right up that alley. He’s playing MIDI files without an operating system, in effect making the Raspberry Pi a very powerful embedded platform.
[Joe]’s build is the first bare metal audio code for the Raspberry Pi. It’s actually an LV2 plugin host that will load audio plugins, read MIDI files, and shoot the resulting audio out over the 1/8″ jack on the Pi. This work wouldn’t have been possible without a few Raspberry Pi bare metal tutorials put together by [David Welch].
Hopefully this won’t be the last we’ll see of [Joe] and his code; the Raspberry Pi has more than enough horsepower to be an amazing sampler, synth, beat machine, or the next generation of Akai MPC. All we need are a few brave coders to take up coding bare metal on the Raspberry Pi.
Even though the Raspberry Pi has, from the very beginning, been touted as an educational computer, we’ve seen neither hide nor hare of coursework, lesson plans, or even computer sciencey tutorials using the Raspi. We’re guessing academia works at a much slower pace than the average hardware hacker, but [Alex Chadwick] at Cambridge University has managed to put together an online tutorial on developing an operating system from scratch for the Raspi.
The goal of this tutorial is to throw a budding Raspi tinkerer into the strange and confusing world of registers, hexadecimal, and ARMv6 assembly. After going through the necessary toolchain, [Alex]’s tutorials cover blinking the ‘OK’ LED on the Raspberry Pi using only assembly.
The OS development guide goes on from there to include drawing graphics on the screen and even accepting input from a USB keyboard.
It’s important to point out what [Alex]’s tutorial isn’t; even though this series of tutorials goes through manipulating the bare metal of the Raspberry Pi, don’t expect to be porting UNIX to the Raspi after going through these guides. That being said, after completing these tutorials, you’ll be in a fabulous position for building your own homebrew OS on the Raspberry Pi.
Pyxis 2 is a recently released new embedded operating system. The first Pyxis OS would run on an arduino with a touch screen, and provided a nice GUI. Pyxis 2 on the other hand has departed from most of its predicator, and is now made on top of the .NET micro framework, and natively supports FEZ Cobra and ChipworkX systems. It supports 320×240, 480×272, even 800×480 (if you have the ram), LCDs.
Some of the features of the OS include alpha blended desktop icons, file dialogs, prompts, input, color selection, file box, buttons, all the standard stuff to construct your applications, support for network, USB, SD and Mp3. Since it is .NET you can also use C# visual studio to construct everything without dedicating yourself to hardware until you are ready.
Join us after the break for a short video.
Continue reading “.Net OS for your ARM”
Since its first debut three years ago, ROS has been gaining some popularity with the robotics folks. It’s behind the scenes of those impressive quadcopters you may remember from a while back. ROS helps abstract the lower level functions of a robot by supplying lots of code for commonly used components (wiimote for example). Being an “operating system” it comes with lots of nice features you would expect, like a package manager. It’s open source and many of their projects are well documented making it easy get started.
Check out the video after the break to see it in action Continue reading “ROS turns three”
A new operating system, code named Barrelfish is being developed by Microsoft research labs and ETH Zurich in Switzerland. This operating system is being built with multi core operations foremost in priority. It is supposed to be extremely scalable and able to function on a very wide range of hardware. You can download the current snapshot of it on their site and dig into the source code, released under a 3-clause BSD style license. If you would like to learn the primary differences between this OS and Windows or Linux, you can read this PDF.