User:Batydm
From eLinux.org
I am currently a Graduate student at Rose-Hulman Institute of Technology pursuing my MECE (Masters of Electrical and Computer Enginnering) degree. My undergraduate degree was in Computer Engineering, also from Rose-Hulman. I am the Public Relations officer of the Rose-Hulman Linux Users' Group. I am working on another project using the BeagleBoard to control a walking four legged robot.
Contributions
Most of my work is with the BeagleBoard hardware. I helped with pages on PWM on the BeagleBoard and I2C on the BeagleBoard. I created the page on Interfacing with the BeagleBoard hardware. This page contains a variety of information on how to make a board to interface with the BeagleBoard, including dealing with power and level shifting.
Listings From Embedded Linux Primer
| Number | Page | Caption | Listing | Notes |
|---|---|---|---|---|
| 2-1 | 2-6 | Initial Bootloader Serial Output | Texas Instruments X-Loader 1.4.2 (Feb 19 2009 - 12:01:24) Reading boot sector Loading u-boot.bin from mmc U-Boot 2009.11-rc1 (Jan 08 2010 - 21:19:52) OMAP3530-GP ES3.0, CPU-OPP2 L3-165MHz OMAP3 Beagle board + LPDDR/NAND I2C: ready DRAM: 256 MB NAND: 256 MiB In: serial Out: serial Err: serial Board revision C1/C2/C3 Die ID #5160000300000000040323091101f01a Hit any key to stop autoboot: 0 OMAP3 beagleboard.org # |
This is from a Revision C3 Beagle. |
| 2-2 | 2-7 | Loading the Linux Kernel | 3001004 bytes read Booting from mmc ... ## Booting kernel from Legacy Image at 82000000 ... Image Name: Angstrom/2.6.29/beagleboard Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 3000940 Bytes = 2.9 MB Load Address: 80008000 Entry Point: 80008000 Verifying Checksum ... OK Loading Kernel Image ... OK OK Starting kernel ... Uncompressing Linux.... done, booting the kernel. |
|
| 2-3 | 2-9 | Linux Final Boot Messages |
Starting portmap daemon: portmap.
Unknown HZ value! (75) Assume 100.
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.rp_filter = 1
hwclock: can't open '/dev/misc/rtc': No such file or directory
Sat Mar 13 23:56:00 GMT 2010
hwclock: can't open '/dev/misc/rtc': No such file or directory
INIT: Entering runlevel: 5
Starting system message bus: dbus.
Starting Hardware abstraction layer hald
Configuring leds:
beagleboard::usr0: heartbeat
beagleboard::usr1: mmc0
Starting Dropbear SSH server: modprobe: FATAL: Could not open '/lib/modules/2.6.29-omap1/kernel/net/ipv6/ipv6.ko': No such file or directory
modprobe: FATAL: Could not open '/lib/modules/2.6.29-omap1/kernel/net/ipv6/ipv6.ko': No such file or directory
dropbear.
Starting advanced power management daemon: No APM support in kernel
(failed.)
Starting Samba: smbd nmbd.
Starting syslogd/klogd: done
Starting internet superserver: xinetd.
* Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon
[ ok ]
Starting Network connection manager daemon: NetworkManager.
Loading kernel modules for gstreamer-ti... FATAL: Could not open '/lib/modules/2.6.29-omap1/kernel/drivers/dsp/cmemk.ko': No such file or directory
FATAL: Could not open '/lib/modules/2.6.29-omap1/kernel/drivers/dsp/dsplinkk.ko': No such file or directory
WARNING: Could not open '/lib/modules/2.6.29-omap1/kernel/drivers/dsp/dsplinkk.ko': No such file or directory
FATAL: Could not open '/lib/modules/2.6.29-omap1/kernel/drivers/dsp/lpm_omap3530.ko': No such file or directory
FATAL: Could not open '/lib/modules/2.6.29-omap1/kernel/drivers/dsp/sdmak.ko': No such file or directory
done
Loading [g_cdc]
FATAL: Could not open '/lib/modules/2.6.29-omap1/kernel/drivers/usb/gadget/g_cdc.ko': No such file or directory
Starting web server: apache2.
Starting GNOME Display Manager gdm
Starting GPE display manager: gpe-dm
[ 1486.575927] OMAPFB: Closing fb with plane index 0
.-------.
| | .-.
| | |-----.-----.-----.| | .----..-----.-----.
| | | __ | ---'| '--.| .-'| | |
| | | | | |--- || --'| | | ' | | | |
'---'---'--'--'--. |-----''----''--' '-----'-'-'-'
-' |
'---'
The Angstrom Distribution beagleboar ttyS2
Angstrom 2009.X-test-20100104 beagleboar ttyS2
|
|
| 2-4 | 2-21 | Hello World, Embedded Style |
#include <stdio.h>
int bss_var; /* Uninitialized global variable */
int data_var = 1; /* Initialized global variable */
int main(int argc, char **argv)
{
void *stack_var; /* Local variable on the stack */
stack_var = (void *)main; /* Don't let the compiler */
/* optimize it out */
printf("Hello, World! Main is executing at %p\n", stack_var);
printf("This address (%p) is in our stack frame\n", &stack_var);
/* bss section contains uninitialized data */
printf("This address (%p) is in our bss section\n", &bss_var);
/* data section contains initializated data */
printf("This address (%p) is in our data section\n", &data_var);
return 0;
}
|
|
| 2-5 | 2-22 | Hello Output for Host Computer | Hello, World! Main is executing at 0x400524 This address (0x7fff6c261d58) is in our stack frame This address (0x601038) is in our bss section This address (0x601020) is in our data section |
Intel Atom, Ubuntu 9.10 64-bit |
| 2-5 | 2-22 | Hello Output for Beagle | Hello, World! Main is executing at 0x8380 This address (0xbedddc44) is in our stack frame This address (0x10670) is in our bss section This address (0x10668) is in our data section |
Beagleboard rev C3, Angstrom remote compiled |
U-Boot 2009.06-rc2 (Apr 13 2010 - 17:33:55) OMAP3530-GP ES3.0, CPU-OPP2 L3-165MHz OMAP3 Beagle board + LPDDR/NAND DRAM: 256 MB NAND: 256 MiB In: serial Out: serial Err: serial Texas Instruments X-Loader 1.4.2 (Feb 19 2009 - 12:01:24) Reading boot sector Loading u-boot.bin from mmc U-Boot 2009.06-rc2 (Apr 13 2010 - 17:33:55) OMAP3530-GP ES3.0, CPU-OPP2 L3-165MHz OMAP3 Beagle board + LPDDR/NAND DRAM: 256 MB NAND: 256 MiB In: serial Out: serial Err: serial Board revision C Die ID #5160000300000000040323091101f01a Hit any key to stop autoboot: 0 DB, TM and MJ -- OMAP3 beagleboard.org # | ||||
| 4-3 | 4-15 | total 423 drwxr-xr-x 3 batydm students 776 2010-04-28 00:05 . drwxr-xr-x 87 batydm students 2696 2010-04-28 00:05 .. -rw-r--r-- 1 batydm students 11124 2010-04-28 00:05 clock.c -rw-r--r-- 1 batydm students 8805 2010-04-28 00:05 common.c -rw-r--r-- 1 batydm students 4033 2010-04-28 00:05 cpu-omap.c -rw-r--r-- 1 batydm students 2192 2010-04-28 00:05 debug-devices.c -rw-r--r-- 1 batydm students 7170 2010-04-28 00:05 debug-leds.c -rw-r--r-- 1 batydm students 10914 2010-04-28 00:05 devices.c -rw-r--r-- 1 batydm students 52795 2010-04-28 00:05 dma.c -rw-r--r-- 1 batydm students 22660 2010-04-28 00:05 dmtimer.c -rw-r--r-- 1 batydm students 10055 2010-04-28 00:05 fb.c -rw-r--r-- 1 batydm students 61383 2010-04-28 00:05 gpio.c -rw-r--r-- 1 batydm students 5568 2010-04-28 00:05 i2c.c drwxr-xr-x 3 batydm students 72 2010-04-28 00:05 include -rw-r--r-- 1 batydm students 6265 2010-04-28 00:05 io.c -rw-r--r-- 1 batydm students 20789 2010-04-28 00:05 iommu.c -rw-r--r-- 1 batydm students 9141 2010-04-28 00:05 iommu-debug.c -rw-r--r-- 1 batydm students 2745 2010-04-28 00:05 iopgtable.h -rw-r--r-- 1 batydm students 19344 2010-04-28 00:05 iovmm.c -rw-r--r-- 1 batydm students 4819 2010-04-28 00:05 Kconfig -rw-r--r-- 1 batydm students 8546 2010-04-28 00:05 mailbox.c -rw-r--r-- 1 batydm students 882 2010-04-28 00:05 Makefile -rw-r--r-- 1 batydm students 43754 2010-04-28 00:05 mcbsp.c -rw-r--r-- 1 batydm students 2263 2010-04-28 00:05 mux.c -rw-r--r-- 1 batydm students 2739 2010-04-28 00:05 ocpi.c -rw-r--r-- 1 batydm students 21421 2010-04-28 00:05 omap_device.c -rw-r--r-- 1 batydm students 7069 2010-04-28 00:05 omap-pm-noop.c -rw-r--r-- 1 batydm students 12878 2010-04-28 00:05 sram.c -rw-r--r-- 1 batydm students 18770 2010-04-28 00:05 usb.c | ||
| 4-6 | Makefile targets |
Cleaning targets:
clean - Remove most generated files but keep the config and
enough build support to build external modules
mrproper - Remove all generated files + config + various backup files
distclean - mrproper + remove editor backup and patch files
Configuration targets:
config - Update current config utilising a line-oriented program
menuconfig - Update current config utilising a menu based program
xconfig - Update current config utilising a QT based front-end
gconfig - Update current config utilising a GTK based front-end
oldconfig - Update current config utilising a provided .config as base
localmodconfig - Update current config disabling modules not loaded
localyesconfig - Update current config converting local mods to core
silentoldconfig - Same as oldconfig, but quietly, additionally update deps
randconfig - New config with random answer to all options
defconfig - New config with default answer to all options
allmodconfig - New config selecting modules when possible
allyesconfig - New config where all options are accepted with yes
allnoconfig - New config where all options are answered with no
Other generic targets:
all - Build all targets marked with [*]
* vmlinux - Build the bare kernel
* modules - Build all modules
modules_install - Install all modules to INSTALL_MOD_PATH (default: /)
firmware_install- Install all firmware to INSTALL_FW_PATH
(default: $(INSTALL_MOD_PATH)/lib/firmware)
dir/ - Build all files in dir and below
dir/file.[ois] - Build specified target only
dir/file.ko - Build module including final link
modules_prepare - Set up for building external modules
tags/TAGS - Generate tags file for editors
cscope - Generate cscope index
kernelrelease - Output the release version string
kernelversion - Output the version stored in Makefile
headers_install - Install sanitised kernel headers to INSTALL_HDR_PATH
(default: /home/users/batydm/omap/linux-omap-2.6/usr)
Static analysers
checkstack - Generate a list of stack hogs
namespacecheck - Name space analysis on compiled kernel
versioncheck - Sanity check on version.h usage
includecheck - Check for duplicate included header files
export_report - List the usages of all exported symbols
headers_check - Sanity check on exported headers
headerdep - Detect inclusion cycles in headers
Kernel packaging:
rpm-pkg - Build both source and binary RPM kernel packages
binrpm-pkg - Build only the binary kernel package
deb-pkg - Build the kernel as an deb package
tar-pkg - Build the kernel as an uncompressed tarball
targz-pkg - Build the kernel as a gzip compressed tarball
tarbz2-pkg - Build the kernel as a bzip2 compressed tarball
Documentation targets:
Linux kernel internal documentation in different formats:
htmldocs - HTML
pdfdocs - PDF
psdocs - Postscript
xmldocs - XML DocBook
mandocs - man pages
installmandocs - install man pages generated by mandocs
cleandocs - clean all generated DocBook files
Architecture specific targets (arm):
* zImage - Compressed kernel image (arch/arm/boot/zImage)
Image - Uncompressed kernel image (arch/arm/boot/Image)
* xipImage - XIP kernel image, if configured (arch/arm/boot/xipImage)
uImage - U-Boot wrapped zImage
bootpImage - Combined zImage and initial RAM disk
(supply initrd image via make variable INITRD=<path>)
install - Install uncompressed kernel
zinstall - Install compressed kernel
Install using (your) ~/bin/installkernel or
(distribution) /sbin/installkernel or
install to $(INSTALL_PATH) and run lilo
acs5k_defconfig - Build for acs5k
acs5k_tiny_defconfig - Build for acs5k_tiny
afeb9260_defconfig - Build for afeb9260
am200epdkit_defconfig - Build for am200epdkit
am3517_evm_defconfig - Build for am3517_evm
ams_delta_defconfig - Build for ams_delta
ap4evb_defconfig - Build for ap4evb
assabet_defconfig - Build for assabet
at572d940hfek_defconfig - Build for at572d940hfek
at91cap9adk_defconfig - Build for at91cap9adk
at91rm9200dk_defconfig - Build for at91rm9200dk
at91rm9200ek_defconfig - Build for at91rm9200ek
at91sam9260ek_defconfig - Build for at91sam9260ek
at91sam9261ek_defconfig - Build for at91sam9261ek
at91sam9263ek_defconfig - Build for at91sam9263ek
at91sam9g20ek_defconfig - Build for at91sam9g20ek
at91sam9rlek_defconfig - Build for at91sam9rlek
ateb9200_defconfig - Build for ateb9200
badge4_defconfig - Build for badge4
bcmring_defconfig - Build for bcmring
cam60_defconfig - Build for cam60
carmeva_defconfig - Build for carmeva
cerfcube_defconfig - Build for cerfcube
cm_t35_defconfig - Build for cm_t35
cm_x2xx_defconfig - Build for cm_x2xx
cm_x300_defconfig - Build for cm_x300
colibri_pxa270_defconfig - Build for colibri_pxa270
colibri_pxa300_defconfig - Build for colibri_pxa300
collie_defconfig - Build for collie
corgi_defconfig - Build for corgi
cpu9260_defconfig - Build for cpu9260
cpu9g20_defconfig - Build for cpu9g20
cpuat91_defconfig - Build for cpuat91
csb337_defconfig - Build for csb337
csb637_defconfig - Build for csb637
da8xx_omapl_defconfig - Build for da8xx_omapl
davinci_all_defconfig - Build for davinci_all
devkit8000_defconfig - Build for devkit8000
dove_defconfig - Build for dove
ebsa110_defconfig - Build for ebsa110
ecbat91_defconfig - Build for ecbat91
edb7211_defconfig - Build for edb7211
em_x270_defconfig - Build for em_x270
ep93xx_defconfig - Build for ep93xx
eseries_pxa_defconfig - Build for eseries_pxa
ezx_defconfig - Build for ezx
footbridge_defconfig - Build for footbridge
fortunet_defconfig - Build for fortunet
g3evm_defconfig - Build for g3evm
g4evm_defconfig - Build for g4evm
h3600_defconfig - Build for h3600
h5000_defconfig - Build for h5000
h7201_defconfig - Build for h7201
h7202_defconfig - Build for h7202
hackkit_defconfig - Build for hackkit
htcherald_defconfig - Build for htcherald
igep0020_defconfig - Build for igep0020
imote2_defconfig - Build for imote2
integrator_defconfig - Build for integrator
iop13xx_defconfig - Build for iop13xx
iop32x_defconfig - Build for iop32x
iop33x_defconfig - Build for iop33x
ixp2000_defconfig - Build for ixp2000
ixp23xx_defconfig - Build for ixp23xx
ixp4xx_defconfig - Build for ixp4xx
jornada720_defconfig - Build for jornada720
kafa_defconfig - Build for kafa
kb9202_defconfig - Build for kb9202
kirkwood_defconfig - Build for kirkwood
ks8695_defconfig - Build for ks8695
lart_defconfig - Build for lart
loki_defconfig - Build for loki
lpd270_defconfig - Build for lpd270
lpd7a400_defconfig - Build for lpd7a400
lpd7a404_defconfig - Build for lpd7a404
lubbock_defconfig - Build for lubbock
lusl7200_defconfig - Build for lusl7200
magician_defconfig - Build for magician
mainstone_defconfig - Build for mainstone
mini2440_defconfig - Build for mini2440
mmp2_defconfig - Build for mmp2
msm_defconfig - Build for msm
mv78xx0_defconfig - Build for mv78xx0
mx1_defconfig - Build for mx1
mx21_defconfig - Build for mx21
mx27_defconfig - Build for mx27
mx31pdk_defconfig - Build for mx31pdk
mx3_defconfig - Build for mx3
mx51_defconfig - Build for mx51
n770_defconfig - Build for n770
n8x0_defconfig - Build for n8x0
neocore926_defconfig - Build for neocore926
neponset_defconfig - Build for neponset
netwinder_defconfig - Build for netwinder
netx_defconfig - Build for netx
nhk8815_defconfig - Build for nhk8815
ns9xxx_defconfig - Build for ns9xxx
nuc910_defconfig - Build for nuc910
nuc950_defconfig - Build for nuc950
nuc960_defconfig - Build for nuc960
omap_2430sdp_defconfig - Build for omap_2430sdp
omap_3430sdp_defconfig - Build for omap_3430sdp
omap_3630sdp_defconfig - Build for omap_3630sdp
omap3_beagle_defconfig - Build for omap3_beagle
omap3_defconfig - Build for omap3
omap3_evm_defconfig - Build for omap3_evm
omap3_pandora_defconfig - Build for omap3_pandora
omap3_touchbook_defconfig - Build for omap3_touchbook
omap_4430sdp_defconfig - Build for omap_4430sdp
omap_apollon_2420_defconfig - Build for omap_apollon_2420
omap_generic_1510_defconfig - Build for omap_generic_1510
omap_generic_1610_defconfig - Build for omap_generic_1610
omap_generic_1710_defconfig - Build for omap_generic_1710
omap_generic_2420_defconfig - Build for omap_generic_2420
omap_h2_1610_defconfig - Build for omap_h2_1610
omap_h4_2420_defconfig - Build for omap_h4_2420
omap_innovator_1510_defconfig - Build for omap_innovator_1510
omap_innovator_1610_defconfig - Build for omap_innovator_1610
omap_ldp_defconfig - Build for omap_ldp
omap_osk_5912_defconfig - Build for omap_osk_5912
omap_perseus2_730_defconfig - Build for omap_perseus2_730
omap_zoom2_defconfig - Build for omap_zoom2
omap_zoom3_defconfig - Build for omap_zoom3
onearm_defconfig - Build for onearm
orion5x_defconfig - Build for orion5x
overo_defconfig - Build for overo
palmte_defconfig - Build for palmte
palmtt_defconfig - Build for palmtt
palmz71_defconfig - Build for palmz71
palmz72_defconfig - Build for palmz72
pcm027_defconfig - Build for pcm027
picotux200_defconfig - Build for picotux200
pleb_defconfig - Build for pleb
pnx4008_defconfig - Build for pnx4008
pxa168_defconfig - Build for pxa168
pxa255-idp_defconfig - Build for pxa255-idp
pxa3xx_defconfig - Build for pxa3xx
pxa910_defconfig - Build for pxa910
qil-a9260_defconfig - Build for qil-a9260
raumfeld_defconfig - Build for raumfeld
realview_defconfig - Build for realview
realview-smp_defconfig - Build for realview-smp
rpc_defconfig - Build for rpc
rx51_defconfig - Build for rx51
s3c2410_defconfig - Build for s3c2410
s3c6400_defconfig - Build for s3c6400
s5p6440_defconfig - Build for s5p6440
s5p6442_defconfig - Build for s5p6442
s5pc100_defconfig - Build for s5pc100
s5pc110_defconfig - Build for s5pc110
s5pv210_defconfig - Build for s5pv210
sam9_l9260_defconfig - Build for sam9_l9260
shannon_defconfig - Build for shannon
shark_defconfig - Build for shark
simpad_defconfig - Build for simpad
spitz_defconfig - Build for spitz
stmp378x_defconfig - Build for stmp378x
stmp37xx_defconfig - Build for stmp37xx
sx1_defconfig - Build for sx1
tct_hammer_defconfig - Build for tct_hammer
trizeps4_defconfig - Build for trizeps4
u300_defconfig - Build for u300
u8500_defconfig - Build for u8500
usb-a9260_defconfig - Build for usb-a9260
usb-a9263_defconfig - Build for usb-a9263
versatile_defconfig - Build for versatile
viper_defconfig - Build for viper
xcep_defconfig - Build for xcep
yl9200_defconfig - Build for yl9200
zeus_defconfig - Build for zeus
make V=0|1 [targets] 0 => quiet build (default), 1 => verbose build
make V=2 [targets] 2 => give reason for rebuild of target
make O=dir [targets] Locate all output files in "dir", including .config
make C=1 [targets] Check all c source with $CHECK (sparse by default)
make C=2 [targets] Force check of all c source with $CHECK
Execute "make" or "make all" to build all targets marked with [*]
For further info see the ./README file
|
||
| 4-8 | Bit from arch/arm/Kconfig |
#
# For a description of the syntax of this configuration file,
# see Documentation/kbuild/kconfig-language.txt.
#
mainmenu "Linux Kernel Configuration"
config ARM
bool
default y
select HAVE_AOUT
select HAVE_IDE
select RTC_LIB
select SYS_SUPPORTS_APM_EMULATION
select GENERIC_ATOMIC64 if (!CPU_32v6K)
select HAVE_OPROFILE
select HAVE_ARCH_KGDB
select HAVE_KPROBES if (!XIP_KERNEL)
select HAVE_KRETPROBES if (HAVE_KPROBES)
select HAVE_FUNCTION_TRACER if (!XIP_KERNEL)
select HAVE_GENERIC_DMA_COHERENT
select HAVE_KERNEL_GZIP
select HAVE_KERNEL_LZO
select HAVE_PERF_EVENTS
select PERF_USE_VMALLOC
help
The ARM series is a line of low-power-consumption RISC chip designs
licensed by ARM Ltd and targeted at embedded applications and
handhelds such as the Compaq IPAQ. ARM-based PCs are no longer
manufactured, but legacy ARM-based PC hardware remains popular in
Europe. There is an ARM Linux project with a web page at
<http://www.arm.linux.org.uk/>.
| ||
| 4-9 | arch/arm/mach-omap2/Kconfig |
|
comment "OMAP Core Type"
depends on ARCH_OMAP2
config ARCH_OMAP2420
bool "OMAP2420 support"
depends on ARCH_OMAP2
select OMAP_DM_TIMER
select ARCH_OMAP_OTG
config ARCH_OMAP2430
bool "OMAP2430 support"
depends on ARCH_OMAP2
config ARCH_OMAP3430
bool "OMAP3430 support"
depends on ARCH_OMAP3
select ARCH_OMAP_OTG
config OMAP_PACKAGE_CBC
bool
|
||
| 5-2 | piggy.S |
.section .piggydata,#alloc
.globl input_data
input_data:
.incbin "arch/arm/boot/compressed/piggy.gzip"
.globl input_data_end
input_data_end:
|
||
| 5-2 | piggy.gzip.S |
.section .piggydata,#alloc
.globl input_data
input_data:
.incbin "arch/arm/boot/compressed/piggy.lzo"
.globl input_data_end
input_data_end:
|