ARM Beagleboard: Difference between revisions

[unchecked revision][unchecked revision]
Content deleted Content added
m microSD is the correct styling
m Bot: Replace deprecated source tag with syntaxhighlight
Line 50:
 
Append:
<sourcesyntaxhighlight lang="asm">
deb http://www.emdebian.org/debian/ squeeze main
</syntaxhighlight>
</source>
to your /etc/apt/sources.list, changing 'squeeze' for your version of Debian - I'm running wheezy, for example.
 
now run:
<sourcesyntaxhighlight lang="asm">
sudo aptitude update
sudo aptitude install gcc-4.4-arm-linux-gnueabi # check this! it might be an older version for non-wheezy...
</syntaxhighlight>
</source>
 
That will install a C compiler, and also install Binutils, which for this tutorial is really all we need, but you may later wish to write your code in C.
Line 75:
Take note of what it does. It's pretty simple. Refer to docs if necessary.
 
<sourcesyntaxhighlight lang="asm">
/* rammap */
MEMORY
Line 86:
.text : { *(.text*) } > ram
}
</syntaxhighlight>
</source>
 
===Makefile===
Line 92:
This is the basic makefile I use. It's similar to the one on the stackoverflow link.
 
<sourcesyntaxhighlight lang="asm">
ARMGNU = arm-linux-gnueabi
 
Line 104:
$(ARMGNU)-objcopy boot.elf -O srec boot.srec
$(ARMGNU)-objcopy boot.elf -O binary boot.bin
</syntaxhighlight>
</source>
 
===Assembly!===
Line 114:
====boot.asm====
 
<tt><sourcesyntaxhighlight lang="asm">
#UART base locations from the TRM
.equ UART1.BASE, 0x4806A000
Line 141:
# (branch (jump, JMP) to _hang)
# b _hang
</sourcesyntaxhighlight></tt>
 
==='Compiling' it===
Line 157:
You should see:
 
<sourcesyntaxhighlight lang="asm">
U-Boot 2011.03-rc1-00000-g9a3cc57-dirty (Apr 04 2011 - 12:36:16)
Line 175:
Die ID #2e7000029ff80000016842c813020023
Hit any key to stop autoboot: 3
</syntaxhighlight>
</source>
 
Hit a key. Before Linux loads.
 
<sourcesyntaxhighlight lang="asm">
OMAP3 beagleboard.org #
</syntaxhighlight>
</source>
 
Whee, a u-boot prompt.
Line 191:
Just type 'loady'. Don't worry about being fast on your first go, you'll miss it anyway.
 
<sourcesyntaxhighlight lang="asm">
OMAP3 beagleboard.org # loady
## Ready for binary (ymodem) download to 0x80200000 at 115200 bps...
</syntaxhighlight>
</source>
 
Now hit Ctrl+A. A bar will appear at the bottom.
Line 215:
 
After the file is loaded into RAM,
<sourcesyntaxhighlight lang="asm">
READY: Press any key.
</syntaxhighlight>
</source>
and
<sourcesyntaxhighlight lang="asm">
Cm - CRC mode, 9(SOH)/0(STX)/0(CAN) packets, 3 retries
## Total Size = 0x00000350 = 848 Bytes
OMAP3 beagleboard.org #
</syntaxhighlight>
</source>
is printed (my file is bigger... don't worry about that), we just have to execute the code in memory!
 
Line 229:
 
Execution is started from an address with 'go'. Our _start address is 0x80200000. So, we type:
<sourcesyntaxhighlight lang="asm">
OMAP3 beagleboard.org # go 0x80200000
</syntaxhighlight>
</source>
 
and we should get:
 
<sourcesyntaxhighlight lang="asm">
## Starting application at 0x80200000 ...
!
</syntaxhighlight>
</source>
 
If you get that, congratulations! You've just written an 'Operating' System (;)) for the BeagleBoard! The process will seem long winded at first, but it's not really at all.