beagleboard url

BeagleBoard 101

Slides available at: http://beagleboard.org/beagleboard101

This is your introduction to the BeagleBoard where you will learn:

What is the BeagleBoard?

http://beagleboard.org/static/beagleboard_flyer.pdf

The BeagleBoard is an open hardware project featuring two designs:

BeagleBoard.org designs have a common philosophy:

BeagleBoard-xM Details

http://beagleboard.org/hardware-xM

BeagleBoard-xM image

BeagleBone Details

http://beagleboard.org/hardware-bone

BeagleBoard-xM image

Some BeagleBoard examples

 

 

Getting up and running

Classroom setup

Equipment is meant to stay in the classroom

Matrix GUI

Matrix GUI

Gnome Desktop

Gnome Desktop

Lab - Edit Matrix GUI menu

 

root@beagleboard:~# cd ~/labs/matrix
root@beagleboard:~/labs/matrix# ls -l
root@beagleboard:~/labs/matrix# gedit menu_main_1.html

Search for "p1" and replace the title with your name.

root@beagleboard:~/labs/matrix# cat run_matrix_gui
root@beagleboard:~/labs/matrix# ./run_matrix_gui

Why work with community?

 

Why Community?

Why push code to mainline?

 

Why Mainline?

Engaging the community

Ask questions the smart way

What do I work with the community on?

 

Typical BeagleBoard-xM boot process

The five phases

  1. ROM loads x-load (MLO)
    • Performs external DRAM configuration
  2. x-load loads u-boot
    • Default location is /media/mmcblk0p1/u-boot.bin
  3. u-boot executes default environment/commands
    • Default location is /media/mmcblk0p1/uEnv.txt
    • USERBUTTON will cause search for /media/mmcblk0p1/user.txt
    • By default, 'uenvcmd' is executed
  4. Commands load kernel
    • Default location is /media/mmcblk0p2/boot/uImage
  5. Kernel reads root file system

The default u-boot boot command

omap3_beagle.h#l281

281 #define CONFIG_BOOTCOMMAND \
282  "if mmc rescan ${mmcdev}; then " \
283   "if userbutton; then " \
284    "setenv bootenv user.txt;" \
285   "fi;" \
286   "echo SD/MMC found on device ${mmcdev};" \
287   "if run loadbootenv; then " \
288    "echo Loaded environment from ${bootenv};" \
289    "run importbootenv;" \
290   "fi;" \
291   "if test -n $uenvcmd; then " \
292    "echo Running uenvcmd ...;" \
293    "run uenvcmd;" \
294   "fi;" \
295   "if run loaduimage; then " \
296    "run mmcboot;" \
297   "fi;" \
298  "fi;" \
299  "run nandboot;" \
  

Baseline software

 

Highlighted community projects

 

Linaro

www.linaro.org

Yocto

www.yoctoproject.org

Qt

qt.nokia.com

Qt Architecture

Qt modules

qt.nokia.com

Qt modules

Qt demos

qt.nokia.com

qtdemo

Qt Creator

qt.nokia.com

Qt Hello World example

qt.nokia.com

 #include <QApplication>
 #include <QPushButton>

 int main(int argc, char *argv[])
 {
     QApplication app(argc, argv);

     QPushButton hello("Hello world!");
     hello.resize(100, 30);

     hello.show();
     return app.exec();
 }
  

Lab - Qt Hello World

 

root@beagleboard:~# cd ~/labs/qt/hello
root@beagleboard:~/labs/qt/hello# . /usr/share/qt4/environment-setup 
root@beagleboard:~/labs/qt/hello# ls
root@beagleboard:~/labs/qt/hello# cat hello.cpp
root@beagleboard:~/labs/qt/hello# qmake2 -project
root@beagleboard:~/labs/qt/hello# qmake2
qt_config.prf:7: include(file) requires one argument.
root@beagleboard:~/labs/qt/hello# make clean
root@beagleboard:~/labs/qt/hello# make
root@beagleboard:~/labs/qt/hello# ls
root@beagleboard:~/labs/qt/hello# ./hello
  

Thanks!