I’m not a Linux guy, so the first thing I thought when I saw news articles on the device was if I could get Windows Compact 7 (Windows CE) running on the device. It seemed to be a challenge right down my alley. The code needed to port the OS is called a Board Support Package (BSP), and I’ve written a number of BSPs over the years going back to my first work with Windows CE 1.0 back in the mid 1990’s.
My BSP is going to be released as “Shared Source” so that anyone can use the BSP to run Windows Compact 7 on the device. Shared Source is Microsoft’s version of a source code license that allows the user to do just about anything they want including putting the code in a shipping product. It’s not ‘viral’ like GPL where the any code derived from GPL code must also be GPL.
Given the nature of GPL and the rather zealous nature of some of its proponents, I wanted to avoid any accusation that I was taking GPL code and putting it into my BSP. To minimize that possibility, I’ve avoided looking at any source code for the Raspberry Pi’s Linux distros. I have been reading various web sites, but I haven’t downloaded any source. I did download a binary of a boot disk so that I could test the hardware and ensure that it works.
This clean room approach is problematic given that the full programming manual for the Broadcom BCM2835 (the CPU on the Pi) is not public. Broadcom has provided a peripheral manual that discusses the register addresses / functions of some of the embedded peripherals but it’s not complete. Still, throughout the project I plan to stick to my guns about not looking at the Linux port.