Well documented ARM devices for os dev?

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
0xHenry
Posts: 3
Joined: Sat Dec 25, 2010 3:29 am

Well documented ARM devices for os dev?

Post by 0xHenry »

I'm willing to enhance my ARM assembly skills by creating a simple OS for an ARM device. I've been trying to find a well documented and preferably cheap one but I've had no success. It doesn't need to be the most powerful one but some smarthpone-like features like (touch)screen, camera, bluetooth and similar are a plus so I can learn many things with single device.

So do you know any? :o
TylerH
Member
Member
Posts: 285
Joined: Tue Apr 13, 2010 8:00 pm
Contact:

Re: Well documented ARM devices for os dev?

Post by TylerH »

You could build a device with any peripherals you want. http://www.sparkfun.com/products/520
0xHenry
Posts: 3
Joined: Sat Dec 25, 2010 3:29 am

Re: Well documented ARM devices for os dev?

Post by 0xHenry »

That sounds like a good idea. I could try it but I have pretty much no clue what things should I buy and how to build it.
User avatar
JamesM
Member
Member
Posts: 2935
Joined: Tue Jul 10, 2007 5:27 am
Location: York, United Kingdom
Contact:

Re: Well documented ARM devices for os dev?

Post by JamesM »

TylerH wrote:You could build a device with any peripherals you want. http://www.sparkfun.com/products/520
I couldn't find what ARM chip that SoC is based on, but as it's a microcontroller it's either going to be a Cortex-M series or one of its predecessors (ARM7TDMI). This won't handle the kind of workload you're expecting - it's not an applications processor.

The IC doesn't also specify its pinout, so doesn't say if it has any standard peripherals on board (such as a UART).

I'd stick with the beagleboard.
0xHenry
Posts: 3
Joined: Sat Dec 25, 2010 3:29 am

Re: Well documented ARM devices for os dev?

Post by 0xHenry »

Beagleboard looks excellent. I should have stuff to experiment for a long time with it.

Thank you guys! =D>
OSwhatever
Member
Member
Posts: 595
Joined: Mon Jul 05, 2010 4:15 pm

Re: Well documented ARM devices for os dev?

Post by OSwhatever »

For OS development I recommend using qemu instead in initial stages. Compile-flash-run, compile-flash-run will slow you down rather than just recompile and run on the host computer. Also debugging often requires additional JTAG hardware since I assume you don't have remote debuggning right from the start.

Hardware development boards are great when you're going to adapt the OS for one specific hardware but initial work of an OS doesn't really require the HW.

Just beware of qemu bugs. I've encountered several of them and you often have to adjust the bug yourself since updates are not frequent, especially when it comes to ARM. The benefit of the hardware is that you don't get the emulator bugs. Also when moving from emulator to real HW you will probably encounter caches and TLB problems since that is not emulated accurately enough and very forgiving.

I have a HW as well but I use qemu much more since I don't need to tinker with the hardware all the time. Less things to bring, if you're travelling and so on.
User avatar
Firestryke31
Member
Member
Posts: 550
Joined: Sat Nov 29, 2008 1:07 pm
Location: Throw a dart at central Texas
Contact:

Re: Well documented ARM devices for os dev?

Post by Firestryke31 »

Try the Gameboy Advance. VisualBoyAdvance is a good emulator that gets pretty close to RHW, and there are easily available dev tools, and it's very well documented. There's no other software running so you don't have to worry about that getting in your way. Once you're confident that the version running in the emulator is doing good you can invest in a flash cart and run it on RHW too.
Owner of Fawkes Software.
Wierd Al wrote: You think your Commodore 64 is really neato,
What kind of chip you got in there, a Dorito?
User avatar
JackScott
Member
Member
Posts: 1032
Joined: Thu Dec 21, 2006 3:03 am
Location: Hobart, Australia
Mastodon: https://aus.social/@jackscottau
GitHub: https://github.com/JackScottAU
Contact:

Re: Well documented ARM devices for os dev?

Post by JackScott »

