Page 1 of 1

ARM OS Writing

Posted: Sun Jul 04, 2010 8:51 am
by tolgacakiroglu
Hi guys.

I wonder how to write an operating system for example HTC devices which runs Android or iPhone. Probably, that phones hardware must be same. Because on iPhone, people runs Android. Not all features are supported but it works.

I was working on writing x86 OS so many years ago. Now, I wonder how to write for that devices. Where can i find resources and also if possible a simulator?

Thank you. :wink:

Re: ARM OS Writing

Posted: Sun Jul 04, 2010 9:16 am
by Owen
tolgacakiroglu wrote:Hi guys.

I wonder how to write an operating system for example HTC devices which runs Android or iPhone. Probably, that phones hardware must be same.
Not even close. Every ARM SOC is completely different. Sure, all SOCs from, say, Texas Instruments may use the same peripherals, but they're at different addresses, attached to different VIC lines, and so on.
Because on iPhone, people runs Android. Not all features are supported but it works.
People have specifically added support for the iPhone's hardware
I was working on writing x86 OS so many years ago. Now, I wonder how to write for that devices. Where can i find resources and also if possible a simulator?

Thank you. :wink:
For documentation on a shipping phone, umm, good luck. Your best bet is probably something running Android or Maemo, as they're open source so you at least have Linux for reference. For everything else (And even then) there will be lots of reverse engineering involved.

For simulators there are things like Skyeye.

For recommended development hardware, I'd choose either a HawkBoard or BeagleBoard. The BeagleBoard is significantly more powerful, and more popular, so better documented.

Oh yeah, and important note: You will probably never get the actual cellular hardware working. There is absolutely no documentation on that available.

Re: ARM OS Writing

Posted: Sun Jul 04, 2010 4:53 pm
by Combuster
Symbian is open source too, making only Apple and Microsoft the nasty ones in that business (at least with a meaningful market share in smartphones).

Re: ARM OS Writing

Posted: Sun Jul 04, 2010 5:06 pm
by Owen
Combuster wrote:Symbian is open source too, making only Apple and Microsoft the nasty ones in that business (at least with a meaningful market share in smartphones).
I know. I have a Symbian phone ;)

Regardless - many Androids come with accessible bootloaders. Symbian phones tend not to. One of the reasons for this is that most Symbian phones run the wireless baseband firmware under the Symbian kernel, while Linux phones can't. The cellular stuff is one mess of NDAs, and so giving out specs is rather difficult.

Interestingly - Symbian's reference platform is now the BeagleBoard :)

Re: ARM OS Writing

Posted: Sun Jul 04, 2010 11:57 pm
by eddyb
I recommend checking out the N900. It's based on a OMAP3430, perfectly compatible with the OMAP3530 the BeagleBoard has. Texas Instruments gives full datasheets for OMAPs, so driver writing should be easy. Also the N900 comes with Maemo, so it should be easy to play with the bootloader. And the linux kernel source(not sure if also the standard one, I know only of the one used by Maemo) contains drivers for OMAPs, so you can always look into it...

Re: ARM OS Writing

Posted: Fri Aug 20, 2010 3:00 pm
by OSwhatever
If you have worked with x86 you will find that ARMs are very easy to work with.

My recommendation is to develop the kernel using Qemu emulator, for example using the Integrator CP profile. Then if you want to test on a real HW, get some development board with an ARM SoC. There are loads of them, with very varying price tag. Beagleboard is very popular and there are clones of them too worth looking into.

Emulators just makes you development much faster because everything happens on your PC and get rid of the extra step of flashing the HW all the time. Qemu also has GDB support which is very useful. HW is great for finding all those bugs you will not find with an emulator as emulators do not emulate the exact HW.

Download the CodeSourcey GCC compiler. Download the Qemu emulator and the you're good to go.