ARM OS Writing

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
tolgacakiroglu
Posts: 2
Joined: Tue Mar 24, 2009 12:10 am

ARM OS Writing

Post 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:
User avatar
Owen
Member
Member
Posts: 1700
Joined: Fri Jun 13, 2008 3:21 pm
Location: Cambridge, United Kingdom
Contact:

Re: ARM OS Writing

Post 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.
User avatar
Combuster
Member
Member
Posts: 9301
Joined: Wed Oct 18, 2006 3:45 am
Libera.chat IRC: [com]buster
Location: On the balcony, where I can actually keep 1½m distance
Contact:

Re: ARM OS Writing

Post 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).
"Certainly avoid yourself. He is a newbie and might not realize it. You'll hate his code deeply a few years down the road." - Sortie
[ My OS ] [ VDisk/SFS ]
User avatar
Owen
Member
Member
Posts: 1700
Joined: Fri Jun 13, 2008 3:21 pm
Location: Cambridge, United Kingdom
Contact:

Re: ARM OS Writing

Post 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 :)
eddyb
Member
Member
Posts: 248
Joined: Fri Aug 01, 2008 7:52 am

Re: ARM OS Writing

Post 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...
OSwhatever
Member
Member
Posts: 595
Joined: Mon Jul 05, 2010 4:15 pm

Re: ARM OS Writing

Post 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.
Post Reply