While the Gameboy Advance is easy to develop for and lots of fun to play around with, it has a couple of problems too. Firstly, it's not built with hobbyists in mind. You may piss Nintendo off, depending on what you intend to do. More importantly though, the GBA isn't a general-purpose platform. It's only got a 160x120 screen (which isn't expandable), 8 or so input keys (also not expandable), no networking to speak of, and has no memory management facilities (or if it does, they're very crude). So there's probably better choices... like the Beagleboard, as previously mentioned.
User avatar
Firestryke31
Member
Member
Posts: 550
Joined: Sat Nov 29, 2008 1:07 pm
Location: Throw a dart at central Texas
Contact:

Re: Well documented ARM devices for os dev?

Post by Firestryke31 »

JackScott wrote:While the Gameboy Advance is easy to develop for and lots of fun to play around with, it has a couple of problems too. Firstly, it's not built with hobbyists in mind. You may piss Nintendo off, depending on what you intend to do. More importantly though, the GBA isn't a general-purpose platform. It's only got a 160x120 screen (which isn't expandable), 8 or so input keys (also not expandable), no networking to speak of, and has no memory management facilities (or if it does, they're very crude). So there's probably better choices... like the Beagleboard, as previously mentioned.
He did say it was more for learning ARM ASM, and due to working so closely with hardware it can be easier. It certainly meets the cheap and well documented aspects.

The nice thing about the GBA is that the hardware is very consistent, so you know if something doesn't work it's most likely your fault. The GBA is also nice in that it's pretty easy to get visible results right away. The highly constrained environment is also good for teaching those super-optimization tricks, like mixing 16 channels of audio basically in real time while still leaving CPU time over for game logic (MOD file playing).

As long as you don't try and sell it or use it for running Nintendo software you should be fine with Nintendo.
Owner of Fawkes Software.
Wierd Al wrote: You think your Commodore 64 is really neato,
What kind of chip you got in there, a Dorito?
xyzzy
Member
Member
Posts: 391
Joined: Wed Jul 25, 2007 8:45 am
Libera.chat IRC: aejsmith
Location: London, UK
Contact:

Re: Well documented ARM devices for os dev?

Post by xyzzy »

OSwhatever wrote:For OS development I recommend using qemu instead in initial stages. Compile-flash-run, compile-flash-run will slow you down rather than just recompile and run on the host computer. Also debugging often requires additional JTAG hardware since I assume you don't have remote debuggning right from the start.
I believe you can boot a kernel image over a serial connection on the BeagleBoard, rather than having to reflash every time you want to run a new build. It's probably still more convenient to use QEMU though. MeeGo has a version of QEMU that can emulate the BeagleBoard here, which I'm using at the moment to port my OS to.
User avatar
gravaera
Member
Member
Posts: 737
Joined: Tue Jun 02, 2009 4:35 pm
Location: Supporting the cause: Use \tabs to indent code. NOT \x20 spaces.

Re: Well documented ARM devices for os dev?

Post by gravaera »

Yo:

For the GBA jailbreaking endeavour you can maximize on the available buttons by having input done by an on-screen keyboard, and other things like use the d-pad as a mouse, etc: given a kernel that doesn't assume a PMMU, you can do quite a lot with the GBA, and even more for the Nintendo DS, which is even more fun, since it has WiFi and a touchscreen.

And there's abundant documentation for both platforms: lots of fun :)

--Cool topic
gravaera
17:56 < sortie> Paging is called paging because you need to draw it on pages in your notebook to succeed at it.
FlashBurn
Member
Member
Posts: 313
Joined: Fri Oct 20, 2006 10:14 am

Re: Well documented ARM devices for os dev?

Post by FlashBurn »

AlexExtreme wrote: MeeGo has a version of QEMU that can emulate the BeagleBoard here, which I'm using at the moment to port my OS to.
Maybe you could make a Wiki entry for compiling this QEMU version and how to start programming for it and so on [-o<

I wanted to use this version, but as of now I haven´t found the time to do so :(
Post Reply