ARM Beagleboard: Difference between revisions

From OSDev.wiki
Jump to navigation Jump to search
[unchecked revision][unchecked revision]
Content added Content deleted
(New page: There's also a tutorial [made by someone else] about barebones dev on the Nintendo Gameboy Advance, but I can't find it. FIXME: Add link to that :X. =Intro= This is a tutorial on bare-me...)
 
No edit summary
Line 1: Line 1:
There's also a tutorial [made by someone else] about barebones dev on the Nintendo Gameboy Advance, but I can't find it. FIXME: Add link to that :X.
There's also a tutorial [made by someone else] about barebones dev on the Nintendo Gameboy Advance, but I can't find it. FIXME: Add link to that :X.

TODO: VERIFY THE TUTORIAL(S)!!!


=Intro=
=Intro=
Line 5: Line 7:
This is a tutorial on bare-metal [OS] development on the Texas Instruments Beagleboard. This tutorial is written specifically for the Beagleboard-xM Rev C because the author has no other hardware to test on.
This is a tutorial on bare-metal [OS] development on the Texas Instruments Beagleboard. This tutorial is written specifically for the Beagleboard-xM Rev C because the author has no other hardware to test on.


Experience in Linux/nix (_very_ important) and at least one assembly language (_incredibly_ important, or at least extensive C knowledge) is assumed and required.
Experience in Linux/nix (_very_ important) and at least one assembly language (_incredibly_ important, or at least extensive C knowledge) is assumed and required. Please make sure you can figure out how to get a basic x86 OS (no copypaste!) to the booting stage before attempting this guide. No need to make much more than a 'Hello World', since what you know about x86 won't really apply here.


===Materials===
===Materials===



You will need a:
You will need a:
:* Beagleboard-xM Rev C, or perhaps an older board, ''with a serial port''.
:* Beagleboard-xM Rev C, or perhaps an older board, ''with a serial port''.
:* An '''RS-232''' serial port. This is the kind of serial port on the back of your x86 PC, and on the Beagleboard-xM. using TTL serial will damage something.
:* An '''RS-232''' serial port. This is the kind of serial port on the back of your x86 PC, and on the Beagleboard-xM. using TTL (5v) or lower voltage serial will damage something.
:* A serial cable that comes to '''DB-9 Male''' on at least one side (to connect to the Beagleboard)
:* A serial cable that comes to '''DB-9 Male''' on at least one side (to connect to the Beagleboard)
:* Debian/Ubuntu, or other *nix with arm-binutils [guide will document installation for Deb/Ubuntu]
:* Debian/Ubuntu, or other *nix with arm-binutils [guide will document installation for Deb/Ubuntu]
:* Power supply for your Beagleboard
::* '''Optional:''' Various peripherals for the Beagleboard. Be aware that _you_ will need to write drivers for them. Welcome to OS Development ^_^.

=Getting Started=

===Testing your serial port===

First things first, you're going to want to make sure all your hardware works. Set up your serial port, however yours works, and open up minicom. Make sure you have flow control turned off.
Now jumper '''PIN 2 (RX)''' to '''PIN 3 (TX)''' on the DB-9 side. Just type some characters into minicom, and they should be echoed back.
Ensure you can run at 115200 baud, 8N1, which is what you will use to connect to the Beagleboard.

===Testing the Beagleboard===

Follow the guide here http://elinux.org/BeagleBoardDebian#Debian_armhf_port to install the Debian armhf image to a microSD card. We don't really need to boot Debian from it, but it's a nice simple <small>ghetto/lazy</small> way to get u-boot set up and working.

Connect the Beagleboard up via serial, and make sure minicom is running (on your PC). Put the microSD card in the Beagleboard. Connect the Beagleboard to its power supply. You should see some output on the serial port. If not, google around to figure out why not. If a few bytes of garbage appear in Minicom only, make sure the MicroSD card is inserted and VALID. Also make sure you didn't press the 'user button'.

You should get some meaningful output. Unplug your Beagleboard when you are done with it.

===Getting an assembler===

.


==References==
==References==

Revision as of 13:42, 30 September 2011

There's also a tutorial [made by someone else] about barebones dev on the Nintendo Gameboy Advance, but I can't find it. FIXME: Add link to that :X.

TODO: VERIFY THE TUTORIAL(S)!!!

Intro

This is a tutorial on bare-metal [OS] development on the Texas Instruments Beagleboard. This tutorial is written specifically for the Beagleboard-xM Rev C because the author has no other hardware to test on.

Experience in Linux/nix (_very_ important) and at least one assembly language (_incredibly_ important, or at least extensive C knowledge) is assumed and required. Please make sure you can figure out how to get a basic x86 OS (no copypaste!) to the booting stage before attempting this guide. No need to make much more than a 'Hello World', since what you know about x86 won't really apply here.

Materials

You will need a:

  • Beagleboard-xM Rev C, or perhaps an older board, with a serial port.
  • An RS-232 serial port. This is the kind of serial port on the back of your x86 PC, and on the Beagleboard-xM. using TTL (5v) or lower voltage serial will damage something.
  • A serial cable that comes to DB-9 Male on at least one side (to connect to the Beagleboard)
  • Debian/Ubuntu, or other *nix with arm-binutils [guide will document installation for Deb/Ubuntu]
  • Power supply for your Beagleboard
  • Optional: Various peripherals for the Beagleboard. Be aware that _you_ will need to write drivers for them. Welcome to OS Development ^_^.

Getting Started

Testing your serial port

First things first, you're going to want to make sure all your hardware works. Set up your serial port, however yours works, and open up minicom. Make sure you have flow control turned off. Now jumper PIN 2 (RX) to PIN 3 (TX) on the DB-9 side. Just type some characters into minicom, and they should be echoed back. Ensure you can run at 115200 baud, 8N1, which is what you will use to connect to the Beagleboard.

Testing the Beagleboard

Follow the guide here http://elinux.org/BeagleBoardDebian#Debian_armhf_port to install the Debian armhf image to a microSD card. We don't really need to boot Debian from it, but it's a nice simple ghetto/lazy way to get u-boot set up and working.

Connect the Beagleboard up via serial, and make sure minicom is running (on your PC). Put the microSD card in the Beagleboard. Connect the Beagleboard to its power supply. You should see some output on the serial port. If not, google around to figure out why not. If a few bytes of garbage appear in Minicom only, make sure the MicroSD card is inserted and VALID. Also make sure you didn't press the 'user button'.

You should get some meaningful output. Unplug your Beagleboard when you are done with it.

Getting an assembler

.

References

[1] http://stackoverflow.com/questions/6870712/beagleboard-bare-metal-programming

[2] http://sourceware.org/binutils/docs/as/